基于区块链的多云多副本数据完整性审计方法及相关装置
- 国知局
- 2024-08-02 13:54:11
本发明属于互联网信息安全,涉及一种基于区块链的多云多副本数据完整性审计方法及相关装置。
背景技术:
1、随着信息时代的快速发展,公司和企业在运转的过程中也产生了海量的数据。将这些海量的数据存储在本地不仅需要昂贵的存储设备还需要专业的计算机人员对数据和设备进行维护。云存储技术的飞速发展和广泛应用给海量数据存储提供了新的选择,用户可以按需租赁云存储服务器存储数据,这能够大大减少经济开销。但是当用户将数据外包之后就会失去了对数据的控制权,一旦云存储服务器遭到黑客攻击和物理设备损坏导致数据丢失或者删除用户不经常使用的数据,就会给用户带来巨大的经济损失。因此用户需要定时审计数据的完整性。传统的方式是委托一个第三方执行审计算法,但是如果第三方出现不诚信行为就给用户造成损失。去中心化的区块链由于其可信任性,可追溯性和不可篡改性能够承担可信第三方的角色解决用户和云存储服务器之间的信任危机。同时,很多用户为了数据的安全性会将自己重要的数据生成多个副本并存储在多个云存储服务器上。在这种场景下,传统的多云多副本的数据完整性审计方案的计算开销太大,在处理海量数据时效率很低。因此,将区块链技术与数据完整性审计结合并设计高效的多云多副本数据完整性审计方案具有很重要的意义。
技术实现思路
1、为解决多云多副本数据数据完整性审计过程中用户和云存储服务器之间的不信任问题以及审计算法计算开销大的问题,本发明的目的是提供一种基于区块链的多云多副本数据完整性审计方法及相关装置。
2、为了实现上述目的,本发明的技术方案如下:
3、基于区块链的多云多副本数据完整性审计方法,包括以下步骤:
4、生成用户部分密钥、公共参数、用户私钥和用户公钥;
5、将数据分块,并生成数据副本,对数据副本分块进行分区,得到副本块分区;
6、根据部分密钥、用户私钥、副本块分区以及基于生成元的副本分块标识为副本分块生成标签,得到标签集合;
7、将数据副本和标签集合存储到多个云存储服务器上并将文件相关的元数据信息上传到区块链;
8、向区块链发审计请求,根据文件相关的元数据信息,产生挑战并发送到所有的云存储服务器,云存储服务器根据挑战生成数据副本完整性证明信息,然后聚合所有数据副本的证明信息并发送到区块链;
9、区块链将接收到的证明信息进行聚合后验证。
10、进一步的,生成用户部分密钥、公共参数、用户私钥和用户公钥,包括以下过程:
11、1.1)选择阶数为q的第一乘法群g1和第二乘法群gt,第一乘法群g1的生成元是g,zq={1,2,3…q-1}是q阶有限域,然后选取三个哈希函数,第一哈希函数h(·):g1→zq用于副本分块哈希值的计算,第二哈希函数λ1:{0,1}*→{1,2,3,4…n}和第三哈希函数λ2:{0,1}*→zq用于挑战生成,n为数据分块个数;生成主私钥msk=s∈zq并计算主公钥mpk=gs,s为随机数,最后得到公共参数params={g1,gt,q,g,h(),λ1,λ2,mpk};
12、1.2)用户生成自己的身份标识iddo∈{0,1}*并发送;
13、1.3)收到身份标识之后,计算用户部分密钥sskdo=h(iddo)s并发送;
14、1.4)接收用户部分密钥后,通过以下公式验证用户部分密钥:
15、e(sskdo,g)=e(h(iddo),mpk)
16、验证通过之后选择秘密参数x←zq,计算用户私钥skdo=(x+sskdo)mod q和用户公钥
17、进一步的,将数据分块,并生成数据副本,对数据副本分块进行分区,得到副本块分区,包括以下过程:
18、2.1)将数据f进行分块得到数据分块f={bi}1≤i≤n,并生成数据副本{fj={bij}}1≤j≤m,其中,bi为原始数据分块,bij为副本分块,i为数据分块序号,j为副本序号,m为副本数量;
19、2.2)对数据副本分块进行分区,得到副本块分区{mijk}1≤k≤s,其中,s为分区个数,k为分区序号,mijk为第i个数据块的第j个副本的第k个分区。
20、进一步的,根据部分密钥、用户私钥、副本块分区以及基于生成元的副本分块标识为副本分块生成标签,得到标签集合,包括以下过程:
21、3.1)标签集合通过下式计算:
22、
23、其中,{mkk←zq}1≤k≤s是随机数集合,是基于生成元的副本分块的标识,p表示数据块将存储在第p个云存储服务器上,σij为标签,sskdo为用户部分密钥,skdo为用户私钥,i为数据分块序号,j为副本序号,m为副本数量。
24、进一步的,将数据副本和标签集合存储到多个云存储服务器上并将文件相关的元数据信息上传到区块链,包括以下过程:
25、4.1)将数据副本{fj={bij}}1≤j≤m和标签集合{σij}1≤i≤n,1≤j≤m存储到多个云存储服务器上;
26、4.2)将文件相关的元数据信息pp={params,{mkk},{e(mkk,pkdo)},h(iddo),pkdo,{accountcssp},accountdo,ω={ωp},t={tp},n,m,{hij}}发送到区块链;其中,{accountcssp}表示服务器账户,accountdo表示用户账户,ωp表示第p个服务器上存储的副本索引号集合,tp表示对应的副本个数,{hij}表示数据分块相关的哈希值集合,params表示公共参数,pkdo为用户公钥,{mkk}为参数验证集合,iddo为身份标识。
27、进一步的,向区块链发审计请求,根据文件相关的元数据信息,产生挑战并发送到云存储服务器,云存储服务器根据挑战生成数据副本完整性证明信息,然后聚合所有数据副本的证明信息并发送到区块链,包括以下步骤:
28、5.1)向区块链发送请求,区块链使用第二哈希函数λ1和第三哈希函数λ2生成随机抽样数据分块序号集合四{si=λ1(π1+i)}1≤i≤sn,对应的随机整数集合五{vi=λ2(π1+i)}1≤i≤sn,其中sn表示抽样数据块个数,以及副本随机数集合六{xi=λ2(π2+i)}1≤i≤m,其中π1和π2是当前时间或者最后一个区块的哈希值,然后挑战智能合约将挑战chall={{si,vi}1≤i≤s,{xi}1≤i≤m}分别发送到对应的云存储服务器;
29、5.2)云存储服务器收到挑战之后随机选择整数集合七{rpk←zq}1≤k≤s并计算集合八云存储服务器计算每个副本的数据完整性证明和并聚合得到最终证明和云存储服务器将最终证明proof={{rpk,δpk},θp}上传到区块链。
30、进一步的,区块链将接收到的证明信息进行聚合后验证,包括以下步骤:
31、6.1)区块链将接收到的证明信息进行聚合,得到聚合证明
32、6.2)通过下式验证聚合证明的正确性,如果聚合证明是正确的,则数据是完整的;反之,数据不完整;
33、
34、其中,是根据{mkk}1≤k≤s计算得到,{rk}1≤k≤s、θ和{δk}1≤k≤s是数据完整性证明,g为生成元,iddo为身份标识,i为数据分块序号,j为副本序号,m为副本数量,mpk为主公钥,pkdo是用户公钥,sn为抽样数据块序号集合,{vi}1≤i≤s为随机数集合,{xi}1≤i≤m为副本随机数集合。
35、一种基于区块链的多云多副本数据完整性审计系统,包括参数生成模块、副本生成模块、标签生成模块、数据存储模块、挑战和证明生成模块与验证模块;
36、参数生成模块,用于生成用户部分密钥、公共参数、用户私钥和用户公钥;
37、副本生成模块,用于将数据分块,并生成数据副本,对数据副本分块进行分区,得到副本块分区;
38、标签生成模块,用于根据部分密钥、用户私钥、副本块分区以及基于生成元的副本分块标识为副本分块生成标签,得到标签集合;
39、数据存储模块,用于将数据副本和标签集合存储到多个云存储服务器上并将文件相关的元数据信息上传到区块链;
40、挑战和证明生成模块,用于向区块链发审计请求,根据文件相关的元数据信息,产生挑战并发送到所有的云存储服务器,云存储服务器根据挑战生成数据副本完整性证明信息,然后聚合所有数据副本的证明信息并发送到区块链;
41、验证模块,用于区块链将接收到的证明信息进行聚合后验证。
42、一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述的基于区块链的多云多副本数据完整性审计方法。
43、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述的基于区块链的多云多副本数据完整性审计方法。
44、与现有技术相比,本发明具有的有益效果:
45、本发明提出的方法在区块链上部署了智能合约,让区块链成为可信第三方代替用户完成数据完整性审计。因为去中心化的区块链具有可信任性,可追溯性和不可篡改性,所以审计结果能够得到用户和云存储服务器的信任,解决二者之间的信任危机。同时,本发明不仅优化了标签的生成方法,减少了乘法操作的次数,还优化了数据完整性验证的方式,将大量乘法操作转化为加法操作,从而使得本发明提出的方法大大减少了计算开销。
本文地址:https://www.jishuxx.com/zhuanli/20240801/241032.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表