CN111082945A - 两方EdDSA协同签名协议 - Google Patents

两方EdDSA协同签名协议 Download PDF

Info

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
Application number
CN201911334554.4A
Other languages
English (en)
Inventor
邵俊
孔剑敏
陈梦轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201911334554.4A priority Critical patent/CN111082945A/zh
Publication of CN111082945A publication Critical patent/CN111082945A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3255Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3252Cryptographic 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协同签名协议
技术领域
本发明涉及密码学技术领域,具体涉及两方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),并计算出
Figure BDA0002328951510000011
以及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+β(s2A)]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+β(s2A)]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+β(s2A)和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+β(s2A)]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′。
CN201911334554.4A 2019-12-20 2019-12-20 两方EdDSA协同签名协议 Pending CN111082945A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111740843A (zh) * 2020-06-18 2020-10-02 成都卫士通信息产业股份有限公司 分布式EdDSA签名方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
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 陕西师范大学 基于爱德华兹曲线数字签名的生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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