基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备

文档序号:37906688发布日期:2024-05-09 21:54阅读:9来源:国知局
基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备

本发明涉及区块链和可搜索加密,尤其涉及一种基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备。


背景技术:

1、随着云计算及大数据的流行,越来越多的敏感数据集中到云端,信息共享在我们的生活中无处不在,数据的安全和用户的隐私保护就成为一个重要的课题。为了保证数据安全和用户隐私,数据一般是以密文形式存储在云端服务器中,但是用户将会遇到如何在密文上进行查找的难题。可搜索加密(searchable encryption,se)一种支持用户在密文上进行关键字查找的密码学原语,它能够为用户节省大量的网络和计算开销,并充分利用云端服务器庞大的计算资源进行密文上的关键字查找。

2、可搜索加密作为一种很有前途的加密原语,致力于在不牺牲数据可搜索性的情况下保证数据的机密性,适合解决云存储环境中的数据安全性问题。但是,现有的加密方法大多存在易受自适应泄漏攻击或不能满足实际应用效率要求的问题,特别是可搜索公钥加密方法。传统可搜索加密方法中多数使用中央搜索云服务器,但中央服务器可以不受限制地执行陷门测试和密文匹配,这种能力过于强大且无法监督,存在单点故障问题。


技术实现思路

1、本发明的目的在于,提供一种基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备,能够保证数据的前向安全性,提供正确的陷门以保证搜索数据的正确性和可靠性,并基于区块链网络智能合约实现去中心化,消除了对中央搜索云服务器的需求。

2、为达到上述目的,本发明采用下述技术方案实现:

3、第一方面,本发明提供一种基于区块链具有前向安全的可搜索加密方法,包括:

4、全局初始化,密钥生成中心生成并发布公共参数,数据使用者du根据公共参数分别生成公钥kpub和私钥kpriv;

5、数据拥有者do对共享的文件进行预处理,获取预处理的结果;对共享的文件进行加密得到文件密文,上传至云服务器cs;云服务器cs接收文件密文后,将文件密文的地址集d返还给数据拥有者do;

6、数据拥有者do将文件密文的地址集d映射到椭圆曲线上得到地址映射点集m,并基于公钥kpub对地址映射点集m加密得到密文地址集c;构建索引ind以及存储结构,并根据索引ind和存储结构更新得到映射block,将映射block上传至区块链网络bs;

7、在数据使用者du进行搜索时,数据使用者du通过公共参数、公钥kpub和私钥kpriv生成目标关键字ω0的陷门并发送给区块链网络bs;

8、区块链网络bs基于智能合约执行搜索,检验陷门tω与索引ind的访问控制策略的匹配情况,获取搜索匹配的结果集合w;

9、数据使用者du使用私钥kpriv对搜索匹配的结果集合w进行解密获取解密数据,并发送至云服务器cs;

10、云服务器cs根据解密数据,匹配相应的文件返回给数据使用者du。

11、可选的,所述全局初始化,密钥生成中心生成公共参数发动给数据使用者du和数据拥有者do,数据使用者du根据公共参数生成公钥kpub和私钥kpriv,包括:

12、密钥生成中心基于安全参数λ生成公共参数,所述公共参数包括三个抗碰撞哈希函数(h1,h2,h3)、伪随机函数f、椭圆曲线e和公共缓冲区buffer;其中,哈希函数为h1:{0,1}*→{0,1}λ、h2:{0,1}*→{0,1}1+logn+2λ和h3:{0,1}*→{0,1}2λ;e为有限域zp内的椭圆曲线,其阶数为大素数p,p>2λ;伪随机函数为f:{0,1}λ×{0,1}λ→{0,1}λ;公共缓冲区是buffer={cntω1,cntω2...cntωn},ω为关键字,ω1,ω2...ωn为n个不同的关键字,cnt为文件块数;

13、基于椭圆曲线e生成数据使用者du的公钥kpub和私钥kpriv,如下:

14、kpub=(e,zp,p,q)

15、kpriv=s

16、其中:q=sp为椭圆曲线e上的一个点,是数据使用者du的公钥kpub的一部分,p为椭圆曲线e上的一个具有大素数阶的点,s为秘密整数。

17、可选的,所述数据拥有者do对共享的文件进行预处理,获取预处理的结果;对共享的文件进行加密得到文件密文,上传至云服务器cs;云服务器cs接收文件密文后,将文件密文的地址集d返还给数据拥有者do,包括:

18、数据拥有者do对共享的文件doc进行预处理,获取预处理结果;其中,预处理包括:提取文件的关键字ω,记录对应操作集op;预处理结果包括:关键字ω和对应操作集op(op1,op2...opn);

19、基于数据拥有者do的文件加密密钥,对文件进行加密得到文件密文doc,并上传至云服务器cs;

20、云服务器cs向数据拥有者do返回文件地址d,数据拥有者do将文件地址d与文件的关键字ω进行关联,得到文件密文的地址集d;

21、可选的,所述基于公钥kpub对地址映射点集m加密得到密文地址集c,包括:

22、基于地址映射点集m(m1,m1...mn),获取明文mi,所述明文mi是地址映射点集m的一个点;

23、随机生成大整数z;

24、基于大整数z和明文mi,计算得到密文地址集c,计算公式为:

25、i=-mi-zp

26、j=zq-2mi

27、ci=(i,j),i∈n

28、c=(c1,c2...cn)

29、其中:ci为密文地址集c中的一个密文地址,p为椭圆曲线e上的一个具有大素数阶的点,q为椭圆曲线e上的一个点,是数据使用者du的公钥kpub的一部分。

30、可选的,所述构建索引ind以及存储结构,并根据索引ind和存储结构更新得到映射block,包括:

31、基于数据使用者du的公钥kpub与大整数z,得到索引ind,公式为:

32、r=(1-z)p

33、s=(z-1)q

34、ind=(r,s)

35、数据拥有者do通过数据使用者du的公钥kpub计算出关键字ω的状态信息sω←f(kpub,ω);

36、取出公共缓冲区buffer与关键字ω对应的文件块数cnt,当cnt=null,则表示的链式结构中还没有地址数据,此时令cnt←0,最新状态state0←null,结点密钥;当cnt≠null,则表的链式结构中已有地址数据,此时取出开始结点的状态statei;

37、创建每一个地址数据的结点,并生成该结点的状态state*和内容block;

38、state*←h1(sω||cnt)

39、

40、其中:h1、h2为步骤s31求出的哈希函数,opi为该结点的操作方式即添加或删除;

41、所有地址数据的结点创建成功后,重新计算头结点;头结点的内容

42、将该结点内容block存入映射block中,文件块数cnt自增表示下一个结点,并转换为最新状态,使得下一个结点链接到该结点,循环计算每一个地址数据结点,形成隐式的带头结点的链表结构。

43、可选的,所述数据使用者du通过公共参数、公钥kpub和私钥kpriv生成目标关键字ω0的陷门包括:

44、数据使用者du在公共缓冲区buffer寻找目标关键字ω0对应的文件块数cnt;

45、利用数据使用者du的公钥kpub计算出目标关键字ω0的状态信息

46、基于文件块数cnt生成目标关键字ω0的隐式链表结构的最新更新状态

47、利用koblitz的方法将目标关键字ω0映射为a点,并以此计算陷门公式如下:

48、b1=(s-1)a

49、b2=sa

50、

51、其中:b1和b2为陷门的一对点,s为秘密整数。

52、可选的,所述区块链网络bs基于智能合约执行搜索,检验陷门tω与索引ind的访问控制策略的匹配情况,获取搜索匹配的结果集合w,包括:

53、s51、获取数据;

54、区块链网络bs通过接收数据使用者du提供的陷门数据使用者du的公钥kpub,并通过检索区块链网络bs中的事件日志来获取有关区块链活动的信息;

55、寻找存储映射block的区块,并基于区块链网络bs提供的用于访问区块链状态数据的接口获取映射block;

56、s52、确认目标区块的映射block;

57、基于陷门获取目标关键字ω0的隐式链表结构的最新更新状态state';

58、基于映射block获取对应的结点内容block;

59、通过目标关键字ω0的隐式链表结构的最新更新状态state',获取第一个结点的状态密文

60、判断映射block中是否存在第一个结点的状态密文state;

61、若存在,即block[state]≠null,则直接访问该区块的映射block;

62、若不存在,即block[state]=null,则状态密文state'存在错误或不存在与目标关键字ω0相关的任何数据,结束搜索,直接访问下一个存储映射block的区块;

63、s53、遍历与匹配存储地址数据的隐式链表结构;

64、设置y←φ作为所有搜索结果的集合,g←φ作为删除地址数据的集合,w←y-g作为搜索匹配的结果集合。

65、在步骤s52确认目标区块的映射block后,对该映射block进行搜索;

66、当state≠null时,计算出该地址数据结点的密文block←block[state];

67、获取该文件的存储地址和下一个结点的状态密文

68、基于陷门索引ind=(r,s)和数据使用者du的公钥kpub=(e,zp,p,q),计算c′i,公式如下:

69、i'=b1-b2-p+r

70、j'=2(b1-b2)+q+s

71、c′i=(i',j')

72、其中:b1和b2为陷门的tω一对点,s为秘密整数,q=sp为椭圆曲线e上的一个点,是数据使用者du的公钥kpub的一部分,c′i为ci的校准点。

73、当c′i=ci,则基于操作方式op将地址数据放入对应的集合y或集合d中,获取搜索匹配的结果集合w;

74、当c′i≠ci,则直接进入下一个地址数据结点的搜索。

75、可选的,所述数据使用者du使用私钥kpriv对搜索匹配的结果集合w进行解密获取解密数据,包括:

76、基于数据使用者du的私钥kpriv和密文地址集c,获取地址映射点集m,公式为:

77、m=-(si+j)(s+2)-1

78、其中:ci=(i,j),i∈n为密文地址集c中的一个密文地址,密文地址集c=(c1,c2...cn),s为秘密整数。

79、第二方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面所述的基于区块链具有前向安全的可搜索加密方法的步骤。

80、第三方面,本发明提供一种计算机设备,包括:

81、存储器,用于存储指令;

82、处理器,用于执行所述指令,使得所述设备执行实现如第一方面所述的基于区块链具有前向安全的可搜索加密方法的操作。

83、与现有技术相比,本发明所达到的有益效果:

84、(1)本发明能够保证数据的前向安全性,提供正确的陷门以保证搜索数据的正确性和可靠性,并通过区块链网络消除了传统方案中对中央搜索云服务器的需求,实现去中心化,解决单点故障问题。

85、(2)本发明中数据使用者在提供正确的陷门并基于陷门执行搜索,确保搜索结果的正确性和可靠性。

86、(3)本发明通过椭圆曲线加密在密钥大小方面提供了很好的安全性,小的密钥提供了紧凑的实现,加密操作在较小的芯片或复杂的软件上运行得更快。

87、(4)本发明提出区块链网络智能合约取代中央搜索云服务器现去中心化,消除了对中央搜索云服务器的需求,解决了单点故障问题。

88、(5)本发明通过检验陷门与索引的访问控制策略的匹配情况,获取搜索匹配的结果集合,加密数据采用隐式链式存储结构,通过一种文件计数器的方式实现版本控制功能,使得使用原来的陷门无法搜索得到后来更新的数据,保证了本加密方法的前向安全性。

89、(6)本发明通过构建智能合约实现搜索查询功能,搜索查询完成后,搜索结果将作为合同状态公开存储,区块链网络中的每个节点都可以对其进行验证,区块链的共识属性既保证了搜索结果的正确性,同时又解决了云服务器作为半诚实参与者的安全问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1