【技术实现步骤摘要】
零知识证明的方法、系统、装置、终端和存储介质
[0001]本申请涉及加密
,特别涉及一种零知识证明的方法
、
系统
、
装置
、
终端和存储介质
。
技术介绍
[0002]零知识证明即证明者在不向验证者透露信息的情况下,向验证者证明自己有该信息
。
在数字签名技术中,零知识证明被广泛应用
。
例如,数字签名技术中的秘钥生成
、
密文合法性
(
正确性
)
验证等,均用到了零知识证明
。
[0003]目前,在数字签名技术中的零知识证明通常是证明存在
(x1,
...
,
x
n
)
,使得其中,
(x1,
...
,
x
n
)
是证明者需要证明的数据,
w、n、gi
均为公开参数
。
在证明过程中,证明者先选取
n
个随机数,然后,根据上述要证明的关系和
n
个随机数,计算承诺值,并将该承诺值发送给验证者
。
验证者向证明者发送挑战值
。
证明者根据挑战值和随机数,计算得到
n
个响应,根据每个响应和挑战值,证明者计算出对应的两个正整数
di
和
ei。
证明者根据
di
和上述要证明的关系,计 ...
【技术保护点】
【技术特征摘要】
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
...
【专利技术属性】
技术研发人员:崔韩东,陈钧贤,阮子瀚,康鑫,朱成康,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。