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

技术编号:24996541 阅读:30 留言:0更新日期:2020-07-24 17:59
根据本公开的示例实施例,提供了用于生成数据均值零知识证明的方法、电子设备及计算机存储介质。在该方法中,在数据方设备处,基于随机数和预定椭圆曲线基点生成第一数据的第一数据标签和第二数据的第二数据标签、第一承诺、第二承诺和第三承诺,计算第一数据和第二数据的均值,将第一承诺、第二承诺和第三承诺之和进行哈希操作,以得到挑战数,基于挑战数,生成经随机挑战的第一数据、经随机挑战的第二数据、第一随机挑战数、第二随机挑战数和第三随机挑战数,以及将上述生成信息作为数据均值零知识证明发送给验证方设备。由此,本发明专利技术能够零知识地验证两个数据标签所对应数据的均值是否为特定值,而不泄露数据明文。

【技术实现步骤摘要】
用于生成数据均值零知识证明的方法、设备及存储介质
本公开的实施例总体涉及信息处理领域,具体涉及用于生成数据均值零知识证明的方法、用于验证数据均值的方法、电子设备及计算机存储介质。
技术介绍
通过区块链对数据进行管理是区块链的常见场景。传统方案大多对数据进行哈希运算得到数据的摘要值,然后将摘要值作为数据的标签,提交到区块链保存。由于哈希运算是确定性运算,相同的数据会得到相同的哈希值,这样在链上有泄露机密信息的风险。例如哈希值的数据标签可以通过混入随机数来保护数据,但是这样会导致数据标签无法反应数据原文的信息。例如如果想统计若干数据标签背后数据的平均值,则难以运算。
技术实现思路
本公开的实施例提供了用于生成数据均值零知识证明的方法、用于验证数据均值的方法、电子设备及计算机存储介质,由此能够通过零知识证明验证数据标签所对应的数据的均值是否为特定值,而不泄露数据明文,提高了数据验证的安全性。在本公开的第一方面,提供了一种用于生成数据均值零知识证明的方法。该方法包括:在数据方设备处,将第一数据与第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第一椭圆曲线点;将第二数据与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第二椭圆曲线点;将第一随机数与第二预定椭圆曲线点进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;将第二随机数与第二预定椭圆曲线点进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;将所述第一椭圆曲线点与所述第一随机化椭圆曲线点进行椭圆曲线加法,以得到用于所述第一数据的第一数据标签;将所述第二椭圆曲线点与所述第二随机化椭圆曲线点进行椭圆曲线加法,以得到用于所述第二数据的第二数据标签;计算所述第一数据和所述第二数据的均值;将第三随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;将第四随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第四随机化椭圆曲线点;将第五随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第五随机化椭圆曲线点;将第六随机数与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第六随机化椭圆曲线点;将第七随机数与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第七随机化椭圆曲线点;将所述第三随机化椭圆曲线点与所述第六随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一承诺;将所述第四随机化椭圆曲线点与所述第七随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二承诺;将所述第四随机化椭圆曲线点、所述第六随机化椭圆曲线点和所述第七随机化椭圆曲线点进行椭圆曲线加法操作,以得到第三承诺;将所述第一承诺、所述第二承诺和所述第三承诺之和进行哈希操作,以得到挑战数;将所述第一数据和所述挑战数的乘积加上所述第六随机数,以得到经随机挑战的第一数据;将所述第二数据和所述挑战数的乘积加上所述第七随机数,以得到经随机挑战的第二数据;将所述第一随机数和所述挑战数的乘积加上所述第三随机数,以得到第一随机挑战数;将所述第二随机数和所述挑战数的乘积加上所述第四随机数,以得到第二随机挑战数;将第八随机数和所述挑战数的乘积加上所述第五随机数,以得到第三随机挑战数;以及将所述第一承诺、所述第二承诺、所述第三承诺、所述经随机挑战的第一数据、所述经随机挑战的第二数据、所述第一随机挑战数、所述第二随机挑战数、所述第三随机挑战数和所述第八随机数作为数据均值零知识证明连同所述第一数据标签、所述第二数据标签和所述均值发送给验证方设备。在本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据本公开的第一方面所述的方法的步骤。在本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现根据本公开的第一方面所述的方法。在本公开的第四方面,提供了一种用于验证数据等价的方法。该方法包括:在验证方设备处,从数据方设备接收第一承诺、第二承诺、第三承诺、经随机挑战的第一数据、经随机挑战的第二数据、第一随机挑战数、第二随机挑战数、第三随机挑战数、随机数、第一数据标签、第二数据标签和均值;对所述第一承诺、所述第二承诺和所述第三承诺之和进行哈希操作,以得到挑战数;将经随机挑战的第一数据与第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第一椭圆曲线点;将经随机挑战的第二数据与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第二椭圆曲线点;将所述第一椭圆曲线点与所述第二椭圆曲线点进行椭圆曲线加法操作,以得到第三椭圆曲线点;将所述第一随机挑战数与第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;将所述第二随机挑战数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;将所述第三随机挑战数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;将所述第一椭圆曲线点与所述第一随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一待验证椭圆曲线点;将所述第二椭圆曲线点与所述第二随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二待验证椭圆曲线点;将所述第三椭圆曲线点与所述第三随机化椭圆曲线点进行椭圆曲线加法操作,以得到第三待验证椭圆曲线点;将所述第一数据标签和所述挑战数进行椭圆曲线乘法操作得到的乘积与所述第一承诺进行椭圆曲线加法操作,以得到经挑战的第一数据标签;将所述第二数据标签和所述挑战数进行椭圆曲线乘法操作得到的乘积与所述第二承诺进行椭圆曲线加法操作,以得到经挑战的第二数据标签;将所述均值乘以2的乘积与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作得到的结果与所述随机数和所述第二预定椭圆曲线基点进行椭圆曲线乘法操作得到的结果进行椭圆曲线加法操作,以得到第三数据标签;将所述第三数据标签与所述挑战数进行椭圆曲线乘法操作得到的乘积与所述第三承诺进行椭圆曲线加法操作,以得到经挑战的第三数据标签;以及如果确定第一待验证椭圆曲线点与经挑战的第一数据标签相等、第二待验证椭圆曲线点与经挑战的第二数据标签相等并且第三待验证椭圆曲线点与经挑战的第三数据标签相等,则确定所述第一数据标签所对应的第一数据和所述第二数据标签所对应的第二数据的平均数为所述均值。在本公开的第五方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据本公开的第四方面所述的方法的步骤。在本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现根据本公开的第四方面所述的方法。提供
技术实现思路
部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。本文档来自技高网
...

【技术保护点】
1.一种用于生成数据均值零知识证明的方法,包括:/n在数据方设备处,将第一数据与第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第一椭圆曲线点;/n将第二数据与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第二椭圆曲线点;/n将第一随机数与第二预定椭圆曲线点进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;/n将第二随机数与第二预定椭圆曲线点进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;/n将所述第一椭圆曲线点与所述第一随机化椭圆曲线点进行椭圆曲线加法,以得到用于所述第一数据的第一数据标签;/n将所述第二椭圆曲线点与所述第二随机化椭圆曲线点进行椭圆曲线加法,以得到用于所述第二数据的第二数据标签;/n计算所述第一数据和所述第二数据的均值;/n将第三随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;/n将第四随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第四随机化椭圆曲线点;/n将第五随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第五随机化椭圆曲线点;/n将第六随机数与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第六随机化椭圆曲线点;/n将第七随机数与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第七随机化椭圆曲线点;/n将所述第三随机化椭圆曲线点与所述第六随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一承诺;/n将所述第四随机化椭圆曲线点与所述第七随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二承诺;/n将所述第四随机化椭圆曲线点、所述第六随机化椭圆曲线点和所述第七随机化椭圆曲线点进行椭圆曲线加法操作,以得到第三承诺;/n将所述第一承诺、所述第二承诺和所述第三承诺之和进行哈希操作,以得到挑战数;/n将所述第一数据和所述挑战数的乘积加上所述第六随机数,以得到经随机挑战的第一数据;/n将所述第二数据和所述挑战数的乘积加上所述第七随机数,以得到经随机挑战的第二数据;/n将所述第一随机数和所述挑战数的乘积加上所述第三随机数,以得到第一随机挑战数;/n将所述第二随机数和所述挑战数的乘积加上所述第四随机数,以得到第二随机挑战数;/n将第八随机数和所述挑战数的乘积加上所述第五随机数,以得到第三随机挑战数;以及/n将所述第一承诺、所述第二承诺、所述第三承诺、所述经随机挑战的第一数据、所述经随机挑战的第二数据、所述第一随机挑战数、所述第二随机挑战数、所述第三随机挑战数和所述第八随机数作为数据均值零知识证明连同所述第一数据标签、所述第二数据标签和所述均值发送给验证方设备。/n...

【技术特征摘要】
1.一种用于生成数据均值零知识证明的方法,包括:
在数据方设备处,将第一数据与第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第一椭圆曲线点;
将第二数据与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第二椭圆曲线点;
将第一随机数与第二预定椭圆曲线点进行椭圆曲线乘法操作,以得到第一随机化椭圆曲线点;
将第二随机数与第二预定椭圆曲线点进行椭圆曲线乘法操作,以得到第二随机化椭圆曲线点;
将所述第一椭圆曲线点与所述第一随机化椭圆曲线点进行椭圆曲线加法,以得到用于所述第一数据的第一数据标签;
将所述第二椭圆曲线点与所述第二随机化椭圆曲线点进行椭圆曲线加法,以得到用于所述第二数据的第二数据标签;
计算所述第一数据和所述第二数据的均值;
将第三随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第三随机化椭圆曲线点;
将第四随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第四随机化椭圆曲线点;
将第五随机数与所述第二预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第五随机化椭圆曲线点;
将第六随机数与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第六随机化椭圆曲线点;
将第七随机数与所述第一预定椭圆曲线基点进行椭圆曲线乘法操作,以得到第七随机化椭圆曲线点;
将所述第三随机化椭圆曲线点与所述第六随机化椭圆曲线点进行椭圆曲线加法操作,以得到第一承诺;
将所述第四随机化椭圆曲线点与所述第七随机化椭圆曲线点进行椭圆曲线加法操作,以得到第二承诺;
将所述第四随机化椭圆曲线点、所述第六随机化椭圆曲线点和所述第七随机化椭圆曲线点进行椭圆曲线加法操作,以得到第三承诺;
将所述第一承诺、所述第二承诺和所述第三承诺之和进行哈希操作,以得到挑战数;
将所述第一数据和所述挑战数的乘积加上所述第六随机数,以得到经随机挑战的第一数据;
将所述第二数据和所述挑战数的乘积加上所述第七随机数,以得到经随机挑战的第二数据;
将所述第一随机数和所述挑战数的乘积加上所述第三随机数,以得到第一随机挑战数;
将所述第二随机数和所述挑战数的乘积加上所述第四随机数,以得到第二随机挑战数;
将第八随机数和所述挑战数的乘积加上所述第五随机数,以得到第三随机挑战数;以及
将所述第一承诺、所述第二承诺、所述第三承诺、所述经随机挑战的第一数据、所述经随机挑战的第二数据、所述第一随机挑战数、所述第二随机挑战数、所述第三随机挑战数和所述第八随机数作为数据均值零知识证明连同所述第一数据标签、所述第二数据标签和所述均值发送给验证方设备。


2.一种用于验证数据均值的方法,包括:
在验证方设备处,从数据方设备接收第一承诺、第二承诺、第三承诺、经随机挑战的第一数据、经随机挑战的第二数据、第一随机挑战数、第二随机挑战数、第三随机挑战数、随机数、第一数据标签、第二数据标签和均值;
对所述第一承诺...

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

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

1