廉歡歡,侯慧瑩,趙運磊,2
(1.復旦大學計算機科學技術學院,上海 200433;2.西安電子科技大學綜合業務網國家重點實驗室,陜西 西安 710071)
基于口令的認證密鑰交換(PAKE,password authenticated key exchange)協議使參與者之間使用低熵秘密在一個不安全的通信網絡中相互認證并建立會話密鑰,為后續通信建立安全的新信道。口令認證簡單易記、部署方便,而且可以擺脫復雜的公鑰證書和密鑰管理。因此,基于口令的認證密鑰交換協議是目前應用比較廣泛的協議。1992 年,Bellovin 和Merritt[1]給出了第一個真正意義上的PAKE 協議,并采用啟發式的方法對提出的方案進行了形式化的安全性分析。PAKE 協議引起了廣泛關注,眾多密碼學者提出了具有不同計算效率和安全性的PAKE 協議[2-5]。
由于具有并行運算、計算速度快和抗已知量子攻擊等特點,基于格難題的PAKE 協議成為后量子時代密碼領域的研究熱點。2009 年,Katz 等[6]提出了第一個基于格上難題的口令認證密鑰交換方案。該方案構造了基于格的近似平滑投射哈希(ASPH,approximate smooth projective Hash)函數,并將其用于GL(Gennaro-Lindell)框架[7],從而設計了PAKE 協議,但該協議投射密鑰依賴于密文,密鑰長度過長使協議效率較低。2012 年,Ding 等[8]構造了一種較高效的格基PAKE 協議,該協議利用文獻[6]提出的加密體制和ASPH 函數,在Groce-Katz[9]框架下進行構造,并在標準模型下給出了安全性證明。Ding 等[10]采用HMQV 變體設計了2 種基于格的PAKE 協議,分別是提供隱式認證的兩輪方案和提供顯式認證的三輪方案,并且都是在隨機預言模型下構造的。Zhang 等[11]構造了可拆分的公鑰加密體制,而且改進了ASPH 函數,提出了一種僅需兩輪的PAKE 協議。之后不同構造的后量子PAKE 協議相繼被提出[12-13]。上述PAKE 協議均是兩方的密鑰交換協議,需要每2 個用戶共享一個口令,在大量用戶通信中口令管理非常復雜,因此不適用于大規模通信系統中。
三方PAKE(3PAKE,three-party PAKE)協議中每個用戶僅需和服務器共享一個口令,用戶在服務器的幫助下建立共同的會話密鑰,有效地解決了兩方PAKE 協議的局限性。葉茂等[14]利用文獻[6]提出的公鑰加密方案和相應的ASPH 函數,在文獻[9]的框架下,構造了一個基于帶誤差學習(LWE,learning with error)問題的3PAKE 協議,滿足大規模端到端的通信需求。2017 年,Xu 等[15]基于環上帶誤差學習(RLWE,ring-learning with error)問題構造了3PAKE 協議并給出了安全性證明,但該協議存在效率較低的缺陷。王彩芬等[16]在格困難問題上提出了隱式認證和顯式認證2 種3PAKE 協議,并且提供了用戶匿名性。于金霞等[17]采用文獻[11]提出的可拆分加密體制,構造了一個基于格的3PAKE協議。Jiang等[18]于2020年提出一種新的PAKE框架,采用ASPH 函數、密鑰協調機制和認證碼,基于LWE 和RLWE 困難問題構造2 種PAKE 協議。
上述格上PAKE 協議中的口令直接以明文的方式存儲在服務器上,而隨著口令控制訪問的增加,對于不同的提供者,用戶需要頻繁使用相應的口令,因此若存在服務器攻擊,將帶來口令文件泄露的風險。為解決上述問題,Bellovin 和Merritt[19]構造出第一個增強的加密密鑰交換協議,協議中服務器只存儲用來驗證擁有正確口令的用戶身份的驗證元,不直接存儲明文口令。在具體的系統中,驗證元是對鹽值和口令進行運算得到的變換值。即使服務器端口令文件泄露,攻擊者也需要更多的時間進行離線攻擊才能獲得口令,因此此類協議有效地減少了服務器端口令文件泄露所造成的影響。Benhamouda 等[20]提出了2 種有效的口令哈希方案,基于此構造了不同輪數的基于驗證元的口令認證密鑰交換(VPAKE,verifier-based PAKE)協議。楊曉燕等[21]提出了標準模型下三方的VPAKE 協議,并給出了嚴格的安全性證明。2020 年,張啟慧等[22]指出楊曉燕等[21]提出的協議難以抵抗離線字典攻擊,未達到聲稱的安全性,并提出了改進的基于驗證元的3PAKE 協議。然而這些VPAKE 協議都是基于經典計算機上困難的計算性問題,能夠在多項式時間內解決。2021 年,舒琴等[23]提出了首個格上基于驗證元的3PAKE 協議,在通用可組合框架下,定義3VPAKE 理想功能,構造一個新的理想格上的協議,但該協議消息傳輸量較多。
通過以上分析,基于格上難題的PAKE 協議絕大多數都是針對“用戶-服務器”場景設計的兩方協議,兩方協議在大規模用戶端到端應用中,每2 個用戶通信需要共享一個口令,那么用戶記憶的口令數量隨著用戶數量的增加呈線性增長,這給資源受限的客戶端造成了較大的存儲負擔,因此不能滿足大規模“用戶-用戶”的通信需求[14,24]。而基于格的三方協議中每個用戶只需要存儲一個口令,有效地減少了存儲開銷,并且能夠抵抗已知量子攻擊,更適用于大規模用戶端到端應用場景,例如車聯網中大規模車輛與車輛之間的通信、智能醫療網絡中大量患者與醫護人員之間的通信、移動設備獲取網絡服務等。此外,現有的格上PAKE 協議存在服務器口令信息泄露帶來的風險。因此,本文基于格上難題構造一種基于驗證元的三方口令認證密鑰交換協議。本文主要貢獻如下:1) 結合口令Hash 方案和零知識口令策略檢查機制在不泄露口令的前提下,實現驗證元的生成和口令的認證;2) 利用基于LWE 問題的選擇密文攻擊(CCA,chosen ciphertext attack)安全的公鑰加密體制和近似平滑投射函數,基于目前高效的格上2PAKE 框架[11]設計新的3VPAKE 協議。該協議具有抵抗不可檢測在線字典攻擊和服務器信息泄露的優點,并且實現了雙向認證的功能。

在本文協議中,帶標簽公鑰加密體制PKE=(KeyGen,Enc,Dec)包含以下3 種算法。1) 密鑰生成算法(pk,sk) ←KeyGen(1κ):輸入公共參數,輸出公私鑰對。2) 加密算法c←Enc(pk,label,pw,r):輸入公鑰和明文,并輸入標簽和隨機數,輸出密文。3) 解密算法pw ←Dec(sk,label,c):輸入私鑰、密文和相應的標簽,輸出相應的明文。
正確性。對于公私鑰對(pk,sk)、安全參數κ和隨機選取的r,密文c在標簽 label ∈{0,1}*上得到明文 pw,Pr[Dec(sk,label,c)=pw|(pk,sk)← KeyGen(1κ)∧c←Enc(pk,label,pw)]≥1 -negl(κ)。
平滑投射哈希函數最早由Cramer 和Shoup[26]提出,后來由密碼學家們在PAKE 協議的研究中相繼進行了改進[5-6]。通俗地講,給定集合X和語言L,L表示X的某個子集。對于詞語c∈L,hk←K表示哈希密鑰,hp 表示投射密鑰,近似平滑投射哈希函數由4 種算法組成:1) 采樣一個哈希密鑰hk←r K;2) 對于hk∈K,計算投射密鑰hp=Proj(hk);3) 對于c∈X,hk←r K,計算哈希值Hash(hk,L,c);4) 利用投射密鑰hp,對于c∈L以及相應的證據w,計算哈希值ProjHash(hp,L,c,w) 。
ε-approximate 平滑投射哈希函數滿足近似正確性和平滑性2 個性質。1) 近似正確性:對于合法的詞語c∈L和相應的證據w,滿足Pr[Ham(Hash(hk,L,c),ProjHash(hp,L,c,w))≥ ε]=negl(κ),其中為較小的實數。2) 平滑性:對于c∈XL,即使知道hp,Hash(hk,L,c)和均勻隨機選取的輸出是統計不可區分的。在本文協議設計中,投射密鑰不依賴于密文,只依賴于哈希密鑰。
隨機口令哈希方案[20,27-28]可用于生成驗證元,本文利用文獻[28]設計的格上困難問題的口令哈希方案,該方案表示為H=(PSetup,PPreSalt,PPreHash,PSalt,PHash),定義如下。
PSetup(κ):安全參數為κ,生成公共參數pp=(n,q,m,SP,SH,A,B)。
PPreSalt(pp) :輸入公共參數 pp,采樣χ←Snmax,輸出sP=χ。
PPreHash(pp,pw,sP):輸出預哈希值P,計算encode(pw) ∈{0,1}8t得到e∈{0,1}8nmax,利用Tχ,8得到e'=T χ(e) ∈{0,1}8nmax,其中T為置換運算[26],并輸出P=e'。

該方案中PHash 算法通過輸入預哈希值P、預鹽值sP和鹽值sH計算哈希值,這里P作為輸入可以對口令實現隱藏;sP和sH增加了隨機性,可以防止離線字典攻擊,提高破解口令的困難性。
口令策略檢查(PPC,password policy check)[27-28]是客戶端與服務器之間交互的協議,是使用戶向服務器注冊口令并證明口令符合服務器的策略。通過輸入口令Hash 方案H 的公共參數和口令策略f=((k1,k2,k3,k4),nmin,nmax),即口令的長度在nmin和nmax之間并且包含k1個數字、k2個符號、k3個小寫字母和k4個大寫字母,當且僅當f(pw)=true時,服務器端接受用戶所選取的口令的哈希值。
Bellare 和Pointcheval 在文獻[29]提出的模型上進行了改進,本節在改進模型[20]的基礎上給出了3VPAKE 的安全性分析模型。
1) 用戶和口令
協議參與者包含用戶和可信服務器,令U∈U為協議用戶的集合,S∈S 為可信服務器。每個用戶U∈U 擁有一個口令pwC,將其映射為πC。每個服務器S擁有關于πC的哈希值h=<hU=Hash(pp,P,s P,sH)>U∈U和鹽值,其中假設每一個口令都是從字典集合D 中獨立均勻選取的。
2) 協議執行
敵手A 通過下述幾種詢問預言機與所有實例進行交互。

Corrupt(U)。這個詢問是敵手對用戶的腐化建立模型,它的輸出為用戶的口令和用戶的會話內部狀態。
Corrupt(S)。這個詢問是敵手對服務器的腐化建立模型,它的輸出為服務器的口令哈希值和服務器的會話內部狀態。
Test(U,i)。這個詢問模型選擇一個隨機比特,如果b=1,則返回用戶實例的會話密鑰;否則返回均勻選取的隨機值。在攻擊期間,敵手只能訪問一次Test。
3) 伙伴關系和新鮮性

③如果會話sid 已接受,且敵手未對會話sid或者匹配會話進行過Reveal 詢問,且會話sid 接受之前,攻擊者未對用戶和服務器進行過Corrupt 詢問,則會話sid 是新鮮的。
定義4語義安全性。協議運行中,敵手A 可以任意順序進行多次Execute、Send(U1,i1,msg)、Send(U2,i2,msg)、Send(S,j,msg)、Reveal 和Corrupt 詢問,但對誠實的新鮮實例只進行一次Test詢問,輸出b′,b為從Test 預言機中選擇的比特,若b′=b,則表示敵手成功。敵手A 的優勢表示為AdvΠ,A(κ)=2Pr[Succ]-1。
本節主要描述本協議中的零知識口令策略檢查(ZKPPC,zero-knowledge PPC)機制和近似平滑投射哈希函數。
1) 零知識口令策略檢查機制
本文利用文獻[28]提出的機制使證明者在不泄露口令的情況下向驗證者證明自己知道口令。本文協議中,用戶在零知識環境中使服務器相信自己擁有的口令,可以通過哈希得到給定的哈希值,并且該口令滿足口令策略f=((k1,k2,k3,k4),nmin,nmax)。具體說明如下。
令kall=nmin-(k1+k2+k3+k4),輸入口令哈希中的公共參數A、B和哈希值h,以及其他信息,信息Δ 包含內部向量P=e'的位置,以及對口令中數字、符號、字母和其他信息的編碼的位置。由于這些模塊的原始位置被秘密值χ保護,即使Δ 被泄露給服務器也不會損害用戶端。用戶端的證據包含向量,其中e'的形式為(x1,…,),而且。服務器檢查如果滿足Ax+Br0=hmodq和f(pw)=true,則用戶是可信的。本文驗證元是通過口令哈希方案計算生成的,在服務器不知道口令的情況下,ZKPPC 協議確保用戶的口令符合服務器端的口令策略,并且與用戶注冊階段結束時通信的驗證元信息相關。
2) ASPH 函數

對于語言LH,近似平滑投射哈希函數主要按照1.3 節所述的內容進行展開。對于語言Ls,H,所構造的ASPH 函數如下。


平滑性。對于(label,y)∈XLs,H,2 個分布{hp,Hash(hk,L,c)}與{hp,ρ←{0,1}*}在統計上是不可區分的。
本節給出了一個新的格上基于驗證元的3PAKE協議,該協議利用了文獻[6,11]中PAKE 的設計思想以及文獻[28]給出的驗證元的生成方式和驗證技術。
本文協議的系統模型由以下實體組成:用戶集合U和可信服務器S。整體系統模型如圖1 所示。用戶集合中每個客戶持有各自的口令,與想要通信的用戶之間協商共享的會話密鑰,為后續通信建立安全信道。假設服務器端是可信的,存儲用戶集合各自口令對應的哈希值和鹽值,計算出臨時秘密值,幫助擁有不同口令的2 個用戶建立共同的密鑰。首先,服務器端對用戶端口令進行認證,確認用戶擁有的口令滿足口令策略,并且與哈希值相關,再接受相應的哈希值;其次,2 個用戶通過服務器傳輸信息并計算出臨時秘密值;最后,2 個用戶交互協商出共享的會話密鑰。

圖1 整體系統模型
設κ表示安全參數,函數H1:{0,1}*→{0,1}κ表示單向抗碰撞哈希函數;ECC:{0,1}?→{0,1}κ表示可以糾錯 2ε 小部分的編碼算法,ECC-1:{0,1}κ→{0,1}?表示解碼算法 ;F={Fmk:mk ∈{0,1}?}?∈N表示偽隨機函數,協議中的符號說明如表1 所示。3VPAKE 協議具體描述如圖2 所示。

圖2 3VPAKE 協議具體描述

表1 符號說明




6) 用戶B收到消息M5之后,驗證g的值與FmkSB(B||S)是否相等,若不相等,則終止;否則計算。此時用戶A和B擁有共同的會話密鑰。
上述協議中,步驟3)中服務器對用戶的身份間接地進行了驗證,步驟4)~步驟5)中用戶都對服務器身份進行了驗證,步驟6)可以驗證用戶之間得到了相同的會話密鑰。因此協議顯式地實現了用戶與服務器之間的雙向認證,并確認通信用戶之間得到了相同的會話密鑰。
正確性。協議誠實執行,2 個用戶之間得到相同的會話密鑰的概率是不可忽略的。根據ASPH 函數的平滑性,參與者A(B)得到的tkSA(tkSB)和S得到的tkSA(tkSB)之間的漢明距離至多為2ε。此外,糾錯碼ECC 能夠糾錯2ε 部分,A(B)和S將得到相同的mkSA(mkSB),因此A和B可以得到相同的會話密鑰sk,協議的正確性得到滿足。
本節在上述安全模型中證明本文3VPAKE 協議的安全性。
定理1如果PKE=(KeyGen,Enc,Dec)為基于格的CCA 安全的公鑰加密體制;(K,?,{Hashhk:X→{0,1}?}hk∈K,HP,Proj:K→HP)為相應的ASPH函數,其中,HP 為投射密鑰空間;H=(Setup,PreSalt,PreHash,Salt,Hash)為基于格的隨機口令哈希方案;ECC:{0,1}?→{0,1}κ為可以糾錯2ε 小部分的糾錯碼;F={Fmk}為安全的偽隨機函數,則3VPAKE 協議是語義安全的。
證明假設模擬器控制了概率多項式敵手A訪問的所有預言機。若在Test 詢問中敵手A 猜對模擬器選擇的b值,則稱敵手成功。為了形式化地證明定理1,通過一系列游戲來估計敵手的優勢,G0是語義安全時的真實攻擊游戲,從G0到G9敵手的優勢之差至多為。定義AdvA,i(κ)表示敵手在游戲Gi中的優勢。
游戲G1。修改對口令Hash 進行Execute 詢問的響應。修改存儲的預鹽值sP、鹽值sH和哈希值H,根據鹽值的不可區分性,可知敵手在游戲G1和游戲G0中的優勢之差可忽略,則有
游戲G2。修改Execute 詢問的響應,替換密文cA為加密虛擬口令得到的密文。
由于PKE=(KeyGen,Enc,Dec)為基于格的CCA 安全加密方案,因此存在|AdvA,2(κ)-AdvA,1(κ)|≤ negl(κ)。
游戲G3。繼續修改Execute 詢問的響應,替換密文cSA=Enc(pk,labelSA,H SA;rSA)為虛擬口令π0相應驗證元的密文cSA=Enc(pk,labelSA,H0;rSA)。
根據定義3 中判定LWE 問題困難性假設成立,公鑰加密算法是CCA 安全的,因此能夠區分HSA和H0相應的密文的概率是可忽略的,得到敵手在游戲G3和游戲G2優勢之差可忽略,存在|AdvA,3(κ)-AdvA,2(κ)|≤negl(κ)。
游戲G4。繼續修改Execute 詢問的響應,修改值tkSA,該值由相應的哈希密鑰hpA、hkS和相應的密文進行計算,即tkSA=Hash(hkS,L(sH1,HSA),cA)⊕ ProjHash(hpA,LHSA,c S,rS)。

游戲G5。繼續修改Execute 詢問的響應,修改mA,將其替換為均勻選取的隨機值。根據偽隨機函數簇的性質,得到敵手在游戲G5和G4優勢之差可忽略,存在|AdvA,5(κ) -AdvA,4(κ)|≤ negl(κ)。
至此已經完成了Execute 查詢的修改,主要以用戶A為例,敵手不能從這些攻擊中獲得任何信息。下面考慮Send 詢問,將Send 詢問分為以下幾類。
Send0(A,i1,B,i2,S,j)。敵手激活協議,得到用戶發送的第一輪消息。
Send1(S,j,msg1)。敵手給服務器發送一輪消息,得到服務器返回的下一輪消息。
Send2(B,i2,msg2)。敵手向用戶實例發送下一輪消息。
Send3(A,i1,msg3)。敵手向用戶實例發送下一輪消息。
游戲G6。修改Send1詢問,通過解密預言機或已知的解密密鑰進行修改。敵手給服務器發送消息msg1=M2=(M1,hpB,cB,lable'B),如果S端的H SB(HSA)被泄露,則誠實地回復查詢,否則,存在以下2 種情況。
情況1消息msg1被敵手生成或修改,解密密文得到前哈希值π B(πA)。
①利用服務器的(s P2,sH2,HSB),如 果
Check(pp,s P2,sH2,πB,HSB)=1,且A 訪問Test 詢問到會話密鑰,則敵手成功并終止模擬tkSB;②均勻選取。
情況2如果是對之前的消息進行重放,那么可以利用密文cS和密鑰hkB計算臨時會話密鑰tkSB。
情況1 的①中,敵手的優勢增加了可忽略部分;根據口令策略檢查的正確性,詞語不在ASPH 函數的語言L中,根據判定LWE 問題的困難性和ASPH函數的平滑性,情況1 的②中變化是不可區分的,所增加的優勢是可忽略的。情況2 并不影響敵手的優勢。因此存在AdvA,5(κ) ≤AdvA,6(κ) +negl(κ)。
游戲G7。修改Send2詢問,服務器發送消息msg2=(sH2,hpS,cSB,ΔSB,g2,mB),其中的密文cSB是由敵手偽造的,那么存在以下2 種情況。
情況1如果實例持有的口令和實例持有的哈希值相對應,則令用戶B與服務器擁有相同的tkSB,即令skAB=skBA。
情況2均勻選取sk。
情況1 增加了敵手的優勢;根據ASPH 函數的平滑性可知,分布上的均勻分布是不可區分的;情況2 的優勢至多為解決判定LWE 問題的優勢,因此并不增加敵手的優勢,那么得到|AdvA,7(κ) -AdvA,6(κ)|≤ negl(κ)。
游戲G8。對Send2詢問進行修改,服務器S向用戶發送消息msg2=M3=(s H1,sH2,hpS,cSA,cSB,ΔSA,ΔSB,g1,g2,m A,mB),如果泄露了B的口令πB,那么利用該口令誠實地回答并計算sk;否則,存在以下情況。
S收到B發送的消息之后,返回消息msg2=M3,然后敵手解密cSB計算出哈希值HSB。
①如果口令與(s,H)一致,即HS2=PHash(pp,s P2,s H2,PB),并且隨后攻擊者通過Test 得知會話密鑰,那么認為敵手成功并結束模擬。
②均勻隨機選取sk。
③如果消息msg2是被服務器生成的,實例互為匹配會話,則令它們擁有相同的tkSB,即令skAB=skBA。
④均勻隨機選取sk。
敵手的優勢在①的變化只增加可忽略部分;根據ASPH 函數的平滑性,在判定LWE 困難問題假設下,②和④中的變化是不可區分的,敵手的優勢只增加了可忽略的部分;③的變化不影響敵手的優勢。因此得到AdvA,7(κ) ≤AdvA,8(κ) +negl(κ)。
游戲G9。修改Send3詢問,服務器發送消息msg3=(sH1,hpS,cSA,ΔSA,g1,mA),其中的密文cSA是由敵手偽造的,那么存在以下2 種情況。
情況1如果實例持有的口令和實例持有的哈希值相對應,則令用戶A 與服務器擁有相同的tkSA,即令skAB=skBA。
情況2均勻選取sk。
情況1 增加了敵手的優勢,根據ASPH 函數的平滑性,分布上的均勻分布是不可區分的;情況2 的優勢至多為解決判定LWE問題的優勢,因此并不增加敵手的優勢,那么得到
游戲G10。修改Send0詢問,將密文cA=Enc(pk,labelA,πA;rA)替換成對虛擬口令π0進行加密生成密文c'A,c'A是對Send0詢問的回應。
由于PKE是基于LWE 的CCA 安全的公鑰加密體制,區分口令πA和π0相應密文的優勢至多為解決判定LWE 困難問題的優勢,因此敵手在游戲G10和G9中的優勢之差可忽略。在判定性LWE 困難問題假設下,可知 |AdvA,10(κ) -AdvA,9(κ)|≤ negl(κ)。
綜上所述,游戲G0~G10中,敵手至多可進行Q(κ)次在線攻擊,由此可得AdvA,0(κ)≤,定理1 結論成立,可知3VPAKE 協議是語義安全的。證畢。
本文協議和已有的口令認證密鑰交換協議[15-16,20,22-23]從安全性和通信效率2 個方面進行比較,其中,n1<n2,m=O(nlogq)∈Z,具體如表2 所示。

表2 安全性和通信開銷比較
在安全性方面,本文協議基于LWE 問題構造,在量子計算下還不存在多項式求解算法,此外本文協議可降低服務器信息泄露帶來的危害,抵抗不可檢測在線字典攻擊,并且提供相互認證的功能。文獻[20]是基于驗證元的2PAKE 協議(即2VPAKE協議),依賴于傳統的數學困難問題假設,在量子計算機下是不安全的,且不能抵抗不可檢測在線字典攻擊。該協議是針對兩方設計的,消息傳輸量為2 條,所以3PAKE 協議消息傳輸量至少需要4 條,且其通信效率也較低,不能達到雙向認證的功能。文獻[15]是基于格上困難問題設計的3PAKE 協議,消息傳輸量為6 條,通信量較多且不能抵抗服務器泄露攻擊。文獻[16]是格上用戶匿名的3PAKE 協議,消息傳輸量較少,但通信效率較低并且沒有提供抵抗服務器泄露的性質。文獻[22]是一種改進的3VPAKE 協議,該協議基于DDH 假設,消息傳輸量為8 條,通信效率較低。文獻[23]是新的理想格上的3VPAKE 協議,可抵抗服務器泄露攻擊,消息傳輸量為8 條,通信負擔較大。
與現有方案[15-16,20,22-23]相比,本文方案是基于LWE 問題的三方VPAKE 協議,具有抵抗已知量子攻擊的特點,適用于大規模用戶端到用戶端的通信系統。本文方案只傳輸5 條消息量,協議中的投射密鑰只依賴于哈希密鑰,通信效率較高且具有抵御不可檢測在線字典攻擊和服務器泄露攻擊的特點。
在計算開銷方面,給出本文協議與同類型三方協議[14,21-22]的比較,如表3 所示。這些協議都采用了平滑投射哈希函數,Exp 表示模冪運算,Enc/Dec表示公鑰加密/解密運算,ASPH(SPH)表示近似平滑投射哈希運算,Hash 表示哈希運算。由于指數運算成本要比哈希運算成本高,因此文獻[14]協議和本文協議計算開銷較小且相當。但是文獻[14]協議不能抵抗服務器信息泄露攻擊。

表3 計算開銷比較
相比較而言,本文提出的3VPAKE 協議具有更高的通信效率和較低的計算成本,在實際應用中更具有可行性。
本文提出了一種新的格上基于驗證元的三方PAKE 協議。利用基于格的公鑰加密和平滑投射哈希函數,并采用口令哈希方案和零知識口令策略檢查有效實現了口令的機密性和口令的檢查,達到了抵抗服務器泄露攻擊的目的,最后給出了形式化安全性分析。本文提出的3VPAKE 協議減少了用戶存儲口令的負擔,適用于大規模用戶相互通信場景,且可抵抗不可檢測在線字典攻擊和已知量子攻擊等安全屬性。會話密鑰私密性在三方PAKE 是較為重要的安全屬性,未來將考慮設計后量子格基3PAKE 方案,如何能夠在不實質增加通信量和計算開銷的同時滿足該性質,為基于格的3VPAKE 協議做出進一步的研究。