1. 程式人生 > >密碼學之各種加解密演算法比較

密碼學之各種加解密演算法比較

對稱加密演算法

對稱加密演算法用來對敏感資料等資訊進行加密,常用的演算法包括:

DESData Encryption Standard):資料加密標準,速度較快,適用於加密大量資料的場合。

3DESTriple DES):是基於DES,對一塊資料用三個不同的金鑰進行三次加密,強度更高。

AESAdvanced Encryption Standard):高階加密標準,是下一代的加密演算法標準,速度快,安全級別高;

AES3DES的比較

演算法名稱

演算法型別

金鑰長度

速度

解密時間(建設機器每秒嘗試255個金鑰)

資源消耗

AES

對稱block

密碼

128192256

1490000億年

3DES

對稱feistel密碼

112位或168

46億年

非對稱演算法

RSA:由 RSA 公司發明,是一個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的;

DSADigital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標準);

ECCElliptic Curves Cryptography):橢圓曲線密碼編碼學。

ECCRSA相比,在許多方面都有對絕對的優勢,主要體現在以下方面:

抗攻擊性強。相同的金鑰長度,其抗攻擊性要強很多倍。

計算量小,處理速度快。ECC總的速度比RSADSA要快得多。

儲存空間佔用小。ECC的金鑰尺寸和系統引數與RSADSA相比要小得多,意味著它所佔的存貯空間要小得多。這對於加密演算法在IC卡上的應用具有特別重要的意義。

頻寬要求低。當對長訊息進行加解密時,三類密碼系統有相同的頻寬要求,但應用於短訊息時ECC頻寬要求卻低得多。頻寬要求低使ECC在無線網路領域具有廣泛的應用前景。

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

攻破時間(MIPS)

RSA/DSA(金鑰長度)

ECC金鑰長度

RSA/ECC金鑰長度比

104

512

106

5

1

108

768

132

61

1011

1024

160

71

1020

2048

210

101

1078

21000

600

351

攻破時間(MIPS)

RSA/DSA(金鑰長度)

ECC金鑰長度

RSA/ECC金鑰長度比

104

512

106

51

108

768

132

61

1011

1024

160

71

1020

2048

210

101

1078

21000

600

351

RSAECC安全模長得比較

功能

Security Builder 1.2

BSAFE 3.0

163ECC(ms)

1,023RSA(ms)

金鑰對生成

3.8

4,708.3

簽名

2.1(ECNRA)

228.4

3.0(ECDSA)

認證

9.9(ECNRA)

12.7

10.7(ECDSA)

Diffie—Hellman金鑰交換

7.3

1,654.0

RSAECC速度比較

雜湊演算法

雜湊是資訊的提煉,通常其長度要比資訊小得多,且為一個固定長度。加密性強的雜湊一定是不可逆的,這就意味著通過雜湊結果,無法推出任何部分的原始資訊。任何輸入資訊的變化,哪怕僅一位,都將導致雜湊結果的明顯變化,這稱之為雪崩效應。雜湊還應該是防衝突的,即找不出具有相同雜湊結果的兩條資訊。具有這些特性的雜湊結果就可以用於驗證資訊是否被修改。

單向雜湊函式一般用於產生訊息摘要,金鑰加密等,常見的有:

lMD5Message Digest Algorithm 5):是RSA資料安全公司開發的一種單向雜湊演算法,非可逆,相同的明文產生相同的密文。

lSHASecure Hash Algorithm):可以對任意長度的資料運算生成一個160位的數值;

SHA-1MD5的比較

因為二者均由MD4匯出,SHA-1MD5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:

l對強行供給的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32 位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對MD52128數量級的操作,而對SHA-1則是2160數量級的操作。這樣,SHA-1對強行攻擊有更大的強度。

l對密碼分析的安全性:由於MD5的設計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。

l速度:在相同的硬體上,SHA-1的執行速度比MD5慢。

對稱與非對稱演算法比較

以上綜述了兩種加密方法的原理,總體來說主要有下面幾個方面的不同:

l在管理方面:公鑰密碼演算法只需要較少的資源就可以實現目的,在金鑰的分配上,兩者之間相差一個指數級別(一個是n一個是n2)。所以私鑰密碼演算法不適應廣域網的使用,而且更重要的一點是它不支援數字簽名。

l在安全方面:由於公鑰密碼演算法基於未解決的數學難題,在破解上幾乎不可能。對於私鑰密碼演算法,到了AES雖說從理論來說是不可能破解的,但從計算機的發展角度來看。公鑰更具有優越性。

l從速度上來看:AES的軟體實現速度已經達到了每秒數兆或數十兆位元。是公鑰的100倍,如果用硬體來實現的話這個比值將擴大到1000倍。

由於非對稱加密演算法的執行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議採用對稱加密演算法,提高加解密速度。

對稱加密演算法不能實現簽名,因此簽名只能非對稱演算法。

由於對稱加密演算法的金鑰管理是一個複雜的過程,金鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮採用非對稱加密演算法。

在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就集成了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。

那採用多少位的金鑰呢? RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。

保密通訊:保密通訊是密碼學產生的動因。使用公私鑰密碼體制進行保密通訊時,資訊接收者只有知道對應的金鑰才可以解密該資訊。

數字簽名:數字簽名技術可以代替傳統的手寫簽名,而且從安全的角度考慮,數字簽名具有很好的防偽造功能。在政府機關、軍事領域、商業領域有廣泛的應用環境。

祕密共享:祕密共享技術是指將一個祕密資訊利用密碼技術分拆成n個稱為共享因子的資訊,分發給n個成員,只有k(kn)個合法成員的共享因子才可以恢復該祕密資訊,其中任何一個或m(mk)個成員合作都不知道該祕密資訊。利用祕密共享技術可以控制任何需要多個人共同控制的祕密資訊、命令等。

認證功能:在公開的通道上進行敏感資訊的傳輸,採用簽名技術實現對訊息的真實性、完整性進行驗證,通過驗證公鑰證書實現對通訊主體的身份驗證。

基於公鑰密碼體制可以實現以上通用功能以外,還可以設計實現以下的系統:安全電子商務系統、電子現金系統、電子選舉系統、電子招投標系統、電子彩票系統等。