密碼學之各種加解密演算法比較
對稱加密演算法
對稱加密演算法用來對敏感資料等資訊進行加密,常用的演算法包括:
DES(Data Encryption Standard):資料加密標準,速度較快,適用於加密大量資料的場合。
3DES(Triple DES):是基於DES,對一塊資料用三個不同的金鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard):高階加密標準,是下一代的加密演算法標準,速度快,安全級別高;
AES與3DES的比較
演算法名稱 |
演算法型別 |
金鑰長度 |
速度 |
解密時間(建設機器每秒嘗試255個金鑰) |
資源消耗 |
AES |
對稱block密碼 |
128、192、256位 |
高 |
1490000億年 |
低 |
3DES |
對稱feistel密碼 |
112位或168位 |
低 |
46億年 |
中 |
RSA:由 RSA 公司發明,是一個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標準);
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
ECC和RSA相比,在許多方面都有對絕對的優勢,主要體現在以下方面:
抗攻擊性強。相同的金鑰長度,其抗攻擊性要強很多倍。
計算量小,處理速度快。ECC總的速度比RSA、DSA要快得多。
儲存空間佔用小。ECC的金鑰尺寸和系統引數與RSA、DSA相比要小得多,意味著它所佔的存貯空間要小得多。這對於加密演算法在IC卡上的應用具有特別重要的意義。
頻寬要求低。當對長訊息進行加解密時,三類密碼系統有相同的頻寬要求,但應用於短訊息時ECC頻寬要求卻低得多。頻寬要求低使ECC在無線網路領域具有廣泛的應用前景。
下面兩張表示是RSA和ECC的安全性和速度的比較。
攻破時間(MIPS年) |
RSA/DSA(金鑰長度) |
ECC金鑰長度 |
RSA/ECC金鑰長度比 |
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 |
攻破時間(MIPS年) |
RSA/DSA(金鑰長度) |
ECC金鑰長度 |
RSA/ECC金鑰長度比 |
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安全模長得比較
功能 |
Security Builder 1.2 |
BSAFE 3.0 |
163位ECC(ms) |
1,023位RSA(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 |
RSA和ECC速度比較
雜湊是資訊的提煉,通常其長度要比資訊小得多,且為一個固定長度。加密性強的雜湊一定是不可逆的,這就意味著通過雜湊結果,無法推出任何部分的原始資訊。任何輸入資訊的變化,哪怕僅一位,都將導致雜湊結果的明顯變化,這稱之為雪崩效應。雜湊還應該是防衝突的,即找不出具有相同雜湊結果的兩條資訊。具有這些特性的雜湊結果就可以用於驗證資訊是否被修改。
單向雜湊函式一般用於產生訊息摘要,金鑰加密等,常見的有:
l MD5(Message Digest Algorithm 5):是RSA資料安全公司開發的一種單向雜湊演算法,非可逆,相同的明文產生相同的密文。
l SHA(Secure Hash Algorithm):可以對任意長度的資料運算生成一個160位的數值;
SHA-1與MD5的比較
因為二者均由MD4匯出,SHA-1和MD5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:
l 對強行供給的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32 位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對MD5是2128數量級的操作,而對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(k≤n)個合法成員的共享因子才可以恢復該祕密資訊,其中任何一個或m(m≤k)個成員合作都不知道該祕密資訊。利用祕密共享技術可以控制任何需要多個人共同控制的祕密資訊、命令等。
認證功能:在公開的通道上進行敏感資訊的傳輸,採用簽名技術實現對訊息的真實性、完整性進行驗證,通過驗證公鑰證書實現對通訊主體的身份驗證。
基於公鑰密碼體制可以實現以上通用功能以外,還可以設計實現以下的系統:安全電子商務系統、電子現金系統、電子選舉系統、電子招投標系統、電子彩票系統等。
相關文章
- Selenium各種工具比較
- python各種加解密方法Python解密
- C#中各種Lock的速度比較C#
- 手機的各種密碼密碼
- 排序(3)--各類排序演算法的比較排序演算法
- 密碼學之DES/AES演算法密碼學演算法
- JS嵌入html的方式及各種方式的比較JSHTML
- 各種富文字/ HTML編輯器和框架比較HTML框架
- 各種時間型別的轉換及比較型別
- stl中各種容器的自定義比較函式函式
- 三種高階比較排序演算法排序演算法
- js中各個型別之間的比較JS型別
- 教你如何恢復各種文件密碼密碼
- jive對密碼的加解密?密碼解密
- MySQL大量資料插入各種方法效能分析與比較MySql
- APP 密碼儲存在何處比較安全APP密碼
- 5種排序演算法效能比較總結排序演算法
- 初練演算法,比較演算法之美演算法
- 密碼學系列之:NIST和SHA演算法密碼學演算法
- MySQL修改root密碼的各種方法整理MySql密碼
- 比較JS合併陣列的各種方法及其優劣JS陣列
- 各種不同檔案系統的比較,資訊很詳細
- 關於insert /*+ append*/ 各種insert插入速度比較APP
- 各種無線接入系統比較分析的準則(轉)
- 密碼學系列之:bcrypt加密演算法詳解密碼學加密演算法
- 幾種排序的比較排序
- 四種Actor框架比較框架
- difftastic:支援各種語言原始碼異同比較的工具FFTAST原始碼
- 凱撒密碼加解密過程與破解原理密碼解密
- 資料結構-各種排序演算法效率對比圖資料結構排序演算法
- javascript排序各種演算法例項程式碼JavaScript排序演算法
- 淺談OICQ的密碼比較 1 (12千字)密碼
- 比較 Informix Version 11 的各個版本ORM
- 學習筆記--- 比較排序之堆排序筆記排序
- 學哪種程式設計比較好,看看這六種語言!程式設計
- 密碼學系列之:Argon2加密演算法詳解密碼學Go加密演算法
- 密碼學系列之:加密貨幣中的scrypt演算法密碼學加密演算法
- [java之list比較]Java