云存储的多关键字公钥加密搜索

2018-11-30 05:37陈志华
现代电子技术 2018年23期
关键词:接收者关键字公钥

向 军,陈志华

(湖北民族学院 信息工程学院,湖北 恩施 445000)

0 引 言

随着网络技术的发展,基于互联网技术的云计算应运而生。云计算是一种按需服务、扩展性强、使用方便的网络服务,是一种分布式计算形式。云存储技术由于具有成本低、容量大、扩容即时、访问透明等优点,受到很多用户的亲睐。越来越多的用户倾向于依赖云计算服务商提供的安全服务来确保他们的信息安全,安全隐忧随之而来:一种是来自外部黑客的攻击导致服务器信息泄露;另一种是内部人员在获得了足够高的权限时,可以绕开数据的安全访问控制策略,直接获取数据。为解决数据隐私保护问题,采用用户数据加密是较常见的解决方法,数据加密后再将其保存在服务器中。当存储在云端的加密数据形成规模之后,对加密数据的检索成为迫切需要解决的问题[1]。文献[2]提出一种使用流密码对关键字集进行加密和解密的方法,一次一密的使用方式对统计分析攻击具有很强的抵御力,不足之处在于搜索量比较大时,由于要逐次匹配密文信息,效率低。文献[3]中提出采用安全索引方法,该方法可以克服用简单索引算法导致的密文易受统计攻击的缺陷,但是需要大量的密钥序列,检索次数变多时,计算复杂度线性增加。文献[4]中提出一种关键字隐私保护的排序搜索算法,此算法思想是:当查询返回多个加密文档时,先对加密文档排序,然后再将查询中的最相关文档显示给用户。此算法不适用于多关键字查询。文献[5]提出基于关键字的公钥加密搜索算法,数据发送方使用数据接收者的公钥加密数据建立索引,发送到云端服务器,数据接收方使用自己的私钥完成搜索过程。但是目前的方案比较复杂,而且针对的一般是单关键字,适合多关键字的解决方案不完善,本文主要研究的是多关键字的公钥加密搜索方案。

1 基于关键字的公钥加密搜索方案

基于关键字的公钥加密搜索方案中的信息或文档的发送方可以是任何人,但是接收方必须使用自己的私钥才能完成搜索。该方案包括三个实体:

1)发送方:使用对称或非对称加密算法加密文档,然后使用接收方的公钥加密关键字集合来建立索引。

2)接收方:数据的接收者,也是搜索者,使用关键字陷门在服务器上完成搜索。

3)服务器:数据的存储地点,在接收者提供陷门时,进行关键字搜索匹配,匹配成功,返还加密数据给接收者;反之,不返还数据。

Boneh提出的PEKS方案中还包括密钥生成函数、加密函数、陷门函数、测试函数。主要步骤如下:

1)接收者选取安全参数k生成自己的公私密钥对(pk,sk),然后公布自己的公钥pk。

2)发送者将要发送的文档分为两个部分:文档数据和关键字集合,首先使用对称或非对称的加密方案加密文档,然后使用接收者的公钥加密关键字集合,将文档密文和关键字集合密文一起发送到服务器。

3)接收者进行搜索时,选择关键字以及自己的私钥,生成陷门,发送到服务器。

4)服务器测试函数匹配陷门,成功返还包含关键字密文文档给用户,反之返还无关键字密文文档。

5)接收者解密密文文档,获得文档信息。

可搜索公钥加密方案主要分为:单关键字可搜索加密方案、多关键字可搜索加密方案。文献[6]关注的是大量关键字搜索时的情形,线性索引结构在搜索时,作者通过把关键字通过哈希值划分到同一链表,在搜索时知道关键字分组,就能实现加速搜索的目的。文献[7]使用椭圆曲线加密体制对关键字集合进行加密,可以实现多关键字搜索,关键字必须是有序的,而且接收方在搜索时输入的关键字顺序必须和发送方顺序对应,同时在发送方产生的随机数服务器是不知道的,本文搜索的关键字顺序不需要和文本关键字顺序一样。

2 基于多关键字的公钥加密搜索改进方案

2.1 椭圆曲线加密体制

定义Fp为一个大素数域,Ep(a,b)为在域Fp上的椭圆曲线的点集合。定义一个非奇异的椭圆曲线方程y2=(x3+ax+b)modp,这里p是素数,a,b∈Fp,它们满足(4a3+27b2)modp≠0。椭圆曲线定义如下:Gp={(x,y):x,y∈Fp,(x,y)∈Ep(a,b)}⋃{O},O点表示“无穷远点”。在椭圆曲线中,其乘法定义如下:k.p=p+p+…+p(k个p相加)。如果n.p=O,且n取满足上述等式的最小正整数,则称点的阶为n。

2.2 方案算法实现

1)密钥产生:选择安全参数1k,随机选择一个整数a(a∈Z*p),用户的公私钥分别为:pk=A=ap,sk=a(p为椭圆曲线生成元)。

2)数据加密:发送方选择哈希函数(H1:{0,1}*→Z*p,表示将一个0,1数串映射到一个阶为q的素数域上某个数的HASH函数),并利用用户的公钥A对关键字集进行加密,算法如下:Mi=H1(Wi)P+A,1<i<m,算法的输出值为:S=[M1,M2,…,MM]。

如果关键字Wi=W′,那么:

搜索结果矩阵,如果P出现的个数为n,就说明搜索的关键字全部在文档关键字集合里面,关键字搜索成功,服务器返回密文文档。接收者解密密文文档获得文档信息。

2.3 安全性分析

基于椭圆曲线上的离散对数,以及单向的HASH函数构造而成是本文方案讨论的重点。通常基于椭圆曲线上离散对数构造出来的加密算法和基于离散对数和大数因子分解理论构造出来的相比,具有以下特点:密码安全级别高、密钢长度比较短、构造算法灵活性强,从而具备比较高的安全性[7]。针对整个可搜索公钥加密算法,本文主要从以下四个方面进行安全性分析:

1)明文的保密性:无论查询文档在发送到服务器之前采用的是对称加密算法,还是非对称加密算法,从安全性要求做到只有接收方在服务器关键字成功搜索后方可看见密文。上传和搜索的全部过程都要求查询文档是加密后的文档,若没有接收方的解密密钥,用户是无法获得查询文档的明文信息。

2)关键字的保密性:方案中两个子算法都涉及到了文档的关键字,一个是数据加密阶段Mi=H1(Wi)P+A,HASH函数不可逆且函数在客户端,服务器无法推导关键字信息;另一个是陷门加密阶段关键字都是进行M′=(H1(W′i)+a)-1计算的,服务器无法知道待搜索关键字的明文信息。

3)安全隔离查询:在服务器检索阶段,只有服务器在矩阵运算完成搜索P的数量匹配成功后,服务器才能搜索到相应的密文,并把密文发送到接收方,在整个过程中服务器对数据库里面的密文一无所知,数据对服务器是隔离的。

4)提供受控査询:若无合法用户的请求陷门,服务器无法成功搜索关键字的密文。也就是说,一方面接收者的私钥对其他用户来说是保密的,攻击者无法伪造,对查询关键字起到了控制作用;另一方面计算陷门时使用HASH函数算法,HASH函数算法嵌入在关键字加密算法中,对陷门生成又起到了控制作用。

3 结 语

关键字公钥加密搜索方案很好地解决了密文搜索问题,但是在多关键字的情况下,现有的多关键字的匹配运算比较复杂,运算效率不高,在对大量文件进行检索时,服务器检索效率低。本文提出了一种多关键字公钥加密搜索方案,公私钥对是基于椭圆曲线密码体制生成,在加密关键字时运用了单向的哈希函数,多关键字匹配时不需要待搜索关键字和文档关键字顺序保持一致,计算复杂度低,保密性较强。

猜你喜欢
接收者关键字公钥
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
基于SDN的组播安全机制
成功避开“关键字”
一种基于混沌的公钥加密方案
单粒子未知态的分级量子通信
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于格的公钥加密与证书基加密
浅谈信息接收者反馈不当现象及对策
多用户MIMO系统基于消息块预编码的可信通信技术