曹 陽,郝玉潔,洪 歧
(1.陜西理工學(xué)院計(jì)算機(jī)系,陜西漢中723000;2.電子科技大學(xué)計(jì)算機(jī)學(xué)院,四川成都 610051)
密鑰協(xié)商方案(key agreement scheme)就是一種能夠讓通信雙方或多個(gè)參與方在一個(gè)公開的、不安全的信道上,通過通信協(xié)議協(xié)商建立一次會(huì)話所用的臨時(shí)密鑰的密碼協(xié)議。橢圓曲線密鑰協(xié)商方案(elliptic curve key agreement scheme-diffie-hellman version,ECDH)[1-2]是橢圓曲線密碼體制[3]中常用密鑰協(xié)商方案之一,已被列入IEEE1363-2000和ANSIX9.63等標(biāo)準(zhǔn)之中。它能較好地防止被動(dòng)攻擊,但無法應(yīng)付所謂的中間人攻擊。M.Aydos等[4]提出采用證書實(shí)現(xiàn)可認(rèn)證的密鑰交換,能防止中間人的攻擊,但此方案需要通過第三方可信認(rèn)證中心CA來完成,且終端能夠處理證書,系統(tǒng)擴(kuò)展存在較大的難度,當(dāng)用戶增多時(shí)需要增加存儲(chǔ)空間來存儲(chǔ)證書,同時(shí)也要增加帶寬來驗(yàn)證證書。Seo等[5]提出基于共享口令可認(rèn)證的Diffie-Hellman密鑰協(xié)商協(xié)議,但該方案容易遭到離線口令猜測(cè)、服務(wù)器欺騙及字典攻擊。為了解決上述問題,本文提出一種基于橢圓曲線離散對(duì)數(shù)問題(elliptic curve discrete logarithm problem,ECDLP)的有身份認(rèn)證的密鑰協(xié)商方案。
所謂橢圓曲線[6-7]指的是由韋爾斯特拉斯(Weierstrass)方程所確定的平面曲線
(1)式中:系數(shù)ai(i=1,2,…,6)定義在某個(gè)域上,可以是有理數(shù)域、實(shí)數(shù)域、復(fù)數(shù)域,還可以是有限域GF(q);x,y是橢圓曲線上的點(diǎn),橢圓曲線密碼體制中用到的橢圓曲線都定義在有限域上的。
常用的有限域GF(q)上的方程定義為y2=x3+ax+b的橢圓曲線E(GF(q)),其中,a,b∈GF(q)且4a3+27b2≠0(modp),p為大于3的素?cái)?shù)。
橢圓曲線公鑰密碼體制的安全性[8-9]與相應(yīng)的ECDLP的求解困難性等價(jià),困難性是所有橢圓曲線密碼方案安全性的基礎(chǔ)。ECDLP定義為給定橢圓曲線E(GF(q))及其上一點(diǎn)P,n為P點(diǎn)的階,對(duì)于另一點(diǎn)Q∈E(GF(q)),求整數(shù)l(0≤l≤n-1),使得Q=lP(假設(shè)整數(shù)l存在),其中,l稱為Q的以P為底的離散對(duì)數(shù)。橢圓曲線上所有的點(diǎn),外加一個(gè)無窮遠(yuǎn)點(diǎn)構(gòu)成的集合連同其上定義的加法運(yùn)算構(gòu)成一個(gè)Abel群。在Abel群E(GF(q))上關(guān)于m(m是明文消息)的方程Q=mP中,已知m和點(diǎn)P求點(diǎn)Q比較容易,反之,已知點(diǎn)Q和點(diǎn)P求m卻是相當(dāng)困難,這個(gè)問題稱為橢圓曲線上點(diǎn)群的離散對(duì)數(shù)問題,橢圓曲線密碼體制正是利用這個(gè)困難問題設(shè)計(jì)而來。安全橢圓曲線的選取方法主要有虛數(shù)乘法和隨機(jī)選取2種方法,從安全角度考慮,本文采用隨機(jī)選取方法選取橢圓曲線。
通常加密系統(tǒng)都需要讓原文變?yōu)榭梢赃M(jìn)行數(shù)學(xué)計(jì)算的數(shù)值,在橢圓曲線密碼體制中,需要將明文以一定的方式映射為橢圓曲線上的點(diǎn),一個(gè)點(diǎn)由X坐標(biāo)和Y坐標(biāo)組成,因此,一個(gè)點(diǎn)實(shí)際上是由2個(gè)數(shù)組成的數(shù)對(duì),并且這2個(gè)數(shù)都在曲線所在的有線域GF(q)上。由于一個(gè)點(diǎn)由2個(gè)數(shù)組成,而消息可以轉(zhuǎn)換成一個(gè)數(shù),因此必須找到另外一個(gè)數(shù)與消息轉(zhuǎn)換后得到的數(shù)組成一個(gè)點(diǎn)。這就是所謂的明文消息的嵌入。明文嵌入概率算法描述如下。
1)假設(shè)明文消息是m(0≤m≤M),k是一個(gè)足夠大的整數(shù),使得將明文消息鑲嵌到橢圓曲線上時(shí),錯(cuò)誤的概率是2-k。
2)計(jì)算x={mk+j,j=0,1,2,…}={30m,30m+1,30m+2,…},直到x3+ax+b(modp)是平方根,即得到橢圓曲線上的點(diǎn) (x,,其中,k可以在30~50取值,不防取k=30,m是明文消息。
3)從橢圓曲線上的點(diǎn)(x,y)得到明文消息m,只須求m=x/30。
ECDH 密鑰協(xié)商[10]是 Diffie-Hellman[11]密鑰協(xié)商協(xié)議在ECC上的實(shí)現(xiàn)。假設(shè)需要完成密鑰協(xié)商通信雙方為A和B,ECDH密鑰協(xié)商協(xié)議描述如下。
1)A隨機(jī)地選擇一個(gè)大整數(shù)kA∈[1,n-1]作為自己的私鑰,并計(jì)算公鑰QA=kA P發(fā)送給B;
2)B隨機(jī)地選擇一個(gè)大整數(shù)kB∈[1,n-1]作為自己的私鑰,計(jì)算公鑰QB=kB P發(fā)送給A;
3)A在收到B發(fā)來的QB以后,計(jì)算
同樣,B在收到A發(fā)過來的QA后,計(jì)算
這樣,A和B完成了ECDH密鑰協(xié)商,協(xié)商后雙方約定的臨時(shí)會(huì)話密鑰為K=kA kB P。
總之,田面水中各形態(tài)氮濃度在施肥后 1~4 d達(dá)到峰值,在施肥后10 d內(nèi)濃度較高,若在此期間遇到強(qiáng)降雨,稻田氮素的流失量會(huì)隨著施氮量的增加而增加,故施氮初期是管理氮素流失的關(guān)鍵時(shí)期。施用控釋氮肥處理田面水各形態(tài)氮濃度比施用尿素處理有所降低,一定程度上減少了氮素流失的風(fēng)險(xiǎn)。
從基于ECC Diffie-Hellman密鑰協(xié)商協(xié)議可以看出,通信雙方A或B在向?qū)Ψ桨l(fā)送信息時(shí)容易受到中間人的攻擊,在密鑰協(xié)商中,任何人都可以獲得公鑰,中間人E選擇大整數(shù)kM∈[1,n-1],截取A發(fā)送給B的kAP和B發(fā)送給A的kB P,并將kAP,kB P修改為kM P,協(xié)商結(jié)束后,A與攻擊者生成共享密鑰kA kB P,但A誤認(rèn)為B共享的,B與攻擊者共享了密鑰kA kB P,而B卻誤認(rèn)為是與A共享的,真正的用戶A與B并沒有共享一個(gè)密鑰。當(dāng)用戶A發(fā)送機(jī)密信息給B時(shí)A用kA kM P對(duì)消息加密,攻擊者截獲進(jìn)行解密,然后偽造一個(gè)消息,用密鑰kA kB P加密后發(fā)送給B,這樣,攻擊者成功的欺騙了用戶A,B,而用戶A,B卻并不知道,這影響了正常的密鑰協(xié)商。
為了使A,B雙方能夠正常通信,完成正常的密鑰協(xié)商,在此建立一個(gè)有身份認(rèn)證機(jī)制的密鑰協(xié)商方案,該方案描述如下。
假設(shè)q是大于3的素?cái)?shù),在有限域GF(q)隨機(jī)生成一條橢圓曲線E(GF(q)),使得求解ECDLP在計(jì)算上是不可行的。隨機(jī)選取一點(diǎn)G,G的階p是一大素?cái)?shù)。通信雙方各自選擇自己的整數(shù)k(1≤k≤p-1),計(jì)算k關(guān)于p的k-1,將k和k-1作為自己的秘密密鑰,而將Q=kG作為自己的公開密鑰。設(shè)A和B進(jìn)行密鑰協(xié)商身份認(rèn)證過程如下。
1)A隨機(jī)選取秘密數(shù)s,并計(jì)算s關(guān)于p乘法逆元s-1,保密s和s-1,計(jì)算GA=sQA,把自己的身份信息IA和GA一并發(fā)送給B;
2)B收到IA和GA,用自己的秘密密鑰加密GA得到GB=kBGA,并把GB發(fā)送給A;
3)A收到GB后,計(jì)算X=s-1kA-1GB=kBGX,并把X與B公開的QB進(jìn)行比較,如果相等則確定對(duì)方就是B,并把(X1,X2)發(fā)送給B,X1=kA-1GB=kBsG,X2=(kA+s)G;否則放棄通信;
4)B收到(X1,X2)后,計(jì)算Y1=kB-1X1=sG,Y=X2+(-Y1)=kAG,把Y與A公開的秘密密鑰QA進(jìn)行比較,如果相等而相信對(duì)方就是A,否則放棄通信。身份認(rèn)證過程如圖1所示。
圖1 身份認(rèn)證過程Fig.1 Authentication process
1)A隨機(jī)選擇整數(shù)nA∈[1,n-1],利用B的公鑰計(jì)算SA,并將SA發(fā)送給B,收到B的SB后計(jì)算:
(2)式中:kA是A的私鑰;QA是A的公鑰;G是E(GF(q))上的一點(diǎn)。
2)B隨機(jī)選擇整數(shù)nB∈[1,n-1],利用A的公鑰計(jì)算SB并將SB發(fā)送給A,收到A的SA后計(jì)算:
(3)式中:kB是B的私鑰;QB是B的公鑰;G是E(GF(q))上的一點(diǎn)。
從上可以看出,在身份認(rèn)證的條件下A和B進(jìn)行密鑰協(xié)商,且雙方能得相同的密鑰。
可以看到,安全橢圓曲線選取保證了求解ECDLP是計(jì)算上不可行的,以下從4方面對(duì)本文提出的密鑰協(xié)商方案進(jìn)行安全性分析。
1)該方案實(shí)現(xiàn)了A和B之間的雙向身份認(rèn)證,攻擊者不能冒充通信雙方中的任何一方,增強(qiáng)了雙方通信的安全性。假設(shè)攻擊者可以冒充A,但由于不知道s和kA,因此無法生成(X1,X2),B也就無法通過計(jì)算得到與A相同的公鑰,同樣攻擊者也不能冒充B,進(jìn)而身份認(rèn)證失敗。
2)密鑰安全性,通信雙方在進(jìn)行密鑰協(xié)商之前,都是在雙向身份認(rèn)證通過的前提下進(jìn)行的,加上密鑰協(xié)商時(shí)nA nB是隨機(jī)選取的,也就使得攻擊者法從一個(gè)已知的會(huì)話密鑰推出將來可能的會(huì)話密鑰,因此密鑰是安全的。
3)前向安全性,信道上傳輸?shù)男畔?GA,GB,(X1,X2),基于ECDLP這一難題,攻擊者無法從中恢復(fù)nA,nB,所以nA,nB依然是安全的。
4)防止重放攻擊,因?yàn)閚A,nB都是隨機(jī)選取,可以保證信息的新鮮性,通信雙方在密鑰協(xié)商的時(shí)候也就確認(rèn)了密鑰是本次協(xié)商得到的。
本文給出了一種基于ECDLP有身份認(rèn)證的ECDH密鑰協(xié)商方案,其安全性是建立在橢圓曲線離散對(duì)數(shù)問題困難性的基礎(chǔ)上之上。該方案分為認(rèn)證和協(xié)商兩個(gè)過程,在身份認(rèn)證中,參數(shù)s,kA,kB都是保密的,因而攻擊者無法冒充A或B,從而保證了身份認(rèn)證的正確性。在密鑰協(xié)商階段也使用了隨機(jī)數(shù)nA,nB,從而保證了密鑰協(xié)商的安全性,同時(shí)還可以防止重放攻擊。
[1] LAW L,MENEZESA,QU M,et al.An efficient protocol for authenticated key agreement[J].Designs,Codes and Cryptography,2003,(3)28:119-134.
[2]SMART N P.An identity based authenticated key agreement protocolbased on the well pairing[J].Electronics Letters,2002,38(13):630-632.
[3]KOBLITZ N.Elliptic Curve Cryptosystem[J].Mathematics of Compution,1987,48(177):203-309.
[4] AYDOSM,SUANR B,KOC C K.An elliptic curve cryptography based authentication and key agreemend protocol forwireless communication[J].Electronics Letters,1999,35(13):82-85.
[5]DONG Hwi-seo,SWEENEY P.Simple authenticated key agreement algorithm[J].Electronics Letters,1999,35(13):1073-1074.
[6]黃劍櫻.淺析橢圓曲線密碼體制[J].宜賓學(xué)院學(xué)報(bào),2007,6(6):88-89.
HUANG Jian-ying.Introduction of Elliptic Curve Cryptography[J].Journal of Yibin University,2007,6(6):88-89.
[7] 曹陽.基于無線局域網(wǎng)認(rèn)證中ECC密碼體制的應(yīng)用研究[D].成都:電子科技大學(xué),2008:16-24.
CAO Yang.Applied Research of Elliptic Curve Cryptography Based on Wireless LAN Certification[D].Cheng du:University of Electronic Science and Technology,2008:16-24.
[8]劉志猛,趙燕麗,范輝.橢圓曲線密碼體制中安全曲線的選?。跩].淮海工學(xué)院學(xué)報(bào),2008,17(1):25-28.
LIU Zhi-meng,ZHAO Yan-li,F(xiàn)AN HUI.Selection of Elliptic Curves Based on ECC[J].Journal of Huaihai Institute of Technology,2008,17(1):25-28.
[9] 汪朝暉.橢圓曲線密碼的安全性研究[D].武漢:武漢大學(xué),2004:27-28.
WANG Chao-hui.A Research on the Securities of Elliptic Curve Cryptosystems[D].Wu han:Wuhan University,2004:27-28.
[10]邵曉博.橢圓曲線密碼體制中密鑰協(xié)商方案改進(jìn)的研究[J].計(jì)算機(jī)安全,2010,01:23-25.
SHAO Xiao-bo.Reserach of Improved Key Agreement Scheme Based on Elliptic Curve Cryptography[J].Computer Security,2010,01:23-25.
[11]隋愛芬,楊義先,鈕心忻,等.基于橢圓曲線密碼的可認(rèn)證密鑰協(xié)商協(xié)議的研究[J].北京郵電大學(xué)學(xué)報(bào),2004,27(3):28-32.
SUI Ai-fen,YANG Yi-xian,NIU Xin-xin etc.Reserach on the Authenticated Key Agreement Protocol Based on Elliptic Curve Cryptography[J].Journal of Beijing University of Posts and Telecommunications,2004,27(3):28-32.