老聽別人說加密算法,如今給你個機會也瞭解下

1、背景

據記載,公元前 400 年,古希臘人發明了置換密碼。1881 年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啓用「恩尼格瑪」密碼機,密碼學在戰爭中起着很是重要的做用。 隨着信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提升,因而在 1997 年,美國國家標準局公佈實施了「美國數據加密標準(DES)」,民間力量開始全面介入密碼學的研究和應用中,採用的加密算法有 DES、RSA、SHA 等。隨着對加密強度需求的不斷提升,近期又出現了 AES、ECC 等。 git

使用密碼學能夠達到如下目的: web

  • 保密性:防止用戶的標識或數據被讀取。
  • 數據完整性:防止數據被更改。
  • 身份驗證:確保數據發自特定的一方。

2、加密算法

根據密鑰類型不一樣將現代密碼技術分爲兩類:對稱加密算法非對稱加密算法。對稱鑰匙加密系統是加密和解密均採用同一把祕密鑰匙,並且通訊雙方都必須得到這把鑰匙,並保持鑰匙的祕密。(本文不作贅述) 算法

非對稱密鑰加密系統採用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不一樣的。安全

常見的非對稱加密算法以下: 服務器

  • RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,須要加密的文件塊的長度也是可變的;
  • DSA(Digital Signature Algorithm):數字簽名算法,是一種標準的 DSS(數字簽名標準);
  • ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。

3、ECC 和 RSA

在 1976 年,因爲對稱加密算法已經不能知足須要,Diffie 和 Hellman 發表了一篇叫《密碼學新動向》的文章,介紹了公匙加密的概念,由 Rivet、Shamir、Adelman 提出了 RSA 算法。RSA 就是他們三人姓氏開頭字母拼在一塊兒組成的。網絡

隨着分解大整數方法的進步及完善、計算機速度的提升以及計算機網絡的發展,爲了保障數據的安全,RSA 的密鑰須要不斷增長,可是,密鑰長度的增長致使了其加解密的速度大爲下降,硬件實現也變得愈來愈難以忍受,這對使用 RSA 的應用帶來了很重的負擔,所以須要一種新的算法來代替 RSA。
1985 年 N.Koblitz 和 Miller 提出將橢圓曲線用於密碼算法,全稱:Elliptic curve cryptography,縮寫爲 ECC,根據是有限域上的橢圓曲線上的點羣中的離散對數問題 ECDLP。ECDLP 是比因子分解問題更難的問題,它是指數級的難度。 性能

如今 SSL 證書廣泛使用的是 RSA 算法,因爲上述的 RSA 算法存在的缺點,使用 ECC 做爲其公鑰算法的數字證書近幾年的發展也不容小覷:2008 年左右 CA 開始儲備 ECC 根證書,2012 年左右 CA 開始對外公開銷售 ECC 證書,2014 年 ECC 證書在國外被廣泛開始使用,2015 年國內開始接受 ECC 證書。測試

ECC 和 RSA 相比,在許多方面都有對絕對的優點,主要體如今如下方面: 編碼

  • 抗攻擊性強
  • CPU 佔用少
  • 內容使用少
  • 網絡消耗低
  • 加密速度快

隨着安全等級的增長,當前加密法的密鑰長度也會成指數增長,而 ECC 密鑰長度 卻只是成線性增長。例如,128 位安全加密須要 3,072 位 RSA 密鑰,卻只須要一 個 256 位 ECC 密鑰。增長到 256 位安全加密須要一個 15,360 位 RSA 密鑰,卻只須要一個 512 位 ECC 密鑰。ECC 具備如此卓越的按位比率加密的性能,預計其特色將成爲安全系統關注的重點。
加密

4、測試和分析

前面說了那麼多廢話,接下來重頭來了,接下來會着重從性能來測試兩種算法的區別,如下多圖預警

4.1 服務器性能指標

測試在兩大雲主機上執行。本測試案例中使用了兩個不一樣的身份驗證算法:
咱們看到,ECC-256 層次結構優於 RSA-2048 和 RSA-3072

4.2 響應時間與吞吐量指標之比較

下表中的條目和如下章節詳細說明了咱們爲雲主機運行的測試:測試「0K GET,0% 的重用」使用超大型 ( XLarge ) 服務器在超大型 ( XLarge ) 服桌面客戶端上運行,適用於 Apache 和 IISweb 服務器,會話重用爲 0%,意味着每一個 SSL 握手都是一個完整的握手而不是簡化版握手。同時應注意,0K 文件並不表示空負載,在過程當中仍有 HTTP 擡頭傳輸

測試案例和場景
測試案例和場景

  • 0K GET,重用爲 0%

會話重用爲 0%,代表每次握手是完整的握手,涉及所需 CPU 處理,咱們已經發現運行 Apache 的雲主機出現 CPU 飽和受限,RSA-3072 在 500 次請求 / 秒左右; RSA-2048 在 1300 次左右,而 ECC-256 經證明在達 2800 次前呈現出極強的適應性。重要的一點是,ECC-256 可以適應至關高的事務數量。雖然 Apache 和 IIS 背 後的數據點(如在吞吐量和等待時間中的數據點)是徹底不一樣的,但得出的結論是相同的,並且有利於 ECC-256。注意,ECC-256 與 RSA-3072 同等安全,效率可相差甚遠

  • 200K GET,重用爲 0%

在雲主機上託管 web 服務器的緣由是要減小所需客戶端數,以便使服務器可以最大程度地利用 CPU。結果和「0K GET,重用爲 0%」趨勢相同。

  • 200K GET,重用爲 68%

會話重用爲 68% 的結果是三分之二的握手被簡化。與以前測試相比,平均響應時間降低,同時吞吐量增長,三者間的飽和缺口縮小。若是重用百分比增長並繪製成圖,咱們即可以看到差距在縮小。

  • 1200K GET,重用爲 0%

一個有趣的現象是,在 Apache 一例中咱們觀察到 ECC-256 和 RSA-2048 的網絡傳輸開始飽和,但 RSA-3072 卻達到了 CPU 利用極限。而對於 IIS,三者都達到了 CPU 利用極限。

5、不久,ECC 將無處不在

ECC 的這些特色使它必將取代 RSA,成爲通用的公鑰加密算法。好比 SET 協議的制定者已把它做爲下一代 SET 協議中缺省的公鑰密碼算法。

ECC 證書兼容性:


最後,重點來了!!!
七牛雲獨家支持 ECC 算法的 DV 單域名證書可免費申請及下載!
傳送門:七牛雲 SSL 證書服務
相關文章
相關標籤/搜索