張啟慧,胡學(xué)先,劉文芬,魏江宏
1(中國人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué),河南 鄭州 450001)
2(桂林電子科技大學(xué) 計(jì)算機(jī)與信息安全學(xué)院,廣西 桂林 541004)
當(dāng)今,以移動(dòng)互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)為代表的信息技術(shù)日新月異,使人們的日常生活不斷網(wǎng)絡(luò)化,資產(chǎn)不斷數(shù)字化,構(gòu)造安全的身份認(rèn)證和密鑰交換(AKE)協(xié)議逐漸成為保障用戶數(shù)字化資產(chǎn)安全的關(guān)鍵.在所有的認(rèn)證方式中,口令認(rèn)證由于簡單易用、方便部署,成為目前應(yīng)用最為普遍的一種[1].
早在1992 年,Bellovin 等人[2]就開創(chuàng)性地提出第一個(gè)真正意義上能夠抵抗離線字典攻擊的兩方口令認(rèn)證密鑰交換(PAKE)協(xié)議,其中,用戶和服務(wù)器利用共享的低熵口令進(jìn)行認(rèn)證并生成高熵的會(huì)話密鑰.PAKE 協(xié)議僅僅要求用戶記住一個(gè)較短的口令,避免了傳統(tǒng)的基于對(duì)稱密鑰的AKE 協(xié)議對(duì)存儲(chǔ)初始對(duì)稱密鑰的專用硬件的需求,也無需網(wǎng)絡(luò)中配有復(fù)雜的公鑰基礎(chǔ)設(shè)施,非常方便實(shí)際使用.隨后,為進(jìn)一步提高兩方PAKE 協(xié)議的安全性和效率,密碼學(xué)家針對(duì)兩方PAKE 協(xié)議的設(shè)計(jì)與分析進(jìn)行了深入的探索,基于可證明安全理論構(gòu)建了適用于PAKE的安全模型[3-6],分別設(shè)計(jì)了在隨機(jī)預(yù)言模型下安全的兩方PAKE 協(xié)議[3,4,7,8]和在標(biāo)準(zhǔn)模型下安全的兩方PAKE 協(xié)議[9-14].國際標(biāo)準(zhǔn)化組織(ISO)等機(jī)構(gòu)還頒布了ISO/IEC 11770-4、IEEE Std 1363.2 等系列相關(guān)安全標(biāo)準(zhǔn),進(jìn)一步推動(dòng)了PAKE 協(xié)議的廣泛應(yīng)用.
兩方PAKE 協(xié)議比較適合“用戶-服務(wù)器”架構(gòu)下的兩方通信,卻不適合用在大規(guī)模用戶相互通信的場合.此時(shí),任何兩個(gè)需要相互通信的用戶都需要預(yù)先共享一個(gè)口令,從而導(dǎo)致每個(gè)用戶需要記住多個(gè)口令才能支持安全通信.為了降低這一情形下用戶記憶和管理口令的負(fù)擔(dān),三方PAKE 協(xié)議隨即被提出,其中每個(gè)用戶僅僅需要和服務(wù)器共享一個(gè)口令,就可以在服務(wù)器的協(xié)助下與他人進(jìn)行安全的密鑰交換.由于這類協(xié)議在大規(guī)模通信中較為實(shí)用,密碼學(xué)家基于不同假設(shè)構(gòu)造了一系列實(shí)用的三方PAKE 協(xié)議[15,16],并在安全模型下嚴(yán)格地證明了協(xié)議的安全性[17-21].
盡管兩方、三方PAKE 協(xié)議已經(jīng)得到深入而廣泛的研究,密碼學(xué)家提出了諸多安全、高效的構(gòu)造方案,滿足了不同場合的安全應(yīng)用,然而,多數(shù)已有口令協(xié)議關(guān)注的是服務(wù)器利用明文存儲(chǔ)用戶口令的情形,沒有考慮服務(wù)器口令文件泄露所造成的巨大威脅.而現(xiàn)實(shí)中關(guān)于服務(wù)器端存儲(chǔ)的口令文件被泄露的案例卻是層出不窮[22],亟待在PAKE 協(xié)議設(shè)計(jì)中增加減弱服務(wù)器文件泄露造成危害的措施.針對(duì)服務(wù)器文件泄露問題,常見的解決方案有驗(yàn)證元[23-25]、泄露檢測[26]、慢哈希[27]、口令硬化[28]等技術(shù).作為防止服務(wù)器文件泄露所造成攻擊的技術(shù)的典型代表,驗(yàn)證元技術(shù)是指服務(wù)器端使用口令的變換值而非口令本身進(jìn)行認(rèn)證,使得攻擊者在獲得服務(wù)器口令文件后至少需要進(jìn)行離線字典攻擊才能獲得原始的口令,有效地減弱了服務(wù)器口令文件泄露所造成的危害.
針對(duì)基于驗(yàn)證元的三方PAKE 協(xié)議,楊等人[29]提出了首個(gè)標(biāo)準(zhǔn)模型下的協(xié)議構(gòu)造.他們利用帶標(biāo)簽的公鑰加密體制、平滑投射哈希函數(shù)等組件構(gòu)造了一個(gè)基于驗(yàn)證元的三方PAKE 協(xié)議,并在標(biāo)準(zhǔn)模型下分析了所提出協(xié)議的安全性.本文中,我們分析指出該協(xié)議并未達(dá)到所聲稱的安全性,難以抵抗離線字典攻擊.其次,在分析已有協(xié)議缺陷的基礎(chǔ)上,通過借鑒標(biāo)準(zhǔn)模型下PAKE 協(xié)議設(shè)計(jì)的新技術(shù),我們利用改進(jìn)的平滑投射哈希函數(shù)構(gòu)造了一個(gè)新的基于驗(yàn)證元的三方PAKE 協(xié)議,并在廣泛接受的安全模型中對(duì)其進(jìn)行了嚴(yán)格的安全性證明.最后,還將所提出的基于驗(yàn)證元的三方PAKE 協(xié)議與已有協(xié)議進(jìn)行了安全性和效率比較,結(jié)果表明,新提出的協(xié)議在提供了更高安全性的同時(shí)具有可接受的計(jì)算和通信效率.
一個(gè)公鑰加密體制含有3 個(gè)算法PKE=(KG,Enc,Dec),其中,密鑰生成算法KG在輸入安全參數(shù)k時(shí),輸出公私鑰對(duì)(pk,sk)←KG(1k),加密算法Enc在輸入公鑰pk、明文m以及隨機(jī)數(shù)r時(shí),輸出對(duì)應(yīng)的密文c←Enc(pk,m;r),解密算法Dec在輸入私鑰sk、合法密文c時(shí),輸出對(duì)應(yīng)的明文m←Dec(sk,c),如果輸入的密文不合法,解密算法輸出⊥.
如果公鑰加密算法能夠抵御選擇密文攻擊(CCA),則稱它是CCA 安全的.在CCA 攻擊中,攻擊者A 除了能夠獲得加密公鑰pk外,還具有訪問解密預(yù)言O(shè)dec(c)=Dec(sk,c)的能力.攻擊者A 自適應(yīng)地選擇兩個(gè)明文m0和m1,模擬者選擇隨機(jī)的比特b∈{0,1}并計(jì)算挑戰(zhàn)密文c*=Enc(pk,m).如果攻擊者在不向解密預(yù)言詢問c*的條件下,輸出猜測b′,則定義攻擊者的優(yōu)勢(shì)以及相應(yīng)的優(yōu)勢(shì)函數(shù)分別為
其中,最大值函數(shù)跑遍所有計(jì)算時(shí)間至多為t,詢問解密預(yù)言的次數(shù)至多為qdec的CCA 攻擊者.在上述定義中,如果不提供給攻擊者訪問解密預(yù)言的能力,而僅僅讓其獲得公鑰pk,則相應(yīng)的攻擊是選擇明文攻擊(CPA),此時(shí)安全的加密算法被稱為CPA 安全的.
在PAKE 協(xié)議設(shè)計(jì)中,我們需要用到公鑰加密體制的一種變體,稱為帶標(biāo)簽(label)的公鑰加密體制,其定義類似于傳統(tǒng)的公鑰加密體制,不過,要求加密算法和解密算法能夠接受將標(biāo)簽l作為一個(gè)額外的公開輸入(形如c←Enc(pk,m;l;r)),且僅當(dāng)解密算法輸入和加密算法完全一樣的標(biāo)簽時(shí)才能解密得到正確的明文.關(guān)于帶標(biāo)簽的公鑰加密體制的CCA 安全性,其定義與傳統(tǒng)公鑰加密算法類似,不同之處在于,攻擊者詢問解密預(yù)言時(shí)要同時(shí)提供密文和標(biāo)簽,攻擊者在選擇挑戰(zhàn)明文m0、m1時(shí)也需要同時(shí)提供一個(gè)挑戰(zhàn)標(biāo)簽l*.
平滑投射哈希函數(shù)最初是由密碼學(xué)家Cramer 和Shoup[30]提出的,隨后被Katz 等人[31]和Benhamouda 等人[13]加以改進(jìn)用于通信高效的PAKE 協(xié)議構(gòu)造.粗略地說,它是一種雙密鑰的哈希函數(shù),給定集合X以及語言L?X,對(duì)任意的詞語c∈L,其相應(yīng)的哈希值可以用兩種方式計(jì)算:利用哈希密鑰hk和c,或利用投射密鑰hp和相應(yīng)于c∈L的證據(jù)w.具體而言,一個(gè)平滑投射哈希函數(shù)SPHF=(HashKG,ProjKG,Hash,ProjH)由4 個(gè)算法組成,其中密鑰生成算法HashKG在輸入安全參數(shù)k時(shí)輸出哈希密鑰hk←HashKG(1k),投射密鑰生成算法ProjKG在輸入哈希密鑰hk、語言L以及相應(yīng)的元素c∈X時(shí)輸出相應(yīng)的投射密鑰hp←ProjKG(hk,L,c),哈希函數(shù)Hash在輸入哈希密鑰hk、語言L以及任意元素c∈X時(shí)輸出哈希值h←Hash(hk,L,c),投射哈希函數(shù)ProjH在輸入投射密鑰hp、語言L、詞語c∈L以及相應(yīng)證據(jù)w時(shí)輸出哈希值h←ProjH(hp,L,c,w).
平滑投射哈希函數(shù)應(yīng)該滿足正確性和平滑性兩個(gè)特性.正確性是指,對(duì)任意合法的詞語c∈L以及相應(yīng)證據(jù)w,Hash(hk,L,c)=ProjH(hp,L,c,w)成立;平滑性是指,對(duì)任意的不屬于給定語言的元素c?L,即使在已知hp的條件下,Hash(hk,L,c)也和完全隨機(jī)選取的輸出是統(tǒng)計(jì)不可區(qū)分的.當(dāng)安全參數(shù)為k時(shí),記εSPHF(k)為這兩個(gè)分布的統(tǒng)計(jì)距離的一個(gè)可忽略的上界.
Benhamouda 等人[25]形式化地給出了口令哈希機(jī)制的嚴(yán)格定義,用來描述基于驗(yàn)證元的口令協(xié)議中驗(yàn)證元的生成方式.一個(gè)口令哈希機(jī)制PHS 通常由5 個(gè)算法組成,其中參數(shù)生成算法PSetup在輸入安全參數(shù)k以及口令比特位數(shù)n時(shí)輸出公開參數(shù)param←PSetup(1k,1n),預(yù)鹽值生成算法PPHSalt在輸入?yún)?shù)param時(shí)輸出隨機(jī)的預(yù)鹽值sP←PPHSalt(param),預(yù)哈希值生成算法PPreHash在輸入?yún)?shù)param、預(yù)鹽值sP和口令π時(shí)輸出預(yù)哈希值P←PPreHash(param,s P,π),預(yù)鹽值sP和預(yù)哈希值P主要是客戶端使用;鹽值生成算法PSalt在輸入?yún)?shù)param時(shí)輸出隨機(jī)的鹽值sH←PSalt(param),驗(yàn)證元生成算法PHash在輸入?yún)?shù)param、鹽值sH和口令π時(shí)輸出哈希值H←PHash(param,s H,π),鹽值sH和哈希值H被服務(wù)器端用作驗(yàn)證元.
為了保證服務(wù)器口令文件泄露后讓攻擊者盡可能難地獲得用戶的口令,需要保證加鹽操作后攻擊者只有對(duì)每個(gè)驗(yàn)證元進(jìn)行獨(dú)立的離線字典攻擊才能獲得相應(yīng)的口令,為此,Benhamouda 等人[25]給出了緊單向性(tight one-wayness)的定義.為了讓口令哈希機(jī)制能夠適配PAKE 協(xié)議設(shè)計(jì)中的平滑投射哈希等操作,文獻(xiàn)[25]還給出了一個(gè)基于代數(shù)運(yùn)算的口令哈希機(jī)制.
設(shè)q是素?cái)?shù),G是q階乘法循環(huán)群,g∈G是其中的一個(gè)生成元.判定型Diffie-Hellman(DDH)假設(shè)是指,對(duì)所有概率多項(xiàng)式時(shí)間的攻擊者A,其成功區(qū)分{(g x,g y,gxy):x,y∈Zq}和{(g x,g y,g z):x,y,z∈Zq}上的均勻分布的優(yōu)勢(shì)都是可忽略的.定義相應(yīng)的優(yōu)勢(shì)函數(shù)為,則DDH 假設(shè)成立意味著是安全參數(shù)的可忽略函數(shù).
本節(jié)介紹用于分析三方PAKE 協(xié)議的安全模型,該模型首先由Abdalla 等人提出[5],隨后,文獻(xiàn)[29,32]對(duì)其進(jìn)行了改進(jìn).此外,在定義攻擊者優(yōu)勢(shì)時(shí),考慮到真實(shí)口令分布并不服從均勻分布,而是服從嚴(yán)重偏態(tài)的Zipf 分布[33],我們采用了類似于文獻(xiàn)[34]的方式對(duì)其進(jìn)行了改進(jìn).
協(xié)議參與方.三方PAKE 協(xié)議的參與方包含兩個(gè)集合:所有用戶組成的集合U以及可信服務(wù)器組成的集合S.其中,用戶集合U又分為誠實(shí)用戶集合C和惡意用戶集合E,惡意用戶集合形式化了意圖攻擊其他用戶的惡意用戶.不失一般性,常常假設(shè)服務(wù)器集合僅包含一個(gè)元素S={S}.
長期密鑰.用戶集合U中的每一個(gè)用戶U∈U都擁有一個(gè)口令πU,服務(wù)器擁有口令列表pwS=〈pwS[U]〉U∈U,其中,pwS[U]={sU,HU}由口令πU相對(duì)應(yīng)的鹽值sU和口令哈希值HU組成.
協(xié)議運(yùn)行模型.假設(shè)每個(gè)用戶或服務(wù)器都可能同時(shí)運(yùn)行多個(gè)會(huì)話,記Ui表示用戶U的第i個(gè)會(huì)話,Sj表示服務(wù)器S的第j個(gè)會(huì)話.概率多項(xiàng)式時(shí)間(PPT)攻擊者A 完全控制通信網(wǎng)絡(luò),可以隨意竊聽、修改、偽造、延遲、刪除消息.形式化地講,攻擊者具有詢問下述預(yù)言的能力.
●SendClient(Ui,m):模型化攻擊者對(duì)用戶會(huì)話的主動(dòng)攻擊.攻擊者將消息m發(fā)送給用戶會(huì)話Ui,然后輸出會(huì)話Ui在收到消息m后的響應(yīng)消息.
●SendServer(Sj,m):模型化攻擊者對(duì)服務(wù)器會(huì)話的主動(dòng)攻擊.攻擊者將消息m發(fā)送給服務(wù)器會(huì)話Sj,然后輸出會(huì)話Sj在收到消息m后的響應(yīng)消息.
●Reveal(Ui):模型化會(huì)話密鑰泄露或丟失.攻擊者發(fā)給該詢問,即可獲得會(huì)話Ui的所擁有的會(huì)話密鑰.
●Corrupt(U):模型化敵手腐化用戶攻擊.攻擊者發(fā)出該詢問,即可獲得用戶U的口令以及用戶U中所有會(huì)話的內(nèi)部狀態(tài).
●Corrupt(S):模型化敵手腐化服務(wù)器攻擊.攻擊者發(fā)出該詢問,即可獲得服務(wù)器S中存儲(chǔ)的口令列表pwS=〈pwS[U]〉U∈U=〈{sU,HU}〉U∈U.
●Test(Ui):用以刻畫會(huì)話密鑰的安全性.如果用戶會(huì)話Ui已經(jīng)生成會(huì)話密鑰,則拋擲一枚均勻的硬幣b∈{0,1}.若b=1,輸出會(huì)話Ui的真實(shí)會(huì)話密鑰;若b=0,輸出與會(huì)話密鑰等長度的隨機(jī)比特串.
對(duì)每個(gè)用戶會(huì)話Ui,記為會(huì)話標(biāo)識(shí),為其意定通信會(huì)話.如果一個(gè)會(huì)話順利完成且已生成會(huì)話密鑰,則稱其為已經(jīng)接受(accepted).
匹配會(huì)話.稱兩個(gè)會(huì)話是匹配的,如果:(1)都已接受;(2)有相同的會(huì)話標(biāo)識(shí)sid;(3)互為意定通信方;(4)除會(huì)話外沒有其他會(huì)話的意定通信方為.
新鮮會(huì)話.稱一個(gè)會(huì)話Ui是新鮮的,如果:(1)Ui已接受;(2)攻擊者未對(duì)Ui或其匹配會(huì)話發(fā)起Reveal詢問;(3)在會(huì)話Ui接受之前,攻擊者未對(duì)用戶U以及服務(wù)器發(fā)起過Corrupt詢問.
語義安全.在協(xié)議運(yùn)行過程中,PPT 攻擊者A 能以任意順序發(fā)出Execute、SendClient、SendServer、Reveal和Corrupt詢問,但只能針對(duì)某個(gè)新鮮的用戶會(huì)話發(fā)出一次Test詢問.最終,A 輸出一個(gè)比特b′作為Test中的隨機(jī)比特b的猜測,若b′=b,則認(rèn)為攻擊者攻擊成功,并記該事件為Succ.假設(shè)所攻擊的協(xié)議為P,相應(yīng)口令字典為D,我們定義攻擊者A 的優(yōu)勢(shì)為=2Pr[Succ]-1.若對(duì)所有發(fā)起主動(dòng)攻擊的次數(shù)至多為qsend的PPT 攻擊者A,其優(yōu)勢(shì)只比大一個(gè)可忽略量,則稱協(xié)議P是語義安全的,其中,C′和s′是相應(yīng)于字典D的Zipf 參數(shù)[33].例如,當(dāng)利用天涯論壇泄露的口令集作為口令分布的模型時(shí),可以得到C′=0.062239 和s′=0.155478[34].
會(huì)話密鑰私密性.為了防止誠實(shí)但好奇的(Honest-but-Curious)服務(wù)器獲知最終的會(huì)話密鑰,需特別考慮一個(gè)知道所有用戶口令的攻擊者A,并假設(shè)A 能夠詢問Execute、SendClient、Reveal和Corrupt預(yù)言以及下述TestPair預(yù)言.
最終,A輸出一個(gè)比特b′作為TestPair 中的隨機(jī)比特b的猜測,若b′=b,則認(rèn)為攻擊者攻擊成功,并記為Succkp.相應(yīng)地定義攻擊者A的優(yōu)勢(shì)為=2Pr[Succkp]-1.若對(duì)所有的PPT 攻擊者A,其優(yōu)勢(shì)是安全參數(shù)的可忽略函數(shù),則稱協(xié)議P相對(duì)于誠實(shí)但好奇的服務(wù)器能夠保證會(huì)話密鑰的私密性.
本節(jié)我們首先回顧楊等人[29]提出的基于驗(yàn)證元的三方PAKE 協(xié)議(簡記為Yang-V3PAKE 協(xié)議)的詳細(xì)步驟,然后提出了針對(duì)Yang-V3PAKE 協(xié)議的離線字典攻擊.
Yang-V3PAKE 協(xié)議采用了文獻(xiàn)[24]中給出的口令哈希機(jī)制的具體構(gòu)造,其中,參數(shù)生成算法PSetup輸出為(p,G,g,h),G是階為素?cái)?shù)p的循環(huán)群,g、h是其中兩個(gè)獨(dú)立生成元.預(yù)哈希值生成算法PPreHash的輸出為,哈希算法PHash的輸出為H=(H1,H2)=.
假設(shè)用戶A和用戶B想要在服務(wù)器S的協(xié)助下進(jìn)行安全的密鑰交換,其中,A和B分別擁有口令πA和πB,服務(wù)器S擁有相應(yīng)驗(yàn)證元,則Yang-V3PAKE 協(xié)議的具體步驟如下.
(1)服務(wù)器S選擇兩個(gè)隨機(jī)數(shù)s A,sB∈RZp,分別計(jì)算,然后發(fā)送消息給用戶A,發(fā)送消息給用戶B;
(2)用戶A收到消息后,運(yùn)行平滑投射哈希密鑰生成算法HashKG,生成哈希密鑰hk=(η1,η2,θ,μ,γ),計(jì)算ωA=hμ,,并利用ωAS計(jì)算MAC 認(rèn)證值σAS=(A||B||S||),然后選擇隨機(jī)數(shù)rA∈RZp計(jì)算并向服務(wù)器發(fā)送消息;類似地,用戶B收到消息(,H1B)后,選擇隨機(jī)哈希密鑰和隨機(jī)數(shù)rB∈RZp,計(jì)算ω B,,TB,ωBS,σBS,e′,并向服務(wù)器發(fā)送消息.
(3)服務(wù)器S接收到消息后,首先計(jì)算,然后驗(yàn)證σ AS,σBS的有效性.當(dāng)驗(yàn)證都通過時(shí),服務(wù)器計(jì)算,生成MAC 值λAS=(A||B||S||eAS),λBS=(A||B||S||eBS),接著向用戶A和B分別發(fā)送消息(e AS,e BS,λAS)和(eBS,e AS,λBS).
(4)用戶A收到消息(e AS,e BS,λAS)后,首先驗(yàn)證MAC 值λAS是否有效.驗(yàn)證通過后,計(jì)算,l=(A,B,hp),,ξ=H k(l,u,eAS),然后,用戶A給用戶B發(fā)送消息hp=(hp1,hp2),CAS=(u1,u2,e AS,v);類似地,用戶B收到消息(e BS,e AS,λBS)且λBS驗(yàn)證通過后,相應(yīng)的計(jì)算并發(fā)送消息hp′=給用戶A.
(5)用戶A和B收到對(duì)方發(fā)送的消息后,分別計(jì)算,根據(jù)平滑投射哈希函數(shù)的性質(zhì)可以保證skA=skB.
文獻(xiàn)[29]聲稱,Yang-V3PAKE 協(xié)議能夠提供會(huì)話密鑰的語義安全性、前向安全性、針對(duì)服務(wù)器的密鑰私密性,還能夠抵抗不可測在線字典攻擊和服務(wù)器泄露攻擊.根據(jù)安全模型的定義,協(xié)議滿足語義安全性是指攻擊者成功的優(yōu)勢(shì)至多為O(qs/2β)+negl(k),其中,qs為攻擊者進(jìn)行在線字典攻擊的次數(shù),這意味著攻擊者不能針對(duì)協(xié)議實(shí)施離線字典攻擊.
本小節(jié)首先給出對(duì)Yang-V3PAKE 協(xié)議的離線字典攻擊.我們注意到,文獻(xiàn)[29]中假設(shè)攻擊者A 完全控制著通信信道,可以竊聽、插入、修改消息,或是創(chuàng)建、重發(fā)、轉(zhuǎn)發(fā)消息.其次,Yang-V3PAKE 協(xié)議中服務(wù)器發(fā)送了第1 輪消息,用戶在收到消息后就利用口令對(duì)其進(jìn)行運(yùn)算計(jì)算得到第2 輪的回復(fù)消息,且該回復(fù)消息中包含一個(gè)可用于驗(yàn)證的MAC 值.
假設(shè)用戶A和用戶B想要在服務(wù)器S的協(xié)助下進(jìn)行安全的密鑰交換,用戶A和B的真實(shí)口令分別為πA和πB.攻擊者A 按照如下方式對(duì)用戶A的口令進(jìn)行離線字典攻擊.
(1)攻擊者A 選擇隨機(jī)數(shù)r1和r2,計(jì)算,然后攻擊者A 冒充服務(wù)器S向用戶A發(fā)送消息,H1A.
(2)用戶A收到消息后,將利用其真實(shí)口令πA進(jìn)行下述運(yùn)算.首先,運(yùn)行平滑投射哈希密鑰生成算法HashKG生成哈希密鑰hk=(η1,η2,θ,μ,ν),然后利用口令πA計(jì)算ωA=hμ,,并利用ωAS計(jì)算MAC 認(rèn)證值σAS=,然后選擇隨機(jī)數(shù)rA∈RZp計(jì)算并向服務(wù)器S發(fā)送消息.
(3)攻擊者A 攔截得到上述消息,逐個(gè)地窮舉所有可能的口令,然后利用這個(gè)猜測的口令計(jì)算,并檢驗(yàn)=σAS是否成立,如果等式成立,則輸出當(dāng)作用戶A的口令.
鑒于Yang-V3PAKE 協(xié)議是首個(gè)在標(biāo)準(zhǔn)模型下設(shè)計(jì)的基于驗(yàn)證元的三方PAKE 協(xié)議,但是該協(xié)議并沒有滿足三方PAKE 的安全需求,本節(jié)中我們提出一個(gè)新的改進(jìn)的基于驗(yàn)證元的三方PAKE 協(xié)議,并在標(biāo)準(zhǔn)模型下對(duì)所構(gòu)造的協(xié)議進(jìn)行嚴(yán)格的安全性證明.
本節(jié)給出我們改進(jìn)的基于驗(yàn)證元的3PAKE 協(xié)議的詳細(xì)設(shè)計(jì),記為I-V3PAKE 協(xié)議,該協(xié)議用到了文獻(xiàn)[11,21]中的PAKE 的設(shè)計(jì)技術(shù)以及文獻(xiàn)[25]中針對(duì)驗(yàn)證元的驗(yàn)證技術(shù).
I-V3PAKE 協(xié)議用到了CPA 安全的ElGamal 公鑰加密體制PKE′=(KG′,Enc′,Dec′)和一個(gè)CCA 安全的帶標(biāo)簽的公鑰加密體制PKE=(KG,Enc,Dec).記ElGamal 公鑰加密體制PKE′所對(duì)應(yīng)的公鑰為pk′=(g,h),明文m所對(duì)應(yīng)的ElGamal 密文為c←Enc′(pk′,m;r)=(u=g r,e=h r?m),記公鑰加密體制PKE 所對(duì)應(yīng)的公鑰為pk.盡管協(xié)議設(shè)計(jì)使用了公鑰加密體制,但是并沒有依賴公鑰基礎(chǔ)設(shè)施(PKI),只需如同文獻(xiàn)[11]一樣,將這兩種加密算法的公鑰pk′和pk當(dāng)作協(xié)議運(yùn)行環(huán)境設(shè)置中的公共參考串(CRS).
協(xié)議采用了如下代數(shù)口令哈希機(jī)制PHS,其中,sP=⊥,P=gF(π),s=sH∈R{0,1}k,H=sF(π),F(?)是從口令空間到指數(shù)集Zq上的變換.定義語言
假設(shè)用戶A和用戶B想要在服務(wù)器S的協(xié)助下進(jìn)行安全的密鑰交換,其中,A和B分別擁有口令πA和πB,服務(wù)器S擁有相應(yīng)驗(yàn)證元(s A,HA=)和(s B,HB=),則I-V3PAKE 協(xié)議的具體步驟如下.
(1)用戶A選擇隨機(jī)數(shù)rA∈Zp,計(jì)算口令的預(yù)哈希值PA=對(duì)應(yīng)的ElGamal 密文cAS=(uA=,eA=?PA),然后發(fā)送消息〈A,B,cAS〉給服務(wù)器S;類似地,用戶B選擇隨機(jī)數(shù)rB∈Zp,計(jì)算口令的預(yù)哈希值PB=對(duì)應(yīng)的ElGamal 密文,然后發(fā)送消息〈B,A,cBS〉給服務(wù)器S.
(2)服務(wù)器S收到消息后,先為用戶A選擇隨機(jī)數(shù)hkA=(x A,y A,zA),計(jì)算,設(shè)置lA=A||B||S||cAS||hp1A||hp2A,MA=s A||HA,并用tkA作為加密的隨機(jī)數(shù)計(jì)算cSA=Enc(pk,M A;l A;tkA),并發(fā)送消息〈s A,hp1A,hp2A,cSA〉給用戶A;類似地,為用戶B選擇隨機(jī)數(shù)hkB=(x B,yB,zB),計(jì)算hp1B=,tk B||mk B=Hash(hk B,L B,cB)=,設(shè)置lB=B||A||S||cBS||hp1B||hp2B,MB=s B||HB,并用tkB作為加密的隨機(jī)數(shù)計(jì)算cSB=Enc(pk,M B;l B;tkB),同時(shí)發(fā)送消息〈s B,hp1B,hp2B,cSB〉給用戶B.
(3)用戶A收到〈hp1A,hp2A,cSA〉后,首先計(jì)算tk A||mk A=ProjH((hp1A,hp2A),L A,c A,(rA,πA))=,然后利用tkA作為隨機(jī)數(shù)重新計(jì)算=Enc(pk,M A;l A;tkA),并驗(yàn)證與其接收到的cSA是否相等.如果驗(yàn)證不相等,則立即結(jié)束會(huì)話;如果驗(yàn)證通過,則用戶A選擇隨機(jī)數(shù)x∈Zp,計(jì)算X=gx,σAS=MAC(mk A,A||B||S||X),然后向服務(wù)器S發(fā)送消息〈X,σAS〉;類似地,用戶B收到消息〈hp1B,hp2B,cSB〉后,計(jì)算tk B||mkB并驗(yàn)證cSB,驗(yàn)證通過后選擇隨機(jī)數(shù)y∈Zp,計(jì)算Y=gy,σBS=MAC(mk B,B||A||S||Y),然后向服務(wù)器S發(fā)送消息〈Y,σBS〉.
(4)服務(wù)器S收到消息后,首先用密鑰mkA和mkB驗(yàn)證MAC 值σAS和σBS是否正確,驗(yàn)證通過后計(jì)算σSA=MAC(mk A,A||B||S||X||Y),σSB=MAC(mk B,B||A||S||Y||X),然后向用戶A發(fā)送消息〈Y,σSA〉,向用戶B發(fā)送消息〈X,σSB〉.
(5)用戶A和B在收到來自服務(wù)器的消息后,分別利用密鑰mkA和mkB驗(yàn)證MAC 值σSA和σSB是否正確,驗(yàn)證失敗,則結(jié)束會(huì)話.然后,用戶A計(jì)算會(huì)話密鑰為skAB=Yx,用戶B計(jì)算會(huì)話密鑰為skBA=Xy.
在用戶和服務(wù)都誠實(shí)運(yùn)行協(xié)議的情況下,對(duì)與用戶A相關(guān)的語言LA=而言,下式成立:
可知用戶A和服務(wù)器S將計(jì)算得到相同的tk A||mkA,保證了cSA、σAS、σSA的正確性;類似地,用戶B和服務(wù)器S將計(jì)算得到相同的tk B||mkB,保證了cSB、σBS、σSB的正確性.因此,協(xié)議中驗(yàn)證都將通過,最終A和B將生成相同的會(huì)話密鑰skAB=Yx=gxy=Xy=skBA.
注1.在I-V3PAKE 協(xié)議中,我們利用具有良好代數(shù)性質(zhì)的口令哈希機(jī)制和特別構(gòu)造的平滑投射哈希函數(shù)實(shí)現(xiàn)了對(duì)口令和驗(yàn)證元的驗(yàn)證.一方面,用戶在利用投射密鑰計(jì)算哈希值ProjH(hp,Ls,H,c,(r,π))=時(shí)需要用到F(π),驗(yàn)證了用戶確實(shí)擁有F(π)和π;另一方面,語言Ls,H={(u,e):?r,?π,u=g r,e=h r gF(π),H=sF(π)}的定義方式保證了e=h r g F(π)中的g F(π)部分相對(duì)于g的指數(shù)與H相對(duì)于s的指數(shù)是相等的,即證實(shí)了服務(wù)器確實(shí)擁有與用戶相匹配的驗(yàn)證元.
注2.I-V3PAKE 協(xié)議能夠抵御針對(duì)Yang-V3PAKE 協(xié)議[29]的離線字典攻擊.具體地,如果攻擊者仿照第3.2節(jié)中提到的攻擊方法將I-V3PAKE 協(xié)議的第1 輪消息替換成偽造的消息,則只要攻擊者未猜對(duì)用戶U∈{A,B}的口令,將由于ElGamal 密文(u,e)?Ls,H使得服務(wù)器計(jì)算得到的tk U||mkU對(duì)攻擊者來說是完全隨機(jī)的,從而攻擊者無法通過驗(yàn)證cSU來判別其猜測口令的正確性.
本節(jié)給出I-V3PAKE 協(xié)議與其他典型的三方PAKE 協(xié)議在功能、安全性、效率方面的比較,具體結(jié)果見表1.在表1 中,“驗(yàn)證元”“標(biāo)準(zhǔn)模型”“抗離線字典攻擊”“C2S 認(rèn)證”“Key Privacy”分別表示所考慮的三方PAKE 協(xié)議是否支持驗(yàn)證元、是否在標(biāo)準(zhǔn)模型下可證明安全、是否提供抗離線字典攻擊、用戶到服務(wù)器的顯式認(rèn)證以及會(huì)話密鑰針對(duì)服務(wù)器的私密性,“計(jì)算效率A/B/S”表示用戶A、B和服務(wù)器S分別所需的計(jì)算模指數(shù)運(yùn)算的次數(shù).如同文獻(xiàn)[32],我們采用標(biāo)準(zhǔn)模型下CCA 安全的DHIES 公鑰加密算法[35]來實(shí)例化協(xié)議中的公鑰加密算法PKE.另外,注意到形如gxhy的多指數(shù)運(yùn)算可以通過快速算法在約等于單個(gè)指數(shù)的計(jì)算時(shí)間內(nèi)完成[32],因而在計(jì)算效率中只算作一次指數(shù)運(yùn)算.
從表1 中的結(jié)果可以看出,目前只有文獻(xiàn)[29]和我們的I-V3PAKE 協(xié)議是基于驗(yàn)證元的,且是在標(biāo)準(zhǔn)模型下設(shè)計(jì)的,但是文獻(xiàn)[29]中的協(xié)議不能抵抗離線字典攻擊,因而安全性不能滿足實(shí)用要求.盡管文獻(xiàn)[32,36]中的協(xié)議也是在標(biāo)準(zhǔn)模型下可證明安全的,但是這兩個(gè)協(xié)議都不是基于驗(yàn)證元的,因此不能抵御服務(wù)器泄露攻擊.另外,從通信和計(jì)算效率上看,我們的I-V3PAKE 協(xié)議在額外的通過驗(yàn)證元方式保護(hù)口令的條件下,還具備與文獻(xiàn)[29,32,36]較為接近的通信和計(jì)算復(fù)雜度,甚至I-V3PAKE 協(xié)議的計(jì)算效率要更優(yōu)于文獻(xiàn)[29].因此,I-V3PAKE 協(xié)議不僅提供了更強(qiáng)的安全性保障,同時(shí)具有可接受的計(jì)算和通信效率.
Table 1 Comparisons between I-V3PAKE protocol and other verifier-based 3PAKE protocols表1 I-V3PAKE 協(xié)議與其他典型三方PAKE 協(xié)議的比較
本節(jié)在前述安全模型中證明I-V3PAKE 協(xié)議的安全性,首先證明I-V3PAKE 協(xié)議滿足語義安全性,然后證明協(xié)議中誠實(shí)用戶所生成的會(huì)話密鑰相對(duì)于誠實(shí)而好奇的服務(wù)器具有私密性.
定理1.如果公鑰加密體制PKE=(KG,Enc,Dec)是CCA 安全的,ElGamal 公鑰加密體制PKE′=(KG′,Enc′,Dec′)是CPA 安全的,Ls,H是按照式(1)定義的與公鑰加密體制PKE′及口令哈希機(jī)制PHS 相關(guān)聯(lián)的語言,SPHF是相應(yīng)于語言Ls,H的平滑投射哈希函數(shù),MAC 是安全的消息認(rèn)證碼,則I-V3PAKE 協(xié)議是語義安全的.
證明:假設(shè)A 是針對(duì)I-V3PAKE 協(xié)議語義安全性的攻擊者,其計(jì)算時(shí)間至多為t,訪問Send和Execute預(yù)言的次數(shù)至多為qsend,qexe.下面通過構(gòu)造游戲序列G0,G1,...,G8來估計(jì)攻擊者的優(yōu)勢(shì),起始游戲是安全模型所定義的與真實(shí)協(xié)議交互的游戲.
游戲G0:這個(gè)游戲?qū)?yīng)于安全模型中語義安全定義時(shí)的真實(shí)攻擊,記此時(shí)攻擊者的優(yōu)勢(shì)為
游戲G1:從這個(gè)游戲開始,我們先逐步修改對(duì)Execute詢問的模擬方式.游戲G1中,在模擬Execute詢問時(shí),首先將用戶端利用ProjH的計(jì)算全部替換成對(duì)應(yīng)的Hash 計(jì)算.由于Execute中用戶和服務(wù)器都是誠實(shí)的,因而上述替換可行;又根據(jù)平滑投射哈希函數(shù)的正確性定義,可知在游戲G1中攻擊者具有和在游戲G0中相同的優(yōu)勢(shì),即Adv1(A)=Adv0(A).
游戲G2:在模擬Execute時(shí),對(duì)任意用戶U∈{A,B},我們將用戶第1 條消息中的密文cUS=Enc′(pk′,PU;rU)=替換成cUS=Enc′(pk′,P0;rU)=(uU=,eU=?P0),其中,P0是一個(gè)虛擬口令π0(即不屬于口令字典中的一個(gè)值)所對(duì)應(yīng)的預(yù)哈希.根據(jù)ElGamal 公鑰加密體制PKE′的CPA 安全性,可知P0和PU的密文是不可區(qū)分的,從而利用標(biāo)準(zhǔn)的混合(hybrid)證明技術(shù)將qexe個(gè)Execute預(yù)言中的密文逐個(gè)替換可知,攻擊者在游戲G2與在游戲G1中的優(yōu)勢(shì)差是可忽略的,即
其中,式(4)考慮到了CPA 攻擊者在模擬協(xié)議運(yùn)行時(shí),只有在模擬Send和Execute類預(yù)言時(shí)才需要進(jìn)行額外的計(jì)算,在模擬Reveal和Corrupt詢問時(shí)只需要返回對(duì)應(yīng)狀態(tài),從而其計(jì)算時(shí)間至多為t+O(qsend+qexe).
游戲G3:在模擬Execute詢問時(shí),我們將tkU||mkU=Hash(hkU,LU,cU),U∈{A,B}替換成隨機(jī)選擇的等長比特串.由于游戲G2已將cUS替換成P0的密文,從而有cUS?L A,cUS?LB,根據(jù)平滑投射哈希函數(shù)的平滑性質(zhì),可知攻擊者在游戲G3與在游戲G2中的優(yōu)勢(shì)差可忽略,即記εSPHF(k)為平滑投射哈希函數(shù)在輸入非語言元素時(shí)的輸出哈希值與均勻分布之間的統(tǒng)計(jì)距離的一個(gè)可忽略的上界,則有
游戲G4:在模擬Execute詢問時(shí),我們將cSA=Enc(pk,M A;l A;tk A),cSB=Enc(pk,M B;l B;tkB)中的MA和MB替換成MA=s A||H0,A,MB=s B||H0,B,其中,H0,A=,H0,B=是對(duì)應(yīng)于不屬于字典的一個(gè)虛擬口令π0?D.由于tkA和tkB在游戲G3中已被替換成完全隨機(jī)的比特串,因此根據(jù)加密體制PKE=(KG,Enc,Dec)的CCA 安全性,可知攻擊者在游戲G4與在游戲G3中的優(yōu)勢(shì)差是可忽略的,因此,
需要說明的是,在游戲G4中并沒有詢問加密體制PKE 的解密預(yù)言,從而實(shí)際上只用到了PKE 體制的CPA安全性.但是,在下面的游戲G10中需要詢問解密預(yù)言,因此需要PKE 是CCA 安全的.
游戲G5:在模擬Execute詢問時(shí),我們直接將最終的會(huì)話密鑰skAB=skBA替換成隨機(jī)值.利用DDH 自規(guī)約技術(shù),我們證明攻擊者在實(shí)驗(yàn)G4和G5中的優(yōu)勢(shì)差至多為攻擊者區(qū)分DDH 三元組的優(yōu)勢(shì).給定DDH 三元組(X0,Y0,Z0),當(dāng)用戶A需要生成消息X和σAS時(shí),我們選擇隨機(jī)的a,x∈Zp,并計(jì)算X=,當(dāng)用戶B需要生成消息Y和σBS時(shí),選擇隨機(jī)的b,y∈Zp,并計(jì)算Y=,當(dāng)雙方需要生成密鑰時(shí),計(jì)算skAB=skBA=.可以看出,當(dāng)三元組(X0,Y0,Z0)滿足Z0=DH(X0,Y0)時(shí),上述游戲和游戲G4完全一樣;當(dāng)Z0≠DH(X0,Y0)時(shí),上述游戲和游戲G5是一樣的.在DDH 問題困難假設(shè)下,可知
至此,我們已將Execute模擬中的與口令相關(guān)的消息和會(huì)話密鑰替換成為隨機(jī)值,從而攻擊者不能從中獲得用戶口令的信息.下面將開始修改對(duì)敵手主動(dòng)攻擊類詢問的模擬.為了表述簡單,下面用SendClient0(Ui)表示攻擊者激活用戶的初始消息,SendClient d(Ui,m),d∈{2,4}表示在第d輪通信中給用戶會(huì)話Ui發(fā)送消息m,SendServerd(S j,m),d∈{1,3}表示在第d輪通信中給服務(wù)器會(huì)話Sj發(fā)送消息m.在公開參數(shù)產(chǎn)生階段,我們還讓模擬者記錄對(duì)應(yīng)于公鑰pk′和pk的私鑰sk′和sk.
游戲G6:本游戲修改針對(duì)用戶A的SendClient2(Ai,〈hp1A,hp2A,cSA〉)的回答方式,對(duì)用戶B按照類似的方式進(jìn)行處理(下同).先檢查〈hp1A,hp2A,cSA〉是否來源于某個(gè)誠實(shí)模擬的1(j,*)SendServer S的回復(fù),如果答案是否定,則直接解密cSA得到s′A和H′A并檢查與用戶A的口令πA是否匹配.若成立,則直接認(rèn)為攻擊者A 攻擊成功并結(jié)束模擬.如果驗(yàn)證不通過,則讓Ai拒絕該消息并結(jié)束該會(huì)話的模擬.容易看出,上述修改增加了攻擊者成功的途徑,因此有Adv5(A)≤Adv6(A).
游戲G7:本游戲繼續(xù)修改針對(duì)用戶A的詢問SendClient2(Ai,〈hp1A,hp2A,cSA〉)響應(yīng)的模擬.若消息〈hp1A,hp2A,cSA〉確實(shí)來源于某個(gè)誠實(shí)模擬的SendServer1(Sj,*)的回復(fù),則不再按照協(xié)議規(guī)范為Ai計(jì)算tk A||mkA,而是直接將Ai中的tk A||mkA設(shè)置成與Sj中一樣的值.此時(shí),由于會(huì)話Ai和Sj都是誠實(shí)模擬的,故上述修改并不改變攻擊者的優(yōu)勢(shì),即Adv6(A)=Adv7(A).
游戲G8:本游戲修改針對(duì)用戶的激活消息0(i)SendClient A響應(yīng)的模擬方式.類似于游戲G2,我們將其中的替換成虛擬口令所對(duì)應(yīng)的P0的密文.由于加密體制PKE′是CPA 安全的,從而攻擊者在游戲G8與在游戲G7中的優(yōu)勢(shì)差是可忽略的,即
游戲G9:本游戲修改服務(wù)器在收到消息SendServer1(S j,〈A,B,cAS〉)的響應(yīng)方式.直接利用私鑰sk′對(duì)密文cAS進(jìn)行解密,并驗(yàn)證其中的PA與用戶口令πA是否匹配.如果匹配,則直接認(rèn)為攻擊成功,停止模擬;如果不匹配,則按照完全隨機(jī)的方式選擇tk A||mkA.可以看出,第1 部分修改僅僅是增加了攻擊者成功的途徑,而第2 部分修改的合理性則由平滑投射哈希函數(shù)的隨機(jī)性保證,從而可得
游戲G10:本游戲繼續(xù)修改服務(wù)器在收到消息SendServer1(Sj,〈A,B,cAS〉)的響應(yīng)方式.類似于游戲G4,我們將cSA=Enc(pk,M A;l A;tk A),cSB=Enc(pk,MB;l B;tkB)替換成消息MA=s A||H0,A,MB=s B||H0,B的密文,其中,H0,A==,H0,B=.由于tkA和tkB已被替換成完全隨機(jī)的比特串,因此根據(jù)加密體制PKE 的CCA 安全性(由于游戲G6需要解密能力),可知
游戲G11:本游戲修改針對(duì)SendClient d(Ai,m),d∈{2,4}的模擬.類似于游戲G5,利用DDH 自規(guī)約技術(shù)在給定三元組(X0,Y0,Z0)的情形下,修改用戶會(huì)話A和B生成X、Y、skAB、skBA的方式,即當(dāng)用戶A需要計(jì)算X時(shí),選擇隨機(jī)的a,x∈Zp并計(jì)算X=,當(dāng)用戶B需要計(jì)算Y時(shí),選擇隨機(jī)的b,y∈Zp并計(jì)算Y=,當(dāng)雙方需要生成密鑰時(shí),計(jì)算skAB=skBA=.此時(shí),攻擊者區(qū)分真實(shí)的會(huì)話密鑰skAB=skBA和完全隨機(jī)值的優(yōu)勢(shì)不超過攻擊者攻破DDH 假設(shè)的優(yōu)勢(shì),即
(1)攻擊者冒充用戶A(B類似)發(fā)送了消息〈A,B,cAS〉,且密文cAS確實(shí)是與口令πA相對(duì)應(yīng)的密文;
(2)攻擊者冒充服務(wù)器向用戶A(B類似)發(fā)送了消息〈hp1A,hp2A,cSA〉,且其中的cSA確實(shí)是與口令πA相對(duì)應(yīng)的驗(yàn)證元(sA,HA)的密文;
(3)在MAC 安全的情況下,攻擊者成功地偽造了用戶A(B類似)所使用的MAC 認(rèn)證值;
(4)攻擊者成功地猜對(duì)了Test詢問中所使用的比特b.
記計(jì)算時(shí)間至多為t的攻擊者針對(duì)協(xié)議所采用的MAC 機(jī)制的優(yōu)勢(shì)函數(shù)為,由于MAC 密鑰在游戲G3和G9中已被替換成隨機(jī)值,則攻擊者通過情形(3)成功的概率至多是2(qsend+qexe)?(t+O(qsend+qexe)).若用PwdGuess表示事件“上述情形(1)或情形(2)發(fā)生”,注意到在上述游戲G11中攻擊者已經(jīng)不能從會(huì)話消息獲取到口令的任何信息,從而攻擊者只能通過暴力窮舉或字典攻擊[22]猜測用戶所使用的正確口令.
當(dāng)協(xié)議中所有用戶口令構(gòu)成的集合服從Zipf 定律時(shí),可知攻擊者成功的概率至多為Pr[PwdGuess]≤,其中,C′和s′是相應(yīng)的Zipf 參數(shù).另外,如果事件PwdGuess不出現(xiàn),注意到協(xié)議會(huì)話密鑰都已經(jīng)被替換成隨機(jī)值,可知攻擊者通過情形(4)成功的概率至多為1/2.因此可得A dv11(A)≤.綜合上式以及式(3)~式(11)可得,
定理2.若DDH 假設(shè)成立,則I-V3PAKE 協(xié)議相對(duì)于誠實(shí)而好奇的服務(wù)器可保證會(huì)話密鑰的私密性.具體地說,假設(shè)Akp是安全模型中針對(duì)會(huì)話密鑰私密性的攻擊者,其運(yùn)行時(shí)間至多為t,發(fā)出的Execute和Send詢問次數(shù)至多為qexe,qsend,則有
證明:給定會(huì)話密鑰私密性攻擊者Akp,我們按照如下方式構(gòu)造針對(duì)DDH 問題的攻擊者Addh.DDH 攻擊者Addh收到輸入的三元組(X0,Y0,Z0),首先為所有用戶選擇口令,為TestPair詢問選擇隨機(jī)比特b∈{0,1},誠實(shí)地模擬協(xié)議運(yùn)行并基本按照規(guī)范回答攻擊者Akp發(fā)出的Execute和SendClient詢問,不同之處在于,在詢問響應(yīng)中將最終X、Y、skAB、skBA相關(guān)的部分予以修改:按照類似于定理1 證明中游戲G5和G11利用隨機(jī)自規(guī)約方式將三元組(X0,Y0,Z0)嵌入到協(xié)議運(yùn)行中.
最后,Addh觀察Akp的輸出比特b′,如果b′=b,則Addh輸出1,若b′≠b,則Addh輸出0.那么可以估計(jì)Addh成功的概率為
其中,Real(·)和Rand(·)分別表示輸入的三元組是真實(shí)的DDH 三元組和隨機(jī)的三元組.當(dāng)(X0,Y0,Z0)是隨機(jī)三元組時(shí),隨機(jī)自規(guī)約保證了最終會(huì)話密鑰是獨(dú)立隨機(jī)的;當(dāng)(X0,Y0,Z0)是真實(shí)的DDH 三元組時(shí),給攻擊者Akp提供的模擬環(huán)境與真實(shí)攻擊相同.最后,注意到Addh對(duì)每個(gè)Execute和SendClient詢問的模擬都只需要常數(shù)時(shí)間,即可得定理結(jié)論. □
本文對(duì)基于驗(yàn)證元三方PAKE 協(xié)議進(jìn)行了研究.首先,指出目前唯一的在標(biāo)準(zhǔn)模型下設(shè)計(jì)的基于驗(yàn)證元的三方PAKE 協(xié)議存在安全缺陷,易于遭受離線字典攻擊.其次,基于ElGamal 公鑰加密體制、口令哈希機(jī)制以及支持驗(yàn)證元的平滑投射哈希函數(shù)等密碼學(xué)組件,構(gòu)造了一個(gè)新的基于驗(yàn)證元的三方PAKE 協(xié)議,并在標(biāo)準(zhǔn)模型下證明了該協(xié)議滿足語義安全、會(huì)話密鑰私密性等安全屬性,與已有協(xié)議的比較表明新協(xié)議不僅提供了更高的安全性,而且具有可接受的計(jì)算和通信效率.