CN111224783B - 一种支持密钥刷新的两方椭圆曲线数字签名方法 - Google Patents
一种支持密钥刷新的两方椭圆曲线数字签名方法 Download PDFInfo
- Publication number
- CN111224783B CN111224783B CN201911168316.0A CN201911168316A CN111224783B CN 111224783 B CN111224783 B CN 111224783B CN 201911168316 A CN201911168316 A CN 201911168316A CN 111224783 B CN111224783 B CN 111224783B
- Authority
- CN
- China
- Prior art keywords
- key
- elliptic curve
- signature
- calculating
- hash
- 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/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
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于密码技术领域,具体为支持密钥刷新的两方椭圆曲线签名算法。本发明算法是在两方椭圆曲线签名算法中增加支持密钥刷新的功能。在两方椭圆曲线签名算法的密钥生成过程中,两个参与方分别生成一个密钥份额,主密钥由两个密钥份额x1和x2组成,在密钥生成和签名阶段主密钥x是未出现过的;公式为:x=x1·x2mod q;密钥刷新的过程由两方参与,密钥刷新结果是密钥份额x1和x2变为密钥份额x′1和x′2,而且保证主密钥x不变;设P1和P2表示参与两方,相对应的生成随机数为f1和f2,通过交互过程的信息通信,最终分别计算得到x′1和x′2;刷新后:x=x′1·x′2=(x1·f)·(x2·f‑1)mod q=x1·x2modq。本发明方法为椭圆曲线签名算法提供更高的安全性。
Description
技术领域
本发明属于密码技术领域,具体涉及两方椭圆曲线数字签名方法。
背景技术
Miller和Koblitz等人在1985年提出了基于椭圆曲线的公钥密码体制,基于椭圆曲线的离散对数问题(Elliptic Curve Discrete Logarithm Problem)被证明是难解的。基于椭圆曲线密码学(Elliptic Curve Cryptography,ECC)的签名算法与RSA、ElGamal密码体系相比,需要更少的密钥长度就可以保证同等的安全强度,使得椭圆曲线密码学越来越受欢迎。ECDSA于2013年成为NIST标准。
ECDSA的签名过程如下:
1.使用约定好的哈希函数对消息原文求hash值z=HASH(m),
2.随机选取一个整数值k∈[1,n-1],n是生成员的阶,
3.计算点(x1,y1)=k×G,
4.令r=x1,若r=0,重新执行第二步,
5.计算s=k-1(z+rdA)modn,若s=0,重新执行第二步,
6.输出签名(r,s)。
ECDSA的验证过程如下:
1.检验r和s是否都属于[1,n-1],若不属于则签名无效,
2.使用约定好的hash函数对消息原文求hash值z=HASH(m),
3.计算u1=zs-1modn和u2=rs-1modn,
4.计算点,如果,则签名无效,
5.如果,则签名验证通过。
椭圆曲线数字签名算法被普遍使用在身份认证、密钥交换、信息通信等领域。目前对椭圆曲线密码的使用方式主要是直接将一个完整的密钥输入到签名算法中,所以业务中对密钥的管理就至关重要,因为密钥一旦丢失数据就会泄漏,身份也会被盗用。所以出现了借鉴安全多方计算思想的两方椭圆曲线签名算法(简称TP-ECDSA),该算法在密钥生成阶段由两方共同参与,具体过程见附录1,通过同态加密和零知识证明保证密钥的安全性和正确性。
基于两方密钥生成阶段生成的密钥,在签名时也需要两个参与方共同计算,利用Paillier加密算法的同态特性,两方分别生成随机数,经过通信最终计算得到签名信息(r,s)。该算法可以将密钥的权力分散开,防止单个完整的密钥丢失则失去身份控制权的问题。
上述借鉴了安全多方计算思想的两方椭圆曲线签名算法,可以在一方密钥份额被盗的情况下,另一方密钥份额不丢失,那么攻击者就无法控制该密钥对应的身份。但是该方法存在的问题是,攻击者可以先利用攻击方法获取得到其中一个密钥份额,再使用其他方法破解另外一个密钥分额。这样攻击者经过长时间攻击,有很大的概率可以最终破解成功。该方法存在的最大的问题是密钥份额无法刷新。
如果密钥份额可以刷新,那么在其中一个密钥份额被盗时,马上进行密钥刷新的过程,将两个密钥份额都进行更新,对新的密钥份额进行更加安全的防护措施,那么就可以对密钥提供动态的安全性。
发明内容
根据上述分析,本发明的目的在于提出一种支持密钥刷新功能的两方椭圆曲线签名方法,以提供更强的密码学安全性。
本发明提供的支持密钥刷新的两方椭圆曲线签名方法,是在两方椭圆曲线签名方法中增加一个支持密钥刷新功能的方法,具体说明如下:
两方椭圆曲线签名方法的密钥生成过程中,两个参与方需要分别生成一个密钥份额,如图1所示,逻辑上主密钥由两个密钥份额x1和x2组成,但是在密钥生成和签名阶段主密钥x是从未出现过的。公式如下:
x=x1·x2 mod q
其中q是有限域的大小。
下面具体说明如何对两个密钥份额进行刷新。
密钥刷新的过程也需要两方的参与,如图2中,密钥刷新的结果是密钥份额x1和x2变为密钥份额x′1和x′2,而且保证主密钥x不变;下面给出具体的方法计算过程:其中,P1和P2分别表示一个参与方,相对应的生成随机数f1和f2,通过交互过程的信息通信,最终分别计算得到x′1和x′2。具体过程如下:
(1)P1
P1使用x1对消息“Refresh”签名,发送签名给P2,表示要进行密钥刷新;
(2)P2
(b)P2计算f2的Schnorr签名;
(c)P2将F2和签名信息(prove,2,F2)发送给P1;
(3)P1
(a)P1收到(proof,2,F2),验证P2传输过来的Schnorr;若没有收到,过程错误退出;
(c)计算F=f1·F2;
(d)计算f=HASH(F);
(e)计算x′1=x1·f mod q,如果x′1不小于q/3,返回步骤(b)重新选择f1;
(f)P1计算f1的Schnorr签名,将F1和签名信息(prove,1,F1)发送给P2;使用x1对HASH(F)做Schnorr签名,将HASH(F)和签名信息发送给P2;等待P2的确认回复,若接收确认则进行下一步,否则提示错误退出;
(g)P1随机生成规定长度的Paillier密钥对(pk,sk),并使用Paillier加密算法计算ckey=Encpk(x′1);
(4)P1
P1向P2证明(ckey,pk,Q1)∈LPDL;该步骤的意义是向其他参与者以零知识证明的方式证明ckey是pk对Q1的离散对数x1加密的密文,而且P1知道x1和pk对应的Paillier私钥sk;
(5)P2
P2要进行下面的三项验证,并且保证每项验证都验证通过;
(a)收到(proof,1,F1)和(proof,1,N)并都验证通过;
(b)P1向P2证明(ckey,pk,Q1)∈LPDL通过;
(c)pk=N的大小在设置范围内;
(6)P21
(a)计算F=f2·F1;
(b)计算f=HASH(F);
(c)P2验证P1发送过来的HASH(F),若不相等则退出并通知P1;
(d)验证通过则向P1发送确认信息,双方可以开始更新密钥份额;
(e)P2计算x′2=x2·f-1mod q;
(f)完成退出。
未刷新前:
x=x1·X2modq
刷新后:
x=x′1·x′2=(x1·f)·(x2·f-1)mod q
=X1·x2modq。
所以在上述的密钥刷新过程完成后,P1和P2的密钥份额x1和x2发生了变化。而且在密钥刷新后,x保持不变,所以依然可以使用签名算法对消息进行正确的签名,且主公钥和主私钥保持不变。
本发明提出一种支持密钥刷新的两方椭圆曲线签名算法方案,在两方密钥生成和两方签名的基础上新增支持密钥份额刷新的功能。该方法可以为椭圆曲线签名算法提供更高的安全性,并且是动态安全的,可以在攻击者攻破一半数据的情况下刷新密钥份额,使得旧的密钥份额作废。该方法在椭圆曲线密码学使用越来越广泛且安全强度要求越来越高的场景下发挥更大的作用。
附图说明
图1为密钥组成结构图示。
图2为密钥刷新示意图。
具体实施方式
本发明的具体实施方式主要分为两个部分:代码使用Golang编程语言编写,椭圆曲线数字签名算法实现成为一个library库,可以直接嵌入到应用中使用。
算法模块:
算法模块主要负责两方椭圆曲线签名算法的实现,将密钥生成、签名、密钥刷新这个三个接口根据具体编程语言进行实现即可。
对外服务模块:
对外服务模块是指将该算法进行包装,只对用户开放三个接口:分别是KeyGen()、Sign()和Refresh()三个函数。
附录1,两方密钥生成过程
附录2两方签名过程
Claims (1)
1.一种支持密钥刷新的两方椭圆曲线签名方法,其特征在于,在两方椭圆曲线签名方法中增加一个支持密钥刷新的功能,具体如下:
在两方椭圆曲线签名方法的密钥生成过程中,两个参与方分别生成一个密钥份额,逻辑上主密钥由两个密钥份额x1和x2组成,但是在密钥生成和签名阶段主密钥x是从未出现过的;公式如下:
x=x1·x2mod q
q是有限域的大小;
密钥刷新的过程也由两方参与,密钥刷新的结果是密钥份额x1和x2变为密钥份额x′1和x′2,而且保证主密钥x不变;设P1和P2表示参两方,相对应的生成随机数f1和f2,通过交互过程的信息通信,最终分别计算得到x′1和x′2;方法的具体过程如下:
(1)P1
P1使用x1对消息“Refresh”签名,发送签名给P2,表示要进行密钥刷新;
(2)P2
(b)P2计算f2的Schnorr签名;
(c)P2将F2和签名信息(prove,2,F2)发送给P1;
(3)P1
(a)P1收到(proof,2,F2),验证P2传输过来的Schnorr;若没有收到,过程错误退出;
(c)计算F=f1·F2;
(d)计算f=HASH(F);
(e)计算x′1=x1·f mod q,如果x′1不小于q/3,返回步骤(b)重新选择f1;
(f)P1计算f1的Schnorr签名,将F1和签名信息(prove,1,F1)发送给P2;使用x1对HASH(F)做Schnorr签名,将HASH(F)和签名信息发送给P2;等待P2的确认回复,若接收确认则进行下一步,否则提示错误退出;
(g)P1随机生成规定长度的Paillier密钥对(pk,sk),并使用Paillier加密算法计算ckey=Encpk(x′1);
(4)P1
P1向P2证明(ckey,pk,Q1)∈LPDL;该步骤的意义是向其他参与者以零知识证明的方式证明ckey是pk对Q1的离散对数x1加密的密文,而且P1知道x1和pk对应的Paillier私钥sk;
(5)P2
P2要进行下面的三项验证,并且保证每项验证都验证通过;
(a)收到(proof,1,F1)和(proof,1,N)并都验证通过;
(b)P1向P2证明(ckey,pk,Q1)∈LPDL通过;
(c)pk=N的大小在设置范围内;
(6)P2
(a)计算F=f2·F1;
(b)计算f=HASH(F);
(c)P2验证P1发送过来的HASH(F),若不相等则退出并通知P1;
(d)验证通过则向P1发送确认信息,双方可以开始更新密钥份额;
(e)P2计算x′2=x2·f-1mod q;
(f)完成退出;
刷新后:
x=x′1·x′2=(x1·f)·(x2·f-1)mod q=x1·x2modq。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168316.0A CN111224783B (zh) | 2019-11-26 | 2019-11-26 | 一种支持密钥刷新的两方椭圆曲线数字签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168316.0A CN111224783B (zh) | 2019-11-26 | 2019-11-26 | 一种支持密钥刷新的两方椭圆曲线数字签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224783A CN111224783A (zh) | 2020-06-02 |
CN111224783B true CN111224783B (zh) | 2021-07-23 |
Family
ID=70829032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911168316.0A Active CN111224783B (zh) | 2019-11-26 | 2019-11-26 | 一种支持密钥刷新的两方椭圆曲线数字签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224783B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669275B (zh) * | 2020-07-07 | 2023-04-07 | 广东工业大学 | 一种无线网络环境下可选择从节点的主从协作签名方法 |
CN114465728B (zh) * | 2020-11-09 | 2023-05-16 | 上海复旦微电子集团股份有限公司 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10382962B2 (en) * | 2014-05-22 | 2019-08-13 | Analog Devices, Inc. | Network authentication system with dynamic key generation |
CN107707358B (zh) * | 2017-10-30 | 2019-12-24 | 武汉大学 | 一种ec-kcdsa数字签名生成方法及系统 |
CN108173639B (zh) * | 2018-01-22 | 2020-10-27 | 中国科学院数据与通信保护研究教育中心 | 一种基于sm9签名算法的两方合作签名方法 |
JP7361706B2 (ja) * | 2018-03-23 | 2023-10-16 | エヌチェーン ライセンシング アーゲー | ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法 |
CN108667626B (zh) * | 2018-07-20 | 2020-03-03 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN110011803B (zh) * | 2019-02-27 | 2020-10-30 | 武汉大学 | 一种轻量级sm2两方协同生成数字签名的方法 |
-
2019
- 2019-11-26 CN CN201911168316.0A patent/CN111224783B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111224783A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021042685A1 (zh) | 一种区块链的交易方法、装置及系统 | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及系统 | |
US7814320B2 (en) | Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks | |
US11223486B2 (en) | Digital signature method, device, and system | |
US7007164B1 (en) | Method and array for authenticating a first instance and a second instance | |
JP4932168B2 (ja) | 新しいフェア・ブラインド署名プロセス | |
JPWO2008146667A1 (ja) | 匿名認証システムおよび匿名認証方法 | |
JP2013042555A (ja) | 鍵認証方式 | |
CN106936584B (zh) | 一种无证书公钥密码系统的构造方法 | |
JP2012521109A (ja) | 身元認証及び共有鍵生成の方法 | |
US9088419B2 (en) | Keyed PV signatures | |
CN101626364A (zh) | 一类可基于口令、抗秘密数据泄露的认证和密钥交换方法 | |
CN111224783B (zh) | 一种支持密钥刷新的两方椭圆曲线数字签名方法 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
Tsai et al. | An ECC‐based blind signcryption scheme for multiple digital documents | |
CN116349203A (zh) | 识别拒绝服务攻击 | |
CN116132118A (zh) | 一种基于区块链技术的加密通讯方法和系统 | |
CN114448636B (zh) | 基于数字证书的抗量子计算数字货币系统及匿名通信方法 | |
JP2011250335A (ja) | 効率的相互認証方法,プログラム,及び装置 | |
Arazi | Certification of dl/ec keys | |
JP3302335B2 (ja) | 暗号文検証方法、そのプログラム記録媒体、及びその装置 | |
CN113810195B (zh) | 一种电力培训仿真考核数据的安全传输方法及装置 | |
CN115473635B (zh) | 一种抗恶意敌手的sm2两方适配器签名生成方法及装置 |
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 |