面向云存储的多关键词可验证搜索加密方案设计

2022-01-18 12:35:04
关键词:拥有者令牌密文

左 毅 陈 勇 姚 雪

(1. 重庆科技学院 信息化办公室, 重庆 401331; 2. 重庆师范大学 计算机与信息科学学院, 重庆 401331; 3.重庆科技学院 数理与大数据学院, 重庆 401331)

0 前 言

安全高效的云存储服务始终是云计算研究的核心问题之一[1]。目前,在云服务器不可信的情况下,支持关键词搜索的公钥加密方案研究已成为热点。通常,可搜索加密方案的基本策略是:发送者将加密数据和关键词上传至云服务器,数据用户发送一个由数据拥有者授权的关键词陷门给云服务器,云服务器执行关键词密文和搜索陷门的匹配算法。若云服务器判断密文和陷门相互匹配,则将密文数据发送给数据用户,其间需确保云服务器无法获得关键词和明文数据的任何信息。

Song等人首次提出了一个具体的可搜索加密方案(BOOP-PEKS)[2]。其中,云服务器利用陷门信息与数据库中所有密文关键词逐一进行匹配比对:若匹配成功,则表明检索到关键词,随即将目标文件返回给数据使用者;若匹配不成功,则表明服务器上未存储相关文件。Golle等人讨论了如何将关键词连接后进行搜索,并提出支持多关键词连接的可搜索加密方案[3]。Ballard提出利用双线性映射、支持关键词连接的可搜索加密方案,其中关键词长度是固定的[4]。Boneh考虑了邮件加密环境,提出单关键词加密搜索方案[5]。李真等人在半诚实的云服务器环境下弱化第三方的功能,利用双线性对的性质,在不增加额外交互的前提下解决了加密文档的密钥分发问题[8]。Miao等人提出了一种多关键词搜索加密方案,该方案支持多关键词搜索,同时具有密文的完整性验证能力[9]。郭丽峰等人引入了发送者和服务器的身份验证环节,用于抵制离线关键词的猜测攻击[10]。张键红等人提出可验证的多关键词搜索加密方案,在支持多关键词搜索的同时,保证了文件的前向安全性[11]。

在现有各方案的基础上,我们设计了一种面向云存储的多关键词可验证搜索加密方案。本方案效率较高,且支持对关键词和文档的增减。

1 系统模型与双线性映射

1.1 系统模型

在云环境下,系统模型中主要包含以下4个实体部分:参数生成和审计中心;云服务器;数据拥有者;数据用户。系统模型结构如图1所示。参数生成和审计中心是诚实的,其功能是初始化系统参数以及对返回的搜索文档进行验证。云服务器可以存储加密文档和加密索引,同时对数据用户提交的查询请求予以响应,通过安全的匹配查询验证后返回查询结果,并提交给审计中心,再经验证后返回给数据用户。数据拥有者负责为将要上传的文档选取对应的关键词,生成加密文档和文档关键词索引并将其打包后发送到云服务器,同时为数据用户提供查询授权令牌的功能。数据用户,可以向数据拥有者索要关键词,生成搜索令牌,并将令牌提交给云服务器,最终得到验证后的搜索结果。

图1 系统模型结构

模型中基本符号的定义如表1所示。

表1 模型基本符号

1.2 双线性映射的性质

设G1、G2是阶为素数P的乘法循环群,g是G1的生成元,则双线性映射e:G1×G2→G2具有以下3个条性质:

(1) 双线性。对于任意元素,u,v∈G1,且a,b∈Zp,有e(ua,vb)=e(u,v)ab。

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

(3) 可计算性。对于任意元素,u、v∈G1,e(u,v)的计算很简单。

2 多关键词可验证搜索加密方案的构建

2.1 系统参数的初始化

输入一个安全参数k,调用初始化函数setup(k)算法,生成双线性对加密系统中的参数,如P、G1、g1、G2、g2、e等。P是一个大系数,e为双线性映射(e:G1×G2→G2),g1,g2为循环群G1、G2的生成元。在方案的后续设计中,需要用到2个哈希函数(H1、H2):

H1:{0,1}*→G1

H2:{0,1}*→Zp

系统的公开参数有:Pa={P,G1,g1,G2,g2,e,H1,H2}。

2.2 加密搜索密钥对的生成

(1) 数据拥有者的密钥对。随机选择d∈Zp为私钥,对应的公钥为:

(1)

(2) 验证用的密钥对。随机选择s∈Zp为私钥,对应的公钥为:

(2)

(3) 云服务器方的密钥对。随机选择c∈Zp为私钥,对应的公钥为:

(3)

这里,PKd、PKc、PKs是需要公开的公钥,私钥d、c、s归各方私密保存。

2.3 文件密文和文件签名的生成

数据拥有者利用一个可靠的常用对称加密算法E(ek,Fi),i∈{1,…,n},计算每个文件Fi的密文Ci:

Ci=E(ek,Fi)

(4)

同时,利用文件标签和哈希函数指针计算每个文件验证所所需的签名:

(5)

这里FIDi为Fi的文件标签,H1(FIDi)表示针对文件标签的H1哈希函数,H2(Ci)表示针对密文的H2哈希函数。

2.4 关键词搜索索引的生成

每个文件都有m个关键词,即W={w1,…,wm};因此,以数据拥有者的私钥d为种子,利用哈希函数H1生成关键词搜索索引:

(6)

(7)

式中:i=1,2,…,n;j=1,2,…,m。

文件Fj的总体索引为:

(8)

全部文件的索引集合则为:

I={I1,…,Ij,…,In}

(9)

数据拥有者将生成的全部文档搜索信息包(C,SIG,I)上传到云服务器端,存储加密的文件,并支持多关键词的搜索和密文验证。

2.5 关键词搜索令牌的生成

针对当前搜索产生一个随机数α,α∈Zp,生成令牌:

(10)

(11)

得到令牌T,T=(t0,t1,…,ti,…,tm);最后,由数据拥有者将令牌T发送给用户。

2.6 多关键词搜索算法的设计

用户得到搜索令牌T后即可上传给云服务器,然后运行文档进行搜索,进而获得关键的文档密文。云服务器对令牌进行搜索运算:

输入令牌(T,L),搜索信息包(C,Sig,I),公开参数为Pa;

输出搜索到的密文集合C′和文件标准参数PID′,算法如下:

C′=Φ;PID′=Φ

forj=1 tondo

then

C′=C′∪{Cj}

FID′=FID′∪{FIDj}

end if

end for

return C′ and FID′

2.7 加密文档验证算法的设计

审计方对云服务器准备返回给用户的密文进行审核,验证其是否被篡改,以保证搜索结果的可靠性[11]。其验证过程如下:

(1) 审计方选择一组随机数{y1,…,yr}发给云服务器,其中r为C′集合中元素的个数 。

(2) 云服务器将计算的φ值返回给审计者,其算式如式(12):

(12)

(3) 审计者对返回的φ值进行验证,其算式如式(13):

(13)

若式(13)成立,则表明文档是可靠的。最后,将没有被篡改的加密文档返回给数据用户。

3 算法的安全性分析

若模型的各参与方遵循方案设计的所有环节,那么搜索算法就可以充分保证已获正确授权用户的权益,为其提供相应关键词的正确密文。这是因为,用令牌T对加密文件Fi进行搜索,进行了以下匹配对比:

(14)

(15)

该方案的安全性依赖于离散对数的安全性,在文件索引中借助数据拥有者的私钥构建索引,以保证索引不可伪造。同时,在搜索令牌的生成当中,即使检测的关键词相同,若随机参数不同其每次搜索的令牌也会不同,因此云服务器方不能猜测出关键词的内容。此完整性验证方案的算法基于Shacham 和 Waters 的远程数据完整验证方案[6],在安全模型下被证明可以抵制云服务器的篡改和删除攻击。

在生成加密文件、关键词搜索索引以及搜索关键词的索引令牌时,文件和关键词的编号均可以方便地加以扩展。其中,只是增加了检索结果的数量,而不会影响已有的检索结果。

4 结 语

经过本次研究,构造了一个支持加密文档验证的多关键词搜索公钥加密方案。本方案具有较高的安全性,能够抵制离线状态下对关键词的猜测和攻击,且对文档和关键词的修改具有良好的适应性。不足之处是,在搜索中需要提供关键词的位置信息,这给系统的安全性带来隐患。如果能够构造一个无需关键词位置信息的方案,则更符合实际应用。一种可行的方案是,利用布隆过滤器[12]来实现位置信息的传递。这一点将在后期研究中予以实现。

猜你喜欢
拥有者令牌密文
基于Stackelberg博弈的异步联邦学习激励机制设计
一种针对格基后量子密码的能量侧信道分析框架
称金块
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
美德伦理品质有利于其拥有者
基于路由和QoS令牌桶的集中式限速网关
动态令牌分配的TCSN多级令牌桶流量监管算法
计算机工程(2018年8期)2018-08-17 00:26:54
云存储中支持词频和用户喜好的密文模糊检索
一种基于间接互惠的计算网格合作激励机制研究*
电信科学(2011年9期)2011-06-27 02:30:04