云存儲中基于雙線性對的多用戶多關鍵詞可搜索加密方法
【技術領域】
[0001] 本發(fā)明屬于信息安全技術領域,具體涉及一種云存儲中基于雙線性對的多用戶多 關鍵詞可搜索加密方法。
【背景技術】
[0002] 云計算作為一種新的計算模型,能夠提供成本較低、可擴展的各種先進的計算服 務,為了節(jié)省存儲及管理數據的代價,企業(yè)和個人可以將數據外包到云存儲服務器。云存 儲服務提供的數據具有可用性和可靠性等優(yōu)勢,但是其也有一個很明顯的缺點,即數據不 在用戶的管理及控制之下,那么如何維護數據的機密性和完整性便成為用戶迫切關注的問 題。
[0003] 雖然企業(yè)相信云存儲服務提供商(CloudStorageServiceProvider,CSSP)的可 靠性、可用性、容錯性等,但是人們無法確信CSSP不將托管的數據用于其他目的;同樣對于 個人用戶而言,他們希望自己的數據只能由自己或指定的人訪問而不能被CSSP訪問。這將 導致兩方面的問題:一方面,從用戶的角度看,他們無法找到讓他們完全可信的CSSP來存 儲和管理他們的數據;另一方面從CSSP的角度看,在沒有解決上述問題的情況下將會丟失 大量的客戶。因此,數據的機密性及完整性將阻礙云存儲的推廣及使用。
[0004] 鑒于以上的實際問題,云存儲中數據必須在傳輸到CSSP之前,由用戶自己加密, 并且也只能由用戶自己進行解密,這樣將會減輕用戶數據泄漏的危險。但這將引入一個新 的問題,如用戶需要包含某個關鍵字的文檔,那么用戶是否能很快的獲得他們想要的數據 并保證數據對CSSP的機密性?
【發(fā)明內容】
[0005] 本發(fā)明的目的是提供一種云存儲中基于雙線性對的多用戶多關鍵詞可搜索加密 方法,解決了現(xiàn)有技術中存在的云存儲數據加密后不能實現(xiàn)關鍵詞檢索的問題。
[0006] 本發(fā)明所采用的技術方案是,云存儲中基于雙線性對的多用戶多關鍵詞可搜索加 密方法,具體按照以下步驟實施:
[0007]步驟1、系統(tǒng)參數初始化;
[0008] 步驟2、添加用戶;
[0009] 步驟3、文件擁有者對文件加密和安全索引生成;
[0010] 步驟4、服務器對索引重加密;
[0011] 步驟5、用戶關于關鍵詞搜索令牌的生成;
[0012] 步驟6、云存儲服務器關于密文關鍵詞的搜索;
[0013] 步驟7、用戶關于密文的解密;
[0014] 步驟8、撤銷用戶。
[0015] 本發(fā)明的特點還在于,
[0016] 步驟1具體按照以下步驟實施:
[0017] 步驟(I.I)、由文件加密者Ent輸入安全參數k,輸出兩個階為素數q的乘法循環(huán) 群GjPG2,Gi的生成元,g2為G2的生成元;
[0018] 步驟(1. 2)、選擇雙線性映射心G1XG丨4G2 ;
[0019] 步驟(1.3)、隨機均勻地選擇XGZq作為文件加密者Ent的主密鑰,記為 w為a,,,其中= H,計算h=G1;
[0020] 步驟(1. 4)、選擇兩個偽隨機函數/_':彳0,U'\徵『一>< 和/"HUiXZ,]--任意選擇兩個隨機種子s',s"GR{〇,l}k;
[0021] 步驟(1. 5)、選擇對稱加密算法SKE= {SKE.Gen(Ik),SKE.ENC(.),SKE.DE(.)},隨 機均勻地選擇一個加密密鑰ek-SKE.Gen(Ik);
[0022] 步驟(1. 6)、文件加密者Ent公開系統(tǒng)參數為腦, 保密系統(tǒng)私鑰為,隨機種子S',S"GR{〇, 1}^?文件加密密鑰ek。
[0023] 步驟2具體按照以下步驟實施:
[0024] 步驟(2. 1)、輸入系統(tǒng)用戶管理者UM的主密鑰皿* = 1£<和一個用戶身份UlD,輸 出用戶Uid的密鑰和輔助密鑰) = (gf? ,g2(A) = :^這里^是在 足;中隨機選擇的,即氣T % < ',滅如=gf e G1, = g/,/c e (?
[0025] 步驟(2.2)、將(式安全地發(fā)送給用戶UlD,用戶UlD保密(魂
[0026] 步驟(2.3)、將安全地發(fā)送給服務器Serv, Serv在其用戶列表 U-ComK中加入并保密用戶列表U-ComK。
[0027] 步驟3具體按照以下步驟實施:
[0028] 步驟(3. 1)、輸入用戶uID密鑰我w=Aw、加密密鑰ek、隨機種子s'、文檔D1及其 關鍵詞列表% = (u;.r…,),1W^,隨機選擇riGRZq;
[0029] 步驟(3. 2)、計算容'和爲:每馬.,計算:氣〒,八《,氣)')'6 ,氣』=(成奶); 1彡」彡1",令/,'=(//,心〃<.,,嘆丨,,嘆,,..),記(:=(以.,.4(9^ 器Serv0
[0030] 步驟4具體按照以下步驟實施:
[0031] 步驟(4. 1)、輸入用戶身份uID和接收到的< = (£&,,, (£),),/>服務器 Serv在用戶列表U-ComK中查找),若無,則返回,否則根據q中的 < = ,?"計算得到新的索引Ti,計算如下:
[0033]步驟(4. 2)、將密文及索引C1=(EncA(D1),I1)存儲在服務器Serv上。
[0034] 步驟5具體按照以下步驟實施:
[0035] 步驟(5.1)、由系統(tǒng)用戶uID執(zhí)行,得到d(d彡1)個關鍵詞w'i,…,w' d的搜索 令牌r= 九wV? ?,以 ^
[0036] 隨機選擇M2 %計算
[0038] 步驟(5. 2)、將任意d(d彡1)個關鍵詞w'1,…,w'd的搜索令牌T=(uID,T11,… ,Tld,T2,T3)發(fā)送給云存貯服務器Serv。
[0039] 步驟6具體按照以下步驟實施:
[0040]步驟(6. 1)、輸入搜索令牌T= (uID,T11,…,Tld,T2,T3),Serv首先在U-ComK中查 找是否存在(〃〃.夂>""/^,>),若無,則返回 ;否則3£^根據密文(:1=伽(^(01),11)中的索引 結構 4 =¥Iw,為.):做出判斷;
[0041] 步驟(6. 2)、首先初始化搜索結果Q為空集,對C1= (Encek(D1),I1),其中 /,.=(/匕(_>;"<。,/;.丨判斷如下等是否至少有d個成立:
[0042] ComKlij)! c(h', 7;) = (/,,)/;,J eP,--,4}
[0043]其中,:?滬=[e(:g!,g:Tt. ]_'、,
[0044] 如果(^中含有該d個關鍵詞w'i,…,w'd,,其中d彡1,則Q=QUIC1K繼 續(xù)搜索下一個密文C1+1= (Encdi(D1+1),I1J,否則,該密文與關鍵詞不匹配,繼續(xù)搜索下一個 Ci+1=(Encek(Di+1),Ii+1);
[0045] 步驟(6. 3)、當服務器對所有的存貯的密文檢索后,將最終的搜索結果Q發(fā)送給 用戶uID。
[0046] 步驟7具體為:
[0047] 輸入對稱密鑰ek及接收到的搜索結果Q,對VC: = (£夂";(A)D,計算D1= Decdi (E1),得到含有d(d彡1)個關鍵詞w'i,…,w'd的解密數據D113
[0048] 步驟8具體為:
[0049] 輸入用戶身份uID,用戶管理機構UM向云存貯服務器Serv發(fā)送撤銷用戶uID 的命令,服務器Serv在用戶列表U-ComK中刪除用戶uID注冊項目),更新 U-ComK~U-ComK\\{u,,^comku )\〇
[0050] 本發(fā)明的有益效果是,云存儲中基于雙線性對的多用戶多關鍵詞可搜索加密方 法,數據用戶可以將自己的數據加密后,存放到云存儲服務器,需要時候,可以通過關鍵詞 檢索令牌檢索到需要的密文數據,然后下載解密,同時,云存儲服務器并不知道用戶檢索的 關鍵詞,確保用戶的數據信息隱私性,通過與現(xiàn)有方案相比較,本發(fā)明方法在通信和計算代 價,即搜索陷門大小、關鍵詞加密和搜索的速度等方面的綜合效率得到提高,而且本發(fā)明是 適合多用戶環(huán)境的,可以增加和撤銷用戶,用戶增加可以通過算法Enroll(kUM,uID)實現(xiàn),用 戶的撤銷可以通過算法RevokeUser(uID)實現(xiàn)。
【具體實施方式】
[0051] 下面結合【具體實施方式】對本發(fā)明進行詳細說明。
[0052] 本發(fā)明云存儲中基于雙線性對的多用戶多關鍵詞可搜索加密方法,具體按照以 下步驟實施:
[0053] 步驟1、系統(tǒng)參數初始化:
[0054] 具體按照以下步驟實施:
[0055] 步驟(I. 1)、由文件加密者Ent輸入安全參數k,輸出兩個階為素數q的乘法循環(huán) 群GjPG2, Gi的生成元,g2為G2的生成元;
[0056] 步驟(1. 2)、選擇雙線性映射G1XG1 ->G:;
[0057] 步驟(1.3)、隨機均勻地選擇XGZq作為文件加密者Ent的主密鑰,記為 =XeZ:,其中 & .= {1,2,…,《―Pr,計算h=gjGG丄;
[0058] 步驟(1.4)、選擇兩個偽隨機函數.f ,. 任意選擇兩個隨機種子S',S"GR{〇,l}k;
[0059] 步驟(I. 5)、選擇對稱加密算法SKE= {SKE.Gen(Ik),SKE.ENC(?),SKE.DE(?)},隨 機均勻地選擇一個加密密鑰ek-SKE.Gen(Ik);
[0060] 步驟^州入文件加密者已拉公開系統(tǒng)參數為輝郷:構而義沿各斗/',/'/7,?^), 保密系統(tǒng)私鑰為,隨機種子s',s"GrIO i1P及文件加密密鑰ek。
[0061] 步驟2、添加用戶:
[0062] 具體按照以下步驟實施:
[0063] 步驟(2. 1)、輸入系統(tǒng)用戶管理者UM的主密鑰_丨=技<和一個用戶身份uID,輸
U-ComK中加入.0,,v),〇洲\./;),并保密用戶列表U-ComK。
[0066] 步驟3、文件擁有者對文件加密和安全索引生成:
[0067] 具體按照以下步驟實施:
[0068] 步驟(3. 1)、輸入用戶uID密鑰殊^ =Aid、加密密鑰ek、隨機種子s'、文檔D1及其 關鍵詞列表% = …KZ",隨機選擇riGRZq;
[0069] 步驟(3. 2)、計算f和艫,Vt%e心,:計算~=/'(義冰eg,% = 1 彡j彡i",令/: =(/,X訓氣),記C=⑷將 務器Serv。
[0070] 步驟4、服務器對索引重加密:
[0071] 具體按照以下步驟實施:
[0072] 步驟(4. 1)、輸入用戶身份uID和接收到的Cf=.(£>&(0,),服務器Se