趙晨陽,柯品惠,林昌露
1.福建師范大學 計算機與網(wǎng)絡空間安全學院,福州 350117
2.福建師范大學 數(shù)學與統(tǒng)計學院,福州 350117
標識加密算法(identity-based encryption,IBE)是一種特殊類型的公鑰加密算法,它允許用戶使用任意標識作為公鑰,例如電子郵件地址、電話號碼和身份證號碼等。在IBE算法中,數(shù)據(jù)發(fā)送者不必獲得接收者的公鑰證書,即不需要公鑰基礎設施(public key infrastructure,PKI)。2001年,Boneh和Franklin[1]提出第一個實用且可證明安全的基于雙線性對的標識加密方案。隨后,研究者對標識加密算法進行了深入研究,基于雙線性對提出了更多實用的IBE 算法[2-4]。雖然標識加密算法研究取得了積極進展,但標識加密算法大多以國外算法為主。為實現(xiàn)信息自主可控,我國自主設計了一系列中國國家標識密碼標準。SM9[5]就是其中一個有代表性的密碼標準,它包括3 個組成部分:數(shù)字簽名算法、密鑰協(xié)商算法和標識加密算法。SM9標識加密算法于2016年成為我國商用密碼標準,2020 年成為國家標準。隨著SM9 算法在密碼技術領域占據(jù)愈來愈重要的國際地位,我國學者對SM9算法進行了深入研究,如文獻[6-10]。
雖然SM9-IBE 是一個標準算法,但在一些特殊場景中,比如電子郵件系統(tǒng)、電子投標、電子投票和網(wǎng)上選舉等,它不能很好地保護發(fā)送者的身份隱私?;诖耍疚慕Y合SM9算法添加否認認證協(xié)議,提出具有否認認證的SM9 標識加密算法,保護發(fā)送者的身份隱私,滿足上述應用場景的現(xiàn)實需要。
與傳統(tǒng)的認證協(xié)議相比,否認認證協(xié)議具有以下兩個特點:(1)協(xié)議主體可以在協(xié)議運行后否認自己的參與,只有目標接收者可以驗證給定消息的來源;(2)即使接收者與第三方充分合作,也不能使任何第三方相信消息是由特定的發(fā)送者發(fā)出的。
1998年,Dwork等人[11]首先提出了一個基于零知識的否認認證協(xié)議。之后,Aumann和Rabin[12]提出了另一個基于因子分解的方案,它需要一個通信雙方都信任的公共目錄。2001年,Deng等人[13]在Aumann和Rabin定義的模型下,分別提出了兩個基于因式分解和離散對數(shù)問題的否認認證協(xié)議。2005年,Cao等人[14]利用雙線性對提出了一個高效的非交互式、基于身份的否認認證協(xié)議。此外,該方案通過使用對稱加密算法實現(xiàn)了保密性。然而,在2006 年,Chou 等人[15]指出Cao 等人的方案易遭受密鑰泄露偽裝(key compromise impersonation,KCI)攻擊。隨后Chou 等人提出了一種新的基于身份的否認認證協(xié)議,并聲稱該協(xié)議是安全的。然而,2007 年,Lim 等人[16]證明Chou等人的方案仍易受KCI攻擊,其也是不安全的;此外,他們提出了一個增強的方案。然而在2009年,Tian等人[17]指出,Lim等人修復的協(xié)議在特殊的攻擊下仍然不安全。2014年,Li等人[18]提出了一種高效的基于身份的否認認證協(xié)議。更重要的是,他們給出了其協(xié)議的安全模型和形式化證明,并聲稱他們的協(xié)議滿足批量驗證的要求,而且比所有已知的基于身份的否認認證協(xié)議更快。2015年,Wu等人[19]提出了一種高效的基于身份的否認認證加密方案,該方案在不可否認性、保密性和否認認證性均得以保證。2019年,Huang等人[20]提出了一種有效的保護隱私的否認認證加密方案,該方案在不可否認性、機密性和否認認證性的基礎上對數(shù)據(jù)的完整性也提供了保證。2020 年,Kar[21]提出了一個無證書環(huán)境下的否認認證加密方案,該方案既沒有密鑰托管問題,也不需要公鑰證書。
為了達到一定的安全性,上述方案大多基于安全參數(shù)較大的對稱雙線性對,并且在方案中多次使用雙線性對,導致方案的計算效率下降。而SM9-IBE算法采用安全參數(shù)小的非對稱雙線性對,用戶的公鑰和私鑰分別由兩個不同的循環(huán)群生成,因此安全強度更高。
本文工作:首先定義SM9-DAIBE(SM9 identitybased encryption of deniable authentication)算法的安全模型,然后利用雙線性對提出具體的SM9-DAIBE算法。接下來,在DBDH(decisional bilinear Diffie-Hellman)困難問題假設下,在隨機預言模型中給出了算法的安全性證明。相對SM9-IBE 算法,本文提出的SM9-DAIBE算法可同時具有以下特性:
(1)保密性:該屬性確保只有目標接收者可以與發(fā)送者共享所傳輸?shù)南?,任何第三方都不能獲得所傳輸?shù)拿芪摹?/p>
(2)否認性:消息的發(fā)送者可以在之后否認其曾傳輸過該消息,甚至否認參與了通信。同時,目標接收者可以識別給定消息的真實來源,但是接收者不能向任何其他第三方證明這一事實。
(3)否認認證性:該屬性確保發(fā)送消息主體實際上是真正的發(fā)送者,而不是另一個第三方或?qū)κ帧?/p>
設A和B為比特串,A⊕B表示A和B的按位異或運算,A||B表示A和B的級聯(lián)。zP表示加法群中元素P的z倍,gr表示乘法群中元素g的r次冪。如果A是一個概率算法,那么y←A(x)表示輸入x,將算法A的輸出賦值給y。
表1 給出了SM9 算法中用到的密碼函數(shù)的符號表示。
表1 SM9算法的函數(shù)使用說明Table 1 Description of use of functions for SM9 algorithm
設N為素數(shù),令G1和G2為兩個N階加法循環(huán)群,GT為N階乘法循環(huán)群,P1和P2分別是群G1和G2的生成元。定義為雙線性對映射,則應滿足以下三條性質(zhì):
(1)雙線性性。對于?a,b∈[1,N-1],都有
(2)非退化性。若P1和P2不是單位元,則也不是單位元。
(3)可計算性。對于?P1,P2,存在一個高效的多項式時間算法計算
特別地,若G1=G2,稱為對稱雙線性群;否則稱為非對稱雙線性群。SM9標識密碼算法以非對稱雙線性群為構造基礎。令G(1λ)表示一個雙線性配對群生成算法。該算法以安全參數(shù)1λ作為輸入,以元組作為輸出。
DBDH假設:對于任意一個概率多項式時間攻擊者A,計算DBDH問題的概率都是可以忽略不計的,即Pr[0 ←A(Y)|γ=0]-Pr[0 ←A(Y)|γ=1]是可以忽略不計的。
本節(jié)回顧SM9-IBE 算法,該算法由以下幾個步驟構成:
(2)密鑰提取。給定用戶的身份標識ID,密鑰中心計算用戶密鑰deID=
(3)消息加密。對于消息M和身份標識ID,選擇一個隨機元素r∈,首先計算QB=Ppub-e+[H(ID)]P1,再計算密文C1=[r]QB,C2=K1⊕M,C3=Hv(C2||K2),其中K1||K2=KDF(Hv,C1||t||ID,|M|+v),t=ur。
(4)密文解密。對于密文(C1,C2,C3),首先根據(jù)私鑰deID計算,再根據(jù)KDF 計算K1||K2=KDF(Hv,C1||t′||ID,|M|+v)。
若Hv(C2||K2)=C3,則返回消息M=K1⊕C2;否則,返回錯誤符號▲。
SM9-DAIBE算法的系統(tǒng)模型包含以下三個實體(見圖1):
圖1 SM9-DAIBE系統(tǒng)模型Fig.1 System model for SM9-DAIBE
(1)密鑰生成中心(key generation center,KGC):負責生成系統(tǒng)參數(shù)和主私鑰,同時為用戶(包括數(shù)據(jù)發(fā)送者和數(shù)據(jù)接收者)提供私鑰。
(2)數(shù)據(jù)發(fā)送者(data sender,DS):對消息進行否認認證加密,形成認證器密文發(fā)送給數(shù)據(jù)接收者。
(3)數(shù)據(jù)接收者(data receiver,DR):從收到的認證器密文中計算出原始消息,并能確認消息的來源。
本節(jié)給出新的SM9-DAIBE 算法,該算法由以下四個算法組成:
(1)系統(tǒng)參數(shù)生成算法Setup(1λ)。該算法由密鑰生成中心負責執(zhí)行。輸入一個安全參數(shù)λ,通過運行算法返回系統(tǒng)參數(shù)param和系統(tǒng)主私鑰ke。密鑰生成中心秘密保存系統(tǒng)主私鑰ke,公開系統(tǒng)參數(shù)param。
(2)用戶密鑰提取算法Extract(ID)。該算法由用戶和密鑰生成中心交互執(zhí)行。用戶將自己的身份標識ID發(fā)送給密鑰生成中心,密鑰生成中心對收到的身份標識ID進行合法性驗證,驗證通過后用系統(tǒng)主私鑰計算身份標識ID對應的私鑰deID并通過安全信道發(fā)送給用戶。同時,用戶根據(jù)系統(tǒng)公開參數(shù)計算自己的公鑰并公開。
(3)否認認證加密算法DAEnc(M,deS,IDS,IDR)。該算法由數(shù)據(jù)發(fā)送者負責執(zhí)行。根據(jù)消息M、發(fā)送者私鑰deS、發(fā)送者和接收者的身份標識IDS和IDR,數(shù)據(jù)發(fā)送者計算消息M的認證器密文δ后將其發(fā)送給數(shù)據(jù)接收者。
(4)否認認證解密算法DADec(δ,deR,IDR)。該算法由數(shù)據(jù)接收者負責執(zhí)行。收到數(shù)據(jù)發(fā)送者發(fā)送的認證器密文δ后,數(shù)據(jù)接收者根據(jù)自己的私鑰deR和身份IDR,恢復出消息M,同時確認消息是否為數(shù)據(jù)發(fā)送者發(fā)送。若是,接收消息M;否則,輸出錯誤符號▲。
(1)SM9-DAIBE算法的保密性
SM9-DAIBE算法的保密性的安全性概念稱為抗適應性選擇密文攻擊的密文不可區(qū)分性(ciphertext indistinguishability against adaptive chosen ciphertext attacks,IND-DAIBE-CCA)。下面給出IND-DAIBECCA的游戲定義。
初始化階段算法B 輸入一個安全參數(shù)λ,運行系統(tǒng)參數(shù)生成算法Setup(1λ),返回系統(tǒng)參數(shù)param和系統(tǒng)主私鑰ke,其中系統(tǒng)參數(shù)param發(fā)送給攻擊者A,系統(tǒng)主私鑰ke秘密保存。
詢問階段1A以如下自適應方式執(zhí)行多項式有界數(shù)量的用戶密鑰提取查詢、否認認證加密查詢和否認認證解密查詢。
①用戶密鑰提取查詢。當攻擊者A要查詢標識ID的私鑰時,挑戰(zhàn)者B 運行用戶密鑰提取算法Extract(ID)獲取對應用戶的私鑰deID,并將其發(fā)送給攻擊者A。
②否認認證加密查詢。攻擊者A選擇一個發(fā)送者的身份標識IDi、一個接收者的身份標識IDj、一個明文M,并將它們發(fā)送給挑戰(zhàn)者B。挑戰(zhàn)者B 首先運行用戶密鑰提取算法Extract(ID)獲得發(fā)送者IDi的私鑰,然后運行否認認證加密算法DAEnc(M,deS,IDS,IDR),將計算結果發(fā)送給攻擊者A。
③否認認證解密查詢。攻擊者A 提交一個DAEnc 認證器密文δ和一個接收者的身份標識IDj給挑戰(zhàn)者B。挑戰(zhàn)者B 首先運行用戶密鑰提取算法Extract(ID)獲得接收者IDj的私鑰,然后運行否認認證解密算法DADec(δ,deR,IDR),將計算結果發(fā)送給攻擊者A。
挑戰(zhàn)在攻擊者A決定詢問階段1 結束時,攻擊者A輸出兩個等長的明文M0、M1,以及之前沒有做過用戶密鑰提取查詢的兩個標識IDS、IDR一并發(fā)送給挑戰(zhàn)者B。挑戰(zhàn)者B 從0 和1 中隨機選擇一位記為γ,將δ=DAEnc(Mγ,deS,IDS,IDR)的計算結果發(fā)送給攻擊者A作為挑戰(zhàn)。
詢問階段2攻擊者A可以像詢問階段1一樣發(fā)出更多的多項式有界查詢,但是在這個階段,攻擊者A不能對身份標識IDS和IDR進行用戶密鑰提取查詢。同時,攻擊者A也不能對挑戰(zhàn)δ進行否認認證解密查詢。
猜測最終,攻擊者A輸出一比特γ′作為對γ的猜測。如果γ′=γ,表明游戲獲勝。
如果對于任意多項式時間攻擊者A,其游戲獲勝的優(yōu)勢是可忽略的,即,其中negl(λ)為可忽略函數(shù),則SM9-DAIBE算法滿足保密性。
(2)SM9-DAIBE算法的否認認證性
此處借用數(shù)字簽名中抵抗適應性選擇消息攻擊的不可偽造性的概念來定義SM9-DAIBE 算法的否認認證性的安全概念。然而,SM9-DAIBE 算法中的安全概念與數(shù)字簽名算法的安全概念有本質(zhì)的不同。這是因為在數(shù)字簽名中,只有具有正確私鑰的發(fā)送方才有能力生成有效的簽名,而在SM9-DAIBE算法中,發(fā)送方和接收方都有能力生成有效的SM9-DAIBE 認證器密文。SM9-DAIBE 算法的不可偽造性的安全性概念稱為抗適應性選擇消息攻擊的否認認證性(deniable authentication against adaptive chosen messages attacks,DA-DAIBE-CMA)。下面給出DADAIBE-CMA的游戲定義。
初始化階段算法B 輸入一個安全參數(shù)λ,運行系統(tǒng)參數(shù)生成算法Setup(1λ),返回系統(tǒng)參數(shù)param和系統(tǒng)主私鑰ke,其中系統(tǒng)參數(shù)param發(fā)送給攻擊者X,系統(tǒng)主私鑰ke秘密保存。
攻擊階段和前面的IND-DAIBE-CCA的游戲定義一致,攻擊者X 以自適應方式執(zhí)行多項式有界數(shù)量的用戶密鑰提取查詢、否認認證加密查詢和否認認證解密查詢。
偽造階段攻擊者X 輸出一個DAEnc 認證器δ?和兩個身份標識IDS和IDR。如果同時滿足以下三個條件,視為攻擊者X 游戲獲勝。
①δ?是一個對于發(fā)送方IDS和接收方IDR有效的認證器,也就是說,DADec(δ?,deR,IDR)的結果不是一個錯誤符號▲。
②攻擊者X 沒有對IDS和IDR做過用戶密鑰提取查詢。
③攻擊者X 沒有對消息M?和身份標識IDS和IDR做過否認認證加密查詢。
這里把攻擊者X 的優(yōu)勢定義為它在游戲中獲勝的概率。為了實現(xiàn)SM9-DAIBE算法的否認性,在以上條件的第二步需要攻擊者X 對IDS和IDR均沒有做過用戶密鑰提取查詢,原因是接收者也可以生成一個有效的DAEnc認證器密文。
SM9-DAIBE算法的具體構造如下:
(1)系統(tǒng)參數(shù)生成算法Setup(1λ)。在輸入安全參數(shù)λ后,該算法執(zhí)行以下操作:
③密鑰生成中心生成系統(tǒng)參數(shù)param=(G,Ppub-e,H,hid)并公開,同時秘密保存系統(tǒng)主私鑰ke。
(2)用戶密鑰提取算法Extract(ID)。在輸入用戶標識ID后,該算法執(zhí)行以下操作:
①給定用戶標識ID,密鑰生成中心計算用戶的私鑰deID=[ke+H(ID)]P2。
②密鑰生成中心通過安全信道將用戶私鑰deID發(fā)送給用戶。
③用戶ID根據(jù)系統(tǒng)公開參數(shù)計算自己公鑰QID=Ppub-e+[H(ID)]P1。
注:本文假定發(fā)送者和接收者的公私鑰對分別是(QS,deS)和(QR,deR)。
(3)否認認證加密算法DAEnc(M,deS,IDS,IDR)。在輸入消息M、發(fā)送者私鑰deS、發(fā)送者和接收者的身份標識IDS和IDR后,該算法執(zhí)行以下操作:
②利用密鑰派生函數(shù)KDF,計算K1||K2=KDF(Hv,C1||t||IDR,|M||IDS|+v),其中K1和K2的長度分別為|M||IDS|比特和v比特。
③數(shù)據(jù)發(fā)送者計算C2=K1⊕(M||IDS),C3=Hv(C2||K2)。
④數(shù)據(jù)發(fā)送者將DAEnc認證器密文δ=(C1,C2,C3)發(fā)送給數(shù)據(jù)接收者。
(4)否認認證解密算法DADec(δ,deR,IDR):在輸入認證器密文δ、接收者私鑰deR、接收者的身份IDR后,該算法執(zhí)行以下操作:
①數(shù)據(jù)接收者根據(jù)自己的私鑰deR計算t′=
②數(shù)據(jù)接收者利用KDF 計算出K1||K2=KDF(Hv,C1||t′||IDR,|M||IDS|+v)。
③若Hv(C2||K2)=C3,返回M||IDS=K1⊕C2,從而恢復出消息M;否則,返回錯誤符號▲。
正確性分析:由于C1=[r]QS,QID=Ppub-e+[H(ID)]P1,deID=[ke+H(ID)]P2,有
因此,數(shù)據(jù)接收者可以計算出正確的中間密鑰K1和K2,進而恢復出原始消息M。
本算法實現(xiàn)了否認性,由于接收者也可以生成有效的DAEnc 認證器密文,而該認證器密文無法與發(fā)送者的認證器密文進行區(qū)分,原因如下:
(1)在收到發(fā)送者發(fā)來的DAEnc 認證器密文δ=(C1,C2,C3)后,接收者通過運行否認認證解密算法,獲得恢復后的消息M。之后接收者可以執(zhí)行以下操作:
本文所提SM9-DAIBE 算法在隨機預言模型下滿足抗適應性選擇密文攻擊的密文不可區(qū)分性。
定理1在隨機預言模型下,若攻擊者A能以優(yōu)勢贏得密文不可區(qū)分性游戲(至多進行qH次哈希詢問),則存在一個算法B 能利用A 以的優(yōu)勢解決DBDH問題。
證明可以通過2.3 節(jié)中定義的密文不可區(qū)分性IND-DAIBE-CCA 游戲來證明本文算法的保密性。若存在一個攻擊者A可以破解這個算法,則可構造一個算法B 來解決DBDH問題。不妨設算法B 要解決的一個DBDH 實例元組為:Y=(P1,[x]P1,[y]P1,P2,[y]P2,[z]P2,Z)。在下面的游戲中,B 扮演攻擊者A的挑戰(zhàn)者。
初始化階段算法B 輸入一個安全參數(shù)λ,運行系統(tǒng)參數(shù)生成算法Setup(1λ),生成系統(tǒng)參數(shù)param=(G,Ppub-e,H,hid),其中為雙線性配對群,Ppub-e=[ke]P1且ke未知。挑戰(zhàn)者將系統(tǒng)參數(shù)param發(fā)送給A。
詢問階段1A執(zhí)行多項式有界次數(shù)的以下查詢,B 對A的查詢做如下回答:
(1)哈希查詢OH(IDi)。首先,B 維持一個形如(IDi,ni)、初始為空集的二元列表LH。其次,B 選擇兩個不同的數(shù)N1,N2∈{1,2,…,qH}。如果IDi是A的第N1(i=N1)次詢問,則B 回答QN1=Ppub-e+[x]P1。如果IDi是A 的第N2(i=N2) 次詢問,則B 回答對于一個由A給定的標識IDi(i∈{1,2,…,qH}且i?{N1,N2}),B 首先檢查列表LH是否存在元素(IDi,ni)。
(2)KDF 查詢OK(IDi,ti,li)。首先B 建立一個形如(IDi,ti,Ki)、初始為空集的列表LK。當A 詢問(IDi,ti,li)的輸出結果時,B 首先檢查LK中是否存在形如(IDi,ti,Ki)的三元組。
①若存在,當|Ki|≥li時,返回Ki的前l(fā)i比特。否則,隨機選取li-|Ki|長度的比特串K,返回Ki||K給A,同時替換(IDi,ti,Ki)為(IDi,ti,Ki||K)。
②若不存在,則B 詢問列表L1(見用戶密鑰提取查詢)中的每個元素對應的哈希列表元素(IDi,dei)。根據(jù)dei的取值,B 隨機選取長度為li的比特串Ki,返回給A,并將(IDi,ti,Ki)添加至列表LK中。
(3)用戶密鑰提取查詢。首先,B 建立一個形如(IDi,dei)、初始為空集的二元哈希列表L1。其次,B選擇一個隨機元素r∈。當A詢問身份標識IDi的私鑰時,B 首先查詢列表L1中是否存在元素(IDi,dei),并以如下形式返回對應的dei給A。
①若存在,則B 將dei返回給A。
②若不存在:
如果IDi是第N1或N2(i∈{N1,N2})次詢問,則游戲失敗終止。
否則,B 首先詢問OH(IDi)對應的哈希列表是否包含元素(IDi,ni)。若包含,則B 計算dei=[r+ni]P2,將結果返回給A,并將(IDi,dei)更新至列表L1中。
若不包含,則B 執(zhí)行哈希查詢OH(IDi),選擇一個隨機數(shù)ni∈,將dei=[r+ni]P2的計算結果返回給A,同時更新LH、L1兩個列表。
(4)否認認證加密查詢。A向B 提交發(fā)送者的身份標識IDj、接收者的身份標識IDk和明文M。如果j?{N1,N2},B 通過查詢列表L1獲得身份標識IDj對應的私鑰,若不存在,則通過用戶密鑰提取查詢和哈希查詢OH(IDi)生成用戶IDj的公私鑰對,接著運行否認認證加密算法,計算δ=DAEnc(M,dej,IDj,IDk)的結果發(fā)送給A。如果j∈{N1,N2},游戲失敗終止。
(5)否認認證解密查詢。A 向B 提交一個DAEnc 認證器δ=(C1,C2,C3) 和接收者的身份標識IDk。如果k?{N1,N2},B 查詢列表L1是否存在標識IDk的私鑰dek。若不存在,則通過用戶密鑰提取查詢和哈希查詢OH(IDi)生成用戶IDk的私鑰,運行否認認證解密算法,將恢復出的消息M發(fā)送給A。如果k∈{N1,N2},游戲失敗終止。
挑戰(zhàn)在A決定詢問階段1結束時,A輸出兩個等長的明文M0、M1以及之前沒有做過密鑰提取查詢的兩個身份標識IDS、IDR一并發(fā)送給B。如果A在游戲中向B 詢問過IDS和IDR的私鑰,則B 失敗,游戲終止。同時,若IDS和IDR均不是(S,R?{N1,N2}),則B 仍失敗,游戲終止。為了計算DAEnc認證器密文,B 執(zhí)行以下操作:
(1)B 通過用戶密鑰提取查詢和哈希查詢OH(IDi)生成身份標識IDS的私鑰。
詢問階段2類似于詢問階段1,A允許繼續(xù)詢問私鑰和密文解密等,但A不能對身份標識IDS和IDR做用戶密鑰提取查詢。與此同時,A也不能對挑戰(zhàn)δ做否認認證解密查詢。
猜測最終A輸出一位。如果B 輸出0,否則輸出1。
用F表示A對挑戰(zhàn)身份的猜測不正確,此時模擬會終止。
本文所提SM9-DAIBE 算法在隨機預言模型下滿足抗適應性選擇消息攻擊的否認認證性。
定理2在隨機預言模型下,若攻擊者X 在一定時間內(nèi)贏得DA-DAIBE-CMA游戲,則存在一個高效的多項式時間算法解決DBDH問題。
證明此處通過2.3節(jié)定義的挑戰(zhàn)者B 和攻擊者X 之間的DA-DAIBE-CMA 游戲證明本文算法的否認認證性。如果存在一個攻擊者X 可以打破這個算法,那么可以使用攻擊者X 來構造一個算法B,進而解決DBDH問題。類似定理1中保密性的證明,游戲的過程描述如下:
初始化階段算法B 輸入一個安全參數(shù)λ,運行系統(tǒng)參數(shù)生成算法Setup(1λ),返回系統(tǒng)參數(shù)param=(G,Ppub-e,H,hid),其中為雙線性配對群,Ppub-e=[ke]P1且ke未知。X 將系統(tǒng)參數(shù)param發(fā)送給攻擊者X 。
攻擊階段與定理1 證明中詢問階段1 的查詢一致,X 執(zhí)行多項式有界數(shù)量的哈希查詢、KDF 查詢、用戶密鑰提取查詢、否認認證加密查詢和否認認證解密查詢等。
目前沒有公認的解決DBDH困難問題的有效算法,因此實際上不存在這樣的攻擊者X,證明該算法具有否認認證性。證畢。
本章從理論分析和實驗分析兩方面出發(fā),將本文所設計的SM9-DAIBE 算法與文獻[5,19,21]中算法進行比較。
表2 比較了4 個算法的參數(shù)大小和主要運算時間。符號說明:N表示用戶的密文數(shù)量,“Exp”表示指數(shù)運算,“Pairing”表示雙線性對運算。在比較各算法所需的運算操作次數(shù)時,忽略了除指數(shù)運算和配對運算之外的操作。SM9-DAIBE 與文獻[5,19,21]中的算法運算均需基于雙線性對運算。不妨假定|G1|=|G2|=|GT|=1 024 bit,|ID|=160 bit,|M|=160 bit以及哈希值|H|=160 bit,因此可計算出文獻[19]的通信規(guī)模為|ID|+|G1|+|M|+|G2|=2 368 bit,文獻[21]的通信規(guī)模為|ID|+|G1|+|M|+|G2|+|H|=2 528 bit,文獻[5]和本文算法的通信規(guī)模為|ID|+|G1|+|M|+|G2|+|GT|=3 392 bit。圖2給出了這4個算法通信規(guī)模的具體條形圖。
圖2 通信規(guī)模比較Fig.2 Comparison of communication scale
表2 性能比較Table 2 Performance comparison
通過表2 和圖2 的比較可以看到,本文SM9-DAIBE 算法保持了原始SM9-IBE 算法[5]的系統(tǒng)公鑰和私鑰的選取方式。與文獻[19,21]相比,對于用戶加密和解密算法,文獻[19]共需要4次雙線性配對運算,文獻[21]共需要3 次雙線性配對運算,而本文僅需要2次雙線性配對運算。一般來講,雙線性配對運算較其他運算耗時較多。因此,本文算法相比文獻[19,21]的算法在用戶加密和解密等方面具有一定的優(yōu)勢。并且本文算法采用安全參數(shù)小的非對稱雙線性對,用戶的公私鑰分別由兩個不同的循環(huán)群生成,安全強度更高。正因此,本文算法中增加了乘法循環(huán)群GT,這使得該算法在通信開銷上相較于文獻[19,21]中的算法會有所增加。
本節(jié)通過仿真實驗將本文算法與文獻[5,19,21]在發(fā)送方計算成本(CS)和接收方計算成本(CR)兩方面進行對比。實驗環(huán)境為榮耀筆記本(3.20 GHz的64 位AMD Ryzen 7 5800H with Radeon Graphics處理器、16 GB內(nèi)存(RAM)、Windows 10操作系統(tǒng)),使用PBC庫[23]中的A型配對實現(xiàn)了4個算法,并獲得圖3所示的實驗結果。A型配對構造在嵌入度為2的曲線y2≡x3+x(modp)上(其中p≡3 mod 4 且為素數(shù))。
圖3 主要計算成本對比Fig.3 Comparison of main calculation cost
從圖3 可以看到:對于文獻[5],CS 是45.809 ms,CR 是41.953 ms;對于文獻[19],CS 是67.953 ms,CR是54.074 ms;對于文獻[21],CS 是78.613 ms,CR 是30.024 ms;對于本文算法,CS 是45.681 ms,CR 是42.706 ms。本文算法與原始SM9-IBE算法的發(fā)送方和接收方的計算成本相當;相對于文獻[19]的算法,發(fā)送方和接收方的總計算成本減少了28%;相對于文獻[21]的算法,發(fā)送方和接收方的總計算成本減少了18%,計算性能更優(yōu)。
本文將國密SM9 算法和否認認證協(xié)議相結合,提出SM9-DAIBE 算法,證明算法同時滿足否認性、保密性和否認認證性。結果表明,該算法所具有的否認認證屬性,對發(fā)送者的身份隱私保護具有很高的實用性。但由于提出的解決方案是基于非對稱雙線性對,雖然基于非對稱雙線性對安全強度更高,但是相應也增加了通信開銷。在后續(xù)工作中,可以考慮進一步減小通信開銷。