云计算中一种基于属性加密的关键词搜索算法的制作方法

文档序号:11064788阅读:423来源:国知局

本发明涉及云存储,数据加密,数据搜索技术领域。



背景技术:

随着云技术的快速发展,云存储服务也越来越成熟。云端存储已经成为企业或者个人的首要选择,由云存储服务提供商负责存储数据。倘若云存储服务提供商与其他用户合谋,或是云服务器存在漏洞,用户数据可能会泄露,数据将失去安全性。为了保障数据的安全,可以选择将数据加密后再上传至云端。但是加密后的数据失去了数据结构和语义特性,云端服务器通常无法向用户提供明文的搜索服务。若用户需要搜索数据,最简单的做法是先将所有加密数据下载到本地,然后逐一解密再进行搜索。这种方案虽然简单,但未充分利用云端的计算能力搜索效率过低。

关键词搜索算法,是在此环境下逐渐兴起的一种特殊加密技术,该技术能够实现合法搜索关键词密文,却不能通过密文关键词查询到数据所有者的其他信息。现有方案将关键词搜索加密和属性基加密相结合,解决了云环境下访问控制问题,但是未充分考虑信道安全以及关键词猜测攻击等安全问题。



技术实现要素:

针对上述不足,本方法提出一种云环境下基于密文策略的属性基加密技术的关键词搜索算法。

本发明所采用的技术方案是:云计算中一种基于属性加密的关键词搜索算法,首先用户自主选择可被信任的搜索服务器,最大可能降低搜索服务器进行关键词猜测攻击,用户只有在接收搜索服务器公钥和用户私钥时需要安全信道。对于非安全信道中传输的数据,即使恶意用户截获了这些信息,也无法通过在线离线关键词猜测攻击,恢复出任何信息。并且,本方法的方案支持灵活的多用户访问权限控制,支持用户自行生成搜索凭证,适合应用于云环境。

本发明的有益效果是:数据属主可以灵活地指定访问控制策略,仅当用户满足访问控制策略时才能解密,同时,即使拥有不同属性的用户将各自的私钥和对方的私钥组合在一起,也无法解密相应的密文,具有很好的抗共谋性,用户在加密关键词和加密搜索凭证时都指定了搜索服务器,保障了信道安全。且使用本方法能在加密状态下对数据进行关键词检索,并且不法用户不能通过关键词猜测进行攻击窃取数据拥有者的其他除关键词外的信息。

具体实施方式

一、本算法的原理

本发明采用的基本理论是双线性映射原理和用其访问树来表示访问结构,所以先介绍双线性映射和访问结构控制:

1、双线性映射:

设G和GT是p(p为素数)阶的群,g为G的生成元,他们之间存在可有效计算的双线性映射e:G×G→GT,在映射中具有以下特性:

(1)双线性,a,b∈Zp和g,h∈G,满足e(ga,hb)=e(g,h)ab

(2)非退化性,e(g,h)≠1

(3)可计算性,g,h∈G,e(g,h)都是可有效计算的

(4)DBDH难题,g为G的生成元z∈Zp,ga,gb,gs,在多项式时间内无法区分e(g,g)abs与e(g,g)z

(5)CDH难题,g为G的生成元,随机的a,b∈Zp,ga,gb在多项式时间内无法计算gab

2、访问结构控制:

使用CP-ABE方案定义访问树来表示访问结构其表示如下:

令T表示访问结构树,访问结构树T所有叶子节点的集合,r为访问结构树T的根节点,节点t的门限值为kt,qt为节点t生成一个kt-1次的随机多项式。qt(0)代表该节点的私密属性,定义归运算,对于非叶子节点z,利用kx个叶子节点作为拉格朗日插值定理的插值点进行计算。

二、本算法的实施方案

数据所有者上传数据时候,采用任意加密技术进行加密。然后利用本发明提出的方法对关键词进行加密,并将关键词上传到指定的服务器,云服务商负责生成发布系统公钥和用户私钥,搜索服务器负责负责密文搜索,用户是请求方,向服务器发起搜索请求,在本地生成关键词搜索凭证,然后再将凭证上传到指定搜索服务器,由搜索服务器负责搜索。

本算法包括8个步骤,执行不同的计算任务,共同完成关键词搜索,并保障不能通过关键词攻击到数据所有者的其他信息。步骤包括:1、搜索系统生成;2、搜索服务器密钥生成;3、搜索用户私钥生成;4、关键词加密;5、搜索凭证生成;6、关键词搜索;7、搜索结果加密;8、搜索结果解密。每一个步骤具体执行如下:

步骤一:设全局参数为GP,私钥为MK,公钥为PK,根据双线性对原理和散列函数H1:{0,1}logw→G,H2:{0,1}logw→G,H1,H2分别是属性和关键词在G上映射,随机α,β∈Zp则有:

GP=(e,g,G,GT,H1,H2)

MK=(α,β)

PK=(gα,gβ)

步骤二:搜索服务器随机选取x∈Zp,生成服务器私钥SSK=(x),秘密保存,然后生成搜索服务器公钥SPK:

步骤三:授权机构根据用户属性集合S和系统私钥MK,生成用户私钥USK:

其中:r∈Zp,rj∈Zp

步骤四:数据拥有者设定文件的关键词W,然后关键词密文设置搜索权限,并生成访问树T,选择公钥生成关键词密文CT并上传;设x为T的节点,qx为节点多项式,从根节点R开始,令qx的项数dx=kx-1,随机s∈Zp令qx(0)=s,定义函数parent(x)、index(x)表示父节点和x节点在父节点中的位置,令qx(0)=qparent(x)(index(x)),则生成:

步骤五:用户根据需要的关键词W,t、y∈Zp,选择公钥gx,生成素偶所凭证TR,并将t作为秘密保存:

步骤六:搜索服务器根据用户生成的搜索凭证TR与关键词密文CT计算关键词是否相等,首先计算TR中的用户属性是否满足密文CT中定义的访问结构,设权限计算函数为DN(x)

其中x为叶子节点,i=att r(x)为节点x对应的属性,i∈S;

若X节点为非叶子节点,x的子节点z计算

其中为拉格朗日系数;

然后搜索服务器利用私钥SSK计算:

然后利用双线性算法计算:

X=e(H,T0)

Y=e(W1,T1)

Z=e(W2,T′2)

其中,

步骤七:M∈G,M是搜索服务器执行搜索任务后的元素,为防止恶意用户截获返回结果进行关键词猜测攻击,服务器随机选取n∈Zp生成密文:

n∈Zp,L=gβn

步骤八:数据用户获得搜索服务器返回的加密的搜索信息利用生成的随机秘密数t进行解密获得明文M:

该方法主要是针对关键词可搜索加密方案的权限控制,无安全信道和关键词猜测攻击方面进行分析,提出的适合应用于云环境的关键词可搜索加密方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1