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