本发明属于计算机安全领域,具体涉及一种支持非单调访问结构的密文长度固定的属性基可搜索加密方法。
背景技术:
在云计算环境中,为了保护数据的机密性,用户通常会先将数据加密得到密文,然后将密文存储在云服务器中。因为云计算中用户会产生大量的数据,所以用户能否对存储在云服务器中的密文进行有效的搜索是非常重要的问题。
可搜索公钥加密机制给出了上述问题的解决思路。在一个可搜索公钥加密方案中,用户可以通过一个中心机构来检测一个密文中是否包含制定的关键词而不会泄露明文的任何信息。然而,传统的可搜索公钥加密机制只适合数据所有者与用户之间“一对一”的共享数据,并不适用云计算中多数据所有者、多用户的场景。为了解决上述问题,属性基可搜索加密机制被提出。在一个属性基可搜索加密方案中,数据所有者通过定义访问结构中的属性集,然后在该访问结构下加密关键词。用户能够为指定的关键词产生陷门并授权云服务器进行搜索当且仅当其拥有的属性满足该访问结构。属性基可搜索加密因其实现了灵活的访问结构,所以更加适用于多数据所有者、多用户的云计算环境。
然而,现有的属性基可搜索加密方案中计算成本和通信成本与所需属性个数成线性关系。此外,现有的属性基可搜索加密方案多使用单调的访问结构,用户拥有访问结构中要求的属性(积极属性)就可以为指定关键词产生陷门。然而,在实际中,用户的属性通常分为两种:积极属性和消极属性。积极属性指用户一定具有属性;消极属性指用户一定不具有的属性。因此,支持非单调访问结构的密文长度固定的属性基可搜索加密方案具有实际意义。
技术实现要素:
本发明提出了一个支持非单调访问结构的密文长度固定的属性基可搜索加密系统。该系统不仅支持较为灵活的多值与门结构,而且较大程度地降低了属性基可搜索加密的计算成本和通信成本。
本发明通过以下技术实现:
(1)系统建立阶段:假设总属性集
setup(1l,n)→(params,msk),
中心机构设置系统初始版本号ver为1;
(2)密钥产生阶段:假设用户u拥有的属性为su,中心机构根据其属性为其产生私钥:
kg(params,msk,su)→sku;
(3)索引加密阶段:为了加密一个关键词w,数据所有者首先定义一个非单调访问结构a,然后在该访问结构下加密关键词w得到可搜索密文:
enc(params,a,w)→ct;
(4)陷门产生阶段:合法用户可以利用持有的私钥sku为指定的关键词w产生陷门:
tp(params,sku,w)→tw;
(5)检测阶段:云服务器在收到用户发送的陷门后,在存储的密文中进行搜索:
test(ct,tw)→{1,0}
若输出结果为1,表示tw是一个有效的陷门;若输出结果为0,表示失败;
(6)密钥重新产生阶段:当属性发生改变时,假设需要被更新的属性集为ψ。中心机构产生新的公共参数params′和更新密钥(rk1,rk2)。其中,rk1用于重加密可搜索密文,rk2用于更新合法用户的私钥:
re-kg(params,msk,ψ)→(rk1,rk2,params′),
每一次公共参数更新,系统版本号ver加1;
(7)索引重加密阶段:云服务器在收到中心机构发送的更新密钥rk1后,进行索引重加密获得新的可搜索密文:
re-enc(params′,ct,rk1,ψ)→ct′;
(8)密钥更新阶段:合法用户在收到中心机构发送的更新密钥rk2后,自行更新其持有的私钥:
update-key(params′,sku,rk2,ψ)→sk′u。
步骤(3)特征在于支持非单调的访问结构。
步骤(5)特征在于,云服务器只能够检测用户发送的陷门是否与存储的可搜索密文是否匹配而不会泄露任何关于明文的信息;该属性基可搜索加密方法支持有效的属性撤销。
与现有技术相比,本发明具有如下优点:
(1)索引加密阶段和检测阶段的计算成本是固定的;
(2)产生的可搜索密文的长度和为指定关键词产生的陷门的长度是固定的;
附图说明
图1为本发明的流程框架图。
具体实施方式
以下结合附图1,对本发明做进一步说明。
本发明系统包括如下8个阶段:
(1)系统建立阶段:中心机构输入安全参数1l和总属性集
系统的公共参数为
(2)密钥产生阶段:当拥有的属性集为su的用户u加入系统时,中心机构随机选取随机参数
其中,
用户u的私钥为
(3)索引加密阶段:令i为用于加密关键词w的属性的索引的集合。数据所有者选取非单调的访问结构
或
数据所有者计算c1=gs,
数据所有者将密文ct发送给云服务器。
(4)陷门产生阶段:为了搜索关键词w,合法的用户随机选取随机参数
其中,
用户将tw发送给云服务器。
(5)检测阶段:云服务器在收到用户发送的陷门后,验证下列等式是否成立
若该等式成立,云服务器将相关的关键词对应的密文ct及相关的信息反馈给用户。否则,反馈给用户信息表明搜索失败。
(6)密钥重新产生阶段:假设
若j∈φ,且是一个积极的属性,中心机构随机选取
若j∈φ,且是一个消极的属性,中心机构随机选取
和
若j=j,假设参数
(7)索引重加密阶段:云服务器在收到中心机构发送的参数
若j=j,
c′1=c1,
若
c′1=c1,
更新后的可搜索密文为ct′=(c′1,c′2,c′3,c′4)。
(8)密钥更新阶段:合法用户在收到中心机构发送的参数
更新后的私钥为