亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一類高效、公平的密鑰交換方法

文檔序號:7891011閱讀:576來源:國知局
專利名稱:一類高效、公平的密鑰交換方法
技術(shù)領(lǐng)域
本發(fā)明屬于密碼協(xié)議技術(shù)領(lǐng)域,具體涉及一類高效、公平的密鑰交換方法、分布式客 戶-服務器環(huán)境下抗拒絕服務攻擊且保護用戶隱私的密鑰交換方法、無公鑰證書的密鑰交 換方法、公平Diffie-Hellman秘密生成方法、公平的群密鑰交換方法。
背景技術(shù)
系統(tǒng)參數(shù)(G',G,g,9),其中G'是一個階為W的有限群,G為G'中階為9的子群,g 為G的生成元,使得定義在G上的離散對數(shù)問題是難的。常用的G',G的設(shè)置如下G'為 Z^卩,2,…p-l},p為一個素數(shù),g整除(戶l),此時G'的階為A^p-1;或者,G'為定
義在一個有限域的橢圓曲線(即定義在一個有限域上的橢圓曲線上的點構(gòu)成的群)。一 般而言,《={1,2,—; -1}中的元素操作用乘法表示(即乘法群),單位元為整數(shù)1,而橢
圓曲線上的運算用加法表示(即加法群),單位元為無窮遠點。在本文檔中,我們用乘法 來表示G'中元素的操作。除非有特別說明,將G、 G'中的單位元記為le, G'/le表示的是 由G'減去單位元le之后其它元素的集合,即G'中的非le元素;記為G中的非le元 素。不失一般性,指數(shù)運算和不在指數(shù)上的乘法運算的結(jié)果是G'或G中的一個元素,指 數(shù)上的加法和/或乘法運算是模《計算。定義函數(shù)i)丄Zg—G,使得/ -iU(vv)二gW 。 w
稱為力的離散對數(shù)。我們要求給定隨機計算出的A沒有多項式時間算法計算出力的離散對 數(shù)K這稱為離散對數(shù)問題。計算Diffie-Hellman問題指的是給定隨機的/與沒有 多項式時間算法計算出/、對于熟悉本領(lǐng)域的人而言,離散對數(shù)問題及計算 Diffie-Hellman問題也可以定義在由橢圓曲線或雙線性對(bilineartity)定義的群上。
檢查確認一個元素義eG可有如下方法(1)計算并檢查19=1; (2)如果^ = 2《+ 1, 計算并檢查X2^1,或計算J的Legendre符號;(3)如果G、G (比如G',G為素數(shù)階的
橢圓曲線群),只需檢查(4)計算并檢查IeG'且^^"^l從而保證J不在一個 階可整除7V 的小子群中;(5)若G'為定義在一個有限域《的橢圓曲線,檢查ieG'/l且
7的x-坐標和y在坐標是f;中的元素。 一般而言,可將ZeG的檢查嵌入到協(xié)議的其它運
算之中。
常用的不使用簽名進行身份認證的Diffie-Hellman密鑰交換協(xié)議,比如美國國家標 準化組織(ANSI)的X9. 42-2001標準文檔、國際標準化組織(ISO)的IS 15946-3標準文檔、國際電氣和電子工程師協(xié)會(IEEE)的1363-2000標準文檔等所規(guī)定的MQV協(xié)議有如
下不足
(a) . MQV協(xié)議的在線計算效率不夠好。MQV的會話密鑰生成方式不允許用戶對會話密 鑰進行部分離線計算以提高在線計算的效率。具體來講,用戶"A"不能夠在接受到用戶
"B"的DH-密鑰成分y之前進行事先離線部分計算會話密鑰,用戶"B"不能夠在接受到 用戶"A"的DH-密鑰成分7之前進行事先離線部分計算會話密鑰。
(b) . MQV協(xié)議不能夠很好地保護用戶的隱私。在MQV協(xié)議中,每個用戶的會話密鑰 不能夠僅僅由對方用戶的DH-密鑰成分的離散對數(shù)而計算出。g卩會話密鑰以不可否認的 方式綁定到到產(chǎn)生該會話密鑰的兩個用戶。因此,MQV協(xié)議不能夠很好地保護用戶隱私。
(c) . MQV協(xié)議不能夠完全保證每個用戶的DH-密鑰成分不包含在小的子群中。 在發(fā)明人于2008年7月8日遞交的申請?zhí)枮?00810040311. 5的專利申請書的權(quán)利要
求-1的實現(xiàn)方法-4中,本發(fā)明申請的申請人給出了一個新的不使用簽名的密鑰交換方法
(即)。注本發(fā)明專利的申請人與申請?zhí)?00810040311.5的專利申請人相同;另外, 本發(fā)明申請書的權(quán)利要求2、 3、 4、 5與200810040311. 5專利申請無關(guān)。
但是,申請?zhí)?00810040311. 5的專利申請書的權(quán)利要求-1的實現(xiàn)方法-4有如下不足
(a) . i^,K^的計算分別需要3個哈希運算(這意味著在random oracle模型中要使 用三次random oracle)。
(b) .假設(shè)用戶"A"和"B"在交換DH-密鑰成分之前或交換DH-密鑰成分的同時,交 換彼此的公鑰證書。這使得協(xié)議難以在post-ID(即用戶為了保護隱私,先發(fā)送DH-密鑰成 分后發(fā)送公鑰證書)模型和環(huán)境下運行,因此不利于保護用戶的隱私。另一方面,若用戶 先發(fā)送DH-密鑰成分后發(fā)送公鑰證書,則協(xié)議無法有效地進行離線計算以加速在線計算的 效率。還有,i^,《B不夠模塊化,不能夠分開并行計算以加速計算效率。
目前已知的的無公鑰證書Diffie-Hellman密鑰交換方法需做2個雙線性對(pairing) 計算以及其它指數(shù)運算;另外,在線計算效率差,計算不夠模塊化,并行化不好。(注 雙線性對的計算效率較低,約相當于4-5個指數(shù)運算)。
傳統(tǒng)的Diffie-Hellman秘密生成方法不夠公平。g卩對于生成的Diffie-Hellman秘 密g",用戶"A"不能夠保證g"是隨機分布在^為生成元的子群中(因為,用戶"B" 可能是惡意的,BP: y可能是用戶"B"在^中任意選取的值而非隨機選取);同樣,用戶
"B"不能夠保證g"是隨機分布在^為生成元的子群中(因為,用戶"A"可能是惡意的, 即x可能是用戶"A"在;中任意選取的值而非隨機選取)。在群密鑰交換領(lǐng)域,Burmester-Desmedt在Eurocrypt, 94上提出的群密鑰交換方法 是最著名的(大多數(shù)的后續(xù)的群密鑰交換方法遵循Burmester-Desmedt方法)。但是,我 們最近注意到,Burraester-Desmed群密鑰交換方法是不公平的(同時不安全)。具體來講, 我們發(fā)現(xiàn)了 Burmester-Desmed方法的目前尚未被發(fā)現(xiàn)的新的安全漏洞。使用我們的攻擊, 誠實用戶的貢獻將被完全屏蔽。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一類高效、公平的密鑰交換方法。其特點為最優(yōu)的(在線)
計算效率,支持先發(fā)送DH-密鑰成分后發(fā)送身份和公鑰證書的工作模式,利于隱私保護、 計算的可并行性和模塊化,支持DH-密鑰成分的重復使用,并可應用于分布式客戶-服務器 環(huán)境下抗拒絕服務且保護用戶隱私的密鑰交換、無公鑰證書的密鑰交換、和公平的群密鑰 交換。
本發(fā)明提出的一類高效、公平的密鑰交換方法,其系統(tǒng)工作環(huán)境為
(1).系統(tǒng)參數(shù)(G',G,g,g),其中G'是一個階為yV的有限群,G為G'中階為G的 子群,g為G的生成元,使得定義在G上的離散對數(shù)問題是難的。常用的G',G的設(shè)置如下 G'為Z;-(1,2,…/ -U,/J為一個素數(shù),G整除(rl),此時G'的階為A^戶—1;或者,G'為
定義在一個有限域的橢圓曲線(即定義在一個有限域上的橢圓曲線上的點構(gòu)成的群)。 一般而言,《={1,2,..^-1}中的元素操作用乘法表示,單位元為整數(shù)l,而橢圓曲線上的
運算用加法表示,單位元為無窮遠點。在本文檔中,我們用乘法來表示G'中元素的操作。 除非有特別說明,將G、 G'中的單位元記為le, G7^表示的是由G'減去單位元le之后其
它元素的集合,即G'中的非^元素;記G/k為G中的非le元素。不失一般性,指數(shù)運算 和不在指數(shù)上的乘法運算的結(jié)果是G'或G中的一個元素,指數(shù)上的加法和/或乘法運算是 ?!队嬎?。定義函數(shù)D丄^—G,使得/^iUO)-gW ?!悍Q為力的離散對數(shù)。我們要求
給定隨機計算出的A沒有多項式時間算法計算出力的離散對數(shù)w這稱為離散對數(shù)問題。 計算Diffie-Hellman問題指的是給定隨機的/與,沒有多項式時間算法計算出/、對 于熟悉本領(lǐng)域的人而言,離散對數(shù)問題及計算Diffie-Hellman問題也可以定義在由橢圓 曲線或雙線性對(bilineartity)定義的群上。對于任一元素IeG',我們記X-'為X的相 對于G'的逆元,即JOT—'=1。;作為本領(lǐng)域的常識,;r"的計算可有各種等價的計算方
式,比如;r"6 :(;r1)。6 =(jra)6 =(;r)—6 =(;r6)a = (x6)-。 = .. , x'cfc+(* = z一+別,等;
檢査確認一個元素ZeG可有如下方法(1)計算并檢査;^=1; (2)如果7^ = 2《+ 1,
計算并檢查I2^1,或計算X的Legendre符號;(3)如果G、G (比如G',G為素數(shù)階的橢圓曲線群),只需檢查XeG'; (4)計算并檢査JTeG'且J^^^l從而保證Z不在一個 階可整除W 的小子群中;(5)若G'為定義在一個有限域F,的橢圓曲線,檢查XeG'/l且
;r的x-坐標和y在坐標是&中的元素。 一般而言,可將XeG的檢査嵌入到協(xié)議的其它運
算之中。
(2) . T/是一個哈希函數(shù);對于字符串或數(shù)值年^2,.^ ,/ >1,//0 1^2,—0表示的是 將^,^,…,^,用合適編碼表示,然后將所有的編碼順序連接串聯(lián)起來,最后將串聯(lián)后得到 的串作為//的輸入。不失一般性,我們設(shè)//的輸出是^={0,1,2,—,《-1}中的元素,否則 我們可以簡單地取丑的輸出的一個屬于29的子串或?qū)?/的輸出進行模《計算。為了加快計
算效率,可以令//的輸出的長度為|。若^^, ,、是《7個字符串,S,&,…&是"個集合,
, h,S2,…,、,S,S2,…,SJ表示的是^,^,…,^jUS,US2U…U&,其中大括號內(nèi) 的元素順序可以任意變化。^(A,^,…,^,S,&,…,&)表示的是將A,A,…^及 hjwj中的元素用合適編碼表示,然后將所有的編碼串順序連接串 聯(lián)起來,最后將串聯(lián)后得到的串作為/z的輸入。若o為空值,則
(3) .除非有特別說明,具有身份ID/,的用戶"A〃有一個公鑰乂-g。eG,其中a 由用戶"A"在^={0,1,2, ,《-1}中隨機選取。相應地,具有ID ^的用戶"B"的公鑰 記為5二^eG,以此類推。其中/,為用戶"A"的身份信息或用戶名,/3為用戶"B"的 身份信息或用戶名。對于任一元素xeZ《,我們記—;c為x的相對于A的負元,艮P-
x + (-;c) = 0mod《。
不失一般性,若協(xié)議基于公鑰證書來綁定用戶的身份和公鑰,則公鑰證書頒發(fā)機構(gòu)在 向用戶頒發(fā)證書時,檢查確認用戶注冊的公鑰為G中的元素或為G/lc中元素。任何檢查
不通過,證書頒發(fā)機構(gòu)拒絕頒發(fā)公鑰證書。這樣,每個用戶只需檢查對方用戶的公鑰證書 即可確認對方的公鑰為G或G/le中的元素。
(4) .協(xié)議基于Diffie-Hellman密鑰交換協(xié)議。除非有特別說明,記X-^為用戶"A"
的DH密鑰成分,義為DH密鑰成分J的離散對數(shù),義由用戶"A"從Z,(0,1,…,《-1}中隨機
選取。記F-g》為用戶"B"的DH密鑰成分,/為DH密鑰成分F的離散對數(shù),y由用戶"B"
從;={0,1, ■,《-1}中隨機選取。假設(shè)用戶"A"為協(xié)議的發(fā)起者(初始者),用戶"B"為
協(xié)議的響應者。即用戶"A"先發(fā)送J;在收到J后用戶"B"再發(fā)送K 一般而言,用戶"B"需在發(fā)送r之前檢查XeG'/le或IeG, "A"需在收到F之后檢查(7/1^或 7eG 。
(5) .協(xié)議會話標示符W丄Wd用于標示同一協(xié)議的不同的并發(fā)運行會話; 一般而言,
WW是協(xié)議雙方相互交換的兩個隨機數(shù)的串聯(lián),即> ^ = ^1| ^,其中A是一個由用戶"A" 發(fā)送的隨機數(shù),^是一個由用戶"B"發(fā)送的隨機數(shù),"li"表示的是字符串聯(lián)結(jié)符;在客 戶服務器環(huán)境中,W'J可直接設(shè)置為服務器發(fā)送的隨機數(shù)或計數(shù)器數(shù)值;或者,WW直接由 DH-密鑰成分來定義,即將^換為X將A換為F。
(6) .與協(xié)議執(zhí)行相關(guān)的其它信息;n^,p"Zv . /w&, A: 2 1:對于任意的/,1 SW A:,戸6,
是除DH-密鑰成分義二^或x', ;r^^之外的其它與協(xié)議執(zhí)行相關(guān)的信息的一個子集或序
列,可為空或含重復元素;這兒,其它與協(xié)議執(zhí)行相關(guān)的信息包括用戶即協(xié)議初始者與 響應者的身份信息或用戶名、協(xié)議初試者和響應者的角色標示、公鑰及公鑰證書信息、IP 地址,協(xié)議版本,安全參數(shù)和密鑰參數(shù),協(xié)議的會話標示符,時間戳,cookie,任意數(shù)值,以 及除DH-密鑰成分外的協(xié)議會話傳輸?shù)钠渌畔ⅰT诓煌膶崿F(xiàn)方法中,p"&的取值可不
同;對于任意的/J,/^力;w6,等于或不等于;^《.。 一般而言,p"6,包含協(xié)議初始者與響應 者的公鑰與身份或用戶名信息,即仏,A A," £ / 喊或{ AL,4/s,5} ; p喊。
會話標示符xW—般由用戶"A"和"B"發(fā)送的兩個隨機數(shù)i^和&或DH-密鑰成分以 初始者-響應者的順序串聯(lián)構(gòu)成,即^^ = ^||^或《^/ = 1||7 ,其中H表示的是串聯(lián)運算 符。
用戶的協(xié)議角色標示^和 一般用不同的整數(shù),比如^=0, =1;或者由用戶"A" 和"B"發(fā)送的隨機數(shù)或DH-密鑰成分的不同順序來標示,比如^=^||^或。=1||7, &=&||^或 =}1義。
對于熟悉本領(lǐng)域的人而言,隨機數(shù)A和A,以及可能的公鑰證書的交換,即可在實 現(xiàn)方法運行之前進行,也可包含在實現(xiàn)方法中用戶各自發(fā)送的信息中。
(7) .密鑰導出函數(shù)iO)尸iQ)尸CS,ma)是一個密鑰導出函數(shù),其中S是一個數(shù)值或數(shù)
值的集合,ma是一個數(shù)值字符串集合或計數(shù)器。 一般而言,/CDF是一個哈希函數(shù)或哈希 函數(shù)序列或直接輸出其第一個輸入,比如^ZXFC&mO-T/C&awx)(這種計算適合于哈
希函數(shù)//的輸出的長度大于等于規(guī)定的密鑰的長度的情況,即真正的輸出可能是
//(&做x)的一個子串,比如前綴,輸出的子串的長度等于規(guī)定的密鑰的長度),或 《D尸0S",aM;c) = //(5,1)7/(5",2) — //(5^)其中A: 2 1 , "w;c是一個計數(shù)器(這種計算適合于哈希函數(shù)//的輸出的長度小于規(guī)定的密鑰的長度的情況),或/CZ)F(S,""X)-S;或者《Z)F是一個以S為隨機種子的偽隨機函數(shù),比如AZ>F(S,awx)=尸i ^(aia)。會話密鑰和認證密鑰可 由同一個密鑰導出函數(shù)在相同的輸入上導出;或者,會話密鑰和認證密鑰由同一個密鑰導 出函數(shù)在不同的輸入上分別導出,比如會話密鑰為//(5," 《)而認證密鑰為7/(>^,5);或者,會話密鑰的導出函數(shù)與認證密鑰的導出函數(shù)不同,而它們的輸入相同或不同,比如 會話密鑰與認證密鑰的導出使用不同的哈希函數(shù)或偽隨機函數(shù)。(8).標簽認證函數(shù)Fr(《,t/),其中《為一個秘密數(shù)值或秘密數(shù)值的集合,f/為一個數(shù)值字符串集合。標簽認證函數(shù)6(《,t/)為任何滿足如下性質(zhì)的函數(shù)(1)不能夠從 A(《,C/)在i:的長度的多項式時間內(nèi)求出尺,即相對于輸入《,函數(shù)&是單向的;(2)給定A(K,t/),不能夠在《的長度的多項式時間內(nèi)計算出F"《,t/)或&(i:,f/)使得f/^t/'。一般而言,^是一個單向哈希函數(shù),比如^(《,t/) = 或者i^是一個消息認證碼MAC函數(shù),其中MAC的私鑰由導出而認證的信息是V的一個子集,比如假設(shè)協(xié)議運行送方有某種機制協(xié)商上述參數(shù)(包括安全參數(shù)和密鑰長度參數(shù))、函數(shù)、 算法(包括對稱和公鑰加密算法、認證算法、簽名算法、哈希函數(shù)等),用戶角色標示及 會話標示符號表示方法等,以及運行以下哪種實現(xiàn)方法,并達成一致。這種協(xié)商機制可隨 應用環(huán)境和系統(tǒng)的不同而不同。 一般而言,/w6包含協(xié)商所交互的信息的一個子集。對于 熟悉本領(lǐng)域的而言,在申請方法中進行的對各種元素的檢査確認默認是一次性的,即一 旦確認正確(一般在該元素的首次計算時進行),則在后續(xù)的運行中不在檢查。本發(fā)明提出的實現(xiàn)方法,具體步驟如下-設(shè)用戶"A"有離散對數(shù)公鑰^-g。并發(fā)送DH-密鑰成分X-^,且用戶"B"有離散對數(shù)公鑰5二^并發(fā)送DH-密鑰成分r-g、記C五i 7^為用戶"A"的公鑰證書,C五i 7^為用戶"B"的公鑰證書;根據(jù)實現(xiàn)方法的不同,用戶公鑰證書的發(fā)送可以在發(fā)送DH-密鑰成分之前、或發(fā)送DH-密鑰成分的同時、或發(fā)送DH-密鑰成分之后;(一般而言,在所有的實現(xiàn)方法中,每個用戶均可在發(fā)送DH-密鑰成分之前或發(fā)送DH-密鑰成分的同時發(fā)送自己的公鑰證書;但為了更好地保護用戶的隱私,在實現(xiàn)方法2和3中,用戶可在發(fā)送DH-密鑰成分之后發(fā)送自己的公鑰證書。)用戶"A"發(fā)送或不發(fā)送隨機數(shù)^,用戶"B"發(fā)送或不發(fā)送隨機數(shù)^。
做x^和mas要么均為空值或相同的值或字符串,或者aw;^和^m^為任意數(shù)值或字符串并且awx乂 #iwxs ; 一般而言,若aia^ #flwxs , 可令ma^二0, auxs=l。密鑰交換方法的核心和特征是構(gòu)建兩個函數(shù)&和&使得AO,x,5,;r,戸6H&(6,;;,AI,p"6) ; &和的計算如下用戶"A "計算 、=w。e"^ +v/ £ g',用戶"b "計算& = j(A+'w義,w, £ g';其中,f = i或^ ,
1S/S4;用戶"A"可事先計算I和5一+'^eG',用戶"B"可事先計算y和,^^eG'; 實現(xiàn)方法的關(guān)鍵是函數(shù)c,c/,e,/的不同設(shè)置和實現(xiàn)方法(每個實現(xiàn)方法的特點已在前面輪 述)
實現(xiàn)方法—1: c = c/ = l;e = 0或e = l或e = ; / = //(/j,^,/s,i5,U)或
/ = //0L, A ^,s, U)或/ = //(戸62,義J)。
實現(xiàn)方法一2: 〔 = //(£ 1 :/1,4,5,義)或<;=//0 /1,/3,^8,^,1) ; i/二/f(做x^L,Ay) 或d:7/(做Xs,/^A^,y) ; e=0或1或//O^) ; / = //(1,}0或/ = //(>W,Z,}0
/ = 2, ;t,;f)。
對于實現(xiàn)方法-2,為了保護用戶隱私,用戶可先交換DH-密鑰成分,后交換公鑰證書 (用戶"B"也可在發(fā)送r的同時發(fā)送公鑰證書)。此時,用戶"B"可先計算;T一+'^eG', 用戶"A"可先計算7'—eG'。
實現(xiàn)方法-3:6" = //( ^,/^3,義)或£: = //0^,/5^,&,;0 ; J^/Z("wx^/^ 或t^/7(m^,L",i^,:n ; ff=0或1或7fO—) ; / = "(XJ)或/ =
/ = 2, x,r)。
對于實現(xiàn)方法-3,為了保護用戶隱私,用戶亦可先交換DH-密鑰成分,后交換公鑰證 書;用戶"B"也可在發(fā)送y的同時發(fā)送公鑰證書;此時,用戶"B"可先計算X^+'^eG', 用戶"A"可先計算r一+'^ eG'。
"-//(awx^/^^y) 或d = //("u^,A, J,A,IO ;e=0或1或//(/7w6);
)或 / = //(c,j)或/ = //(c,:r)或 / = //( A z)或/ = /B, ;r)或/ = i/ow, ^, /s, z, 或/ = //o w2, x, 。實現(xiàn)方法-6: c = //(aw^, /力,J, X)或c = //Owx^, j, , X) , d = t/0"Xs , /s, B,"或 £/ = //(mas,/B,S,i s,r) , f0 或 1 或//(;wA) , / = //(/"J,/fl,5,U)或 / = //(械/",/3,5,1,7)或/ =//(c,力或/ = //("}0或/= 義)。
實 現(xiàn) 方 法 -7: f^Z/Cam^/^A/^X) 或
1或//QroZO , /-//(U)或/ = i/0^,U)或/^//(/"A/pAXJ)或
/^i/o^,/^j,/s,B,z,;F) 或 / = //(c,^/) 或 / = //(c,;r) 或 / = //(y,z) 或 / = i/(L, 或/=//ow,/"/s,z,;r)或/= h0^2,義,y)。
實現(xiàn)方法-8: c = //(做x"/s,X)或c = //Ou^,/〃/s,y)或c = i7(flwx/4,A,/i},JO或 c =/f(awx乂,/力,i^,/B, ' d =//(aw;Cs,/^y) 或 <i =//(mixfi,/£,/"y) 或
3 = //(> ^,^,/〃;0或^/ = //(做;^,/^,&,//4,}0, e=0或1或H(/n^), / = /^(1,7)或 / = //0,W,或/ = //仏,A /B,仏7)或/ = ^ 乂 W, 7)或/ = F(c,力或
/ = //(c,}o 或 / = //(c/," 或 /:7/(/^/s,x,;r) 或 / = //(X/^/s,;r,;n 或
實現(xiàn)方法-9:c = //(cmj^, ; "63, X)或c = //(/^64, U)或c = 1' d = //(mo^ , /7"65,7)
或"i7(—6義;r)或"i; f0或i或t/o^)'/^ho"6"m或/^(械u)
或/ = //<^,力或/ = //(^,}0或/ = 1或/ = 0;其中,若(:=1和/或^/ = 1,則/不可為0或1; ;^64和/w67不相同,和jto67不相同,建議;w64, /w66, ;w67兩兩不同。
r,,l^《4,設(shè)置方法(1).若用戶"A"檢査確認5eG,:reG,用戶"B"檢査確認 JeG,XeG,貝廿令^=,2=^=/4=1 ; (2).若用戶"A"僅檢查確認B e G , X e G'或 XeG'/le,而不能確認JTeG,用戶"B"僅檢查確認j e G, y e G'或7 e,而不能
確認yeG,且;c和/或y可能會泄露,貝lj令^-l,b 用戶"B"檢查確認

x'A+'4# # lc或& # ^一'一或lc ,用戶"a"檢查確認廣—# lG或*
或^^le;若X,少均不會泄露,仍同(1)可設(shè)^=^2=^=~=1;任何檢査不通過,則中止協(xié)
議運行,返回或不返回出錯信息。
會話密鑰和認證密鑰導出方法利用密鑰導出函數(shù)由^^&及(/,c乂e,U,/wW的
某個子集導出會話密鑰和認證密鑰。 一般而言,采用如下方法產(chǎn)生認證密鑰《和會話密鑰 ^,其中/^是一個哈希函數(shù) (/^可與//相同)(1). A入)—/^(^,/,1)&(A,/,2)…/^(A,/,/) = &(&,/,1)&(&,/,2)—/^(&,/力, 其中由一個計數(shù)器來實現(xiàn),i的取值依賴于",&)的長度,即直到 , /,1)/^ , /,2)…(《」,/力的長度大于等于, &)的長度。設(shè)(盡,&)的長度為/ , 我們可取/^(/^,/,1)/^C^,/,2)…/^(i^,/,z')的長度為/的前綴或后綴。(2). & — (&, , /,2)…, /, /) = , , /,2)…& , /, 0 ;
& — (/,肌(/,《X (/, &, /) = & (/, & (/, & ,2)…& (/, &,力。設(shè)& 的長度為/,, &的長度為/2,則計數(shù)器/的取值直到哈希函數(shù)序列的輸出長度大于等于/,, 計數(shù)器/的取值直到哈希函數(shù)序列的輸出長度大于等于/2。其中,i^輸入中的/可換為 (W)。
認證方法記導出的認證密鑰為i '-A,為了向用戶"A"證明其知道i ',用戶"B" 利用標簽認證函數(shù)Fr計算并發(fā)送^ = g(i ',朋x0 ,其中^^是仏^W,rs,X,]T,,69}的一個 子集,^/是會話標示符,^是用戶"B"的協(xié)議角色標示;用戶"A"利用認證密鑰i '檢 査^正確性,若不正確,則中止協(xié)議執(zhí)行,返回或不返回出錯信息;為了向用戶"B"證 明其的確知道i ',用戶"A"在收到^并驗證^的正確性后,計算并向用戶"B"發(fā)送 G = Fr(i ',aia。),其中ato:。是(/乂,wV/,^,X,y,; z^j的一個子集且aza。 # "mx, , ^是用戶 "A"的協(xié)議角色標示;用戶"B"利用認證密鑰i '檢査^正確性,若不正確,則中止協(xié)議 執(zhí)行,返回或不返回出錯信息。
本發(fā)明提出的高效、公平的密交換方法可應用于抗拒絕服務攻擊,且保護用戶隱私, 具體步驟如下
設(shè)用戶"A"有離散對數(shù)公鑰^:ga并發(fā)送DH-密鑰成分X-^ ,用戶"B"有離散對 數(shù)公鑰B二gA并發(fā)送DH-密鑰成分7 = ^ ;記C五i L為用戶"A"的公鑰證書,C五i 7;為用 戶"B"的公鑰證書。用戶"A"發(fā)送或不發(fā)送隨機數(shù)&,用戶"B"發(fā)送或不發(fā)送隨機數(shù)&。 "m力和auxs要么均為空值或相同的值或字符串,或者""x^和azas為任意數(shù)值或字符串并 且awx^ # o
。=1或!, l&、4;其設(shè)置方法為(1).若用戶"A"檢査確認萬eG,;FeG,用戶
"B"檢査確認JeG,XeG,貝ij令^二^^^3^4二l 。 (2).若用戶"A"僅檢査確認 5eG, leG'或XeG'/le,而不能確認尤eG ,用戶"B"僅檢査確認:FeG'或
reG'/lc,而不能確認7eG,且x和/或少可能會泄露,貝ij令/, =1,,2 =,3 =,4 ,用戶
《"B "檢査確認義'# 1(j ,用戶"A "檢査確認戶—# lc和/或# 1q和/或 (—般而言,若用戶"A"事先計算5一,則可僅檢查y'"^l。;若用戶"A"不
事先計算W 則檢查^,W"c和"a^le )。若x,少均不會泄露,仍同(l)可設(shè) A =f2 =f3 =1 ;任何檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息。 第一輪用戶"A"向用戶"B"發(fā)送(義,^xJ或(義,m^,iU。 收到"A"發(fā)送的信息后,用戶"A"檢査XeG'或XeG'/le或義eG或義eG/le;
若檢査不通過,則中止協(xié)議運行,返回或不返回出錯信息;若檢査通過,用戶"B"計算 7 , 《=X'一+" e G';其中,c-7/(m^,/s,S,義)或c =//(aw^,/s,5,i^,^) 或
c = //(a xs,/s,s,jn 或 c:ifO^,/^s,^,x) ; / = //(^,;n 或/ = //(>w,x,;r)
/ = //(j^62,X,;n;其中,用戶"B"可事先計算r、 c和^c。用戶"B"利用密鑰導出函
數(shù)由K及《/,c,z,;r,wW,A,i^,戸w的一個子集導出認證密鑰i:';用戶"b"利用標簽認
證函數(shù)/^計算^ -FJ/^at^),其中aux,是(/s,s!W, ,X,r,i^,pKW的一個子集,是會 話標示符,^是用戶"B"的協(xié)議角色標示。
第二輪用戶"B"向用戶"A"發(fā)送{/5,5,7,"欲^;}或仏,萬,7,"";^,&,6};其中' (、,S)可替換為用戶"b"的公鑰證書C^ 7;.
收到用戶"B"發(fā)送的信息后,用戶"A"檢查C^7;的有效性,檢查yeG'或I^G'/le 或yeG或FeG/l。、;若檢査不通過,則中止協(xié)議運行,返回或不返回出錯信息;若檢査 通過,用戶"a"計算c、 /和^=5'','"/£(7。用戶"b"由/:;導出認證密鑰〖',并利 用《'檢查^ -FT(ir,ma,)的正確性,若檢查不通過(即^^&(i ',az^)),則中止協(xié)議運行, 返回或不返回出錯信息;若檢查通過(即^二^(i ',fl"jO ),用戶"A"計算 Kj = (W7'"/^'。7'一 £ G', 其中d = //(a"x^,/力,AO 或"=//(aw^,/乂, A^,y)或 ^ = //("1^,//4,4}0或^/ = //(""&,/^^,^4,10 ; 或1或FO^);其中用戶"a"可事 先計算I、 5'^eG', 5一eG'。
用戶"A"利用密鑰導出函數(shù)由^及仏c乂e,X,:r,^,A,;^J的某個子集導出認證
密鑰&和會話密鑰& ;用戶"A"計算^ = Fr,awxQ),其中a肌o是仏,w't/,^,,X,y,0} 的一個子集且m^。^m^ ,。是用戶"A"的協(xié)議角色標示。用戶"A"計算或不計算 6 = Fr(f,"0,其中awxj是仏乂,yW,^,HH/ —0〉的一個子集且awx; # 。 第三輪用戶"A"向用戶"B"發(fā)送仏乂^6}或仏乂,丄其中(/^々可替換為用戶"A"的公鑰證書GEi L。
收到用戶"A"發(fā)送的信息后,若用戶"A"在第三輪發(fā)送{/,,4^6},用戶"B"首
先利用i:'檢查6-^(^:',m^),若檢查不正確用戶"b"中止協(xié)議運行,返回或不返回出
錯信息;若6=^(《',^<)用戶"B"檢査C五i 7;的有效性;若檢查不通過,則中止協(xié)議 運行,返回或不返回出錯信息;若c五i r,有效,用戶"B"計算^ = ,^ ^ y/eG', 并利用密鑰導出函數(shù)由&及(/,c,aUx,:r,i^,A,戸w的某個子集導出認證密鑰&和會
話密鑰&。用戶"B"利用認證密鑰^檢査^=&(^^^。)的正確性,若檢查不通過,則中
止協(xié)議運行,返回或不返回出錯信息;若檢査通過,進行或不進行第四輪。
第四輪用戶"B"計算并向用戶"A"發(fā)送{^},其中~ =^(^,"^,), "w:c^aMX。。
收到用戶"B"發(fā)送的信息后,用戶"A"利用認證密鑰盡檢查 的正確性;若檢查不
通過,則中止協(xié)議運行,返回或不返回出錯信息。
本發(fā)明提出的高效、公平的密交換方法可應用于無公鑰證書且在線計算密鑰交換方
法,具體步驟如下設(shè)^:C/xC^4G是一個合格的多項式時間可計算的雙線性映射;其
中C^是一個階為《的加法或乘法群,l"為其單位元。不失一般性,我們記C/為加法群;
記P為(/的生成元。e:(^xGr—G滿足f (x戶,;^P)=《(尸,戶廣且s (尸,尸)# 。記 /^:{0,1}'4(^為一個哈希函數(shù)。用戶"A"除了公鑰^ = ^£^夕卜,另有一個基于身份的 公鑰仏=//7'(^)或仏=或a = Ff (K戶。);用戶"B "除了公鑰B = g、 G夕卜,
另有 一個基于身份的公鑰& = 或& = W(4^)或& = ht(/b,AA);其中,
尸。^We(/為一個可信的第三方C4的公鑰,C4的私鑰為seZ《。用戶"A"除了私鑰"之 外另有私鑰^二sg,,其中^=^04由04計算并安全地傳送給用戶"A"。用戶"B"除了 私鑰6之外另有私鑰^=^仏,其中^=^&由04計算并安全地傳送給用戶"B"。
與本發(fā)明的實現(xiàn)方法相比,無公鑰證書且在線計算高效的密鑰交換方法只有如下不同 或變化
(1) .在函數(shù)c,c/,e,/中的哈希函數(shù)的輸入中增加或不增加(仏,a,P?!档囊粋€子集。 因為a由(L,力決定,a由(^,S)決定,建議函數(shù)c乂e,/輸入中不必包含仏或^。
(2) .用戶"A"利用密鑰導出函數(shù)由(^,s及(/,c乂e,X,y,p^J的一個子集 導出會話密鑰和認證密鑰;用戶"B"利用密鑰導出函數(shù)由{&,£(&,仏)}及 (/,c,J,e,X,;r,p—,}的 一 個子集導出會話密鑰和認證密鑰;其中,"&必)= J = = ,— 可包含(a,a,W的一個子集。
一般而言,釆用如下方法產(chǎn)生認證密鑰A和會話密鑰&,其中/^是一個哈希函數(shù)
(a) . 用 戶 " A" 計 算/^(^,4^必),c乂l)/^d4^必),c^,2)…/^(/^,4^必),c^,/);用戶"B"計算
—/^(&,s(&,込),c^,l)/^(^^0^,a),c乂2)…/^(&,s(&,a),c^,/);其中Q1由一個計數(shù)器來實現(xiàn),i的取值依賴于(、&)的長度,即直到
/^(&,so^,a),c^,i)/^(i^,s(&必),c,c/,2)…/^(A,so^,a),c^,0的長度大于等于
(yt"2) 的長度。設(shè) ",&) 的長度為 / ,我們可取—/^(A^(&必),c,c/,l)i^(^^(&必),c,",2)…A(A,f(&,込),c乂0的長度為/的前綴或后綴。其中,/^輸入中的(c,力可換為/或(c^,A,^)或(/,A,i B)。
(b) . 用 戶 " A" 計 算&,—/^(A,4^必),c^,l)A(^,4^必),c,c/,2)…/^(A,4^必),c,々〕,
^—/^(c^^^O^a^l)//^^,^,^^^)^..//^,",^,^^,^),/);用戶"B"計

4—//《(&,4&必),c乂i)/^(^,o^必),c乂2)…/^(/:^o^必),c,c/,0 ,& —/^(c乂^^o^必),i)&(c乂&,^va),2)…/^(c^,^^ova),y);設(shè)&的長度為/,, &的長度為/2,則計數(shù)器/的取值直到哈希函數(shù)序列的輸出長度大于等于/,,計數(shù)器y的取值直到哈希函數(shù)序列的輸出長度大于等于/2。其中,其中,/^輸入中的(c,")可換為/或
本發(fā)明蘊含如下公平的Diffie-Hellman密鑰交換方法設(shè)用戶"A"發(fā)送DH-密鑰成分Z:g G',用戶"B"發(fā)送DH-密鑰成分]^g'eG';用戶"A"計算Diffie-Hellman秘密i^二r",用戶"B"計算Diffie-Hellman秘密& =JT";其中c =2);
一般而言,2 =仏乂;^,W力或/ ={/乂,/丑,57'6/}或p =。
本發(fā)明可應用于高效、公平的群密鑰交換方法,具體步驟為設(shè)有n個用戶[/,,^,…R,
"> 2 ,想建立一個共同的Diff ie-Hellman秘密;用戶的DH-密鑰成分記為《=,'e G',其中1W《",x, eZ^我們設(shè)下標/是modn計算。
對于任意的/mod",用戶t/,.計算Z,X,—"。 、 和7;=^ ,其中
&=77(/,[/卜"《—"",,X,)或c,/7("w,Z,—,,",.,JQ ,^+1=//(/ + 1,"";",.+1,《+1)或= t/,.將7;通知給所有其它用戶(比如通過廣播傳輸,或公開發(fā)表),
但可將X,.只通知給t/w和f/,+,。為了保證信息傳輸?shù)耐暾?,可以使用Katz-Yung在
CRYPT0, 03或Kata-Shih在CCS' 05中所給出的一般性的安全認證和轉(zhuǎn)換方法。
對于任意的fmod",用戶 C/,計算Diffie-Hellman秘密
《-(z,)"(7;)"-'(7^)"-2…(7;—3)27;—2e(7;會話密鑰和認證密鑰利用密鑰導出函數(shù)由《及{ wj , v, , t/2 ,…,c/ , 7;, r2,…,r }的 一 個子集導出。
二l或?。蝗魧τ谌我獾?mod",用戶C/,檢查確認Xw,Xw均為G或G/le中的元素,《
則,1=/2=一~=1;若對于任意的/mod",用戶f/,.僅檢查確認Z,—pX^為G'中的元素,而
不能確認為G中的元素,則^=,2=^.人=互,用戶t/,檢査確認Z^le,Z,+jle和/或

《,若檢查不通過則返回出錯信息并中止協(xié)議運行。
協(xié)議變體權(quán)利要求l、 2、 3、 4、 5所有實現(xiàn)方法及其應用可應用如下變體的某個子集。 一般而言,建議在所有實現(xiàn)方法中均應用變體(l)和/或(5);在所有基于公鑰證書的實現(xiàn)方法中均應用變體(2);基于橢圓曲線的實現(xiàn)方法可應用變體(8)。
(1) .將哈希函數(shù)輸入中的(乙,力替換成(/^^)的哈希值,并將(l,^)的哈希值包含在用戶"A"的公鑰證書中;將哈希函數(shù)輸入中的(/8,^替換成(/,,5)的哈希值,并將(/^S)的哈希值包含在用戶"B"的公鑰證書中。
(2) .公鑰證書頒發(fā)機構(gòu)在向用戶頒發(fā)證書時,檢查確認用戶注冊的公鑰為G中的元素或為G/le中元素;任何檢查不通過,證書頒發(fā)機構(gòu)拒絕頒發(fā)公鑰證書;這樣,每個用戶只需檢查對方用戶的公鑰證書即可確認對方的公鑰為G或0 /16中的元素。
(3) .基于口令的變體本發(fā)明的實現(xiàn)方法有如下基于口令的變體;設(shè)用戶"A""在
用戶"B"處注冊了一個口令w;在所有方法中用戶"A"所發(fā)送DH-密鑰成分1' = 15^或
jr = ;ra—w,或者;r二x5""(—",)或;ra—"'w),或者xb""—"、)或;^-;其
中S為用戶"B"的公鑰,I = feG', // 是一個輸出長度小于q的長度的哈希函數(shù);收
到x'后,用戶"b"根據(jù);r的相應計算方式計算出i = xb—"或x:z:r ,或者
義;g-w》 ,)或ZB/UP ,),或者n&(—或^g/U—,% , 0 ; ^,&,g^計算仍使用X作為指數(shù)下的挑戰(zhàn),但指數(shù)上的函數(shù)c,《e,/的輸入中的義換為X';除其它規(guī)定的事先離線計算外,用戶"B"可事先計算5—^G'。
在基于口令的變體中,對DH-密鑰成分I是否為G'或G中元素的檢査替換為對X'是否為G'或G中元素的檢査。
(4) .哈希函數(shù)的輸入中嵌套相同或不同的哈希函數(shù),即將原哈希函數(shù)的輸入和嵌套的哈希函數(shù)作為一個特殊的有向圖的節(jié)點,其中原哈希函數(shù)的輸入代表的節(jié)點無扇入,最外層的哈希函數(shù)所代表的節(jié)點無扇出,每個節(jié)點所代表的數(shù)值是其扇出節(jié)點所代表的哈希函數(shù)的輸入。
(5) .將哈希函數(shù)輸入的順序任意變化;和/或,將哈希函數(shù)的所有輸入換為所有輸入的并集,即重復的元素在輸入中只出現(xiàn)一次;和/或,將哈希函數(shù)換為任一個輸出為整數(shù)的函數(shù);和/或,應用在每一處的哈希函數(shù)與應用在其它處的哈希函數(shù)相同或不同;艮卩,我們使用一組哈希函數(shù)(/f,,//2, ■ // },其中對于任意的f',J',l"》'S",^y , //,.=/^.或
巧#/^, w^l且"是我們需應用哈希函數(shù)的次數(shù)的上界。
(6) .不同的密鑰導出函數(shù)應用在每一處的密鑰導出函數(shù)與應用在其它處的密鑰導出
函數(shù)相同或不同;即,我們使用一組密鑰導出函數(shù){/:/^,/:"《,...《"《},其中對于任意
的/,力lS/JS""7 j,尺Df = 或-,n^l且w是我們需應用密鑰導出函
數(shù)的次數(shù)的上界。
(7) .在所有方法中用戶"A"檢査i^^le,用戶"B"
(8) .對于基于橢圓曲線的實現(xiàn),將密鑰導出函數(shù)輸入中的^,&換為&,&的"^標值或^-坐標值;每個用戶檢查對方用戶的DH-密鑰成分的x-坐標和少-坐標是橢圓曲線
所基于的有限域中的正確編碼的元素。
(9) .出錯中止和出錯信息返回在所有的方法中, 一旦一個用戶因檢查不通過,即出錯,而中止協(xié)議,發(fā)回或不發(fā)回出錯信息;在基于口令的實現(xiàn)方法中,客戶"A"只允許出錯有限次,以防止在線攻擊。
(10) .會話標示符和用戶協(xié)議角色標示方法會話標示符一般由用戶"A"和"B"發(fā)送的兩個隨機數(shù)或DH-密鑰成分以初始者-響應者的順序串聯(lián)構(gòu)成;用戶的協(xié)議角色標示一般用不同的整數(shù)或者由用戶"A"和"B"發(fā)送的隨機數(shù)或DH-密鑰成分的不同順序來標示。
(11) .在本發(fā)明方法和本發(fā)明應用于抗拒絕服務攻擊保護用戶隱私的應用中,用戶"A"檢査確認y^I;若F-I,用戶"A"則中止協(xié)議運行。
本發(fā)明密鑰交換方法具有如下特點
1.與發(fā)明人于2008年7月8日遞交的申請?zhí)?00810040311. 5的專利申請書的權(quán)利要求-1的實現(xiàn)方法-4相比,本發(fā)明申請書的權(quán)利要求-1中的實現(xiàn)方法的主要不同在函數(shù)c^,e,/的設(shè)置方法不同,有如下特點(a) .在實現(xiàn)方法-l中,i^,X,的計算僅需要l個哈希運算(這是最優(yōu)的)。
(b) .實現(xiàn)方法-2、 3和4中函數(shù)c^,e,/的設(shè)置具有如下優(yōu)點(1)可以允許用戶先發(fā)送DH-密鑰成分后發(fā)送公鑰證書。此時,在i^^B一+一;r一w eG'的計算中,"arf+(4X/的計算不涉及用戶"b"的身份和公鑰,因此產(chǎn)一"^可以在收到用戶"b"的身份和公鑰之前進行計算。同樣,在^-乂一"^X^"""G'的計算中,義^+W的計算不涉及用戶
"a"的身份和公鑰,因此jt^+'^可以在收到用戶"a"的身份和公鑰之前進行計算。這一方面進一步保護了用戶隱私,另一方面又大大便利了^^,」^計算的模塊化和并行化。另外,將隨機數(shù)iU乍為函數(shù)c的輸入,將隨機數(shù)A作為函數(shù)J的輸入,以及將^/作為函數(shù)/的輸入,亦大大加強了協(xié)議的安全性和魯棒性。
(c) .在實現(xiàn)方法-5中,通過在函數(shù)c和J輸入中分別增加可能不同的ma^和^/^使得函數(shù)c和J的輸出不同,從而可以有效抵抗重放攻擊;通過在函數(shù)c和d輸入中分別增加隨機數(shù)^和A,在函數(shù)/的輸入中增加wV/,使得用戶"a"可在一定的時間內(nèi)重復使用相同的i,用戶"b"可在一定的時間內(nèi)重復使用相同的:r,而仍然保證《^,A^的隨機性。另外,在函數(shù)c和d輸入中(/^,^l)與(/s,S)具有不同的順序;具體來講,在函數(shù)c輸入中的順序為(/,乂4,5),在函數(shù)d輸入中的順序為(^,B,/^J),這進一步加強了協(xié)議的安全性和
魯棒性。還有,函數(shù)/的輸入中可僅包含(x,y),這進一步增加了計算的效率、模塊性和并行性。
(d) .實現(xiàn)方法-6的主要特點是函數(shù)c的輸入中不包含用戶"B"的身份和公鑰信息和DH-密鑰成分y的信息,因此用戶"A"在知道用戶"B"的身份和公鑰信息和DH-密鑰成分信息之前就可以事先離線計算^xc,從而提高在線計算效率。同樣,函數(shù)d的輸入中不包含用戶"A"的身份和公鑰信息和DH-密鑰成分X的信息,因此用戶"B"在知道用戶"A"的身份和公鑰信息和DH-密鑰成分信息之前就可以事先離線計算 jc/,從而提高在線計算效率。另外,通過在函數(shù)c和c/輸入中分別增加隨機數(shù)A和^以及"u^和"z/^,在函數(shù)/的輸入中增加^/,使得用戶"a"可在一定的時間內(nèi)重復使用相同的z,用戶"b"可在一定的時間內(nèi)重復使用相同的y,而仍然保證i^,J^的隨機性,這增強了協(xié)議的安全性,易用性和魯棒性。
(e) .實現(xiàn)方法7特點是在函數(shù)c的輸入中不包含用戶"B"的公鑰和DH-密鑰成分信
息(但包含用戶"B"的身份信息);函數(shù)"的輸入中不包含用戶"A"公鑰信息和DH-密鑰
成分的信息(但包含用戶"a"的身份信息)。與實現(xiàn)方法-5相比,這進一步增強了協(xié)議的
安全性和魯棒性。另外,用戶"A"在知道用戶"B"的公鑰信息和DH-密鑰成分信息之前仍可以事先離線計算^cc,用戶"B"在知道用戶"A"的公鑰信息和DH-密鑰成分信息之 前仍可以事先離線計算^W。另外,通過在函數(shù)C和"輸入中分別增加隨機數(shù)i ,和&以及 ma,和ata,,在函數(shù)/的輸入中增加wW,使得用戶"A"可在一定的時間內(nèi)重復使用相同 的X,用戶"B"可在一定的時間內(nèi)重復使用相同的y,而仍然保證《,,^^的隨機性,這增
強了協(xié)議的安全性,易用性和魯棒性。
(f) .在實現(xiàn)方法-8中,函數(shù)c的輸入中除不包含用戶"B"的公鑰和DH-密鑰成分信 息之外,還不包含用戶"A"的身份和公鑰信息;函數(shù)J的輸入中除不包含用戶"A"的公 鑰和DH-密鑰成分信息之外,還不包含用戶"B"的身份和公鑰信息;與實現(xiàn)方法-6相比, 這增強協(xié)議的計算的效率。另外,通過在函數(shù)c和J輸入中分別增加隨機數(shù)i ,和^以及 "肌,和"肌s,在函數(shù)/的輸入中增加wW,使得用戶"A"可在一定的時間內(nèi)重復使用相同 的I,用戶"B"可在一定的時間內(nèi)重復使用相同的r,而仍然保證《^^s的隨機性,這增
強了協(xié)議的安全性,易用性和魯棒性。
(g) .實現(xiàn)方法-9是安全性最強的實現(xiàn)方法。其特點為函數(shù)c^,e,/的輸入中包含不同 的p"6值,并且函數(shù)c乂e,/的輸入中均可包含所有的DH-密鑰成分(U);在函數(shù)c和J輸 入中分別增加隨機數(shù)&和&以及和,在函數(shù)/的輸入中增加《V/ 。所有這些措施 進一步增強了協(xié)議的安全性,易用性和魯棒性。
本發(fā)明所給出的密鑰交換方法適用于分布式的客戶-服務器環(huán)境,其中用戶"A"作為 客戶,用戶"B"作為服務器??蛻?A"可事先知道服務器"B"的公鑰;為了保護客戶 的隱私,只有在服務器"B"已經(jīng)向客戶"A"成功證明了 " B"的身份之后,用戶"A" 才向服務器"B"展示并證明自己的身份;但是,另一方面,服務器"B"要提防拒絕服務 攻擊,希望在檢測到拒絕服務攻擊之前做盡量少的計算。
本發(fā)明給出的密鑰交換方法兼顧了保護客戶"A"的隱私保護,和服務器"B"的拒絕 服務攻擊能力。具體來講,客戶"A"只有在服務器"B"在第二輪成功地證明了用戶"B" 的身份之后,才在第三輪發(fā)送客戶"A"的身份和公鑰信息;令一方面,服務器"B"只需 在第二輪在線做一個指數(shù)運算即《;=X咖+'^ e G'從而得到認證密鑰《'(因為DH-密鑰y 可事先計算甚至重復使用),并在第三輪首先檢査《的有效性從而以一個在線指數(shù)計算的 代價(而不是計算整個X,^ '^r一+'^eG'的代價)檢測可能的惡意客戶"A"發(fā)起 的拒絕服務攻擊。
本發(fā)明給出的無公鑰證書的Diffie-Hellman密鑰交換方法是目前為止最為高效的無 公鑰證書的密鑰交換方法。其特點為每個用戶只需做一個雙線性對計算,并且該雙線性對計算可事先離線計算(即在收到對方用戶的DH-密鑰成分之前事先計算)。在線計算可歸 約為僅僅一個指數(shù)運算,這是最優(yōu)的(是目前已知的無公鑰證書密鑰交換方法所無法做到 的)。
本發(fā)明給出的公平的Diffie-Hellman秘密生成方法具有如下特點生成的 Diffie-Hellman秘密為^-尺廣g城n—'2)(而不是傳統(tǒng)的g")。這樣做的優(yōu)點在于,
在random oracle模型下(即將哈希函數(shù)H視作為一個隨機函數(shù)),誠實的用戶"A"能夠 保證/^-i^-g-W7'—'。是隨機分布在f為生成元的子群中(即便用戶"B"是惡意的, 即y可以是用戶"B"在Z《中任意選取的值而非隨機選取);同樣,誠實的用戶"B"能
夠保證/^=《8=^一"〗'—'"是隨機分布在^為生成元的子群中(即便用戶"A"是惡意 的,即x可以是用戶"A"在Z《中任意選取的值而非隨機選取)。
5.與Burmester-Desmedt群密鑰交換方法以及其它所有基于Bur鵬ster-Desmedt方 法的群密鑰交換方法相比,本發(fā)明所給出的方法的主要不同在于在我們的方法中,用戶 f/,計算Z,X卜"c'、 《+1=X,+1''w'+1 , 其中c,-//(zW^X'—"t/(,X,.)或 c, ="Z,4,""Z,) , = + 或= F(f/,,《,",+1,Xw);而在
Burmester-Desmedt群密鑰交換方法中,用戶f/,計算Z, = X,—^ 、 Z,+1 = Z,./'。我們最近注 意到,Burmester-Desmed群密鑰交換方法是不公平的(同時不安全)。具體來講,我們發(fā) 現(xiàn)了 Bunnester-Desmed方法的目前尚未被發(fā)現(xiàn)的新的安全漏洞。使用我們的攻擊,誠實 用戶的貢獻將被完全屏蔽。而我們新的群密鑰交換方法借鑒了公平Diffie-Hellman密鑰 交換的思想和方法,可以有效地防止我們所新發(fā)現(xiàn)的針對Burmester-Desmedt群密鑰交換 協(xié)議的攻擊。
具體實施例方式
具有身份力的用戶"A"的公鑰是」=/并具有證書C戰(zhàn)冗,具有身份A的用戶"B"的 公鑰是S- 并具有證書CF7 7fl。證書頒發(fā)機構(gòu)CA在頒發(fā)證書之前,檢查確認XeG/le和 SeG/lc。我們假設(shè)用戶"A"為協(xié)議運行初始者(initiator),即先發(fā)送DH-密鑰成分 X = gxeG; "5"為協(xié)議運行響應者(responder),即收到X之后發(fā)送DH-密鑰成分 r-g少eG。其中a,x,6j從Z《中隨機選取。
在下述協(xié)議具體實施中,消息認證碼鵬C采用由IETF(Internet Engineering Task Force)所公布的第2104號互聯(lián)網(wǎng)意見征求文檔(Internet RFC 2104)中所描述的 認證碼。/M4C只需作兩個哈西運算,并被證明既是消息認證碼又是偽隨機函數(shù)。在協(xié)議具體實施中,//朋C以及哈西函數(shù)仏i^由57^-7哈西函數(shù)來實現(xiàn)。對稱加密采用NIST (美國 標準與技術(shù)局)的標準所規(guī)定的AES算法。 實施例l:
事先計算用戶"A"可事先計算X:g、G , ^^=,3^4=# 和^"—eG',其 中W為有限域G'的階;用戶"B"可事先計算y-g^G J=r2=~=^=iV/^t],m°d< eG'。 第一輪用戶"A"發(fā)送(C五i 7^,;n ;
收到(C五i L,;n后用戶"B"檢査C五i 7^的有效性和Ze(7/lc;任何檢查不成功,用
戶"b"中止協(xié)議執(zhí)行。若檢查通過,用戶"b"計算/:i/(^乂/e,5,x,;r), x'"W"—;
用戶"B"檢査確認X爭刺^le,若X'^別"c用戶"B,,中止協(xié)議執(zhí)行并返回出錯信息; 若,("zw"^用戶"b"計算i^-h'("別eG'(其中爿'戶一eG'可事先計算的),計算 (02) —//0^,/,1)//(^,/,2)…//0^,/,0,其中^1由一個計數(shù)器來實現(xiàn),i的取值依 賴于",&)的長度,即直到//(^3,/,1)//(&,/,2) //(^,/,/)的長度大于等于",^)的長 度;如果",&)的長度為/,我們令"^2)為//(^ ,/,1)//(/:5,/,2) —的長度為/ 的前綴。
第二輪用戶"B"發(fā)送(C^ i;,IVs^HM4C^(l)〉;
收到"B"發(fā)送的信息后,用戶"A"檢査C5i 7^的有效性和yeG'/lc;任何檢査不成 功,用戶"A"中止協(xié)議執(zhí)行并返回出錯信息;若檢查通過,用戶"A"計算 /-//(/^A/s^,^), eG';用戶"A"檢査確認y'(。+岡^ 1G ,若=10用戶
"A"中止協(xié)議執(zhí)行并返回出錯信息;若y"。+到^G,用戶"A"計算^=5"}^+/" eG'(其 中^m—eG'可事先計算的)。用戶"A"計算",&)<_//(&,/,1)//(^,/,2)—//(^0/,0, 其中Ql由 一個計數(shù)器來實現(xiàn),J'的取值依賴于",&)的長度,即直到 //(^,/,1)//(、,/,2)…//(&,/,/)的長度大于等于(、&)的長度;如果",&)的長度為/, 我們令(^&)為//(^,/,1)//(^,/,2)…//0^,/,/)的長度為/的前綴。用戶"A"檢査 ^二7/M4&'(1),如果^-Z/M4C;,(l)則將會話密鑰設(shè)為^并進入下一輪,否則(即 ^ * /fll"C、(1))中止協(xié)議執(zhí)行并返回出錯信息。 第三輪用戶"A"發(fā)送^二/ZM4C、(0)〉。
收到^后,用戶"B"檢査^^肌"C&(0)。如果^^/fM4(^(0)用戶"B"將會話密 鑰設(shè)為&,成功結(jié)束協(xié)議;否則(即G^/0"(^(0)),用戶"B"中止協(xié)議執(zhí)行并返回出錯信息。
實施例2:公鑰證書在DH-密鑰成分發(fā)送之前或同時發(fā)送時的
具體實施例方式
事先計算用戶"A"可事先計算1 = ^£(7 ,隨機數(shù)^〃42=^="=^ ;若用 戶"A"事先知道用戶"B"的身份和公鑰,則可事先計算c二/7(i^,/s^,X)和5',。d、G', 其中W為有限域G'的階;用戶"B"可事先計算y = g少e G ,隨機數(shù)i s , f =f2= f3 - " = W ; 若用戶"B"事先知道用戶"A"的身份和公鑰,則可事先計算^ = //(^,厶,^,;0和 乂W" eG'。在具體實施中,用戶"A"和"b"可不產(chǎn)生和發(fā)送隨機數(shù)^和^ (即在下
述具體實施中,將i^和i^去掉);或者,只有一個用戶(比如用戶"B")發(fā)送隨機數(shù)。 第一輪用戶"A"發(fā)送(C^^,i^,X);
收到(C五/^,A,X》后用戶"B"檢査C五7^的有效性和XeG'/lc,檢查i^為規(guī)定長 度的字符串;任何檢査不成功,用戶"B"中止協(xié)議執(zhí)行。若檢查通過,用戶"B"計算
/ = i s,x,;r)、 0 = //(; /1,/3^,^)和義'("別咖11 ;用戶"b"檢査確認jr'^+別^iG,
若1,+別=16,用戶"B"中止協(xié)議執(zhí)行并返回出錯信息;若1 幻6,用戶"B"計算 尺s =e G'(其中^W"eG'可事先計算的),計算計算 —//(i^c^^/ZC/^qflUh'/fCfi^c^,/),其中Q1由一個計數(shù)器來實現(xiàn),j'的取 值依賴于",&)的長度,即直到7/(^,c乂l)i/(^,c乂2)…7/C乂z')的長度大于等于 的長度;如果(A,A:2)的長度為/ ,我們令",&)為 //(^,c,d,1)//(/^,c,flf,2).. ,c,of,/)的長度為/的前綴。
第二輪用戶"b"發(fā)送{<^£及7;工^,^ = ^1"(^(1)};
收到"b"發(fā)送的信息后,用戶"a"檢査c五i 7;的有效性和;reG'/ie以及A為規(guī)定
長度的字符串;任何檢査不成功,用戶"A"中止協(xié)議執(zhí)行并返回出錯信息;若檢查通過,
用戶"a"計算/= i s,x,:n、 c/ = //(i fi,/〃^,;r:^n"aw) eG';用戶"a"檢查確認 r'一+到-^,若產(chǎn)一+到=1。用戶"a"中止協(xié)議執(zhí)行并返回出錯信息;若r'…到#16,用
戶"A"計算^=5&了'一+到eG'(其中廬,d、G'可事先計算的)。用戶"A"計算計算
(、^2)仨丑0^^乂1)//0^^乂2》"7/(^^乂/),其中/^1由一個計數(shù)器來實現(xiàn),j'的取
值依賴于(A,&)的長度,即直到//(^^乂1)//(/^,£:乂2)...//0^^乂/)的長度大于等于
",&)的長度;如果",^)的長度為/ ,我們令(&,&)為
,c,d,1)//(/^,c乂2)…,c,fl ,/)的長度為/的前綴。
用戶"A"檢査fs = /aWC、 (1),如果^ = /flkWC^ (1)則將會話密鑰設(shè)為&并進入下一輪,否則(g卩^ - HM4C4i(l))中止協(xié)議執(zhí)行并返回出錯信息。 第三輪用戶"A"發(fā)送{^ = //^4<^(0)}。
收到G后,用戶"B"檢查^ = //^4<^(0);如果"=//^4(^(0)用戶"B"將會話密鑰 設(shè)為&,成功結(jié)束協(xié)議;否則(即^^/ZM^^(0)),用戶"B"中止協(xié)議執(zhí)行并返回出錯 信息。
實施例3:公鑰證書在DH-密鑰成分發(fā)送同時或之后發(fā)送時的
具體實施例方式
事先計算用戶"A"可事先計算X-g、G ,隨機數(shù)A, ?42=f3=r4=iV ;若用 戶"A"事先知道用戶"B"的身份和公鑰,則可事先計算c^i/(i^,/s,5,X)和W—eG', 其中yV為有限域G'的階;用戶"B"可事先計算y-^ eG,隨機數(shù)&〃42=,3 =r4 =7V/《; 若用戶"B"事先知道用戶"A"的身份和公鑰,則可事先計算^ = //0^,^,4}0和 」一HK^eG'。在具體實施中,用戶"A"和"B"可不產(chǎn)生和發(fā)送隨機數(shù)^和A (即在下 述具體實施中,將^和A去掉);或者,只有一個用戶(比如用戶"B")發(fā)送隨機數(shù)。 第一輪-用戶"A"發(fā)送{^,1};
收到{^,1}后用戶"B"檢査XeG'/le,檢査^為規(guī)定長度的字符串;任何檢査不成 功,用戶"B"中止協(xié)議執(zhí)行。若檢査通過,用戶"B"或者直接進入進入下一輪(比如, 當用戶"B"比較忙或感覺遭受拒絕服務攻擊時);或者(比如,用戶"B"較清閑時),用 戶"B"計算/ = i^,y,y)、 c-i/C^,/s,5,義)和X一+W"1—,用戶"B"檢查確認
Z一+別^le,若Z'^+刺^e,用戶"B"中止協(xié)議執(zhí)行并返回出錯信息,若X一+刺d。則 進入下一輪。
第二輪用戶"b"發(fā)送(c五i 7^,:r,i^〉。
收到"B"發(fā)送的信息后,用戶"A"檢查C五i ;的有效性和reG7le以及^為規(guī)定
長度的字符串;任何檢査不成功,用戶"A"中止協(xié)議執(zhí)行并返回出錯信息;若檢査通過, 用戶"A"計算/ = //(^,^,1,:0、 ^ = //(^,^』,^0、 "-//(i^/^AlO;如果用戶"A" 已經(jīng)事先計算^""1—則用戶"A"計算"。"到eG',檢查確認"。"到;若 r'一+W =16,用戶"A"中止協(xié)議執(zhí)行并返回出錯信息,若7'—+到#16,用戶"A"計算 eG'。如果用戶"A"無事先計算5"③—eG',則用戶"A"計算 & = JStte r一+岡eG',檢查確認i^-lc,若^^c,用戶"A"中止協(xié)議執(zhí)行并返回出錯 信息。用戶"A"計算^^2)<"丑(^^乂1)^(^^乂2)."http://(^,乂/),其中^1由一個計數(shù)器來實現(xiàn),i的取值依賴于(^,&)的長度,即直到//0^^乂1)//(/:/^乂2) //(^^乂0
的長度大于等于(A,b)的長度;如果",&)的長度為/ ,我們令",^)為 ,c, d,l)/Z(i^, c乂2)…,c, A0的長度為/的前綴。 第三輪用戶"A"計算并發(fā)送{<^及7^^ = / "&|(0)}。
收到用戶"A"發(fā)送的信息后,用戶"B"首先檢査c五; r,的有效性,若無效則中止協(xié) 議運行;若檢查通過
(a) .若用戶"B"已計算義'^+^"1—并檢查確認Z'一+別^le,則用戶"B"計算
(b) .若用戶"B"尚未計算X,+別"^,則用戶"B"計算d = J,y)、 /,H")、 c-Z/C^,/B,5,X)和^^^^:,+別eG'。用戶"B"檢査確認 ^^le,若^-l^用戶"B"中止協(xié)議執(zhí)行并返回出錯信息。
用戶"B "計算, &) — , c,《1)//(^, c,《2)' //(^,c乂, /),其中/ 21由 一個計數(shù) 器來實現(xiàn),i的取值依賴于",&)的長度,即直到/f(^,c,c/,l)H(i^,c,A2)…7/(i^,c乂/) 的長度大于等于",&)的長度;如果",&)的長度為/ ,我們令",&)為 //0^^^,1)//0^^乂,2》..//(^4^^,/)的長度為/的前綴。
用戶"B"檢查^=肌"&1(0);如果/_4=//71"<^(0)用戶"B"將會話密鑰設(shè)為&,并 進入下一輪;否則(即^^/ZM4C;(0)),用戶"B"中止協(xié)議執(zhí)行并返回出錯信息。
第四輪用戶"B"發(fā)送^^HM4C、(1))。
收到^后,用戶"A"檢査^二ffl"q(l);如果^-HM4C^(l)用戶"A"將會話密鑰 設(shè)為&,成功結(jié)束協(xié)議;否則(即^-//71"(^(1)),用戶"A"中止協(xié)議執(zhí)行并返回出錯 信息。
(注在上述具體實施中,用戶"B"也可在第四輪發(fā)送自己的公鑰證書和^,用戶 "A"在額外的第五輪發(fā)送^。) 實施例4:
事先計算用戶"A"可事先計算X-g、G ,隨機數(shù)A, z^2=f3="=iV ;若用 戶"A"事先知道用戶"B"的身份和公鑰,則可事先計算c^/f(0,&,/^A/s,AI)和 ^xc咖"eG',其中7V為有限域G'的階;用戶"B"可事先計算F-g少eG,隨機數(shù)^, /=/2=^=^=iV ;若用戶"B"事先知道用戶"A"的身份和公鑰,則可事先計算c/ = //(1, 5B, /B, 5, ^, J, 和#d m°d 9 e G'。
在具體實施中,用戶"A"和"B"可不產(chǎn)生和發(fā)送隨機數(shù)A和A (即在下述具體實 施中,將^和^去掉);或者,只有一個用戶(比如用戶"B")發(fā)送隨機數(shù)。在具體實 施中,也可將函數(shù)c輸入中的0和/或函數(shù)d輸入中的1去掉。
第一輪用戶"A"發(fā)送(C五i 7^,^,;n ;
收到(CjS7 7^,a后用戶"B"檢查C五i L的有效性和ZeG'/le,檢查^為規(guī)定長度 的字符串;任何檢査不成功,用戶"B"中止協(xié)議執(zhí)行。若檢查通過,用戶"B"計算 c-Z/^i^/^A/^A^L / = //(c,cO、和1'(*"刺咖";用戶"B"檢査確認Z'("別-1G,
若義 =1^用戶"B"中止協(xié)議執(zhí)行并返回出錯信息;若義 #1^用戶"B"計算
《B = J^I,+^ e G'(其中 jW "eG'可事先計算的),計算 (02) —7/(^,/,1)//C^,/,2)…//0^,/,/),其中/》1由一個計數(shù)器來實現(xiàn),i的取值依
賴于",^)的長度,即直到//(^,/,1:^(^;,/,2)—//(^},/,/)的長度大于等于"^2)的長
度;如果(、a2)的長度為/ ,我們令(&,&)為,/,1)単8,/,2)…,/,0的長度為/
的前綴。
第二輪用戶"b"發(fā)送(csi j;,;r,AA = //M4C、(i)};收到"b"發(fā)送的信息后,用
戶"A"檢査C五i 7;的有效性和l^G7le以及&為規(guī)定長度的字符串;任何檢査不成功, 用戶"A"中止協(xié)議執(zhí)行并返回出錯信息;若檢查通過,用戶"A"計算 c^/Zai^VA/^yU^ / = //(c,cO、和"。"到eG';用戶"A"檢查確認^(。"《 若y一+到=1。用戶"a"中止協(xié)議執(zhí)行并返回出錯信息;若W刮-le,用戶"a"計算
^^^c;T(。"到(其中可事先計算的)。用戶"A"計算 —//(^,/,1)//(^,/,2)…//(^,/,/),其中Q1由一個計數(shù)器來實現(xiàn),i的取值依 賴于(、&)的長度,即直到//(i^, , /,2) ■. ,/, 0的長度大于等于, &)的長
度;如果, a2)的長度為/,我們令(W)為, /,1)単^, /,2)…, /, /)的長度為/ 的前綴。用戶"A"檢查^ = //MZC、 (1),如果^ = //MXC、 (1)則將會話密鑰設(shè)為&并進入 下一輪,否則(即^-ZfM4C^(1))中止協(xié)議執(zhí)行并返回出錯信息。
第三輪用戶"A"發(fā)送{^ = //M4<^(0)}。收到G后,用戶"B"檢査^ =//M4Ct|(0); 如果^=//M4Cti(0)用戶"B"將會話密鑰設(shè)為&,成功結(jié)束協(xié)議;否則(即 G^i/il"(^(0)),用戶"B"中止協(xié)議執(zhí)行并返回出錯信息。實施例5:
事先計算用戶"A"可事先計算J^^^eG ,隨機數(shù)A J42=f3=~=iV ;若用 戶"A"事先知道用戶"B"的身份和公鑰,則可事先計算^ = //(^,/3,5,1)和5,°£1^0', 其中〃為有限域G'的階;用戶"B"可事先計算7 = ^ eG,隨機數(shù)^, ,=/2=r3=,4 = iV ;
若用戶"b"事先知道用戶"a"的身份和公鑰,則可事先計算^ = //(^,/^乂:0和
爿o^一eG'。在具體實施中,用戶"A"和"B"可不產(chǎn)生和發(fā)送隨機數(shù)^和^ (即在下 述具體實施中,將A和&去掉);或者,只有一個用戶(比如用戶"B")發(fā)送隨機數(shù)。 第一輪用戶"A"發(fā)送{^,義};
收到(i ,,JH后用戶"B"檢査XeG'/le,檢査&為規(guī)定長度的字符串;任何檢查不成 功,用戶"B"中止協(xié)議執(zhí)行。若檢查通過,用戶"B"計算/ = //(^,^,1,10、 ^ = //(^,//),3,;0和^ =X,"/)m。d、用戶"B"檢査確認1 #10,若義'(*"別=1。 用戶"B"中止協(xié)議執(zhí)行并返回出錯信息;若,用戶"B"計算 K' — H(i^,/,c,l)H(^,/,c,2)…其中/ 21由一個計數(shù)器來實現(xiàn),i的取值依 賴于《'的長度,即直到//(^,/,c,l)//(^,/,c,2》..//(i^,/,c,0的長度大于等于《'的長 度;如果iT的長度為/',我們令K'為, /,c,l)/Z(^, /,c,2)…,/, c, /)的長度為/'的 前綴。
第二輪用戶"B"發(fā)送{<^^7;義^,《=//細(^,(1)}。
收到"B"發(fā)送的信息后,用戶"A"檢查C五i K的有效性和yeG7lc以及i^為規(guī)定
長度的字符串;任何檢查不成功,用戶"A"中止協(xié)議執(zhí)行并返回出錯信息;若檢査通過, 用戶"A"計算d = /」乂10、 / = A,U)、并做如下計算
(a) .若用戶"A"已經(jīng)事先計算5'",則用戶"A"計算l^eG';用戶"A"檢査確認 J^^le,若""^le則中止協(xié)議運行;若r^-l。用戶"A"計算K; = B加r^ e G';
(b) .若用戶"A"無事先計算B"、則用戶"A"計算^^5加;T,eG';用戶"A"檢 査確認4 "e ,若"=k則中止協(xié)議運行;
用戶"A"計算/T —c,l)i/(/^,/,c,2)…7/(i^,/,c,/),由一個計數(shù)器 來實現(xiàn),i的取值依賴于《'的長度,即直到//0^,/^,1)//(^,/>,2)...//(^,/>力的長 度大于等于K'的長度;如果《'的長度為/',我們令尺'為 //(/^/^^//(^^/^^—//C^,/^,/)的長度為/'的前綴。
用戶"A"檢査確認《=/^"(^,(1),若檢查不通過(即《-i7M4Cf(1))則中止協(xié)議運行。若檢査通過,用戶"A"計算r^eG';若《-是在上述情形(b)生成,用戶"A"檢 查確認產(chǎn)^le,若r^"e則中止協(xié)議運行。用戶"A"計算&="}^ eG',計算 — c乂l)/f(&,c乂2)…i/(^,c,d,/),其中/Sl由一個計數(shù)器來實現(xiàn),J'的取
值依賴于(^,^)的長度,即直到//(《/1^乂1)〃0^^乂2) //(^4^乂0的長度大于等于 的長度;如果",^)的長度為/ ,我們令為 //(A, c, c/,l)/Z(^ , c乂2)…//(&, c乂 /)的長度為/的前綴。
用戶"A"計算G = //M4、(0),計算^ = //M4CV(wA/^",其中wW = 或 wW = i B或= (Z, 或= 7 。
用戶"A"將&設(shè)為會話密鑰,并進入下一輪。
第三輪用戶"A"向用戶"B"發(fā)送(C5i L^:j。
收到用戶"A"發(fā)送的信息后,用戶"B"首先利用《'檢查/;1=//雄(^,0/《/,,0; 若檢査不正確(即6*//爐<^,0 ^/^^))用戶"B"中止協(xié)議運行,返回或不返回出錯 信息。若^ = //脇<^,(^/,/"^),用戶"B"檢査C五i L的有效性,若檢査不通過,則中 止協(xié)議運行,返回或不返回出錯信息;若C5i^有效,用戶"B"計算"=//(&,4乂}0、 《s = e G'。用戶"B "計算, & ) e T/(i^, c, i/,l)i/(、 , c乂2) ■ ■, c, 0 ,其中
由 一 個計數(shù)器來實現(xiàn),i的取值依賴于的長度,即直到 ,c,,c,d,2)…,c乂/)的長度大于等于",& )的長度;如果",&)的長度 為/ ,我們令, &)為, c, d,1)//(/^, c, c/,2)... //(^4,c, A/)的長度為/的前綴。
用戶"B"檢査確認^ = //雄&,(0),若檢査不通過(艮卩^^/ZJ^4C;,(0))用戶"B" 中止協(xié)議運行;若檢查通過(即^=/^"(^(0)),用戶"B"將&設(shè)為會話密鑰并成功結(jié) 束會話。
權(quán)利要求
1.一類高效、公平的密鑰交換方法,其特征在于系統(tǒng)工作環(huán)境為(1).系統(tǒng)參數(shù)(G′,G,g,q),其中G′是一個階為N的有限群,G為G′中階為q的子群,g為G的生成元,使得定義在G上的離散對數(shù)問題是難的;用乘法來表示G′中元素的操作,將G、G′中的單位元記為1G,G′/1G表示的是由G′減去單位元1G之后其它元素的集合,即G′中的非1G元素;記G/1G為G中的非1G元素;不失一般性,指數(shù)運算和不在指數(shù)上的乘法運算的結(jié)果是G′或G中的一個元素,指數(shù)上的加法和/或乘法運算是模q計算;對于任一元素X∈G′,記X-1為X的相對于G′的逆元,即XX-1=1G;(2).H是一個哈希函數(shù);對于字符串或數(shù)值s1,s2,…sm,m>1,H(s1,s2,…sm)表示的是將s1,s2,…,sm,用合適編碼表示,然后將所有的編碼順序連接串聯(lián)起來,最后將串聯(lián)后得到的串作為H的輸入;不失一般性,設(shè)H的輸出是Zq={0,1,2,…,q-1}中的元素,否則取H的輸出的一個屬于Zq的子串或?qū)的輸出進行模q計算;若s1,s2,…,sm是m個字符串,S1,S2,…Sn是n個集合,Φ為空集合,1≤n,m,則{s1,s2,…,sm,Φ,S1,S2,…,Sn}表示的是{s1,s2,…,sm}∪S1∪S2∪…∪Sn,其中大括號內(nèi)的元素順序可以任意變化;H(s1,s2,…,sm,Φ,S1,S2,…,Sn)表示的是將s1,s2,…sm及S1∪S2∪…∪Sn-{s1,s2,…,sm}中的元素用合適編碼表示,然后將所有的編碼串順序連接串聯(lián)起來,最后將串聯(lián)后得到的串作為H的輸入;若Φ為空值,則H(s1,Φ,s2)=H(s1,s2),{s1,Φ,s2}={s1,s2};(3).具有身份IDIA的用戶“A”有一個公鑰A=ga∈G,其中a由用戶“A”在Zq={0,1,2,…,q-1}中隨機選??;相應地,具有IDIB的用戶“B”的公鑰記為B=gb∈G,以此類推;其中IA為用戶“A”的身份信息或用戶名,IB為用戶“B”的身份信息或用戶名;對于任一元素x∈Zq,記-x為x的相對于Zq的負元,即x+(-x)=0modq;(4).協(xié)議基于Diffie-Hellman密鑰交換協(xié)議;記X=gx∈G為用戶“A”的DH密鑰成分,x為DH密鑰成分X的離散對數(shù),x由用戶“A”從Zq={0,1,…,q-1}中隨機選取或從Zq={0,1,…,q-1}的奇數(shù)子集中隨機選??;記Y=gy∈G為用戶“B”的DH密鑰成分,y為DH密鑰成分Y的離散對數(shù),y由用戶“B”從Zq={0,1,…,q-1}中隨機選取或從Zq={0,1,…,q-1}的奇數(shù)子集中隨機選??;假設(shè)用戶“A”為協(xié)議的發(fā)起者,用戶“B”為協(xié)議的響應者;即用戶“A”先發(fā)送X;在收到X后用戶“B”再發(fā)送Y;在基于口令的實現(xiàn)方法中,客戶“A”發(fā)送的DH-密鑰成分為X′=gxBβ=XBβ∈G′;(5).協(xié)議會話標示符sidsid用于標示同一協(xié)議的不同的并發(fā)運行會話;sid是協(xié)議雙方相互交換的兩個隨機數(shù)的串聯(lián),即sid=RA||RB,其中RA是一個由用戶“A”發(fā)送的隨機數(shù),RB是一個由用戶“B”發(fā)送的隨機數(shù),“||”表示的是字符串聯(lián)結(jié)符;在客戶服務器環(huán)境中,sid可直接設(shè)置為服務器發(fā)送的隨機數(shù)或計數(shù)器數(shù)值;或者,sid直接由DH-密鑰成分來定義,即將RA換為X將RB換為Y;(6).與協(xié)議執(zhí)行相關(guān)的其它信息pub1,pub2,…pubk,k≥1對于任意的i,1≤i≤k,pubi是除DH-密鑰成分X=gx或X′,Y=gy之外的其它與協(xié)議執(zhí)行相關(guān)的信息的一個子集或序列,可為空或含重復元素;其它與協(xié)議執(zhí)行相關(guān)的信息包括用戶即協(xié)議初始者與響應者的身份信息或用戶名、協(xié)議初試者和響應者的角色標示、公鑰及公鑰證書信息、IP地址,協(xié)議版本,安全參數(shù)和密鑰參數(shù),協(xié)議的會話標示符,時間戳,cookie,任意數(shù)值,以及除DH-密鑰成分外的協(xié)議會話傳輸?shù)钠渌畔?;在不同的實現(xiàn)方法中,pubi的取值可不同;對于任意的i,j,i≠j,pubi等于或不等于pubj;pubi包含協(xié)議初始者與響應者的公鑰與身份或用戶名信息,即 id="icf0001" file="A2008100414750003C1.tif" wi="33" he="4" top= "140" left = "51" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>或 id="icf0002" file="A2008100414750003C2.tif" wi="42" he="4" top= "140" left = "91" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>(7).密鑰導出函數(shù)KDFKDF(S,aux)是一個密鑰導出函數(shù),其中S是一個數(shù)值或數(shù)值的集合,aux是一個數(shù)值字符串集合或計數(shù)器;KDF是一個哈希函數(shù)或哈希函數(shù)序列,或是一個以S為隨機種子的偽隨機函數(shù);會話密鑰和認證密鑰可由同一個密鑰導出函數(shù)在相同的輸入上導出;或者,會話密鑰和認證密鑰由同一個密鑰導出函數(shù)在不同的輸入上分別導出;或者,會話密鑰的導出函數(shù)與認證密鑰的導出函數(shù)不同,而它們的輸入相同或不同;(8).標簽認證函數(shù)FT(K,U),其中K為一個秘密數(shù)值或秘密數(shù)值的集合,U為一個集合;標簽認證函數(shù)FT(K,U)為任何滿足如下性質(zhì)的函數(shù)①不能夠從FT(K,U)在K的長度的多項式時間內(nèi)求出K,即相對于輸入K,函數(shù)FT是單向的;②給定FT(K,U),不能夠在K的長度的多項式時間內(nèi)計算出FT(K,U′)或FT(K,U′)使得U≠U′;FT是一個單向哈希函數(shù);或者FT是一個消息認證碼MAC函數(shù),其中MAC的私鑰由K、U導出而認證的信息是U的一個子集;假設(shè)協(xié)議運行送方有某種機制協(xié)商上述參數(shù)、函數(shù)、算法,用戶角色標示及會話標示符號的表示方法等,以及運行以下任一實現(xiàn)方法,并達成一致;協(xié)商所交互的信息的一個子集可包含在pubi,1≤i≤k中;在申請方法中進行的對各種元素的檢查確認是一次性的,即一旦確認正確,則在本次會話的后續(xù)運行中不在檢查;實現(xiàn)方法設(shè)用戶“A”有離散對數(shù)公鑰A=ga并發(fā)送DH-密鑰成分X=gx,且用戶“B”有離散對數(shù)公鑰B=gb并發(fā)送DH-密鑰成分Y=gy;記CERTA為用戶“A”的公鑰證書,CERTB為用戶“B”的公鑰證書;根據(jù)實現(xiàn)方法的不同,用戶公鑰證書的發(fā)送在發(fā)送DH-密鑰成分之前、或發(fā)送DH-密鑰成分的同時、或發(fā)送DH-密鑰成分之后;用戶“A”發(fā)送或不發(fā)送隨機數(shù)RA,用戶“B”發(fā)送或不發(fā)送隨機數(shù)RB;auxA和auxB要么均為空值或相同的值或字符串,或者auxA和auxB為任意數(shù)值或字符串并且auxA≠auxB;密鑰交換方法的核心和特征是構(gòu)建兩個函數(shù)KA和KB使得KA(a,x,B,Y,pub)=KB(b,y,A,X,pub);KA和KB的計算如下用戶“A”計算 id="icf0003" file="A2008100414750004C1.tif" wi="48" he="4" top= "100" left = "21" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>用戶“B”計算 id="icf0004" file="A2008100414750004C2.tif" wi="48" he="4" top= "100" left = "101" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>其中,ti=1或 id="icf0005" file="A2008100414750004C3.tif" wi="6" he="9" top= "98" left = "179" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>1≤i≤4;用戶“A”事先計算X和 id="icf0006" file="A2008100414750004C4.tif" wi="23" he="3" top= "112" left = "86" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>用戶“B”可事先計算Y和 id="icf0007" file="A2008100414750004C5.tif" wi="23" he="4" top= "112" left = "162" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>實現(xiàn)方法的關(guān)鍵是函數(shù)c,d,e,f的不同設(shè)置和實現(xiàn)方法實現(xiàn)方法-(1)c=d=1;e=0或e=1或e=H(pub1);f=H(IA,A,IB,B,X,Y)或f=H(sid,IA,A,IB,B,X,Y)或f=H(pub2,X,Y);實現(xiàn)方法-(2)c=H(auxA,IB,B,X)或c=H(auxA,RA,IB,B,X);d=H(auxB,IA,A,Y)或d=H(auxB,RB,IA,A,RB,Y);e=0或1或H(pub1);f=H(X,Y)或f=H(sid,X,Y)f=H(pub2,X,Y);對于實現(xiàn)方法-(2),用戶先交換DH-密鑰成分,后交換公鑰證書;或者用戶“B”在發(fā)送Y的同時發(fā)送公鑰證書;此時,用戶“B”先計算 id="icf0008" file="A2008100414750004C6.tif" wi="25" he="4" top= "181" left = "125" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>用戶“A”先計算<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><msup> <mi>Y</mi> <mrow><msub> <mi>t</mi> <mn>3</mn></msub><mi>ad</mi><mo>+</mo><msub> <mi>t</mi> <mn>4</mn></msub><mi>xf</mi> </mrow></msup><mo>&Element;</mo><msup> <mi>G</mi> <mo>&prime;</mo></msup><mo>;</mo> </mrow>]]></math></maths>實現(xiàn)方法-(3)c=H(auxB,IB,B,X)或c=H(auxB,IB,B,RB,X);d=H(auxA,IA,A,Y)或d=H(auxA,IA,A,RA,Y);e=0或1或H(pub1);f=H(X,Y)或f=H(sid,X,Y)f=H(pub2,X,Y);對于實現(xiàn)方法-(3),用戶先交換DH-密鑰成分,后交換公鑰證書;用戶“B”在發(fā)送Y的同時發(fā)送公鑰證書;此時,用戶“B”先計算 id="icf0010" file="A2008100414750004C8.tif" wi="25" he="3" top= "233" left = "103" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>用戶“A”先計算 id="icf0011" file="A2008100414750004C9.tif" wi="24" he="4" top= "233" left = "161" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>實現(xiàn)方法-(4)c=H(auxA,IB,B,X)或c=H(auxA,IB,B,RA,X)或c=H(auxB,IB,B,X)或c=H(auxB,IB,B,RB,X);d=H(auxB,IA,A,Y)或d=H(auxB,IA,A,RB,Y)或d=H(auxA,IA,A,Y)或d=H(auxA,IA,A,RA,Y);e=0或1或H(pub1);f=H(IA,A,IB,B,X,Y)或f=H(sid,IA,A,IB,B,X,Y)或f=H(c,d)或f=H(c,Y)或f=H(d,X)或f=H(IA,IB,X,Y)或f=H(sid,IA,IB,X,Y);實現(xiàn)方法-(5)c=H(auxA,IA,A,IB,B,X)或c=H(auxA,IA,A,RA,IB,B,X);d=H(auxB,IB,B,IA,A,Y)或d=H(auxB,IB,B,RB,IA,A,Y);e=0或1或H(pub1);f=H(X,Y)或f=H(sid,X,Y)或f=H(IA,A,IB,B,X,Y)或f=H(sid,IA,A,IB,B,X,Y)或f=H(c,d)或f=H(c,Y)或f=H(d,X)或f=H(IA,IB,X,Y)或f=H(sid,IA,IB,X,Y)或f=H(pub2,X,Y);實現(xiàn)方法-(6)c=H(auxA,IA,A,X)或c=H(auxA,IA,A,RA,X),d=H(auxB,IB,B,Y)或d=H(auxB,IB,B,RB,Y),e=0或1或H(pub1),f=H(IA,A,IB,B,X,Y)或f=H(sid,IA,A,IB,B,X,Y)或f=H(c,d)或f=H(c,Y)或f=H(d,X);實現(xiàn)方法-(7)c=H(auxA,IA,A,IB,X)或c=H(auxA,IA,A,RA,IB,X),d=H(auxB,IB,B,IA,Y)或d=H(auxB,IB,B,RB,IA,Y),e=0或1或H(pub1),f=H(X,Y)或f=H(sid,X,Y)或f=H(IA,A,IB,B,X,Y)或f=H(sid,IA,A,IB,B,X,Y)或f=H(c,d)或f=H(c,Y)或f=H(d,X)或f=H(IA,IB,X,Y)或f=H(sid,IA,IB,X,Y)或f=H(pub2,X,Y);實現(xiàn)方法-(8)c=H(auxA,IB,X)或c=H(auxA,IA,IB,X)或c=H(auxA,RA,IB,X)或c=H(auxA,IA,RA,IB,X),d=H(auxB,IA,Y)或d=H(auxB,IB,IA,Y)或d=H(auxB,RB,IA,Y)或d=H(auxB,IB,RB,IA,Y),e=0或1或H(pub1),f=H(X,Y)或f=H(sid,X,Y)或f=H(IA,A,IB,B,X,Y)或f=H(sid,IA,A,IB,B,X,Y)或f=H(c,d)或f=H(c,Y)或f=H(d,X)或f=H(IA,IB,X,Y)或f=H(sid,IA,IB,X,Y)或f=H(pub2,X,Y);實現(xiàn)方法-(9)c=H(auxA,pub3,X)或c=H(pub4,X,Y)或c=1,d=H(auxB,pub5,Y)或d=H(pub6,X,Y)或d=1;e=0或1或H(pub1)或H(pub1,X,Y)或H(pub1,X)或H(pub1,Y),f=H(pub7,X,Y)或f=H(sid,X,Y)或f=H(c,d)或f=H(c,Y)或f=1或f=0;其中,若c=1和/或d=1,則f不可為0或1;pub4和pub7不相同,pub6和pub7不相同;ti,1≤i≤4,設(shè)置方法(1).若用戶“A”檢查確認B∈G,Y∈G,用戶“B”檢查確認A∈G,X∈G,則令t1=t2=t3=t4=1;(2).若用戶“A”僅檢查確認B∈G,X∈G′或X∈G′/1G,而不能確認X∈G,用戶“B”僅檢查確認A∈G,Y∈G′或Y∈G′/1G,而不能確認Y∈G,且x和/或y會泄露,則令 id="icf0012" file="A2008100414750005C1.tif" wi="37" he="9" top= "266" left = "103" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>用戶“B”檢查確認 id="icf0013" file="A2008100414750006C1.tif" wi="22" he="5" top= "27" left = "21" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>或 id="icf0014" file="A2008100414750006C2.tif" wi="23" he="4" top= "27" left = "49" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>或KB≠1G,用戶“A”檢查確認 id="icf0015" file="A2008100414750006C3.tif" wi="23" he="4" top= "27" left = "133" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>或 id="icf0016" file="A2008100414750006C4.tif" wi="22" he="4" top= "27" left = "162" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>或KA≠1G;若x,y均不會泄露,仍同(1)可設(shè)t1=t2=t3=t4=1;任何檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息;會話密鑰和認證密鑰導出方法利用密鑰導出函數(shù)由KA=KB及{f,c,d,e,X,Y,pub8}的某個子集導出認證密鑰k1和會話密鑰k2;認證方法記導出的認證密鑰為k1,為向用戶“A”證明其知道R′,用戶“B”利用標簽認證函數(shù)FT計算并發(fā)送tB=FT(k1,aux1),其中aux1是{IB,sid,rB,X,Y,pub9}的一個子集,sid是會話標示符,rB是用戶“B”的協(xié)議角色標示;用戶“A”利用認證密鑰k1檢查tB正確性,若不正確,則中止協(xié)議執(zhí)行,返回或不返回出錯信息;為向用戶“B”證明其的確知道k1,用戶“A”在收到tB并驗證tB的正確性后,計算并向用戶“B”發(fā)送tA=FT(k1,aux0),其中aux0是{IA,sid,rA,X,Y,pub10}的一個子集且aux0≠aux1,rA是用戶“A”的協(xié)議角色標示;用戶“B”利用認證密鑰R′檢查tA正確性,若不正確,則中止協(xié)議執(zhí)行,返回或不返回出錯信息。
2.如權(quán)利要求1所述的高效、公平的密鑰交換方法的應用,其特征在于應用于抗拒絕服務攻擊,且保護用戶隱私,具體步驟如下設(shè)用戶"A"有離散對數(shù)公鑰^二g"并發(fā)送DH-密鑰成分X-^,用戶"B"有離散對數(shù)公鑰B二g^并發(fā)送DH-密鑰成分7 =,;記C五i r,為用戶"A"的公鑰證書,C五/ 7^為用戶"B"的公鑰證書;用戶"A"發(fā)送或不發(fā)送隨機數(shù)i^,用戶"B"發(fā)送或不發(fā)送隨機數(shù)^;flUX^和"Wxs均為空值或相同的值或字符串,或者crn^和flwxB為任意數(shù)值或字符串并且(=1或!, 1S"4;其設(shè)置方法為(1).若用戶"A"檢查確認5eG,:FeG,用戶《"B"檢查確認爿eG,ZeG,貝1』令^=^=^3=^4=1 ; (2).若用戶"A"僅檢査確認3eG, ZeG'或XeG'/le,而不能確認IeG ,用戶"B"僅檢査確認爿eG, ;FeG'或yeG71a,而不能確認FeG,且x和/或少會泄露,貝1』令^=1,/2=^= 4=!,用戶"B"《檢査確認Z^"^^lG ,用戶"A"檢查確認r'一-lG和/或W7'^-lG和/或y'"-lG ;若x,少均不會泄露,仍同(1)可設(shè)^= 2=/3=,4=1;任何檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息;第一輪用戶"A"向用戶"B"發(fā)送(X,ataJ或(X,置^,i J ;收到"A"發(fā)送的信息后,用戶"A"檢查XeG'或XeGVlc或義eG或ZeG/lc;若檢査不通過,則中止協(xié)議運行,返回或不返回出錯信息;若檢査通過,用戶"B"計算r , ^ = e G';其中,c = i/(awjc力,/s , S, Z)或c = //("ta力,/fl, 5, ^ , X) 或c = //(auxs,/£,B,Z) 或c:7/(a"Xa,/0,5,i s,JQ ; / = //(義,:^) 或 / = //(Xl,r)/ = //0^2,義,0;其中,用戶"B"可事先計算y、 C和^C;用戶"B"利用密鑰導出函數(shù)由/^及(/,c,義,:r,^/,^,^,/70的一個子集導出認證密鑰r:用戶"B"利用標簽認證函數(shù)&計算4 ^i^(iT,ato0,其中a叫是《AX^,Z,;r,i^,;7"69)的一個子集,s!W是會話標示符,^是用戶"B"的協(xié)議角色標示;第二輪用戶"B"向用戶"A"發(fā)送仏,5,r,""Xe,0或仏,5工""^,A,";其中,(/3,6)替換為用戶"B"的公鑰證書c^ 7;;收到用戶"B"發(fā)送的信息后,用戶"A"檢查C5及7;的有效性,檢查reG'或reG'/lc或yeG或FeG/l。;若檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息;若檢查通過,用戶"A"計算c、 /和K;^B""T'"eG';用戶"B"由K〗導出認證密鑰K',并利用《'檢査^ =尸,(/ ',0叫)的正確性,若檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息;若檢査通過,用戶"A"計算^=(^7""5''",—eG',其中J =//(m^,/力乂y)或^ = //0^,/4, J,^,;r)或d二i/(m^,^,A:n或fl^^"0"^,乙,^,i^,F(xiàn)); eo或i或//0喊);其中用戶"A"事先計算Z、 S'"eG', 5'^eG';用戶"A"利用密鑰導出函數(shù)由^^及(/,c,c/,e,義,:r,A,/^,;wZ^的某個子集導出認證密鑰&和會話密鑰& ;用戶"A"計算^ = Fr(、awx。),其中cwx。是卩^X^,/^,X,;r,/n^J的一個子集且ma。^m^ , ^是用戶"A"的協(xié)議角色標示;用戶"A"計算或不計算^ = Fr(K',aia;),其中仰JC;是{/4, AG,"'cf,。,U,/^,i^,/w&10}的一個子集且a"《右a似,;第三輪用戶"A"向用戶"B"發(fā)送(K^,"或仏乂/丄其中仏,J)替換為用戶"A"的公鑰證書C5i L;收到用戶"A"發(fā)送的信息后,若用戶"A"在第三輪發(fā)送(/^J,^^J,用戶"B"首先利用《'檢査^=&(《',0欲。,若檢查不正確用戶"B"中止協(xié)議運行,返回或不返回出錯信息;若6-FJ《X),用戶"B"檢査C五i L的有效性,若檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息;若C五燈4有效,用戶"B"計算^ = ^"一x'—" e G',并利用密鑰導出函數(shù)由A及(/,c,c/,e,Z,y,A,^,^W的某個子集導出認證密鑰A和會話密鑰&;用戶"B"利用認證密鑰^檢查^ = 的正確性,若檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息;若檢査通過,進行或不進行第四輪;第四輪用戶"B"計算并向用戶"A"發(fā)送(W,其中^ =^(4,^:^), m/x一 aux。;收到用戶"B"發(fā)送的信息后,用戶"A"利用認證密鑰i '檢查^的正確性;若檢查不通過,則中止協(xié)議運行,返回或不返回出錯信息。
3. 如權(quán)利要求1所述的高效、公平的密鑰交換方法的應用,其特征在于應用于無公鑰證書且在線計算高效的密鑰交換方法,具體步驟如下設(shè)s : x(/ — G是一個合格的多項式時間可計算的雙線性映射;其中Gf是一個階為《的加法或乘法群,1^為其單位元;不失一般性,記C^為加法群;記P為(^的生成元;s:GrxGr ~>(7滿足e(xP,;^^fCP,P;r且e(尸,尸)"Gr ;記/^ : {0,1}'4 Gr為一個哈希函數(shù);用戶"A"除了公鑰爿=^£(7外,另有一個基于身份的公鑰仏=/^(//4)或^ = //7'(^")或01=/^(/_4乂尸。);用戶"B"除了公鑰5: eG夕卜,另有一個基于身份的公鑰&=^("或&=/^(4,5)或&=/^(^,&尸。);其中,尸。=^£(/為一個可信的第三方C4的公鑰,C4的私鑰為"Z—用戶"A"除了私鑰"之外另有私鑰&w仏,其中^-s仏由C4計算并安全地傳送給用戶"A";用戶"B"除了私鑰6之外另有私鑰& = s& ,其中SB = 由C4計算并安全地傳送給用戶"B"。
4. 根據(jù)權(quán)利要求1所述的高效、公平的密鑰交換方法,其特征在于含有公平的Diff ie-Hellman密鑰交換方法設(shè)用戶"A"發(fā)送DH-密鑰成分1 = ^£(7,用戶"B"發(fā)送DH-密鑰成分]^g、G';用戶"A"計算Diffie-Hellman秘密^,F",用戶"B"計算Diffie-Hellman秘密《fi=rc;其中£; = //(^,7,;7^12)。
5. 如權(quán)利要求4所述的高效、公平的密鑰交換方法的應用,其特征在于該方法采用公平的Diffie-Hellman密鑰交換方法應用于高效、公平的群密鑰交換方法,具體步驟如下設(shè)有"個用戶^,^,…R, ">2,想建立一個共同的Diffie-Hellman秘密;用戶R的DH-密鑰成分記為X,g eG',其中B"", x^Z"我們設(shè)下標/是modn計算;對于任意的/mod",用戶f/,計算Z^X卜/'^ 、 2,.+1=義,+1'"'^'+1和7;=^ ,其中c, 或c,i/("w,^—,。+1 =//("l,";,X,或&+1 =//(t/,.,x,.,f/,.+1,i,+1); t/,.將7;通知給所有其它用戶,但可將《只通知給t/,—,和t/,+,;對于任意的/mod",用戶R計算Diffie-Hellman秘密= (z,)"(7;)"—'(7^)"—2…(7;—3)27;_2 e g';會話密鑰和認證密鑰利用密鑰導出函數(shù)由《及(^/,t/,,f/2,…,t/",7;,r2,…,:o的一個子集導出;(=1或?。蝗魧τ谌我獾? mod ",用戶C/,.檢查確認I,—,,均為G或G/le中的元素,《則6=^= ^=1;若對于任意的;mod",用戶f/,僅檢查確認《—pI^為G'中的元素,而不能確認為G中的元素,則^^2^^ =!,用戶R檢查確認Z^l。Z,.+^^和/或《《#le,若檢査不通過則返回出錯信息并中止協(xié)議運行。
6.如權(quán)利要求1-5之一所述的高效、公平的密鑰交換方法及其應用,其特征在于應用于變體的某個子集,具體步驟如下(1) .將哈希函數(shù)輸入中的(/z,j)替換成(乙,乂)的哈希值,并將(/,,j)的哈希值包含在用戶"A"的公鑰證書中;將哈希函數(shù)輸入中的(/8,5)替換成(/3,^的哈希值,并將(/"5)的哈希值包含在用戶"B"的公鑰證書中;(2) .公鑰證書頒發(fā)機構(gòu)在向用戶頒發(fā)證書時,檢査確認用戶注冊的公鑰為G中的元素或為G/le中元素;任何檢査不通過,證書頒發(fā)機構(gòu)拒絕頒發(fā)公鑰證書;這樣,每個用戶只需檢查對方用戶的公鑰證書即可確認對方的公鑰為G或G/le中的元素;(3) .基于口令的變體權(quán)利要求1、 2的實現(xiàn)方法有如下基于口令的變體;設(shè)用戶"A""在用戶"B"處注冊了一個口令pt;在所有方法中用戶"A"所發(fā)送DH-密鑰成分X' = Jffiw或X' = Jffl—w ,或者X' = X5""—或Z萬—H"p"6"'w),或者xW"—或其中5為用戶"B"的公鑰,x = y eG', ^^是一個輸出長度小于q的長度的哈希函數(shù);收到X'后,用戶"B"根據(jù)Z'的相應計算方式計算出X二XB—w或x = xbw ,或者xb-""—",)或xb""—,或者xb-""—或XB (—7 ,);i^,i^,G厶計算仍使用Z作為指數(shù)下的挑戰(zhàn),但指數(shù)上的函數(shù)c,c/,e,/的輸入中的X換為義';除其它規(guī)定的事先離線計算外,用戶"B"可事先計算5-'eG';在基于口令的變體中,對DH-密鑰成分X是否為G'或G中元素的檢査替換為對X'是否為G'或G中元素的檢查;(4) .哈希函數(shù)的輸入中嵌套相同或不同的哈希函數(shù),即將原哈希函數(shù)的輸入和嵌套的哈希函數(shù)作為一個特殊的有向圖的節(jié)點,其中原哈希函數(shù)的輸入代表的節(jié)點無扇入,最外層的哈希函數(shù)所代表的節(jié)點無扇出,每個節(jié)點所代表的數(shù)值是其扇出節(jié)點所代表的哈希函數(shù)的輸入;(5) .將哈希函數(shù)輸入的順序任意變化;和/或,將哈希函數(shù)的所有輸入換為所有輸入 的并集,即重復的元素在輸入中只出現(xiàn)一次;和/或,將哈希函數(shù)換為任一個輸出為整 數(shù)的函數(shù);和/或,應用在每一處的哈希函數(shù)與應用在其它處的哈希函數(shù)相同或不同;艮卩,我們使用一組哈希函數(shù)(^,//2,■ // },其中對于任意的/,y,i",/《","y,巧=//,.或//,#/^, "2l且n是需應用哈希函數(shù)的次數(shù)的上界;(6) .不同的密鑰導出函數(shù)應用在每一處的密鑰導出函數(shù)與應用在其它處的密鑰導出 函數(shù)相同或不同;即,我們使用一組密鑰導出函數(shù){《/^,《/)《, ■《/)《},其中對于任意的/,,K/J《/^=^/^或^^#;0^, "21且"是需應用密鑰導出函數(shù)的 次數(shù)的上界;(7) .在所有方法中用戶"A"檢査&^le,用戶"B"檢査^^le;(8) .對于基于橢圓曲線的實現(xiàn),將密鑰導出函數(shù)輸入中的^^,《s換為^^,^^的^"^ 標值或少-坐標值;每個用戶檢查對方用戶的DH一密鑰成分的x-坐標和j-坐標是橢圓曲線所基于的有限域中的正確編碼的元素;(9) .出錯中止和出錯信息返回在所有的方法中, 一旦一個用戶因檢査不通過,即出 錯,而中止協(xié)議,發(fā)回或不發(fā)回出錯信息;在基于口令的實現(xiàn)方法中,客戶"A"只允許 出錯有限次,以防止在線攻擊;(10) .會話標示符和用戶協(xié)議角色標示方法:會話標示符一般由用戶"A"和"B"發(fā) 送的兩個隨機數(shù)或DH-密鑰成分以初始者-響應者的順序串聯(lián)構(gòu)成;用戶的協(xié)議角色標示一 般用不同的整數(shù)或者由用戶"A"和"B"發(fā)送的隨機數(shù)或DH-密鑰成分的不同順序來標示;(11) .用戶"A"檢查確認r^Z;若^ = 1,用戶"A"則中止協(xié)議運行。
全文摘要
本發(fā)明屬于密碼協(xié)議技術(shù)領(lǐng)域,具體涉及一類高效、公平的密鑰交換方法。其特點為最優(yōu)的(在線)計算效率,支持先發(fā)送DH-密鑰成分后發(fā)送身份和公鑰證書的Post-ID工作模式,利于隱私保護、計算的可并行性和模塊化,支持DH-密鑰成分的重復使用,并可應用于分布式客戶-服務器環(huán)境下抗拒絕服務且保護用戶隱私的密鑰交換、無公鑰證書的密鑰交換、和公平的群Diffie-Hellman密鑰交換。
文檔編號H04L29/06GK101645870SQ20081004147
公開日2010年2月10日 申請日期2008年8月7日 優(yōu)先權(quán)日2008年8月7日
發(fā)明者丁素芬, 楓 儲, 姚期智, 趙運磊 申請人:趙運磊
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1