CN112887081A - 基于sm2的签名验签方法、装置及系统 - Google Patents

基于sm2的签名验签方法、装置及系统 Download PDF

Info

Publication number
CN112887081A
CN112887081A CN202010923683.3A CN202010923683A CN112887081A CN 112887081 A CN112887081 A CN 112887081A CN 202010923683 A CN202010923683 A CN 202010923683A CN 112887081 A CN112887081 A CN 112887081A
Authority
CN
China
Prior art keywords
signature
public key
key
message
value
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
CN202010923683.3A
Other languages
English (en)
Other versions
CN112887081B (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.)
Shenzhen Aolian Information Security Technology Co ltd
Original Assignee
Shenzhen Aolian Information Security Technology Co ltd
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 Shenzhen Aolian Information Security Technology Co ltd filed Critical Shenzhen Aolian Information Security Technology Co ltd
Priority to CN202010923683.3A priority Critical patent/CN112887081B/zh
Publication of CN112887081A publication Critical patent/CN112887081A/zh
Application granted granted Critical
Publication of CN112887081B publication Critical patent/CN112887081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • 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

Abstract

本发明实施例提供了一种基于SM2的签名验签方法、装置及系统,将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;接收所述密钥生成中心生成的签名参数以及系统公钥PPub,所述签名参数包括部分私钥tA、声明公钥WA;依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至所述验签端。将基于完整公钥的值作为第一消息M的密钥前缀进行签名运算,运算简单,提高了数字签名机制的安全性。

Description

基于SM2的签名验签方法、装置及系统
技术领域
本发明涉及数字签名技术领域,特别是涉及一种基于SM2的签名验签方法、装置及系统。
背景技术
数字签名,又称公钥数字签名、电子签章,是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
签名过程是指签名用户使用私钥对签名消息进行变换,产生数字签名。验证过程是指验证用户使用公钥和待签名消息对用户的数字签名进行校。
数字签名系统需要将签名人的公钥、用户身份信息和可辨别标识关联。为实现关联可有多种方式,比如基于证书的系统,无证书的系统等。如何构造高效、安全的基于SM2算法的数字签名系统是一个重要问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于SM2的签名验签方法、装置及系统。
为了解决上述问题,本发明实施例公开了一种基于SM2的签名方法,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述签名端将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;
所述签名端接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA
所述签名端依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA
所述签名端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。
进一步地,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤,包括:
将所述基于完整公钥的哈希值、所述第一消息M和私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
进一步地,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤,包括:
将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
将所述所述第二值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
进一步地,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤,包括:
将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
将所述第三值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
进一步地,所述将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值的步骤,包括:
将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值。
进一步地,所述接收所述密钥生成中心根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数的步骤,还包括:
使用随机数d'A对第一密文执行预设公钥解密算法DEC,得到部分私钥tA,其中,所述第一密文是通过所述密钥生成中心将部分公钥UA和所述签名参数输入至预设公钥加密算法ENC中得到。
本发明实施例公开了一种基于SM2的验签方法,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述验签端接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub
所述验签端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述验签端将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
进一步地,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
计算完整公钥的哈希值;
将基于完整公钥的哈希值、第一消息M、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
进一步地,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
将所述第二值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
进一步地,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
将所述第三值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
进一步地,所述将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值的步骤,包括:
将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值。
本发明实施例公开了一种基于SM2的密钥生成方法,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述密钥生成中心获取可辨别标识IDA和部分公钥UA
所述密钥生成中心利用预设随机数算法生成随机数w∈[1,n-1];
所述密钥生成中心利用所述部分公钥UA按照随机算法生成声明公钥WA
所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;
所述密钥生成中心利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA
所述密钥生成中心利用部分私钥tA和声明公钥WA生成签名参数;
将所述签名参数发送至所述签名端。
进一步地,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ的步骤,包括:
将所述可辨别标识IDA和所述系统公钥PPub的坐标值进行拼接得到第四值,并将所述第四值输入至密码杂凑算法中生成第一杂凑值HA
将所述声明公钥WA在预设椭圆曲线上的坐标值和所述第一杂凑值HA拼接后形成第五值输入至预设密码杂凑算法中生成第一参数λ。
进一步地,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ的步骤,包括:
将所述声明公钥WA在预设椭圆曲线上的坐标值、所述系统公钥PPub在预设椭圆曲线上的坐标值和可辨别标识IDA拼接后形成第六值输入至预设密码杂凑算法中生成第一参数λ。
进一步地,所述将所述签名参数发送至所述签名端的步骤之前,包括:
将部分公钥UA、所述签名参数输入至预设公钥加密算法ENC中,得到加密后的第一密文。
本发明实施例公开了一种基于SM2的签名验签方法,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述签名端将可辨别标识IDA和部分公钥UA发送至密钥生成中心;
所述密钥生成中心利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端;
所述签名端依据所述部分私钥tA和随机产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
所述签名端将所述第一消息M和签名(r,s)发送至验签端;
所述验签端接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述验签端将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
本发明实施例公开了一种基于SM2的签名装置,所述装置涉及签名端、验签端和密钥生成中心;
所述签名端具体包括:
密钥申请模块,用于将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;
密钥接收模块,用于接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA
私钥计算模块,用于依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA
公钥计算模块,用于根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
签名模块,用于将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
发送模块,用于所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。
本发明实施例公开了一种基于SM2的验签装置,所述装置涉及签名端、验签端和密钥生成中心;
所述验签端具体包括:
消息接收模块,用于接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub
公钥计算模块,用于根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
验签模块,用于将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
本发明实施例公开了一种基于SM2的密钥生成装置,所述装置涉及签名端、验签端和密钥生成中心;
所述密钥生成中心具体包括:
参数获取模块,用于获取可辨别标识IDA和部分公钥UA
随机数生成模块,用于利用预设随机数算法生成随机数w∈[1,n-1];
声明公钥生成模块,用于利用所述部分公钥UA按照随机算法生成声明公钥WA
第一计算模块,用于根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;
第二计算模块,用于利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA
签名参数生成模块,用于利用部分私钥tA和声明公钥WA生成签名参数;
发送模块,用于将所述签名参数发送至所述签名端。
本发明实施例公开了一种基于SM2的签名验签系统,所述系统涉及签名端、验签端和密钥生成中心,具体包括:
签名端,用于将可辨别标识IDA和部分公钥UA发送至密钥生成中心;
密钥生成中心,用于利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端;
所述签名端,还用于利用所述部分私钥tA和随机产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至验签端。
所述验签端,用于接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
为了解决上述问题,本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的基于SM2的签名验签方法的步骤。
为了解决上述问题,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述的基于SM2的签名验签方法的步骤。
本发明实施例包括以下优点:将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;接收所述密钥生成中心生成的签名参数以及系统公钥PPub,所述签名参数包括部分私钥tA、声明公钥WA;依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至所述验签端。将基于完整公钥的值作为第一消息M的密钥前缀进行签名运算,运算简单,提高了数字签名机制的安全性。
附图说明
图1是本发明的一种基于SM2的签名方法实施例的步骤流程图;
图2是本发明的一种基于SM2的验签方法实施例的步骤流程图;
图3是本发明的一种基于SM2的密钥生成方法实施例的步骤流程图;
图4是本发明的一种基于SM2的签名装置实施例的结构框图;
图5是本发明的一种基于SM2的验签装置另一实施例的结构框图;
图6是本发明的一种基于SM2的密钥生成装置另一实施例的结构框图;
图7是本发明的一种基于SM2的签名验签方法实施例中用户密钥生成机制的流程框图;
图8是本发明的一种基于SM2的签名验签方法实施例中用户密钥对校验机制的流程框图;
图9是本发明一实施例的一种计算机设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1-8,本申请提出了一种基于SM2的签名方法,所述方法涉及签名端、验签端和密钥生成中心,具体可以包括如下步骤:
S110,所述签名端将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;
S120,所述签名端接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA
S130,所述签名端依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA
S140,所述签名端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
S150,所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
S160,所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。
参照上述步骤S110所示,所述签名端将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心,在本实施例中的签名端具体为用户A,用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。
参照上述步骤S120所示,所述签名端接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA。用户A和密钥生成中心(key generation center,KGC)一起协同生成用户的密钥对、用户私钥dA和声明公钥WA。KGC为负责选择椭圆曲线系统参数、生成主密钥并产生用户部分私钥和部分公钥的可信机构。
其中,椭圆曲线系统参数包括有限域Fq的规模q(当q=2m时,还包括元素表示法的标识和约化多项式);定义椭圆曲线E(Fq)的方程的两个元素a、b∈Fq;E(Fq)上的基点G=(xG,yG)(G≠O),其中xG和yG是Fq中的两个元素;G的阶n及其他可选项(如n的余因子等)。
参照上述步骤S130所示,所述签名端依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA。具体地,所述签名端依据所述部分私钥tA和随机算法产生的随机数d'A进行模n运算得到私钥dA;用户A计算dA=(tA+d'A)mod n。
参照上述步骤S140所示,所述签名端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA。具体地,所述签名端根据声明公钥WA、第一参数λ、系统公钥PPub生成完整公钥PA。计算完整公钥PA=WA+[λ]PPub。所述系统公钥PPub是由KGC产生,第一参数λ是由签名端计算得到。
参照上述步骤S150所示,所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。将基于完整公钥的值作为第一消息M的密钥前缀进行签名运算有助于数字签名机制的安全性。
参照上述步骤S160所示,所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。将签名后的第一消息和签名发送至验签端,验签端对其进行验签。
在本实施例中,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤S150,包括:
将所述基于完整公钥的哈希值、所述第一消息M和私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
具体地,密钥生成中心计算杂凑值HA=H256(ENTLA||IDA||xPub||yPub);
用户A计算基于完整公钥的哈希值ZA=H256(HL||HA||a||b||xG||yG||xPA||yPA);
用户A根据完整公钥的哈希值、第一消息M和私钥dA进行签名,执行SIGN(param,ZA,M,O,dA)并输出签名(r,s)。
在本实施例中,所述基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤S150,包括:
将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
将所述所述第二值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
具体地,用户A执行SIGN(param,0,xPA||yPA||M,O,dA)并输出签名(r,s)。
在本实施例中,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤S150,包括:
将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
将所述所述第三值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
参照上述步骤所述的附加信息值包括但不限于可辨别标识IDA、部分公钥UA、椭圆曲线参数。
在一具体实施例中,所述将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值的步骤,包括:
将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值。
在本实施例中,所述接收所述密钥生成中心根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数的步骤S120,还包括:
使用随机数d'A对第一密文执行预设公钥解密算法DEC,得到部分私钥tA,其中,所述第一密文是通过所述密钥生成中心使用部分公钥UA作为公钥使用加密方法ENC对所述签名参数进行加密后得到。KGC将返回tA至用户A时可以使用UA作为公钥使用加密方法ENC加密包括tA的数据后将密文传递到用户A。用户A使用d'A解密密文后还原包括tA的数据。
在本实施例中,所述利用所述部分私钥tA和利用随机算法产生的随机数d'A计算得到私钥dA的步骤S130之后,包括:
当所述私钥dA的值为0时,重新将标识IDA和更新后的部分公钥UA提交至所述密钥生成中心,获得新的部分私钥tA和声明公钥WA。具体地,如果dA=0,则返回步骤S100;否则输出(dA,WA)。
在本实施例中,所述系统主私钥ms是由所述密钥生成中心根据随机算法产生的随机数,ms∈[1,n-1],所述系统主公钥PPub=[ms]G,其中G是椭圆曲线的一个基点,其阶为素数。
具体地,主密钥包括系统主私钥和系统主公钥,其中系统主公钥公开,系统主私钥由KGC秘密保存。KGC用椭圆曲线系统参数、系统主公钥、系统主私钥、用户的标识、以及可选的用户生成的部分公钥来生成用户的部分私钥。系统主私钥由KGC通过随机数发生器产生,系统主公钥由系统主私钥结合椭圆曲线系统参数产生。KGC产生随机数ms∈[1,n-1]作为系统主私钥。
在本实施例中,所述将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心的步骤S110之前,包括:
根据随机算法产生随机数d'A∈[1,n-1];
计算部分公钥UA=[d'A]G,其中G是椭圆曲线的一个基点,其阶为素数。
具体地,用户A产生随机数d'A∈[1,n-1];用户A计算UA=[d'A]G,并将标识IDA和UA提交KGC;
在本实施例中,所述利用所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA的步骤S130之后,还包括:
计算完整公钥PA=WA+[λ]PPub
计算算数公钥P'A=[dA]G,其中G是椭圆曲线的一个基点,其阶为素数;
判断所述完整公钥PA与所述算数公钥P'A是否相等;
若相等,则输出密钥验证通过结果。第一参数λ是由签名端计算得到。λ=H256(xWA||yWA||HA)mod n,HA=H256(ENTLA||IDA||xPub||yPub)。
具体的,公开了用户密钥对的校验机制,为了验证生成的密钥对(dA,WA)的正确性,用户A应实现以下运算步骤:
计算HA=H256(ENTLA||IDA||xpub||ypub);
将WA的坐标xWA、yWA的数据类型转换为比特串,计算λ=H256(xWA||yWA||HA)mod n,将λ的数据类型转换为整数;
计算PA=WA+[λ]Ppub
计算P'A=[dA]G;
检查PA=P'A是否成立,若成立则验证通过;否则验证不通过。
参照图2,示出了本发明的一种基于SM2的验签方法实施例的步骤流程图,所述方法涉及签名端、验签端和密钥生成中心,具体可以包括如下步骤:
S210,所述验签端接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub
S220,所述验签端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
S230,所述验签端将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
在本实施例中,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
计算完整公钥的哈希值;
将基于完整公钥的哈希值、第一消息M、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
具体地,验签端计算基于完整公钥的哈希值ZA=H256(HL||HA||a||b||xG||yG||xPA||yPA);
执行VERIFY(param,ZA,M,PA,(r',s'))并输出结果。
在本实施例中,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
将所述第二值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
具体地,计算公钥PA
执行VERIFY(param,0,xPA‖yPA‖M,PA,(r',s'))并输出结果。
在本实施例中,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
将所述第三值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
参照上述步骤所述的附加信息值包括但不限于可辨别标识IDA、部分公钥UA、椭圆曲线参数。
在本实施例中,所述将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值的步骤,包括:
将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值。
具体地,验签端计算公钥PA
执行VERIFY(param,0,IDA‖xPA‖yPA‖M,PA,(r',s'))并输出结果。
参照图3,示出了本发明的一种基于SM2的密钥生成方法实施例的步骤流程图,所述方法涉及签名端、验签端和密钥生成中心,具体可以包括如下步骤:
S310,所述密钥生成中心获取可辨别标识IDA和部分公钥UA
S320,所述密钥生成中心利用预设随机数算法生成随机数w∈[1,n-1];
S330,所述密钥生成中心利用所述部分公钥UA按照随机算法生成声明公钥WA
S340,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;
S350,所述密钥生成中心利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA
S360,所述密钥生成中心利用部分私钥tA和声明公钥WA生成签名参数;
S370,将所述签名参数发送至所述签名端。
在本实施例中,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ的步骤S340,包括:
将所述可辨别标识IDA和所述系统公钥PPub的坐标值进行拼接得到第四值,并将所述第四值输入至密码杂凑算法中生成第一杂凑值HA
将所述声明公钥WA在预设椭圆曲线上的坐标值和所述第一杂凑值HA拼接后形成第五值输入至预设密码杂凑算法中生成第一参数λ。具体地,计算第一参数λ=H256(xw||yw||HA)mod n,其中,所述xw和yw为所述声明公钥WA在预设椭圆曲线上的坐标值。
在一具体实施例中,公开了一种用户密钥对的生成机制:
用户A和KGC一起协同生成用户的密钥对:用户私钥dA和声明公钥WA。两者应实现以下运算步骤:
用户A产生随机数d'A∈[1,n-1];
用户A计算UA=[d'A]G,并将标识IDA和UA提交KGC;
KGC计算HA=H256(ENTLA‖IDA‖xPub‖yPub);
KGC产生随机数w∈[1,n-1];
KGC计算WA=[w]G+UA
KGC按GB/T32918.1-2016中4.2.6和4.2.5给出的方法将坐标xW、yW的数据类型转换为比特串,计算λ=H256(xW‖yW‖HA)mod n,按GB/T 32918.1-2016中4.2.4和4.2.3给出的方法将λ的数据类型转换为整数;
KGC计算tA=(w+λ*ms)mod n,并KGC向用户A返回tA和WA
用户A计算dA=(tA+d'A)mod n;
还公开了一种公钥计算方法:
计算HA=H256(ENTLA‖IDA‖xPub‖yPub);
按GB/T32918.1-2016中4.2.6和4.2.5给出的方法将坐标xW、yW的数据类型转换为比特串,计算λ=H256(xW‖yW‖HA)mod n,按GB/T 32918.1-2016中4.2.4和4.2.3给出的方法将λ的数据类型转换为整数;
计算PA=WA+[λ]Ppub
在本实施例中,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ的步骤S340,包括:
将所述声明公钥WA在预设椭圆曲线上的坐标值、所述系统公钥PPub在预设椭圆曲线上的坐标值和可辨别标识IDA拼接后形成第六值输入至预设密码杂凑算法中生成第一参数λ。具体地,计算第一参数λ=H256(xw||yw||IDA||xPub||yPub)mod n,其中,所述xw和yw为所述声明公钥WA在预设椭圆曲线上的坐标值,所述xPub和yPub为所述系统公钥在预设椭圆曲线上的坐标值。
在本实施例中,所述将所述签名参数发送至所述签名端的步骤S370之前,包括:
将部分公钥UA、所述签名参数输入至预设公钥加密算法ENC中,得到加密后的第一密文。
具体地,公开了一种用户密钥对的生成机制:
用户A和KGC一起协同生成用户的密钥对:用户私钥dA和声明公钥WA。两者应实现以下运算步骤:
用户A产生随机数d'A∈[1,n-1];
用户A计算UA=[d'A]G,并将标识IDA和UA提交KGC;
KGC产生随机数w∈[1,n-1];
KGC计算WA=[w]G+UA
KGC按GB/T32918.1-2016中4.2.6和4.2.5给出的方法将坐标xW、yW的数据类型转换为比特串,计算λ=H256(xW‖yW‖IDA‖xPub‖yPub)mod n,按GB/T32918.1-2016中4.2.4和4.2.3给出的方法将λ的数据类型转换为整数;
KGC计算tA=(w+λ*ms)mod n,并KGC向用户A返回tA和WA
用户A计算dA=(tA+d'A)mod n;
还公开了一种公钥计算方法:
计算λ=H256(xW‖yW‖IDA‖xPub‖yPub)mod n,按GB/T 32918.1-2016中4.2.4和4.2.3给出的方法将λ的数据类型转换为整数;
A3:计算PA=WA+[λ]Ppub
参照图7-8,为了解决上述问题,本发明实施例公开了一种基于SM2的签名验签方法,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述签名端将可辨别标识IDA和部分公钥UA发送至密钥生成中心;
所述密钥生成中心利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端;
所述签名端依据所述部分私钥tA和随机产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
所述签名端将所述第一消息M和签名(r,s)发送至验签端;
所述验签端接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述验签端将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种基于SM2的签名装置实施例的结构框图,所述装置涉及签名端、验签端和密钥生成中心;
所述签名端具体可以包括如下模块:
密钥申请模块110,用于将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;
密钥接收模块120,用于接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA
私钥计算模块130,用于依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA
公钥计算模块140,用于根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
签名模块150,用于将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
发送模块160,用于所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。
在本实施例中,所述签名模块150包括:
第一签名单元,用于将所述基于完整公钥的哈希值、所述第一消息M和私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
在本实施例中,所述签名模块150包括:
第二拼接单元,用于将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
第二签名单元,用于将所述所述第二值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
在本实施例中,所述签名模块150包括:
第三拼接单元,用于将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
第三签名单元,用于将所述第三值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
在本实施例中,所述第三拼接单元包括:
第三拼接子单元,用于将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值。
在本实施例中,所述密钥接收模块120还包括:
密钥接收单元,用于使用随机数d'A对第一密文执行预设公钥解密算法DEC,得到部分私钥tA,其中,所述第一密文是通过所述密钥生成中心将部分公钥UA和所述签名参数输入至预设公钥加密算法ENC中得到。
参照图5,本申请还公开了一种基于SM2的验签装置,所述装置涉及签名端、验签端和密钥生成中心;
所述验签端具体包括:
消息接收模块210,用于接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub
公钥生成模块220,用于根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
验签模块230,用于将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
在本实施例中,所述验签模块220包括:
第一计算单元,用于计算完整公钥的哈希值;
第一验签单元,用于将基于完整公钥的哈希值、第一消息M、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
在本实施例中,所述验签模块220包括:
第二计算单元,用于将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
第二验签单元,用于将所述第二值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
在本实施例中,所述验签模块220包括:
第三计算单元,用于将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
第三验签单元,用于将所述第三值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
在本实施例中,所述第三计算单元包括:
第三计算子单元,用于将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值。
参照图6,本申请公开了一种基于SM2的密钥生成装置,所述装置涉及签名端、验签端和密钥生成中心;
所述密钥生成中心具体包括:
参数获取模块310,用于获取可辨别标识IDA和部分公钥UA
随机数生成模块320,用于利用预设随机数算法生成随机数w∈[1,n-1];
声明公钥生成模块330,用于利用所述部分公钥UA按照随机算法生成声明公钥WA
第一计算模块340,用于根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;
第二计算模块350,用于利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA
签名参数生成模块360,用于利用部分私钥tA和声明公钥WA生成签名参数;
发送模块370,用于将所述签名参数发送至所述签名端。
在本实施例中,所述第一计算模块340包括:
第一计算单元,用于将所述可辨别标识IDA和所述系统公钥PPub的坐标值进行拼接得到第四值,并将所述第四值输入至密码杂凑算法中生成第一杂凑值HA
第二计算单元,用于将所述声明公钥WA在预设椭圆曲线上的坐标值和所述第一杂凑值HA拼接后形成第五值输入至预设密码杂凑算法中生成第一参数λ。
在本实施例中,所述第一计算模块340:
第三计算单元,用于将所述声明公钥WA在预设椭圆曲线上的坐标值、所述系统公钥PPub在预设椭圆曲线上的坐标值和可辨别标识IDA拼接后形成第六值输入至预设密码杂凑算法中生成第一参数λ。。
本实施例中,所述密钥生成中心还包括:
加密模块,用于将部分公钥UA、所述签名参数输入至预设公钥加密算法ENC中,得到加密后的第一密文。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了解决上述问题,本发明实施例公开了一种基于SM2的签名验签系统,所述系统涉及签名端、验签端和密钥生成中心,具体包括:
签名端,用于将可辨别标识IDA和部分公钥UA发送至密钥生成中心;
密钥生成中心,用于利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端;
所述签名端,还用于利用所述部分私钥tA和随机产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至验签端。
所述验签端,用于接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
参照图9,示出了本发明的一种基于SM2的签名验签方法的计算机设备,具体可以包括如下:
上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,外围总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线18,微通道体系结构(MAC)总线18,增强型ISA总线18、音视频电子标准协会(VESA)局域总线18以及外围组件互连(PCI)总线18。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)界面22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN)),广域网(WAN)和/或公共网络(例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图9中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元16、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统34等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的基于SM2的签名验签方法。
也即,上述处理单元16执行上述程序时实现:将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA;依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至所述验签端。
或,
上述处理单元16执行上述程序时实现:接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
或,
上述处理单元16执行上述程序时实现:获取可辨别标识IDA和部分公钥UA;利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端。
在本发明实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的基于SM2的签名验签方法:
也即,给程序被处理器执行时实现:将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA;依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至所述验签端。
或,给程序被处理器执行时实现:接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
或,给程序被处理器执行时实现:获取可辨别标识IDA和部分公钥UA;利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机克顿信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPOM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的基于SM2的签名验签方法、装置及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (26)

1.一种基于SM2的签名方法,其特征在于,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述签名端将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;
所述签名端接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA
所述签名端依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA
所述签名端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。
2.根据权利要求1所述的方法,其特征在于,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤,包括:
将所述基于完整公钥的哈希值、所述第一消息M和私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
3.根据权利要求1所述的方法,其特征在于,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤,包括:
将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
将所述所述第二值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
4.根据权利要求1所述的方法,其特征在于,所述将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)的步骤,包括:
将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
将所述第三值和所述私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s)。
5.根据权利要求1或4所述的方法,其特征在于,所述将附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值的步骤,包括:
将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值。
6.根据权利要求1所述的方法,其特征在于,所述接收所述密钥生成中心根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数的步骤,还包括:
使用随机数d'A对第一密文执行预设公钥解密算法DEC,得到部分私钥tA,其中,所述第一密文是通过所述密钥生成中心将部分公钥UA和所述签名参数输入至预设公钥加密算法ENC中得到。
7.一种基于SM2的验签方法,其特征在于,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述验签端接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub
所述验签端根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述验签端将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
8.根据权利要求7所述的方法,其特征在于,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
计算完整公钥的哈希值;
将基于完整公钥的哈希值、第一消息M、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
9.根据权利要求7所述的方法,其特征在于,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
将所述完整公钥的坐标值与所述第一消息M拼接得到第二值;
将所述第二值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
10.根据权利要求7所述的方法,其特征在于,所述将基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果的步骤,包括:
将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值,所述附加信息值为签名端中的信息值或密钥生成中心生成的信息值;
将所述第三值、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
11.根据权利要求7或10所述的方法,其特征在于,所述将所述附加信息值、所述完整公钥的坐标值及所述第一消息M拼接得到第三值的步骤,包括:
将所述可辨别标识IDA、所述完整公钥的坐标值及所述第一消息M拼接得到第三值。
12.一种基于SM2的密钥生成方法,其特征在于,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述密钥生成中心获取可辨别标识IDA和部分公钥UA
所述密钥生成中心利用预设随机数算法生成随机数w∈[1,n-1];
所述密钥生成中心利用所述部分公钥UA按照随机算法生成声明公钥WA
所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;
所述密钥生成中心利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA
所述密钥生成中心利用部分私钥tA和声明公钥WA生成签名参数;
所述密钥生成中心将所述签名参数发送至所述签名端。
13.根据权利要求12所述的方法,其特征在于,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ的步骤,包括:
将所述可辨别标识IDA和所述系统公钥PPub的坐标值进行拼接得到第四值,并将所述第四值输入至密码杂凑算法中生成第一杂凑值HA
将所述声明公钥WA在预设椭圆曲线上的坐标值和所述第一杂凑值HA拼接后形成第五值输入至预设密码杂凑算法中生成第一参数λ。
14.根据权利要求12所述的方法,其特征在于,所述密钥生成中心根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ的步骤,包括:
将所述声明公钥WA在预设椭圆曲线上的坐标值、所述系统公钥PPub在预设椭圆曲线上的坐标值和可辨别标识IDA拼接后形成第六值输入至预设密码杂凑算法中生成第一参数λ。
15.根据权利要求12所述的方法,其特征在于,所述将所述签名参数发送至所述签名端的步骤之前,包括:
将部分公钥UA、所述签名参数输入至预设公钥加密算法ENC中,得到加密后的第一密文。
16.一种基于SM2的签名验签方法,其特征在于,所述方法涉及签名端、验签端和密钥生成中心,具体包括:
所述签名端将可辨别标识IDA和部分公钥UA发送至密钥生成中心;
所述密钥生成中心利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端;
所述签名端依据所述部分私钥tA和随机产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述签名端将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
所述签名端将所述第一消息M和签名(r,s)发送至验签端;
所述验签端接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
所述验签端将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
17.一种基于SM2的签名装置,其特征在于,所述装置涉及签名端、验签端和密钥生成中心;
所述签名端具体包括:
密钥申请模块,用于将可辨别标识IDA和部分公钥UA发送至所述密钥生成中心;
密钥接收模块,用于接收所述密钥生成中心生成的系统公钥PPub和根据所述可辨别标识IDA和所述部分公钥UA生成的签名参数,所述签名参数包括部分私钥tA、声明公钥WA
私钥计算模块,用于依据所述部分私钥tA和随机算法产生的随机数d'A计算得到私钥dA
公钥计算模块,用于根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
签名模块,用于将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);
发送模块,用于所述签名端将所述第一消息M和签名(r,s)发送至所述验签端。
18.一种基于SM2的验签装置,其特征在于,所述装置涉及签名端、验签端和密钥生成中心;
所述验签端具体包括:
消息接收模块,用于接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub
公钥计算模块,用于根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA
验签模块,用于将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
19.一种基于SM2的密钥生成装置,其特征在于,所述装置涉及签名端、验签端和密钥生成中心;
所述密钥生成中心具体包括:
参数获取模块,用于获取可辨别标识IDA和部分公钥UA
随机数生成模块,用于利用预设随机数算法生成随机数w∈[1,n-1];
声明公钥生成模块,用于利用所述部分公钥UA按照随机算法生成声明公钥WA
第一计算模块,用于根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;
第二计算模块,用于利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA
签名参数生成模块,用于利用部分私钥tA和声明公钥WA生成签名参数;
发送模块,用于将所述签名参数发送至所述签名端。
20.一种基于SM2的签名验签系统,其特征在于,所述系统涉及签名端、验签端和密钥生成中心,具体包括:
签名端,用于将可辨别标识IDA和部分公钥UA发送至密钥生成中心;
密钥生成中心,用于利用预设随机数算法生成随机数w∈[1,n-1];利用所述部分公钥UA按照随机算法生成声明公钥WA;根据所述声明公钥WA、可辨别标识IDA、系统公钥PPub计算出第一参数λ;利用所述随机数w、预设系统主私钥ms和所述第一参数λ计算得到部分私钥tA;利用部分私钥tA和声明公钥WA生成签名参数;将所述签名参数发送至所述签名端;
所述签名端,还用于利用所述部分私钥tA和随机产生的随机数d'A计算得到私钥dA;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将基于完整公钥的值与待签名的第一消息M的拼接、私钥dA输入到预设数字签名生成算法SIGN中,得到第一消息M的签名(r,s);将所述第一消息M和签名(r,s)发送至验签端。
所述验签端,用于接收待验证的消息M'、数字签名(r',s')、声明公钥WA、可辨别标识IDA和系统公钥PPub;根据声明公钥WA、可辨别标识IDA、系统公钥PPub生成完整公钥PA;将所述基于完整公钥的值与待签名的第一消息M的拼接、完整公钥PA和数字签名(r',s')输入至预设数字签名验证算法VERIFY中,输出对所述数字签名(r',s')的验证结果。
21.电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6任一项所述的基于SM2的签名验签方法的步骤。
22.电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求7-11任一项所述的基于SM2的签名方法的步骤。
23.电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求12-15任一项所述的基于SM2的签名方法的步骤。
24.计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的基于SM2的签名验签方法的步骤。
25.计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求7-11任一项所述的基于SM2的签名验签方法的步骤。
26.计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求12-15任一项所述的基于SM2的签名验签方法的步骤。
CN202010923683.3A 2020-09-04 2020-09-04 基于sm2的签名验签方法、装置及系统 Active CN112887081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010923683.3A CN112887081B (zh) 2020-09-04 2020-09-04 基于sm2的签名验签方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010923683.3A CN112887081B (zh) 2020-09-04 2020-09-04 基于sm2的签名验签方法、装置及系统

Publications (2)

Publication Number Publication Date
CN112887081A true CN112887081A (zh) 2021-06-01
CN112887081B CN112887081B (zh) 2023-06-16

Family

ID=76042900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010923683.3A Active CN112887081B (zh) 2020-09-04 2020-09-04 基于sm2的签名验签方法、装置及系统

Country Status (1)

Country Link
CN (1) CN112887081B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055189A (zh) * 2021-06-02 2021-06-29 工业信息安全(四川)创新中心有限公司 Sm2数字签名验证失败原因判定方法、装置、设备和介质
CN113158176A (zh) * 2021-06-02 2021-07-23 工业信息安全(四川)创新中心有限公司 基于sm2签名的公钥解析方法、装置、设备及存储介质
CN113221193A (zh) * 2021-06-02 2021-08-06 上海交通大学 基于gpu的sm2数字签名与验签快速实现方法及系统
CN115549905A (zh) * 2022-10-11 2022-12-30 北京无字天书科技有限公司 Sm2密钥生成法及相关方法、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070211893A1 (en) * 2006-03-09 2007-09-13 Motorola, Inc. Encryption and verification using partial public key
CN107124274A (zh) * 2017-05-18 2017-09-01 深圳奥联信息安全技术有限公司 基于sm2的数字签名方法和装置
CN108667625A (zh) * 2018-07-19 2018-10-16 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108809658A (zh) * 2018-07-20 2018-11-13 武汉大学 一种基于sm2的身份基的数字签名方法与系统
CN111245847A (zh) * 2020-01-15 2020-06-05 北京三未信安科技发展有限公司 轻量级无证书认证方法、客户端及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070211893A1 (en) * 2006-03-09 2007-09-13 Motorola, Inc. Encryption and verification using partial public key
CN107124274A (zh) * 2017-05-18 2017-09-01 深圳奥联信息安全技术有限公司 基于sm2的数字签名方法和装置
CN108667625A (zh) * 2018-07-19 2018-10-16 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108809658A (zh) * 2018-07-20 2018-11-13 武汉大学 一种基于sm2的身份基的数字签名方法与系统
CN111245847A (zh) * 2020-01-15 2020-06-05 北京三未信安科技发展有限公司 轻量级无证书认证方法、客户端及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHAOHUI CHENG等: "Certificateless Public Key Signature Schemes from Standard Algorithms", 《ISPEC 2018 INFORMATION SECURITY PRACTICE AND EXPERIENCE》 *
国家密码管理局: "第2部分 数字签名算法", 《SM2椭圆曲线公钥密码算法》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055189A (zh) * 2021-06-02 2021-06-29 工业信息安全(四川)创新中心有限公司 Sm2数字签名验证失败原因判定方法、装置、设备和介质
CN113158176A (zh) * 2021-06-02 2021-07-23 工业信息安全(四川)创新中心有限公司 基于sm2签名的公钥解析方法、装置、设备及存储介质
CN113221193A (zh) * 2021-06-02 2021-08-06 上海交通大学 基于gpu的sm2数字签名与验签快速实现方法及系统
CN113055189B (zh) * 2021-06-02 2021-08-10 工业信息安全(四川)创新中心有限公司 Sm2数字签名验证失败原因判定方法、装置、设备和介质
CN113221193B (zh) * 2021-06-02 2022-07-29 上海交通大学 基于gpu的sm2数字签名与验签快速实现方法及系统
CN113158176B (zh) * 2021-06-02 2022-08-02 工业信息安全(四川)创新中心有限公司 基于sm2签名的公钥解析方法、装置、设备及存储介质
CN115549905A (zh) * 2022-10-11 2022-12-30 北京无字天书科技有限公司 Sm2密钥生成法及相关方法、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112887081B (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
WO2021238527A1 (zh) 数字签名生成方法、装置、计算机设备和存储介质
US10326753B2 (en) Authentication via revocable signatures
CN112887081B (zh) 基于sm2的签名验签方法、装置及系统
CN110351096B (zh) 多重签名方法、签名中心、程序介质及电子设备
US9219602B2 (en) Method and system for securely computing a base point in direct anonymous attestation
CN109818730B (zh) 盲签名的获取方法、装置和服务器
CN112560091B (zh) 数字签名方法、签名信息的验证方法、相关装置及电子设备
US8250367B2 (en) Cryptographic applications of efficiently evaluating large degree isogenies
US9172530B2 (en) Apparatus and method for generating secret key for ID-based encryption system and recording medium having program recorded thereon for causing computer to execute the method
CN111931158A (zh) 一种双向认证方法、终端以及服务器
CN111368335A (zh) Pdf文件的电子签章方法及电子签章验证方法和系统
CN110505061B (zh) 一种数字签名算法及系统
CN115664675B (zh) 基于sm2算法的可追踪环签名方法、系统、设备及介质
JP5328993B2 (ja) 署名生成装置及び署名生成方法及び記録媒体
WO2007105749A1 (ja) グループ署名システムおよび情報処理方法
CN112887080B (zh) 基于sm2的密钥生成方法及系统
CN107104788B (zh) 终端及其不可抵赖的加密签名方法和装置
EP2991265B1 (en) Encrypted text matching system, method and program
CN111984959B (zh) 一种匿名信息发布及验证方法、装置
CN116566626A (zh) 环签名方法和设备
CN112906059B (zh) 代理签名和验证方法、装置、系统及存储介质
CN111447072B (zh) 用于生成数据等价零知识证明的方法、设备及存储介质
WO2011033642A1 (ja) 署名生成装置及び署名検証装置
CN112887097A (zh) 基于sm2椭圆曲线的签名方法、相关装置、及存储介质
JP2014010415A (ja) 分散情報管理システム、分散情報管理装置、分散情報保持装置、分散情報管理方法およびプログラム

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