簡(jiǎn)述ECC加密算法

之前的文章中,我們簡(jiǎn)單了解了RSA加密算法,今天我們來(lái)了解另外一個(gè)被廣泛使用的非對(duì)稱(chēng)加密算法——ECC,ECC加密算法的全稱(chēng)為“Elliptic curve cryptography”,中文名為“橢圓加密算法”,是一種基于橢圓曲線數(shù)學(xué)的公開(kāi)密鑰加密算法。

由于RSA和ECC都是基于正向運(yùn)算很容易,反向運(yùn)算很難的單向函數(shù)加密,所以?xún)烧呓?jīng)被一起比較。

ECC加密算法

ECC加密原理

與傳統(tǒng)的基于大質(zhì)數(shù)分解難題的加密算法不同,該加密方式基于 “離散對(duì)數(shù)” 這種數(shù)學(xué)難題。ECC使用了正向運(yùn)算很簡(jiǎn)單,但是反向運(yùn)算很難的單向函數(shù),但是和RSA的原理不同,RSA使用的時(shí)模函數(shù)作為單向函數(shù),而ECC是建立在基于橢圓曲線的離散對(duì)數(shù)問(wèn)題上的密碼體制,給定橢圓曲線上的一個(gè)點(diǎn)G,并選取一個(gè)整數(shù)k,求解K=kG很容易(注意根據(jù)kG求解出來(lái)的K也是橢圓曲線上的一個(gè)點(diǎn));反過(guò)來(lái),在橢圓曲線上給定兩個(gè)點(diǎn)K和G,若使K=kG,求整數(shù)k是一個(gè)難題。ECC就是建立在此數(shù)學(xué)難題之上,這一數(shù)學(xué)難題稱(chēng)為橢圓曲線離散對(duì)數(shù)問(wèn)題。其中橢圓曲線上的點(diǎn)K則為公鑰(注意公鑰K不是一個(gè)整數(shù)而是一個(gè)橢圓曲線點(diǎn)),整數(shù)k則為私鑰(實(shí)際上是一個(gè)大整數(shù))。

ECC加密算法

由于橢圓曲線的離散對(duì)數(shù)問(wèn)題并不是一個(gè)很好理解的數(shù)學(xué)問(wèn)題,在這里就不多做贅述,大家只要了解即可。

ECC主要優(yōu)勢(shì)

ECC主要優(yōu)勢(shì)是可以使用更小的密鑰并提供相當(dāng)高等級(jí)的安全。ECC 164位的密鑰產(chǎn)生一個(gè)安全級(jí),相當(dāng)于RSA 1024位密鑰提供的保密強(qiáng)度,而且計(jì)算量較小,處理速度更快,存儲(chǔ)空間和傳輸帶寬占用較少。

ECC加密算法

ECC常見(jiàn)應(yīng)用

由于ECC的優(yōu)點(diǎn)特性,所以經(jīng)常被用作于HTTPS的數(shù)字簽名和數(shù)字證書(shū);SSH(安全外殼協(xié)議)和PGP(優(yōu)良保密協(xié)議)也在使用ECC加密算法;以太坊平臺(tái)和虛擬貨幣比特幣等也選擇ECC作為加密算法。

ECC加密算法

ECC加密算法自1985年提出后,因其工程應(yīng)用中難度較高,可能出現(xiàn)的“后門(mén)”以及專(zhuān)利問(wèn)題,直到2005年才被廣泛支持和應(yīng)用。在當(dāng)前時(shí)代需求的刺激下,ECC算法可能會(huì)逐步取代RSA算法,成為主流加密算法。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。