一种基于伪随机函数和区块链智能合约的可搜索加密方法
文献发布时间:2024-01-17 01:20:32
技术领域
本发明属于网络信息安全技术领域,特别涉及一种基于伪随机函数和区块链智能合约的可搜索加密方法。
背景技术
在当今的信息时代,云技术作为一种重要的技术得到了广泛关注和发展,云存储服务作为其较为核心的应用技术也备受人们的重视和研究。云存储服务可以为个人或者企业提供方便而又灵活的额外存储空间而得到广泛应用。然而在大数据潮流下,数据隐私的泄露给人们带来巨大困扰,以明文存储的方式显然无法满足数据的隐私和安全需求。事实上,近年来由于黑客攻击,内部人员泄露或私下买卖用户数据库的事件层出不穷,保障云存储服务的数据隐私安全成为迫切需求。另一方面,如果用户将存储文件以传统加密的形式上传到云服务器又将导致一个问题:出于安全考虑,只有数据用户拥有密钥,若想查找含有某一关键字文件时,只能从服务器上下载全部文件,效率极低。因此,为了实现对加密文件的检索功能,可搜索加密技术应运而生。
现有的可搜索加密技术已经取得了很多的研究成果,如:公钥可搜索加密技术、支持多关键字的可搜索加密技术等。区块链出现后,随之而来的是如何将传统的数据存储和共享移植到分散的存储系统中。现有技术随着数据的大量存储会导致区块链的扩张,无法实现对数据的细粒度访问控制,同时没有提供索引的更新功能,而在可搜索加密中生成新关键字集合或者删除已有关键字是必要的。此外,对于执行搜索功能时并未同时考虑数据请求者的访问权限,而文件的敏感性程度大小是不同的。因此,除在系统初始阶段进行数据请求者的身份认证外,在搜索阶段也同样需要考虑请求者的权限大小。
发明内容
有鉴于现有技术的上述缺陷,本发明的目的在于提供一种基于伪随机函数和区块链智能合约的可搜索加密方法及系统,对需要存储的文件进行预处理并生成加密文件发送给区块链智能合约,同时将加密的文件索引数据存储在区块链中,以便后续的查询等操作。
为了实现上述目的,本发明提供了一种一种基于伪随机函数与智能合约的可搜索加密方法,其特征在于,所述方法我具体为:
S101、系统初始化,数据所有者随机选取安全参数p,同时选择两个伪随机函数,之后由数据所有者生成密钥组,将其中一部分密钥作为第一密钥组共享至数据用户,将剩余密钥作为第二密钥组共享至数据搜索者;
S102、关键字提取及加密排序,数据拥有者基于明文文档提取关键字集W,并采用倒排序索引数据结构实现多关键词排序搜索,将包含关键字集W的文件标记为F(W),且
S103、加密索引构建,根据所述S102的索引排序方式,数据所有者基于第二密钥组K2构建包含验证数据的加密索引;
S104、生成搜索令牌,数据用户基于搜索关键字生成搜索令牌token=((G
S105、匹配搜索,数据搜索者基于第二密钥组K2和搜索令牌token检索密文,执行search(EnIndex,token)→(EnW,F
S106、验证搜索结果,由数据搜索者执行Verify(T(G
S107、解密密文,数据用户基于第一密钥组K1以及检索到的密文EnW,解密得到明文文件C=w.Dec(K1,EnW)。
进一步地,所述两个伪随机函数分别为G
进一步地,所述加密索引包括一个检索表T和加密文件标记。
进一步地,所述检索表T是一个键值对<key,value>结构,其中的键字段key包含伪随机函数G1的输出,值value字段包含一个二元组<value,test>,其中value存储文件标记数组的加密地址,test字段存储基于多关键字搜索结果的验证结果,用于验证数据的完整性和正确性。
进一步地,步骤S103的所述加密索引构建具体包括:
第一步,数据所有者为排序后的每个关键字集W的G
第二步,将value字段设置为
第三步,将test字段设置为G
第四步,F
第五步,数据所有者将加密索引设置为EnIndex=(T,Enf),最后将(EnIndex,EnW)外包至云平台。
进一步地,步骤S105的所述匹配搜索具体包括:
第一步,所述云平台捕获数据搜索者所发布事件,将事件解析为元组(G1(W),G1(W||0),G1(W||1))来执行搜索操作;
第二步,在在检索表中,第三方云平台使用G
第三步,云平台计算
第四步,云平台发送F
进一步地,步骤S106的所述验证搜索结果具体包括:
云平台收到的证明数据为T(G
进一步地,所述数据所有者用于对需要存储的文件进行预处理处理并生成加密文件数据发送给区块链智能合约。
进一步地,所述区块链智能合约用于接收数据持有者发送的预处理后的数据,并根据说明书描述的方案处理数据,将加密的文件索引数据存储在区块链中。
本发明的另一目的在于提供一种基于伪随机函数与智能合约的可搜索加密方法的可搜索加密系统,所述可搜索加密系统包括:
数据所有者,用于随机选取安全参数p和选择两个伪随机函数,生成密钥组,将其中一部分密钥作为第一密钥组共享至数据用户,将剩余密钥作为第二密钥组共享至数据搜索者;
数据搜索者,用于提取关键字集W,并采用倒排序索引数据结构实现多关键词排序搜索,将包含关键字集W的文件标记为F(W),且
数据用户,用于生成搜索令牌token=((G
数据搜索者,用于检索密文,执行search(EnIndex,token)→(EnW,F
本发明的有益技术效果至少在于以下几点:
(1)高效保护数据资源:通过本发明能够保护数据持有者想要保护的数据文件,真实的数据文件存放在链下,与真实数据相关的加密数据文件存放在区块链了上,而只有经过区块链认证系统认证通过的用户才能执行相应的搜索功能,找到文件位置,数据的存储与访问者身份的验证以及加密数据的搜索相分离,极大的保护了数据资源的安全。
(2)实现数据访问及搜索的细粒度访问控制:数据用户在执行搜索功能时,会由预先设计的访问控制系统验证数据访问者的身份信息,当认证通过后,触发搜索合约,这里也就是由上述方案所体数据搜索者进行协助搜索,数据用户仅提供搜索令牌即可,不需知道其他更多信息,交由数据搜索者完成身下搜索功能,极大程度上保护了数据访问安全,对数据资源实现了更细粒度的访问控制。
附图说明
图1是本发明基于伪随机函数和区块链智能合约的可搜索加密方法示意图;
图2是本发明一种基于区块链的数据受控访问方法实施例示意图。
具体实施方式
下面对本发明的实施例作详细说明,下述的实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明公开了一种基于伪随机函数和区块链智能合约关键字集的可搜索加密方法,包括数据所有者:对需要存储的文件进行预处理处理并生成加密文件数据发送给区块链智能合约;区块链智能合约:接收数据持有者发送的预处理后的数据,处理数据,将加密的文件索引数据存储在区块链中,以便于后续的查询等操作。本发明可以将文件中关键字和文件索引加密后存储在区块链中。
基于伪随机函数和区块链智能合约关键字集的可搜索加密方法具体介绍如下,该方案主要由两部分组成,数据所有者:对需要存储的文件进行预处理处理并生成加密文件数据发送给区块链智能合约;区块链智能合约:接收数据持有者发送的预处理后的数据,根据说明书描述的方案,处理数据,将加密的文件索引数据存储在区块链中,以便于后续的查询等操作。
下面结合附图对本发明的应用原理作详细的描述。
实施例1
如图1所示,本发明一种基于伪随机函数和区块链智能合约关键字集的可搜索加密方法,具体如下:
(1)系统初始化阶段:数据所有者随机选取安全参数p,同时选择两个伪随机函数分别为G
(2)关键字提取及加密排序:数据拥有者基于明文文档提取关键字集W,并采用倒排序索引数据结构实现多关键词排序搜索,将包含关键字集W的文件标记为
(3)加密索引构建:根据上述索引排序方式,数据所有者基于第二密钥组K2构建包含验证数据的加密索引。其中加密索引的组成包含一个检索表T和相关的加密文件标记,检索表T是一个键值对<key,value>结构,其中的键字段key包含伪随机函数G1的输出,值value字段又包含一个二元组<value,test>,其中value存储文件标记数组的加密地址;test字段存储基于多关键字搜索结果的验证结果,用来验证数据的完整性和正确性。数据所有者为排序后的每个关键字集W的G
(4)生成搜索令牌(构建陷门):数据用户基于搜索关键字生成搜索令牌token=((G
(5)匹配搜索,数据搜索者基于第二密钥组K2和搜索令牌token检索密文,执行search(EnIndex,token)→(EnW,F
(6)验证搜索结果:由数据搜索者执行Verify(T(G
(7)解密密文,数据用户基于第一密钥组K1以及检索到的密文EnW,解密得到明文文件C=w.Dec(K1,EnW),最终实现了加密文件的安全搜索定位及解密。
本发明实施例的一种基于伪随机函数与智能合约的可搜索加密方法的可搜索加密系统主要包括:
数据所有者,用于随机选取安全参数p和选择两个伪随机函数,生成密钥组,将其中一部分密钥作为第一密钥组共享至数据用户,将剩余密钥作为第二密钥组共享至数据搜索者;
数据搜索者,用于提取关键字集W,并采用倒排序索引数据结构实现多关键词排序搜索,将包含关键字集W的文件标记为F(W),且
数据用户,用于生成搜索令牌token=((G
数据搜索者,用于检索密文,执行search(EnIndex,token)→(EnW,F
实施例二
如图2所示,是一种基于区块链的数据受控访问方法实施例。在该数据访问场景下,数据的访问者可以依据自己的身份信息访问其他用户所存储的访问者所感兴趣的数据资源,实现过程如下:
(1)供应链上的企业A想要访问上游企业B的去年年度的内部财务报表;
(2)A企业向B企业发送注册请求,B企业为其生成相应的解密密钥K,同时使用共享密钥加密,随后会嵌入到区块链的智能合约中;
(3)将共享密钥通过可信通道发送给企业A;
(4)企业A想要访问的数据,已被企业B使用其主密钥加密后上传至IPFS文件系统,其位置由企业B记录,同时将该文件位置使用主密钥加密,上传到的智能合约中;
(5)当企业A向企业B发出访问请求时,企业B根据访问请求的描述信息,将相关事务ID附加在请求中,转发至区块链进行身份验证;
(6)当链上的访问控制系统对A进行身份验证成功后,触发智能合约执行条件,生成搜索令牌以及所附加的搜索权限然后调用搜索合约,将加密的密钥K以及文件地址返回给企业A;
(7)企业A根据预先接收到的共享密钥将K解密,再通过密钥K解密文件地址;
(8)企业A根据文件地址在IPFS分布式文件系统上检索到加密文件,再使用密钥K进行解密,得到明文数据。
综上所述,本发明所设计的基于区块链智能合约的加密数据搜索方法,实现了基于区块链对于加密数据的搜索,实现了链上搜索,链下访问。其中链上的搜索首先先经过链上的访问控制系统验证数据使用者的身份,之后根据搜索令牌检索加密数据,本方案支持数据的更新包括新增和删除,此外,在区块链上的搜索阶段考虑了搜索请求的权限大小,一定程度上保护了敏感性高的数据文件。对需要存储的文件进行预处理并生成加密文件发送给区块链智能合约,同时将加密的文件索引数据存储在区块链中,以便后续的查询等操作。本发明可以将文件中关键字和文件索引加密后存储在区块链中,经过身份认证的数据用户可以采用此方案检索所需文件位置。解决了传统方案难以解决的恶意云服务器问题,保证了搜索过程的安全性以及密文搜索结果的正确性。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的试验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
- 一种基于区块链动态智能合约的数据处理方法及终端
- 一种基于有向图的智能合约在区块链中实现的方法及装置
- 一种基于区块链智能合约实现的可搜索加密文件数据方法
- 基于区块链合约的可搜索加密方法