非對(duì)稱加密算法RSA與ECC對(duì)比

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

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

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

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

ECC 和 RSA對(duì)比
在 1976 年,由于對(duì)稱加密算法已經(jīng)不能滿足需要,Diffie 和 Hellman 發(fā)表了一篇叫《密碼學(xué)新動(dòng)向》的文章,介紹了公匙加密的概念,由 Rivet、Shamir、Adelman 提出了 RSA 算法。RSA 就是他們?nèi)诵帐祥_頭字母拼在一起組成的。

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

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

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

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

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

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

隨著安全等級(jí)的增加,當(dāng)前加密法的密鑰長(zhǎng)度也會(huì)成指數(shù)增加,而 ECC 密鑰長(zhǎng)度 卻只是成線性增加。例如,128 位安全加密需要 3,072 位 RSA 密鑰,卻只需要一 個(gè) 256 位 ECC 密鑰。增加到 256 位安全加密需要一個(gè) 15,360 位 RSA 密鑰,卻只需要一個(gè) 512 位 ECC 密鑰。ECC 具有如此卓越的按位比率加密的性能,其特點(diǎn)或?qū)⒊蔀榘踩到y(tǒng)關(guān)注的重點(diǎn)。