一个基于区块链的数据多备份可搜索加密系统及方法

文档序号:34544962发布日期:2023-06-27 20:02阅读:31来源:国知局
一个基于区块链的数据多备份可搜索加密系统及方法

本发明涉及可搜索加密,特别涉及一个基于区块链的数据多备份可搜索加密系统及方法。


背景技术:

1、云上数据存储为用户节省了本地存储空间,但是用户的敏感隐私也会因此暴露在云服务提供商眼中,保护用户隐私最常见的解决方法就是用户将数据外包到云服务器之前对数据进行加密,针对于加密数据的搜索,研究人员引入了关键字可搜索加密技术,传统的云上可搜索加密中数据往往被云服务提供商存储在单一服务器上,但这种外包存储方式带来了访问不稳定性、数据入侵和数据损坏等风险和弱点。数据多服务器备份能对数据进行多份实时存储,各服务器之间可以通过数据互通的方式保存数据的一致性。

2、在多客户端云上可搜索加密技术中,客户端使用自己的密钥加密数据传输到云服务器上进行存储,因此,在云服务器上,尽管是加密文档中含有同一关键字,但是文档索引仍呈现了不同的数据形态,相等判定测试技术允许检查由不同的公共密钥加密的两个密文是否含有相同的关键字,而不能知道密文的任何信息。

3、现有的可搜索加密其中存在着几个需要解决的问题:一是用户数据被放在单一服务器上,若此服务器被攻击或发生损坏,用户数据就有丢失或被盗的风险;二是目前常用的可搜索加密技术中只考虑了交易双方诚实进行交易的情况,但在实际生产环境中,客户端和服务端在交易时可能会出现资金欺诈行为,客户端可能否认发送了搜索请求或否认收到的结果不正确从而拒绝支付搜索费用;服务端可能匹配错误的搜索结果或返回不完整的搜索结果给客户端来欺骗客户端支付的搜索费用;三是搜索结果需要进行完整性验证来保证搜索结果的真实有效性。因此,研究如何在区块链上部署一个可验证功能的公平可搜索加密技术,保证交易双方的公平性和可靠性是十分必要的。


技术实现思路

1、本发明的目的是提供一种基于区块链的具有可验证和多备份功能的可搜索加密系统及其方法,旨在解决目前单一服务器存储缺陷、交易双方缺乏信任、搜索结果完整性验证和搜索结果隐私保护的问题。

2、为实现上述目的,本发明采用的技术方案如下:包括五个部分,分别为:用于执行系统初始化、审批数据提供方和用户的注册请求、部署区块链合约和相应节点、分发密钥的系统管理员;用于生成数据标签、加密数据并上传到服务器、对发生恶意欺诈行为的服务器进行追责的数据提供方;发送搜索请求、预支付搜索费用的用户;由多个云服务器组成,用于存储数据、提供搜索操作、上缴押金、按照用户搜索请求匹配搜索结果、再处理搜索结果形成加密数据和授权搜索令牌的云服务端;由智能合约和对应部署节点组成,用于保证用户和云服务端之间公平交易的区块链。

3、进一步的,所述云服务端由各个云服务器组成,所述云服务器具有拜占庭容错机制,使用相等判定测试密钥keyid和该服务器身份id实现搜索匹配结果加密再处理,生成再处理加密数据resultid和相等判定授权令牌tdid。

4、进一步的,所述区块链包括搜索分发合约模块、相等判定合约模块、押金交易奖惩模块、数据节点和判定节点。

5、进一步的,所述搜索分发合约模块由搜索分发合约和搜索请求队列组成;所述搜索分发合约将用户搜索请求依据云服务端上各个云服务器的以太网地址进行分发;并调用押金交易奖惩模块;

6、所述搜索请求队列记录来自不同用户向区块链发送的的搜索请求和记录接收请求的时间,采用先进先出模式。

7、进一步的,所述押金交易奖惩模块用于记录交易双方的合约地址,保证双方交易的公平性,由交易合约、押金冻结合约、押金奖惩合约、状态列表、押金池和t-时间自动触发函数组成;

8、所述交易合约指的是在状态列表中记录交易发起方的的身份id、押金数目、交易请求发起时间,同时将其状态列表写入区块链数据节点中,同时调用了押金奖惩合约,其中,若用户为交易发起方,则用户被冻结的押金指的是用户预付的搜索费用;

9、所述押金交易奖惩模块用于保障用户和服务器双方资金交易的公平性,通过扣除押金来监督和威慑交易双方的不诚实行为,并为数据提供方提供了追责服务;

10、所述押金冻结合约指的是在交易发起方合约账户中扣除对应押金数目money并在押金池中冻结,同时触发一个t-时间自动触发函数;

11、所述押金池指的是区块链上押金奖惩模块在以太坊上注册的一个合约账户;

12、所述t-时间自动触发函数指的是一个延时押金退还函数,即若在t时间内,该函数没有被任何合约终止,则该函数在t时间后解冻交易发起方的押金,并自动退还给交易发起方的合约账户;

13、所述押金奖惩合约是依据相等判定合约模块的判定结果进行押金的支付、退还或扣除。

14、进一步的,所述相等判定合约模块包括相等判定合约列表、相等判定合约、相等判定结果投票合约、结果列表1、结果列表2、判定节点。

15、进一步的,所述相等合约判定列表记录服务器身份id、加密结果resultid、授权令牌tdid;所述判定节点执行相等判定算法,对接收的列表数据进行相等性判定,将判定结果写入结果列表中;

16、所述相等判定合约各个云服务加密的数据是否是同一关键字下的数据,相等判定合约使用授权令牌tdid和加密数据resultid,两两组合分发给判定节点,进行相等判断;

17、所述相等判定结果投票合约投票选择得票最高的云服务器的搜索结果认定真实有效的搜索结果,通过二次确定哪些云服务器具有恶意行为;

18、所述结果列表1记录相等判定合约第一次分发列表元素后,判定节点的判定结果,帮助认定真实有效的搜索结果;

19、所述结果列表2记录第二次判定节点的判定结果,帮助认定恶意服务器;

20、所述判定节点用于对各个服务器返回的加密数据resultid、授权令牌tdid进行执行判定算法,并将判定结果写入所述结果列表。

21、进一步的,所述押金交易奖惩模块和相等判定合约模块中的数据节点用于写入服务器返回的加密数据resultid、交易双方的交易历史,形成公开账本;

22、进一步的,

23、本发明中还提供一种基于区块链的数据多备份可搜索加密方法,包括以下步骤,

24、步骤1:系统管理员初始化得到系统参数k,通过系统参数计算数据管理者密钥keym;通过系统参数、云服务端各个云服务器的身份id,计算得到云服务器相等判定密钥keyid;通过系统参数、数据管理者密钥keym,计算用户的授权搜索密钥keyu,并将keym、keyid、keyu通过安全信道分发给对应的数据提供方、云服务器和用户;

25、步骤2:数据提供方生成加密数据和标签;数据提供方使用数据管理者密钥keym,数据的关键字w生成搜索标签index;使用密钥keym加密数据,将搜索标签index和加密数据打包上传给云服务端的各个云服务器;

26、步骤3:用户执行搜索请求;用户使用系统参数、授权搜索密钥keyu和询问关键字w2生成搜索陷门tdst;将搜索陷门和预付押金数目money1、用户身份idc作为搜索请求发送给区块链上搜索分发合约,其中,用户预付押金money1指用户为服务器执行搜索操作预先支付的搜索费用;

27、步骤4:区块链上搜索分发合约接收用户的搜索请求;搜索分发合约在搜索请求队列中记录用户搜索请求,并将用户搜索陷门tdst分发给云服务端各个云服务器,调用交易合约;

28、步骤5:交易合约记录当前交易用户状态列表c;交易合约依据用户的搜索请求记录用户身份id、押金数目money1、交易发起的时间t1,并将状态列表写入区块链上数据节点中,调用押金冻结合约;

29、步骤6:押金冻结合约依据状态列表c表在用户合约账户中扣除数目为money1的押金,冻结在押金池中,同时触发一个t-时间自动触发函数t1,此处,押金池为区块链上一个公开可查的合约账户;

30、步骤7:云服务端各个云服务器接收用户搜索陷门,将自身身份id、预付押金数目money2发送给区块链上交易合约,其中服务器预付押金指的是云服务器执行诚实操作预先支付的押金;

31、步骤8:区块链上交易合约记录云端各个云服务器状态列表集合s:<s1、s2......sn>,同时将状态列表写入区块链上数据节点中,其中,每个云服务器状态列表包括服务器身份id、预付押金数目money2、交易发起时间t2,调用押金冻结合约;

32、步骤9:押金冻结合约依据状态列表集合s表在云服务器合约账户中扣除数目为money2的押金,冻结在押金池中,同时触发一个t-时间自动触发函t2;

33、步骤10:云服务端各个云服务器使用用户搜索陷门在本地存储中执行匹配算法,得到匹配搜索结果后再处理发送给区块链上相等判定合约;云服务器使用系统参数、搜索标签index和搜索陷门tdst进行搜索匹配算法,若关键字w1=w2,则算法输出true,该加密数据标签和数据是用户想要的数据,云服务器将此数据放入结果result中,否则算法输出false,服务器再次匹配下一组加密数据;云服务器将得到的结果result使用相等判定密钥进行加密处理,得到再处理的加密结果resultid和相等判定授权令牌tdid,打包发送给区块链上相等判定合约;

34、步骤11:区块链上相等判定合约进行服务器搜索结果的完整性验证;相等判定合约在相等判定合约列表中记录服务器身份id、加密结果resultid、授权令牌tdid,并将服务器身份和id对应加密结果resultid写入区块链上数据节点,两两组合列表元素,分发给区块链上判定节点;

35、步骤12:区块链上判定节点执行相等判定算法,将判定结果写入结果列表1中;判定节点使用列表元素中的加密数据resultid和授权令牌tdid,执行判定算法,若两个加密数据是同一个关键字下的加密数据,则算法输出两个服务器的身份id和判定结果1,如<ids1:1;ids2:1>,认定这两个云服务器返回的数据是对同一个关键字的加密,否则算法输出两个服务器的身份id和0,如<ids1:0;ids2:0>,认定两个服务器返回的搜索结果是对不同关键字的加密,判定节点将判定结果写入结果列表1中,判定完成后调用相等判定结果投票合约;

36、步骤13:相等判定结果投票合约对结果列表1中的判定结果进行投票,选出得票最高的服务器结果作为真实有效的结果,并调用相等判定合约;相等判定结果投票合约依据结果列表1中的判定结果,统计判定结果为1且得票数最高的服务器idst,将此服务器的加密结果resultidst作为真实有效的搜索结果返回给相等判定合约和用户;

37、步骤14:相等判定合约执行二次判定;相等判定合约以投票合约返回的真实有效的搜索结果resultidst作为依据,选择结果列表1中判定结果为0的服务器的加密结果为对照,再次组合分发给判定节点进行相等判定;

38、步骤15:判定节点进行二次判定,将判定结果写入结果列表2中;

39、步骤16:相等判定合约认定不诚实的服务器;相等判定合约读取结果列表2中内容,将结果列表2中判定结果为0的服务器认定为不诚实的服务器,并调用押金奖惩合约;

40、步骤17:押金奖惩合约执行押金的支付、退还或扣除,并为数据提供方提供追责服务;若该服务器被认定为诚实的服务器,则押金奖惩合约在押金池中解冻诚实的服务器的押金money2,退还回该服务器的合约账户上,同时将用户预支付的费用money1的支付给诚实的云服务器,押金奖惩合约在押金池中扣除不诚实的云服务器的押金money2,退还用户预先支付的押金money1的到用户的合约账户上,停止本次交易过程中的t-时间自动触发函数t1和t2,同时将该服务器身份idsq、押金money2提供给数据提供方用于追责。

41、进一步的,所述步骤1-17都需要在t时间内完成,若时间t内没有完成上述步骤,则用户搜索过程终止,交易双方押金则被退回各自的合约账户,用户则需重新执行搜索请求。

42、与现有技术相比,本发明具有以下有益效果:

43、(1)在本发明中,通过采用多服务器以备份客户端的数据防止因数据的单一而造成的故障问题;使用区块链和智能合约的内部公平性和不可抵赖性对用户和服务端的欺诈行为进行处罚,保障了交易双方资金的公平流动,通过双方预先提交押金的方式强力监督和震慑了交易双方可能产生的欺诈行为;加密数据链上存储利用区块链的不可篡改性防止服务器对返回的搜索结果进行抵赖;提供了搜索结果的完整性验证,保障了用户搜索过程中的公平性和搜索结果的有效性。

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