用于生成数据等价零知识证明的方法、设备及存储介质技术

技术编号:25001722 阅读:25 留言:0更新日期:2020-07-24 18:02
根据本公开的示例实施例,提供了用于生成数据等价零知识证明的方法、电子设备及计算机存储介质。在该方法中,在数据方设备处,将目标数据分成N个数据块,基于N个数据块和预定N+1个椭圆曲线基点、第一随机数和第二随机数,生成用于目标数据的第一数据标签和第二数据标签,基于第三随机数、第四随机数以及N个第五随机数和预定N+1个椭圆曲线基点,得到第一承诺、第二承诺、N个经随机挑战的数据块、第一随机挑战数和第二随机挑战数,作为数据标签等价零知识证明连同第一数据标签和第二数据标签发送给验证方设备。由此,本发明专利技术能够零知识地验证两个数据标签所对应数据是否等价,而不泄露数据明文。

【技术实现步骤摘要】
用于生成数据等价零知识证明的方法、设备及存储介质
本公开的实施例总体涉及信息处理领域,具体涉及用于生成数据等价零知识证明的方法、用于验证数据等价的方法、电子设备及计算机存储介质。
技术介绍
通过区块链对数据进行管理是区块链的常见场景。传统方案大多对数据进行哈希运算得到数据的摘要值,然后将摘要值作为数据的标签,提交到区块链保存。由于哈希运算是确定性运算,相同的数据会得到相同的哈希值,这样在链上有泄露机密信息的风险。
技术实现思路
本公开的实施例提供了用于生成数据等价零知识证明的方法、用于验证数据等价的方法、电子设备及计算机存储介质,由此能够通过零知识证明验证数据标签所对应的数据具有等价性,而不泄露数据明文,提高了数据验证的安全性。在本公开的第一方面,提供了一种用于生成数据等价零知识证明的方法。该方法包括:在数据方设备处,将目标数据分成N个数据块,所述N个数据块中的每个数据块的大小不超过预定大小,N为大于1的整数;将所述N个数据块与预定N+1个椭圆曲线基点中的预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个椭圆曲线点;将所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点与第一随机数进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;将所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点与第二随机数进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;将所述N个椭圆曲线点和所述第一随机化椭圆曲线点进行椭圆曲线加法操作,以得到用于所述目标数据的第一数据标签;将所述N个椭圆曲线点和所述第二随机化椭圆曲线点进行椭圆曲线加法操作,以得到用于所述目标数据的第二数据标签;生成第三随机数、第四随机数以及N个第五随机数;将所述第三随机数与所述剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;将所述第四随机数与所述剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第四随机化椭圆曲线点;将所述N个第五随机数与所述预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个第五随机化椭圆曲线点;将所述N个第五随机化椭圆曲线点与所述第三随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一承诺;将所述N个第五随机化椭圆曲线点与所述第四随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二承诺;将所述第一承诺和所述第二承诺之和进行哈希操作,以得到挑战数;对于所述N个数据块中的每个数据块,计算所述数据块与所述挑战数的乘积和所述数据块对应的第五随机数之和,以得到N个经随机挑战的数据块;将所述第一随机数和所述挑战数的乘积加上所述第三随机数,以得到第一随机挑战数;将所述第二随机数和所述挑战数的乘积加上所述第四随机数,以得到第二随机挑战数;以及将所述第一承诺、所述第二承诺、所述N个经随机挑战的数据块、所述第一随机挑战数和所述第二随机挑战数作为数据等价零知识证明连同所述第一数据标签和所述第二数据标签发送给验证方设备。在本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据本公开的第一方面所述的方法的步骤。在本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现根据本公开的第一方面所述的方法。在本公开的第四方面,提供了一种用于验证数据等价的方法。该方法包括:在验证方设备处,从数据方设备接收第一数据标签、第二数据标签、第一承诺、第二承诺、N个经随机挑战的数据块、第一随机挑战数和第二随机挑战数;将所述第一承诺和所述第二承诺之和进行哈希操作,以得到挑战数;将所述N个经随机挑战的数据块与预定N+1个椭圆曲线基点中的预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个椭圆曲线点;将所述第一随机挑战数与所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第一随机挑战椭圆曲线点;将所述第二随机挑战数与所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第二随机挑战椭圆曲线点;将所述N个椭圆曲线点与所述第一随机挑战椭圆曲线点进行椭圆曲线加法,以得到第一待验证椭圆曲线点;将所述N个椭圆曲线点与所述第二随机挑战椭圆曲线点进行椭圆曲线加法,以得到第二待验证椭圆曲线点;将所述挑战数与所述第一数据标签进行椭圆曲线乘法的乘积和所述第一承诺相加,以得到经挑战的第一数据标签;将所述挑战数与所述第二数据标签进行椭圆曲线乘法的乘积和所述第二承诺相加,以得到经挑战的第二数据标签;如果确定所述经挑战的第一数据标签等于所述第一待验证椭圆曲线点且所述经挑战的第二数据标签等于所述第二待验证椭圆曲线点,则确定所述第一数据标签所对应的数据和所述第二数据标签所对应的数据等价。在本公开的第五方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据本公开的第四方面所述的方法的步骤。在本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现根据本公开的第四方面所述的方法。提供
技术实现思路
部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。附图说明通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。图1示出了根据本公开的实施例的用于生成数据等价零知识证明的方法100的示意流程图;图2示出了根据本公开的实施例的用于验证数据等价的方法200的示意流程图;以及图3示意性示出了适于用来实现本公开实施例的电子设备300的框图。在各个附图中,相同或对应的标号表示相同或对应的部分。具体实施方式下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。应当理解,本文中的“数据标签”也可以称为“数据摘要”、“数据指纹”等。如上所本文档来自技高网
...

【技术保护点】
1.一种用于生成数据等价零知识证明的方法,包括:/n在数据方设备处,将目标数据分成N个数据块,所述N个数据块中的每个数据块的大小不超过预定大小,N为大于1的整数;/n将所述N个数据块与预定N+1个椭圆曲线基点中的预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个椭圆曲线点;/n将所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点与第一随机数进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;/n将所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点与第二随机数进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;/n将所述N个椭圆曲线点和所述第一随机化椭圆曲线点进行椭圆曲线加法操作,以得到用于所述目标数据的第一数据标签;/n将所述N个椭圆曲线点和所述第二随机化椭圆曲线点进行椭圆曲线加法操作,以得到用于所述目标数据的第二数据标签;/n生成第三随机数、第四随机数以及N个第五随机数;/n将所述第三随机数与所述剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;/n将所述第四随机数与所述剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第四随机化椭圆曲线点;/n将所述N个第五随机数与所述预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个第五随机化椭圆曲线点;/n将所述N个第五随机化椭圆曲线点与所述第三随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一承诺;/n将所述N个第五随机化椭圆曲线点与所述第四随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二承诺;/n将所述第一承诺和所述第二承诺之和进行哈希操作,以得到挑战数;/n对于所述N个数据块中的每个数据块,计算所述数据块与所述挑战数的乘积和所述数据块对应的第五随机数之和,以得到N个经随机挑战的数据块;/n将所述第一随机数和所述挑战数的乘积加上所述第三随机数,以得到第一随机挑战数;/n将所述第二随机数和所述挑战数的乘积加上所述第四随机数,以得到第二随机挑战数;以及/n将所述第一承诺、所述第二承诺、所述N个经随机挑战的数据块、所述第一随机挑战数和所述第二随机挑战数作为数据等价零知识证明连同所述第一数据标签和所述第二数据标签发送给验证方设备。/n...

【技术特征摘要】
1.一种用于生成数据等价零知识证明的方法,包括:
在数据方设备处,将目标数据分成N个数据块,所述N个数据块中的每个数据块的大小不超过预定大小,N为大于1的整数;
将所述N个数据块与预定N+1个椭圆曲线基点中的预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个椭圆曲线点;
将所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点与第一随机数进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;
将所述预定N+1个椭圆曲线基点中剩余的预定椭圆曲线基点与第二随机数进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;
将所述N个椭圆曲线点和所述第一随机化椭圆曲线点进行椭圆曲线加法操作,以得到用于所述目标数据的第一数据标签;
将所述N个椭圆曲线点和所述第二随机化椭圆曲线点进行椭圆曲线加法操作,以得到用于所述目标数据的第二数据标签;
生成第三随机数、第四随机数以及N个第五随机数;
将所述第三随机数与所述剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;
将所述第四随机数与所述剩余的预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第四随机化椭圆曲线点;
将所述N个第五随机数与所述预定N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个第五随机化椭圆曲线点;
将所述N个第五随机化椭圆曲线点与所述第三随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一承诺;
将所述N个第五随机化椭圆曲线点与所述第四随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二承诺;
将所述第一承诺和所述第二承诺之和进行哈希操作,以得到挑战数;
对于所述N个数据块中的每个数据块,计算所述数据块与所述挑战数的乘积和所述数据块对应的第五随机数之和,以得到N个经随机挑战的数据块;
将所述第一随机数和所述挑战数的乘积加上所述第三随机数,以得到第一随机挑战数;
将所述第二随机数和所述挑战数的乘积加上所述第四随机数,以得到第二随机挑战数;以及
将所述第一承诺、所述第二承诺、所述N个经随机挑战的数据块、所述第一随机挑战数和所述第二随机挑战数作为数据等价零知识证明连同所述第一数据标签和所述第二数据标签发送给验证方设备。


2.根据权利要求1所述的方法,其中所述预定大小包括椭圆曲线的域宽度。


3.根据权利要求1所述的方法,其中所述预定N个椭圆曲线基点包括所述预定N+1个椭圆曲线基点中的前...

【专利技术属性】
技术研发人员:郭宇孙志鹏卢艺文叶存胡宇光
申请(专利权)人:苏州链原信息科技有限公司
类型:发明
国别省市:江苏;32

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

1