① 十大常見密碼加密方式
一、密鑰散列
採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、對稱加密
採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非對稱加密
非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
四、數字簽名
數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。
五、直接明文保存
早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。
六、使用MD5、SHA1等單向HASH演算法保護密碼
使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。
七、特殊的單向HASH演算法
由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。
八、PBKDF2
該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。
九、BCrypt
BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。
十、SCrypt
SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。
② 密碼體制的技術分類
密碼體制分為私用密鑰加密技術(對稱加密)和公開密鑰加密技術(非對稱加密)。
1、對稱密碼體制
對稱密碼體制是一種傳統密碼體制,也稱為私鑰密碼體制。在對稱加密系統中,加密和解密採用相同的密鑰。因為加解密密鑰相同,需要通信的雙方必須選擇和保存他們共同的密鑰,各方必須信任對方不會將密鑰泄密出去,這樣就可以實現數據的機密性和完整性。對於具有n個用戶的網路,需要n(n-1)/2個密鑰,在用戶群不是很大的情況下,對稱加密系統是有效的。但是對於大型網路,當用戶群很大,分布很廣時,密鑰的分配和保存就成了問題。對機密信息進行加密和驗證隨報文一起發送報文摘要(或散列值)來實現。比較典型的演算法有DES(Data Encryption Standard數據加密標准)演算法及其變形Triple DES(三重DES),GDES(廣義DES);歐洲的IDEA;日本的FEAL N、RC5等。DES標准由美國國家標准局提出,主要應用於銀行業的電子資金轉帳(EFT)領域。DES的密鑰長度為56bit。Triple DES使用兩個獨立的56bit密鑰對交換的信息進行3次加密,從而使其有效長度達到112bit。RC2和RC4方法是RSA數據安全公司的對稱加密專利演算法,它們採用可變密鑰長度的演算法。通過規定不同的密鑰長度,,C2和RC4能夠提高或降低安全的程度。對稱密碼演算法的優點是計算開銷小,加密速度快,是目前用於信息加密的主要演算法。它的局限性在於它存在著通信的貿易雙方之間確保密鑰安全交換的問題。此外,某一貿易方有幾個貿易關系,他就要維護幾個專用密鑰。它也沒法鑒別貿易發起方或貿易最終方,因為貿易的雙方的密鑰相同。另外,由於對稱加密系統僅能用於對數據進行加解密處理,提供數據的機密性,不能用於數字簽名。因而人們迫切需要尋找新的密碼體制。
2、非對稱密碼體制
非對稱密碼體制也叫公鑰加密技術,該技術就是針對私鑰密碼體制的缺陷被提出來的。在公鑰加密系統中,加密和解密是相對獨立的,加密和解密會使用兩把不同的密鑰,加密密鑰(公開密鑰)向公眾公開,誰都可以使用,解密密鑰(秘密密鑰)只有解密人自己知道,非法使用者根據公開的加密密鑰無法推算出解密密鑰,顧其可稱為公鑰密碼體制。如果一個人選擇並公布了他的公鑰,另外任何人都可以用這一公鑰來加密傳送給那個人的消息。私鑰是秘密保存的,只有私鑰的所有者才能利用私鑰對密文進行解密。公鑰密碼體制的演算法中最著名的代表是RSA系統,此外還有:背包密碼、McEliece密碼、Diffe_Hellman、Rabin、零知識證明、橢圓曲線、EIGamal演算法等。公鑰密鑰的密鑰管理比較簡單,並且可以方便的實現數字簽名和驗證。但演算法復雜,加密數據的速率較低。公鑰加密系統不存在對稱加密系統中密鑰的分配和保存問題,對於具有n個用戶的網路,僅需要2n個密鑰。公鑰加密系統除了用於數據加密外,還可用於數字簽名。公鑰加密系統可提供以下功能:A、機密性(Confidentiality):保證非授權人員不能非法獲取信息,通過數據加密來實現;B、確認(Authentication):保證對方屬於所聲稱的實體,通過數字簽名來實現;C、數據完整性(Data integrity):保證信息內容不被篡改,入侵者不可能用假消息代替合法消息,通過數字簽名來實現;D、不可抵賴性(Nonrepudiation):發送者不可能事後否認他發送過消息,消息的接受者可以向中立的第三方證實所指的發送者確實發出了消息,通過數字簽名來實現。可見公鑰加密系統滿足信息安全的所有主要目標。
③ 密碼加密的演算法有哪些
主要分為 對稱加密演算法 和 非對稱加密演算法兩類
對稱加密演算法:使用單個密鑰對數據進行加密或解密,其特點是計算量小,加密效率高.
代表 DES 演算法
非對稱加密演算法:此演算法均有兩個密鑰(公用密鑰和私有密鑰),只有二者搭配使用才能完成加密和解密的全過程.
代表 DSA演算法, 數字簽名演算法(DSA) , MD5演算法 , 安全散列演算法(SHA)
④ 密碼分為哪三種
密碼大體上分為三類,涉及的知識點主要是資訊理論和數論
第一類:公開密鑰演算法:RSA
第二類:對稱演算法:AES,DES。Hitag2
第三類:單項序列演算法:MD5
而對稱演算法又可以分為分組加密和序列加密兩種
分組加密:AES,DES
序列加密:Hitag2,Keeloq
序列加密通常是硬體實現,因為每次加密1bit,對於硬體來說用移位寄存器來實現是很容易的,但對於最小存儲單位是1Byte(8bit)的上位機來說,頻繁的位操作並不方便。
加密演算法的理論基礎基本上來自於數論,數論主要是討論整形,基本上就是關於素數的研究,RSA的加密難度依據就是,兩個大素數的因式分解,但目前無法證明是否有方法能快速的因式分解兩個超大素數,所以也無法證明此演算法絕對安全,但同理無法證明它不安全。目前2048位的RSA公認是安全的。
資訊理論在本質上基本和密碼學等價,信息熵也影響一組加密數據其安全性,和其被攻破的難度。所以如何降低冗餘,隱藏明文也是密碼學必須考慮的問題。