国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于橢圓曲線加密技術(shù)實現(xiàn)雙向認(rèn)證的數(shù)字簽名方案

2014-04-29 01:34:34鄧婕卓碧華
商業(yè)2.0 2014年12期
關(guān)鍵詞:數(shù)字簽名

鄧婕 卓碧華

中圖分類號:TN918.1 文獻(xiàn)標(biāo)識碼:A

摘要:提出一種基于橢圓曲線離散對數(shù)問題的數(shù)字簽名方案。避免將明文信息嵌入到橢圓曲線EP(a,b) 上的實際困難,從而提高了加密的效率;同時將DES、ECC和Hash三種算法有機(jī)結(jié)合達(dá)到數(shù)字簽名雙向認(rèn)證的效果。

關(guān)鍵詞:數(shù)字簽名;橢圓曲線加密;單向Hash加密

1.引言

RSA公鑰密碼的安全性基于大整數(shù)因子分解這一數(shù)學(xué)難題,已經(jīng)在信息安全領(lǐng)域得到廣泛的應(yīng)用。

橢圓曲線公鑰密碼(Elliptic Curve Cryptography ,ECC)是在20世紀(jì)80年代由Miller[1]和Koblitz[2]分別獨(dú)立提出的,是繼RSA之后其安全性得到密碼界公認(rèn)的又一公鑰密碼。ECC的安全性基于計算橢圓曲線的離散對數(shù)這一數(shù)學(xué)難題。ECC使用較短的密鑰可以達(dá)到RSA使用較長密碼時同樣的安全性,因此橢圓曲線公鑰密碼在運(yùn)算速度和傳輸帶寬上都有優(yōu)勢,尤其在諸如IC卡、單片機(jī)和移動通信等低端環(huán)境中,存儲資源和計算速度都有很大的限制,橢圓曲線就顯得更為合適。

ECC的安全性依賴于給定G和kG的條件下計算出k的困難程度,這被稱為橢圓曲線對數(shù)問題。取橢圓曲線對數(shù)的最快的技術(shù)是稱為Pollard rho的方法。表一比較了ECC 和RSA的工作效率。我們可以看到,和RSA比較ECC可以用小得多的密鑰大小。另外,在密鑰大小相等時,ECC 和RSA 所要求的計算工作量差不多。因而,在安全性差不多的情況下,使用較短密鑰的ECC比使用RSA具有計算上的優(yōu)勢。

2.數(shù)字簽名

數(shù)字簽名由公鑰密碼發(fā)展而來,是實現(xiàn)電子交易安全的核心技術(shù)之一,它在身份認(rèn)證、數(shù)據(jù)完整性、不可否認(rèn)性以及匿名性等方面有著重要的應(yīng)用。

在數(shù)字簽名協(xié)議中,數(shù)字簽名必須能保證:接收者能夠核實發(fā)送者對報文的簽名;發(fā)送者事后不能抵賴對報文的簽名;接收者不能偽造對報文的簽名。

數(shù)字簽名的基本原理是:發(fā)送者A用自己的私鑰d對報文m進(jìn)行解密(指一個運(yùn)算動作),將結(jié)果D(m)傳送給接收者B。B用已知的A的公鑰e對密文加密得出E(D(m))=m。因為除A外沒有人能具有A的私鑰,所以除A外沒人能產(chǎn)生密文D(m)。這樣,實現(xiàn)了A對報文m的簽名。

3.基于橢圓曲線的數(shù)字簽名

本方案為實現(xiàn)數(shù)字簽名的目的,它的基本原理是:數(shù)據(jù)通信之前,進(jìn)行Hash運(yùn)算得到信息摘要(因為對整個報文實施加密通常是不切實際的,且對于大的數(shù)據(jù)分組的使用,像ECC這樣的函數(shù)可能也太昂貴了。在這種情況下可以采用Hash函數(shù),因為Hash函數(shù)具有兩個重要特性:①它的輸出一般相對較短,通常為128位;②也是更重要的一點(diǎn),Hash函數(shù)具有抗碰撞性,就是說能保證不會有兩個不同的數(shù)據(jù)產(chǎn)生相同的Hash值,即當(dāng)x≠y是f(x)≠f(y)。因此,攻擊者不能根據(jù)截獲到的真正的散列值,構(gòu)造出欺騙明文并通過鑒別),然后使用ECC對信息摘要進(jìn)行數(shù)字簽名,然后產(chǎn)生一個DES密鑰對信息明文和摘要進(jìn)行加密,同時通過ECC對DES密鑰進(jìn)行加密和實現(xiàn)數(shù)字簽名。

3.1橢圓曲線的定義

ECC是在1985年由V.Miller[1]和 N.Koblitz[2]分別獨(dú)立提出的。對于ECC來說我們最關(guān)心的是一種受限形式的橢圓曲線,這種橢圓曲線定義在一個有限域(Fp)上 。密碼編碼學(xué)特別感興趣的是被稱為模p橢圓群的對象,其中p(p≥3)是一個素數(shù)。這個群的定義如下。選擇兩個滿足下列條件的小于p的非負(fù)整數(shù)a和b:

4a3+27b2(modp)≠0

那么EP(a,b)表示滿足下列條件的模p橢圓群:這個群中的元素(x,y)是滿足如下方程的小于p的非負(fù)整數(shù)另外加上無窮點(diǎn)0:

y2≡x3+ax+b(modp)(1)

我們在這個有限域橢圓曲線E上定義“+”運(yùn)算,P+Q=R,R是過P,Q 的直線上與曲線的另一個交點(diǎn)關(guān)于x的對稱點(diǎn);當(dāng)P=Q 時,R 是P 點(diǎn)的切向量與曲線的另一個交點(diǎn)關(guān)于x 軸的對稱點(diǎn)。這樣,(E,+)構(gòu)成可交換群(Abel群),O是加法單位元(零元)。橢圓曲線上的所有點(diǎn)外加一個叫做無窮遠(yuǎn)點(diǎn)的特殊點(diǎn)構(gòu)成的集合連同一個定義的加法運(yùn)算構(gòu)成一個Abel群。在等式mP=P+P+···+P=Q中,已知m和點(diǎn)P求點(diǎn)Q比較容易,反之已知點(diǎn)Q和點(diǎn)P求m卻是相當(dāng)困難的,這個問題就被稱為橢圓曲線上的離散對數(shù)問題。橢圓曲線密碼體制正是利用這個困難問題設(shè)計而來[5,6]。

3.2橢圓曲線加密方案

設(shè)E為有限域Fp(p≥3為素數(shù))上的橢圓曲線,選擇一個素數(shù)p≈2180和方程(1)的橢圓曲線參數(shù)a和b,這就定義了點(diǎn)組成的橢圓群EP(a,b)。又設(shè)G為EP(a,b)上選定的一個點(diǎn)(稱為基點(diǎn)),選擇G的重要準(zhǔn)則是滿足nG=0的最小n值是一個非常大的素數(shù),我們稱n為G的階,且選擇的n為一個不等于p的大素數(shù)。以eA(1

橢圓曲線加密:

該方案要同時具有認(rèn)證功能,則它需要利用一個信息認(rèn)證碼HMAC=(T,V)和2個hash函數(shù)H1和H2。這里T=T(k,x)是信息認(rèn)證碼的生成算法,它根據(jù)輸入的密鑰k和信息x,輸出標(biāo)簽T。V=V(k,x,T)∈{0,1}是信息認(rèn)證碼的驗證算法,這里k為密鑰,x為信息,T為待驗證的標(biāo)簽。當(dāng)信息可以接受時,V 的輸出為1;當(dāng)信息不能接受時,V 的輸出的0。

設(shè)用戶A欲將明文m加密后發(fā)送給B。Hash函數(shù)H1和H2的輸出為192比特,明文和密鑰也都取為192比特。

用戶A的加密算法:

①A隨機(jī)選取整數(shù)r∈[1,n-1],計算R=rG;

②計算D=rPB=(Dx,Dy);

③將有限域元素Dx作為輸入字節(jié)串Z,計算K1=H1(Z),K2=H2(Z);

④計算c=m⊕K1,T=T(K2,c);

⑤發(fā)送(c,R,T)給B。

用戶B的解密運(yùn)算:

①計算D=eBR=(Dx,Dy);檢查D≠0,如果D=0,則輸出“無效”且結(jié)束。

②將有限域元素Dx作為輸入字節(jié)串Z,計算K1=H1(Z),K2=H2(Z)

③計算V(K2,c,T),若V=0,則拒絕接受該信息;若V=1,則進(jìn)行下一步。

④4)計算m=K1⊕c,輸出明文m.

在上述算法中,將Z的Hash值K1與明文m進(jìn)行c=m⊕K1運(yùn)算,有利于隱蔽Z的特性。而采用信息認(rèn)證碼,一方面得到認(rèn)證的功能,另一個方面防止了攻擊方對密文的篡改,從而攻擊者不能利用選擇密文攻擊法進(jìn)行攻擊。

3.3橢圓曲線的數(shù)字簽名過程

(1)發(fā)送方A準(zhǔn)備好要傳送的明文信息。

(2)發(fā)送方A對信息進(jìn)行Hash運(yùn)算,得到一個信息摘要。

(3)發(fā)送方A用自己的橢圓曲線加密算法的私鑰(SK)對信息摘要進(jìn)行加密,得到發(fā)送方A的數(shù)字簽名,并將其附在明文信息m之后。

(4)發(fā)送方A隨機(jī)產(chǎn)生一個加密密鑰(DES密鑰),并用此密鑰對要發(fā)送的信息(此時要發(fā)送的信息中包含明文和發(fā)送方的數(shù)字簽名)進(jìn)行加密,形成密文。

(5)發(fā)送方A用接受方B的公鑰(PK)對剛才隨機(jī)產(chǎn)生的加密密鑰(DES密鑰)進(jìn)行加密,將加密后的DES密鑰連同密文一起傳送給接受方B。

(6)接受方B收到發(fā)送方A傳過來的密文和加過密的DES密鑰,先用自己的私鑰(SK)對加密的DES密鑰進(jìn)行解密,得到DES密鑰。

(7)然后接受方B用DES密鑰對收到的密文進(jìn)行解密,得到明文信息和數(shù)字簽名,再將DES密鑰拋棄(即DES密鑰作廢)。

(8)接受方B用發(fā)送方A的公鑰(PK)對發(fā)送方A的數(shù)字簽名進(jìn)行解密,得到信息摘要,同時實現(xiàn)了雙向認(rèn)證的效果。

(9)接受方B用相同的Hash算法對收到的明文再進(jìn)行一次Hash運(yùn)算,得到一個新的信息摘要。

(10)接受方將收到的信息摘要和新產(chǎn)生的信息摘要進(jìn)行比較。由于單向Hash函數(shù)具有良好的抗碰撞性,所以如果兩份信息摘要內(nèi)容一致,則可以說明收到的信息沒有被修改過。

4.結(jié)束語

本方案加密和簽名過程中,并沒有將明文m嵌入到橢圓曲線上的形成可逆的Pm點(diǎn)域,同時也避開橢圓曲線加密的求逆的運(yùn)算,從而降低了橢圓曲線加密運(yùn)算的難度;而且對比較龐大的明文信息進(jìn)行Hash運(yùn)算,也對龐大的明文信息和簽名信息使用速度最快的DES進(jìn)行加密,且對需要保密的DES密鑰和信息摘要則采用強(qiáng)度較高的ECC進(jìn)行加密,這樣可以充分發(fā)揮Hash、DES和ECC各自的長處,在不降低安全性的情況下,大大節(jié)省了加密的時間和加密的效率,并達(dá)到相互認(rèn)證的效果。

猜你喜歡
數(shù)字簽名
基于正交拉丁方理論的數(shù)字簽名分組批量驗證
交通運(yùn)輸行業(yè)數(shù)字簽名系統(tǒng)的設(shè)計與實現(xiàn)分析
淺析計算機(jī)安全防護(hù)中數(shù)字簽名技術(shù)的應(yīng)用
數(shù)字簽名助力系統(tǒng)安全
基于數(shù)字簽名的QR碼水印認(rèn)證系統(tǒng)
數(shù)字簽名簡述
掌握方法用好數(shù)字簽名
個人電腦(2014年12期)2014-12-29 13:29:47
基于數(shù)字簽名和HSM的數(shù)據(jù)庫篡改檢測機(jī)制
基于數(shù)字簽名和HSM的數(shù)據(jù)庫篡改檢測機(jī)制
基于JAVA的數(shù)字簽名設(shè)計與實現(xiàn)
南和县| 彰化县| 兰溪市| 肥东县| 时尚| 金乡县| 衡水市| 丹棱县| 五台县| 吉林市| 金溪县| 鹤山市| 襄城县| 锦屏县| 萨嘎县| 迭部县| 宁强县| 千阳县| 博白县| 荆州市| 涞水县| 罗定市| 宁晋县| 娄底市| 贡觉县| 洪湖市| 临漳县| 罗定市| 女性| 长宁区| 武汉市| 汉中市| 油尖旺区| 靖安县| 皋兰县| 忻州市| 利辛县| 东海县| 云和县| 元氏县| 鲁甸县|