[发明专利]基于区块链的公共云存储数据完整性检验方法有效
申请号: | 201811245149.0 | 申请日: | 2018-10-24 |
公开(公告)号: | CN109391621B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 许春香;张源 | 申请(专利权)人: | 电子科技大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L9/32;H04L29/08 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 邹裕蓉 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 区块 公共 存储 数据 完整性 检验 方法 | ||
1.基于区块链的公共云存储数据完整性检验方法,其特征在于,包括以下步骤:
系统初始化阶段:系统生成公共参数,生成各用户的签名密钥;
用户处理数据阶段:用户将要外包存储的文件分为n个数据块,然后对每一个数据块使用签名密钥进行签名,最后将文件与对应的所有签名上传至云服务器;云服务器收到文件与对应的所有签名后验证是否上传正确,正确则存储接收所述文件与对应的所有签名;
TPA审计云服务器阶段:TPA从以太坊区块链获取数值产生一个挑战信息,并将挑战信息发送给云服务器;云服务器根据收到的挑战信息以及存储的文件来产生证明信息,并将证明信息发回给TPA;TPA得到证明信息后,检验证明信息的完整性,如检验失败,则通知用户,数据完整性可能遭到破坏,并不再进行后续步骤;如检验成功,则将收到的证明信息作为一个条目,存储于日志文件中,同时TPA将数值与证明信息进行运算后的一个运算结果上传至以太坊区块链上;
用户审计TPA阶段:用户从以太坊区块链中请求数值并提取证明信息进行运算后的运算结果,如运算结果提取失败,则TPA没有在规定的时间检验数据的完整性;如运算结果提取成功,则对日志文件中存储的相应条目进行一致性审计,如一致,则对应文件的完整性检验通过;否则,认为对应文件的完整性已遭到破坏。
2.如权利要求1所述方法,其特征在于,系统初始化阶段具体步骤为:
1)用户选取乘法循环群G、乘法循环群GT以相应的双线性映射e:G×G→GT,乘法循环群G的阶数为p,乘法循环群G的生成元为g,e表示双线性运算;
2)从整数环Zp中选取一个随机数α作为私钥,并计算公钥v=gα;
3)选择一个将密钥k1作为输入的伪随机置换函数和一个将密钥k2作为输入的伪随机函数发送至云服务器以及TPA;
4)选择哈希函数H、h、h1以及h2发送至云服务器以及TPA,H:{0,1}*→G,h:{0,1}*→Zp,h1:{0,1}*→π.key,h2:{0,1}*→f.key,其中,π.key为伪随机置换函数π()的密钥空间,f.key为伪随机函数f()的密钥空间,*表示任意长度;
用户将生成的私钥α作为签名密钥,发送生成的公共参数为{v,g,H,G,GT,p}至云服务器以及TPA。
3.如权利要求2所述方法,其特征在于,用户处理数据阶段具体步骤为:
对于文件M,用户首先将其分为n个数据块mi,并将每个数据块分为s个扇区mij,M={mij},其中,数据块序号变量i∈[1,n],扇区序号变量j∈[1,s];
用户从整数环Zp中选择一个随机元素name∈Zp来对文件M进行命名;
用户为每一个数据块mi以如下方式产生一个签名:
1)从乘法循环群G中随机选择s个元素u1,…,us;
2)计算一个文件标签τ=h(name||n||s||g||u1,…,us),||表示字符串联;
3)利用签名密钥α计算数据块mi的签名
4)输出数据集合
用户将数据集合上传至云服务器
云服务器在收到数据集合后,通过验证下面公式是否成立,如成立,则表示数据集合被正确上传:
其中,e为双线性数据集合运算符。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811245149.0/1.html,转载请声明来源钻瓜专利网。