魏 晶 秦璐璐
(河海大學計算機與信息學院 江蘇 南京 211100)
近年來,云計算技術發展非常迅速,已經成為信息技術領域內討論的重要話題[1]。在日常生活中,云數據存儲和共享成為重要的應用,且具有很大的優勢。用戶可以將本地大量的數據存在云端,通過遠程訪問受保護的數據實現以低成本的計算獲得高質量的服務。云計算服務使得個人和企業可以高效、便捷、靈活地處理復雜的數據,減少了管理和維護隱私數據的開銷。但是,云服務器不能保證用戶的隱私信息,因此需要對數據進行加密。但是傳統的加密訪問模式是對明文加密,需要訪問數據時,再將密文全部解密進行檢索,導致了大量的計算和通信代價。
2000年,Song等[2]初次提出搜索加密方案,解決了對密文直接搜索的難題,實現了在對稱密碼體制下高效地搜索密文。可搜索加密可以分為對稱的可搜索加密技術和公鑰可搜索加密(即非對稱的可搜索加密)。對稱的可搜索加密的密文和陷門的生成的密鑰是相同的,因此效率較高。非對稱的可搜索加密技術中,生成密文和陷門所用的密鑰是一樣的,因此效率不高,但解決了密鑰分發的問題。2004年,Boneh等[3]提出帶有關鍵字搜索的公鑰加密的方案(Public Key Encryption with Keyword Search,PEKS)。在PEKS中,發送者利用接收者的公鑰和關鍵字生成數據密文和關鍵字密文信息,最后發送給云服務器;接收者在查詢包含某個特定的關鍵字相關的數據密文的時候,首先用本身擁有的私鑰和相關的關鍵字信息生成陷門后再發給服務器;服務器再將從接收者那收到的陷門和從發送者那得到的密文信息進行測試,接著將匹配的相關密文信息返回給接收者;最后,接收者再通過解密操作獲得自己需要的數據信息。為了提高可搜索加密的功能性、豐富查詢表達,文獻[6-7]提出了帶連接關鍵字的PEKS方案(Public Key Encryption with Conjunctive Field Keyword Search,即PECKS)。之后,PEKS的方案也得到了相關的延伸和擴展,如模糊的關鍵字搜索[8-9]和帶認證的PEKS[10]等,提高了數據庫的使用效率。
為了簡化公鑰證書的管理,1984年Shamir[4]最先提出基于身份的密碼體制(Identity-Based Cryptography,IBC)的概念,將標識用戶的唯一的身份看作公鑰,減少了公鑰基礎設施(Public Key Infrastructure,PKI)建立和維護的開銷。現有的大多數基于PEKS的方案都涉及到證書的管理。為了解決傳統的密碼體制(Public Key Cryptography,PKC)中的證書操作與維護管理的問題,Abdalla等[5]首次提出帶關鍵字搜索的基于身份加密方案(Identity-Based Encryption with Keyword Search,IBEKS)。在IBEKS方案中,用戶的公鑰就是用來唯一標識用戶的身份,用戶的私鑰是通過可信的第三方即私鑰生成中心PKG生成的,消除了復雜的證書管理步驟。為了解決安全信道的問題,Wu等[14]提出指定服務器的帶關鍵字搜索的基于身份加密(Efficient Searchable IB-Based Encryption with a Designated Server,dIBEKS)方案。在dIBEKS方案中,測試算法只能通過指定的云服務器執行,但文獻[14]的方案并不安全,存在關鍵字猜測攻擊的問題。因為關鍵字的集合是可以窮舉出來的,當外部的攻擊者獲得陷門后,可以窮舉關鍵字集合,將密文與陷門進行匹配,從而獲得陷門中的關鍵字信息。之后為了解決安全問題,也有一些基于身份方向的研究,如文獻[15-16]等,提出了新的基于身份方向的密碼方案。為了使具有資源受限設備的接收者能在云服務器檢索數據,Jiang等[12]提出了在線/離線密文檢索(Online/Offline Ciphertext Retrieval,OOCR)的概念,將接收者生成的陷門分成兩部分,即在線陷門和離線陷門[11]。將復雜的陷門計算部分提前完成,作為離線的部分,能提高陷門算法的生成效率。2017年Saito等[13]提出能抵抗關鍵字猜測攻擊的指定發送者的可搜索加密。之后,因為大多數的指定服務器的基于身份的可搜索加密方案是不安全的,容易受到離線關鍵字猜測攻擊。因此,設計出安全的基于身份的可搜索加密方案是值得研究的課題。受文獻[15]的啟發,本文提出一個安全的指定發送者的基于身份的可搜索加密方案。




本文的困難性問題是雙線性Diffie-Hellman(即BDH)問題和計算性Diffie-Hellman(即CDH)問題。
本文提出的指定發送者的基于身份的可搜索加密方案主要由以下的5個算法構成,包含系統參數設置算法,用戶的密鑰生成算法,加密算法、關鍵字陷門生成算法以及測試算法。

2) 用戶(包含接收者和發送者)的密鑰生成算法UserKeyGen(ID,Params,s):給定用戶的唯一身份ID,系統主密鑰s和系統參數Params,PKG生成用戶對應的秘密私鑰skID=sQID,其中QID=H1(ID)。

4) 關鍵字陷門生成算法TrapdoorGen(w′,skR):接收者運行該算法生成陷門。輸入給定的關鍵字w′和數據接收者自己的私鑰skR,該陷門算法選擇隨機數t∈Zq*,并計算陷門信息T=(T1,T2),其中T1=tP,T2=H2(w′‖α′)skR-tH1(IDR),且α′=e′(skIDR,QIDS)。

下面證明本文提出的密碼方案的正確性。如果w=w′,則下面的等式成立:


本文提出的DSIDEKS方案能滿足選擇唯一身份攻擊下的陷門不可區分性以及密文不可區分性,能夠抵抗密碼學中的關鍵字猜測攻擊(Keyword Guess Attack,KGA),在隨機預言模型下是安全的。
本文提出的DSIDEKS方案在密文中嵌入了發送者的私鑰,因此敵手不能獲得密文信息,保證了密文的不可偽造性。所以本文的DSIDEKS方案在指定發送者的情況下能保證一定的安全性。
選擇關鍵字和身份攻擊下的密文不可區分性能讓內部的服務器和外部的敵手不能區分關鍵字對應的密文信息。下面給出游戲模型,由挑戰者和敵手雙方交互完成。
系統初始化階段挑戰者運行SysSetup(γ)算法生成系統的公鑰Ppub和主私鑰s。接著運行UserKeyGen(ID,Params,s)算法生成特定用戶的私鑰,再將系統的公共參數Params發送給執行游戲的敵手。
詢問1敵手可以適應性地詢問用戶的私鑰和陷門信息。
挑戰階段敵手選擇一個身份ID*進行挑戰,并選出兩個關鍵字(w1,w2),且w1和w2的長度是相等的。挑戰者隨機選擇δ∈{0,1},并運行DSIDEKS(skS,IDR,w)算法產生密文cipherδ發給游戲中敵手進行挑戰。
詢問2該階段的預言詢問與詢問1相同。
猜測階段敵手給出對挑戰階段關鍵字的猜測δ′∈{0,1},假如δ=δ′,那么敵手就挑戰成功,贏得了游戲。但是前提條件是:敵手沒有詢問過ID*的私鑰;同樣之前沒有詢問過與身份ID*相對應的關鍵字w1和w2的陷門。
如果敵手打破方案的優勢能夠完全忽略,就能確定方案滿足選擇身份下的密文不可區分性。考慮內部的服務器和外部的敵手,主要的過程就是將BDH實例中的aP、bP、cP分別嵌入到Ppub和挑戰密文cipher中。因此,假設敵手能通過不可忽略的優勢區分出相應的挑戰密文,則就將問題規約到BDH困難性難題,從而得出本文方案能滿足選擇身份下的密文不可區分性。同理可得,本文方案在外部敵手的攻擊下,也能保證選擇身份下的密文不可區分性。
選擇關鍵字和身份攻擊下的陷門不可區分性使敵手不能區分關鍵字對應的陷門信息,下面給出游戲模型,由挑戰者和敵手雙方交互完成。
系統初始化階段挑戰者運行SysSetup(γ)算法生成系統的公鑰Ppub和主私鑰s。接著運行特定用戶的私鑰生成算法產生用戶的私鑰,再將系統的公共參數Params發送給執行游戲的敵手。
詢問1敵手可以適應性地詢問用戶的私鑰和陷門信息。
挑戰階段敵手選擇一個身份ID*進行挑戰,并給出挑戰的關鍵字(wt1,wt2),且關鍵字wt1和wt2的長度必須相等才能繼續游戲。挑戰者隨機選擇σ∈{0,1},并運行TrapdoorGen陷門算法生成挑戰陷門Tσ發送給敵手。
詢問2該階段的預言詢問與詢問1相同。
猜測階段敵手給出對關鍵字的猜測σ′∈{0,1},假如σ=σ′,那么判定敵手挑戰成功,贏得了游戲。但是前提條件是:敵手沒有詢問過身份ID*的私鑰;同時也沒有詢問過ID*相應的挑戰關鍵字wt1和wt2的陷門信息。
假如敵手贏得游戲的優勢完全可以忽略,就可以得出方案滿足選擇身份下的陷門不可區分性。主要的過程就是將CDH實例中的aP、bP嵌入到Ppub和陷門T中,敵手通過預言詢問,最終將敵手的優勢規約到解決密碼學中的CDH問題,從而得出本文方案滿足選擇身份下的陷門不可區分性。
表1為本文的密碼方案與文獻[15-16]進行比較。表2為本文與文獻[15-16]的效率比較。

表1 方案的安全性比較

表2 方案的效率比較
表1中,SC代表是否需要安全信道,TID表示方案能保證陷門不可區分性,CID表示方案能保證密文不可區分性。表2中Tb、Ta、Tm分別表示方案執行需要的雙線性對運算、循環群中的加法運算和乘法運算。從表1和表2可以看出,本文的密碼方案與文獻[16]比較,密文的雙線性對較多,但是陷門代價相當,測試效率較高。雖然文獻[16]的密文沒有用到雙線性對,但是安全性不及本方案。與文獻[15]相比,本文的密碼方案在密文和陷門的計算開銷上是相對較小的。
本文所提方案與文獻[15]和文獻[16]的方案在不同關鍵字下的效率分析如圖1所示。

圖1 不同關鍵字數目方案運行的時間效率
可以看出,在都使用雙線對操作,本文提出的指定發送者的基于身份的可搜索加密方案和文獻[15-16]相比更為高效。
本文提出了一個指定發送者的基于身份的PEKS方案。在隨機預言模型下,該方案是密文不可區分性安全和陷門不可區分性安全的,也能抵抗關鍵字猜測攻擊。在效率方面,本文方案雙線性對計算并不是很多,也沒有指數預算,因此效率相對提升。目前,設計一個高效的能滿足密文和陷門不可區分性的指定服務器的基于身份的可搜索加密方案仍然有待解決。