System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于延迟函数和零知识的存储过程证明方法、设备及介质技术_技高网
当前位置: 首页 > 专利查询>厦门大学专利>正文

基于延迟函数和零知识的存储过程证明方法、设备及介质技术

技术编号:41912586 阅读:4 留言:0更新日期:2024-07-05 14:15
本发明专利技术公开了一种基于延迟函数和零知识的存储过程证明方法,包括:证明者生成并公开存储过程证明中所需要的公共参数;根据哈希算法构建待存储数据文件的Merkle树;证明者对待存储数据文件进行分块处理,对每个单元数据块进行封装;验证者随机生成验证数据并发送给证明者,证明者对验证数据进行解封装,生成零知识证明并验证,从而实现短期多次抽检;对封装后的文件进行解封装处理,得到解封装后的文件,并进行长期完整验证;验证者根据验证路径进行验证,根据验证结果来证明所述证明者此刻正在真实存储数据。本发明专利技术还公开了一种电子设备和计算机可读存储介质,实现可解码的更实用的存储过程证明方案。

【技术实现步骤摘要】

本专利技术涉及数据处理,尤其涉及一种基于延迟函数和零知识的存储过程证明方法、设备及介质


技术介绍

1、随着大数据时代数据存储外包服务需求增多,客户与存储方之间的信任问题仍然是急需解决的问题。其中,存储过程证明作为用来解决二者之间关于存储过程信任问题的技术,其发展与创新也相当重要。

2、数据存储外包服务一般包含两个角色,分别是有存储需求的客户和拥有一定物理存储的存储方。存储方先针对一定存储空间生成存储空间证明,存储空间证明通过验证后,客户将具体数据发送给存储方,存储方再对特定数据执行严格的数据封装过程并生成存储过程证明。由于存储外包是一个长期的服务,在随后一段时间内,客户与存储方需要多次交互式抽检以形成数据持久化证明。目前存储过程证明领域相关研究较少。filecoin作为为数不多关注于存储过程证明技术的项目,其项目方案中数据封装过程较为复杂,几乎无法完成数据解封装,形成完整的存储过程证明较为耗时,同时其数据持久化证明依赖于将完整数据封装过程构建零知识证明,其电路构建与证明生成较为耗时,方案实用性较差。


技术实现思路

1、有鉴于此,本专利技术的目的在于提出一种基于延迟函数和零知识的存储过程证明方法,设计并实现可解码的更实用的存储过程证明方案。

2、为了实现上述的技术目的,本专利技术所采用的技术方案为:

3、本专利技术提供了一种基于延迟函数和零知识的存储过程证明方法,需提供证明者和验证者,包括如下步骤:

4、步骤1、证明者生成并公开存储过程证明中所需要的公共参数,同时公开选定的哈希算法及延迟函数;

5、步骤2、根据哈希算法构建待存储数据文件的merkle树得到tree,并私有保存merkle树的结构和根节点root;

6、步骤3、证明者对待存储数据文件进行分块处理,读取多个长度相同的一级数据块,再对每个一级数据块进行分块处理,读取多个长度相同的单元数据块,根据公共参数并采用哈希算法及延迟函数对每个单元数据块进行封装,得到封装后的文件,并建立merkle树得到tree'和根节点root';

7、步骤4、验证者随机生成一个封装后的验证数据并发送给证明者,证明者计算对应的哈希值发送给验证者,证明者根据公共参数并采用哈希算法及延迟函数对验证数据进行解封装,生成零知识证明并验证,从而实现短期多次抽检;

8、步骤5、对封装后的文件进行解封装处理,得到解封装后的文件,并建立merkle树得到根节点root”,并通过验证root”=root是否成立进行长期完整验证;

9、步骤6、验证者根据root对tree'中的验证路径paths进行验证,根据验证结果来证明所述证明者此刻正在真实存储数据。

10、进一步的,所述公共参数包括延迟函数的密钥k、编码轮数r、单元数据块的长度l1、一级数据块的长度l2、长程依赖个数nl和短程依赖个数ns。

11、进一步的,所述步骤2具体包括:

12、步骤21、验证者公开待存储数据文件d及其长度l,l大于l2;

13、步骤22、根据一级数据块的长度l2和待存储数据文件d的长度l将待存储数据文件d分为多个一级数据块,并计算所有一级数据块的哈希值集合h1={hi|hi=hash(di)},其中,di表示一级数据块,hash()表示哈希算法,hi表示一级数据块的哈希值;

14、步骤23、将得到的一级数据块的哈希值集合h1作为叶子节点,从下往上逐层生成父节点,对于每一层的父节点,是依次将每两个相邻的叶子节点的哈希值拼接起来并求出哈希值,作为父节点的哈希值;如果最后只剩下一个节点,那么此节点就是根节点;从而构建了待存储数据文件d的merkle树得到tree;

15、步骤24、私有保存tree的完整结构和根节点root。

16、进一步的,所述步骤3具体包括:

17、步骤31、定义编号为i的一级数据块为di,所述一级数据块di的长度为l2;编号为i的一级数据块中编号为j的单元数据块为di,j,所述单元数据块di,j的长度为l1;令m=l/l2,n=l2/l1,m和n为正整数,编码轮数r=n*m;

18、步骤32、证明者按一级数据块的长度l2从前到后的顺序对待存储数据文件d进行分块处理,按顺序逐个读取m个长度为l2的一级数据块di,得到分块后的一级数据块集合{di0,di1,…,di(m-1)};

19、步骤33、随机生成nl个长程依赖数据块编号集合indexl,并得到长程依赖的一级数据块集合dl={didx|idx∈indexl},其中,didx表示编号为idx的一级数据块,idx∈indexl表示idx为indexl中的元素;

20、步骤34、按单元数据块的长度l1从前到后的顺序对一级数据块di进行分块处理,按顺序逐个读取n个长度为l1的单元级数据块di,j,得到每一个一级数据块di中单元数据块集合,即di={di,j|j∈{0,…,n-1}},按照j=0,1,…,n-1的顺序作为数据封装执行顺序;

21、步骤35、随机生成ns个短程依赖数据块编号集合indexs,并得到短程依赖的单元数据块集合ds={di,idx|idx∈indexs},其中,di,idx表示编号为i的一级数据块中编号为idx的单元数据块,idx∈indexs表示idx为indexs中的元素;

22、步骤36、根据所述长程依赖的一级数据块集合dl和短程依赖的单元数据块集合ds获取di,j的长程和短程依赖数据data={||p∈ds p||k∈dl k},其中,p∈ds表示p为ds中的元素,同理,k∈dl表示k为dl中的元素,||表示简单的数据拼接操作,p表示ds中的任意元素,k表示dl中的任意元素;并计算所述长程和短程依赖数据data的哈希值h2=hash(data);

23、步骤37、基于di,j和h2计算延迟函数ci,j=sloth((ci,j+h2)mod k),延迟函数的输入为(ci,j+h2),mod表示取模运算符,k表示延迟函数的密钥;

24、步骤38、令di,j=ci,j原地更新单元数据块;根据封装执行顺序将所有的单元数据块di,j更新为ci,j,完成r轮封装;执行封装之后,待存储数据文件d中原始的一级数据块di所占空间的数据此时更新为ci;所有一级数据块完成数据封装后,待存储数据文件d更新为文件c;

25、步骤39、证明者对文件c构建merkle树得到tree',其中,叶子节点为一级数据块的哈希值,并将根节点root'发送给验证者作为承诺值。

26、进一步的,所述步骤4具体包括:

27、步骤41、验证者随机生成一个封装后的一级数据块作为验证数据ct,t∈{0,…,m-1}及一个随机数r并发送给证明者;

28、步骤42、证明者计算ht=hash(r||ct),将得到的哈希值ht发送给验证者;

29、步骤43、本文档来自技高网...

【技术保护点】

1.一种基于延迟函数和零知识的存储过程证明方法,其特征在于,需提供证明者和验证者,包括如下步骤:

2.如权利要求1所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述公共参数包括延迟函数的密钥K、编码轮数R、单元数据块的长度L1、一级数据块的长度L2、长程依赖个数NL和短程依赖个数NS。

3.如权利要求2所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤2具体包括:

4.如权利要求3所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤3具体包括:

5.如权利要求4所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤4具体包括:

6.如权利要求5所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤43中证明者对ct进行解封装的具体过程如下:

7.如权利要求1所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤5具体包括:

8.如权利要求7所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤6具体包括:p>

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述的一种基于延迟函数和零知识的存储过程证明方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8任一项所述的一种基于延迟函数和零知识的存储过程证明方法。

...

【技术特征摘要】

1.一种基于延迟函数和零知识的存储过程证明方法,其特征在于,需提供证明者和验证者,包括如下步骤:

2.如权利要求1所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述公共参数包括延迟函数的密钥k、编码轮数r、单元数据块的长度l1、一级数据块的长度l2、长程依赖个数nl和短程依赖个数ns。

3.如权利要求2所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤2具体包括:

4.如权利要求3所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤3具体包括:

5.如权利要求4所述的基于延迟函数和零知识的存储过程证明方法,其特征在于,所述步骤4具体包括:

6.如权利要求5所述的基于延迟函数和零知...

【专利技术属性】
技术研发人员:罗晔祝辉林程晨游泽平魏永增刘东俊
申请(专利权)人:厦门大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1