CN108737103A - 一种应用于cs架构的sm2算法签名方法 - Google Patents

一种应用于cs架构的sm2算法签名方法 Download PDF

Info

Publication number
CN108737103A
CN108737103A CN201810257242.7A CN201810257242A CN108737103A CN 108737103 A CN108737103 A CN 108737103A CN 201810257242 A CN201810257242 A CN 201810257242A CN 108737103 A CN108737103 A CN 108737103A
Authority
CN
China
Prior art keywords
server
signature
client
generates
message
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.)
Granted
Application number
CN201810257242.7A
Other languages
English (en)
Other versions
CN108737103B (zh
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.)
Data Assurance and Communication Security Research Center of CAS
Original Assignee
Data Assurance and Communication Security Research Center of CAS
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 Data Assurance and Communication Security Research Center of CAS filed Critical Data Assurance and Communication Security Research Center of CAS
Priority to CN201810257242.7A priority Critical patent/CN108737103B/zh
Publication of CN108737103A publication Critical patent/CN108737103A/zh
Application granted granted Critical
Publication of CN108737103B publication Critical patent/CN108737103B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/3215Cryptographic 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 using a plurality of channels
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/3271Cryptographic 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 using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种应用于CS架构的SM2算法签名方法。本方法为:1)客户端生成子私钥D1,服务器生成子私钥D2;2)客户端生成待签名消息M的消息摘要e,生成签名请求e'=e||b,将e'发送给服务器;b为客户端向服务器注册时设置的口令;3)服务器从e'提取口令b并验证其是否正确,如果错误则结束签名;如果正确,则反馈确认信息给客户端,客户端生成第一部分签名Q1并将其发送给服务器;4)服务器根据Q1和消息摘要e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;5)客户端根据D1、r、s2和s3生成消息M的签名。本发明提高了签名算法的安全性。

Description

一种应用于CS架构的SM2算法签名方法
技术领域
本发明涉及密码领域,特别涉及一种应用于CS架构的SM2算法签名方法。
背景技术
目前,基于公钥密码学的数字签名和加解密技术已经广泛用在电子商务、身份认证等应用中,成为保证信息安全的重要工具,而私钥的安全性是保证这些应用安全的基础。
为了提高私钥安全性,门限密码学算法将私钥进行拆分并分布在不同的物理设备中,以避免全部私钥信息的直接存储和使用。例如,一个(c,n)的门限签名方案中,私钥可分布在n个成员中,其中t个或t个以上成员可以合作完全签名,而小于t个成员时则无法完成签名。但传统的门限密码算法往往交互复杂、通信次数繁多。
基于SM2算法的签名算法可有效解决上述门限签名方案的不足,并提供高安全的私钥保护。该签名方法应用于用客户端/服务器端(Client/Server,CS)架构,CS架构将任务合理分配到客户端(Client)和服务器端(Server),降低了***的通讯开销,但是在CS架构中,主要资源向服务器端聚集,客户端通常以弱终端形式存在,如智能手机等。客户端通常以软件的形式存储和使用私钥,因此防护能力差。
而且上述基于SM2算法的签名方法并没有区分应用场景和应用模式,被动式的服务端协作方式并不能提供足够的安全性,如果服务器完全被动的做签名,客户端只要有私钥,向服务器请求签名,服务器都会响应,则安全性跟单终端实现签名基本一样,安全防护能力较差。一方面,攻击者远程操纵手机,获取客户端子私钥;另一方面,手机丢失,攻击者破解登录,获取客户端子私钥。上述两种情况,攻击者均可从服务器端获得完整私钥下的签名。造成该风险的原因在于,当每次合成SM2私钥时,缺乏服务器端主动验证客户端实体身份的机制,而是一味相信原始客户端子私钥的持有者即是合法用户。
发明内容
针对现有技术中存在的技术问题,本发明提供了一种应用于CS架构的SM2算法签名方法,能够提高CS架构中的私钥安全性,同时不再认定原始客户端子私钥的持有者一定是合法用户。改变了服务器完全被动的签名模式,加入服务器对客户端的身份认证,认证之后再签名。
本发明将分别提供基于单因素和多因素的客户端身份认证方法,其中选取的单因素分为单方上传和交互认证方式,多因素则是将上述多个因素组合在一起。实现应用于CS架构的SM2算法***。
本发明的身份认证可通过三种基本方式或其组合来实现:
第一种:所知(Knowledge)用户个人所知道的某个秘密信息,如口令。
第二种:所有(Possesscs)用户个人所持有的东西,如身份证、护照、***、钥匙等。
第三种:个人的生物学特征(Characteristics)如指纹、笔迹、声音、DNA图案、视网膜扫描、手型、脸型、血型、虹膜及个人一些动作方面的特征等。
为了达到上述目的,本发明的技术方案实现如下:
1.单因素认证SM2签名算法
本发明采用的单因素认证方法分为以下两种类型:单方上传和交互完成。
其中,单方上传以口令为例说明;交互认证,常见的有短信验证码和动态口令,本发明采用短信验证码方式为例说明。
A.采用单方上传基于SM2签名方法客户端与服务器交互流程如下:
1.1密钥产生
步骤1.1.1客户端生成自身子私钥D1,计算部分公钥P1;发送P1给服务器;
步骤1.1.2服务器生成自身子私钥D2,由D2和P1计算完整公钥P。
1.2签名算法
基于SM2签名方法客户端与服务器交互流程如下:
1.客户端生成待签名消息M的消息摘要e,生成签名请求e'=e||b,将e'发送给服务器;b为客户端向服务器注册时设置的口令;
2.服务器接收到e',检查口令b是否正确,错误则报错退出;
3.服务器回复成功;
4.客户端生成第一部分签名Q1,将Q1发送给服务器;
5.服务器根据Q1和e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;
6.客户端根据D1、r、s2和s3生成完整签名并输出。
B.采用交互认证,基于SM2签名方法客户端与服务器交互的签名算法流程如下:
签名算法
1.客户端生成待签名消息M的消息摘要e,将e发送给服务器;
2.服务器向客户端发送挑战c;
3.客户端生成第一部分签名Q1,根据Q1、时间戳tn和响应码c’生成Q1’,客户端响应Q1’给服务器;c’为客户端根据挑战c生成的响应码;
4.服务器验证响应是否正确,错误则报错退出。如果正确,则服务器根据Q1和e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;
5.客户端根据D1、r、s2和s3生成待签名消息M的完整签名并输出。
2.双因素认证SM2签名算法
口令认证的安全性依赖于密码,但由于用户设置密码强度不足,密码容易被猜测,以及静态密码在计算机内存中和网络中传输过程中容易被窃听等原因,不能保证***安全性。本发明加入双因素的身份认证,结合单方上传和交互认证两个因素,对客户端身份认证。
以口令认证和短信验证码结合为例进行说明。客户端每次签名请求需输入静态口令,服务器验证之后再签名。同时对于异常登陆、频繁请求等异常行为,将SIM卡作为可信设备,验证手机号码,发送短信验证码,从而确认操作者的身份。
2.1密钥产生
步骤2.1.1客户端生成自身子私钥D1,计算部分公钥P1;发送P1给服务器;
步骤2.1.2服务器生成自身子私钥D2;由D2和P1计算完整公钥P。
2.2.签名算法
基于SM2签名方法客户端与服务器交互流程如下:
1.客户端生成待签名消息M的消息摘要e,输入向服务器注册时设置的口令b,生成签名请求e'=e||b,将e'发送给服务器;
2.服务器接收到e',检查口令b是否正确,错误则报错退出;
3.检查客户端的签名请求次数,签名请求间隔,登录状态等是否异常,若存在异常情况则发送短信验证码c给该客户端,执行步骤4;若不存在异常情况,则发送成功消息success给客户端,执行步骤6;
4.客户端生成第一部分签名Q1,通过Q1,时间戳和挑战响应c'生成Q1',Q1'=Q1||tn||c',将Q1'发送给服务器;c’为客户端根据短信验证码c生成的响应码;
5.服务器验证挑战响应c'是否等于c,不等则报错退出;相等则执行步骤7;
6.客户端生成第一部分签名Q1',将Q1'发送给服务器;
7.服务器根据Q1'和e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;
8.客户端根据D1、r、s2和s3生成完整签名并输出。
与现有技术相比,本发明的积极效果为:
相对于传统的CS架构签名算法,本发明具有更高的私钥安全性,要求两端共同配合下完成私钥生成和签名。具体地,私钥由客户端和服务器二者联合以实现密码算法的全部过程,而且在算法计算过程中***露私钥和子私钥的任何信息,大大加强了私钥的安全性。在签名过程和解密过程中,通信双方仅需要进行很少的交互,从而能够满足低延迟、少交互的需求。同时不再认定原始客户端子私钥的持有者一定是合法用户。改变了服务器完全被动的签名模式,加入服务器对客户端的身份认证,认证之后再签名,进一步提高了签名安全性。
客户端每次向服务端请求签名时,均需输入口令b,且对于异常登陆,服务器进行响应挑战机制,客户端回应的Q1'中,包含挑战响应与时间戳,防止重放攻击,从而大大提高了签名算法的安全性。
附图说明
图1为本发明单方上传单因素认证SM2签名方法实例的流程图;
图2为本发明交互认证单因素认证SM2签名方法实例的流程图;
图3为本发明双因素认证SM2签名方法实例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
参数说明:
SM2曲线参数,椭圆曲线E是定义在有限域Fq上的椭圆曲线,G是椭圆曲线E上n阶的基点。
[*]表示点乘运算,即计算椭圆曲线E上n阶的基点G的k倍点;
椭圆曲线点(x1,y1)=k[*]G,[*]表示点乘运算,即计算椭圆曲线上点G的k倍点;
图1为本发明单方上传单因素认证SM2签名方法实例的流程图。
步骤11:客户端将Z,M,拼接形成M',并计算Hash(M'),将计算结果作为e,将e,口令b拼接形成e',其中,Z包括客户端身份标识和服务器的身份标识,即由客户端和服务器的身份标识共同组成,Hash()表示预定的密码杂凑函数。
即有:M'=Z||M,||表示拼接;
e=Hash(M')
e'=e||b。
步骤12:客户端将e'发送给服务器。
步骤13:服务器查询用户数据库,对比口令b是否正确,错误则报错退出。
步骤14:服务器发送成功消息success给客户端。
步骤15:客户端产生一个位于[1,n-1]之间的随机数k1,并计算k1[*]G,将计算结果作为Q1。
即有:k1∈[1,n-1],且k1为整数;
Q1=k1[*]G,[*]表示点乘运算,即计算椭圆曲线上点G的k倍点。
步骤16:客户端将Q1发送给服务器。
步骤17:服务器产生一个位于[1,n-1]之间的随机数k2,并计算k2[*]G,得到计算结果Q2。
即有:k2∈[1,n-1],且k2为整数;
Q2=k2[*]G。
步骤18:服务器产生一个位于[1,n-1]之间的随机数k3,计算k3[*]Q1[+]Q2,得到计算结果(x1,y1),并计算x1+e mod n,将计算结果作为r,其中,[+]表示椭圆曲线点加运算,mod表示求余运算。
即有:k3∈[1,n-1],且k3为整数;
(x1,y1)=k3[*]Q1[+]Q2;
r=x1+e mod n。
其中,若r不等于0,则执行步骤19,若r等于0,则服务器可重新产生k3,并重新计算得到(x1,y1)和r,直到r不等于0为止。
步骤19:若r不等于0,则服务器计算D2*k3mod n,将计算结果作为s2,并计算D2*(r+k2)mod n,将计算结果作为s3。
即有:s2=D2*k3mod n;
S3=D2*(r+k2)mod n。
步骤110:服务器将r、s2和s3发送给客户端。
步骤111:客户端计算(D1*k1)*s2+D1*s3-r mod n,得到计算结果s。
即有:s=(D1*k1)s2+D1*s3-r mod n。
其中,若s等于0或等于n-r,则可重新产生k1,并将与此相关的步骤重新执行,若s不等于0且不等于n-r,则执行步骤110。
步骤112:若s不等于0且不等于n-r,则客户端将(r,s)作为完整签名输出。
图2为本发明交互认证单因素认证SM2签名方法实例的流程图。
步骤21:客户端将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,其中,Z包括客户端身份标识和服务器的身份标识,即由客户端的身份标识和服务器的身份标识共同组成;Hash()表示预定的密码杂凑函数。
即有:M'=Z||M,||表示拼接;
e=Hash(M')。
步骤22:客户端将e发送给服务器。
步骤23:服务器产生一个4位随机数c。
步骤24:服务器随机数c发送给客户端。
步骤25:客户端产生一个位于[1,n-1]之间的随机数k1,并计算k1[*]G,将计算结果作为Q1。通过Q1,时间戳tn和挑战响应码c'生成Q1';
即有:k1∈[1,n-1],且k1为整数;
Q1=k1[*]G,Q1'=Q1||tn||c'。
步骤26:客户端将Q1'发送给服务器。
步骤27:服务器验证客户端发送的c’是否等于c,若不相等或者2min内未收到响应,则报错并退出。
步骤28:服务器产生一个位于[1,n-1]之间的随机数k2,并计算k2[*]G,得到计算结果Q2。
即有:k2∈[1,n-1],且k2为整数;
Q2=k2[*]G。
步骤29:服务器产生一个位于[1,n-1]之间的随机数k3,计算k3[*]Q1[+]Q2,得到计算结果(x1,y1),并计算x1+e mod n,将计算结果作为r,其中,[+]表示椭圆曲线点加运算。
即有:k3∈[1,n-1],且k3为整数;
(x1,y1)=k3[*]Q1[+]Q2;
r=x1+e mod n。
其中,若r不等于0,则执行步骤210,若r等于0,则服务器可重新产生k3,并重新计算得到(x1,y1)和r,直到r不等于0为止。
步骤210:若r不等于0,则服务器计算D2*k3mod n,将计算结果作为s2,并计算D2*(r+k2)mod n,将计算结果作为s3。
即有:s2=D2*k3mod n;
S3=D2*(r+k2)mod n。
步骤211:服务器将r、s2和s3发送给客户端。
步骤212:客户端计算(D1*k1)*s2+D1*s3-r mod n,得到计算结果s。
即有:消息M的完整签名s=(D1*k1)s2+D1*s3-r mod n。
其中,若s等于0或等于n-r,则可重新产生k1,并将与此相关的步骤重新执行,若s不等于0且不等于n-r,则执行步骤213。
步骤213:若s不等于0且不等于n-r,则客户端将(r,s)作为完整签名输出。
同时,还可输出待签名消息M。
图3为本发明双因素认证SM2签名方法实例的流程图。
步骤31:客户端将Z,M拼接形成M',计算Hash(M'),将计算结果作为e,将e,口令b拼接形成e',其中,Z包括客户端身份标识和服务器的身份标识,即由客户端的身份标识和服务器的身份标识共同组成,Hash()表示预定的密码杂凑函数。
即有:M'=Z||M,||表示拼接;
e=Hash(M')
e'=e||b。
步骤32:客户端将e'发送给服务器。
步骤33:服务器查询用户数据库,对比口令b是否正确,错误则报错退出。
步骤34:服务器查看该客户端签名次数,若签名次数超过五次,服务器生成随机数c;若未超过五次,查看本次请求与上次请求签名的间隔,若签名间隔小于5min,生成随机数c。执行步骤35,36;若不存在异常,则服务器发送成功消息success给客户端,客户端产生一个位于[1,n-1]之间的随机数k1,并计算k1[*]G,将计算结果作为Q1',执行步骤37。
步骤35:服务器将c发送给客户端。
步骤36:客户端产生一个位于[1,n-1]之间的随机数k1,并计算k1[*]G,将计算结果作为Q1。通过Q1,时间戳和挑战响应码c'生成Q1';
即有:k1∈[1,n-1],且k1为整数;
Q1=k1[*]G,Q1'=Q1||tn||c'。
步骤37:客户端将Q1'发送给服务器。
步骤38:服务器验证客户端发送的c’是否等于c,若不相等或者2min内未收到响应,则报错并退出。
步骤39:服务器产生一个位于[1,n-1]之间的随机数k2,并计算k2[*]G,得到计算结果Q2。
即有:k2∈[1,n-1],且k2为整数;
Q2=k2[*]G。
步骤310:服务器产生一个位于[1,n-1]之间的随机数k3,计算k3[*]Q1[+]Q2,得到计算结果(x1,y1),并计算x1+e mod n,将计算结果作为r,其中,[+]表示椭圆曲线点加运算。
即有:k3∈[1,n-1],且k3为整数;
(x1,y1)=k3[*]Q1[+]Q2;
r=x1+e mod n。
其中,若r不等于0,则执行步骤311,若r等于0,则服务器可重新产生k3,并重新计算得到(x1,y1)和r,直到r不等于0为止。
步骤311:若r不等于0,则服务器计算D2*k3mod n,将计算结果作为s2,并计算D2*(r+k2)mod n,将计算结果作为s3。
即有:s2=D2*k3mod n;
S3=D2*(r+k2)mod n。
步骤312:服务器将r、s2和s3发送给客户端。
步骤313:客户端计算(D1*k1)*s2+D1*s3-r mod n,得到计算结果s。
即有:s=(D1*k1)s2+D1*s3-r mod n。
其中,若s等于0或等于n-r,则可重新产生k1,并将与此相关的步骤重新执行,若s不等于0且不等于n-r,则执行步骤312。
步骤314:若s不等于0且不等于n-r,则客户端将(r,s)作为完整签名输出。
同时,还可输出待签名消息M。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (10)

1.一种应用于CS架构的SM2算法签名方法,其步骤包括:
1)客户端生成自身子私钥D1,服务器生成自身子私钥D2;
2)客户端生成待签名消息M的消息摘要e,生成签名请求e'=e||b,将e'发送给服务器;其中,b为客户端向服务器注册时设置的口令;
3)服务器从e'提取口令b并验证其是否正确,如果错误则结束签名;如果正确,则反馈确认信息给客户端,客户端生成第一部分签名Q1,将Q1发送给服务器;
4)服务器根据签名Q1和消息摘要e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;
5)客户端根据D1、r、s2和s3生成消息M的完整签名。
2.如权利要求1所述的方法,其特征在于,客户端生成第一部分签名Q1的方法为:客户端产生一个位于[1,n-1]之间的随机数k1,并计算k1[*]G,将计算结果作为签名Q1;[*]表示点乘运算,即计算椭圆曲线E上n阶的基点G的k倍点。
3.如权利要求2所述的方法,其特征在于,服务器根据签名Q1和消息摘要e生成第二部分签名r的方法为:服务器产生一个位于[1,n-1]之间的随机数k2,并计算k2[*]G,得到计算结果Q2;然后产生一个位于[1,n-1]之间的随机数k3,计算k3[*]Q1[+]Q2,得到计算结果(x1,y1),并计算x1+e mod n,将计算结果作为r;若r等于0,则服务器可重新产生一k3,并重新计算得到(x1,y1)和r,直到r不等于0为止;其中,[+]表示椭圆曲线E上的点加运算。
4.如权利要求1所述的方法,其特征在于,服务器根据D2生成第三部分签名s2和第四部分签名s3的方法为:服务器计算D2*k3mod n,将计算结果作为签名s2;服务器计算D2*(r+k2)mod n,将计算结果作为签名s3;消息M的完整签名s=(D1*k1)s2+D1*s3-r mod n。
5.一种应用于CS架构的SM2算法签名方法,其步骤包括:
1)客户端生成自身子私钥D1,服务器生成自身子私钥D2;
2)客户端生成待签名消息M的消息摘要e,将e发送给服务器;
3)服务器向客户端发送挑战c;
4)客户端生成第一部分签名Q1,根据Q1、时间戳tn和响应码c’生成Q1’,客户端将Q1’发送给服务器;c’为客户端根据挑战c生成的响应码;
5)服务器验证Q1’中的响应码c’是否正确,如果错误则结束签名;如果正确,则服务器根据Q1和e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;
6)客户端根据D1、r、s2和s3生成消息M的完整签名。
6.如权利要求5所述的方法,其特征在于,服务器根据Q1和e生成第二部分签名r的方法为:服务器产生一个位于[1,n-1]之间的随机数k2,并计算k2[*]G,得到计算结果Q2;然后产生一个位于[1,n-1]之间的随机数k3,计算k3[*]Q1[+]Q2,得到计算结果(x1,y1),并计算x1+e mod n,将计算结果作为r;若r等于0,则服务器可重新产生一k3,并重新计算得到(x1,y1)和r,直到r不等于0为止;其中,[*]表示点乘运算,即计算椭圆曲线E上n阶的基点G的k倍点,[+]表示椭圆曲线E上的点加运算。
7.如权利要求5所述的方法,其特征在于,所述Q1'=Q1||tn||c';服务器根据D2生成第三部分签名s2和第四部分签名s3的方法为:服务器计算D2*k3mod n,将计算结果作为签名s2;服务器计算D2*(r+k2)mod n,将计算结果作为签名s3;消息M的完整签名s=(D1*k1)s2+D1*s3-r mod n。
8.一种应用于CS架构的SM2算法签名方法,其步骤包括:
1)客户端生成自身子私钥D1,服务器生成自身子私钥D2;
2)客户端生成待签名消息M的消息摘要e,生成签名请求e'=e||b,将e'发送给服务器;其中,b为客户端向服务器注册时设置的口令;
3)服务器从e'提取口令b并验证其是否正确,如果错误则结束签名;如果正确,则检查客户端的签名请求次数、签名请求间隔和登录状态是否异常,若存在异常情况则发送认证信息c给该客户端;
4)客户端生成第一部分签名Q1,根据Q1、时间戳tn和响应码c’生成Q1’,客户端将Q1’发送给服务器;c’为客户端根据认证信息c生成的响应码;
5)服务器验证Q1’中的响应码c’是否正确,如果错误则结束签名;如果正确,则服务器根据Q1和e生成第二部分签名r,并根据D2生成第三部分签名s2和第四部分签名s3,将r、s2和s3发送给客户端;
6)客户端根据D1、r、s2和s3生成消息M的完整签名。
9.如权利要求8所述的方法,其特征在于,所述认证信息c为短信验证码或动态口令。
10.如权利要求8所述的方法,其特征在于,所述Q1'=Q1||tn||c';服务器根据D2生成第三部分签名s2和第四部分签名s3的方法为:服务器计算D2*k3mod n,将计算结果作为签名s2;服务器计算D2*(r+k2)mod n,将计算结果作为签名s3;消息M的完整签名s=(D1*k1)s2+D1*s3-r mod n。
CN201810257242.7A 2018-03-27 2018-03-27 一种应用于cs架构的sm2算法签名方法 Expired - Fee Related CN108737103B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810257242.7A CN108737103B (zh) 2018-03-27 2018-03-27 一种应用于cs架构的sm2算法签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810257242.7A CN108737103B (zh) 2018-03-27 2018-03-27 一种应用于cs架构的sm2算法签名方法

Publications (2)

Publication Number Publication Date
CN108737103A true CN108737103A (zh) 2018-11-02
CN108737103B CN108737103B (zh) 2021-06-29

Family

ID=63941021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810257242.7A Expired - Fee Related CN108737103B (zh) 2018-03-27 2018-03-27 一种应用于cs架构的sm2算法签名方法

Country Status (1)

Country Link
CN (1) CN108737103B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582867A (zh) * 2020-05-11 2020-08-25 浙江同花顺智能科技有限公司 一种协同签名和解密方法、装置、电子设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102170357A (zh) * 2011-05-31 2011-08-31 北京虎符科技有限公司 组合密钥动态安全管理***
CN102710624A (zh) * 2012-05-24 2012-10-03 广东电网公司电力科学研究院 一种基于sm2算法可自定义的网络身份认证方法
CN103607282A (zh) * 2013-11-22 2014-02-26 成都卫士通信息产业股份有限公司 一种基于生物特征的身份融合认证方法
US20140211938A1 (en) * 2013-01-29 2014-07-31 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和***
CN104618110A (zh) * 2015-01-15 2015-05-13 中国科学院信息工程研究所 一种VoIP安全会议会话密钥传输方法
CN106506168A (zh) * 2016-12-07 2017-03-15 北京信任度科技有限公司 一种安全的基于生物特征远程身份认证的方法
CN106612182A (zh) * 2016-12-22 2017-05-03 中国电子科技集团公司第三十研究所 一种基于余数***的sm2白盒数字签名实现方法
CN107370599A (zh) * 2017-08-07 2017-11-21 收付宝科技有限公司 一种远程销毁私钥的管理方法、装置和***
CN107623570A (zh) * 2017-11-03 2018-01-23 北京无字天书科技有限公司 一种基于加法密钥分割的sm2签名方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102170357A (zh) * 2011-05-31 2011-08-31 北京虎符科技有限公司 组合密钥动态安全管理***
CN102710624A (zh) * 2012-05-24 2012-10-03 广东电网公司电力科学研究院 一种基于sm2算法可自定义的网络身份认证方法
US20140211938A1 (en) * 2013-01-29 2014-07-31 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
CN103607282A (zh) * 2013-11-22 2014-02-26 成都卫士通信息产业股份有限公司 一种基于生物特征的身份融合认证方法
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和***
CN104618110A (zh) * 2015-01-15 2015-05-13 中国科学院信息工程研究所 一种VoIP安全会议会话密钥传输方法
CN106506168A (zh) * 2016-12-07 2017-03-15 北京信任度科技有限公司 一种安全的基于生物特征远程身份认证的方法
CN106612182A (zh) * 2016-12-22 2017-05-03 中国电子科技集团公司第三十研究所 一种基于余数***的sm2白盒数字签名实现方法
CN107370599A (zh) * 2017-08-07 2017-11-21 收付宝科技有限公司 一种远程销毁私钥的管理方法、装置和***
CN107623570A (zh) * 2017-11-03 2018-01-23 北京无字天书科技有限公司 一种基于加法密钥分割的sm2签名方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHOWDHURY, S., MUKHERJEE,: ""Dynamic Authentication Protocol Using Multiple Signatures"", 《WIRELESS PERS COMMUN》 *
ZE XU,YUN PAN: ""A Threshold Signature Key Protection Scheme Based on Blind Technology"", 《ICIT 2017: PROCEEDINGS OF THE 2017 INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY》 *
侯红霞: "" 基于数字签名的动态口令认证***设计"", 《保密科学技术》 *
王婷婷; 侯书会: ""门限签名方案的研究及其安全性分析"", 《计算机工程与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582867A (zh) * 2020-05-11 2020-08-25 浙江同花顺智能科技有限公司 一种协同签名和解密方法、装置、电子设备和存储介质
CN111582867B (zh) * 2020-05-11 2023-09-22 浙江同花顺智能科技有限公司 一种协同签名和解密方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN108737103B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
US11356457B2 (en) Parameter based key derivation
US10003582B2 (en) Technologies for synchronizing and restoring reference templates
US20190305938A1 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US9197409B2 (en) Key derivation techniques
US20150244525A1 (en) Authentication
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
Jarecki et al. Two-factor authentication with end-to-end password security
EP3493070A1 (en) Parameter based key derivation and resource access delegation
CN1921395B (zh) 提高网络软件安全性的方法
CN103051453A (zh) 一种基于数字证书的移动终端网络安全交易***与方法
CN109361508A (zh) 数据传输方法、电子设备及计算机可读存储介质
CN104660412A (zh) 一种移动设备无密码安全认证方法及***
CN105591745A (zh) 对使用第三方应用的用户进行身份认证的方法和***
Jarecki et al. Two-factor password-authenticated key exchange with end-to-end security
US11082236B2 (en) Method for providing secure digital signatures
Baldimtsi et al. zklogin: Privacy-preserving blockchain authentication with existing credentials
CN110266653A (zh) 一种鉴权方法、***及终端设备
CN113852628A (zh) 一种去中心化的单点登录方法、装置及存储介质
CN108512832A (zh) 一种针对OpenStack身份认证的安全增强方法
CN201717885U (zh) 密码提供设备和密码认证***
CN108737103A (zh) 一种应用于cs架构的sm2算法签名方法
CN113545004A (zh) 具有减少攻击面的认证***
CN116112242A (zh) 面向电力调控***的统一安全认证方法及***
CN107682380A (zh) 一种交叉认证的方法及装置
EP3809626A1 (en) Method for controlling validity of an attribute

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210629

CF01 Termination of patent right due to non-payment of annual fee