用于数据完整性证明的方法、设备及计算机存储介质技术

技术编号:24996555 阅读:26 留言:0更新日期:2020-07-24 17:59
根据本公开的示例实施例,提供了用于数据完整性证明的方法、设备及存储介质。在该方法中,从数据验证方接收第一随机数,将生成的N个第三随机数与N个数据块所对应的N个椭圆曲线基点一一对应进行椭圆曲线乘法,以得到N个随机化的椭圆曲线基点;将N个随机化的椭圆曲线基点进行椭圆曲线加法,以得到承诺标签;将承诺标签的哈希值加上第一随机数,以得到挑战数;对于每个数据块,将挑战数和对应的第三随机数的乘积与数据块相加,以得到经加密的数据块;以及将承诺标签和N个经加密的数据块发送给数据验证方。由此,本发明专利技术能够使得数据存储方能够向数据验证方提供数据完整性零知识证明,而不泄露原始明文。

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

【技术保护点】
1.一种用于生成数据完整性零知识证明的方法,包括:/n在数据存储方处,从数据验证方接收第一随机数,所述数据存储方存储有包括N个数据块的数据,N为大于1的整数,所述数据块的大小不超过预定大小,所述数据验证方存储有用于所述数据的数据标签,所述数据标签基于以下步骤生成:将N+1个不同值分别与预定字符串拼接得到的N+1个结果哈希到椭圆曲线上的点,以得到N+1个椭圆曲线基点,将所述N个数据块与所述N+1个椭圆曲线基点中的N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个椭圆曲线点,将所述N+1个椭圆曲线基点中剩余的椭圆曲线基点与第二随机数进行椭圆曲线乘法操作,以得到第N+1个椭圆曲线点,以及将所述N+1个椭圆曲线点进行椭圆曲线加法操作,以得到用于所述数据的所述数据标签;/n将生成的N个第三随机数与所述N个数据块所对应的所述N个椭圆曲线基点一一对应进行椭圆曲线乘法,以得到N个随机化的椭圆曲线基点;/n将所述N个随机化的椭圆曲线基点进行椭圆曲线加法,以得到承诺标签;/n将所述承诺标签的哈希值加上第一随机数,以得到挑战数;/n对于所述N个数据块中的每个数据块,将所述挑战数和所述数据块对应的第三随机数的乘积与所述数据块相加,以得到经加密的数据块;以及/n将所述承诺标签和N个经加密的数据块作为数据完整性证明发送给所述数据验证方。/n...

【技术特征摘要】
1.一种用于生成数据完整性零知识证明的方法,包括:
在数据存储方处,从数据验证方接收第一随机数,所述数据存储方存储有包括N个数据块的数据,N为大于1的整数,所述数据块的大小不超过预定大小,所述数据验证方存储有用于所述数据的数据标签,所述数据标签基于以下步骤生成:将N+1个不同值分别与预定字符串拼接得到的N+1个结果哈希到椭圆曲线上的点,以得到N+1个椭圆曲线基点,将所述N个数据块与所述N+1个椭圆曲线基点中的N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到N个椭圆曲线点,将所述N+1个椭圆曲线基点中剩余的椭圆曲线基点与第二随机数进行椭圆曲线乘法操作,以得到第N+1个椭圆曲线点,以及将所述N+1个椭圆曲线点进行椭圆曲线加法操作,以得到用于所述数据的所述数据标签;
将生成的N个第三随机数与所述N个数据块所对应的所述N个椭圆曲线基点一一对应进行椭圆曲线乘法,以得到N个随机化的椭圆曲线基点;
将所述N个随机化的椭圆曲线基点进行椭圆曲线加法,以得到承诺标签;
将所述承诺标签的哈希值加上第一随机数,以得到挑战数;
对于所述N个数据块中的每个数据块,将所述挑战数和所述数据块对应的第三随机数的乘积与所述数据块相加,以得到经加密的数据块;以及
将所述承诺标签和N个经加密的数据块作为数据完整性证明发送给所述数据验证方。


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


3.根据权利要求1所述的方法,其中所述N+1个不同值包括整数0到N。


4.根据权利要求1所述的方法,其中将所述N+1个不同值分别与所述预定字符串拼接得到的所述N+1个结果哈希到椭圆曲线上的点包括:
将所述N+1个不同值分别与所述预定字符串拼接,以得到所述N+1个结果;
将所述N+1个结果进行哈希,以得到N+1个哈希结果;以及
将所述N+1个哈希结果映射到椭圆曲线上的点,以得到所述N+1个椭圆曲线基点。


5.根据权利要求1所述的方法,其中将所述N个数据块与所述N+1个椭圆曲线基点中的N个椭圆曲线基点一一对应进行椭圆曲线乘法操作包括:
将所述N个数据块与所述N+1个椭圆曲线基点中的前或后N个椭圆曲线基点一一对应进行椭圆曲线乘法操作,以得到所述N个椭圆曲线点。


6.一种用于验证数据完整性零知识证明的方法,包括:
在数据验证方处,向数据存储方发送第一随机数,所述数据存储方存储有包括N个数据块的数据,N为大于1的整数,所述数据块的大小不超过预定大小,所述数据验证方存储有用于所述数据的第一数据标签,所述第一数据标签基于以下步骤生成:将N+1个不同值分别与预定字符...

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

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

1