基于橢圓曲線加密算法的數(shù)字簽名技術(shù)

數(shù)字簽名用于鑒定簽名人的身份以及對一項(xiàng)電子數(shù)據(jù)內(nèi)容的認(rèn)可。它還能驗(yàn)證出文件的原文在傳輸過程中有無變動,確保傳輸電子文件的完整性、真實(shí)性和不可抵賴性。下面我將給大家介紹一種基于橢圓曲線加密算法的數(shù)字簽名技術(shù)。

基于橢圓曲線加密算法的數(shù)字簽名

1、基于橢圓曲線加密算法數(shù)字簽名的原理

(1)生成密鑰對

首先,需要確定加密算法的公鑰與私鑰。選擇一條橢圓曲線E(a,b,p值給定),在E上選取一個周期很大的點(diǎn)P=(Xp,Yp),它的周期為一個很大的素數(shù)n。在橢圓曲線密碼體制中,具體的曲線E及點(diǎn)P和它的周期n都是公開信息。給定參數(shù)(p,E,P,n)以后,選擇d∈R[1,n-1]。計(jì)算Q=dP,返回(Q,d),其中,Q為公鑰,d為私鑰。

(2)加密算法

確定了橢圓曲線加密算法的公鑰與私鑰以后,就可以進(jìn)行加密了。加密算法如下:

首先,確定參數(shù)組(p,E,P,n),公鑰Q,明文m;然后,將明文m表示為橢圓曲線E上的點(diǎn)M;選擇k∈R[1,n-1],計(jì)算C1=kP,C2=M+kQ。(C1,C2)就是明文文件加密后的密文。

(3)解密算法

收到密文文件以后,可以對密文進(jìn)行解密,解密算法如下:

首先,確定參數(shù)組(p,E,P,n),私鑰d,密文(C1,C2);然后,計(jì)算M=C2-dC1,并從點(diǎn)M中取出明文m。

2、基于橢圓曲線加密算法數(shù)字簽名過程

(1)簽名過程

假如現(xiàn)在A想給簽署一份文件,為確認(rèn)這份文件確實(shí)是A簽署的,可以先對這份文件進(jìn)行數(shù)字簽名。用橢圓曲線加密算法的數(shù)字簽名過程如下:

a、對明文使用HASH加密算法,得到明文的數(shù)據(jù)摘要。(大多時候,明文的信息都比較長,如果直接用橢圓曲線加密算法加密,加密的速度會比較慢,而且耗費(fèi)系統(tǒng)資源。這時候,可使用HASH函數(shù),使用MD5或者SHA算法生成數(shù)據(jù)摘要。這樣做的優(yōu)點(diǎn)是:輸出較短,一般是128位;抗逆向攻擊;抗碰撞攻擊);

b、對數(shù)據(jù)摘要進(jìn)行加密,使用A的私鑰進(jìn)行橢圓曲線算法加密,得到數(shù)據(jù)摘要的密文;

c、將明文和加密后的摘要同時進(jìn)行DES加密,將密文送給B。數(shù)字簽名過程,如圖所示:

基于橢圓曲線加密算法的數(shù)字簽名技術(shù)

 

(2)驗(yàn)證過程

B收到A發(fā)來的密文后,為了驗(yàn)證密文確實(shí)是A發(fā)送的,可以對密文進(jìn)行驗(yàn)證,驗(yàn)證過程如下:

a、對密文進(jìn)行DES解密,得到明文和A用橢圓曲線算法機(jī)密后的摘要;

b、對明文使用HASH算法,得到明文的數(shù)據(jù)摘要;

c、使用A的公鑰對A加密的數(shù)據(jù)摘要進(jìn)行解密,得到數(shù)據(jù)摘要;

d、將b和c得到的數(shù)據(jù)摘要進(jìn)行比較,如果相同,則說明該密文確實(shí)是A發(fā)送的,如不同,,則說明該密文不是A發(fā)送的。

基于橢圓曲線加密算法的數(shù)字簽名技術(shù)

?

小知識之橢圓曲線加密算法

橢圓曲線加密算法是一種公鑰加密算法,與主流的RSA算法相比,橢圓曲線加密算法可以使用較短的密鑰達(dá)到相同的安全程度。