7.1.1橢圓曲線密碼學(xué)概述
橢圓曲線密碼學(xué)(Elliptic curve cryptography贡耽,縮寫為?ECC),是基于橢圓曲線數(shù)學(xué)理論實現(xiàn)的一種非對稱加密算法震蒋。
橢圓曲線算法又細(xì)分為多種具體的算法牵咙。Go語言內(nèi)置的橢圓曲線是secp256R1算法抵代,而比特幣系統(tǒng)中使用secp256K1算法。以太坊系統(tǒng)雖然也采用secp256K1算法建瘫,但是跟比特幣系統(tǒng)的secp256K1算法上又有所差異崭捍。
橢圓曲線公鑰系統(tǒng)是代替RSA的強有力的競爭者,與經(jīng)典的RSA啰脚、DSA等公鑰密碼體制相比殷蛇,橢圓密碼體制有明顯的優(yōu)勢实夹。
1、ECC與RSA算法的優(yōu)勢對比
(1)安全性能更高(ECC可以使用更短的密鑰)粒梦,同等安全強度下亮航,兩者秘鑰長度的對比如下表所示。
(2)處理速度快匀们,計算量小缴淋,處理速度快?在私鑰的處理速度上(解密和簽名),ECC遠(yuǎn) 比RSA泄朴、DSA快得多重抖。
(3)存儲空間占用小,ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA祖灰、DSA相比要小得多钟沛, 所以占用的存儲空間小得多。
(4)帶寬要求低使得ECC具有廣泛的應(yīng)用前景局扶。
ECC的這些特點使它必將取代RSA恨统,成為通用的公鑰加密算法。
7.1.2數(shù)字簽名的概念
所謂數(shù)字簽名(Digital Signature)(又稱公開密鑰數(shù)字簽名三妈、電子簽章)是一種類似寫在紙上的普通的物理簽名延欠,但是使用了公鑰加密領(lǐng)域的技術(shù)實現(xiàn),用于鑒別數(shù)字信息的方法沈跨。一套數(shù)字簽名通常定義兩種互補的運算,一個用于簽名兔综,另一個用于驗證饿凛。數(shù)字簽名可以驗證數(shù)據(jù)的來源,可以驗證數(shù)據(jù)傳輸過程中是否被修改软驰。
數(shù)字簽名是通過非對稱加密算法中的私鑰加密涧窒、公鑰解密過程來實現(xiàn)的。私鑰加密就是私鑰簽名锭亏,公鑰解密就是公鑰驗證簽名纠吴。因此數(shù)字簽名由兩部分組成:第一部分是使用私鑰為消息創(chuàng)建簽名的算法,第二部分是允許任何人用公鑰來驗證簽名的算法慧瘤。數(shù)字簽名的使用流程如圖13.12所示戴已。
圖7.1?數(shù)字簽名
數(shù)字簽名應(yīng)該滿足如下要求。
l簽名不可偽造性锅减;
l簽名不可抵賴的糖儡;
l簽名可信性,簽名的識別和應(yīng)用相對容易怔匣,任何人都可以驗證簽名的有效性握联;
l簽名是不可復(fù)制的,簽名與原文是不可分割的整體;
l簽名消息不可篡改金闽,因為任意比特數(shù)據(jù)被篡改纯露,其簽名便被隨之改變,那么任何人可以驗證而拒絕接受此簽名代芜。