專利名稱:公鑰承諾的并發(fā)不可鍛造安全的mqv密鑰交換協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于密碼協(xié)議,具體涉及一種公鑰承諾的并發(fā)不可鍛造安全的MQV密鑰交換協(xié)議。
背景技術(shù):
目前,國(guó)際上最常用(同時(shí)被廣泛標(biāo)準(zhǔn)化)的Diffie-Hellman密鑰交換協(xié)議是MQV和 HMQV協(xié)議。MQV和HMQV協(xié)議的運(yùn)行方式如下具有身份7"力的用戶"A"具有公鑰具有身份A的用戶"B"具有公鑰S=/。用戶 "A"在協(xié)議第一輪發(fā)送P/。用戶"B"在協(xié)議第二輪發(fā)送i^/。這是基本的Diffie-Hellman密鑰交換協(xié)議。用戶"a"檢查r的階為g并計(jì)算會(huì)話密鑰《-z^((7^;r&),用戶"b" 檢查/的階為^并計(jì)算〖=/^((x4d;rrt)。
其中在 mqv 中^二2'+(Imod2'),c^2'+(ymod2') , /等于J或y長(zhǎng)度的一半。在HMQV中J = //(X,/fl),c = /WJ。發(fā)明人最新的研究工作表明,MQV和HMQV協(xié)議存在較大的安全漏洞。具體來(lái)講,我們 發(fā)現(xiàn)若干危險(xiǎn)的針對(duì)MQV和HMQV的并發(fā)中間人攻擊,表明MQV和HMQV不能做到充分的不 可鍛造安全性。我們發(fā)現(xiàn)的MQV和HMQV協(xié)議的安全漏洞可以用如下方法拯救函數(shù)c必 須承諾綁定用戶"B"的公鑰A DH密鑰成分r以及用戶"A"的身份^;函數(shù)"必須承諾 綁定用戶"A"的公鑰丄DH密鑰成分J以及用戶"B"的身份/8。和MQV和HMQV相比較, 本發(fā)明協(xié)議的關(guān)鍵不同之處為用戶"A"的公鑰^l必須作為函數(shù)W的輸入,且用戶"B"的公鑰5必須作為函數(shù)C的輸入;g卩函數(shù)C必須承諾綁定用戶"B"的公鑰S且函數(shù)d必須承諾綁定用戶"A"的公鑰A發(fā)明內(nèi)容本發(fā)明的目的在于提出一種公鑰承諾的并發(fā)不可鍛造安全的MQV密鑰交換協(xié)議,以提 高更為強(qiáng)壯的不可鍛造安全性。本發(fā)明協(xié)議具有如下特點(diǎn)在MQV和HMQV協(xié)議的基礎(chǔ)之上,通過(guò)令函數(shù)d承諾用戶"A"的公鑰,且函數(shù)c承諾 用戶"B"的公鑰,本發(fā)明協(xié)議可以有效地抵抗發(fā)明人所發(fā)現(xiàn)的針對(duì)MQV和HMQV協(xié)議的并 發(fā)中間人攻擊,可以提供更為強(qiáng)壯的并發(fā)不可鍛造安全性,更適合保護(hù)密鑰交換協(xié)議在互 聯(lián)網(wǎng)等并發(fā)環(huán)境中運(yùn)行時(shí)的安全性。本發(fā)明協(xié)議的系統(tǒng)工作環(huán)境為(1) .系統(tǒng)參數(shù)系統(tǒng)參數(shù)(a ft & "其中p和《為大素?cái)?shù),并且g能整除P-7, g是一個(gè)A中階(order)為^的元素,使得在《中由g定義的子群上離散對(duì)數(shù) (discrete logarithm DL)及計(jì)算Diffie-Hellman (computational Diff ie-Hellman CDH) 問(wèn)題是難的。 一般而言,P的長(zhǎng)度為1024位或2048位,< 的長(zhǎng)度為160或1024。所有的 指數(shù)運(yùn)算及(不在指數(shù)上的)乘法運(yùn)算是模(歷o力p運(yùn)算,加法及指數(shù)上的乘法為模(歷o力 9運(yùn)算(比如g"。表示g"趨。^modp)。這里,《指的是所有比p小并與p互素的正整數(shù) 的集合,即Z、二(1,2,…,; -1〉。定義函數(shù)ZU:Z^ — Z'"使得= gw mod。 w稱為力的離散對(duì)數(shù)。我們要求給定隨機(jī)計(jì)算出的力,沒(méi)有多項(xiàng)式時(shí)間算法計(jì)算出力的離散對(duì) 數(shù)r,這稱為離散對(duì)數(shù)問(wèn)題。計(jì)算Diffie-Hellman問(wèn)題指的是給定隨機(jī)的/與/,沒(méi)有 多項(xiàng)式時(shí)間算法計(jì)算出/ 一般而言,對(duì)于熟悉本領(lǐng)域的人而言,離散對(duì)數(shù)問(wèn)題及計(jì)算 Diffie-Hellman問(wèn)題也可以定義在由橢圓曲線或雙線性對(duì)(bilineartUy)定義的群上。# 是從,"么…,^-W的哈西函數(shù)。為增加計(jì)算速度,^的輸出長(zhǎng)度可以為 / = (|jog29」+ l)/2。 /^是從欣"》{0,1}4的哈西函數(shù),A是會(huì)話密鑰的長(zhǎng)度,比如^=128 或160;對(duì)于字符串…,& yz7>7,〃f&, &,…,sj表示的是將…,&用二進(jìn)制 0-1串來(lái)表示,然后將所有的0-1串連接(即,串聯(lián))起來(lái),最后將串聯(lián)后得到的串作為# 的輸入(元素的串聯(lián)順序可以變化)。凇C是一個(gè)消息認(rèn)證碼算法。(a ft & "私凇O 既可以是全局或部分全局性的公共參數(shù),亦可以由任意一對(duì)執(zhí)行該協(xié)議的用戶進(jìn)行協(xié)商。(2) .除非有特別說(shuō)明,具有身份ID A的用戶"A"有一個(gè)公鑰#/,其中a由用 戶"A"在《中隨機(jī)選取。相應(yīng)地,具有IDA的用戶"B〃的公鑰記為^/,以此類推這 里,4={0,1,2廣.,《-1}。(3) .協(xié)議基于Diffie—Hellman密鑰交換協(xié)議;記I = gx mod ; 為用戶"A"的DH密 鑰成分,義為DH密鑰成分J的離散對(duì)數(shù),義由用戶"A"從Z,-(0,l,…w-1}中隨機(jī)選取。記I^,mod; 為用戶"B"的DH密鑰成分,y為DH密鑰成分r的離散對(duì)數(shù),y由用戶"B" 從& = {0,1,…-1}中隨機(jī)選取。(4) .有一個(gè)可信的證書權(quán)威機(jī)構(gòu)",頒發(fā)證書6FAT,用于將用戶的身份及其相應(yīng)公 鑰,比如^h 0 ,進(jìn)行可公開驗(yàn)證的綁定。綁定用"的電子簽名實(shí)現(xiàn)。綁定時(shí) ^驗(yàn)證公鑰為《中階為< 且非1的元素。用戶"A"的證書記為CX7",包括用戶"A" 的公鑰及"對(duì)(力,^4=/)的電子簽名。(5) .協(xié)議的每一次執(zhí)行稱為一個(gè)會(huì)話(session)。我們假定協(xié)議的每一次執(zhí)行(即,每一次會(huì)話)有一個(gè)標(biāo)示號(hào)(session-identifier) : 用于標(biāo)記并發(fā)運(yùn)行的協(xié)議執(zhí) 行。sA/的制定和協(xié)商可隨協(xié)議的運(yùn)行環(huán)境不同而有所變化比如^W可以是協(xié)議運(yùn)行兩 方發(fā)送的兩個(gè)隨機(jī)串的合并連接。 一般而言,^W包含在協(xié)議運(yùn)行之前用戶交換的信息或交換信息的哈西值。在某些環(huán)境中Sid可在協(xié)議運(yùn)行過(guò)程中產(chǎn)生;在某些環(huán)境中當(dāng)會(huì)話可由語(yǔ)境自動(dòng)標(biāo)示時(shí)ww亦可省略,例如在某些密鑰交換應(yīng)用中y-^^可兼當(dāng)會(huì)話標(biāo)示號(hào)。(6).與協(xié)議執(zhí)行相關(guān)的其它信息p^:除了 (wV,厶,A《A^/, J二/, 夕卜,其 它與協(xié)議執(zhí)行相關(guān)的信息用^/6來(lái)表示。/^6^—個(gè)字ff審, 一般是用戶的IP地址,公鑰 證書,其它需要認(rèn)證的信息,時(shí)間戳等的串聯(lián)。p"6可以為空。在所有具有朋C的協(xié)議實(shí) 現(xiàn)中,為了提高計(jì)算效率,可僅僅將;w6作為i/^7的輸入一部分,而不作為《^r的輸入。本協(xié)議實(shí)現(xiàn)方法用戶"A"及"B"相互交換它們各自的DH密鑰成分1=/和7=/以及公鑰證書。假設(shè) 用戶"A"為協(xié)議的發(fā)起者,用戶"B"為協(xié)議的響應(yīng)者。艮P:用戶"A"在第一輪發(fā)送X 在收到J后用戶"B"檢査義eZ',并在第二輪發(fā)送f;收到r后,用戶"A,,檢査yeZ、。將用戶的身份ID,他們的DH密鑰成分,/宇^/是逸//7游公1^,用兩個(gè)函數(shù)c和d進(jìn)行 承諾綁定。承諾綁定通過(guò)哈西函數(shù)#來(lái)實(shí)現(xiàn)。承諾綁定的關(guān)鍵之點(diǎn)為函數(shù)c必須承諾綁 定用戶"B"的公鑰厭DH密鑰成分r以及用戶"A"的身份厶;函數(shù)d必須承諾綁定用戶 "A"的公鑰力、DH密鑰成分J以及用戶"B"的身份A。會(huì)話密鑰計(jì)算包括基本形式和簡(jiǎn)單形式會(huì)話密鑰計(jì)算的基本形式用戶"A"計(jì)算^ = (F5"te+"a ,檢查i^ * 1并計(jì)算會(huì)話密 鑰尺=/^(&);用戶"B"計(jì)算& = (X4,"",檢査# 1并計(jì)算會(huì)話密鑰尤=/^(&);其中,d = i/ c = //(B,r,/》,,=Cp—1) 。會(huì)話密鑰計(jì)算的簡(jiǎn)單形式用戶"A"在第一輪發(fā)送J,計(jì)算《,二f并計(jì)算會(huì)話密鑰《=/^(&);收到i后用戶"B"檢查J為z、中階為。的非i元素,計(jì)算《廣x^r并計(jì)算會(huì)話密鑰尺=/^(《^;其中,d = H(/"A/S,5,X)。具有身份及密鑰確認(rèn)功能的會(huì)話密鑰計(jì)算形式為了進(jìn)一步相互確認(rèn)身份及會(huì)話密鑰,用戶"A"計(jì)算MAC-密鑰^ "B"計(jì)算^ =/^(&,0);協(xié)議響應(yīng)者"B"在第二輪發(fā)送M4C^(0)。對(duì)于會(huì)話密鑰計(jì)算的基本形式,協(xié)議初始者"A"在另加的第三輪發(fā)送M4C"(1);對(duì)于會(huì)話密鑰計(jì)算的簡(jiǎn)單形式,"A"在第一輪發(fā)送M4C^,(1),用戶"B"在第二輪發(fā)送M4C^(0)。當(dāng)伴隨身份及密鑰確認(rèn)功能時(shí),會(huì)話密鑰設(shè)置為本發(fā)明協(xié)議的具體實(shí)現(xiàn)步驟在下述協(xié)議描述中,大括號(hào)內(nèi)的值表示發(fā)送的信息。注意用戶"A"的公鑰是Z二/ 并具有CA頒發(fā)的證書CE 7^用戶"B"的公鑰是S:/并具有CA頒發(fā)的證書6^%。假設(shè) 用戶"A"為協(xié)議運(yùn)行初始者,用戶"B"為協(xié)議運(yùn)行響應(yīng)者。 協(xié)議-l:會(huì)話密鑰計(jì)算基本形式的協(xié)議實(shí)現(xiàn)步驟 第一輪,從"A"到"B" : {^^/" A 6MTo (k^/p力。 其中x從《中隨機(jī)選??;Z稱為"A"的DH密鑰成分。收到"A"發(fā)送的信息后,"B" 驗(yàn)證"A"的身份、公鑰及證書,Z為Z、中的元素;驗(yàn)證不成功,"B"拒絕繼續(xù)執(zhí)行協(xié)議,否則,進(jìn)入下一輪。第二輪,從"B"至U "A": <formula>formula see original document page 9</formula>y從《中隨機(jī)選取且/稱為"B"的DH密鑰成分。收到"B"發(fā)送的信息后,"A"驗(yàn) 證"B"的身份、公鑰及證書,r為Z'p中的元素;驗(yàn)證不成功,"A"終止協(xié)議。會(huì)話密鑰計(jì)算用戶"A"計(jì)算& = (y5T+"。,檢查& * 1并計(jì)算會(huì)話密鑰 用戶"B"計(jì)算^^(X^f+^ ,檢查^"并計(jì)算會(huì)話密鑰〖=/^(^)。 其中, d = //04,<formula>formula see original document page 9</formula>這里,d-7/(^(,X,/J表示的是 d = //04||X||/s), ^//(&7,/》表示的是£: = //(萬(wàn)||}1/丄"| |"表示的是字符串的順 序連接。會(huì)話密鑰一旦計(jì)算完畢,用戶"B"刪除(y,i^),用戶"A"刪除(x,&)。 協(xié)議-2:會(huì)話密鑰計(jì)算簡(jiǎn)單形式的協(xié)議實(shí)現(xiàn)步驟 第一輪從"A"到"B" : A, A (^T 7;, J二/p力。其中;r從4中隨機(jī)選取;J稱為"A"的DH密鑰成分;用戶"A"計(jì)算& =S"rfa , 計(jì)算會(huì)話密鑰尺并刪除(x,&);其中,"i/(/J牟J5IIX)。收到"A"發(fā)送的信息后,"B"驗(yàn)證"A"的身份、公鑰及證書,J為Z'p中的階為《的 非l元素;驗(yàn)證不成功,"B"中止協(xié)議執(zhí)行;否則,用戶"B"計(jì)算&=^^4,計(jì)算會(huì)話密鑰《=/^c^fl)并刪除o,《》。協(xié)議-3:具有身份及密鑰確認(rèn)功能的協(xié)議實(shí)現(xiàn)步驟第一輪,從"A"至U "B" :<formula>formula see original document page 9</formula>其中;r從《中隨機(jī)選取;J稱為"A"的DH密鑰成分。收到"A"發(fā)送的信息后,"B"驗(yàn)證"A"的身份、公鑰及證書,Z為Z、中的元素;驗(yàn)證不成功,"B"拒絕繼續(xù)執(zhí)行協(xié)議;否則,進(jìn)入下一輪。第二輪,從"b"到"A": Ca 7;, M4C^(0)}。7從4中隨機(jī)選取且7稱為"B"的DH密鑰成分。用戶"B"計(jì)算^ =(^4""+"并檢 查,計(jì)算MAC-密鑰^-Z^(i^,0)和M4C^(0);最后,用戶"B"計(jì)算會(huì)話密鑰 尺=/^(^,1),刪除掉(y,&)并進(jìn)入下一輪。這里/^(/^,0)表示的是/^(&||0), 夂=i^(&,1)表示的是尺=/^(& II1)。收到"B"發(fā)送的信息后,"A"驗(yàn)證"B"的身份、公鑰及證書,F(xiàn)為Z、中的元素;驗(yàn)證不成功,"a"終止協(xié)議;驗(yàn)證成功,用戶"a"計(jì)算A-(raT+^并檢查/:,-i,計(jì)算MAC-密鑰i^-_^^0^,0)并驗(yàn)證脇(^^(0)的正確性;驗(yàn)證不成功,用戶"A"中止協(xié)議執(zhí)行;驗(yàn)證成功,用戶1"計(jì)算會(huì)話密鑰《=/^0^,1),計(jì)算M4C"(1),刪除掉0c,A,&)并進(jìn)入下一輪。第三輪,從"a"到"b": M4Q"(l)h收到"A"發(fā)送的信息后,"B"驗(yàn)證M4C、,(1)的正確性;驗(yàn)證不成功,用戶"A"中止 協(xié)議執(zhí)行,否則,刪除掉《m并結(jié)束協(xié)議執(zhí)行。本發(fā)明中,協(xié)議-1、協(xié)議-2及協(xié)議-3可以有如下變體(1) .在協(xié)議-1和協(xié)議-3中,函數(shù)d和C的其它設(shè)置方法 d=//(/x,a/s,萬(wàn),uo,C=H(力 ; 或者,d = a義,a),c =s,;r,l);或者,fl^i/04,z,:r,/s),c^/f(Ay,x,/》。無(wú)論是哪種設(shè)置方法,其關(guān)鍵點(diǎn)是用戶"a"的公 鑰^必須作為函數(shù)v的輸入,且用戶"B"的公鑰萬(wàn)必須作為函數(shù)c的輸入。在實(shí)際應(yīng)用中,將(^,乂)換為用戶"a"的公鑰證書c^^的哈西值,將(^,B)換為用戶"B"的公鑰證書Ce 的哈西值;或者,將(K^,^換為Cer^、 Ce 以及其它在協(xié)議運(yùn)行之前所交換的cookie、隨機(jī)數(shù)和IP地址信息的哈西值;將wV作為函數(shù)c和d輸 入的一部分。(2) .在協(xié)議-1和協(xié)議-3中,將會(huì)話密鑰和MAC-密鑰計(jì)算中的t省去;艮卩 《4 =(1^"""° ,& =(X4d),A 。此時(shí),用戶"B"必須檢查J為Z、中的階為《的非1 元素,用戶"A"必須檢査7為Z、中的階為g的非l元素;對(duì)于基于橢圓曲線的協(xié)議實(shí)現(xiàn),用戶可僅僅檢查J和f為相應(yīng)橢圓曲線上的非無(wú)窮遠(yuǎn)的點(diǎn)。(3) .在協(xié)議-1、協(xié)議-2和協(xié)議-3的會(huì)話密鑰計(jì)算和MAC-密鑰計(jì)算中,將c和d作為 輸入的一部分。(4) .將哈西函數(shù)^和i^的輸入中的元素的順序進(jìn)行變化。10具體實(shí)施方式
假設(shè),具有身份A的用戶"A"的公鑰是力=/并具有證書6S ^,具有身份A的用戶 "B"的公鑰是^/并具有證書C祝7i。證書6ETO指的是"對(duì)」的身份A及其公鑰 的一個(gè)電子簽名,其余同。我們假設(shè)力為協(xié)議運(yùn)行初始者(initiator), 5為協(xié)議運(yùn)行響應(yīng) 者(responder) <>在下述協(xié)議具體實(shí)施中,消息認(rèn)證碼鵬C采用由IETF(Internet Engineering Task Force)所公布的第2104號(hào)互聯(lián)網(wǎng)意見征求文檔(Internet RFC 2104)中所描述的M^C 認(rèn)證碼?!╲^C只需作兩個(gè)哈西運(yùn)算,并被證明既是消息認(rèn)證碼又是偽隨機(jī)函數(shù)。在協(xié)議具 體實(shí)施中,##^:以及哈西函數(shù)//,/^由^朋-7哈西函數(shù)來(lái)實(shí)現(xiàn)。在下述協(xié)議具體實(shí)施中, 會(huì)話標(biāo)示符wV省去。協(xié)議-1:會(huì)話密鑰計(jì)算基本形式的協(xié)議
具體實(shí)施例方式第一輪,從"A"到"B" : U, A 6MT〃 J=/ (k^p力。其中z從《中隨機(jī)選取;J稱為"A"的DH密鑰成分。收到"A"發(fā)送的信息后,"B" 驗(yàn)證"A"的身份、公鑰及證書(即驗(yàn)證證書頒發(fā)機(jī)構(gòu)^對(duì)(/,^)簽名的有效性),J為Z、中的元素(即1《K/ -1);驗(yàn)證不成功,"B"拒絕繼續(xù)執(zhí)行協(xié)議,否則,進(jìn)入下一輪。第二輪,從"B"到"A":y從《中隨機(jī)選取且F稱為"B"的DH密鑰成分。收到"B"發(fā)送的信息后,"A"驗(yàn) 證"B"的身份、公鑰及證書,r為Z;中的元素;驗(yàn)證不成功,"A"終止協(xié)議。會(huì)話密鑰計(jì)算用戶"A"計(jì)算^^(^T"d禱"mod;7,檢査^^1并計(jì)算會(huì)話密鑰 《=/^(^)。用戶"B"計(jì)算^^(X^廣^m一moc^,檢査^^1并計(jì)算會(huì)話密鑰 K = /^(KB)。其中,^/ = //(爿||1||/》^ = //(5||11/》^ = 07-1) 。這里,"ir,表示 的是字符串的順序連接。會(huì)話密鑰一旦計(jì)算完畢,用戶"B"刪除Cy,i^),用戶"A"刪除 "。。協(xié)議-2:會(huì)話密鑰計(jì)算簡(jiǎn)單形式的協(xié)議
具體實(shí)施例方式第一輪從"A"至lj "B" :A 6MT,, J二/; 力。其中x從^中隨機(jī)選??;J稱為"A"的DH密鑰成分;用戶"A"計(jì)算^ — modp ,計(jì)算會(huì)話密鑰《=/^(&)并刪除(1,&);其中,"二/Z(/JMII/J5IIX)。收到"A"發(fā)送的信息后,"B"驗(yàn)證"A"的身份、公鑰及證書,J為Z、中的非1元素 且JT =lmod; (即I的階為< );驗(yàn)證不成功,"B"中止協(xié)議執(zhí)行;否則,用戶"B"計(jì)算& = ,計(jì)算會(huì)話密鑰《=)并刪除(少,& )。協(xié)議-3:具有身份及密鑰確認(rèn)功能的協(xié)議
具體實(shí)施例方式
第一輪,從"A"到"B" : U, A 6MT力,(k^P刀。其中義從《中隨機(jī)選??;J稱為"A"的DH密鑰成分。收到"A"發(fā)送的信息后,"B" 驗(yàn)證"A"的身份、公鑰及證書,X為Z'p中的元素;驗(yàn)證不成功,"B"拒絕繼續(xù)執(zhí)行協(xié)議否則,進(jìn)入下一輪。第二輪,從"B"到"A": {厶& C朋;P力i/M4C^(0)}。y從4中隨機(jī)選取且y稱為"B"的DH密鑰成分。用戶"B"計(jì)算《,(X^f+^m—mod; 并檢查A^",計(jì)算MAC-密鑰^ =/^(&||0)和//71^6^(0);最后,用戶"B"計(jì)算會(huì)話密鑰尤=/^(&||1),刪除掉o,《j并進(jìn)入下一輪。收到"B"發(fā)送的信息后,"A"驗(yàn)證"B"的身份、公鑰及證書,7為Z;中的元素; 驗(yàn)證不成功,"A"終止協(xié)議;驗(yàn)證成功,用戶"A"計(jì)算& =(rae)te""—mod; 并檢查 & # 1 ,計(jì)算MAC-密鑰& = II 0)并驗(yàn)證//M4C^ (0)的正確性;驗(yàn)證不成功,用戶"A"中止協(xié)議執(zhí)行;驗(yàn)證成功,用戶1"計(jì)算會(huì)話密鑰尺=/^(^4||1),計(jì)算7/M4C^(1), 刪除掉(x,/^,i^)并進(jìn)入下一輪。第三輪,從"A"至U "B": {//M4C"(1)}。收到"A"發(fā)送的信息后,"B"驗(yàn)證Z/M4C^(1)的正確性;驗(yàn)證不成功,用戶"A"中 止協(xié)議執(zhí)行,否則,刪除掉^ 并結(jié)束協(xié)議執(zhí)行。 協(xié)議變體的
具體實(shí)施例方式(1) .在協(xié)議-1和協(xié)議-3中,函數(shù)和C可有其它設(shè)置方法= 或者,"if(/JI単ll",C,/,IIJl/,);或者,C^/Z04IIXIlll/s),^H(Wll義ll/J。無(wú)論是哪種設(shè)置方法,其關(guān)鍵點(diǎn)是用戶"A"的公鑰^必須作為函數(shù)c/的輸入,且用戶"B"的公鑰S必須作為函數(shù)c的輸入。 在具體實(shí)施中,可將(/JI」)換為用戶"A"的公鑰證書CeW^的哈西值,將(/JI^B)換為用戶"B"的公鑰證書Ce 的哈西值;另一個(gè)推薦的實(shí)施方式為將(/JI^/J5)換為CeW^、 Cw^以及其它在協(xié)議運(yùn)行之前所交換的cookie、隨機(jī)數(shù)和IP地址等信息的串 聯(lián)(即pM)或串聯(lián)信息的哈西值(即pM的哈希值)。(2) .在協(xié)議-1和協(xié)議-3中,將會(huì)話密鑰和MAC-密鑰計(jì)算中的t省去;艮卩A = (j^y^。m— modp , & = (X4rf)"c6m— mod/ 。此時(shí),用戶"B"除了檢查J為Z*P 中的非l元素外,還必須檢査JT-lmodp (即J的階為9);用戶"A"除了檢查7為Z、 中的非l元素外,還必須檢查""mod; (即F的階為< )。對(duì)于基于橢圓曲線的協(xié)議 實(shí)現(xiàn),用戶可僅僅檢査J和r為相應(yīng)橢圓曲線上的非無(wú)窮遠(yuǎn)的點(diǎn)。(3) .在協(xié)議-1、協(xié)議-2和協(xié)議-3的會(huì)話密鑰計(jì)算和MAC-密鑰計(jì)算中,將c和J作為 & 輸入的 一 部分。比如,《^^/^(clWII^II0^/^(cll^l&l10),"/^(cll^l^lll),(clU歸l)。(4) .將哈西函數(shù)#和的輸入中的元素的順序進(jìn)行變化。比如 《=/^(l|I^Jk|| 0 = /^(l||^||C||^,等。
權(quán)利要求
1.一種公鑰承諾的并發(fā)不可鍛造安全的MQV密鑰交換協(xié)議,其特征在于系統(tǒng)工作環(huán)境為(1).系統(tǒng)參數(shù)(p,q,g,H,HK,MAC),其中p和q為大素?cái)?shù),并且q能整除p-1,g是一個(gè)Z*p中階為q的元素,使得在Z*p中由g定義的子群上離散對(duì)數(shù)DL及計(jì)算Diffie-Hellman CDH問(wèn)題是難的;MAC是一個(gè)消息認(rèn)證碼算法;所有的指數(shù)運(yùn)算及不在指數(shù)上的乘法運(yùn)算是mod p運(yùn)算,加法及指數(shù)上的乘法為mod q運(yùn)算;這里,Z*p={1,2,…,p-1};H是從{0,1}*→{0,1,2,…,(q-1)/2}的哈西函數(shù);HK是從{0,1}*→{0,1}k的哈西函數(shù),k是會(huì)話密鑰的長(zhǎng)度;對(duì)于字符串s1,…,sm,m>1,H(s1,S2,…,sm)表示的是將s1,…,sm用二進(jìn)制0-1串來(lái)表示,然后將所有的0-1串順序連接串聯(lián)起來(lái),最后將串聯(lián)后得到的0-1串作為H的輸入;(2).除非有特別說(shuō)明,具有身份ID IA的用戶“A”有一個(gè)公鑰A=ga,其中a由用戶“A”在Zq中隨機(jī)選?。幌鄳?yīng)地,具有ID IB的用戶“B”的公鑰記為B=gb,以此類推;這里,Zq={0,1,2,…,q-1};(3).協(xié)議基于Diffie-Hellman密鑰交換協(xié)議;記X=gx mod p為用戶“A”的DH密鑰成分,x為DH密鑰成分X的離散對(duì)數(shù),x由用戶“A”從Zq={0,1,…,q-1}中隨機(jī)選??;記Y=gy mod p為用戶“B”的DH密鑰成分,y為DH密鑰成分Y的離散對(duì)數(shù),y由用戶“B”從Zq={0,1,…,q-1}中隨機(jī)選取;(4).有一個(gè)可信的證書權(quán)威機(jī)構(gòu)CA,頒發(fā)證書CERT,用于將用戶的身份及其相應(yīng)公鑰進(jìn)行可公開驗(yàn)證的綁定;綁定用CA的電子簽名實(shí)現(xiàn);綁定時(shí)CA驗(yàn)證公鑰為Z*p中階為q且非1的元素;用戶“A”的證書記為CERTA;(5).假定協(xié)議的每一次執(zhí)行有一個(gè)標(biāo)示號(hào)sid;sid是一個(gè)字符串,用于標(biāo)記并發(fā)運(yùn)行的協(xié)議執(zhí)行;sid的制定和協(xié)商可隨協(xié)議的運(yùn)行環(huán)境不同而有所變化;一般而言,sid包含在協(xié)議運(yùn)行之前用戶交換的信息或交換信息的哈西值;(6).與協(xié)議執(zhí)行相關(guān)的其它信息pub除了sid,IA,A=ga,IB,B=gb,X=gx,Y=gy外,其它與協(xié)議執(zhí)行相關(guān)的信息用pub來(lái)表示; pub是一個(gè)字符串,是用戶的IP地址、公鑰證書、其它需要認(rèn)證的信息、時(shí)間戳的串聯(lián);協(xié)議實(shí)現(xiàn)的具體方法為用戶“A”及“B”相互交換它們各自的DH密鑰成分X=gx和Y=gy以及公鑰證書;假設(shè)用戶“A”為協(xié)議的發(fā)起者,用戶“B”為協(xié)議的響應(yīng)者;即用戶“A”在第一輪發(fā)送X,在收到X后用戶“B”檢查X∈Z*p并在第二輪發(fā)送Y;收到Y(jié)后,用戶“A”檢查Y∈Z*p;將用戶的身份ID,他們的DH密鑰成分,以便他們的公鑰,用兩個(gè)函數(shù)c和d進(jìn)行承諾綁定;承諾綁定通過(guò)哈西函數(shù)H來(lái)實(shí)現(xiàn);其中,函數(shù)c必須承諾綁定用戶“B”的公鑰B、DH密鑰成分Y以及用戶“A”的身份IA;函數(shù)d必須承諾綁定用戶“A”的公鑰A、DH密鑰成分X以及用戶“B”的身份IB;會(huì)話密鑰計(jì)算包括基本形式和簡(jiǎn)單形式會(huì)話密鑰計(jì)算的基本形式用戶“A”計(jì)算KA=(YBc)tx+tda,檢查KA≠1并計(jì)算會(huì)話密鑰K=HK(KA);用戶“B”計(jì)算KB=(XAd)ty+tcb,檢查KB≠1并計(jì)算會(huì)話密鑰K=HK(KB);其中,d=H(A,X,IB),c=H(B,Y,IA),t=(p-1)/q;會(huì)話密鑰計(jì)算的簡(jiǎn)單形式用戶“A”在第一輪發(fā)送X,計(jì)算KA=Bx+da并計(jì)算會(huì)話密鑰K=HK(KA);收到X后用戶“B”檢查X為Z*p中階為q的非1元素,計(jì)算KB=XbAdb并計(jì)算會(huì)話密鑰K=HK(KB);其中,d=H(IA,A,IB,B,X);具有身份及密鑰確認(rèn)功能的會(huì)話密鑰計(jì)算形式為了進(jìn)一步相互確認(rèn)身份及會(huì)話密鑰,用戶“A”計(jì)算MAC-密鑰Km=HK(KA,0),“B”計(jì)算Km=HK(KB,0);協(xié)議響應(yīng)者“B”在第二輪發(fā)送MACKm(0);對(duì)于會(huì)話密鑰計(jì)算的基本形式,協(xié)議初始者“A”在另加的第三輪發(fā)送MACKm(1);對(duì)于會(huì)話密鑰計(jì)算的簡(jiǎn)單形式,“A”在第一輪發(fā)送MACKm(1),用戶“B”在第二輪發(fā)送MACKm(0);當(dāng)伴隨身份及密鑰確認(rèn)功能時(shí),會(huì)話密鑰設(shè)置為K=HK(KA,1)=HK(KB,1)。
2.根據(jù)權(quán)利要求1所述的公鑰承諾的并發(fā)不可鍛造安全的MQV密鑰交換協(xié)議,其特 征在于協(xié)議的實(shí)現(xiàn)步驟為-在下述協(xié)議描述中,大括號(hào)內(nèi)的值表示發(fā)送的信息;其中,用戶"A"的公鑰是^=/ 并具有CA頒發(fā)的證書07 r"用戶"B"的公鑰是5=/并具有CA頒發(fā)的證書假設(shè) 用戶"A"為協(xié)議運(yùn)行初始者,用戶"B"為協(xié)議運(yùn)行響應(yīng)者;協(xié)議-1:會(huì)話密鑰計(jì)算基本形式的協(xié)議實(shí)現(xiàn)步驟第一輪,從"A,,至U<formula>formula see original document page 3</formula>; 其中義從《中隨機(jī)選?。籎稱為"A"的DH密鑰成分;收到"A"發(fā)送的信息后,"B"驗(yàn)證"A"的身份、公鑰及證書,/為Z、中的元素;驗(yàn)證不成功,"B"拒絕繼續(xù)執(zhí)行協(xié)議,否則,進(jìn)入下一輪;第二輪,從"B"到"A": <formula>formula see original document page 3</formula>/從《中隨機(jī)選取且7稱為"B"的DH密鑰成分;收到"B"發(fā)送的信息后,"A"驗(yàn) 證"B"的身份、公鑰及證書,r為Z;中的元素;驗(yàn)證不成功,"A"終止協(xié)議;會(huì)話密鑰計(jì)算:用戶"A"計(jì)算& = (K6T油,檢査& * 1并計(jì)算會(huì)話密鑰《=//k(&); 用戶"B"計(jì)算&=(^4"',6 ,檢査A^l并計(jì)算會(huì)話密鑰尤-7^(&);其中,j-"04,義,/s),c:/fCB,;r,/j,,^o-i) ;這里,d = //(AUB)表示的是 ",||Z||/S), c = //(s,;r,//1)表示的是c = //C8||}l/J, "II"表示的是字符串的順序連接;會(huì)話密鑰一旦計(jì)算完畢,用戶"B"刪除(j;,^),用戶"A"刪除(x,《J;協(xié)議-2:會(huì)話密鑰計(jì)算簡(jiǎn)單形式的協(xié)議實(shí)現(xiàn)歩驟第一輪從"A"至U "B" : {wV'i^ A 6EW^ (k^/7力;其中x從《中隨機(jī)選??;J稱為"A"的DH密鑰成分;用戶"A"計(jì)算i^ =5x+rfa ,計(jì)算會(huì)話密鑰a^/^(尺》并刪除(x,^);其中,"7/(/j牟j5iix);收到"a"發(fā)送的信息后,"b"驗(yàn)證"A"的身份、公鑰及證書,j為Z、中的階為q的非l元素;驗(yàn)證不成功,"B"中止協(xié)議執(zhí)行;否則,用戶"B"計(jì)算&=義6#,計(jì)算會(huì)話密鑰《=/^(&)并刪除;協(xié)議-3:具有身份及密鑰確認(rèn)功能的協(xié)議實(shí)現(xiàn)步驟第一輪,從"A"到"B" : A, A (^y ; J二/ rk^p力;其中義從4中隨機(jī)選?。籎稱為"A"的DH密鑰成分;收到"A,,發(fā)送的信息后,"B"驗(yàn)證"A"的身份、公鑰及證書,J為Z;中的元素;驗(yàn)證不成功,"B"拒絕繼續(xù)執(zhí)行協(xié)議;否則,進(jìn)入下一輪;第二輪,從"B"到"A": {w'd U' 6M7i' P力M4C、(0)hy從4中隨機(jī)選取且H爾為"B"的DH密鑰成分;用戶"B"計(jì)算i^:(X^f""并檢 查,計(jì)算MAC-密鑰^^i^(&,0)和M4C^(0);最后,用戶"B"計(jì)算會(huì)話密鑰 《=//K(/:B,l),刪除掉(j;,/^)并進(jìn)入下一輪;這里/^(&,0)表示的是/^(〖J10), k = 表示的是a: =II1);收到"B"發(fā)送的信息后,"A"驗(yàn)證"B"的身份、公鑰及證書,7為Z、中的元素; 驗(yàn)證不成功,"A"終止協(xié)議;驗(yàn)證成功,用戶"A"計(jì)算^-(raT+"。并檢查^",計(jì) 算MAC-密鑰i^:7^(^,0)并驗(yàn)證M4C^(0)的正確性;驗(yàn)證不成功,用戶"A"中止協(xié)議執(zhí)行;驗(yàn)證成功,用戶1"計(jì)算會(huì)話密鑰《=/^(&,1),計(jì)算M4C"(1),刪除掉(jc,&,^) 并進(jìn)入下一輪;第三輪,從"A"到"B": M4C&,(l)h收到"A"發(fā)送的信息后,"B"驗(yàn)證M4C^,(1)的正確性;驗(yàn)證不成功,用戶"A"中止協(xié)議執(zhí)行,否則,刪除掉i^并結(jié)束協(xié)議執(zhí)行。
3.根據(jù)權(quán)利要求2所述的公鑰承諾的并發(fā)不可鍛造安全的MQV密鑰交換協(xié)議,其特 征在于協(xié)議-1、協(xié)議-2及協(xié)議-3有如下的變體(1) .在協(xié)議-1和協(xié)議-3中,函數(shù)"和C的其它設(shè)置方法d = //(K/s,5,x,:r),c = /fW);或者,^ = /fl),c = //(/s,5,;r,l);或者,t/ = //04,x,:r,/s),c = F(A;r,x,/j;無(wú)論是哪種設(shè)置方法,其中用戶"a"的公鑰力必須作為函數(shù)^的輸入,且用戶"b"的公鑰s必須作為函數(shù)C的輸入;將(/,,力換為用戶"A"的公鑰證書Cert,的哈西值,將(;5)換為用戶"b"的公鑰證 書Cert^的哈西值;或者,將(/^AA,^換為CeWr CeWs以及其它在協(xié)議運(yùn)行之前所交 換的cookie、隨機(jī)數(shù)和IP地址信息的串聯(lián)或串聯(lián)信息的哈西值;將s^/作為函數(shù)c和" 輸入的一部分;(2) .在協(xié)議-1和協(xié)議-3中,將會(huì)話密鑰和MAC-密鑰計(jì)算中的t省去;艮P: & =(75,"血,& —X4勺,6;此時(shí),用戶"B"須檢查J為Z、中的階為^的非1元 素,用戶"A"須檢査r為Z',中的階為9的非1元素;(3) .在協(xié)議-1、協(xié)議-2和協(xié)議-3的會(huì)話密鑰計(jì)算和MAC-密鑰計(jì)算中,將c和J作為 輸入的一部分;(4) .將哈西函數(shù) 〃和i^的輸入中的元素的順序進(jìn)行變化。
全文摘要
本發(fā)明屬于密碼協(xié)議技術(shù)領(lǐng)域,具體為一種公鑰承諾的并發(fā)不可鍛造安全的MQV密鑰交換協(xié)議?;贛QV和HMQV協(xié)議的會(huì)話密鑰計(jì)算公式(YB<sup>c</sup>)<sup>x+da</sup>=(XA<sup>d</sup>)<sup>y+cb</sup>,以及發(fā)明人最近所發(fā)現(xiàn)的針對(duì)MQV和HMQV協(xié)議的并發(fā)中間人攻擊,在本發(fā)明協(xié)議中函數(shù)c的輸入必須包含用戶“B”的公鑰B、DH密鑰成分Y以及用戶“A”的身份I<sub>A</sub>;函數(shù)d的輸入必須包含用戶“A”的公鑰A、DH密鑰成分X以及用戶“B”的身份I<sub>B</sub>。本發(fā)明協(xié)議的關(guān)鍵之處為函數(shù)d必須承諾用戶“A”的公鑰,且函數(shù)c必須承諾用戶“B”的公鑰。本發(fā)明協(xié)議提供更為強(qiáng)壯的并發(fā)不可鍛造安全性,更適合保護(hù)密鑰交換協(xié)議在互聯(lián)網(wǎng)等并發(fā)環(huán)境中運(yùn)行時(shí)的安全性。
文檔編號(hào)H04L9/08GK101247224SQ20081003250
公開日2008年8月20日 申請(qǐng)日期2008年1月10日 優(yōu)先權(quán)日2008年1月10日
發(fā)明者楓 儲(chǔ), 姚期智, 趙運(yùn)磊 申請(qǐng)人:趙運(yùn)磊;姚期智;儲(chǔ) 楓