加密算法概念简介--MD5、SHA、DES、3DES、AES、RSA、ECC
生活随笔
收集整理的這篇文章主要介紹了
加密算法概念简介--MD5、SHA、DES、3DES、AES、RSA、ECC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MD5? ? ? ?MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現。將數據(如漢字)運算為另一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD2、MD3和MD4。
SHA? ? ? 安全散列算法SHA (Secure Hash Algorithm),用于確保信息傳輸完整一致。SHA基于MD5實現。是美國國家標準技術研究所發布的國家標準FIPS PUB 180,最新的標準已經于2008年更新到FIPS PUB 180-3。其中規定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512這幾種單向散列算法。SHA-1,SHA-224和SHA-256適用于長度不超過2^64二進制位的消息。SHA-384和SHA-512適用于長度不超過2^128二進制位的消息。
DES ?? ? ? ?DES是Data Encryption Standard(數據加密標準)的縮寫,DES算法為密碼體制中的對稱密碼體制。它是由IBM公司研制的一種加密算法,美國國家標準局于1977年公布把它作為非機要部門使用的數據加密標準,二十年來,它一直活躍在國際保密通信的舞臺上,扮演了十分重要的角色。? ? ? ? DES是一個分組加密算法,他以64位為分組對數據加密。同時DES也是一個對稱算法:加密和解密用的是同一個算法。它的密匙長度是56位(因為每個第8位都用作奇偶校驗),密匙可以是任意的56位的數,而且可以任意時候改變。其中有極少量的數被認為是弱密匙,但是很容易避開他們。所以保密性依賴于密鑰。? ? ? ? 特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。 ?DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一臺計算機的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間。? ? ? ? DES現在已經不視為一種安全的加密算法,因為它使用的56位秘鑰過短,以現代計算能力,24小時內即可能被破解。也有一些分析報告提出了該算法的理論上的弱點,雖然實際情況未必出現。該標準在最近已經被高級加密標準(AES)所取代。
3DES? ? ??3DES(或稱為Triple DES)是三重數據加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。它相當于是對每個數據塊應用三次DES加密算法。由于計算機運算能力的增強,原版DES密碼的密鑰長度變得容易被暴力破解;3DES即是設計用來提供一種相對簡單的方法,即通過增加DES的密鑰長度來避免類似的攻擊,而不是設計一種全新的塊密碼算法。
AES? ? ??高級加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發布于FIPS PUB 197,并在2002年5月26日成為有效的標準。2006年,高級加密標準已然成為對稱密鑰加密中最流行的算法之一。? ? ? ?AES的區塊長度固定為128 位元,密鑰長度則可以是128,192或256位元。?RSA? ? ??RSA加密算法是一種非對稱加密算法。在公鑰加密標準和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。? ? ? ?RSA算法的可靠性基于分解極大的整數是很困難的。假如有人找到一種很快的分解因子的算法的話,那么用RSA加密的信息的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。今天只有短的RSA鑰匙才可能被強力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的。? ? ? ?RSA算法利用兩個很大的質數相乘所產生的乘積來加密。這兩個質數無論哪一個先與原文件編碼相乘,對文件加密,均可由另一個質數再相乘來解密。但要用一個質數來求出另一個質數,則是十分困難的。因此將這一對質數稱為密鑰對(Key Pair)。在加密應用時,某個用戶總是將一個密鑰公開,讓需發信的人員將信息用其公共密鑰加密后發給該用戶,而一旦信息加密后,只有用該用戶一個人知道的私用密鑰才能解密。具有數字憑證身份的人員的公共密鑰可在網上查到,亦可在請對方發信息時主動將公共密鑰傳給對方,這樣保證在Internet上傳輸信息的保密和安全。
ECC? ? ? ECC橢圓曲線加密算法是一種公鑰加密體制,最初由Koblitz和Miller兩人于1985年提出,其數學基礎是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。? ? ? ?與經典的RSA,DSA等公鑰密碼體制相比,橢圓密碼體制有以下優點:? ? ? ?1.安全性高:有研究表示160位的橢圓密鑰與1024位的RSA密鑰安全性相同。? ? ? ?2.處理速度快:在私鑰的加密解密速度上,ecc算法比RSA、DSA速度更快。? ? ? ?3.存儲空間占用小。? ? ? ?4.帶寬要求低。
SHA? ? ? 安全散列算法SHA (Secure Hash Algorithm),用于確保信息傳輸完整一致。SHA基于MD5實現。是美國國家標準技術研究所發布的國家標準FIPS PUB 180,最新的標準已經于2008年更新到FIPS PUB 180-3。其中規定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512這幾種單向散列算法。SHA-1,SHA-224和SHA-256適用于長度不超過2^64二進制位的消息。SHA-384和SHA-512適用于長度不超過2^128二進制位的消息。
DES ?? ? ? ?DES是Data Encryption Standard(數據加密標準)的縮寫,DES算法為密碼體制中的對稱密碼體制。它是由IBM公司研制的一種加密算法,美國國家標準局于1977年公布把它作為非機要部門使用的數據加密標準,二十年來,它一直活躍在國際保密通信的舞臺上,扮演了十分重要的角色。? ? ? ? DES是一個分組加密算法,他以64位為分組對數據加密。同時DES也是一個對稱算法:加密和解密用的是同一個算法。它的密匙長度是56位(因為每個第8位都用作奇偶校驗),密匙可以是任意的56位的數,而且可以任意時候改變。其中有極少量的數被認為是弱密匙,但是很容易避開他們。所以保密性依賴于密鑰。? ? ? ? 特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。 ?DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一臺計算機的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間。? ? ? ? DES現在已經不視為一種安全的加密算法,因為它使用的56位秘鑰過短,以現代計算能力,24小時內即可能被破解。也有一些分析報告提出了該算法的理論上的弱點,雖然實際情況未必出現。該標準在最近已經被高級加密標準(AES)所取代。
3DES? ? ??3DES(或稱為Triple DES)是三重數據加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。它相當于是對每個數據塊應用三次DES加密算法。由于計算機運算能力的增強,原版DES密碼的密鑰長度變得容易被暴力破解;3DES即是設計用來提供一種相對簡單的方法,即通過增加DES的密鑰長度來避免類似的攻擊,而不是設計一種全新的塊密碼算法。
AES? ? ??高級加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發布于FIPS PUB 197,并在2002年5月26日成為有效的標準。2006年,高級加密標準已然成為對稱密鑰加密中最流行的算法之一。? ? ? ?AES的區塊長度固定為128 位元,密鑰長度則可以是128,192或256位元。?RSA? ? ??RSA加密算法是一種非對稱加密算法。在公鑰加密標準和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。? ? ? ?RSA算法的可靠性基于分解極大的整數是很困難的。假如有人找到一種很快的分解因子的算法的話,那么用RSA加密的信息的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。今天只有短的RSA鑰匙才可能被強力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的。? ? ? ?RSA算法利用兩個很大的質數相乘所產生的乘積來加密。這兩個質數無論哪一個先與原文件編碼相乘,對文件加密,均可由另一個質數再相乘來解密。但要用一個質數來求出另一個質數,則是十分困難的。因此將這一對質數稱為密鑰對(Key Pair)。在加密應用時,某個用戶總是將一個密鑰公開,讓需發信的人員將信息用其公共密鑰加密后發給該用戶,而一旦信息加密后,只有用該用戶一個人知道的私用密鑰才能解密。具有數字憑證身份的人員的公共密鑰可在網上查到,亦可在請對方發信息時主動將公共密鑰傳給對方,這樣保證在Internet上傳輸信息的保密和安全。
ECC? ? ? ECC橢圓曲線加密算法是一種公鑰加密體制,最初由Koblitz和Miller兩人于1985年提出,其數學基礎是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。? ? ? ?與經典的RSA,DSA等公鑰密碼體制相比,橢圓密碼體制有以下優點:? ? ? ?1.安全性高:有研究表示160位的橢圓密鑰與1024位的RSA密鑰安全性相同。? ? ? ?2.處理速度快:在私鑰的加密解密速度上,ecc算法比RSA、DSA速度更快。? ? ? ?3.存儲空間占用小。? ? ? ?4.帶寬要求低。
總結
以上是生活随笔為你收集整理的加密算法概念简介--MD5、SHA、DES、3DES、AES、RSA、ECC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CoreAnimation编程指南(一)
- 下一篇: c语言在键盘输入abc回车,C语言期末考