基于密钥协商协议以及可验证的一轮通信可搜索加密方法与流程

文档序号:31134499发布日期:2022-08-13 09:49阅读:284来源:国知局
基于密钥协商协议以及可验证的一轮通信可搜索加密方法与流程

1.本发明涉及可搜索加密领域,尤其是涉及一种基于密钥协商协议以及可验证的一轮通信可搜索加密方法。


背景技术:

2.基于可搜索加密的数据云存储方式在一定程度上解决了在云上数据可操作性的问题,并且能够支持多对多查询、范围查询,具有良好的可扩展性。但是现有的可搜索加密方法中,云服务器是诚实但好奇的,但在现实生活中,服务器往往是不可信的,因此对服务器搜索结果进行验证就显得很有必要。通过对智能合约中消息认证码异或值与云服务器返回的异或值进行比较,可以对搜索结果的正确性进行验证。另外,通过diffie-hellman密钥协商协议,数据使用者安全地利用密钥进行搜索以及解密,最后通过两次地址映射,数据使用者更快捷得获取到包含关键字的文档。


技术实现要素:

3.为弥补现有技术的不足,本发明提供了一种基于密钥协商(diffie-hellman)协议以及可验证的一轮通信可搜索加密方法。
4.本发明以下步骤:
5.1)数据拥有者通过密钥协商协议与数据使用者协商出密钥k,然后通过异或的方式,利用密钥k生成两个子密钥k1,k2;
6.2)数据拥有者利用哈希函数对文档中的每个关键字进行加密,生成密钥k3,k4;
7.3)数据拥有者利用伪随机函数、全局计数器以及k3,k4,生成标签label,以及文档id的索引值;
8.4)数据拥有者将生成的标签和索引值存储在加密数据库上,然后将加密数据库发送给智能合约;
9.5)对本地数据库中每个文档进行加密,并且为每个文档生成对应的认证码,将加密文档和消息认证码发送给云服务器,同时消息认证码发送给智能合约;
10.6)在搜索过程中,数据使用者通过diffie-hellman协议从数据拥有者那里获取密钥来生成搜索令牌;
11.7)查询时,智能合约首先根据搜索令牌搜索到包含关键字文档的加密id,并且计算id对应加密值所对应的消息认证码的异或值,同时将加密id发送到云服务器上,云服务器搜索到加密id对应的加密文档,然后将这个加密文档以及消息认证码的异或值发送给数据使用者;
12.8)数据使用者对云服务器发送过来的包含关键字的加密文档进行解密;
13.9)在验证过程中,数据使用者通过智能合约生成的消息认证码异或值,以及云服务器根据文档生成的消息认证码异或值来进行对比,从而判断云服务器返回的文档是否正确。
14.本发明的有益效果:本发明具有较高的实用性,适用于数据使用者和数据拥有者不是同一方的现实场景中。同时使用的是地址映射的方式,使得在搜索过程中的效率得到极大地提高。另外,通过对文档和关键字进行地址映射,数据使用者可以仅在一轮通信的方式下获取到对应的文档,并且本发明中的密钥协商协议是基于可计算的diffie-hellman,可以抵抗已知密钥攻击,uks攻击,具有较高的安全性,还通过对加密值的异或值进行对搜索结果进行验证。通过上述技术手段,使得本发明能够在保证效率的同时,极大地提高密文的准确性、完整性和机密性。
附图说明
15.图1为本发明原理图。
具体实施方式
16.如图1所示,基于diffie-hellman以及可验证的一轮通信可搜索加密方法,包括以下步骤:
17.1)数据拥有者通过密钥协商协议与数据使用者协商出密钥k,然后通过异或的方式,利用密钥k生成两个子密钥k1,k2;
18.2)数据拥有者利用哈希函数对文档中的每个关键字进行加密,生成密钥k3,k4;
19.3)数据拥有者利用伪随机函数、全局计数器以及k3,k4,生成标签label,以及文档id的索引值;
20.4)数据拥有者将生成的标签和索引值存储在加密数据库上,然后将加密数据库发送给智能合约;
21.5)对数据库中每个文档进行加密,并且为每个文档生成对应的认证码,将加密文档和消息认证码发送给云服务器,同时消息认证码发送给智能合约;
22.6)在搜索过程中,数据使用者首先通过diffie-hellman协议从数据拥有者那里获取密钥进行查询;
23.7)查询时,智能合约首先根据搜索令牌搜索到包含关键字文档的加密id,并且计算id对应加密值所对应的消息认证码的异或值,同时将加密id发送到云服务器上,云服务器搜索到加密id对应的加密文档,然后将这个加密文档以及消息认证码的异或值发送给数据使用者;
24.8)数据使用者对云服务器发送过来的包含关键字的加密文档进行解密;
25.9)在验证过程中,数据使用者通过智能合约生成的消息认证码异或值,以及云服务器根据文档生成的消息认证码异或值来进行对比,从而判断云服务器返回的文档是否正确。
26.优选地,在对要上传至云端的数据进行加密之前,首先需要对数据进行预处理。将文档以及文档内容提取成关键字/文档对,其中关键字/文档对中的文档指的是文档的id。
27.优选地,密钥k1的作用是利用关键字,生成密钥k3,密钥k3的作用则是用于生成标签label,标签label的生成便利了搜索过程中对文档id的定位,提高了搜索效率。密钥k2的作用是也是通过关键字,生成密钥k4,密钥k4的作用则是用于加密文档的id。
28.优选地,首先需要初始化一个全局计算器,全局计数器的初始值为0。在为每个关
键字以及文档id加密时,全局计数器就会累加1。通过伪随机函数来对全局计数器以及关键字生成标签label,用于对文档id的高效定位。
29.优选地,本发明将标签/文档对发送给智能合约,然后对本地数据库中的文件进行逐一加密,对文档的加密是利用伪随机函数与文档进行异或来实现的,提高了文档加密的安全性。将加密文档发送给云服务器,并且通过空间映射的方式,将每个加密文档映射到加密文档的id上。通过这种方式可以使得在保证安全性的同时,搜索效率得到提高。
30.优选地,通过将智能合约中加密文档id与消息认证码进行空间地址映射,在找到对应的加密id之后就可以通过这种方式计算消息认证码的异或值,在这种方式下可以快速对搜索结果进行验证。
31.实施例:
32.首先在对要上传至云端的数据进行加密之前,需要对数据进行预处理。将文档以及文档内容提取成关键字/文档id对。然后数据拥有者通过密钥协商协议与数据使用者协商出密钥k,然后通过异或的方式,利用密钥k生成两个子密钥k1,k2。
33.接着利用哈希函数对文档中的每个关键字进行加密,生成密钥k3,k4。然后,数据拥有者利用密钥k3生成标签label,标签label的生成便利了搜索过程中对文档id的定位。利用密钥k4加密文档的id。同时需要初始化一个全局计算器,全局计数器的初始值为0。在为每个关键字以及文档id加密时,全局计数器就会累加1。
34.接着,对文档进行加密并生成对应的消息认证码,将加密文档和消息认证码发送给服务器。然后,数据拥有者将生成的标签/索引值存储在加密数据库上,将加密数据库发送给智能合约并且通过空间映射的方式,将每个加密文档映射到加密文档的id上,同时将每一个加密id值与消息认证码进行空间映射。
35.在搜索过程中,数据使用者首先通过diffie-hellman协议从数据拥有者那里获取的密钥来生成搜索令牌,智能合约根据搜索令牌搜索到包含关键字文档的id,及其对应的消息认证码异或值,然后将id发送到云服务器上,云服务器搜索到id对应的加密文档,将这个加密文档以及消息认证码异或值发送到数据使用者,数据使用者再进行解密。数据使用者对云服务器发送过来的包含关键的加密文档进行解密。
36.在验证过程中,数据使用者通过智能合约生成的消息认证码异或值,以及服务器根据文档生成的消息认证码异或值来进行对比,从而判断服务器返回的文档是否正确。
37.本发明实现了数据使用者在收到包含关键字的文档id后,不需要再次通过id获取到相应的文档,实现了一轮通信搜索,既保证了安全性,又减少了客户端的通信开销和计算开销。本发明是基于可计算的diffie-hellman协议,保证了数据使用者能够安全地获取密钥。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1