非對稱加密算法RSA與ECC對比

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

使用密碼學可以達到以下目的:
保密性:防止用戶的標識或數(shù)據(jù)被讀取。
數(shù)據(jù)完整性:防止數(shù)據(jù)被更改。
身份驗證:確保數(shù)據(jù)發(fā)自特定的一方。

加密算法
根據(jù)密鑰類型不同將現(xiàn)代密碼技術分為兩類:對稱加密算法和非對稱加密算法。對稱鑰匙加密系統(tǒng)是加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,并保持鑰匙的秘密。
非對稱密鑰加密系統(tǒng)采用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。常見的非對稱加密算法有:

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

ECC 和 RSA對比
在 1976 年,由于對稱加密算法已經不能滿足需要,Diffie 和 Hellman 發(fā)表了一篇叫《密碼學新動向》的文章,介紹了公匙加密的概念,由 Rivet、Shamir、Adelman 提出了 RSA 算法。RSA 就是他們三人姓氏開頭字母拼在一起組成的。

隨著分解大整數(shù)方法的進步及完善、計算機速度的提高以及計算機網絡的發(fā)展,為了保障數(shù)據(jù)的安全,RSA 的密鑰需要不斷增加,但是,密鑰長度的增加導致了其加解密的速度大為降低,硬件實現(xiàn)也變得越來越難以忍受,這對使用 RSA 的應用帶來了很重的負擔,因此需要一種新的算法來代替 RSA。

1985 年 N.Koblitz 和 Miller 提出將橢圓曲線用于密碼算法,全稱:Elliptic curve cryptography,縮寫為 ECC,根據(jù)是有限域上的橢圓曲線上的點群中的離散對數(shù)問題 ECDLP。ECDLP 是比因子分解問題更難的問題,它是指數(shù)級的難度。

現(xiàn)在 SSL 證書普遍使用的是 RSA 算法,由于上述的 RSA 算法存在的缺點,使用 ECC 作為其公鑰算法的數(shù)字證書近幾年的發(fā)展也不容小覷:2008 年左右 CA 開始儲備 ECC 根證書,2012 年左右 CA 開始對外公開銷售 ECC 證書,2014 年 ECC 證書在國外被普遍開始使用,2015 年國內開始接受 ECC 證書。

非對稱加密算法RSA與ECC系統(tǒng)對比

ECC 和 RSA 相比,在許多方面都有對絕對的優(yōu)勢,主要體現(xiàn)在以下方面:
抗攻擊性強
CPU 占用少
內容使用少
網絡消耗低
加密速度快

非對稱加密算法RSA與ECC系統(tǒng)對比

隨著安全等級的增加,當前加密法的密鑰長度也會成指數(shù)增加,而 ECC 密鑰長度 卻只是成線性增加。例如,128 位安全加密需要 3,072 位 RSA 密鑰,卻只需要一 個 256 位 ECC 密鑰。增加到 256 位安全加密需要一個 15,360 位 RSA 密鑰,卻只需要一個 512 位 ECC 密鑰。ECC 具有如此卓越的按位比率加密的性能,其特點或將成為安全系統(tǒng)關注的重點。