摘要:為解決云環境中基于傳統屬性基加密技術會話密鑰協商協議的數據訪問策略不能反映跨多個屬性之間復雜關系,導致其用戶認證能力和靈活性不足問題,提出一種基于附加屬性關系條件的線性密鑰分享方案的用戶認證結構,并基于該結構構造了一種屬性基會話密鑰協商協議。該協議提供了更加通用的基于用戶屬性的認證策略,同時維護了其模糊身份認證特性,實現對滿足復雜屬性關系條件的用戶之間交換會話密鑰。該協議在基于屬性的Blake-Johnson-Menezes(BJM)模型、選擇訪問結構安全模型和判定性q-并行雙線性Diffie-Hellman指數(q-PBDHE)假設下證明了該協議的安全性。通過實驗比較分析類似協議的性能,結果表明該協議在包含較多復雜屬性條件認證場景中使用具有較高效率,具有廣泛的應用場景。
關鍵詞:豐富認證策略;線性秘密分享方案;屬性基加密;密鑰協商協議;屬性條件
中圖分類號:TP309.7文獻標志碼:A
文章編號:1001-3695(2022)04-043-1213-05
doi:10.19734/j.issn.1001-3695.2021.06.0365
Two-party attribute-based session key agreement protocol with expressive authentication policies
Hu Shengzhou1,Zhong Tingting1,He Hua2,Wang Xingfu1
(1.Gannan Normal University,Ganzhou Jiangxi 341000,China;2.First Affiliated Hospital of Gannan Medical College,Ganzhou Jiangxi 341000,China)
Abstract:In the cloud environment,the data access policy based on the traditional attribute-based encryption(ABE) techno-logy in the session key agreement protocol cannot reflect the complex relationships of many attributes,which leads to the lack of user authentication ability and the flexibility.To solve the problem,this paper presented a user authentication structure of linear secret sharing scheme(LSSS) based on the attached condition expression of complex attribute relations,and introduced an attribute-based key agreement protocol based on the structure.The protocol realized a more general user authentication policy based on user attributes,maintained the fuzzy identity authentication feature,and provided the exchange of session keys between the users who both met the conditions of the attribute relationships.Under the attribute-based Blake-Johnson-Menezes(AB-BJM) model,the security model of selective access structure and the decisional q-parallel bilinear Diffie-Hellman exponent(q-PBDHE) hypothesis,the protocol proves to be secure.Compared and analyzed the similar protocols through experiment,the protocol has better performance in the application scenarios containing the more complicated relationships of attributes,and has wide application prospect.
Key words:expressive authentication policies;linear secret sharing scheme;attribute-based encryption;key agreement protocol;attribute conditions0引言
密鑰協商(key agreement,KA)協議是一種基于相互認證的安全協議,并為開放網絡上的通信節點建立會話密鑰。該會話密鑰及相關密碼學技術可為后續通信提供機密性、完整性、可用性、不可抵賴性和可控性等安全服務。
基于屬性的加密[1](attribute-based encryption,ABE)技術常用于分布式環境中數據的細粒度訪問控制。在應用于一對多加密的情況下,用戶身份由其屬性決定,當且僅當密文中列出的屬性與用戶擁有的屬性相匹配時,用戶才能解密密文。
基于屬性基加密的密鑰協商(attribute-based KA,ABKA)協議基于通信主體屬性認證協商會話密鑰,可實現模糊身份認證。一些ABKA協議[2~10]被陸續提出,魏江宏等人[11]在屬性基加密方案[1]的基礎上,構建了一種基于線性密鑰分享方案的AB-KA協議,并在基于屬性的BJM(attribute-based Blake-Johnson-Menezes,AB-BJM)模型中證明了其安全性。Li等人[12]提出一種能生成固定密文長度交換消息的ABKA協議,較好地降低了會話密鑰協議的計算和通信代價。
用于細粒度數據訪問控制的數據訪問技術有很多,如線性秘密分享方案(linear secret share scheme,LSSS)、與門和多項式插值等。然而,這些訪問結構只能支持屬性簡單的與、或、非和門限等操作,不能描述許多復雜的訪問策略。比如,在一個醫療輔助系統中,相關科室的醫務人員想與體質指數(BMI)不合格的體檢用戶建立私密溝通。該系統中包含體重(BW)、身高(BH)等屬性,通常,BMI不合格指BMI的值大于24或小于18,可描述為條件表達式:ce=BW/(BH×BH)gt;24∧BW/(BH×BH)lt;18。但是,傳統ABE方法難于表達這種跨屬性構建所需滿足條件關系的訪問策略。
為此,本文設計了一種基于LSSS附加屬性條件的訪問結構(LSSS-CE),并基于該結構構造了兩方ABKA協議(TP-LSSS-CE-ABKA),該協議實現對基于復雜屬性條件關系用戶的認證并實現安全交換會話密鑰,同時維護了ABE的細粒度特性。
1相關知識
1.1LSSS訪問結構
對于基于屬性集ATT上的線性秘密分享方案∏,當滿足如下條件時,則稱方案∏是線性相關的。
每一個屬性對應的分享值構成Zp上的一個向量。存在一個l行n列的秘密生成矩陣M,對于M中的第i行,i=1,2,…,l,使用函數ρ定義i行標簽對應的屬性為ρ(i)。給定一個列向量V=(s,v2,…,vn),其中s∈Zp是一個用于分享的秘密值,隨機選擇v2,…,vn∈Zp,那么M×V是根據線性秘密分享方案∏生成的關于秘密值s的分享值,而分享值(M·V)i屬于屬性ρ(i)。線性秘密分享方案具有線性重構性質:假設方案∏是訪問結構
上的線性秘密分享方案,令PU∈為任意授權集合,且令Γ={i:ρ(i)∈PU}。若{λi}i∈Γ是根據方案∏對任意秘密值s的有效分享,那么存在一個{i}i∈Γ滿足∑i∈Γviλi=s,且這些常量{i}i∈Γ能在多項式時間內找到。
1.2條件表達式(condition expression,CE)
定義1條件表達式。其是一種描述屬性所必須滿足條件的表達式。條件表達式包含數據、運算符和分組符號(如括號),并以有意義的方式組合排列,最終返回判定結果值。
其返回結果定義如下:給定一個密碼hash函數H1:{0,1}*→G0(G0是乘法循環群)。如果一個任意條件表達式ce→被滿足,則其判定結果返回true,并返回標識符πce→=H1(ce→),否則,返回1及標識符πce→=R0∈G0。
定義2條件表達式劃分和屬性集劃分。用Ace1→,Ace2→,…,Acer′→分別表示表達式ce1→,ce2→,…,cer′→包含的屬性變量集合。如果對于Acei→,Acej→,i≠j,i,j∈[1,r′],有Acei→∩Acej→=,則稱CE={ce1→,ce2→,…,cer′→}為條件表達式劃分,ATTCE={Ace1→,Ace2→,…,Acer′→}為屬性集劃分。
1.3判定性q-PBDHE假設
判定性q并行雙線性Diffie-Hellman指數(decisional q-parallel bilinear Diffie-Hellman exponent,decisional q-PBDHE)假設:
假設s,a,b1,b2,b3,…,bq∈RZp,e:G0×G0→G1是一個雙線性映射,g是一個G0的生成元。給定元組:
=g,gs,ga,…,gaq,
gaq+2,…,g(a2q)
1≤j≤qgs·bj,gabj,…,gaqbj,gaq+2bj,…
,
ga2q·bkbj
1≤j,k≤q,k≠jga·s·bkbj,…,ga2·s·bkbj,…,
gaq·s·bkbj
如果無概率性多項式時間敵手
對e(g,g)aq+1·s和隨機選擇的R∈G1能進行區分,那么判定性q-PBDHE假設成立并具有如下優勢:
|Pr[
(Y→,e(g,g)aq+1·s)=1]-Pr[A(Y→,R1)=1]|≥ε其中:ε為可忽略的函數。
1.4AB-BJM模型
本文通過采用AB-BJM模型[11](attribute-based BJM)證明了協議的正確性。攻擊者
能通過詢問reveal(·)、corrupt(·)、send(·)等形式訪問預言機。預言機ΠκU1,U2表示用戶U1與U2進行第κ次會話運行實例,協議的安全性是由一
和挑戰者參與的游戲證明的。
a)第一階段,
被允許以任意次序進行如下詢問。
reveal(·):如果該預言機被接受,它將返回會話密鑰,否則,返回⊥。
corrupt(U1):U1將返回其私鑰。
send(ΠκU1,U2,m):
發起一個會話并發送消息m給相關參與方。若ΠκU1,U2接受消息m,則執行協議,并輸出消息m′或是給出是否接受這個會話的判斷。若ΠκU1,U2不存在,則m=1λ,它將被作為初始者建立,否則,作為一個響應者建立。
b)第二階段,一旦敵手判斷第一個階段已經結束,它將通過選擇一個新鮮的ΠκU1,U2開始第二個階段任務,并且發起test(ΠκU1,U2)詢問。
定義3新鮮預言機ΠκU1,U2。ΠκU1,U2是新鮮的,當且僅當:
a)ΠκU1,U2已經接受了;
b)ΠκU1,U2未被打開(沒有被發起reveal(·)詢問);
c)U1、U2未被腐敗(未被發起corrupt(·)詢問);
d)沒有被打開的且與ΠκU1,U2有匹配會話的預言機Πκ′U2,U1。
test(ΠκU1,U2):如果test(ΠκU1,U2)是新鮮的,隨機選擇τ∈[0,1],如果τ=0,則返回會話密鑰,否則返回隨機值。
除了不能泄露挑戰ΠκU1,U2或其伙伴Πκ′U2,U1(如果存在),且不能腐化U2之外,它能繼續詢問其他預言機。
最終,敵手輸出一個對τ的猜測τ′。如果τ=τ′,則敵手獲勝。其獲勝優勢定義為:
Adv
(k)=max{0,Pr[
wins]-1/2}。
1.5密鑰協商協議安全性
一個安全的密鑰協商協議定義如下:
定義4安全的密鑰協商協議。如果協議滿足以下條件,則它是一個安全的密鑰協商協議:
a)敵手必須忠實地傳遞消息,ΠκU1,U2和Πκ′U2,U1都是接受的并持有相同的會話密鑰;
b)Adv
(k)是可忽略的。
2TP-LSSS-CE-ABKA協議具體構造
該協議包含系統初始化階段、交換密文產生階段、私鑰產生階段和會話密鑰交換階段四個階段。
1)系統初始化階段
globalSetup(1λ)。該算法輸入安全參數1λ,輸出開放參數Params,屬性授權中心AA被創建并管理屬性集合AA,定義條件表述式規則RCE。
setup(Params)。給定屬性域ATT和一個具有最大列數nmax的LSSS矩陣,以及一個雙線性映射e:G0×G0→G1。G0和G1是兩個具有素數階p的循環群,g是G0的生成元。算法隨機選擇hj,atti∈G0,atti∈ATT,1≤j≤nmax和γ,a∈Zp并把γ,a∈Zp作為系統主私鑰,計算主公鑰集合PK={g,e(g,g)γ,ga,{hj,atti∈G0}atti∈ATT,1≤j≤nmax}。
PCESGeneration(CE)。算法輸入CE={ce1→,ce2→,…,cer→},輸出對應的劃分表達式和屬性集合。首先,CE產生相應的劃分表達式集合CE={ce1→,ce2→,…,cer′→},即是CE中的任意兩個表達式之間不會出現相同的屬性。然后,再生成CE對應的劃分屬性集合為ATTCE={Ace1→,Ace2→,…,Acer′→},其中的屬性集合滿足:對于Acei→,Acej→∈ATTCE,i≠j,i,j∈[1,r′]有Acei→∩Acej→=。具體執行算法見算法1。
算法1Generation of partition of CE attribute set
procedure CEAttributeSetPartitionGenerating(CE)
CE={ce1→,ce2→,…,cer→}
for i=1 to r do
Acei→(extracting all attribute variables from cei→)
ASCE=ASCE∪Ace1→
end for
ATTCE=,CE=,k=1,i=1
do while klt;=r
if cek→≠“*” then
cei→=cek→
for j=k+1 to r
if Acei→∩Acej→≠∧cej→≠“*” then
cei→=cei→∧cej→
Acei→=Acei→∪Acej→
CE=CE-{cej→}
CE=CE∪{cej→}
cej→=“*”
end if
end for
ASCE=ASCE∪{Acei→}
i=i+1,k=k+1
else
k=k+1
end if
end do
ATTCE={Ace1→,Ace2→,…,Acer′→}
return CE,ATTCE′
end procedure
2)交換密文產生階段
encryption(PK,(M,ρ)1→2,m1,CE1→2,(M,ρ)2→1,m2,CE2→1)。給定LSSS訪問結構(M,ρ)1→2以及條件表達式集合CE1→2,用戶U1選擇用戶U2可滿足的數據訪問策略(M,ρ)1→2∧CE1→2對數據m1∈G1加密。
a)令M是一個l×nmax矩陣,選擇隨機向量v=(s,τ2,…,τnmax)∈Znmaxp。用W1→2表示(M,ρ)1→2對應的屬性集合。隨機選擇r1,r2,…,rl∈Zp。
b)對于CE1→2={ce1→,ce2→,…,cer→},通過調用PCESGeneration(·)產生相應的表達式劃分集合CE1→2={ce1→,ce2→,…,cer′→}和相應的屬性劃分集合ATTCE1→2={Λce1→,Λce2→,…,Λcer′→},這里∪r′k=1Λcek→=W1→2,對于Λcei→,Λcej→∈ATTCE1→2,i≠j,i,j∈[1,r′],Λcei→∩Λcej→=。
c)對于每一個條件表達式cek→∈CE1→2,如果cek→滿足其值為true,則算法產生 πcek→=H1(cek→),否則,生成一個任意值πcek→=R0∈G0。
d)U1選擇一個隨機值s1∈Zp,產生密文CT1→2如下:
C1,0=m1e(g,g)γs1,C1,1=gs1
{C1,cek→=atti∈Λcek→ (πcek→ -rρ(i)·j=1,…,nmax (gaMi,j τj h-rρ(i)j,ρ(i)))}k∈[1,r′]
{C1,i,1=gri}atti∈W1→2
{C1,i,2=j=1,…,nmax (gaMi,jτjh-rρ(i)j,ρ(i))} atti∈W1→2-∪r′k=1 Λcek→ "
使用同樣的方法,給定LSSS訪問結構(M,ρ)2→1以及條件表達式集合CE2→1,生成相應的表達式劃分集合CE2→1={Ce1→,Ce2→,…,Cer″→}和相應的屬性劃分集合ATTCE2→1={ΛCe1→,ΛCe2→,…,ΛCer″→},用戶U2選擇用戶U1可滿足的數據訪問策略(M,ρ)2→1∧CE2→1并對數據m2∈G1加密。U2選擇一個隨機值s2∈Zp,產生CT2→1如下:
C2,0=m1e(g,g)γs1,C2,1=gs1
{C2,Cek →=atti∈ΛCek→ (πCek→ -rρ(i)·j=1,…,nmax (gaMi,j τjh-rρ(i) j,ρ(i)))}k∈[1,r″]
{C2,i,1=gri}atti∈W2→1
{C2,i,2=j=1,…,nmax (gaMi,j τj hj,ρ(i)-rρ(i))} atti∈W2→1-∪r″k=1 ΛCek→ "
3)私鑰產生階段
keyGeneration(SK,SU1,CE′1,SU2,CE′2)。給定具有屬性集合SU1和條件表達式集合CE′1的用戶U1,AA可為其產生私鑰如下:
a)對于CE′1={Ce1→,Ce2→,…,Cer″→},通過運行PCESGeneration(·)產生相應的條件表達式劃分集合CE′1={Ce1→,Ce2→,…,Cer″→},屬性劃分集合ATTCE′1={ACe1→,ACe2→,…,ACer″→},即對于ACei→,ACej→∈ATTCE′1,i≠j,i,j∈[1,r″],有ACei→∩ACej→=。
b)對于每一個條件表達式Cek→∈CE′1,產生相應的條件表達式,將實際屬性值代入表達式中的屬性變量,并計算表達式的結果,用Fcek → "(〈vatti 〉atti∈ACek→ ")表示。
c)選擇一個隨機值t1∈Zp,產生私鑰Usk1如下:
K1,1=gγgat1,K1,t1=gt1
{K1,ACek→ ""=(atti ∈ACek→ (FCek → "(〈vatti〉atti∈ACek→ ")·nmaxj=1 hj,atti))t1}k∈[1,r″]
{K1,atti=j=1,…,nmaxht1j,atti}atti∈SU1-∪r″k=1 ACek→ "
給定具有屬性集合SU2和條件表達式集合CE′2的用戶U2,類似的,其條件表達式劃分集合為CE′2={ce1→,ce2→,…,cer′→},屬性劃分集合為ATTCE′2={Ace1→,Ace2→,…,Acer′→},選擇一個隨機值t2∈Zp,AA可為其產生如下私鑰Usk2:
K2,1=gγgat2,K2,t2=gt2
{K2,Acek→ "=(atti∈Acek→ (Fcek→ "(〈vatti〉 atti∈Acek→ ")·nmaxj = 1 hj,atti))t2}k∈[1,r′]
{K2,atti=j=1,…,nmaxht2j,atti}atti∈SU2-∪r′k=1 Acek→ "
4)會話密鑰交換階段
decryption(CT,Usk)。假定SU滿足訪問結構(M,ρ),可表示為I{1,…,l}={i:ρ(i)∈SU},存在常數集合{(wi∈Zp)li=1}i∈I,滿足∑i∈IwiMi=(1,0,…,0)。以U2解密,由U1生成的 U2可滿足訪問策略的密文為例,其計算過程如下:
Δ1=e(K2,t2,r′k=1 atti∈Λcek→ "Cwi1,cek→·atti∈W1→2 -∪r′k=1 Λcek→ "Cwi1,i,2 )=
e(gt2,r′k=1 atti∈Λcek→ "πcek→ -rρ(i) wi·atti∈W1→2 "nmax j=1(gaMi,jτjh-rρ(i)j,ρ(i))wi)Δ 2=r′k=1 atti∈Λcek→ "e(K2,Acek→ ",C1,i,1)wi·atti∈SU2-∪r′k=1 Acek→ "e(K2,atti,C1,i,1)wi=
r′k=1 atti∈Acek→ "e((Fcek→ "(〈vatti〉atti∈Acek→)t2wi,grρ(i))·atti∈SU2 nmaxj=1 e(hj,attit2,grρ(i)wi)
C1,0·Δ1·Δ2e(C1,1,K2,1)=m1 e(g,g)γs1·Δ1·Δ2e(gs1,gγgat2)=m1,e(C1,1,K2,1)Δ1·Δ2 = e(g,g)γs1
類似,U1解密U2密文可獲得e(g,g)γs2。
SessKeyGeneration按如下步驟計算會話密鑰:
a)U1將CT1→2分別發送給U2,U2將CT2→1發送給U1。
b)U1和U2分別調用decryption算法解密CT2→1和CT1→2,分別獲得e(g,g)γs2,e(g,g)γs1。
c)U1、U2分別計算會話密鑰SK1→2=H(e(g,g)γs2)H(e(g,g)γs1)和SK2→1=H(e(g,g)γs1)H(e(g,g)γs2)具體執行流程如圖1所示。
3安全證明
定理1假設判定性q-PBDHE假設成立,在AB-BJM模型下,TP-LSSS-CE-ABKA協議是一個安全的密鑰協商協議。具體地說,如果有一個敵手
,在涉及NU個主體和NS個會話情況下,能以優勢ε(·)成功地攻擊該協議,則該協議能構造一個模擬器以優勢ε(·)/[(NU)2·NS]解決q-PBDHE假設問題。
證明
a)本協議滿足定義4a)的要求。根據協議的正確性,能推導出結論SK1→2=SK2→1。
b)本協議滿足定義4b)的要求。
假設協議涉及NU個用戶且建立了NS個會話。選擇κ*∈(0,NS)且任意選擇兩個用戶U1、U2。猜測
發起了test(Πκ*U1,U2)詢問。給出一個q-PBDHE挑戰(Y→,Ω=e(g,g)aq+1s)。
給出的挑戰訪問策略W*∧CE*。W*是挑戰訪問結構(M*,ρ*)相應的屬性集合,這里M*有nmax列和l行。CE*是一個挑戰條件表達式集合,包含ce*1→,ce*2→,…,ce*r→。挑戰者通過投擲硬幣方式輸出一位θ∈{0,1},如果θ=0,則將(Y→,Ω=e(g,g)aq+1s)發送給;否則,將(Y→,Ω=R)發送給,其中R是從隨機選擇的G1的值。將輸出對θ的猜測θ′。
初始化;隨機選擇γ′∈Zp并通過計算e(g,g)γ = e(ga,gaq)e(g,g)γ′隱含設置γ=γ′+aq+1。 對于每一個屬性atti,atti∈ATT,選擇隨機值zi。令X表示滿足ρ*(i)=atti的序號i的集合。產生hatti:如果atti∈X,則hatti=gzi∏i∈X∏nmaxj=1gajM*i,j/bi,否則hatti=gzi。
階段1corrupt(U):構造者回答對具有U+屬性策略的用戶U的私鑰詢問,其中
U+=Su∧CE|≠W*∧CE*。
a)SU |≠W*。構造者回答對不滿足M*的SU的屬性私鑰的詢問。首先選擇一個隨機值ι∈Zp。找出一個向量w=(w1,…,wn)∈Znmaxp,滿足w1=-1,對于所有ρ(i)∈SU中所有i,使得w·M*i=0。通過LSSS定義,那樣的向量一定存在。對于CE,通過運行PCESGeneration(·)產生相應的劃分集合CE={ce1→,ce2→,…,cer′→}以及相應的劃分屬性集合ATTCE={Ace1→,Ace2→,…,Acer′→},且∪r′k=1Acek→=SU。通過隱含定義t為ι+w1aq+w2aq-1+…+wnaq-n+1=r+∑n*u=1wuaq-u+1。它通過設置Kt=gι∏i=1,…,nmax(gaq+2-i)wi=gt實現。計算K1=gγ′gar∏i=2,…,nmax(gaq+2-i)wi。令X是包含滿足ρ*()=atti的所有的集合,對于ATTCE中每一個Acek→,計算:
KAcek → ,1 "= atti ∈Acek→ ∧atti Xj = 1,…,nmax(Fcek→ "(〈vatti 〉atti∈Acek→ ")·gzi)(ι+∑nmaxu=1wuaq-u+1);
KAcek→ ,2 =atti∈Acek→∧atti∈Xj=1,…,nmax (Fcek→(〈vatti〉atti∈Acek→)·gzii∈Xnmax j=1 gajM*i,j/bi)(ι+∑nmaxu=1wuaq-u+1)。
所有條件表達式對應的私鑰為
{KAcek→=KAcek→,1,KAcek→,2}k∈[1,r′]
對于條件表達式中不包含的用戶屬性atti,計算Katti如下:
{Katti=∏j=1,…,nmax(gzi∏i∈X∏nmaxj=1gajM*i,j/bi)(ι+∑nmaxu=1wuaq-u+1)}atti∈X∩(SU-∪r′k=1Acek→)
{Katti=∏j=1,…,nmax(gzi)(ι+∑nmaxu=1wuaq-u+1)}attiX∧atti∈(SU-∪r′k=1Acek→)
b)Sul=W*amp;CE≠CE*0對于CE、CE*,通過調用PCESGeneration(·)分別產生相應的劃分集合CE、CE*。存在cei→∈CE,ce*j→∈CE*(cei→≠ce*j→),都與屬性attμ相關,且CE≠CE*。不失一般性,基于attμ,可以構造兩個屬性att′μ,i∈cei→,att′μ,j ∈ce*j→(att′μ,j ≠att′μ,i )使得cei→=ce*j→,然后在SU中用att′μ,i 替換attμ,在W*中用att′μ,j 替換attμ。同樣,能按照a)SU |≠W*情況產生Katt′μ,i。
send(ΠκU1,U2,m):此詢問表示在接收消息m之后,預言機ΠκU1,U2執行協議并輸出消息m′。如果ΠκU1,U2是會話的發起者,則規定所接收到的消息m就是安全參數1λ。建立一個初始化的空列表Lκ=(⊥,⊥,⊥,⊥,⊥)。在協議中,維持記錄Lκ=(ΠκU1,U2,x→,m,m′,K1→2),x→是由ΠκU1,U2選擇的隨機值,m′是ΠκU1,U2接收了消息m之后產生的消息,K1→2是生成的會話密鑰。
(a)m是一個安全參數1λ。ΠκU1,U2是會話的發起者。如果κ≠κ*,根據協議正常運行進行計算并更新列表Lκ。如果κ=κ*,根據挑戰的訪問結構W*∧CE*,選取s∈Zp并計算:
對于LSSS相應的訪問結構(M*,ρ*)以及CE*,運行PCESGeneration(·)生成相應的條件表達式劃分集合CE*={ce*1→,ce*2→,…,ce*r′→}和相應的屬性集劃分ATTCE*={Λce*1→,Λce*2→,…,Λce*r′→},其中∪r′k=1Λcek*→=W*。
隨機選擇r′1,r′2,…,r′l,y′2,…,y′nmax ∈Zp,產生向量v=(s,sa+y′2,sa2+y′3,…,san-1+y′n*)∈Zn*p。對于i=1,2,…,nmax,定義Ri為所有滿足ρ(i)=ρ(k)的集合(k≠i)。生成C1,1=gs,{Ccek*→ "= atti∈Λcek*→ (πcek*→ r′i·hr′iρ*(i)(j=2,…,nmax (ga)M*i,jy′j)·(gbi·s)-zρ*(i)·(k∈Ri j=1,…,nmax (gaj·s·(bi/bk))M*k,j)}k∈[1,r] ;{C1,i,1=g-r′ig-sbi}atti∈W* ;{C1,i,2=hr′iρ*(i)(j=2,…,nmax(ga)M*i,jy′j)(gbi·s)-zρ*(i)·(k∈Rij=1,…,nmax (gaj·s·(bi/bk))M*k,j)}atti∈W*-∪r′k=1Λcek*→ "m′=CT1→2=〈C1,{Ccek*→}k∈[1,r],{C1,i,1}atti∈W*,{C1,i,2}atti∈W*-∪r′k=1Λcek*→〉
將m′發送給U2(
)并且在Lκ中創建記錄Lκ=(ΠκU1,U2,⊥,1λ,m′,⊥)。
(b)m不是安全參數。如果在列表Lκ中有記錄(ΠκU1,U2,⊥,1λ,m′,⊥),那么ΠκU1,U2是進行測試詢問的對象且κ=κ*。對于接受到的消息m,根據協議的正常運行計算K1→2=H(Ω·e(gs,gγ′))·Δ,其中Δ為按協議生成的秘密值,并更新列表Lκ。
如果Lκ中沒有有關ΠκU1,U2的記錄,那么ΠκU1,U2是協議的響應者。根據協議正常運行進行計算并更新列表Lκ。
如果在列表Lκ中有記錄(ΠκU1,U2,ξ,⊥,m′,⊥),其中ξ是一個任意屬于Zp的值,那么ΠκU1,U2則是發起者。根據協議正常運行進行計算并更新列表Lκ。
test(Πκ*U1,U2):攻擊者選擇一個新鮮的協議參與者ΠκU1,U2進行test(·)詢問。如果在初始化過程中,ΠκU1,U2不是猜測的協議參與者,結束模擬,否則,返回會話密鑰。K1→2=H(Ω·e(gs1,gγ′))·Δ。
reveal(ΠκU1,U2):如果ΠκU1,U2是被執行了test(·)詢問的協議的參與者,或者是被test(·)詢問的匹配會話的參與者,那么則結束模擬。否則,則通過訪問查詢列表Lκ返回相應的值。
輸出:
在階段1中完成了所有詢問,
能繼續進行corrupt(·)、reveal(·)和send(·)三個詢問。但詢問時不能破壞接受了test(·)詢問的參與者的新鮮性。一旦
完成了所有詢問后,
輸出一位作為會話密鑰的猜測值。該值也將被作為其猜測值并用做區別Ω=e(g,g)aq+1s和G1中的一個隨機值。
分析:在整個分析過程中,模擬器不會中止模擬的概率至少為1/[(NU)2·NS]。當模擬不結束時,
是無法區分模擬的安全游戲和實際的安全游戲。因此,如果
猜中的優勢是ε(·),那么在模擬的安全游戲中猜中的優勢是ε(·)/[(NU)2·NS]。
如果Ω=e(g,g)aq+1s,那么模擬的安全游戲是完美的。根據上述分析,如果攻擊者
以優勢ε(·)能贏得安全游戲,則能構建一個模擬器以ε(·)/[(NU)2·NS]優勢來解決q-PBDHE假設問題。故該協議滿足定義4 b)的要求。
4性能分析
4.1理論分析
本節將分析TP-LSSS-CE-ABKA協議與文獻[11,12]中協議的性能情況。文獻[11]基于LSSS訪問結構的屬性基會話密鑰協議,其認證策略僅可實現基于屬性的與、或、門限等運算。文獻[12]采用的是基于多項式函數的與門訪問結構,實現了具有常數大小的密文長度,具有較高的通信效率。本文TP-LSSS-CE-ABKA協議的認證策略不僅可實現上述屬性間的簡單運算,而且對跨屬性間的復雜運算也可表達,是一種更為豐富、通用的屬性基訪問策略。
為了進一步分析上述協議的計算代價,定義以下符號:Natt表示系統中涉及的屬性總個數;TG0、TG1分別表示G0、G1元素的指數操作時間;TP表示對計算時間;lW、lSU分別表示訪問結構和私鑰中涉及的屬性個數;lCE表示ATTCE中涉及的屬性個數;算法PCESGeneration可在預處理階段完成;H1(cek→),k∈[1,r′]主要是完成hash值的計算,其計算代價可忽略。
會話密鑰生成代價主要取決于加密算法和解密算法的計算代價,表1給出了本文協議與類似文獻[11,12]的會話密鑰生成代價。從表中可以看出,在處理基于復雜屬性關系認證的場景中,TP-LSSS-CE-ABKA協議具有較好的性能。
4.2實驗模擬
在Windows 7系統PC機(Intel CoreTM i7 CPU,2.3 GHz,RAM 4 GB)上進行模擬實驗。方案運行時使用基于對操作的加密庫(PBC)[13]。使用具有160 bit群階對稱橢圓曲線a-曲線,其基元素大小為512 bit。
給定以下場景:每個方案包含100個屬性,密文、密鑰分別涉及屬性30個,給定8個條件表達式,其中包含25個屬性。用C語言編程實現相關算法,其運行結果如圖2所示。與屬性基會話密鑰文獻[11,12]比較,TP-LSSS-CE-ABKA文獻在處理包含多屬性條件下(給定場景中8個條件表達式反映了25個屬性關系),提供了實現復雜屬性關系描述的訪問策略功能,在加密、解密的計算代價上最小,具有明顯的性能優勢(見圖2)。
5結束語
本文提出一種基于附加條件LSSS屬性基加密會話密鑰協商協議。該協議實現了基于更為靈活、復雜的屬性條件關系用戶認證的會話密鑰協商,同時較好地保持了細粒度ABE特征。與類似協議比較,該協議在包含多屬性關系認證場景下,具有更好的性能,并實現了安全證明。下一步,將嘗試進一步簡化條件表達式描述以及進一步細粒化工作。
參考文獻:
[1]Sahai A,Waters B.Fuzzy identity-based encryption[C]//Proc of Annual International Conference on the Theory and Applications of Cryptographic Techniques.Berlin:Springer,2005:457-473.
[2]Chen Yuechen,Jiang Z L,Yiu S M,et al.Fully secure ciphertext-policy attribute based encryption with security mediator[C]//Proc of International Conference on Information and Communications Security.Berlin:Springer,2014:274-289.
[3]Lone T A,Rashid A,Gupta S,et al.Securing communication by attri-bute-based authentication in hetnet used for medical applications[J].EURASIP Journal on Wireless Communications and Networking,2020,2020(1):1-21.
[4]Gan Yong,Wang Bingli,Zhuang Yuan,et al.An asymmetric group key agreement protocol based on attribute threshold for Internet of Things[J].Trans on Emerging Telecommunications Technologies,2021,32(5):e4179.
[5]Bayat M,Aref M.An attribute-based key agreement protocol resilient to KCI attack[J].International Journal of Electronics amp; Information Engineering,2015,2(1):10-20.
[6]Guo Fuchun,Mu Yi,Susilo W,et al.CP-ABE with constant-size keys for lightweight devices[J].IEEE Trans on Information Forensics and Security,2014,9(5):763-771.
[7]Eslami Z,Pakniat N,Noroozi M.Cryptanalysis of an attribute-based key agreement protocol[J].International Journal of Computer amp; Information Technologies,2014,2(1):351-358.
[8]Oliveira M T D,Bakas A,Frimpong E,et al.A break-glass protocol based on ciphertext-policy attribute-based encryption to access medical records in the cloud[J].Annals of Telecommunications,2020,75(3):103-119.
[9]胡聲洲,劉志勇,何華,等.具有固定密文長度的多授權屬性基密鑰協商協議[J].計算機應用研究,2021,38(2):567-571.(Hu Shengzhou,Liu Zhiyong,He Hua,et al.Key agreement protocol with constant ciphertext length based on multi-authority attribute-based encryption[J].Journal of Application Research of Computers,2021,38(2):567-571.)
[10]Odelu V,Das A K,Rao Y S,et al.Pairing-based CP-ABE with constant-size ciphertexts and secret keys for cloud environment[J].Computer Standards amp; Interfaces,2017,54:3-9.
[11]魏江宏,劉文芬,胡學先.標準模型下可證安全的屬性基認證密鑰交換協議[J].軟件學報,2014,25(10):2397-2408.(Wei Jianghong,Liu Wenfen,Hu Xuexian.Provable secure attribute based authenticated key exchange protocols in the standard model[J].Journal of Software,2014,25(10):2397-2408.)
[12]Li Jiguo,Hu Shengzhou,Zhang Yichen.Two-party attribute-based key agreement protocol with constant-size ciphertext and key[J/OL].Security and Communication Networks.(2018-10-21).https://doi.org/10.1155/2018/8738960.
[13]Lynn B.PBC library-pairing-based cryptography[EB/OL].(2007).http://crypto.stanford.edu/pbc/.
收稿日期:2021-06-21;修回日期:2021-08-20基金項目:國家自然科學基金資助項目(61562003,31660321);江西省科技廳重點研發計劃資助項目(20171BBE50065);江西省教育廳科技項目(GJJ201402)
作者簡介:胡聲洲(1975-),男,江西南康人,副教授,碩導,博士,主要研究方向為公鑰密碼學等;鐘婷婷(1997-),女,江西瑞金人,碩士研究生,主要研究方向為公鑰密碼學等;何華(1976-),女(通信作者),江西于都人,副主任技師,學士,主要研究方向為醫療輔助系統設計等(13970780096@126.com);王幸福(1997-),男,河南周口人,碩士研究生,主要研究方向為公鑰密碼學等.