1. 程式人生 > >【獨家】七牛為開發者傾情奉獻,性能秒殺 RSA 的 ECC 證書免費申請

【獨家】七牛為開發者傾情奉獻,性能秒殺 RSA 的 ECC 證書免費申請

根據 有趣的 希臘人 qpi 需求 接下來 使用 one 安全

技術分享

一、背景

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

使用密碼學可以達到以下目的:

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

二、加密算法

根據密鑰類型不同將現代密碼技術分為兩類:對稱加密算法非對稱加密算法。對稱鑰匙加密系統是加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。(本文不做贅述)

非對稱密鑰加密系統采用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。

常見的非對稱加密算法如下:

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

三、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.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 利用極限。

技術分享技術分享

五、不久,ECC 將無處不在

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

ECC 證書兼容性:

技術分享技術分享技術分享技術分享

最後,重點來了!!!

七牛雲獨家支持 ECC 算法的 DV 單域名證書可免費申請及下載!

傳送門https://portal.qiniu.com/certificate/apply

【獨家】七牛為開發者傾情奉獻,性能秒殺 RSA 的 ECC 證書免費申請