CN111082945A - 两方EdDSA协同签名协议 - Google Patents
两方EdDSA协同签名协议 Download PDFInfo
- Publication number
- CN111082945A CN111082945A CN201911334554.4A CN201911334554A CN111082945A CN 111082945 A CN111082945 A CN 111082945A CN 201911334554 A CN201911334554 A CN 201911334554A CN 111082945 A CN111082945 A CN 111082945A
- Authority
- CN
- China
- Prior art keywords
- party
- coding
- eddsa
- signature
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012795 verification Methods 0.000 claims abstract description 19
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了两方EdDSA协同签名协议,属于密码学技术领域。包括密钥生成、签名过程和验证过程,所述密钥生成过程:构造哈希函数H(·),生成密钥sk,所述密钥生成中密钥sk分割成多个部分,并由双方分别保管;所述签名过程:第一方和第二方共同完成签名过程,最后所得的签名为coding(R)||coding(S),其中S由第一方所得,R由第二方所得;所述验证过程:对于明文M签名后的消息coding(R)||coding(S),使用验证密钥coding(A)验证;判断等式是否成立。提高签名密钥的安全性。
Description
技术领域
本发明涉及密码学技术领域,具体涉及两方EdDSA协同签名协议。
背景技术
Edwards-curve数字签名算法被称为EdDSA,是一种比ECDSA更高效的新型签名方案。在EdDSA算法中,需要对整数或字符串进行如下编码:
coding(·):整数s以小尾数形式编码为b位。将椭圆曲线上的一个元素(x,y)编码为b比特字符串,记为coding(x,y),它是y的b-1比特和1比特的x相连。对于x的值,若原x是负的,则为1;若原x是正的,则为0。
EdDSA的签名过程如下:
·密钥生成:
随机选择一个b比特的字符串k,通过哈希函数得到H(k)=(h0,h1,...,h2b-1),并计算出以及A=[s]B,由此得到验证密钥为coding(A),签名密钥为s。其中coding(·)的功能如上描述。
·签名过程:
对于明文消息M,输出签名后的消息coding(R)//coding(S),其中r=H(hb||…||h2b-1||M),R=[r]B,S=(r+H(coding(R)||(coding(A))||M)*s)mod L。
·验证过程:
对于明文M签名后的消息coding(R)//coding(S),使用验证密钥coding(A)验证。判断等式[2c*S]B=2c*R+[2c*h]A是否成立,其中h=H(coding(R)||coding(A)||M)。
对以上所用符号的说明如下:p为椭圆曲线E的奇素数幂;b为满足8的倍数的整数,其中EdDSA的公钥恰好为b比特,EdDSA的签名恰好为b比特;c为等于2或3的整数;n为满足c<=n<b的整数;B为椭圆曲线E上的点;L是由B所组成的有限循环群的阶。
在EdDSA算法中,签名密钥一旦泄露,整个方案将不再安全。为了提高签名密钥的安全性,本专利提出一个两方协同的EdDSA签名算法。
发明内容
针对现有技术的不足,本发明提供一种两方EdDSA协同签名协议的技术方案,解决了现有签名方式不安全的问题。
两方EdDSA协同签名协议,包括密钥生成、签名过程和验证过程,所述密钥生成过程构造哈希函数H(·),生成密钥sk,所述密钥生成中密钥sk分割成多个部分,并由双方分别保管;
所述签名过程:第一方和第二方共同完成签名过程,最后所得的签名为coding(R)//coding(S),其中S由第一方所得,R由第二方所得;
所述验证过程:对于明文M签名后的消息coding(R)||coding(S),使用验证密钥coding(A)验证;判断等式是否成立。
进一步的,所述密钥sk包括三个部分,第一部分是第一个/′/4位的d11,第二部分是第二个/′/4位的d10,最后一部分是其余的/′/2位的d2。
进一步的,所述的密钥d11、d10、d2分配完成后,第一部分是由第一方保存,剩下的两个部分是由第二方保存;第一方需要发送SHA256([s1]B)给第二方,第二方发送在发送[s2]B给第一方,第一方收到[s2]B后,再发送[s1]B给第二方。
进一步的,所述的共同完成签名的过程为:
1)第一方通过d11计算出r1=H(d11||M),并计算σA=(r1-s1-α)mod L以及RA=[α]B;第一方将σA和RA发送给第二方;
2)第二方通过d10计算r2=H(d10||M),并令β=H(coding(R)||coding(A)||M);当第二方接收到第一方发送的σA和RA后,计算出[r1]B的值,于是能够得到R=[r1]B+[r2]B=[r]B;
3)第二方计算σB=[σA+r2+β(s2-σA)]mod L,并将σB和β发送给第一方;
4)第一方接收到σB和β后,计算出S=[σB+s1+α+β(r1-α)]mod L=(r+βs)mod L;
5)最后双方共同所得到的签名为coding(R)//coding(S)。
进一步的,所述哈希函数H(·)为h=H(coding(R)||coding(A)||M),将任意长度的比特串编码为/′长度的字符串;当x<I′/2时,将其填充为/′/2比特,当x>=/′/2,将x分为/′/4比特的x0,I′/4比特的x1,剩下的为x2,然后计算H(x)=h(x0||x2)||h(x1||x2)。
进一步的,哈希函数H(·)具有单向性,通过以下方法证明:
若哈希函数h是单向的,则哈希函数H也是单向的;假设攻击者A可以攻破哈希函数H的单向性;设计算法B攻破h的单向性,就是给出y和h,能找到x能够满足y=h(x),B把y||y发送给A,通过y||y=h(x0||x2)||h(x0||x2)=H(x0||x0||x2),A求出x0||x2,B计算出x0||x2作为x的值。
进一步的,哈希函数H(·)具有防碰撞性,证明方法如下:
假设攻击者A可以攻破哈希函数H的抗碰撞性。设计算法B攻破h的抗碰撞性,就是(1)给出h,能找到x和x′,满足h(x)=h(x′);(2)给出x和h,能找到x′满足h(x)=h(x′)。
(1)攻击者A求出不同的x0||x1||x2和x′0||x′1||x2′满足H(x0||x1||x2)=H(x′0||x′1||x′2)=h(x0||x2)||h(x1||x2)=h(x0′||x2′)||h(x1′||x2′)。由于A可以攻破哈希函数H的抗碰撞性,那么我们有x0||x2≠x′0||x′2或x1||x2≠x′1||x′2。因此,B就能得到x=x0||x2和x′=x′0||x2′;或者x=x1||x2和x′=x′1||x2′
(2)攻击者A得到不同的x′0||x′1||x2′满足H(x0||x0||x2)=h(x0||x2)||h(x0||x2)=H(x′0||x′1||x′2),其中x=x0||x2,B就能得到x′=x′0||x2′。
本方法最大特点在于在保持原有EdDSA签名算法的特点(如签名时所用的随机数是确定的)的前提下,实现了两方协同签名,提高签名密钥的安全性。
附图说明
图1为两方EdDSA算法的密钥生成;
图2为两方EdDSA算法的签名过程。
具体实施方式
下面结合说明书附图对本发明的技术方案作进一步说明。
对于传统的EdDSA,存在密钥保存不安全问题。对此,通过安全的两方数字签名协议来解决这个问题。
首先,在一个安全的哈希函数h(·)的基础上,构造一个新的函数H(·)。该哈希函数h(·)将任意长度的字符串编码为/长度的比特串。而新函数H(·)将任意长度的比特串编码为/′长度的字符串。当x<I′/2时,将其填充为/′/2比特。当x>=I′/2,将x分为/′/4比特的x0,/′/4比特的x1,剩下的为x2。然后计算H(x)=h(x0||x2)||h(x1||x2)。
以下证明所构造的新哈希函数H(·)符合密码哈希函数的单向性和抗碰撞性。
·若哈希函数h是单向的,则提出的哈希函数H也是单向的
假设攻击者A可以攻破哈希函数H的单向性。设计算法B攻破h的单向性,就是给出y和h,能找到x能够满足y=h(x)。B把y||y发送给A。通过y||y=h(x0||x2)||h(x0||x2)=H(x0||x0||x2),A求出x0||x2。B计算出x0||x2作为x的值。
·抗碰撞性
假设攻击者A可以攻破哈希函数H的抗碰撞性。设计算法B攻破h的抗碰撞性,就是(1)给出h,能找到x和x′,满足h(x)=h(x′);(2)给出x和h,能找到x′满足h(x)=h(x′)。具体如下:
(1)攻击者A求出不同的x0||x1||x2和x′0||x′1||x2′满足H(x0||x1||x2)=H(x′0||x′1||x′2)=h(x0||x2)||h(x1||x2)=h(x0′||x2′)||h(x1′||x2′)。由于A可以攻破哈希函数H的抗碰撞性,那么我们有x0||x2≠x′0||x′2或x1||x2≠x′1||x′2。因此,B就能得到x=x0||x2和x′=x′0||x2′;或者x=x1||x2和x′=x′1||x2′
(2)攻击者A得到不同的x′0||x′1||x2′满足H(x0||x0||x2)=h(x0||x2)||h(x0||x2)=H(x′0||x′1||x′2),其中x=x0||x2,B就能得到x′=x′0||x2′。
由以上可知所构造的哈希函数H(·)满足单向性和抗碰撞性。
在EdDSA算法中,通常建议edwards25519和edwards448这两条曲线来实例化。本专利中的算法适合于这条曲线的实例化。
两方EdDSA签名过程如下:
·密钥生成:
如图一所示。与原EdDSA方案相比,将签名密钥sk分割成三个部分,第一部分是第一个/′/4位的d11,第二部分是第二个/′/4位的d10,最后一部分是其余的I′/2位的d2。第一部分是由Alice(第一方)保存,剩下的两个部分是由Bob(第二方)保存。值得一提的是,在发送[s1]B给Bob之前,Alice需要发送5HA256([s1]B)给Bob,Alice收到Bob的[s2]B后,再发送[s1]B给Bob。此步骤是用于防止Bob能够单独地决定A的签名过程。最后,得到验证密钥A=[s1]B+[s2]B=[s]B,相应的签名密钥d=d11||d10||d2。Alice拥有d11、s1,Bob拥有d10、d2、[s1]B、s2。
·签名过程:
如图二所示,具体过程如下:
1)Alice通过d11计算出r1=H(d11||M),并计算σA=(r1-s1-α)mod L以及RA=[α]B,Alice将σA和RA发送给Bob;
2)Bob通过d10计算r2=H(d10||M),令β=H(coding(R)||coding(A)||M)。当Bob接收到Alice发送的σA和RA后,可以计算出[r1]B的值。于是能够得到R=[r1]B+[r2]B=[r]B;
3)Bob计算σB=[σA+r2+β(s2-σA)]mod L,并将σB和β发送给Alice;
4)Alice接收到σB和β后,就可以计算出S=[σB+s1+α+β(r1-α)]mod L=(r+βs)modL;
5)最后所得到的签名为coding(R)//coding(S)。
·验证过程:
对于明文M签名后的消息coding(R)||coding(S),使用验证密钥coding(A)验证。判断等式是否成立,其中h=H(coding(R)||coding(A)||M)。
在所设计的两方签名协议中,对于Bob,他只知道三个方程,分别为σA=r1-s1-α、σB=σA+r2+β(s2-σA)和y=[α]B。最后一个方程y=[α]B类似于离散对数方程,不可解。因此实际上为两个方程和三个未知数,联立方程组后不可解。所以Alice所拥有的密钥对于Bob是安全的。
而对于Alice,他只知道方程S=σB+s1+α+β(r1-α),R=[r1]B+[r2]B。对于最后一个方程R=[r1]B+[r2]B,同样不可解。因此实际上为一个方程组,两个未知数,无解。所以Bob所拥有的密钥对于Alice是安全的。
Claims (7)
1.两方EdDSA协同签名协议,包括密钥生成、签名过程和验证过程,其特征在于所述密钥生成过程:构造哈希函数H(·),生成密钥sk,所述密钥生成中密钥sk分割成多个部分,并由双方分别保管;
所述签名过程:第一方和第二方共同完成签名过程,最后所得的签名为coding(R)||coding(S),其中S由第一方所得,R由第二方所得;
所述验证过程:对于明文M签名后的消息coding(R)||coding(S),使用验证密钥coding(A)验证;判断等式是否成立。
2.根据权利要求1所述的两方EdDSA协同签名协议,其特征在于所述密钥sk包括三个部分,第一部分是第一个l’/4位的d11,第二部分是第二个l’/4位的d10,最后一部分是其余的l’/2位的d2。
3.根据权利要求2所述的双方EdDSA协同签名协议,其特征在于所述的密钥d11、d10、d2分配完成后,第一部分是由第一方保存,剩下的两个部分是由第二方保存;第一方需要发送SHA256([s1]B)给第二方,第二方发送在发送[s2]B给第一方,第一方收到[s2]B后,再发送[s1]B给第二方。
4.根据权利要求2所述的两方EdDSA协同签名协议,其特征在于所述的共同完成签名的过程为:
1)第一方通过d11计算出r1=H(d11||M),并计算σA=(r1-s1-α)modL以及RA=[α]B;第一方将σA和RA发送给第二方;
2)第二方通过d10计算r2=H(d10||M),并令β=H(coding(R)||coding(A)||M);当第二方接收到第一方发送的σA和RA后,计算出[r1]B的值,于是能够得到R=[r1]B+[r2]B=[r]B;
3)第二方计算σB=[σA+r2+β(s2-σA)]modL,并将σB和β发送给第一方;
4)第一方接收到σB和β后,计算出S=[σB+s1+α+β(r1-α)]modL=(r+βs)modL;
5)最后双方共同所得到的签名为coding(R)||coding(S)。
5.根据权利要求1所述的两方EdDSA协同签名协议,其特征在于所述哈希函数H(·)为h=H(coding(R)||coding(A)||M),将任意长度的比特串编码为l’长度的字符串;当x<l’/2时,将其填充为l’/2比特,当x>=l’/2,将x分为l’/4比特的x0,l’/4比特的x1,剩下的为x2,然后计算H(x)=h(x0||x2)||h(x1||x2)。
6.根据权利要求5所述的两方EdDSA协同签名协议,其特征在于哈希函数H(·)具有单向性,通过以下方法证明:
若哈希函数h是单向的,则哈希函数H也是单向的;假设攻击者A可以攻破哈希函数H的单向性;设计算法B攻破h的单向性,就是给出y和h,能找到x能够满足y=h(x),B把y||y发送给A,通过y||y=h(x0||x2)||h(x0||x2)=H(x0||x0||x2),A求出x0||x2,B计算出x0||x2作为x的值。
7.根据权利要求5所述的两方EdDSA协同签名协议,其特征在于哈希函数H(·)具有防碰撞性,证明方法如下:
假设攻击者A可以攻破哈希函数H的抗碰撞性。设计算法B攻破h的抗碰撞性,就是(1)给出h,能找到x和x',满足h(x)=h(x′);(2)给出x和h,能找到x'满足h(x)=h(x')。
(1)攻击者A求出不同的x0||x1||x2和x′0||x′1||x2′满足H(x0||x1||x2)=H(x′0||x′1||x′2)=h(x0||x2)||h(x1||x2)=h(x0′||x2′)||h(x1′||x2′)。由于A可以攻破哈希函数H的抗碰撞性,那么我们有x0||x2≠x′0||x′2或x1||x2≠x′1||x′2。因此,B就能得到x=x0||x2和x′=x′0||x2′;或者x=x1||x2和x′=x′1||x2′;
(2)攻击者A得到不同的x′0||x′1||x2′满足H(x0||x0||x2)=h(x0||x2)||h(x0||x2)=H(x′0||x′1||x′2),其中x=x0||x2,B就能得到x′=x′0||x2′。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334554.4A CN111082945A (zh) | 2019-12-20 | 2019-12-20 | 两方EdDSA协同签名协议 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334554.4A CN111082945A (zh) | 2019-12-20 | 2019-12-20 | 两方EdDSA协同签名协议 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111082945A true CN111082945A (zh) | 2020-04-28 |
Family
ID=70316810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911334554.4A Pending CN111082945A (zh) | 2019-12-20 | 2019-12-20 | 两方EdDSA协同签名协议 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111082945A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740843A (zh) * | 2020-06-18 | 2020-10-02 | 成都卫士通信息产业股份有限公司 | 分布式EdDSA签名方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483212A (zh) * | 2017-08-15 | 2017-12-15 | 武汉信安珞珈科技有限公司 | 一种双方协作生成数字签名的方法 |
CN107888380A (zh) * | 2017-10-30 | 2018-04-06 | 武汉大学 | 一种两方分布式基于身份的rsa数字签名生成方法与系统 |
CN108462572A (zh) * | 2017-02-10 | 2018-08-28 | 恩德莱斯和豪瑟尔分析仪表两合公司 | 用于认证自动化技术的现场装置的方法 |
CN110086630A (zh) * | 2019-04-23 | 2019-08-02 | 陕西师范大学 | 基于爱德华兹曲线数字签名的生成方法 |
-
2019
- 2019-12-20 CN CN201911334554.4A patent/CN111082945A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462572A (zh) * | 2017-02-10 | 2018-08-28 | 恩德莱斯和豪瑟尔分析仪表两合公司 | 用于认证自动化技术的现场装置的方法 |
CN107483212A (zh) * | 2017-08-15 | 2017-12-15 | 武汉信安珞珈科技有限公司 | 一种双方协作生成数字签名的方法 |
CN107888380A (zh) * | 2017-10-30 | 2018-04-06 | 武汉大学 | 一种两方分布式基于身份的rsa数字签名生成方法与系统 |
CN110086630A (zh) * | 2019-04-23 | 2019-08-02 | 陕西师范大学 | 基于爱德华兹曲线数字签名的生成方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740843A (zh) * | 2020-06-18 | 2020-10-02 | 成都卫士通信息产业股份有限公司 | 分布式EdDSA签名方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7653817B2 (en) | Signature schemes using bilinear mappings | |
CN104639329B (zh) | 基于椭圆曲线码的用户身份相互认证方法 | |
US9166957B2 (en) | Digital file authentication using biometrics | |
CN110138543B (zh) | 格公钥密码体制下的盲签密方法 | |
US20090232301A1 (en) | Method and system for generating session key, and communication device | |
CN110995412B (zh) | 基于乘法群的无证书环签密方法 | |
CN109995509A (zh) | 基于消息恢复签名的认证密钥交换方法 | |
CN110011803A (zh) | 一种轻量级sm2两方协同生成数字签名的方法 | |
CN112152813B (zh) | 一种支持隐私保护的无证书内容提取签密方法 | |
CN104113420A (zh) | 一种基于身份的可聚合签密方法 | |
TWI455555B (zh) | Authentication device, authentication method, and program | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN110086630B (zh) | 基于爱德华兹曲线数字签名的生成方法 | |
CN111030821B (zh) | 一种基于双线性映射技术的联盟链的加密方法 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN105187208B (zh) | 非授权的基于无证书的强指定验证者签名体制 | |
CN110233725A (zh) | 多源网络编码的同态无证书签名方法 | |
CN111082945A (zh) | 两方EdDSA协同签名协议 | |
CN112383403A (zh) | 一种异构环签名方法 | |
Pal et al. | Diffie-Hellman key exchange protocol with entities authentication | |
Zheng et al. | Threshold attribute‐based signcryption and its application to authenticated key agreement | |
CN110932863A (zh) | 一种基于编码的广义签密方法 | |
CN113079024B (zh) | 格上的无证书代理签密方法 | |
CN109274506B (zh) | 一种基于国密sm2的无证书签名方法 | |
CN110224835B (zh) | 一种无证书的身份隐藏认证加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200428 |