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