一种SHA256哈希算法零知识证明电路的合成加速方法及装置制造方法及图纸

技术编号:31377045 阅读:16 留言:0更新日期:2021-12-15 11:15
本发明专利技术实施例公开了一种SHA256哈希算法零知识证明电路的合成加速方法及装置,预生成电路变量约束关系表,根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速。利用32位无符号整数算术运算的速度优势,可以将SHA256证明电路合成的时间降低到原来的1/3左右,通过对哈希计算的零知识证明加速可进一步实现对数据安全以及数据一致性的有效验证。实现对数据安全以及数据一致性的有效验证。实现对数据安全以及数据一致性的有效验证。

【技术实现步骤摘要】
一种SHA256哈希算法零知识证明电路的合成加速方法及装置


[0001]本专利技术实施例涉及数据安全
,具体涉及一种SHA256哈希算法零知识证明电路的合成加速方法及装置。

技术介绍

[0002]SHA256哈希算法是经典的哈希算法,能将任意长度的数据转换成固定长度的数据。SHA256哈希算法具有很强的抗碰撞性,并且不可逆。在数据签名、数据一致性、隐私保护、用户密码保护等方面,SHA哈希算法应用广泛。零知识证明是一种在不泄露数据本身的情况下,证明该数据满足某些性质的密码学技术。在一些场景,除了SHA256哈希计算结果外,可以通过零知识证明生成SHA256哈希计算的证明。比如说隐私保护的场景下,在不透露原始数据的情况下,能证明SHA256哈希计算的结果正确。此外,SHA256哈希计算的证明在区块链行业也有比较好的应用。比如Filecoin项目,通过提供SHA256计算的证明,能不提供原始数据的情况下证明数据的存在性。
[0003]SHA256的计算过程可以分成两个部分:1、输入数据扩展,2、64轮数据的迭代计算。每一次迭代的输出是下一次迭代输入,迭代算法本身是固定的。传统SHA256证明电路构造是按照SHA256的计算过程一步步的生成对应的约束。输入扩展会增加一些变量,这些变量的约束关系满足输入扩展算法,接着,针对64轮的迭代运算,每一次迭代都是一个个的约束按照迭代算法依次构建,耗费时间长,不利于数据安全以及数据一致性的有效验证。

技术实现思路

[0004]为此,本专利技术实施例提供一种SHA256哈希算法零知识证明电路的合成加速方法及装置,通过对哈希计算的零知识证明加速可进一步实现对数据安全以及数据一致性的有效验证。
[0005]为了实现上述目的,本专利技术实施例提供如下技术方案:
[0006]根据本专利技术实施例的第一方面,提出了一种SHA256哈希算法零知识证明电路的合成加速方法,所述方法包括:
[0007]预生成电路变量约束关系表;
[0008]根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速。
[0009]进一步的,预生成电路变量约束关系表,具体包括:
[0010]所述变量约束关系表中记录了布尔变量与SHA256计算过程中SHA256中间值的映射关系以及约束向量与变量数组的映射关系,所述SHA256中间值的类型为32位无符号整数。
[0011]进一步的,根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速,具体包括:
[0012]根据变量与SHA256中间值的映射关系以及输入的SHA256中间值,输出变量数组。
[0013]进一步的,根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速,具体包括:
[0014]根据所述约束向量与变量数组的映射关系以及并输入获得的所述变量数组,输出约束向量的值。
[0015]根据本专利技术实施例的第二方面,提出了一种SHA256哈希算法零知识证明电路的合成加速装置,所述装置包括:
[0016]预运算模块,用于预生成电路变量约束关系表;
[0017]参数运算模块,用于根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速。
[0018]进一步的,所述预运算模块具体用于:
[0019]所述变量约束关系表中记录了布尔变量与SHA256计算过程中SHA256中间值的映射关系以及约束向量与变量数组的映射关系,所述SHA256中间值的类型为32位无符号整数。
[0020]进一步的,所述参数运算模块具体用于:
[0021]根据变量与SHA256中间值的映射关系以及输入的SHA256中间值,输出变量数组。
[0022]进一步的,所述参数运算模块具体还用于:
[0023]根据所述约束向量与变量数组的映射关系以及并输入获得的所述变量数组,输出约束向量的值。
[0024]根据本专利技术实施例的第三方面,提出了一种计算机存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被一种SHA256哈希算法零知识证明电路的合成加速装置执行如上任一项所述的合成加速方法。
[0025]本专利技术实施例具有如下优点:
[0026]本专利技术实施例提出的一种SHA256哈希算法零知识证明电路的合成加速方法及装置,预生成电路变量约束关系表,根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速。利用32位无符号整数算术运算的速度优势,可以将SHA256证明电路合成的时间降低到原来的1/3左右,通过对哈希计算的零知识证明加速可进一步实现对数据安全以及数据一致性的有效验证。
附图说明
[0027]为了更清楚地说明本专利技术的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0028]图1为本专利技术实施例1提供的一种SHA256哈希算法零知识证明电路的合成加速方法的流程示意图;
[0029]图2为SHA256哈希算法零知识证明原理图;
[0030]图3为SHA256传统哈希零知识证明电路的合成过程;
[0031]图4为本专利技术实施例1提供的一种SHA256哈希算法零知识证明电路的合成过程;
[0032]图5为本专利技术实施例1提供的一种SHA256哈希算法零知识证明电路的合成加速方
法的运算流程图。
具体实施方式
[0033]以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]实施例1
[0035]如图1所示,本实施例提出了一种SHA256哈希算法零知识证明电路的合成加速方法,所述方法包括:
[0036]S100、预生成电路变量约束关系表;
[0037]S200、根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速。
[0038]其中,SHA256算法的计算过程由一系列更简单的运算组成,每一个中间运算都有输入、输出。我们将这些中间运算的输入、输出进行编号,这些就是我们所说的“变量”。
[0039]进一步的,预生成电路变量约束关系表,具体包括:
[0040]所述变量约束关系表中记录了布尔变量与S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SHA256哈希算法零知识证明电路的合成加速方法,其特征在于,所述方法包括:预生成电路变量约束关系表;根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速。2.根据权利要求1所述的一种SHA256哈希算法零知识证明电路的合成加速方法,其特征在于,预生成电路变量约束关系表,具体包括:所述变量约束关系表中记录了布尔变量与SHA256计算过程中SHA256中间值的映射关系以及约束向量与变量数组的映射关系,所述SHA256中间值的类型为32位无符号整数。3.根据权利要求2所述的一种SHA256哈希算法零知识证明电路的合成加速方法,其特征在于,根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速,具体包括:根据变量与SHA256中间值的映射关系以及输入的SHA256中间值,输出变量数组。4.根据权利要求3所述的一种SHA256哈希算法零知识证明电路的合成加速方法,其特征在于,根据所述电路变量约束关系表,利用32位无符号整数算术运算输出变量数组以及约束向量值完成证明电路的合成加速,具体包括:根据所述约束向量与变量数组的映射关系以及并输入获得的所述变量数组,输出约束向量的值。5.一种SHA256哈希算法零知识证明电路的合...

【专利技术属性】
技术研发人员:李星夏坤贤张守恒
申请(专利权)人:上海致居信息科技有限公司
类型:发明
国别省市:

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

1