零知识证明的方法技术

技术编号:39749016 阅读:12 留言:0更新日期:2023-12-17 23:46
本申请实施例公开了一种零知识证明的方法

【技术实现步骤摘要】
零知识证明的方法、系统、装置、终端和存储介质


[0001]本申请涉及加密
,特别涉及一种零知识证明的方法

系统

装置

终端和存储介质


技术介绍

[0002]零知识证明即证明者在不向验证者透露信息的情况下,向验证者证明自己有该信息

在数字签名技术中,零知识证明被广泛应用

例如,数字签名技术中的秘钥生成

密文合法性
(
正确性
)
验证等,均用到了零知识证明

[0003]目前,在数字签名技术中的零知识证明通常是证明存在
(x1,
...

x
n
)
,使得其中,
(x1,
...

x
n
)
是证明者需要证明的数据,
w、n、gi
均为公开参数

在证明过程中,证明者先选取
n
个随机数,然后,根据上述要证明的关系和
n
个随机数,计算承诺值,并将该承诺值发送给验证者

验证者向证明者发送挑战值

证明者根据挑战值和随机数,计算得到
n
个响应,根据每个响应和挑战值,证明者计算出对应的两个正整数
di

ei。
证明者根据
di
和上述要证明的关系,计算承诺值,并将该承诺值和
ei
发送给验证者

验证者验证承诺值
、w、gi、ei、
挑战值等是否满足预设等式关系,如果满足预设等式关系,则向证明者发送随机素数

证明者根据上述每个响应和随机素数,计算出对应的两个正整数
pi

ri。
证明者根据
pi
和上述要证明的关系,计算承诺值,并将该承诺值和
ri
发送给验证者

验证者验证承诺值
、w、gi、ri、
挑战值等是否满足预设等式关系,如果满足预设等式关系,则证明证明者存在
(x1,
...

x
n
)
,使得
[0004]在上述零知识证明中,过程相对繁琐,证明者和验证者之间需要进行交互的次数较多,导致通信成本较大


技术实现思路

[0005]本申请实施例提供了一种零知识证明的方法

系统

装置

终端和存储介质,能够解决相关技术的零知识证明中证明者终端和验证者终端之间交互过多,造成的通信代价大的问题

所述技术方案如下:
[0006]第一方面,提供了一种零知识证明的方法,方法包括:
[0007]证明者终端在预设整数范围内,选择
n
个整数,根据
n
个整数计算第一承诺值,并向验证者终端发送第一承诺值

证明者终端获取挑战值和随机素数,对于
n
个待证明数据中的每个待证明数据,证明者终端根据待证明数据

挑战值和
n
个整数中的一个整数生成响应,其中,挑战值为小于预设安全参数的正整数,随机素数小于预设安全参数

对于每个响应,证明者终端根据响应

预设安全参数和随机素数,计算得到第一正整数和第二正整数,其中,响应等于一正整数

预设安全参数

随机素数的乘积与第二正整数之和

然后,证明者终端根据各响应对应的第一正整数计算第二承诺值,并向验证者终端发送第二承诺值和每个
响应对应的第二正整数

验证者终端根据第二承诺值

预设安全参数

随机素数

第一承诺值

挑战值以及每个响应对应的第二正整数,对
n
个待证明数据进行验证

[0008]在本申请实施例提供的零知识证明的方法中,挑战值和随机素数可以在一步中获取到,无需像相关技术中需要证明者和验证者交互至少三次才能得到

此外,本申请中最后验证者终端进行验证时是基于第二承诺值

预设安全参数

随机素数

第一承诺值

挑战值以及每个响应对应的第二正整数共同进行验证的,并非是像相关技术中需要分开进行两次验证,每次验证证明者和验证者之间都要交互数据,这样,不但减少了通信代价,还减少了计算代价

[0009]在一种可能的实现方式中,证明者终端获取挑战值和随机素数的方式可以为:
[0010]接收验证者终端同时发送的挑战值和随机素数

[0011]在本申请实施例所示的方案中,验证者终端可以将挑战值和随机素数同时发送给证明者终端,而不再分多次交互,这样,可以有效减少了通信代价,也减少了验证者终端的计算代价

[0012]在一种可能的实现方式中,证明者终端获取挑战值和随机素数的方式还可以为:
[0013]将第一承诺值输入第一哈希函数,得到挑战值

将第一承诺值输入第二哈希函数,得到随机素数

[0014]在本申请实施例所示的方案中,证明者终端可以通过哈希函数生成挑战值和随机素数,无需和验证者终端进行交互,可以有效减少了通信代价

[0015]在一种可能的实现方式中,对于
n
个待证明数据中的每个待证明数据,证明者终端根据所述待证明数据

所述挑战值和所述
n
个整数中的一个整数生成响应,包括:
[0016]对于
n
个待证明数据中的每个待证明数据,证明者终端根据公式
s
i

k
i
+cx
i
,生成响应,其中,
s
i
为响应,
k
i

n
个整数中的第
i
个整数,
c
为挑战值,
x
i

n
个待证明数据中的第
i
个待证明数据

[0017]在一种可能的实现方式中,对于每个响应,证明者终端根据响应

预设安全参数和随机素数计算第一正整数和第二正整数,包括:
[0018]对于每个响应,证明者终端计算所述预设安全参数和随机素数的乘积,将响应除以该乘积,得到的商为第一正整数,得到的余数为第二正整数

[0019]在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种零知识证明的方法,其特征在于,所述方法包括:证明者终端在预设整数范围内,选择
n
个整数,其中,所述
n
为预设正整数;所述证明者终端根据所述
n
个整数计算第一承诺值,并向验证者终端发送所述第一承诺值;所述证明者终端获取挑战值和随机素数,对于
n
个待证明数据中的每个待证明数据,所述证明者终端根据所述待证明数据

所述挑战值和所述
n
个整数中的一个整数生成响应,其中,所述挑战值为小于预设安全参数的正整数,所述随机素数小于所述预设安全参数;对于每个响应,所述证明者终端根据所述响应

所述预设安全参数和所述随机素数,计算得到第一正整数和第二正整数,其中,所述响应等于所述第一正整数

所述预设安全参数

所述随机素数的乘积与所述第二正整数之和;所述证明者终端根据各响应对应的述第一正整数计算第二承诺值,并向所述验证者终端发送所述第二承诺值和每个响应对应的第二正整数,以使所述验证者终端根据所述第二承诺值

所述预设安全参数

所述随机素数

所述第一承诺值

所述挑战值以及每个响应对应的第二正整数,对所述
n
个待证明数据进行验证
。2.
根据权利要求1所述的方法,其特征在于,所述证明者终端获取挑战值和随机素数,包括:接收所述验证者终端发送的挑战值和随机素数
。3.
根据权利要求1所述的方法,其特征在于,所述证明者终端获取挑战值和随机素数,包括:将所述第一承诺值输入第一哈希函数,得到挑战值;将所述第一承诺值输入第二哈希函数,得到随机素数
。4.
根据权利要求1‑3中任一项所述的方法,其特征在于,所述对于
n
个待证明数据中的每个待证明数据,所述证明者终端根据所述待证明数据

所述挑战值和所述
n
个整数中的一个整数生成响应,包括:对于
n
个待证明数据中的每个待证明数据,所述证明者终端根据公式
s
i

k
i
+cx
i
,生成响应,其中,
s
i
为响应,
k
i
为所述
n
个整数中的一个整数,
c
为所述挑战值,
x
i

n
个待证明数据中的每个待证明数据
。5.
根据权利要求1‑4中任一项所述的方法,其特征在于,所述对于每个响应,所述证明者终端根据所述响应

所述预设安全参数和所述随机素数,计算得到第一正整数和第二正整数,包括:对于每个响应,所述证明者终端计算所述预设安全参数和所述随机素数的乘积,将所述响应除以所述乘积,得到的商为第一正整数,得到的余数为第二正整数
。6.
根据权利要求1‑5中任一项所述的方法,其特征在于,所述证明者终端根据所述
n
个整数计算第一承诺值,包括:所述证明者终端根据公式计算得到第一承诺值,其中,
R
为所述第一承诺值,
g
i
为公开参数,
k
i
为所述
n
个整数中的第
i
个整数;所述证明者终端根据各响应对应的第一正整数计算第二承诺值,包括:
证明者终端根据公式计算得到第二承诺值,其中,
D
为所述第二承诺值,
d
i
为第
i
个响应对应的第一正整数
。7.
一种零知识证明的系统,其特征在于,所述系统包括证明者终端和验证者终端,其中:证明者终端,用于在预设整数范围内,选择
n
个整数,其中,所述
n
为预设正整数,根据所述
n
个整数计算第一承诺值,并向验证者终端发送所述第一承诺值,获取挑战值和随机素数,对于
n
个待证明数据中的每个待证明数据,根据所述待证明数据

所述挑战值和所述
n
个整数中的一个整数生成响应,其中,所述挑战值为小于预设安全参数的正整数,所述随机素数小于所述预设安全参数,对于每个响应,根据所述响应

所述预设安全参数和所述随机素数,计算得到第一正整数和第二正整数,其中,所述响应等于所述第一正整数

所述预设安全参数

所述随机素数的乘积与所述第二正整数之和,根据所述第一正整数计算第二承诺值,并向所述验证者终端发送所述第二承诺值和每个响应对应的第二正整数;所述验证者终端,用于根据所述第二承诺值

所述预设安全参数

所述随机素数

所述第一承诺值

所述挑战值以及每个响应对应的第二正整数,对所述
n
个待证明数据进行验证
。8.
根据权利要求7所述的系统,其特征在于,所述验证者终端,还用于:生成挑战值和随机素数,并向所述证明者终端发送所述挑战值和所述随机素数;所述证明者终端,用于:接收所述验证者终端发送的所述挑战值和所述随机素数
。9.
根据权利要求7所述的系统,其特征在于,所述证明者终端,用于:将所述第一承诺值输入第一哈希函数,得到挑战值;将所述第一承诺值输入第二哈希函数,得到随机素数
。10.
根据权利要求7‑9中任一项所述的系统,其特征在于,所述证明者终端,用于:对于
n
个待证明数据中的每个待证明数据,所述证明者终端根据公式
s
i

k
i
+cx
i
...

【专利技术属性】
技术研发人员:崔韩东陈钧贤阮子瀚康鑫朱成康
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1