发明名称 一种云存储中多用户的加密搜索方法
摘要 本发明公开一种云存储中多用户的加密搜索方法:初始化阶段,实现把秘钥材料从可信私有云分发到一组授权用户;数据上传阶段,该阶段数据所有者用户通过使用加密算法对数据和关键词进行加密,并把加密的数据发到可信私有云。可信私有云对其进行二次加密后将数据包存储到公共云上;数据搜索阶段,数据使用用户发送搜索请求,生成陷门查询。可信私有云接收到陷门后,首先检查用户搜索身份的合法性,通过后使用匹配算法以在公共云上搜索加密数据。搜索成功后,返回匹配的搜索待解密数据给可信私有云。可信私有云对数据进行预解密处理后返回给数据使用者用户进行解密。本发明即确保用户不仅可上传自己的数据,也可搜索其他用户上传的数据。
申请公布号 CN104993931A 申请公布日期 2015.10.21
申请号 CN201510305932.1 申请日期 2015.06.05
申请人 东南大学 发明人 万长胜;潘浩;黄杰
分类号 H04L9/32(2006.01)I;H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 杨晓玲
主权项 一种云存储中多用户的加密搜索方法,其特征在于:包括如下阶段:1)初始化阶段:首先可信私有云进行初始化生成秘钥材料,可信私有云将秘钥材料分为私钥和公钥;可信私有云随机输出一个用户秘钥并计算其用户辅助秘钥;具体为:假设TPC根据生成器g创建一个q阶循环群G;H为一个安全的哈希函数,f为一个伪随机函数f<sub>s</sub>(),s是其f<sub>s</sub>()的秘钥,h=g<sup>R</sup>,其中<img file="FDA0000731524590000011.GIF" wi="247" he="74" />定义为{0,1…q‑1}的集合;随机选择一个<img file="FDA0000731524590000012.GIF" wi="340" he="74" />私钥SK=(a,x,s),将私钥SK=(a,x,s)保持私有,同时将公钥PK=(G,g,q,H,f,h,g<sup>a</sup>h<sup>a</sup>)公开;计算a<sub>1</sub>*a<sub>2</sub>=a(modq),可以得到a<sub>1</sub>和a<sub>2</sub>,随机计算一个<img file="FDA0000731524590000013.GIF" wi="208" he="74" />x<sub>c1</sub>=x‑x<sub>u1</sub>,然后TPC将用户秘钥(xu<sub>1</sub>,s,a<sub>1</sub>)发送给用户,同时存储用户辅助秘钥(u,x<sub>c1</sub>,a<sub>2</sub>)发在可信私有云上;2)数据上传阶段:用户上传经过加密处理后的外包存储数据到公共云中,具体为:用户采用EIGamal加密算法对需要存储在云端的数据以及数据的关键词进行第一次加密;然后用户将所述进行第一次加密过后的数据和关键词发送给可信私有云;所述可信私有云首先对用户进行用户身份认证,用户认证通过后所述可信私有云对已进行第一次加密过后的数据以及数据的关键词进行二次加密处理;然后可信私有云将二次加密处理后的数据以及数据的关键词上传到公共云中;3)数据搜索阶段:用户生成搜索请求,当所述可信私有云收到用户发送的数据的关键词的搜索请求后,所述可信私有云首先认证用户的搜索权限,若是认证成功,计算用户的搜索秘钥M<sub>1</sub>=(gh)<sup>‑r</sup>和可信私有云的搜索秘钥M<sub>2</sub>=(g<sup>a</sup>h<sup>a</sup>)<sup>r</sup>;然后用户通过用户的搜索秘钥M<sub>1</sub>以及所述初始化阶段中接受到的用户秘钥计算搜索数据的关键词的搜索陷门:<img file="FDA0000731524590000014.GIF" wi="494" he="87" />其中:σ<sub>w</sub>′=f<sub>s</sub>(w′);然后用户将所述数据的关键词的搜索陷门发送到所述可信私有云中;可信私有云接收到搜索陷门Tu(w′)后,可信私有云将初始化阶段中可信私有云中存储的用户辅助秘钥(u,x<sub>c1</sub>,a<sub>2</sub>)发送给搜索的用户;用户根据接受到的用户辅助秘钥重新计算数据搜索陷门:<img file="FDA0000731524590000015.GIF" wi="322" he="76" />然后可信私有云计算搜索陷门的查询值H=(T×M<sub>2</sub>)并将所述查询值H=(T×M<sub>2</sub>)发送到公共云上,公共云中采用匹配算法对所述经过二次加密后的数据进行查询;如果所述公共云中存在的数据中与所述搜索陷门的查询值相同,则所述公共云将相关数据发送给所述可信私有云;所述可信私有云接受到公共云发送的相关数据后先对相关数据进行预解密处理,然后可信私有云再将预解密后的数据返回给所述发送关键词搜索请求的用户,用户使用个人秘钥解密,最终得到想查询的数据。
地址 211189 江苏省南京市江宁区东南大学路2号