一种基于可搜索加密的密文查询方法技术

技术编号:29299681 阅读:54 留言:0更新日期:2021-07-17 01:15
本发明专利技术公开了一种基于可搜索加密的密文查询方法,包括索引构建和用户“查找”。索引构建包括:首先生成密钥sk,并对输入对消息M加密,得到C;然后构建索引I并建立I和C的对应关系,对索引I的字符串进行分切;用LSH对索引I进行哈希映射,并生成BF;最后将BF和对应加密值C打包上传到数据库中。用户“查找”包括:输入查询内容m,对m进行切分,并用LSH函数生成BF

A ciphertext query method based on searchable encryption

【技术实现步骤摘要】
一种基于可搜索加密的密文查询方法


[0001]本专利技术涉及数据加密查询
,具体为一种基于可搜索加密的密文查询方法。

技术介绍

[0002]目前为了提高数据的安全性和降低隐私泄露的风险,常将数据以加密的形式存储在诸如邮件服务器和文件服务器之类的数据存储服务器上,但这通常意味着必须为安全而牺牲某些功能(如搜索功能)。例如,如果数据存储服务的用户只希望检索包含某些单词(关键词)的文档,则以前的工作不知道该如何让数据存储服务器执行搜索并回应用户的查询(返回与查询相关的加密文档),而又不会损害数据的机密性。
[0003]为了解决上述问题,需要一种新的密文查询方法。

技术实现思路

[0004]本专利技术的目的在于提供一种基于可搜索加密的密文查询方法,能够让数据存储服务器执行搜索并回应用户的查询,同时又可以对数据进行保密。
[0005]为实现上述目的,本专利技术提供如下技术方案:一种基于可搜索加密的密文查询方法,包括以下步骤:
[0006]第一步,建立索引;
[0007]首先,通过密钥生成器生成一个对称加密的密钥sk,然后利用加密算法对需要加密的存储于数据存储服务器上的数据M进行加密,得到加密数据C=E_sk(M);
[0008]然后构建一个索引I,并建立索引I与加密数据C的对应关系(I,C),同时初始化一个全零的比特串,该比特串的索引下标对应切分字符串的对应内容;
[0009]接着对索引的字符串进行切分,并在对应位置置为1,得到的比特串记为b;
[0010]然后初始化一个布隆过滤器BF,用两个LSH哈希函数对上述得到的比特串b进行哈希并在对应位置置1,其他位置置为0;
[0011]最后将(BF,C)捆绑后上传到数据库;
[0012]第二步,查找;
[0013]首先,将输入的查询内容按照与切分索引字符串相同的方式进行切分,并利用两个LSH函数对对应位置置为1,其他位置置为0,记为BF


[0014]然后对BF

和BF按位进行异或操作,并计算1的个数,其中1的个数的一半是匹配度评分;
[0015]当评分度小于设置的阈值时,返回BF对应数据库中的密文内容C;
[0016]然后利用密钥sk和对称加密算法AES或DES对C进行解密,并将对应的数据M返回给用户。
[0017]优选的,在第一步中,对数据M进行加密的算法为AES或DES算法。
[0018]优选的,在第一步中,对索引的字符串按照两个字符长度进行切分。
[0019]优选的,在第一步中,初始化的比特串长度为26*26+1。
[0020]与现有技术相比,本专利技术的有益效果如下:
[0021](1)为加密提供了可证明的机密性,从某种意义上讲,对不受信任的服务器仅给出密文,它就无法或难以学习到有关明文的任何信息;
[0022](2)为搜索提供查询隔离,这意味着不受信任的服务器除了搜索结果之外,无法了解到更多有关纯文本的信息。
附图说明
[0023]图1为本专利技术方法流程框图;
具体实施方式
[0024]下面将结合本专利技术的实施例,对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]请参阅图1,本专利技术提供一种技术方案:一种基于可搜索加密的密文查询方法,包括数据的索引构建和数据存储服务器执行用户“查找”。
[0026]数据的索引构建方法,包括以下步骤:
[0027]首先,通过密钥生成器生成一个对称加密的密钥sk,然后利用AES或DES算法对需要加密的存储于数据存储服务器上的数据M进行加密,得到加密数据C=E_sk(M);
[0028]然后构建一个索引I,并建立索引I与加密数据C的对应关系(I,C),同时初始化一个全零的比特串,其长度为26*26+1,该比特串的索引下标对应切分字符串的对应内容,如aa对应于该比特中的第1位;
[0029]接着对索引的字符串按照两个字符长度进行切分,如baidu={ba,ai,id,du},并在对应位置置为1,得到长度为26*26+1的比特串,记为b;
[0030]然后初始化一个布隆过滤器BF,用两个LSH哈希函数(局部敏感哈希函数)对上述得到的比特串b进行哈希并在对应位置置1,其他位置置为0;
[0031]最后将(BF,C)捆绑后上传到数据库;
[0032]数据存储服务器执行用户“查找”的方法,包括以下步骤:
[0033]首先,将输入的查询内容按照与切分索引字符串相同的方式进行切分,并利用两个LSH函数对对应位置置为1,其他位置置为0,记为BF


[0034]然后对BF

和BF按位进行异或操作,并计算1的个数,其中1的个数的一半是匹配度评分;
[0035]当评分度小于设置的阈值时,返回BF对应数据库中的密文内容C;
[0036]然后利用密钥sk和对称加密算法AES/DES对C进行解密,并将对应的数据M返回给用户。
[0037]尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本专利技术的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本专利技术的范围由所附权利要求及其等同物限定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可搜索加密的密文查询方法,其特征在于,包括以下步骤:第一步,建立索引;首先,通过密钥生成器生成一个对称加密的密钥sk,然后利用加密算法对需要加密的存储于数据存储服务器上的数据M进行加密,得到加密数据C=E_sk(M);然后构建一个索引I,并建立索引I与加密数据C的对应关系(I,C),同时初始化一个全零的比特串,该比特串的索引下标对应切分字符串的对应内容;接着对索引的字符串进行切分,并在对应位置置为1,得到的比特串记为b;然后初始化一个布隆过滤器BF,用两个LSH哈希函数对上述得到的比特串b进行哈希并在对应位置置1,其他位置置为0;最后将(BF,C)捆绑后上传到数据库;第二步,查找;首先,将输入的查询内容按照与切分索引字符串相同的方式进行切分,并利用两个LSH函数对对应位置置为...

【专利技术属性】
技术研发人员:李朋林杨赟博张懿嘉
申请(专利权)人:上海同态信息科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1