基于區(qū)塊鏈橢圓曲線密碼學(xué)ECC的研究
2019年3月22日,第十一期北大軟微-八分量協(xié)同實(shí)驗(yàn)室學(xué)術(shù)沙龍活動(dòng)如期展開(kāi)。沙龍上圍繞橢圓曲線的討論共分為三個(gè)階段,首先介紹了橢圓曲線,之后重點(diǎn)圍繞橢圓曲線數(shù)字簽名算法(ECDSA)做出了分析,并在最后分享了一下相關(guān)技術(shù)最新的進(jìn)展和最受外界關(guān)注的領(lǐng)域。
橢圓曲線密碼學(xué)(ECC),是一種基于橢圓曲線數(shù)學(xué)誕生的非對(duì)稱秘鑰加密的算法。在探究ECC之前,我們有必要回顧一下橢圓曲線數(shù)學(xué)。
我們定義平行線相交于無(wú)窮遠(yuǎn)點(diǎn)P∞,使平面上所有直線都統(tǒng)一為有唯一的交點(diǎn),而區(qū)別于無(wú)窮遠(yuǎn)點(diǎn)的原來(lái)平面上的點(diǎn)為平常點(diǎn)。通過(guò)無(wú)窮遠(yuǎn)點(diǎn)和平常點(diǎn)我們可以引入射影平面的概念。
射影平面:平面上全體無(wú)窮遠(yuǎn)點(diǎn)與全體平常點(diǎn)構(gòu)成射影平面。
而橢圓曲線,指的就是在射影平面上滿足威爾斯特拉斯方程(Weierstrass)所有點(diǎn)的集合,且曲線上所有點(diǎn)都是非奇異的。
所謂非奇異,指的是曲線上任意一點(diǎn)的偏導(dǎo)數(shù)不能同時(shí)為0。
明白了橢圓曲線的由來(lái),我們?cè)賮?lái)看橢圓曲線在密碼學(xué)上應(yīng)用的方案。首先面對(duì)的問(wèn)題就是橢圓曲線是連續(xù)的,并不適合用于加密。因此,橢圓曲線密碼學(xué)的第一要?jiǎng)?wù)就是把橢圓曲線定義在有限域上,(有限域Fp ,p為素?cái)?shù)),并提出一條適于加密的曲線:y2=x3+ax+b (modp)。
相比起在商業(yè)中被廣泛采用的RSA加密算法,ECC優(yōu)勢(shì)是可以使用更短的密鑰,來(lái)實(shí)現(xiàn)與RSA相當(dāng)或更高級(jí)別的安全。通過(guò)下圖我們清楚的發(fā)現(xiàn),160位ECC加密安全性相當(dāng)于1024位RSA加密,而210位ECC加密安全性甚至相當(dāng)于2048位RSA加密。
眾所周知,比特幣中的公私鑰生成以及簽名算法ECDSA都是基于橢圓曲線加密算法而誕生的。ECDSA算法可以說(shuō)是應(yīng)用最廣泛的橢圓曲線簽名算法,從比特幣開(kāi)始,并且已經(jīng)被其它區(qū)塊鏈項(xiàng)目所廣泛使用。在區(qū)塊鏈中使用的公鑰生成算法是SECP256K1。
其中以太坊和比特幣的在ECDSA中的區(qū)別在于二者使用的哈希算法不同,在比特幣中使用的是SHA2-256,在以太坊中使用的是SHA3-256,同樣字節(jié)數(shù)的SHA3比SHA2更安全。
此外,沙龍還重點(diǎn)分析Schnorr簽名算法。與ECDSA相比,Schnorr具備明顯的優(yōu)勢(shì),如安全證明和不可延展性的保證。更重要的是,Schnorr最大的好處是線性特征,簽名的私鑰可以拆分,而ECDSA沒(méi)有這個(gè)特點(diǎn)。鑒于Schnorr支持門(mén)限簽名,顯然Schnorr更具優(yōu)勢(shì)。
最后,大家簡(jiǎn)要了解了一些近年來(lái)對(duì)相關(guān)技術(shù)算法的一些論文,最受關(guān)注的是門(mén)限簽名方案的密碼協(xié)議,僅2019年就有多篇相關(guān)論文的發(fā)表。在最后,沈晴霓教授和Trias資深系統(tǒng)研發(fā)胡志琳博士就此后的沙龍主題做出了安排,下一期沙龍將會(huì)對(duì)國(guó)內(nèi)外一些比較有創(chuàng)新價(jià)值的學(xué)術(shù)論文進(jìn)行分析,并對(duì)技術(shù)的可行性和便利性作出討論。





