熊 虎 林 燁 姚 婷
(電子科技大學(xué)信息與軟件工程學(xué)院 成都 610054)
(網(wǎng)絡(luò)與數(shù)據(jù)安全四川省重點(diǎn)實(shí)驗(yàn)室(電子科技大學(xué)) 成都 610054)
(xionghu.uestc@gmail.com)
云計(jì)算的快速發(fā)展帶動(dòng)了云存儲(chǔ)的普及,越來(lái)越多的用戶和企業(yè)選擇將數(shù)據(jù)存儲(chǔ)在云服務(wù)器中[1].云服務(wù)器通常由不可信第三方維護(hù)和管理,存在諸多安全隱患.如果將數(shù)據(jù)直接存儲(chǔ)在云端,可能會(huì)使數(shù)據(jù)被未授權(quán)實(shí)體訪問(wèn),從而導(dǎo)致隱私泄露.一種保護(hù)數(shù)據(jù)隱私和實(shí)現(xiàn)安全數(shù)據(jù)共享的方式是采用公鑰加密算法將數(shù)據(jù)加密后再存儲(chǔ)到云服務(wù)器[2],但這種方式極大地阻礙了數(shù)據(jù)的可用性.當(dāng)用戶對(duì)存儲(chǔ)在云服務(wù)器的加密數(shù)據(jù)進(jìn)行搜索時(shí),最直接的方法是將所有加密數(shù)據(jù)下載到本地后執(zhí)行解密再對(duì)明文信息進(jìn)行搜索,顯然這種方法極其繁瑣且低效.
為了解決數(shù)據(jù)機(jī)密性和可搜索性之間的矛盾,Boneh 等人[3]提出了支持關(guān)鍵詞檢索的公鑰加密的概念.在PKEKS 系統(tǒng)中,發(fā)送者利用接收者的公鑰和關(guān)鍵詞生成關(guān)鍵詞密文,并附在對(duì)應(yīng)的文件密文后上傳到云服務(wù)器.接收者可以利用自己的私鑰和關(guān)鍵詞生成陷門上傳至云服務(wù)器,隨后云服務(wù)器利用陷門對(duì)關(guān)鍵詞密文執(zhí)行檢索以判斷關(guān)鍵詞密文是否包含陷門中嵌入的關(guān)鍵詞.由于在檢測(cè)過(guò)程中云服務(wù)器無(wú)法獲取密文對(duì)應(yīng)的關(guān)鍵詞信息以及接收者私鑰.大量的PKEKS 方案被提出以進(jìn)一步提升公鑰可搜索加密的安全性[4-5]、效率[6-7]和功能[8].盡管PKEKS 支持對(duì)于密文的搜索功能,但其存在功能上的限制:無(wú)法對(duì)不同公鑰加密的2 條信息進(jìn)行檢索.同時(shí)還存在著嚴(yán)重的安全隱患:關(guān)鍵詞空間遠(yuǎn)小于密鑰空間,攻擊者可以借此實(shí)施關(guān)鍵詞猜測(cè)攻擊.
為了解決上述問(wèn)題,Yang 等人[9]在2010 年提出了支持等式測(cè)試的公鑰加密(public-key encryption with equality test,PKEET)方案.PKEET 允許任何用戶對(duì)不同公鑰加密生成的密文進(jìn)行對(duì)比以判斷其中是否包含相同的明文.由于對(duì)比的密文空間遠(yuǎn)大于密鑰空間,關(guān)鍵詞猜測(cè)攻擊無(wú)法對(duì)PKEET 系統(tǒng)生效.受Yang 等人[9]的啟發(fā),國(guó)內(nèi)外學(xué)者圍繞PKEET 的授權(quán)測(cè)試[10-11]、通用構(gòu)造[12]和應(yīng)用場(chǎng)景(無(wú)證書(shū)[13]、簽密[14]、異構(gòu)[15])等展開(kāi)大量研究,一系列具有等式測(cè)試功能的加密方案被陸續(xù)提出.在傳統(tǒng)支持等式測(cè)試的公鑰加密方案中,公鑰是一個(gè)不可讀的字符串,需要公鑰基礎(chǔ)設(shè)施[16](public key infrastructure,PK?)系統(tǒng)來(lái)簽發(fā)公鑰證書(shū)以綁定用戶的身份與公鑰.公鑰證書(shū)包括用戶的身份信息、權(quán)威機(jī)構(gòu)的簽名和各種參數(shù),以結(jié)構(gòu)化數(shù)據(jù)的形式存儲(chǔ).這種復(fù)雜且昂貴的證書(shū)管理方式在實(shí)際應(yīng)用場(chǎng)景中帶來(lái)了棘手的證書(shū)管理問(wèn)題.基于此,Ma[17]受標(biāo)識(shí)密碼體制思想啟發(fā)[18],構(gòu)造了支持等式測(cè)試的標(biāo)識(shí)加密(identity-based encryption with equality test,?BEET)體制.在?BEET 中,用戶的公鑰根據(jù)其身份信息生成,而用戶的私鑰由私鑰生成中心(private key generator,PKG)構(gòu)建.
目前已有的?BEET 方案雖然避免了證書(shū)管理的問(wèn)題,卻存在著嚴(yán)重的安全隱患:大部分?BEET 方案都難以抵抗?jié)B透攻擊.斯諾登事件表明[19],攻擊者可以在正常使用條件下秘密設(shè)置后門以泄露用戶隱私.受此啟發(fā),Bellare 等人[20]提出的算法篡改攻擊(algorithm-substitution attacks,ASA)表明攻擊者可以非法占據(jù)用戶的個(gè)人設(shè)備來(lái)篡改加密算法,從被篡改的密文中獲取明文信息.具體來(lái)說(shuō),Bellare 等人[20]構(gòu)建了顛覆加密(subverting encryption)框架,對(duì)ASA的受害者實(shí)施?V 篡改攻擊(?V-replacement attacks)和偏密文攻擊(the biased-ciphertext attack).攻擊者利用顛覆密鑰篡改隨機(jī)化輸入?V,繼而跟蹤篡改密文以獲取明文.目前大量的無(wú)狀態(tài)隨機(jī)化密碼算法被證明幾乎無(wú)法抵抗這類ASA.因此,一旦用戶遭遇ASA,云服務(wù)器上的所有加密數(shù)據(jù)都有被泄露的風(fēng)險(xiǎn).考慮到ASA 的危害性,密碼逆向防火墻(cryptographic reverse firewalls,CRF)的概念由Mironov 等人[21]在斯諾登事件之后提出.CRF 可以被認(rèn)為是部署在用戶與外部世界的一個(gè)實(shí)體,通過(guò)重隨機(jī)化用戶發(fā)送和接收的信息將其映射到與原始輸出相同的空間中,達(dá)到抵抗隱私泄露的作用.CRF 具有3 個(gè)性質(zhì):維持功能性、保留安全性和抵抗?jié)B透性.到目前為止,CRF 已被成功應(yīng)用于密鑰協(xié)商協(xié)議[22]、基于屬性的加密體制[23]和基于簽名的不經(jīng)意電子信封[24].將CRF 部署在云服務(wù)器與用戶之間,分別負(fù)責(zé)用戶密文與陷門的重隨機(jī)化.由于用戶輸出的是重隨機(jī)化結(jié)果,即便算法遭到篡改,用戶隱私也不會(huì)泄露.基于此,有必要為?BEET 構(gòu)建CRF.
另外,目前?BEET 都是基于國(guó)外密碼算法設(shè)計(jì)且存在計(jì)算與通信開(kāi)銷大的問(wèn)題,還沒(méi)有出現(xiàn)支持國(guó)產(chǎn)商用密碼算法的高效等式測(cè)試方案.SM9 作為一種具有效率優(yōu)勢(shì)的雙線性對(duì)標(biāo)識(shí)密碼算法(identitybased cryptographic algorithm),可以良好地拓展至?BEET 領(lǐng)域中.2016 年我國(guó)國(guó)家密碼管理局正式發(fā)布SM9 密碼算法,其相關(guān)標(biāo)準(zhǔn)為“GM/T 0044—2016 SM9 標(biāo)識(shí)密碼算法”.SM9 標(biāo)識(shí)密碼算法主要包括4個(gè)部分:數(shù)字簽名算法、密鑰交換協(xié)議、密鑰封裝機(jī)制和標(biāo)識(shí)加密算法.其中SM9 標(biāo)識(shí)加密算法于2021年正式成為國(guó)標(biāo)(?SO/?EC 18 033-5:2015/AMD 1:2021).雖然SM9 在密碼技術(shù)和網(wǎng)絡(luò)安全領(lǐng)域占據(jù)越來(lái)越重要的地位,但關(guān)于SM9 在云環(huán)境安全下的研究卻寥寥無(wú)幾.因此,為了實(shí)現(xiàn)我國(guó)密碼算法國(guó)產(chǎn)自主,提高其在信息安全領(lǐng)域的核心競(jìng)爭(zhēng)力,亟需推進(jìn)國(guó)密算法在云計(jì)算場(chǎng)景中的研究應(yīng)用.基于此,本文提出了一種支持等式測(cè)試并具有密碼逆向防火墻的SM9標(biāo)識(shí)加密方案(SM9 identity-based encryption scheme with equality test and cryptographic reverse firewalls,SM9-?BEET-CRF).本文的貢獻(xiàn)有3 點(diǎn):
1)本文將SM9 標(biāo)識(shí)加密算法應(yīng)用于等式測(cè)試這一密碼學(xué)原語(yǔ),提出了支持等式測(cè)試的SM9 標(biāo)識(shí)密碼方案(SM9 identity-based encryption scheme with equality test,SM9-?BEET).利用SM9 是標(biāo)識(shí)密碼算法這一性質(zhì),避免了傳統(tǒng)等式測(cè)試算法中證書(shū)管理的問(wèn)題.與傳統(tǒng)?BEET 方案相比,具有更強(qiáng)的安全性和計(jì)算開(kāi)銷的優(yōu)勢(shì).同時(shí),豐富國(guó)產(chǎn)商用密碼算法在云計(jì)算領(lǐng)域的研究.
2)解決傳統(tǒng)?BEET 體制難以抵抗?jié)B透攻擊的問(wèn)題.本文將CRF 部署在用戶與云服務(wù)器之間的上行信道,分別實(shí)現(xiàn)用戶密文、陷門的重隨機(jī)化.攻擊者即使非法占據(jù)用戶設(shè)備,由于其輸出結(jié)果要經(jīng)過(guò)CRF 的處理,無(wú)法造成明文信息泄露.
3)本文實(shí)現(xiàn)了形式化的安全性證明.嚴(yán)謹(jǐn)?shù)陌踩苑治鲎C明其滿足選擇密文攻擊下的不可區(qū)分性(?ND-CCA)和選擇密文攻擊下的單向性(OW-CCA).CRF 的設(shè)置使其具備抵抗算法篡改攻擊的能力.經(jīng)過(guò)大量的實(shí)驗(yàn)仿真證明,SM9-?BEET-CRF 在計(jì)算與通信開(kāi)銷上具有一定的優(yōu)勢(shì),適用于云計(jì)算場(chǎng)景.相關(guān)工作有:
1)支持等式測(cè)試的公鑰加密體制.支持等式測(cè)試的公鑰加密方案首先由Yang 等人[9]在2010 年提出.該方案允許任何用戶對(duì)不同公鑰加密的密文進(jìn)行比較,解決了關(guān)鍵詞檢索公鑰加密方案的局限性.接下來(lái),Tang[25]為PKEET 提出了具有細(xì)粒度的授權(quán)機(jī)制,以確保只有被授權(quán)的用戶才有能力執(zhí)行等式測(cè)試.此外,Tang[10]提出了混合粒度授權(quán)的支持等式測(cè)試的公鑰加密方案(all-or-nothing PKE-ET,AoNPKE-ET)來(lái)實(shí)現(xiàn)粗細(xì)粒度授權(quán).然而,在實(shí)際中云服務(wù)器與用戶需要交互來(lái)授權(quán),導(dǎo)致了方案的不可拓展性.為應(yīng)對(duì)這一挑戰(zhàn),Tang[26]和Ma[11]分別提出了帶有靈活授權(quán)機(jī)制的等式測(cè)試方案,其基本思想是用戶單獨(dú)對(duì)云服務(wù)器進(jìn)行授權(quán).為了解決PKEET 中的密鑰管理問(wèn)題,Ma[17]將標(biāo)識(shí)加密體制集成到PKEET 中,提出一種?BEET 方案.Qu 等人[13]提出的無(wú)證書(shū)等式測(cè)試加密方案(certificateless-based encryption with equality test,CLEET),旨在同時(shí)避免密鑰托管和證書(shū)管理的問(wèn)題.Wang 等人[14]將簽密的概念引入等式測(cè)試中,有效降低了計(jì)算和通信開(kāi)銷.Xiong等人[15]提出的異構(gòu)簽密等式測(cè)試方案(heterogeneous signcryption scheme with equality test,HSC-ET),則實(shí)現(xiàn)了?BE 與PKE 的異構(gòu)等式測(cè)試系統(tǒng).目前已有的PKEET 體制難以抵抗?jié)B透攻擊.
2)密碼逆向防火墻.斯諾登事件爆發(fā)后,為了保護(hù)用戶隱私和維持密碼方案安全性,Mironov 等人[21]提出CRF 的概念.CRF 位于用戶計(jì)算機(jī)與外部世界之間,通過(guò)修改用戶設(shè)備輸入和輸出,為受到篡改算法攻擊的用戶提供安全保護(hù).2016 年,Dodis 等人[22]設(shè)計(jì)了一種具有逆向防火墻的消息傳輸協(xié)議,縮短公鑰交換輪數(shù)至4 輪.同年,Chen 等人[24]基于可延展的平滑映射哈希函數(shù)(smooth projective Hash function,SPHF)為多個(gè)密碼協(xié)議設(shè)計(jì)了CRF 框架.2018 年,Ma 等人[23]將逆向防火墻的概念引入屬性基加密體制,提出了一種基于密文在線/離線屬性的加密算法.2019 年,Zhou 等人[27]提出具有逆向防火墻的標(biāo)識(shí)加密體制(identity-based encryption with cryptographic reverse firewalls,?BE-CRF),為?BE 設(shè)計(jì)了2 種CRF方案.目前還不存在具有逆向防火墻的PKEET 方案.
給定3 個(gè)循環(huán)群G1,G2,GT,它們的階均為素?cái)?shù)N,P1為G1的生成元,P2為G2的生成元,存在非對(duì)稱雙線性對(duì)e:G1×G2→GT,滿足3 個(gè)條件:
1)雙線性.對(duì)任意P∈G1,Q∈G2,a,b∈ZN,有e([a]P,[b]Q)=e(P,Q)ab.
2)非退化性.e(P1,P2)≠1.
3)可計(jì)算性.對(duì)任意P∈G1,Q∈G2,存在有效 的算法計(jì)算e(P,Q).
BDH 假設(shè)首先由Boneh 等人[28]在對(duì)稱雙線性配對(duì)中提出,然后被拓展到非對(duì)稱雙線性對(duì)中.本文使用Boyen 等人[29]在非對(duì)稱雙線性對(duì)中推廣的BDH假設(shè).
1)BDH 問(wèn) 題.給 定 (P1,P2,[a]P1,[a]P2,[b]Pi,[c]Pj),其中i,j∈{1,2},計(jì)算e(P1,P2)abc是困難的.
2)BDH 假設(shè).給定一個(gè)BDH 問(wèn)題實(shí)例,不存在一個(gè)PPT 攻擊者 A具有不可忽略的優(yōu)勢(shì)計(jì)算出e(P1,P2)abc.其中 A的優(yōu)勢(shì)被定義為
CRF 位于用戶計(jì)算機(jī)與外部實(shí)體之間,只能修改用戶的輸入輸出消息.對(duì)于用戶而言,他們并不知道CRF 的存在.
CRF 是一種具有狀態(tài)的算法 W,它以當(dāng)前狀態(tài)和消息作為輸入,輸出更新后的狀態(tài)和消息.對(duì)于初始狀態(tài)為 σ的參與方P=(receive,next,output)和逆向防火墻 W,它們的組成被定義為
當(dāng)組成方 W?P參與協(xié)議時(shí),W的狀態(tài)被初始化為系統(tǒng)公開(kāi)參數(shù)params,如果 W是與參與方P共同組成的,則我們稱 W為參與方P的逆向防火墻.
顯然,參與方P希望獲得管理并部署多臺(tái)防火墻的權(quán)力.這種多個(gè)防火墻的組合(W?W?…?W?P)只會(huì)增強(qiáng)系統(tǒng)的安全性,而不會(huì)破壞其初始協(xié)議的功能.
定義1.CRF 具有維持功能性.對(duì)任意逆向防火墻 W與參與方P,令當(dāng)任意多項(xiàng)式邊界k≥2 時(shí),令在k≥1的協(xié)議P 中,如果維持了參與方Pi的功能 F,也就是說(shuō)當(dāng)時(shí),CRF 具有維持功能性.
定義2.CRF 具有保留安全性.對(duì)滿足安全性 S,功能 F 的協(xié)議 P 與逆向防火墻 W:
定義3.CRF 具有抵抗?jié)B透性.CRF 具有阻止參與方P對(duì)消息篡改泄露的能力.使用Mironov 等人[21]定義的泄露游戲LEAK(P,P,J,W,λ),如圖1 所示:P代表密碼協(xié)議,P為協(xié)議正常參與方,J代表被敵手控制的協(xié)議參與方,W為逆向防火墻,λ表示系統(tǒng)參數(shù)代表被敵手控制的協(xié)議參與方,為協(xié)議運(yùn)行后的狀態(tài),敵手在游戲LEAK中的優(yōu)勢(shì)被定義為
Fig.1 ?llustration of LEAK圖1 LEAK 示意圖
與定義2 相同,本文主要討論CRF 對(duì)于不破壞協(xié)議功能的ASA 安全性.
本節(jié)我們給出了本文方案的系統(tǒng)模型SMP-?BEETCRF、形式化定義,并且通過(guò)考慮3 種不同的敵手來(lái)定義安全模型.
系統(tǒng)模型如圖2 所示,在SM9-?BEET-CRF 中,存在5 種實(shí)體.
Fig.2 ?llustration of SM9-?BEET-CRF圖2 SM9-?BEET-CRF 示意圖
1)數(shù)據(jù)上傳者.生成密文并將其上傳到云服務(wù)器的實(shí)體.
2)數(shù)據(jù)接收者.可以從云服務(wù)器下載密文并解密,或者可以委托云服務(wù)器執(zhí)行等式測(cè)試的實(shí)體.
3)云服務(wù)器.存儲(chǔ)密文,在收到用戶請(qǐng)求后可以執(zhí)行等式測(cè)試但無(wú)法解密的實(shí)體.
4)密鑰生成中心(KGC).為用戶秘密地生成并且分配密鑰的實(shí)體.
5)密碼逆向防火墻(CRF).部署在用戶(數(shù)據(jù)上傳者和數(shù)據(jù)接收者)與云服務(wù)器的上行信道中,重隨機(jī)化用戶密文與陷門,再發(fā)送給云服務(wù)器的實(shí)體.
KGC 初始化系統(tǒng),根據(jù)用戶的身份來(lái)生成其私鑰,并秘密傳輸給用戶.數(shù)據(jù)上傳者計(jì)算接收者的公鑰來(lái)生成密文,然后上傳到云服務(wù)器.密文在上傳過(guò)程中會(huì)受到CRF 的重隨機(jī)化處理,而數(shù)據(jù)上傳者并不知道有這個(gè)過(guò)程.在任何時(shí)候,數(shù)據(jù)接收者都可以從云服務(wù)器下載密文,并使用KGC 生成的私鑰來(lái)解密數(shù)據(jù).當(dāng)接收者想要測(cè)試其存儲(chǔ)在云服務(wù)器的密文時(shí),可以利用自己的私鑰計(jì)算出陷門并將其發(fā)送給云服務(wù)器進(jìn)行測(cè)試,但是并沒(méi)有給云服務(wù)器提供解密的能力.陷門在上傳過(guò)程中會(huì)受到CRF 的重隨機(jī)化處理,而數(shù)據(jù)接收者不會(huì)知道有這個(gè)過(guò)程.
SM9-?BEET-CRF 方案由8 個(gè)算法組成.
1)系統(tǒng)建立Setup.輸入安全參數(shù)k,KGC 運(yùn)行該算法并生成系統(tǒng)公開(kāi)參數(shù)params和系統(tǒng)主密鑰,包括消息空間.
2)私鑰提取KeyExtract.輸入系統(tǒng)公開(kāi)參數(shù)params、用戶ID以及主私鑰s,KGC 運(yùn)行該算法生成用戶身份所對(duì)應(yīng)的私鑰d.
3)陷門生成Trapdoor.輸入用戶ID以及用戶私鑰d,輸出對(duì)應(yīng)的陷門td.
4)加密Encrypt.輸入明文M和用戶ID,輸出密文C.
5)重隨機(jī)化密文ReEncrypt.輸入密文C,CRF 運(yùn)行該算法輸出對(duì)應(yīng)的重隨機(jī)化密文C′.
6)密文解密Decrypt.輸入密文C、用戶ID和用戶私鑰d,解密輸出明文M.
7)重隨機(jī)化陷門ReTrapdoor.輸入陷門td,CRF運(yùn)行該算法輸出對(duì)應(yīng)的重隨機(jī)化陷門td′.
8)等式測(cè)試Test.分別輸入IDA對(duì)應(yīng)的密文CA和陷門tdA,IDB對(duì)應(yīng)的密文CB和陷門tdB,云服務(wù)器執(zhí)行等式測(cè)試,若CA和CB的內(nèi)容為相同的明文,則輸出1,否則輸出0.
根據(jù)?BEET 的安全模型,SM9-?BEET 需要考慮3 種類型的敵手.
1)Ⅰ型敵手.這類敵手沒(méi)有目標(biāo)用戶的陷門,不能執(zhí)行等式測(cè)試,其目的是在2 個(gè)挑戰(zhàn)密文中做區(qū)分.我們針對(duì)這種類型的敵手定義了?BE-?ND-CCA安全游戲Game 1.
安全游戲Game 1 中讓 A1表示Ⅰ型敵手,挑戰(zhàn)者C 與 A1按如下順序進(jìn)行游戲:
①系統(tǒng)建立Setup.挑戰(zhàn)者 C執(zhí)行系統(tǒng)建立Setup算法生成系統(tǒng)參數(shù)params和主私鑰對(duì).C保存主私鑰對(duì)并將params發(fā)送給 A1.
②階段1.A1可以自適應(yīng)地執(zhí)行查詢:
i)公鑰查詢.當(dāng)接收到身份為IDi的公鑰詢問(wèn)時(shí),C 通過(guò)運(yùn)用主私鑰對(duì)計(jì)算,生成公鑰Qi并發(fā)送給 A1.
ii)私鑰查詢.當(dāng)接收到身份為IDi的公鑰詢問(wèn)時(shí),C 通過(guò)執(zhí)行私鑰提取算法KeyExtract生成私鑰di并發(fā)送給 A1.
iii)解密查詢.當(dāng)接收到身份為IDi以及密文C的密鑰解密詢問(wèn)時(shí),C執(zhí)行密文解密算法Decrypt生成明文M并返回給 A1.
③挑戰(zhàn).敵手 A1將身份ID*以及消息(二者長(zhǎng)度相同)發(fā)送給 C,且在階段1,ID*對(duì)應(yīng)的私鑰沒(méi)有被詢問(wèn)到,則 C隨機(jī)選取 ρ ∈{0,1},并且計(jì)算C*=Encrypt(Mρ,d*,ID*) 并發(fā)送給 A1.
④階段2.A1像在階段1 一樣發(fā)出詢問(wèn),但是ID*對(duì)應(yīng)的私鑰以及密文C*不可以被詢問(wèn)到.
⑤猜測(cè).A1輸出 ρ′∈{0,1}.
定義4.如果對(duì)于任意多項(xiàng)式時(shí)間攻擊者 A1,在?ND-CCA游戲中的優(yōu)勢(shì)都是可忽略的,則SM9-?BEET 方案是滿足?BE?ND-CCA 安全的.
2)Ⅱ型敵手.這類敵手擁有目標(biāo)用戶密文的陷門,因此可以執(zhí)行挑戰(zhàn)密文的等式測(cè)試,其目的是為了揭示挑戰(zhàn)密文對(duì)應(yīng)的消息.我們針對(duì)這種類型的敵手定義了?BE-OW-CCA 安全游戲Game 2.
安全游戲Game 2 中讓 A2表示Ⅱ型敵手,挑戰(zhàn)者C 與 A2按如下順序進(jìn)行游戲:
①系統(tǒng)建立Setup.挑戰(zhàn)者 C執(zhí)行系統(tǒng)建立Setup算法生成系統(tǒng)參數(shù)params和主私鑰對(duì).C保存主私鑰對(duì)并將params發(fā)送給 A2.
②階段1.A2可以自適應(yīng)地執(zhí)行查詢:
i)公鑰查詢.當(dāng)接收到身份為IDi的公鑰詢問(wèn)時(shí),C 通過(guò)運(yùn)用主私鑰對(duì)計(jì)算,生成公鑰Qi并發(fā)送給 A2.
ii)私鑰查詢.當(dāng)接收到身份為IDi的公鑰詢問(wèn)時(shí),C通過(guò)執(zhí)行私鑰提取算法KeyExtract生成私鑰di并發(fā)送給 A2.
iii)陷門查詢.當(dāng)接收到身份為IDi的陷門詢問(wèn)時(shí),C 通過(guò)執(zhí)行陷門生成算法Trapdoor生成陷門tdi并發(fā)送給 A2.
iv)解密查詢.當(dāng)接收受到身份為IDi以及密文C的密鑰解密詢問(wèn)時(shí),C執(zhí)行密文解密算法Decrypt生成明文M并返回給 A2.
③挑戰(zhàn).敵手 A2將身份ID*發(fā)送給 C,且在階段1,ID*對(duì)應(yīng)的私鑰沒(méi)有被詢問(wèn)到.則 C隨機(jī)選取消息M*,計(jì) 算C*=Encrypt(M*,d*,ID*) 并發(fā)送給 A2.
④階段2.A2像在階段1 一樣發(fā)出詢問(wèn),但是ID*對(duì)應(yīng)的私鑰、陷門以及密文C*不可以被詢問(wèn)到.
⑤猜測(cè).A2輸出M′.
定義5.如果對(duì)于任意多項(xiàng)式時(shí)間攻擊者 A2,在?BE-OW-CCA游戲中的優(yōu)勢(shì)都是可忽略的,則SM9-?BEET 方案是滿足?BE-OW-CCA 安全的.
為證明CRF 的部署帶來(lái)的ASA 安全性,SM9-?BEET-CRF 還需考慮Ⅲ型敵手.
3)Ⅲ型敵手.其具備ASA 能力,在保持算法功能不變的前提下,可以替換除了CRF 重隨機(jī)化以外的算法,然后對(duì)系統(tǒng)發(fā)起攻擊.針對(duì)這種類型的敵手,我們可以證明CRF 的部署沒(méi)有改變?cè)璖M9-?BEET的功能與安全性,同時(shí)增強(qiáng)了ASA 安全性.基于此,我們定義了ASA 安全游戲Game 3.
安全游戲Game 3 中讓 A3表示Ⅲ型敵手,挑戰(zhàn)者C 與 A3按如下順序進(jìn)行游戲.
①篡改階段.A3選擇一些篡改的算法Setup*,KeyExtract*,Encrypt*,Decrypt*,Trapdoor*,Test*發(fā)送給 C,C收到后用篡改算法來(lái)替換自己的原始算法.
②系統(tǒng)建立Setup.挑戰(zhàn)者 C執(zhí)行系統(tǒng)建立Setup*算法生成系統(tǒng)參數(shù)params和主私鑰對(duì).C保存主私鑰對(duì)并將params發(fā)送給 A3.
③階段1.A3可以自適應(yīng)地執(zhí)行查詢:
i)公鑰查詢.當(dāng)接受到身份為IDi的公鑰詢問(wèn)時(shí),C通過(guò)運(yùn)用主私鑰對(duì)計(jì)算,生成公鑰Qi并發(fā)送給 A3.
ii)私鑰查詢.當(dāng)接受到身份為IDi的公鑰詢問(wèn)時(shí),C執(zhí)行私鑰提取算法KeyExtract*生成私鑰di并發(fā)送給 A3.
iii)陷門查詢.當(dāng)接受到身份為IDi的陷門詢問(wèn)時(shí),C執(zhí)行陷門生成算法Trapdoor*生成陷門tdi,然后運(yùn)行陷門重隨機(jī)化算法ReTrapdoor生成陷門tdi的重隨機(jī)化陷門并發(fā)送給 A3.
iv)解密查詢.當(dāng)接受到身份為IDi以及密文C的密鑰解密詢問(wèn)時(shí),C執(zhí)行密文解密算法Decrypt*生成明文并返回給 A3.
④挑戰(zhàn).敵手 A3將身份ID*以及 消息(二者長(zhǎng)度相同)發(fā)送給 C,且在階段1,ID*對(duì)應(yīng)的私鑰沒(méi)有被詢 問(wèn)到,則 C 隨機(jī) 選取ρ ∈{0,1},并且計(jì) 算C*=Encrypt*(Mρ,d*,ID*),然后再計(jì)算C*′=ReEncrypt(C*)并發(fā)送給 A3.
⑤階段2.A3像在階段1 一樣發(fā)出詢問(wèn),但是ID*對(duì)應(yīng)的私鑰以及密文不可以被詢問(wèn)到.
⑥猜測(cè).A3輸出 ρ′∈{0,1}.
定義6.如果對(duì)于任意多項(xiàng)式時(shí)間攻擊者 A3,在ASA 游戲中的優(yōu)勢(shì)都是可忽略的,則SM9-?BEET-CRF 方案是滿足ASA安全的.
本文方案由8 個(gè)算法組成,具體構(gòu)造過(guò)程介紹如下.
1)系統(tǒng)建立Setup.
②KGC 隨機(jī)選取s,s′∈[1,N-1]作為主私鑰對(duì)(s,s′),并計(jì)算主公鑰Ppub1=[s]P1,Ppub2=[s′]P1.
③獲取KGC公布的5個(gè)哈希函數(shù):H1:{0,1}*→H2:GT→G2,H3:G1→{0,1}*,H4:{0,1}*→G2,H5:GT→{0,1}*.
④使用SM9 規(guī)定的密鑰派生函數(shù)KDF(Z,klen),輸入比特串Z、非負(fù)整數(shù)klen,輸出長(zhǎng)度為klen的密鑰數(shù)據(jù)比特串K.
⑤消息認(rèn)證碼函數(shù)MAC(K2,Z).輸入為比特長(zhǎng)度K2_len的密鑰K2,比特串消息Z.其作用是防止消息數(shù)據(jù)Z被非法篡改.
⑥拓展歐幾里得函數(shù)EUC(r).輸入r∈[1,N-1],運(yùn)行拓展歐幾里得算法計(jì)算輸出r的逆元.
2)私鑰提取KeyExtract.輸入系統(tǒng)公開(kāi)參數(shù)params、用戶身份IDA和主私鑰對(duì)s,KGC 按①~③方式生成IDA的私鑰dA:
①在有限域FN上計(jì)算t1=H1(IDA)+s,若t1=0則需要重新產(chǎn)生主私鑰;
③然后計(jì)算dA=(dA1,dA2),此處的 (s,s′)是主私鑰對(duì),即
3)陷門生成Tra pdoor.輸入用戶身份IDA,私鑰dA.輸出陷門
4)加密Encrypt.輸入系統(tǒng)公開(kāi)參數(shù)params、用戶身份IDA,運(yùn)算生成用戶公鑰QA.對(duì)于消息長(zhǎng)度為mlen比特的比特串M∈{0,1}*,mlen為密鑰K1的比特長(zhǎng)度,K2_len為MAC(K2,Z) 中密鑰K2的比特長(zhǎng)度,過(guò)程運(yùn)算有:
5)重隨機(jī)化密文ReEncrypt.CRF 收到密文C=(C1,C2,C3,C4,C5,C6) 后,隨機(jī)選取r3∈[1,N-1],然后計(jì)算C的重隨機(jī)化密文C′=(C1,C2,C3,C4,C5,[r3]C6),并發(fā)送給云服務(wù)器.
6)解密Decrypt.輸入私鑰dA=(dA1,dA2) 和用戶身份IDA.
7)重隨機(jī)化陷門ReTrapdoor.輸入陷門td,CRF運(yùn)行EUC(r3) 生成r3的逆元r4∈[1,N-1],計(jì)算td的重隨機(jī)化陷門
③若e(Cα,5,Xβ)=e(Cβ,5,Xα),則Mα=Mβ.
本節(jié)首先對(duì)SM9-?BEET 進(jìn)行正確性分析.
1)驗(yàn)證密文解密過(guò)程的正確性
采用用戶私鑰d以及密文消息C=(C1,C2,C3,C4,C5,C6)來(lái)驗(yàn)證:
2)計(jì)算消息認(rèn)證碼函數(shù)
若u=C3,α,則消息認(rèn)證完整性的結(jié)果通過(guò),解密結(jié)果正確,輸出明文
3)驗(yàn)證等式測(cè)試計(jì)算結(jié)果的正確性
第1 層計(jì)算的安全性如下所示,采用用戶的陷門以及部分密文驗(yàn)證:
第2 層計(jì)算的正確性分析如下所示,帶入第1 層中計(jì)算的中間結(jié)果:
若Mα=Mβ,則等式測(cè)試的結(jié)果成立.
定理1.假定嵌入的BDH 困難問(wèn)題是不可破解的猜想成立,則表示本文提出的支持等式測(cè)試的SM9 算法是?BE-?ND-CCA 安全的.
證明.假設(shè)存在無(wú)法獲取目標(biāo)用戶陷門且不能任意執(zhí)行等式測(cè)試的Ⅰ型敵手 A1,其攻擊目的是破壞所提方案的語(yǔ)義安全,也即在安全游戲中對(duì)挑戰(zhàn)密文進(jìn)行區(qū)分.如果敵手 A1可以成功破壞本文方案,則存在挑戰(zhàn)者 C能夠以不可忽略的優(yōu)勢(shì)解決BDH 困難問(wèn)題.給定 (P1,P2,[a]P1,[a]P2,[b]P1,[c]P1),其中a,b,c∈C 的目標(biāo)是計(jì)算出e(P1,P2)abc.C 與 A1的挑戰(zhàn)過(guò)程有7 個(gè).
1)初始化.
C保存表格 LH1,LH2LH3,LH4,LH5,LKDF,初始化內(nèi)容為空,用來(lái)模擬隨機(jī)預(yù)言機(jī)〈H1,H2,H3,H4,H5,KDF〉.設(shè)置空列表 LK來(lái)保存公鑰查詢的結(jié)果.
2)敵手 A1向 C 提出6 個(gè)詢問(wèn).
①H1-query.在任何時(shí)刻 A1可以詢問(wèn)隨機(jī)預(yù)言機(jī) H1,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元 組 〈IDi,Ni〉,當(dāng)接收到身份為IDi的 H1查詢時(shí),C查找IDi對(duì)應(yīng)的數(shù)值Ni,用H1(IDi)=Ni返回給 A1,并將〈IDi,Ni〉 添加到中.
②H2-query.在任何時(shí)刻 A1可以詢問(wèn)隨機(jī)預(yù)言機(jī) H2,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈σ,?〉,C按2 個(gè)步驟回應(yīng):
i)如果詢問(wèn)的IDi已經(jīng)出現(xiàn)在的元組 〈σ,?〉中,C 用 ?來(lái)回復(fù).
ii)否則,C隨機(jī)選取 σ ∈GT,? ∈G1,并將元組〈σ,?〉 插入中,然后用 ? 來(lái)回復(fù) A1.
③H3-query.在任何時(shí)刻 A1可以詢問(wèn)隨機(jī)預(yù)言機(jī) H3,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈C1,h3〉,如果詢問(wèn)的C1存在 LH3中,返回h3給 A1;否則,C隨機(jī)選取h3∈{0,1}*并添加表項(xiàng) 〈C1,h3〉 到中,并返回h3給 A1.
④H4-query.在任何時(shí)刻 A1可以詢問(wèn)隨機(jī)預(yù)言機(jī) H4,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈M,h4〉,如果詢問(wèn)的M存在中,返回h4給 A1;否則,C隨機(jī)選取h4∈G1并 添加表項(xiàng)〈M,h4〉 到中,返回h4給 A1.
⑤H5-query.在任何時(shí)刻 A1可以詢問(wèn)隨機(jī)預(yù)言機(jī) H5,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈w,h5〉,如果詢問(wèn)的w存 在中,返回h5給 A1;否 則,C隨機(jī)選取h5∈{0,1}*并添加表項(xiàng) 〈w,h5〉 到中,返回h5給 A1.
⑥KDF-query.在任何時(shí)刻 A1可以詢問(wèn)隨機(jī)預(yù)言機(jī) KDF,為了回答這些詢問(wèn),C 保存表格 LKDF用來(lái)存取元組 〈Z,K〉,如果詢問(wèn)的Z存在于 LKDF中,返回K給 A1;否則,C 隨機(jī)選取K∈{0,1}*并添加表項(xiàng)〈Z,K〉 到 LKDF中,返回K給 A1.
3)公鑰查詢.當(dāng)接受到身份為IDi的公鑰詢問(wèn)時(shí),C按照如下方式回應(yīng):檢查列表如果i=κ,C 放棄,否則得到H1(IDi)=Ni;計(jì)算用戶公鑰Qi=[H1(IDi)]P1+Ppub1=NiP1+(γ-Nκ)P1=(γ-τi)P1,并將Qi發(fā)送給 A1.
4)私鑰查詢.當(dāng)接受到身份為IDi的私鑰詢問(wèn)時(shí),C按照如下方式回應(yīng):檢查列表,如果i=κ,C放棄;否則得到H1(IDi)=Ni,計(jì)算用戶私鑰為
并將di,1和di,2發(fā)送給 A1.
7)猜測(cè).A1輸出 ρ′∈{0,1}.C 從隨機(jī)選取一個(gè)元組 〈σ*,?*〉,并輸出σ*=e(P1,P2)abc作為BDH 實(shí)例的解.證畢.
定理2.假定嵌入的BDH 困難問(wèn)題是不可破解的猜想成立,則表示我們提出的支持等式測(cè)試的國(guó)密SM9 算法方案是?BE-OW-CCA 安全的.
證明.假定存在可以獲取目標(biāo)用戶陷門且可以執(zhí)行等式測(cè)試的Ⅱ型敵手 A2,其攻擊目的是為了破壞所提方案的機(jī)密性,也即揭示挑戰(zhàn)密文對(duì)應(yīng)的消息.如果敵手 A2可以成功破壞所提方案,則存在挑戰(zhàn)者 C能夠以不可忽略的優(yōu)勢(shì)解決BDH 困難問(wèn)題.給定(P1,P2,[a]P1,[a]P2,[b]P1,[c]P1),其中C的目標(biāo)是計(jì)算出e(P1,P2)abc.C 與A2的挑戰(zhàn)過(guò)程有8 個(gè).
2)敵手 A2向 C 提出6 點(diǎn)詢問(wèn).
①H1-query.在任何時(shí)刻 A2可以詢問(wèn)隨機(jī)預(yù)言機(jī) H1,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈IDi,Ni〉,當(dāng) 接收到身份為IDi的 H1查詢時(shí),C查找IDi對(duì)應(yīng)的數(shù)值Ni,用H1(IDi)=Ni返回給 A2,并將〈IDi,Ni〉 添加到中.
②H2-query.在任何時(shí)刻 A2可以詢問(wèn)隨機(jī)預(yù)言機(jī) H2,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈σ,?〉,C按2 個(gè)步驟回應(yīng):
i)如果詢問(wèn)的IDi已經(jīng)出現(xiàn)在的元組 〈σ,?〉中,C 用 ?來(lái)回復(fù).
ii)否則,C隨機(jī)選取 σ ∈GT,? ∈G1,并將元組〈σ,?〉 插入中,然后用 ? 來(lái)回復(fù) A2.
③H3-query.在任何時(shí)刻 A2可以詢問(wèn)隨機(jī)預(yù)言機(jī) H3,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元 組 〈C1,h3〉,如果詢問(wèn)的C1存 在中,返回h3給 A2;否則,C隨機(jī)選取h3∈{0,1}*并添加表項(xiàng) 〈C1,h3〉到中,并返回h3給 A2.
④H4-query.在任何時(shí)刻 A2可以詢問(wèn)隨機(jī)預(yù)言機(jī) H4,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元組 〈M,h4〉,如果詢問(wèn)的M存 在中,返回h4給 A2;否則,C隨機(jī)選取h4∈G1并 添加表項(xiàng)〈M,h4〉 到中,返回h4給 A2.
⑤H5-query.在任何時(shí)刻 A2可以詢問(wèn)隨機(jī)預(yù)言機(jī) H5,為了回答這些詢問(wèn),C 保存表格用來(lái)存取元 組 〈w,h5〉,如果詢問(wèn)的w存 在中,返回h5給 A2;否 則,C隨機(jī)選取h5∈{0,1}*并添加表項(xiàng) 〈w,h5〉到中,返回h5給 A2.
⑥KDF-query.在任何時(shí)刻 A2可以詢問(wèn)隨機(jī)預(yù)言機(jī) KDF,為了回答這些詢問(wèn),C 保存表格 LKDF用來(lái)存取元組 〈Z,K〉,如果詢問(wèn)的Z存在于 LKDF中,返回K給 A2;否則,C 隨機(jī)選取K∈{0,1}*并添加表項(xiàng)〈Z,K〉 到 LKDF中,返回K給 A2.
3)公鑰查詢.當(dāng)接受到身份為IDi的公鑰詢問(wèn)時(shí),C按照如下方式回應(yīng):檢查列表如果i=κ,C放棄;否則得到H1(IDi)=Ni,計(jì)算用戶公鑰
并將Qi發(fā)送給 A2.
4)私鑰查詢.當(dāng)接受到身份為IDi的私鑰詢問(wèn)時(shí),C按照如下方式回應(yīng):檢查列表如果i=κ,C放棄;否則得到H1(IDi)=Ni,計(jì)算用戶私鑰
并將di,1和di,2發(fā)送給 A2.
5)陷門查詢.當(dāng)接受到身份為IDi的陷門詢問(wèn)時(shí),如果i=κ,C放棄;否則計(jì)算
并將di,1和di,2發(fā)送給 A2.
ASA 安全性要求SM9-?BEET-CRF 可以抵抗Ⅲ型敵手 A3的攻擊.其中敵手 A3具備ASA 能力,在保持算法功能不變的前提下,可以替換除了CRF 重隨機(jī)化以外的算法,然后對(duì)系統(tǒng)發(fā)起攻擊.
定理3.SM9-?BEET-CRF 中的CRF 具有維持功能性.
證明.維持功能性要求CRF 不影響原協(xié)議的功能與安全性,當(dāng)數(shù)據(jù)上傳者將密文與陷門經(jīng)由CRF上傳至云服務(wù)器后,可以得到與原協(xié)議相同的功能與安全強(qiáng)度.
數(shù)據(jù)上傳者運(yùn)行加密算法Encrypt生成密文C=(C1,C2,C3,C4,C5,C6)并發(fā)送給CRF.CRF 重隨機(jī)化密文后得到C′=(C1,C2,C3,C4,C5,[r3]C6),并將其上傳至云服務(wù)器.
當(dāng)數(shù)據(jù)接收者需要解密時(shí),從云服務(wù)器上下載密文,此時(shí)不需要經(jīng)過(guò)CRF.解密過(guò)程的正確性通過(guò)用戶私鑰d以及密文消息來(lái)驗(yàn)證:
u=為 KDF 函數(shù)結(jié)果右邊的K2_len比特).
若u=C3,α,則消息認(rèn)證完整性的結(jié)果通過(guò),解密結(jié)果正確,輸出明文解密過(guò)程不受影響.
當(dāng)數(shù)據(jù)接收者需要執(zhí)行等式測(cè)試時(shí),運(yùn)行Trapdoor算法生成陷門td并發(fā)送給CRF.CRF 重隨機(jī)化陷門后得到并將td′上傳至云服務(wù)器.接下來(lái)驗(yàn)證等式測(cè)試計(jì)算結(jié)果的正確性.
1)第1 層計(jì)算的安全性采用用戶的陷門以及部分密文驗(yàn)證:
2)第2 層計(jì)算的正確性分析帶入第1 層中計(jì)算的中間結(jié)果:
若Mα=Mβ,則等式測(cè)試的結(jié)果成立.證畢.
定理4.SM9-?BEET-CRF 中 的CRF 具有弱保留安全性和預(yù)防泄露性.
證明.假定存在可以替換除CRF 重隨機(jī)化以外算法的Ⅲ型敵手 A3,其攻擊目的是破壞所提方案的機(jī)密性,也即通過(guò)篡改原始算法來(lái)泄露隱私信息.如果 A3可以成功破壞所提方案,使用篡改算法Setup*,KeyExtract*,Encrypt*,Decrypt*,Trapdoor*,Test*來(lái)替換原始算法.我們則將通過(guò)SM9-?BEET-CRF 的安全性游戲和原SM9-?BEET 安全性游戲的不可區(qū)分性,來(lái)證明CRF 滿足弱保留安全性和預(yù)防泄露性.本文考慮3 種安全游戲:
1)安全游戲Game 1.與第2 節(jié)中定義的Game 3相同.
2)安全游戲Game 2.與Game 1 的其他部分都相同,除了在陷門查詢階段,C用于生成陷門的算法為Trapdoor,而不是先執(zhí)行Trapdoor*算法再執(zhí)行ReTrapdoor算法.
3)安全游戲Game 3.與Game 2 的其他部分都相同,除了挑戰(zhàn)階段,C用于生成密文的算法為Encrypt,而不是先執(zhí)行Encrypt*算法再執(zhí)行ReEncrypt算法.事實(shí)上,Game 3 就是原基礎(chǔ)方案SM9-?BEET 的安全性游戲.
現(xiàn)在我們證明,Game 1 和Game 2,Game 2 和Game 3 分別具有不可區(qū)分性.
Game 1 和Game 2 之間,對(duì)于任何篡改算法Trapdoor*,其生成的陷門td′在經(jīng)由CRF 的重隨機(jī)化算法ReTrapdoor后,由于數(shù)據(jù)的可延展性,td′會(huì)重新分布,被映射到與原始Trapdoor相同的輸出空間中.也就是說(shuō),即使敵手篡改了Trapdoor算法的實(shí)現(xiàn),它也難以區(qū)分td′是由Trapdoor算法產(chǎn)生,還是由先執(zhí)行Trapdoor*算法再執(zhí)行ReTrapdoor產(chǎn)生.因此,Game 1 和Game 2 之間具有不可區(qū)分性.
Game 2 和Game 3 之間,對(duì)于任何篡改算法Encrypt*,其生成的密文C′在經(jīng)由CRF 的重隨機(jī)化算法ReEncrypt后,由于數(shù)據(jù)的可延展性,C′會(huì)重新分布,被映射到與原始密文相同的輸出空間中.也就是說(shuō),即使敵手篡改了Encrypt算法的實(shí)現(xiàn),它也難以區(qū)分C′由Encrypt算法產(chǎn)生,還是是由先執(zhí)行Encrypt*算法再執(zhí)行ReEncrypt產(chǎn)生.因此,Game 2 和Game 3之間具有不可區(qū)分性.
綜上所述,Game 1 與Game 3 具有不可區(qū)分性,SM9-?BEET-CRF 滿足與原方案相同的?BE-?ND-CCA安全性與?BE-OW-CCA 安全性.這種選擇密文攻擊下的不可區(qū)分性表明云服務(wù)器與用戶之間的CRF 具有弱保留安全性,Game 1,Game 2,Game 3 之間的不可區(qū)分性證明CRF 有弱抵抗?jié)B透性.證畢.
在本節(jié)中主要從計(jì)算開(kāi)銷、通信開(kāi)銷、安全性等方面對(duì)本文方案(SM9-?BEET-CRF)與其他等式測(cè)試的公鑰加密方案和支持關(guān)鍵詞檢索的公鑰加密文獻(xiàn)[4,6,11,13,15,17]進(jìn)行比較.其中,文獻(xiàn)[4]為具有前向安全性的公鑰可搜索加密方案(FS-PKSE);文獻(xiàn)[6]為帶有關(guān)鍵字搜索的公鑰認(rèn)證加密方案(PAEKS);文獻(xiàn)[11]為具有靈活授權(quán)機(jī)制的公鑰加密等式測(cè)試方案(PKEET-FA);文獻(xiàn)[13]為支持等式測(cè)試的無(wú)證書(shū)公鑰加密方案(CLE-PKEET);文獻(xiàn)[15]為支持等式測(cè)試的異構(gòu)簽密方案(HSC-ET);文獻(xiàn)[17]為支持等式測(cè)試標(biāo)識(shí)加密方案(?BEET).
為評(píng)估方案性能,將本文方案與其他方案在相同的環(huán)境下逐一對(duì)比,該環(huán)境配置的處理器為?ntel?Core? i7-8750H,內(nèi)存為16 GB(RAM),在VMware軟件的虛擬機(jī)上運(yùn)行,在PBC(pairing-based cryptography library)庫(kù)中實(shí)現(xiàn)雙線性對(duì)的接口,實(shí)現(xiàn)了雙線性對(duì)公鑰密碼體制的有效仿真,達(dá)到了1 024 b RSA 安全.
使用SM9 定義256 b 的BN 曲線,橢圓曲線方程為y2=x3+b來(lái)生成映射e:G1×G2→GT,嵌入次數(shù)為12,根據(jù)SM9 的參數(shù)配置PBC 庫(kù)中對(duì)應(yīng)的算法,進(jìn)行多次模擬后取平均值,與之前的文獻(xiàn)進(jìn)行了對(duì)比,其中涉及的符號(hào)定義和密碼算法的執(zhí)行時(shí)間定義分別如表1 和表2 所示.
Table 1 Symbols Definition表1 符號(hào)定義
Table 2 Execution Time of Cryptographic Operation表2 密碼操作的執(zhí)行時(shí)間
為評(píng)估方案的通信開(kāi)銷,考慮部署2 類無(wú)線傳感器節(jié)點(diǎn)平臺(tái)M?CAz[31]和Tmote Sky[32].其中M?CAz 配置的微控制器為ATmega128L,內(nèi)存為4 KB(RAM).Tmote Sky 配置的微控制器為MSP430,內(nèi)存為10 KB(RAM).采 用CC2420,2.4 GHz IEEE 802.15.4 作為射頻收發(fā)器標(biāo)準(zhǔn),在 TinyOS 系統(tǒng)運(yùn)行.使用文獻(xiàn)[33]的方法,在2 類傳感器節(jié)點(diǎn)架構(gòu)體系上實(shí)現(xiàn)對(duì)公鑰密碼通信系統(tǒng)的有效仿真.
我們首先比較了不同方案,包括Enc 加密操作、Dec 解密操作和Test 等式測(cè)試操作的計(jì)算開(kāi)銷.具體結(jié)果如表3 所示.
Table 3 Computation Cost Comparison of Different Schemes表3 不同方案的計(jì)算開(kāi)銷對(duì)比
圖3(a)表示在模擬環(huán)境下,不同方案的加密時(shí)間隨消息數(shù)量的變化,雖然當(dāng)消息數(shù)量增加到100 時(shí),本文方案的時(shí)間開(kāi)銷比文獻(xiàn)[4,6,11,15]大1.58 倍左右,但很明顯,與其他標(biāo)識(shí)加密的等式測(cè)試的文獻(xiàn)[13,17]相比,本文方案的時(shí)間開(kāi)銷要小得多.作為一種?BE-ET 體制,本方案在加密時(shí)間上的開(kāi)銷是可以接受的.與本文方案相比,文獻(xiàn)[11]并沒(méi)有實(shí)現(xiàn)?BE體制,在實(shí)際場(chǎng)景中,存在著密鑰管理的問(wèn)題;文獻(xiàn)[15]異構(gòu)等式測(cè)試,只能實(shí)現(xiàn)PK? 端到?BE 端的測(cè)試環(huán)境,具有一定的限制;文獻(xiàn)[4,6]實(shí)現(xiàn)的可搜索加密,不能對(duì)密文解密,只支持關(guān)鍵詞搜索,無(wú)法搜索整段密文,搜索性有所降低.本文方案的等式測(cè)試功能,可以實(shí)現(xiàn)雙向密文的任意測(cè)試;用戶與測(cè)試者均采用標(biāo)識(shí)加密的方法,避免了密鑰管理的問(wèn)題;與其他標(biāo)識(shí)加密的方案相比,降低了加密開(kāi)銷.
Fig.3 Computation overhead comparison for different schemes圖3 不同方案的計(jì)算開(kāi)銷對(duì)比
從圖3(b)可以得出,本文方案在解密過(guò)程的計(jì)算時(shí)間遠(yuǎn)小于其他對(duì)比方案,具有解密開(kāi)銷上的優(yōu)勢(shì).
從圖3(c)中得出,本文方案與文獻(xiàn)[13,17]在測(cè)試計(jì)算過(guò)程耗費(fèi)的計(jì)算時(shí)間是相近的,文獻(xiàn)[4,11,15]在測(cè)試場(chǎng)景下耗費(fèi)的時(shí)間要大于其他方案.文獻(xiàn)[4,6]實(shí)現(xiàn)的傳統(tǒng)可搜索加密并不能支持整段密文的測(cè)試,可以看出,本文方案在等式測(cè)試過(guò)程中耗費(fèi)的時(shí)間是合理且具有一定優(yōu)勢(shì)的.
表4 表示的是不同方案在通信開(kāi)銷與實(shí)際功能上的對(duì)比,可以看出本文方案與其他方案相比,具有更強(qiáng)的安全性與功能性.在實(shí)際應(yīng)用場(chǎng)景中,本文方案實(shí)現(xiàn)的標(biāo)識(shí)加密體制避免了證書(shū)管理的問(wèn)題,大大降低在通信過(guò)程中的開(kāi)銷.同時(shí),支持等式測(cè)試的功能相比于其他可搜索加密文獻(xiàn)[4,6]具有更強(qiáng)的搜索性.CRF 的設(shè)置使得本文方案具備抵抗?jié)B透攻擊的能力,這意味著在面對(duì)算法篡改攻擊這類威脅時(shí)本文方案提供了更高的安全性.值得注意的是,本文方案還是唯一一個(gè)支持國(guó)密SM9 算法的方案.
Table 4 Comparison of Communication Overhead and Function of Different Schemes表4 不同方案的通信開(kāi)銷與功能對(duì)比
圖4 表示在模擬環(huán)境下,不同方案隨著用戶數(shù)量增加下各種通信開(kāi)銷的對(duì)比.從圖4(a)(b)可以看出,本文方案享有最低的公鑰通信開(kāi)銷與密文通信開(kāi)銷.并且在圖4(c)中,本文方案的陷門開(kāi)銷小于除了文獻(xiàn)[11]以外的所有方案的開(kāi)銷.這是由于本文方案不僅實(shí)現(xiàn)了標(biāo)識(shí)加密體制,在實(shí)際場(chǎng)景中避免了公鑰證書(shū)的通信開(kāi)銷.同時(shí)還是所有文獻(xiàn)中唯一建立在非對(duì)稱雙線性配對(duì)基礎(chǔ)上的方案,這大大降低了在實(shí)際通信場(chǎng)景中的存儲(chǔ)開(kāi)銷.由此可見(jiàn)本文方案具有通信開(kāi)銷上的優(yōu)勢(shì),更適用于實(shí)際應(yīng)用場(chǎng)景.
Fig.4 Comparison of communication overhead of different schemes圖4 不同方案通信開(kāi)銷對(duì)比
總的來(lái)說(shuō),通過(guò)嚴(yán)格的實(shí)驗(yàn)仿真與性能對(duì)比證明,本文方案在計(jì)算開(kāi)銷與通信開(kāi)銷上都具有一定的優(yōu)勢(shì).等式測(cè)試功能的引入,使本文方案具有比可搜索加密方案更強(qiáng)的搜索性;標(biāo)識(shí)加密體制的拓展,解決了密鑰協(xié)商和證書(shū)管理的問(wèn)題;逆向防火墻的部署,進(jìn)一步提升了本文方案抵抗?jié)B透攻擊與篡改攻擊的能力.本文方案不僅解決了SM9 密文難以搜索的問(wèn)題,還解決了目前支持等式測(cè)試的標(biāo)識(shí)加密體制下計(jì)算與通信開(kāi)銷大、安全性弱的問(wèn)題.同時(shí),本文方案是國(guó)密SM9 密碼算法在云計(jì)算場(chǎng)景下的一次良好應(yīng)用,對(duì)于推動(dòng)我國(guó)密碼領(lǐng)域的安全研究也具有一定意義.
針對(duì)已有?BEET 算法難抵抗?jié)B透攻擊的問(wèn)題,本文提出了一種支持等式測(cè)試并具有逆向防火墻的SM9 標(biāo)識(shí)密碼方案SM9-?BEET-CRF,該方案可以運(yùn)用于云服務(wù)器中加密數(shù)據(jù)的外包計(jì)算方案.本文方案在用戶與云服務(wù)器之間的上行信道分別部署了密碼逆向防火墻;形式化了本文方案的系統(tǒng)模型和定義,并考慮3 種不同的對(duì)手來(lái)定義安全模型;然后在BDH假設(shè)下的隨機(jī)預(yù)言機(jī)模型中證明了它的安全性;最后通過(guò)嚴(yán)格的實(shí)驗(yàn)仿真和分析結(jié)果表明,本文方案比已有方法在解密與通信開(kāi)銷方面具有一定的效率優(yōu)勢(shì).
作者貢獻(xiàn)聲明:熊虎提出了算法思路和實(shí)驗(yàn)方案;林燁負(fù)責(zé)完成實(shí)驗(yàn)并撰寫論文;姚婷協(xié)助完成實(shí)驗(yàn)并修改論文.