一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种抗差分故障攻击的两方协同EdDSA签名算法

2022-11-30 13:07:01 来源:中国专利 TAG:

,p2计算作为p2的 签名辅助私钥,p2计算a2=x2b作为p2的辅助签名公钥;
15.第四步,p2生成关于(x2,a2)的离散对数关系的零知识证明π2,将(a2,π2)发 送给p1;
16.第五步,p1验证(a2,π2)的正确性,如果不正确,终止协议执行过程;如果正 确,p1揭示承诺commit1,将揭示承诺输出值decommit1和(a1,π1)发送给p2;
17.第六步,p2验证(a1,π1)的正确性,如果不正确,终止协议执行过程;如果正 确,继续执行协议;
18.第七步,p1生成paillier同态加密密钥对(pk,sk),p1计算c
key
=enc
pk
(x1),p1计 算签名公钥a=x1·
a2,并计算加密公钥pk零知识证明π3和密文c
key
零知识证明π4, 将pk、π3、π4和c
key
发送给p2,p1保存(x1,a,pk,sk);
19.第八步,p2验证π3、π4的正确性,如果不正确,终止协议执行过程;如果正 确,计算签名公钥a=x2·
a1并保存(x2,a,c
key
,pk);
20.其中,h1,h2为密码杂凑函数;α1,α2为p1和p2各自持有的签名私钥;x1,x2为 p1和p2各自持有的辅助签名私钥,满足x=x1·
x2;a1,a2为p1和p2各自持有的辅助 签名公钥;commit1为发送方暂时以隐藏的方式向接收方对π1承诺,输入消息π1, 输出承诺值commit1;c
key
,为同态密文;mod n为模n运算;enc
pk
为同态加密操作, 对应的加密密钥为pk;b

为爱德华兹曲线edwards25519上固定取值为256。
21.在一个实施方式中,步骤二具体包括以下步骤:
22.第一步,p1计算e=h2(m),p1任意选取随机数计算 计算r1=r1·
b,p1生成关于(r1,r1)的离散对数关系的零知识 证明π5,计算(r1,π5)的承诺commit2发送给所述p2;
23.第二步,p2计算e=h2(m),p2任意选取随机数计算 计算r2=r2·
b,p2生成关于(r2,r2)的离散对数关系的零知 识证明π6,将(r2,π6)发送给p1;
24.第三步,p1验证(r2,π6)的正确性,如果不正确,终止协议执行过程;如果正 确,p1揭示承诺commit2,将揭示承诺输出值decommit2和(r1,π5)发送给p2;
25.第四步,p2验证(r1,π5)的正确性;如果不正确,则终止协议执行过程;如果 正确,则p2计算r=r1 r2,计算h=h2(r,a,e)mod n,计算c1=enc
pk
(r2)和v=x2·
h, 然后计算c2=v
⊙ckey
,令计算将c3发 送给所述p1;
26.第五步,p1计算r=r1 r2,p1利用sk解密c3,最终得到消息m的数字签名 (r,s);
27.其中,为表示1,2,3,...,n-1的集合;k1,k2为p1和p2选择的随机数,满足 b为爱德华兹曲线edwards25519上的基点b∈e
c,d
(fq);r1·
b为爱德华兹 曲线edwards25519上点b的r1倍点,即r1是正整数;,c1,c2,c3为同态密文;commit2为发送方暂时以隐藏的方式向接收方对π5承诺,输入消息 π5,输出承诺值commit2。
28.在一个实施方式中,在第五步中,p1利用sk解密c3为:
29.计算s=(r1 s

)mod n=(r xh)mod n;
30.其中,dec
sk
为 同态解密操作,对应的解密密钥为sk。
31.在一个实施方式中,爱德华兹曲线edwards25519的计算公式为: cx2 y2=1 d x2y2。
32.在一个实施方式中,h1:{0,1}
*

{0,1}
2b

,h2:{0,1}
*
→zn

33.上述技术特征可以各种适合的方式组合或由等效的技术特征来替代,只要能 够达到本发明的目的。
34.本发明提供的一种抗差分故障攻击的两方协同eddsa签名算法,与现有技 术相比,至少具备有以下有益效果:
35.本发明设计了一种抗差分故障攻击的两方协同eddsa数字签名算法,不仅 具有安全性高、易验证和秘钥和签名空间更小等优点,而且签名整个过程必须在 通信双方共同参与情况下才能生成两方协同签名,降低了签名私钥泄漏风险,抵 抗签名者权利过于集中、防止单点失效,增强了签名算法的安全性;另外通过对 签名算法引入随机数,防止了恶意攻击利用电磁辐射、激光等物理手段在eddsa 签名过程中注入故障,分析推算出密码系统的密钥信息,从而保护货币的资产安 全。
附图说明
36.在下文中将基于实施例并参考附图来对本发明进行更详细的描述。其中:
37.图1是本发明实施例两方协同eddsa签名算法的方法步骤图;
38.图2是本发明实施例的两方协同eddsa密钥生成过程示意图;
39.图3是本发明实施例的两方协同eddsa签名算法过程示意图。
40.在附图中,相同的部件使用相同的附图标记。附图并未按照实际的比例。
具体实施方式
41.下面将结合附图对本发明作进一步说明。
42.本技术中符号及定义:
43.e
c,d
:爱德华兹曲线edwards25519,具体为cx2 y2=1 d x2y2;
44.b:爱德华兹曲线edwards25519上的基点b∈e
c,d
(fq);
45.n:表示基点b的阶,满足nb=0且23n=#e
c,d

46.b

:爱德华兹曲线edwards25519上固定取值为256;
47.h1,h2:密码杂凑函数,h1表示输入为任意长度比特串{0,1}
*
,输出为2b

比 特长的密码杂凑函数即h1:{0,1}
*

{0,1}
2b

,h2:{0,1}
*
→zn

48.h:哈希函数h1哈希α1或者α2后生成的512位消息摘要,表示h每一位消息 摘要;
49.表示1,2,3,...,n-1的集合;
50.{0,1}
2b

:长度为2b

的比特字符串集合;
51.{0,1}
*
:长度为任意长的比特字符串集合;
52.p1,p2:计算签名秘钥和签名的两个参与方,第一参与方和第二参与方;
53.a
·
b:表示a,b两个数相乘;
54.mod n:模n运算,例如,25mod 6=1;
55.α1,α2:p1和p2各自持有的签名私钥,满足α1,α2∈{0,1}b′

56.x1,x2:p1和p2各自持有的辅助私钥,满足x=x1·
x2;
57.a1,a2:p1和p2各自持有的公钥;
58.r1,r2:p1和p2各自计算的上爱德华兹曲线的点,满足r=r1 r2;
59.k1,k2:p1和p2选择的随机数,满足
60.r1·
b:爱德华兹曲线上点b的r1倍点,即r1是正整数,
61.满足r1=r1·
b;
62.enc
pk
:同态加密操作,对应的加密密钥为pk;
63.dec
sk
:同态解密操作,对应的解密密钥为sk;
64.c
key
,c1,c2,c3:同态密文;
65.同态加法运算符号,例如其中c1=enc
pk
(m1), c2=enc
pk
(m2);
66.⊙
:同态乘法运算符号,例如dec
sk
(k

c1)=k
·
m1;其中c1=enc
pk
(m1);
67.commit1:发送方暂时以隐藏的方式向接收方对π1承诺,输入消息π1,输出承 诺值commit1;
68.decommit1:揭示承诺阶段,输入消息π1和承诺commit1,输出展示π1的值;
69.需要说明的是,本技术中的差分故障攻击是侧信道攻击的一种,攻击者利用 电磁辐射、激光等物理手段在加密、签名过程中注入故障,迫使密码算法执行过 程中产生运算错误,攻击者可以获得同一个消息在密钥作用下的正确密文,以及 诱发故障后产生的错误密文,最后依据正确密文与错误密文推算出密码系统的密 钥信息。而抗差分故障攻击表示即使攻击者利用差分故障攻击手段攻击签名,迫 使密码算法执行过程中产生运算错误,攻击者也无法获得密码系统的密钥信息。
70.本发明设计了一种抗差分故障攻击的两方协同eddsa数字签名算法,不仅 具有安全性高、易验证和秘钥和签名空间更小等优点,而且签名整个过程必须在 通信双方共同参与情况下才能生成两方协同签名,降低了签名私钥泄漏风险,抵 抗签名者权利过于集中、防止单点失效,增强了签名算法的安全性;另外通过对 签名算法引入随机数,防止了恶意攻击利用电磁辐射、激光等物理手段在eddsa 签名过程中注入故障,分析推算出密码系统的密钥信息,从而保护货币的资产安 全。
71.如图1所示,本发明提供了一种抗差分故障攻击的两方协同eddsa签名算 法。
72.步骤一,p1和p2共同生成所需的秘钥;
73.其中,p1为第一参与方,p2为第二参与方;
74.步骤二,p1和p2进行交互生成签名(r,s);
75.步骤三,对生成的签名(r,s)进行验证。
76.具体地,如图2所示,设待签名的消息为比特串m,为了得到消息m的签名 (r,s),第一参与方p1和第二参与方p2进行如下通信:
77.第1步.秘钥初始化生成,p1和p2共同生成所需的秘钥。
78.步骤1):参与方p1任意选取α1∈{0,1}
*
作为私钥,计算令
p1计算作为p1的签名辅助私钥,p1计算a1=x1b作为p1辅助签名公钥;p1生成关于(x1,a1)的离散 对数关系的零知识证明π1,将(a1,π1)的承诺commit1发送给p2;
79.步骤2):p2p1任意选取α2∈{0,1}
*
作为私钥,计算令 p2计算作为p2的 签名辅助私钥,p2计算a2=x2b作为p2的辅助签名公钥;p2生成关于(x2,a2)的离 散对数关系的零知识证明π2,将(a2,π2)发送给p1;
80.步骤3):p1验证(a2,π2)的正确性,如果不正确,终止协议执行过程;如果正 确,p1揭示承诺commit1,将揭示承诺输出值decommit1和(a1,π1)发送给p2;
81.步骤4):p2验证(a1,π1)的正确性,如果不正确,终止协议执行过程;如果正 确,继续执行协议;
82.步骤5):p1生成paillier同态加密密钥对(pk,sk),p1计算c
key
=enc
pk
(x1),计算 签名公钥a=x1·
a2,计算加密公钥pk零知识证明π3和密文c
key
零知识证明π4,将 pk、π3、π4和c
key
发送给p2,p1保存(x1,a,pk,sk);
83.步骤6):p2验证π3、π4的正确性,如果不正确,终止协议执行过程;如果 正确,计算签名公钥a=x2·
a1并保存(x2,a,c
key
,pk)。
84.具体地,如图3所示,第2步.两方协同eddsa签名算法,定义待签名的消 息为比特串m,为了得到消息m的数字签名σ=(r,s),p1和p2进行交互生成签 名步骤如下:
85.步骤1):参与方p1计算e=h2(m),p1任意选取随机数计算 计算r1=r1·
b,p1生成关于(r1,r1)的离散对数关系的零知识 证明π3,计算(r1,π5)的承诺commit2发送给p2;
86.步骤2):参与方p2计算e=h2(m),p2任意选取随机数计算 计算r2=r2·
b,p2生成关于(r2,r2)的离散对数关系的零知 识证明π6,将(r2,π6)发送给p1;
87.步骤3):参与方p1验证(r2,π6)的正确性,如果不正确,终止协议执行过程; 如果正确,p1揭示承诺commit2,将揭示承诺输出值decommit2和(r1,π5)发送给p2;
88.步骤4):参与方p2验证(r1,π5)的正确性,如果不正确,终止协议执行过程; 如果正确,参与方p2计算r=r1 r2,计算h=h2(r,a,e)mod n,计算c1=enc
pk
(r2)和 v=x2·
h,然后计算c2=v
⊙ckey
,令即将c3发送给p1;
89.步骤5):参与方p1计算r=r1 r2,p1利用sk解密c3,即计算 s=(r1 s

)mod n=(r xh)mod n;最终得到消息m的数字签名(r,s)。
90.第3步.两方协同eddsa签名的验证算法验证方式与eddsa签名验证方式 相同,p1计算h=h2(r,a,e)mod n;然后检验等式sb=r ha是否成立,若成立, 则签名(r,s)为消息m的有效签名,否则,签名无效。
91.本发明实现了一种抗差分故障攻击的两方协同eddsa签名方案,签名过程 中保证签名的两个参与方不会暴露各自的签名密钥,且签名必须由双方同时参与 才能完成,从而
提高了签名方案的安全性和公平性。同时,本发明考虑到eddsa 签名是一种确定性签名无法抵抗差分故障攻击,在签名过程中引入随机数抵制了 签名差分故障攻击,从而再次提高了eddsa签名的安全性,保证了密码货币的 资产安全。
92.在本发明的描述中,需要理解的是,术语“上”、“下”、“底”、“顶”、“前”、“后”、
ꢀ“
内”、“外”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置 关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元 件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的 限制。
93.虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这 些实施例仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性 的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求 所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所 描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是, 结合单独实施例所描述的特征可以使用在其他所述实施例中。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献