基于零知识证明的验证方法、装置和系统、设备及介质制造方法及图纸

技术编号:36547254 阅读:16 留言:0更新日期:2023-02-04 16:59
本申请公开了一种基于零知识证明的验证方法、装置和系统、设备及介质,属于信息安全领域。该方法包括:获取公开信息,公开信息包括:公开数据y、乘法循环群的根g和模数p,乘法循环群的阶为无法分解的合数;确定验证信息,验证信息包括:证明a、第一响应w和第二响应v,其中,a根据g、第一随机数r、第二随机数t和第一挑战ρ采用模p的乘法运算得到,w根据r、第二挑战c和秘密数据x采用模ρ的加法运算得到,v根据t、g、r、c、x和ρ采用模p的乘法运算得到,ρ为素数,r为属于Z

【技术实现步骤摘要】
基于零知识证明的验证方法、装置和系统、设备及介质


[0001]本申请涉及信息安全
,特别涉及一种基于零知识证明(zero knowledge proof,ZKP)的验证方法、装置和系统、设备及介质。

技术介绍

[0002]ZKP是密码学中的一项常见技术,可应用于多方云计算、数据加密、数字签名、秘密数据比较等多个领域。ZKP主要用于证明“证明者知道秘密数据”这一事实,但是在证明过程中,不泄露与秘密数据相关的信息。
[0003]相关技术中,基于ZKP的验证过程包括:证明设备从Z
B
中选择随机数r,并且根据随机数r计算至少一个证明(witness)发送给验证设备,验证设备选择长度为L比特(bit)的挑战(chanllenge)c发送给证明设备。证明设备根据随机数r、秘密数据x和挑战c采用关于x的一元一次多项式计算响应(response)s,并将响应s发送给验证设备。验证设备基于响应s完成验证。
[0004]该验证过程的安全度取决于安全参数A、B和L的设置。2
L
A/B的值越小,响应s泄露秘密数据x的可能性越小。但是,由于响应s是通过一元一次多项式计算,且随机数r和挑战c是公开的,所以该验证过程中响应s会泄露秘密数据x相关的信息,不能达到完全的零知识证明,对秘密数据的保护程度有待提高。

技术实现思路

[0005]本申请实施例提供了一种基于ZKP的验证方法、装置和系统、设备及介质,能够提高对秘密数据的保护程度。
[0006]第一方面,本申请提供了一种基于ZKP的验证方法。该方法可以由证明设备执行。该方法包括:获取公开信息,所述公开信息包括:公开数据y、乘法循环群的根g和乘法循环群的模数p,所述乘法循环群的阶为无法分解的合数;确定验证信息,所述验证信息包括:证明a、第一响应w和第二响应v,其中,所述a根据所述g、第一随机数r、第二随机数t和第一挑战ρ采用模p的乘法运算得到,所述w根据所述r、第二挑战c和秘密数据x采用模ρ的加法运算得到,所述v根据所述t、所述g、所述r、所述c、所述x和所述ρ采用模p的乘法运算得到,所述ρ为素数,所述r为属于Z
ρ
的随机数,Z
ρ
表示小于ρ的整数集合,所述t为属于的随机数,表示小于p且与p互质的整数集合;以及将所述验证信息发送给验证设备,以使所述验证设备根据所述公开信息和所述验证信息对所述证明设备的承诺进行验证,所述承诺为:所述y是采用所述x计算的,且所述x为关于所述y的离散对数。也即是,该验证方法是基于离散对数的ZKP的。
[0007]在该验证方法中,第一响应和第二响应均由模运算得到,因此,第一响应和第二响应的统计分布符合同一分布,且与秘密数据无关(即独立于秘密数据)。即使第一响应和第二响应被公开,也不会泄露秘密数据的相关信息,能够实现完全零知识证明。
[0008]此外,由于第一响应通过模ρ的加法运算得到,所以第一响应小于ρ,而第二响应通
过模p的乘法运算得到,所以第二响应小于p,从而可以限制第一响应和第二响应的大小,避免由于第一响应和第二响应过大而导致验证过程中的幂计算效率降低以及计算精度下降。
[0009]在一些示例中,所述确定验证信息,包括:根据所述r、所述g、所述t、所述ρ进行模p的乘法运算,得到所述a;根据包含所述r、所述c和所述x的一元一次多项式,得到第一数值;对所述第一数值进行模ρ运算,得到所述w;将所述第一数值与所述ρ之商向下取整,得到第二数值;以及根据所述t、所述g和所述第二数值进行模p的乘法运算,得到所述v。这样,能够实现通过模运算得到响应。
[0010]在一些示例中,所述a采用以下公式得到:a=g
r
t
ρ
mod p;所述一元一次多项式为r

cx;所述v根据以下公式得到:
[0011]在另一些示例中,所述a采用以下公式得到:a=g
r
t
ρ
mod p;所述一元一次多项式为r+cx;所述v根据以下公式得到:
[0012]在一些示例中,所述方法还包括:接收所述验证设备发送的所述ρ,所述ρ是选自Z
ρ

的随机数,所述ρ

大于0且小于所述p,且所述ρ

为整数。该方式适用于交互式ZKP。
[0013]在另一些示例中,所述方法还包括:将所述g、所述y输入哈希函数,得到至少一个第一哈希值,所述ρ为所述至少一个第一哈希值中的素数。该方式适用于非交互式ZKP。并且,利用哈希函数的单向性和防碰撞性,能够选取出合适的ρ。
[0014]在一些示例中,所述方法还包括:接收所述验证设备发送的所述c,所述c为选自Z
p

的随机数,p

为小于或者等于p的正整数。该方式适用于交互式ZKP。
[0015]在另一些示例中,所述确定验证信息,还包括:将所述ρ、所述g、所述y和所述a输入哈希函数,得到第二哈希值,所述第二哈希值即为所述c。该方式适用于非交互式ZKP。并且,利用哈希函数的单向性和防碰撞性,能够选取出合适的c。
[0016]第二方面,本申请提供了一种基于ZKP的验证方法,该方法可以由证明设备执行。该方法包括:获取公开信息,所述公开信息包括:公开数据y、乘法循环群的根g和乘法循环群的模数p,所述乘法循环群的阶为无法分解的合数;接收证明设备发送的验证信息,所述验证信息包括:证明a、第一响应w和第二响应v,其中,所述a是证明设备根据所述g、第一随机数r、第二随机数t和第一挑战ρ采用模p的乘法运算得到的,所述w是所述证明设备根据所述r、第二挑战c和秘密数据x采用模ρ的加法运算得到的,所述v是所述证明设备根据所述t、所述g、所述r、所述c、所述x和所述ρ采用模p的乘法运算得到的,所述ρ为素数,所述r为属于Z
ρ
的随机数,Z
ρ
表示小于ρ的整数集合,所述t为属于的随机数,表示小于p且与p互质的整数集合;以及根据所述公开信息和所述验证信息,对所述证明设备的承诺进行验证,所述承诺为:所述y是采用所述x计算的,且所述x为关于所述y的离散对数。
[0017]在一些示例中,所述根据所述公开信息和所述验证信息,对所述证明设备的承诺进行验证,包括:根据所述g、所述w、所述v、所述ρ、所述y和所述c,计算校验值;响应于所述校验值与所述a模所述p的结果相等,确定所述证明设备的承诺通过验证;或者,响应于所述校验值与所述a模所述p的结果不相等,确定所述证明设备的承诺未通过验证。
[0018]在一些示例中,所述a采用以下公式得到:a=g
r
t
ρ mod p;所述w根据以下公式得到:w=r

cx mod ρ;所述v根据以下公式得到:所述校验值等于g
w
v
ρ
y
c

[0019]在另一些示例中,所述a采用以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于零知识证明的验证方法,其特征在于,所述方法应用于证明设备,所述方法包括:获取公开信息,所述公开信息包括:公开数据y、乘法循环群的根g和乘法循环群的模数p,所述乘法循环群的阶为无法分解的合数;确定验证信息,所述验证信息包括:证明a、第一响应w和第二响应v,其中,所述a根据所述g、第一随机数r、第二随机数t和第一挑战ρ采用模p的乘法运算得到,所述w根据所述r、第二挑战c和秘密数据x采用模ρ的加法运算得到,所述v根据所述t、所述g、所述r、所述c、所述x和所述ρ采用模p的乘法运算得到,所述ρ为素数,所述r为属于Z
ρ
的随机数,Z
p
表示小于ρ的整数集合,所述t为属于的随机数,表示小于p且与p互质的整数集合;以及将所述验证信息发送给验证设备,以使所述验证设备根据所述公开信息和所述验证信息对所述证明设备的承诺进行验证,所述承诺为:所述y是采用所述x计算的,且所述x为关于所述y的离散对数。2.根据权利要求1所述的方法,其特征在于,所述确定验证信息,包括:根据所述r、所述g、所述t、所述ρ进行模p的乘法运算,得到所述a;根据包含所述r、所述c和所述x的一元一次多项式,得到第一数值;对所述第一数值进行模ρ运算,得到所述w;将所述第一数值与所述ρ之商向下取整,得到第二数值;以及根据所述t、所述g和所述第二数值进行模p的乘法运算,得到所述v。3.根据权利要求2所述的方法,其特征在于,所述根据所述r、所述g、所述t、所述ρ进行模p的乘法运算,得到所述a,包括:采用以下公式得到所述a:a=g
r
t
ρ
mod p;所述一元一次多项式为r

cx;所述根据所述t、所述g和所述第二数值进行模p的乘法运算,得到所述v,包括:根据以下公式得到:4.根据权利要求2所述的方法,其特征在于,所述根据所述r、所述g、所述t、所述ρ进行模p的乘法运算,得到所述a,包括:采用以下公式得到所述a:a=g
r
t
ρ
mod p;所述一元一次多项式为r+cx;所述根据所述t、所述g和所述第二数值进行模p的乘法运算,得到所述v,包括:根据以下公式得到所述v:5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:接收所述验证设备发送的所述ρ,所述ρ是选自Z
ρ

的随机数,所述ρ

大于0且小于所述p,且所述ρ

为整数。6.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:将所述g、所述y输入哈希函数,得到至少一个第一哈希值;将所述至少一个第一哈希值中的一个素数作为所述ρ。7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:接收所述验证设备发送的所述c,所述c为选自Z
p

的随机数,p

为小于或者等于p的正整数。8.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
将所述ρ、所述g、所述y和所述a输入哈希函数,得到所述c。9.根据权利要求1至8任一项所述的方法,其特征在于,所述y的个数大于或者等于1,所述v的个数等于所述y的个数。10.一种基于零知识证明的验证方法,其特征在于,所述方法包括:获取公开信息,所述公开信息包括:公开数据y、乘法循环群的根g和乘法循环群的模数p,所述乘法循环群的阶为无法分解的合数;接收证明设备发送的验证信息,所述验证信息包括:证明a、第一响应w和第二响应v,其中,所述a是证明设备根据所述g、第一随机数r、第二随机数t和第一挑战ρ采用模p的乘法运算得到的,所述w是所述证明设备根据所述r、第二挑战c和秘密数据x采用模ρ的加法运算得到的,所述v是所述证明设备根据所述t、所述g、所述r、所述c、所述x和所述ρ采用模p的乘法运算得到的,所述ρ为素数,所述r为属于Z
ρ
的随机数,Z
ρ
表示小于ρ的整数集合,所述t为属于的随机数,表示小于p且与p互质的整数集合;以及根据所述公开信息和所述验证信息,对所述证明设备的承诺进行验证,所述承诺为:所述y是采用所述x计算的,且所述x为关于所述y的离散对数。11.根据权利要求10所述的方法,其特征在于,所述根据所述公开信息和所述验证信息,对所述证明设备的承诺进行验证,包括:根据所述g、所述w、所述v、所述ρ、所述y和所述c,计算校验值;响应于所述校验值与所述a模所述p的结果相等,确定所述证明设备的承诺通过验证;或者,响应于所述校验值与所述a模所述p的结果不相等,确定所述证明设备的承诺未通过验证。12.根据权利要求11所述的方法,其特征在于,所述a采用以下公式得到:a=g
r
t
ρ
mod p;所述w根据以下公式...

【专利技术属性】
技术研发人员:彭琨
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1