關(guān)于對(duì)稱(chēng)加密算法與非對(duì)稱(chēng)加密算法

此次我們來(lái)講解下關(guān)于各種加解密算法的比較,其中有對(duì)稱(chēng)加密算法,非對(duì)稱(chēng)加密算法,散列算法等等。

對(duì)稱(chēng)加密算

對(duì)稱(chēng)加密算法用來(lái)對(duì)敏感數(shù)據(jù)等信息進(jìn)行加密,常用的算法包括:

DES(Data Encryption Standard):數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于加密大量數(shù)據(jù)的場(chǎng)合。

3DES(Triple DES):是基于DES,對(duì)一塊數(shù)據(jù)用三個(gè)不同的密鑰進(jìn)行三次加密,強(qiáng)度更高。

AES(Advanced Encryption Standard):高級(jí)加密標(biāo)準(zhǔn),是下一代的加密算法標(biāo)準(zhǔn),速度快,安全級(jí)別高;

AES與3DES的比較

算法名稱(chēng) 算法類(lèi)型 密鑰長(zhǎng)度 速度 解密時(shí)間(建設(shè)機(jī)器每秒嘗試255個(gè)密鑰) 資源消耗
AES 對(duì)稱(chēng)block密碼 128、192、256位 1490000億年
3DES 對(duì)稱(chēng)feistel密碼 112位或168位 46億年

非對(duì)稱(chēng)算法

RSA:由?RSA?公司發(fā)明,是一個(gè)支持變長(zhǎng)密鑰的公共密鑰算法,需要加密的文件塊的長(zhǎng)度也是可變的;

DSA(Digital Signature Algorithm):數(shù)字簽名算法,是一種標(biāo)準(zhǔn)的?DSS(數(shù)字簽名標(biāo)準(zhǔn));

ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學(xué)。

ECC和RSA相比,在許多方面都有對(duì)絕對(duì)的優(yōu)勢(shì),主要體現(xiàn)在以下方面:

抗攻擊性強(qiáng)。相同的密鑰長(zhǎng)度,其抗攻擊性要強(qiáng)很多倍。

計(jì)算量小,處理速度快。ECC總的速度比RSA、DSA要快得多。

存儲(chǔ)空間占用小。ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA、DSA相比要小得多,意味著它所占的存貯空間要小得多。這對(duì)于加密算法在IC卡上的應(yīng)用具有特別重要的意義。

帶寬要求低。當(dāng)對(duì)長(zhǎng)消息進(jìn)行加解密時(shí),三類(lèi)密碼系統(tǒng)有相同的帶寬要求,但應(yīng)用于短消息時(shí)ECC帶寬要求卻低得多。帶寬要求低使ECC在無(wú)線網(wǎng)絡(luò)領(lǐng)域具有廣泛的應(yīng)用前景。

下面兩張表示是RSA和ECC的安全性和速度的比較。

攻破時(shí)間(MIPS年) RSA/DSA(密鑰長(zhǎng)度) ECC密鑰長(zhǎng)度 RSA/ECC密鑰長(zhǎng)度比
104 512 106 5:1
108 768 132 6:1
1011 1024 160 7:1
1020 2048 210 10:1
1078 21000 600 35:1
攻破時(shí)間(MIPS年) RSA/DSA(密鑰長(zhǎng)度) ECC密鑰長(zhǎng)度 RSA/ECC密鑰長(zhǎng)度比
104 512 106 5:1
108 768 132 6:1
1011 1024 160 7:1
1020 2048 210 10:1
1078 21000 600 35:1

RSA和ECC安全模長(zhǎng)得比較

功能 Security Builder 1.2 BSAFE 3.0
163位ECC(ms) 1,023位RSA(ms)
密鑰對(duì)生成 3.8 4,708.3
簽名 2.1(ECNRA) 228.4
3.0(ECDSA)
認(rèn)證 9.9(ECNRA) 12.7
10.7(ECDSA)
Diffie—Hellman密鑰交換 7.3 1,654.0

RSA和ECC速度比較

散列算法

散列是信息的提煉,通常其長(zhǎng)度要比信息小得多,且為一個(gè)固定長(zhǎng)度。加密性強(qiáng)的散列一定是不可逆的,這就意味著通過(guò)散列結(jié)果,無(wú)法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導(dǎo)致散列結(jié)果的明顯變化,這稱(chēng)之為雪崩效應(yīng)。散列還應(yīng)該是防沖突的,即找不出具有相同散列結(jié)果的兩條信息。具有這些特性的散列結(jié)果就可以用于驗(yàn)證信息是否被修改。

單向散列函數(shù)一般用于產(chǎn)生消息摘要,密鑰加密等,常見(jiàn)的有:

l?????????MD5(Message Digest Algorithm 5):是RSA數(shù)據(jù)安全公司開(kāi)發(fā)的一種單向散列算法,非可逆,相同的明文產(chǎn)生相同的密文。

l?????????SHA(Secure Hash Algorithm):可以對(duì)任意長(zhǎng)度的數(shù)據(jù)運(yùn)算生成一個(gè)160位的數(shù)值;

SHA-1MD5的比較

因?yàn)槎呔蒑D4導(dǎo)出,SHA-1和MD5彼此很相似。相應(yīng)的,他們的強(qiáng)度和其他特性也是相似,但還有以下幾點(diǎn)不同:

l?????????對(duì)強(qiáng)行供給的安全性:最顯著和最重要的區(qū)別是SHA-1摘要比MD5摘要長(zhǎng)32?位。使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定報(bào)摘要的難度對(duì)MD5是2128數(shù)量級(jí)的操作,而對(duì)SHA-1則是2160數(shù)量級(jí)的操作。這樣,SHA-1對(duì)強(qiáng)行攻擊有更大的強(qiáng)度。

l?????????對(duì)密碼分析的安全性:由于MD5的設(shè)計(jì),易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。

l?????????速度:在相同的硬件上,SHA-1的運(yùn)行速度比MD5慢。

對(duì)稱(chēng)與非對(duì)稱(chēng)算法比較

以上綜述了兩種加密方法的原理,總體來(lái)說(shuō)主要有下面幾個(gè)方面的不同:

l?????????在管理方面:公鑰密碼算法只需要較少的資源就可以實(shí)現(xiàn)目的,在密鑰的分配上,兩者之間相差一個(gè)指數(shù)級(jí)別(一個(gè)是n一個(gè)是n2)。所以私鑰密碼算法不適應(yīng)廣域網(wǎng)的使用,而且更重要的一點(diǎn)是它不支持?jǐn)?shù)字簽名。

l?????????在安全方面:由于公鑰密碼算法基于未解決的數(shù)學(xué)難題,在破解上幾乎不可能。對(duì)于私鑰密碼算法,到了AES雖說(shuō)從理論來(lái)說(shuō)是不可能破解的,但從計(jì)算機(jī)的發(fā)展角度來(lái)看。公鑰更具有優(yōu)越性。

l?????????從速度上來(lái)看:AES的軟件實(shí)現(xiàn)速度已經(jīng)達(dá)到了每秒數(shù)兆或數(shù)十兆比特。是公鑰的100倍,如果用硬件來(lái)實(shí)現(xiàn)的話這個(gè)比值將擴(kuò)大到1000倍。

  1. 三.加密算法的選擇

由于非對(duì)稱(chēng)加密算法的運(yùn)行速度比對(duì)稱(chēng)加密算法的速度慢很多,當(dāng)我們需要加密大量的數(shù)據(jù)時(shí),建議采用對(duì)稱(chēng)加密算法,提高加解密速度。

對(duì)稱(chēng)加密算法不能實(shí)現(xiàn)簽名,因此簽名只能非對(duì)稱(chēng)算法。

由于對(duì)稱(chēng)加密算法的密鑰管理是一個(gè)復(fù)雜的過(guò)程,密鑰的管理直接決定著他的安全性,因此當(dāng)數(shù)據(jù)量很小時(shí),我們可以考慮采用非對(duì)稱(chēng)加密算法。

在實(shí)際的操作過(guò)程中,我們通常采用的方式是:采用非對(duì)稱(chēng)加密算法管理對(duì)稱(chēng)算法的密鑰,然后用對(duì)稱(chēng)加密算法加密數(shù)據(jù),這樣我們就集成了兩類(lèi)加密算法的優(yōu)點(diǎn),既實(shí)現(xiàn)了加密速度快的優(yōu)點(diǎn),又實(shí)現(xiàn)了安全方便管理密鑰的優(yōu)點(diǎn)。

那采用多少位的密鑰呢??RSA建議采用1024位的數(shù)字,ECC建議采用160位,AES采用128為即可。

  1. 四.密碼學(xué)在現(xiàn)代的應(yīng)用

保密通信:保密通信是密碼學(xué)產(chǎn)生的動(dòng)因。使用公私鑰密碼體制進(jìn)行保密通信時(shí),信息接收者只有知道對(duì)應(yīng)的密鑰才可以解密該信息。

數(shù)字簽名:數(shù)字簽名技術(shù)可以代替?zhèn)鹘y(tǒng)的手寫(xiě)簽名,而且從安全的角度考慮,數(shù)字簽名具有很好的防偽造功能。在政府機(jī)關(guān)、軍事領(lǐng)域、商業(yè)領(lǐng)域有廣泛的應(yīng)用環(huán)境。

秘密共享:秘密共享技術(shù)是指將一個(gè)秘密信息利用密碼技術(shù)分拆成n個(gè)稱(chēng)為共享因子的信息,分發(fā)給n個(gè)成員,只有k(k≤n)個(gè)合法成員的共享因子才可以恢復(fù)該秘密信息,其中任何一個(gè)或m(m≤k)個(gè)成員合作都不知道該秘密信息。利用秘密共享技術(shù)可以控制任何需要多個(gè)人共同控制的秘密信息、命令等。

認(rèn)證功能:在公開(kāi)的信道上進(jìn)行敏感信息的傳輸,采用簽名技術(shù)實(shí)現(xiàn)對(duì)消息的真實(shí)性、完整性進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證公鑰證書(shū)實(shí)現(xiàn)對(duì)通信主體的身份驗(yàn)證。

密鑰管理:密鑰是保密系統(tǒng)中更為脆弱而重要的環(huán)節(jié),公鑰密碼體制是解決密鑰管理工作的有力工具;利用公鑰密碼體制進(jìn)行密鑰協(xié)商和產(chǎn)生,保密通信雙方不需要事先共享秘密信息;利用公鑰密碼體制進(jìn)行密鑰分發(fā)、保護(hù)、密鑰托管、密鑰恢復(fù)等。

基于公鑰密碼體制可以實(shí)現(xiàn)以上通用功能以外,還可以設(shè)計(jì)實(shí)現(xiàn)以下的系統(tǒng):安全電子商務(wù)系統(tǒng)、電子現(xiàn)金系統(tǒng)、電子選舉系統(tǒng)、電子招投標(biāo)系統(tǒng)、電子彩票系統(tǒng)等。