CN108650094A - 一种基于sm2数字签名的盲签名生成方法及*** - Google Patents
一种基于sm2数字签名的盲签名生成方法及*** Download PDFInfo
- Publication number
- CN108650094A CN108650094A CN201810332615.2A CN201810332615A CN108650094A CN 108650094 A CN108650094 A CN 108650094A CN 201810332615 A CN201810332615 A CN 201810332615A CN 108650094 A CN108650094 A CN 108650094A
- Authority
- CN
- China
- Prior art keywords
- signature
- signer
- user
- sent
- temporary variable
- 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
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/3257—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 blind 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/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
- 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)
- 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
本发明公开了一种基于SM2数字签名的盲签名生成方法及***,该方法包括以下步骤:1)签名者Signer在集合{1,2,…,n‑1}中选择第一个随机数k,计算第一个临时变量K,并将K发送给用户User;2)用户User收到K后,在集合{1,2,…,n‑1}中选择两个随机数α,β,计算第二个临时变量K′,令K′=(rx,ry),计算签名值r,并计算第三个临时变量r′,最后将r′发送给Signer;3)Signer收到r′后,计算出临时签名s′,并将s′发送给User;4)User收到s′后计算出签名值s,并输出签名(r,s)。本发明具有实现复杂度低、安全性高、易验证等特点,产生签名的过程必须有Signer和User两方同时参与,生成SM2盲签名的过程不会向签名者泄漏被签名的消息,保证了消息的安全性,提高了SM2数字签名生成的公平性。
Description
技术领域
本发明涉及信息安全技术,尤其涉及一种基于SM2数字签名的盲签名生成方法及***。
背景技术
数字签名是伴随着信息网络技术的发展而出现的一种安全保障技术,目的就是通过技术手段实现传统的纸面签字或者盖章的功能,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。数字签名是公钥密码体系中重要的一部分,在很多场合有着重要的作用。
在很多场合,要求签名者对消息进行签名的时候,并不知道所签名的内容,而且签名过后对自己的签名也不能进行跟踪。尤其在各种不方便透露真名的场合,例如,投票和选举、电子商务、电子现金***、移动支付等。盲签名恰好能满则这一需求,它的优点在于它比一般数字签名更能保护用户的隐私,因为对于签名者来说在签名的过程中对用户提供的消息是完全未知的,而且,签名以后也无法追踪自己所签的名。
为满足电子认证服务***等应用需求,国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法,2017年含有我国SM2数字签名算法的ISO/IEC14888-3/AMD1《带附录的数字签名第3部分:基于离散对数的机制-补篇1》获得一致通过,成为ISO/IEC国际标准,进入标准发布阶段。SM2算法本质上是一种椭圆曲线算法(ECC),在细节上,SM2算法规定了签名、验证、密钥交换等具体细节。
本专利设计了一种SM2盲签名生成方案,此方案由签名者Signer和用户User共同执行,既能保证签名的正确性,又能保证签名消息的隐私性。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于SM2数字签名的盲签名生成方法及***。
本发明解决其技术问题所采用的技术方案是:一种基于SM2数字签名的盲签名生成方法,包括以下步骤:
1)签名者Signer在集合{1,2,…,n-1}中选择第一个随机数k,计算第一个临时变量K=[k]G,并将K发送给用户User;
其中,签名者Signer的签名私钥为x,公钥为Q=[x]G;n为基点G的阶;G为椭圆曲线的一个基点,其阶n为素数;
2)用户User收到K后,在集合{1,2,…,n-1}中选择两个随机数α,β,计算第二个临时变量K′=[α]K+[β]G,令K'=(rx,ry),计算签名值r=rx+e mod n,并计算第三个临时变量r′=α-1(r+β),最后将r′发送给Signer;其中,e为待签名消息M的哈希值,e=Hv(ZA||M);
3)Signer收到r′后,计算出临时签名s′=(1+x)-1(k-r′x)mod n,并将s′发送给User;
4)User收到s′后计算出签名值s=α·(s′+r′)-r,并输出签名(r,s)。
一种基于SM2数字签名的盲签名生成***,包括:
签名者变量生成模块,用于根据签名者Signer在集合{1,2,…,n-1}中选择的第一个随机数k,计算第一个临时变量K=[k]G,并将第一个临时变量K发送给用户User;
其中,签名者Signer的签名私钥为x,公钥为Q=[x]G;n为基点G的阶;G为椭圆曲线的一个基点,其阶n为素数;
用户变量生成模块,用于用户User接收到K后,在集合{1,2,…,n-1}中选择两个随机数α和β,计算第二个临时变量K′=[α]K+[β]G,令K′=(rx,ry),计算签名值r=rx+e modn,并计算第三个临时变量r′=α-1(r+β),最后将r′发送给签名者Signer;其中,e为待签名消息M的哈希值,e=Hv(ZA||M);
临时签名生成模块,用于Signer收到r′后,根据公式s′=(1+x)-1(k-r′x)mod n计算出临时签名,并将临时签名s′发送给User;
盲签名生成模块,用于User收到s′后计算出签名值s=α·(s'+r')-r,并输出盲签名(r,s)。
本发明产生的有益效果是:本发明设计了一种SM2盲签名生成方案,此方案由签名者Signer和用户User共同执行,既能保证签名的正确性,又能保证签名消息的隐私性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明提供的基于SM2数字签名的盲签名生成方法需要签名的签名者Signer和用户User共同产生SM2盲签名,
本实施例中的符号及定义如下:
Signer,User:通信双方。
x:签名者的私钥。
e:密码杂凑函数作用于消息M的输出值。
G:椭圆曲线的一个基点,其阶为素数。
Hv():消息摘要长度为v比特的密码杂凑函数。
IDA:签名者的可辨别标识。
M:待签名的消息。
mod n:模n运算。例如,23mod 7≡2。
n:基点G的阶。
O:椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
x||y:x与y的拼接,其中x,y可以是比特串或字节串。
[k]P:椭圆曲线上点P的k倍点,k是正整数。
[x,y]:大于或等于x且小于或等于y的整数的集合。
(rx,ry):某一点的x坐标的值和y坐标的值。
SM2盲签名生成的过程如下:
1)Signer在集合{1,2,…,n-1}中选择第一个随机数k,计算第一个临时变量K=[k]G,并将K发送给User;
2)User收到K后,在集合{1,2,…,n-1}中选择两个随机数α,β,计算第二个临时变量K'=[α]K+[β]G,令K'=(rx,ry),计算签名值r=rx+e mod n,并计算第三个临时变量r′=α-1(r+β),最后将r′发送给Signer;
3)Signer收到r′后,计算出临时签名s′=(1+x)-1(k-r′x)mod n,并将s′发送给User;
4)User收到s′后计算出签名值s=α·(s′+r′)-r,并输出签名(r,s)。
根据上述方法,本发明还给出了一种基于SM2数字签名的盲签名生成***,包括:
签名者变量生成模块,用于根据签名者Signer在集合{1,2,…,n-1}中选择的第一个随机数k,计算第一个临时变量K=[k]G,并将第一个临时变量K发送给用户User;
其中,签名者Signer的签名私钥为x,公钥为Q=[x]G;n为基点G的阶;G为椭圆曲线的一个基点,其阶n为素数;
用户变量生成模块,用于用户User接收到K后,在集合{1,2,…,n-1}中选择两个随机数α和β,计算第二个临时变量K′=[α]K+[β]G,令K′=(rx,ry),计算签名值r=rx+e modn,并计算第三个临时变量r′=α-1(r+β),最后将r′发送给签名者Signer;其中,e为待签名消息M的哈希值,e=Hv(ZA||M);
临时签名生成模块,用于Signer收到r′后,根据公式s′=(1+x)-1(k-r′x)mod n计算出临时签名,并将临时签名s′发送给User;
盲签名生成模块,用于User收到s′后计算出签名值s=α·(s′+r′)-r,并输出盲签名(r,s)。
本方案生成的签名的验证算法如下:
1)检查r是否属于集合{1,2,…,n-1}中,如果不是则验证不通过,否则检查s是否属于集合{1,2,…,n-1}中,如果不是则验证不通过,否则进入下一步;
2)计算消息M的哈希值,e=Hv(ZA||M);
3)计算临时变量t=r+s mod n,若t=0则验证不通过,否则进入下一步;
4)计算椭圆曲线上的点(rx,ry)=[s]G+[t]Q;
5)计算R=e+rx mod n;
6)若R=r则验证通过。
本发明具有实现复杂度低、安全性高、易验证等特点,使用于签名者不知道消息的情况下生成正确的SM2盲签名,产生签名的过程必须有Signer和User两方同时参与,生成SM2盲签名的过程不会向签名者泄漏被签名的消息,保证了消息的安全性,提高了SM2数字签名生成的公平性。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (2)
1.一种基于SM2数字签名的盲签名生成方法,其特征在于,包括以下步骤:
1)签名者Signer在集合{1,2,…,n-1}中选择第一个随机数k,计算第一个临时变量K=[k]G,并将K发送给用户User;
其中,签名者Signer的签名私钥为x,公钥为Q=[x]G;n为基点G的阶;G为椭圆曲线的一个基点,其阶n为素数;
2)用户User收到K后,在集合{1,2,…,n-1}中选择两个随机数α,β,计算第二个临时变量K′=[α]K+[β]G,令K′=(rx,ry),计算签名值r=rx+e mod n,并计算第三个临时变量r′=α-1(r+β),最后将r′发送给Signer;其中,e为待签名消息M的哈希值,e=Hv(ZA||M);
3)Signer收到r′后,计算出临时签名s′=(1+x)-1(k-r′x)mod n,并将s′发送给User;
4)User收到s′后计算出签名值s=α·(s′+r′)-r,并输出签名(r,s)。
2.一种基于SM2数字签名的盲签名生成***,其特征在于,包括:
签名者变量生成模块,用于根据签名者Signer在集合{1,2,…,n-1}中选择的第一个随机数k,计算第一个临时变量K=[k]G,并将第一个临时变量K发送给用户User;
其中,签名者Signer的签名私钥为x,公钥为Q=[x]G;n为基点G的阶;G为椭圆曲线的一个基点,其阶n为素数;
用户变量生成模块,用于用户User接收到K后,在集合{1,2,…,n-1}中选择两个随机数α和β,计算第二个临时变量K′=[α]K+[β]G,令K′=(rx,ry),计算签名值r=rx+emodn,并计算第三个临时变量r′=α-1(r+β),最后将r'发送给签名者Signer;其中,e为待签名消息M的哈希值,e=Hv(ZA||M);
临时签名生成模块,用于Signer收到r'后,根据公式s'=(1+x)-1(k-r′x)mod n计算出临时签名,并将临时签名s′发送给User;
盲签名生成模块,用于User收到s′后计算出签名值s=α·(s′+r′)-r,并输出盲签名(r,s)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810332615.2A CN108650094A (zh) | 2018-04-13 | 2018-04-13 | 一种基于sm2数字签名的盲签名生成方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810332615.2A CN108650094A (zh) | 2018-04-13 | 2018-04-13 | 一种基于sm2数字签名的盲签名生成方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108650094A true CN108650094A (zh) | 2018-10-12 |
Family
ID=63746068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810332615.2A Pending CN108650094A (zh) | 2018-04-13 | 2018-04-13 | 一种基于sm2数字签名的盲签名生成方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108650094A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818730A (zh) * | 2019-03-06 | 2019-05-28 | 矩阵元技术(深圳)有限公司 | 盲签名的获取方法、装置和服务器 |
CN110213048A (zh) * | 2019-05-31 | 2019-09-06 | 武汉大学 | 一种轻量级sm2盲签名生成方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248488A (zh) * | 2013-05-14 | 2013-08-14 | 顾纯祥 | 一种基于身份的密钥生成方法和认证方法 |
CN103780385A (zh) * | 2012-10-23 | 2014-05-07 | 航天信息股份有限公司 | 基于椭圆曲线的盲签名方法和装置 |
CN104158663A (zh) * | 2014-07-30 | 2014-11-19 | 云南大学 | 一种基于双曲线群算术的公钥密码体制及签名方法 |
CN104852805A (zh) * | 2015-05-11 | 2015-08-19 | 中国科学院软件研究所 | 一种抵抗基于格的错误攻击的sm2签名算法防护方法 |
CN107196763A (zh) * | 2017-07-06 | 2017-09-22 | 数安时代科技股份有限公司 | Sm2算法协同签名及解密方法、装置与*** |
-
2018
- 2018-04-13 CN CN201810332615.2A patent/CN108650094A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780385A (zh) * | 2012-10-23 | 2014-05-07 | 航天信息股份有限公司 | 基于椭圆曲线的盲签名方法和装置 |
CN103248488A (zh) * | 2013-05-14 | 2013-08-14 | 顾纯祥 | 一种基于身份的密钥生成方法和认证方法 |
CN104158663A (zh) * | 2014-07-30 | 2014-11-19 | 云南大学 | 一种基于双曲线群算术的公钥密码体制及签名方法 |
CN104852805A (zh) * | 2015-05-11 | 2015-08-19 | 中国科学院软件研究所 | 一种抵抗基于格的错误攻击的sm2签名算法防护方法 |
CN107196763A (zh) * | 2017-07-06 | 2017-09-22 | 数安时代科技股份有限公司 | Sm2算法协同签名及解密方法、装置与*** |
Non-Patent Citations (2)
Title |
---|
WU LIBING 等: "Efficient Certificate-Based Signature Scheme for Electronic Commerce Security Using Bilinear Pairing", 《JOURNAL OF INTERNET TECHNOLOGY》 * |
何俊杰 等: "对一个无证书部分盲签名方案的分析与改进", 《信阳师范学院学报: 自然科学版》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818730A (zh) * | 2019-03-06 | 2019-05-28 | 矩阵元技术(深圳)有限公司 | 盲签名的获取方法、装置和服务器 |
CN110213048A (zh) * | 2019-05-31 | 2019-09-06 | 武汉大学 | 一种轻量级sm2盲签名生成方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108551392A (zh) | 一种基于sm9数字签名的盲签名生成方法及*** | |
CN110213048A (zh) | 一种轻量级sm2盲签名生成方法及*** | |
CN108809658A (zh) | 一种基于sm2的身份基的数字签名方法与*** | |
Zhang et al. | Research on a covert communication model realized by using smart contracts in blockchain environment | |
CN107579819B (zh) | 一种sm9数字签名生成方法及*** | |
CN109586919A (zh) | 一种在线合同自动签署方法 | |
CN109600228B (zh) | 基于公共密钥池的抗量子计算的签章方法和签章*** | |
CN107678763A (zh) | 基于数字签名技术的电能表升级方法和*** | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和*** | |
CN106713336B (zh) | 基于双重非对称加密技术的电子数据保管***及方法 | |
CN107171788B (zh) | 一种基于身份且签名长度恒定的在线离线聚合签名方法 | |
CN109413078B (zh) | 一种基于标准模型下群签名的匿名认证方法 | |
CN101610153A (zh) | 基于椭圆曲线签名算法的电子签章认证方法 | |
US9088419B2 (en) | Keyed PV signatures | |
CN110505061B (zh) | 一种数字签名算法及*** | |
CN106936584A (zh) | 一种无证书公钥密码***的构造方法 | |
CN110213228A (zh) | 一种认证通信的方法、装置、存储介质及计算机设备 | |
US7451314B2 (en) | Cryptographic authentication process | |
CN108650094A (zh) | 一种基于sm2数字签名的盲签名生成方法及*** | |
CN112491556A (zh) | 一种区块链代理盲签名生成方法 | |
CN108268779B (zh) | 一种用于对***进行短密文签名的处理方法及*** | |
CN109586918B (zh) | 基于对称密钥池的抗量子计算的签章方法和签章*** | |
CN113032844B (zh) | 椭圆曲线的签名方法、验签方法和装置 | |
CN112511314B (zh) | 一种基于身份的可恢复消息盲签名生成方法 | |
CN109766716A (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 |
Application publication date: 20181012 |
|
RJ01 | Rejection of invention patent application after publication |