主权项 |
一种云存储中多用户的加密搜索方法,其特征在于:包括如下阶段: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>)发送到公共云上,公共云中采用匹配算法对所述经过二次加密后的数据进行查询;如果所述公共云中存在的数据中与所述搜索陷门的查询值相同,则所述公共云将相关数据发送给所述可信私有云;所述可信私有云接受到公共云发送的相关数据后先对相关数据进行预解密处理,然后可信私有云再将预解密后的数据返回给所述发送关键词搜索请求的用户,用户使用个人秘钥解密,最终得到想查询的数据。 |