CN111817848B - 一种ecc私钥分段存储的ecdsa签名方法及*** - Google Patents
一种ecc私钥分段存储的ecdsa签名方法及*** Download PDFInfo
- Publication number
- CN111817848B CN111817848B CN202010563126.5A CN202010563126A CN111817848B CN 111817848 B CN111817848 B CN 111817848B CN 202010563126 A CN202010563126 A CN 202010563126A CN 111817848 B CN111817848 B CN 111817848B
- Authority
- CN
- China
- Prior art keywords
- client
- server
- signature
- private key
- session data
- 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.)
- Active
Links
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
一种ECC私钥分段存储的ECDSA签名方法及***。本方法包括两个子算法:公私钥对生成子算法和数字签名子算法;第一步公私钥对生成子算法:客户端随机生成客户端私钥因子,并生成对应的公钥因子,发送给服务器端;第二步数字签名子算法:针对明文消息,所述的客户端计算明文消息的数字摘要,并生成对该明文消息数字摘要的签名会话数据,即客户端签名会话数据,并将所述的客户端签名会话数据发送至所述的服务器;本发明用于ECC私钥分段存储的ECDSA签名方法。
Description
技术领域:
本发明涉及一种ECC私钥分段存储的ECDSA签名方法及***。
背景技术:
椭圆曲线密码学(Elliptic curve cryptography,ECC)是一种公钥密码算法,可以实现加解密和数字签名验签等密码运算,其中的签名算法标准是椭圆曲线数字签名算法ECDSA。
在ECC中,私钥是其核心,一旦私钥发生泄漏,将丧失安全性。为保护私钥安全,部分方案提出将智能卡芯片中的SM2私钥分成两部分,两方协同计算才能对消息实现签名运算,运算双方均无法获取对方部分私钥的任何信息以及ECC私钥的任何信息,即使任何一方被攻击者掌控,都无法伪造签名。
但是,在目前的实现方案中,有的方案交互步骤较多,性能较差,有的方案使用了零知识证明、同态加密等复杂的密码运算,效率较低。
发明内容:
本发明的目的是提供一种效率更高的一种ECC私钥分段存储的ECDSA签名方法及***。
上述的目的通过以下的技术方案实现:
一种ECC私钥分段存储的ECDSA签名方法,本方法包括两个子算法:公私钥对生成子算法和数字签名子算法;
第一步公私钥对生成子算法:
客户端随机生成客户端私钥因子,并生成对应的公钥因子,发送给服务器端;
所述的服务器接收所述的客户端发来的客户端公钥因子,随机生成服务器端私钥因子,并基于客户端公钥因子以及预设的基点,生成最终代表客户端身份的公钥;
第二步数字签名子算法:
针对明文消息,所述的客户端计算明文消息的数字摘要,并生成对该明文消息数字摘要的签名会话数据,即客户端签名会话数据,并将所述的客户端签名会话数据发送至所述的服务器;
所述的服务器接收到所述的客户端发来的签名会话数据,基于所述的客户端签名会话数据和所述的服务器私钥因子,生成服务器端签名会话数据,并将服务器端签名会话数据发送给所述的客户端;
所述的客户端收到服务器端签名会话数据,基于客户端私钥因子及所述的服务器端签名会话数据,生成所述的明文消息的椭圆曲线数字签名算法ECDSA数字签名。
所述的一种ECC私钥分段存储的ECDSA签名方法,客户端与服务器端按照以下流程随机生成各自的私钥因子和相关数据,并最终生成代表客户端A的公钥:
C1:客户端A随机生成d1∈[1,n-1];
C2:客户端A计算P1=[d1]G;
C3:客户端A将P1发送给服务器端;
S1:服务器端随机生成d2∈[1,n-1],d3∈[1,n-1];
S2:服务器端计算:PA=[d2]P1+[d3]G,并公开PA。
所述的一种ECC私钥分段存储的ECDSA签名方法,客户端与服务器端对消息m执行以下流程,并最终生成对消息m的椭圆曲线数字签名算法ECDSA数字签名(r,s):
C4:客户端A对消息m做Hash运算,计算e=H(m);
C5:客户端A随机生成整数k1∈[1,n-1],计算Q1=[k1]G,Q1为椭圆曲线上的点;
C6:客户端A将(e,Q1)作为客户端签名会话数据发送给服务器端;
S3:服务器端收到客户端签名会话数据(e,Q1),随机生成k2∈[1,n-1],k3∈[1,n-1];
S4:服务器端计算Q2=[k2]G,Q'=[k2]Q1=(x1',y1'),其中Q'为椭圆曲线上的点,其坐标为(x1',y1'),并计算r'=x1'mod n;
S6:服务器端将(Q2,s1,s2)作为服务器端的签名会话数据发送给客户端;
C7:客户端A收到(Q2,s1,s2)后,计算Q=[k1]Q2=(x1,y1),其中Q为椭圆曲线上的点,其坐标为(x1,y1),并计算r=x1 mod n;
有益效果:
1.本发明通过将ECC私钥分成两部分,其中一部分在客户端,一部分在服务器端,客户端与服务器端均不知道对方的私钥因子,同时均不能计算出对应的ECC私钥,通过双方按照指定的流程运算,能够实现ECDSA签名,从而有效保护ECC的私钥安全。
2.本发明不使用零知识证明、同态密码等复杂的密码运算,效率更高。
附图说明:
附图1是本发明的算法流程图。
具体实施方式:
下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例1:
一种ECC私钥分段存储的ECDSA签名方法,本方法包括两个子算法:公私钥对生成子算法和数字签名子算法;
第一步公私钥对生成子算法:
客户端随机生成客户端私钥因子,并生成对应的公钥因子,发送给服务器端;
所述的服务器接收所述的客户端发来的客户端公钥因子,随机生成服务器端私钥因子,并基于客户端公钥因子以及预设的基点,生成最终代表客户端身份的公钥;
第二步数字签名子算法:
针对明文消息,所述的客户端计算明文消息的数字摘要,并生成对该明文消息数字摘要的签名会话数据,即客户端签名会话数据,并将所述的客户端签名会话数据发送至所述的服务器;
所述的服务器接收到所述的客户端发来的签名会话数据,基于所述的客户端签名会话数据和所述的服务器私钥因子,生成服务器端签名会话数据,并将服务器端签名会话数据发送给所述的客户端;
所述的客户端收到服务器端签名会话数据,基于客户端私钥因子及所述的服务器端签名会话数据,生成所述的明文消息的椭圆曲线数字签名算法ECDSA数字签名。
其中,在椭圆曲线密码学中,使用到的***参数为椭圆曲线E(Fp)、G和n,其中E(Fp)(p是一个大素数)为定义在有限域Fp上的椭圆曲线E,定义在Fp上的椭圆曲线方程为y2=x3+ax+b,其中a,b∈Fp,且(4a3+27b2)modp≠0,其中G为椭圆曲线的一个基点,n为基点G的阶,[夸]G表示大数夸与点G的乘法运算。
实施例2:
实施例1所述的一种ECC私钥分段存储的ECDSA签名方法,客户端与服务器端按照以下流程随机生成各自的私钥因子和相关数据,并最终生成代表客户端A的公钥:
C1:客户端A随机生成d1∈[1,n-1];
C2:客户端A计算P1=[d1]G;
C3:客户端A将P1发送给服务器端;
S1:服务器端随机生成d2∈[1,n-1],d3∈[1,n-1];
S2:服务器端计算:PA=[d2]P1+[d3]G,并公开PA。
实施例3:
实施例1所述的一种ECC私钥分段存储的ECDSA签名方法,客户端与服务器端对消息m执行以下流程,并最终生成对消息m的椭圆曲线数字签名算法ECDSA数字签名(r,s):
C4:客户端A对消息m做Hash运算,计算e=H(m);
C5:客户端A随机生成整数k1∈[1,n-1],计算Q1=[k1]G,Q1为椭圆曲线上的点;
C6:客户端A将(e,Q1)作为客户端签名会话数据发送给服务器端;
S3:服务器端收到客户端签名会话数据(e,Q1),随机生成k2∈[1,n-1],k3∈[1,n-1];
S4:服务器端计算Q2=[k2]G,Q'=[k2]Q1=(x1',y1'),其中Q'为椭圆曲线上的点,其坐标为(x1',y1'),并计算r'=x1'mod n;
S6:服务器端将(Q2,s1,s2)作为服务器端的签名会话数据发送给客户端;
C7:客户端A收到(Q2,s1,s2)后,计算Q=[k1]Q2=(x1,y1),其中Q为椭圆曲线上的点,其坐标为(x1,y1),并计算r=x1 mod n;
Claims (1)
1.一种ECC私钥分段存储的ECDSA签名方法,其特征是: 本方法包括两个子算法:公私钥对生成子算法和数字签名子算法;
第一步公私钥对生成子算法:
客户端随机生成客户端私钥因子,并生成对应的公钥因子,发送给服务器端;
所述的服务器接收所述的客户端发来的客户端公钥因子,随机生成服务器端私钥因子,并基于客户端公钥因子以及预设的基点,生成最终代表客户端身份的公钥;
第二步数字签名子算法:
针对明文消息,所述的客户端计算明文消息的数字摘要,并生成对该明文消息数字摘要的签名会话数据,即客户端签名会话数据,并将所述的客户端签名会话数据发送至所述的服务器;
所述的服务器接收到所述的客户端发来的签名会话数据,基于所述的客户端签名会话数据和所述的服务器私钥因子,生成服务器端签名会话数据,并将服务器端签名会话数据发送给所述的客户端;
所述的客户端收到服务器端签名会话数据,基于客户端私钥因子及所述的服务器端签名会话数据,生成所述的明文消息的椭圆曲线数字签名算法ECDSA数字签名;
客户端与服务器端按照以下流程随机生成各自的私钥因子和相关数据,并最终生成代表客户端A的公钥:
C1:客户端A随机生成d1∈[1 ,n-1];
C2:客户端A计算P1=[d1]G;
C3:客户端A将P1发送给服务器端;
S1:服务器端随机生成d2∈[1 ,n-1],d3∈[1 ,n-1];
S2:服务器端计算:PA=[d2]P1+[d3]G,并公开PA;
客户端与服务器端对消息m执行以下流程,并最终生成对消息m的椭圆曲线数字签名算法ECDSA数字签名(r,s):
C4:客户端A对消息m做Hash运算,计算e=H(m);
C5:客户端A随机生成整数k1∈[1 ,n-1],计算Q1=[k1]G,Q1为椭圆曲线上的点;
C6:客户端A将(e ,Q1)作为客户端签名会话数据发送给服务器端;
S3:服务器端收到客户端签名会话数据(e ,Q1),随机生成k2∈[1 ,n-1],k3∈[1 ,n-1];
S4:服务器端计算Q2=[k2]G,Q '=[k2]Q1=(x1 ',y1 '),其中Q '为椭圆曲线上的点,其坐标为(x1 ',y1 '),并计算r '=x1 'mod n;
S6:服务器端将(Q2 ,s1 ,s2)作为服务器端的签名会话数据发送给客户端;
C7:客户端A收到(Q2 ,s1 ,s2)后,计算Q=[k1]Q2=(x1 ,y1),其中Q为椭圆曲线上的点,其坐
标为(x1 ,y1),并计算r=x1 mod n;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010563126.5A CN111817848B (zh) | 2020-06-19 | 2020-06-19 | 一种ecc私钥分段存储的ecdsa签名方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010563126.5A CN111817848B (zh) | 2020-06-19 | 2020-06-19 | 一种ecc私钥分段存储的ecdsa签名方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111817848A CN111817848A (zh) | 2020-10-23 |
CN111817848B true CN111817848B (zh) | 2023-01-17 |
Family
ID=72846223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010563126.5A Active CN111817848B (zh) | 2020-06-19 | 2020-06-19 | 一种ecc私钥分段存储的ecdsa签名方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111817848B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2937484B1 (fr) * | 2008-10-22 | 2011-06-17 | Paycool Int Ltd | Procede de signature numerique en deux etapes |
CN107370599B (zh) * | 2017-08-07 | 2020-07-10 | 收付宝科技有限公司 | 一种远程销毁私钥的管理方法、装置和*** |
CN107483212B (zh) * | 2017-08-15 | 2021-04-30 | 武汉信安珞珈科技有限公司 | 一种双方协作生成数字签名的方法 |
CN109246129B (zh) * | 2018-10-12 | 2020-12-25 | 天津赢达信科技有限公司 | 一种可验证客户端身份的sm2协同签名方法及*** |
CN110138567B (zh) * | 2019-05-22 | 2021-11-26 | 广州安研信息科技有限公司 | 一种基于ecdsa的协同签名方法 |
-
2020
- 2020-06-19 CN CN202010563126.5A patent/CN111817848B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111817848A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
CN110120939B (zh) | 一种基于异构***的可否认认证的加密方法和*** | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及*** | |
CN110830236B (zh) | 基于全域哈希的身份基加密方法 | |
CN110138567B (zh) | 一种基于ecdsa的协同签名方法 | |
CN107483191B (zh) | 一种sm2算法密钥分割签名***及方法 | |
US9800418B2 (en) | Signature protocol | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和*** | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及*** | |
CN112118111A (zh) | 一种适用于门限计算的sm2数字签名方法 | |
CN115174056B (zh) | 一种基于sm9签名的变色龙签名生成方法及装置 | |
US20150006900A1 (en) | Signature protocol | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN114726546A (zh) | 数字身份认证方法、装置、设备和存储介质 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及*** | |
CN117879833A (zh) | 一种基于改进椭圆曲线的数字签名生成方法 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及*** | |
Liu et al. | Identity-based threshold proxy signature from bilinear pairings | |
CN111817848B (zh) | 一种ecc私钥分段存储的ecdsa签名方法及*** | |
Ahirwal et al. | Signcryption scheme that utilizes elliptic curve for both encryption and signature generation | |
CN112511310B (zh) | 一种加密身份盲签名的混淆方法 | |
CN111740837A (zh) | 一种基于sm9的分布式签名方法及*** | |
CN115174052B (zh) | 一种基于sm9签名的适配器签名生成方法及装置 | |
CN109150545B (zh) | 基于ECC的(m,N)门限群签名方法 | |
CN115174054B (zh) | 一种基于sm9签名的无证书签名生成方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 903, 904, East Tower, Building 5, No. 22, Kaihua Road, Huayuan Industrial Zone, Binhai, Tianjin, 300000 Patentee after: TIANJIN YINGDAXIN TECHNOLOGY CO.,LTD. Address before: 300000 202, building C07, north of Fuyuan Road, development zone, Wuqing District, Tianjin Patentee before: TIANJIN YINGDAXIN TECHNOLOGY CO.,LTD. |