CN109088726A - 基于sm2算法的通信双方协同签名及解密方法和系统 - Google Patents

基于sm2算法的通信双方协同签名及解密方法和系统 Download PDF

Info

Publication number
CN109088726A
CN109088726A CN201810799349.4A CN201810799349A CN109088726A CN 109088726 A CN109088726 A CN 109088726A CN 201810799349 A CN201810799349 A CN 201810799349A CN 109088726 A CN109088726 A CN 109088726A
Authority
CN
China
Prior art keywords
communication party
communication
module
mod
party
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
CN201810799349.4A
Other languages
English (en)
Other versions
CN109088726B (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.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information 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 Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN201810799349.4A priority Critical patent/CN109088726B/zh
Publication of CN109088726A publication Critical patent/CN109088726A/zh
Application granted granted Critical
Publication of CN109088726B publication Critical patent/CN109088726B/zh
Active 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/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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/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
    • H04L9/3252Cryptographic 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

Abstract

本发明提供一种基于SM2算法的通信双方协同签名及解密方法和系统,涉及第一通信方和第二通信方,通信双方独立生成各自子私钥,通过协同运算产生公钥,通信双方均无法由己方生成和获得的参数计算得到私钥。只有通过通信双方协同运算,才能对消息进行签名和解密操作,入侵任何一方都无法获取私钥伪造签名,或者将秘密信息正确解密,从而充分保证了SM2算法的安全性,尤其是使用软件密码模块进行密码运算时的安全性。本发明无需引入椭圆曲线上的点减运算,只需使用SM2原有基本运算模块就可以完成,可广泛应用于电子商务、物联网、云计算系统等,对普通个人用户的隐私保护和数据安全也有非常好的促进作用。

Description

基于SM2算法的通信双方协同签名及解密方法和系统
技术领域
本发明涉及信息安全和密码学应用技术领域,具体涉及一种基于SM2算法的通信双方协同签名及解密方法和系统。
背景技术
密码技术是信息安全的核心技术。椭圆曲线公钥密码(简称ECC)算法近年来有了较大的发展和广泛的应用,国家密码管理局于2010年12月17日发布了椭圆曲线公钥密码算法SM2,在我国电子商务、身份认证等应用中发挥了重要的安全保障作用。
在公钥密码体制中,保证用户私钥的安全性是一个非常重要的问题。用户的私钥通常需要在专门的密码硬件中安全存储和使用,私钥不能从密码硬件中导出。但是,随着公钥密码算法应用的普及,SM2算法在电子商务、电子政务、移动警务、移动办公等体系和应用中得到了广泛使用,在车联网、智能医疗系统、智能家居系统等物联网应用以及云计算系统中也发挥了越来越重要的作用。很多使用SM2算法的系统和终端,特别是智能移动终端中,并没有配置密码芯片或者TF卡、USBKey等形式的硬件密码模块,只能依赖于软件密码模块来完成密码运算,私钥则需要存储在用户终端本地存储介质中。虽然私钥存储时可以使用加密、PIN码等方式加以保护,仍有被窃取的可能,而且在软件密码模块进行密码运算时,内存中最终会出现明文形式的私钥,易被攻击者通过一些方式窃取。
对于这一问题,一个可行的方案是将私钥分拆成多份,分开存储在不同的终端中,当需要使用私钥进行密码运算时,各终端分别使用自己的子私钥进行密码运算,以及相互交互部分运算结果,使最后得到的密码运算结果等同于直接使用私钥进行密码运算 (数字签名或者解密) 的结果。基于这一方案已有一些算法提出来,但是有一些应用场合,例如在电子商务、车联网等系统中,既需要在移动智能终端使用软件密码模块,又对安全性有着较高需求,需要更安全可靠的通信双方协同签名以及解密算法,来保障用户数据安全。另一方面,很多算法过程引入了椭圆曲线上的点减运算,在实现时需要在SM2基本运算模块的基础上增加额外的运算模块来进行处理,给算法的实现带来了不便。
为了解决以上存在的问题,还需要寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,提供一种基于SM2算法的通信双方协同签名及解密方法和系统,使通信双方独立生成各自子私钥,通过协同运算才能对消息进行签名和解密操作,通过算法的设计充分保证密码算法的安全性,并且使用SM2的基本运算模块就可以完成,不需要另外增加运算模块。
为了实现上述目的,本发明所采用的技术方案是:一种基于SM2算法的通信双方协同签名方法,所述签名方法涉及第一通信方和第二通信方,所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述协同签名方法包括以下步骤:
一、产生通信双方各自子私钥和计算公钥阶段
S101、所述第一通信方产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;
S102、所述第一通信方根据D1和G计算得到椭圆曲线点P1=[D1]G,把P1发送给所述第二通信方;
S103、所述第二通信方产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;
S104、所述第二通信方根据D2、P1和G计算得到公钥 P=P1+[D2]G+[D2]P1,并公开所述公钥;
二、通信双方协同签名阶段
S201、所述第一通信方对待签名消息M使用预定的杂凑函数,得到消息摘要e;
S202、所述第一通信方产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并将e、W1和k1发送给所述第二通信方;
S203、所述第二通信方产生随机数k2,b2∈[1,n-1],根据b2和接收到的W1、k1计算得到椭圆曲线点W=[k2]W1+[b2k1]G,W的坐标为(x1,y1);
S204、所述第二通信方根据x1和e计算得到第二部分签名r=(x1+e) mod n,若r=0,则返回S203;
S205、所述第二通信方根据k1、k2、d2、b2和r计算得到第三部分签名s1=(k2d2)mod n,第四部分签名s2=(d2(r+b2k1))mod n,并将s1、s2、r发送给所述第一通信方;
S206、所述第一通信方根据b1、d1、s1、s2和r计算s = (b1d1s1+d1s2-r)mod n,若s=0,返回S202;
S207、所述第一通信方输出M及其数字签名(r,s)。
基于上述,所述D1、D2、k1、k2、b1、b2分别由一个或多个位于[1,n-1]之间的随机数运算得到,所述运算包括线性运算、相乘和求逆。
基于上述,步骤S201、S202分别为:
S201、所述第一通信方产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并将W1和k1发送给所述第二通信方;
S202、所述第二通信方对待签名消息M使用预定的杂凑函数,得到消息摘要e。
一种基于SM2算法的通信双方协同解密方法,其特征在于:所述解密方法涉及第一通信方和第二通信方,所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;设密文结构为C1||C2||C3,其中||表示拼接,所述解密方法包括以下步骤:
一、产生通信双方各自子私钥和计算公钥阶段
S101、所述第一通信方产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;
S102、所述第一通信方根据D1和G计算得到椭圆曲线点P1=[D1]G,把P1发送给所述第二通信方;
S103、所述第二通信方产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;
S104、所述第二通信方根据D2、P1和G计算得到公钥P=P1+[D2]G+[D2]P1,并公开所述公钥;
二、通信双方协同解密阶段
S201、所述第一通信方从密文结构中取出C1,将C1的数据类型转换为椭圆曲线E上的点;若C1是无穷远点,则报错并退出;
S202、所述第一通信方根据C1、D1计算椭圆曲线点Q1=D1C1 mod n,并把C1、Q1发送给所述第二通信方;
S203、所述第二通信方根据C1、D2和Q1计算Q2=(D2C1+D2Q1)mod n,并将Q2发送给所述第一通信方;
S204、所述第一通信方根据Q1和Q2计算椭圆曲线点Q=Q1+Q2,Q的坐标为(x2,y2);然后计算t=KDF(x2||y2,klen),其中KDF( )为密钥派生函数,klen为密文中C2的比特长度;若t为全0的比特串,则报错并退出;
S205、所述第一通信方从密文结构中取出C2,计算M’=C2⊕t;
S206、所述第一通信方根据M’和x2、y2计算u=Hash(x2||M’||y2),并从密文中取出C3,其中Hash( )是密码杂凑函数;若u≠C3,则报错并退出;
S207:所述第一通信方输出明文M’。
一种基于SM2算法的通信双方协同签名系统,其特征在于,包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块和第一通信模块,所述第二通信方包括第二密码运算模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述第一通信方和所述第二通信方产生各自子私钥和计算公钥,在需要签名时进行通信双方协同签名;
所述第一通信方和所述第二通信方产生各自子私钥和计算公钥的过程包括:
所述第一通信方通过所述第一密码运算模块产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;然后计算椭圆曲线点P1=[D1]G,再通过所述第一通信模块把P1发送给所述第二通信方;
所述第二通信方通过第二通信模块接收P1,通过所述第二密码运算模块产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;然后计算得到公钥P=P1+[D2]G+[D2]P1,并通过第二通信模块公开所述公钥;
通信双方协同签名过程包括:
所述第一通信方通过所述第一密码运算模块对待签名消息M使用预定的杂凑函数,得到消息摘要e;然后产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并通过所述第一通信模块将e、W1和k1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收e、W1和k1,由所述第二密码运算模块产生随机数k2,b2∈[1,n-1],根据b2和W1、k1计算得到椭圆曲线点W=[k2]W1+[b2k1]G,W的坐标为(x1,y1);然后根据x1和e计算得到第二部分签名r=(x1+e) mod n,若r=0,则由所述第二密码运算模块重新产生随机数以及计算第二部分签名;
所述第二通信方通过所述第二密码运算模块根据k1、k2、d2、b2和r计算得到第三部分签名s1=(k2d2)mod n,第四部分签名s2=(d2(r+b2k1))mod n,并通过所述第二通信模块将s1、s2、r发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收s1、s2和r,再由所述第一密码运算模块根据b1、d1、s1、s2和r计算s=(b1d1s1+d1s2-r)mod n,若s≠0,所述第一通信方通过所述第一通信模块输出M及其数字签名(r,s);若s=0,则重新开始通信双方协同签名过程。
一种基于SM2算法的通信双方协同解密系统,包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块和第一通信模块,所述第二通信方包括第二密码运算模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述第一通信方和所述第二通信方产生各自子私钥和计算公钥,在需要解密时进行通信双方协同解密;
所述第一通信方和所述第二通信方产生各自子私钥和计算公钥的过程包括:
所述第一通信方通过所述第一密码运算模块产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;然后计算椭圆曲线点P1=[D1]G,再通过所述第一通信模块把P1发送给所述第二通信方;
所述第二通信方通过第二通信模块接收P1,通过所述第二密码运算模块产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;然后计算得到公钥P= P1+[D2]G+[D2]P1,并通过第二通信模块公开所述公钥;
通信双方协同解密过程包括:
设密文结构为C1||C2||C3,其中||表示拼接,所述第一通信方通过所述第一密码运算模块从密文结构中取出C1,将C1的数据类型转换为椭圆曲线E上的点;若C1是无穷远点,则报错并退出;否则根据C1、D1计算椭圆曲线点Q1=D1C1 mod n,并通过所述第一通信模块把C1、Q1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收C1、Q1,然后通过所述第二密码运算模块计算Q2=(D2C1+D2Q1)mod n,再通过所述第二通信模块把Q2发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收Q2,然后通过所述第一密码运算模块计算椭圆曲线点Q=Q1+Q2,Q的坐标为(x2,y2);再计算t=KDF(x2||y2,klen),其中KDF( )为密钥派生函数,klen为密文中C2的比特长度;若t为全0的比特串,则报错并退出,否则从密文结构中取出C2,计算M’=C2⊕t;然后根据M’和x2、y2计算u=Hash(x2||M’||y2),并从密文中取出C3,其中Hash( )是密码杂凑函数;若u≠C3,则报错并退出,否则第一通信方通过所述第一通信模块输出明文M’。
在本发明的技术方案中,通信双方独立生成各自子私钥,两个子私钥之间无任何关联,两个子私钥是真正的私钥的分量,通信双方均无法从通信双方通信传输的中间数据中获取对方私钥任何敏感信息,也无法由己方生成和获得的参数计算得到私钥。只有通过通信双方协同运算,才能对消息进行签名和解密操作,入侵任何一方都无法获取私钥伪造签名,或者将秘密信息正确解密。
与现有技术相比,本发明具有突出的实质性特点和显著的进步,具体地说:本发明技术方案通过密钥拆分的算法设计充分保证密码算法的安全性,在不依赖于密码硬件的软件密码模块中使用,也可以达到用户数据安全保密的效果;并且本方案中并未引入椭圆曲线上的点减运算,只需要使用SM2原有的基本运算模块就可以完成,不需要另外增加运算模块进行处理,给算法的实现带来了很大的便利,可以广泛应用于电子商务、移动政务、车联网、物联网、云计算系统等等,对于普通个人用户的隐私保护和数据安全也有非常好的促进作用。
附图说明
图1是本发明签名方法的一个实施例的流程示意图。
图2是本发明解密方法的一个实施例的流程示意图。
图3是本发明签名系统的一个实施例的原理框图。
图4是本发明解密系统的一个实施例的原理框图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
本发明中以类似[k]G的形式表示E上的点乘运算,[k]G代表点G的k倍点,k是正整数。mod n表示模n运算。表示数值的乘法运算时乘号省略,例如D1D2表示的是D1与D2相乘。
本发明中对于椭圆曲线点加运算,以及数值的加法运算,使用的符号都是加号“+”。如果是椭圆曲线点相加,则“+”表示点加运算;如果是数值相加,则“+”表示数值的加法运算。
本发明中没有引入椭圆曲线点减运算,减号“-”表示数值的减法运算。
如图1所示,本发明提供了基于SM2算法的通信双方协同签名方法的一个实施例,所述方法涉及第一通信方和第二通信方,所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述方法包括以下步骤:
一、产生通信双方各自子私钥和计算公钥阶段
S101、所述第一通信方产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;
S102、所述第一通信方根据D1和G计算得到椭圆曲线点P1=[D1]G,把P1发送给所述第二通信方;
S103、所述第二通信方产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;
S104、所述第二通信方根据D2、P1和G计算得到公钥 P=P1+[D2]G+[D2]P1,并公开所述公钥;
私钥d与子私钥d1、d2的关系为(1+d)-1 = d1d2。则公私钥配对一致性证明如下:
由(1+d)-1 = d1d2
=(1+D1)-1(1+D2)-1
=(1+D1+D2+D1D2)-1,可得私钥d = D1+D2+D1D2
公钥P = P1+[D2]G+[D2]P1
= [D1]G+[D2]G+[D1D2]G
= [D1+D2+D1D2]G
= [d]G
所述第一通信方和所述第二通信方均无法由己方生成和获得的参数计算得到私钥d,保证了私钥的安全。
此外,第一通信方和第二通信方的角色可以互换。
二、通信双方协同签名阶段
S201、所述第一通信方对待签名消息M使用预定的杂凑函数,得到消息摘要e;
可以先求得第一通信方的杂凑值Z,把杂凑值Z和M拼接,然后对拼接后的值使用密码杂凑函数,求得消息摘要e;具体可以参照SM2椭圆曲线公钥密码算法中数字签名算法部分的规定。
S202、所述第一通信方产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并将e、W1和k1发送给所述第二通信方;
在某些情况下,消息摘要e也可以由第二通信方产生,这时第一通信方只需要把第一部分签名W1和k1发送给所述第二通信方。
S203、所述第二通信方产生随机数k2,b2∈[1,n-1],根据b2和接收到的W1、k1计算得到椭圆曲线点W=[k2]W1+[b2k1]G,W的坐标为(x1,y1);
S204、所述第二通信方根据x1和e计算得到第二部分签名r=(x1+e) mod n,若r=0,则返回S203;
S205、所述第二通信方根据k1、k2、d2、b2和r计算得到第三部分签名s1=(k2d2)mod n,第四部分签名s2=(d2(r+b2k1))mod n,并将s1、s2、r发送给所述第一通信方;
S206、所述第一通信方根据b1、d1、s1、s2和r计算s = (b1d1s1+d1s2-r)mod n,若s=0,返回S202;
S207、所述第一通信方输出M及其数字签名(r,s)。
上述第一通信方和第二通信方产生的随机数D1、D2、k1、k2、b1、b2,可以是直接产生的位于[1,n-1]之间的一个随机数,也可以由一个或多个位于[1,n-1]之间的随机数运算得到,这里的运算包括线性运算、相乘、求逆等。例如k1= (k11+…+ k1i+…+ k1m) mod n,或k1=(k11*…* k1i*…* k1m) mod n, k1=(k11*…* k1i*…* k1m-1 mod n,k1=(k11+…+ k1i+…+k1m-1 mod n等等,其中k1i∈[1,n-1],i∈[1,m],m≥1。通过这样的运算,可以进一步增强密码算法的安全性。
签名正确性证明如下:
由(1+d)-1=d1d2 mod n,可得
s = (b1d1s1 + d1s2-r) mod n
= (b1d1k2d2+ d1d2(r+b2k1)–r) mod n
= (d1d2b1k2 + d1d2r + d1d2k1b2 – r) mod n
= [d1d2(b1k2 + k1b2) + d1d2r –r] mod n
= [d1d2(b1k2 + k1b2) + d1d2(r - (d1d2)-1r)] mod n
= d1d2[ (b1k2 + k1b2) + r –(d1d2)-1r] mod n
= (1+d)-1[(b1k2 + k1b2) + r -(1+d)r] mod n
= (1+d)-1[(b1k2 + k1b2) - rd] mod n
= (1+d)-1(k-rd) mod n
在通信双方通信过程中,通信双方的子私钥敏感信息得到了保护,第一通信方和第二通信方都不能得到对方的子私钥,也无法由己方生成和获得的参数计算得到私钥d。这样可以保证私钥是安全的,从而保证密码算法的安全性。
基于与上述方法同样的发明构思,本发明还提供了所述基于SM2算法的通信双方协同解密方法的一个实施例,如图2所示。所述方法涉及第一通信方和第二通信方,所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;设密文结构为C1||C2||C3,其中||表示拼接,所述方法包括以下步骤:
一、产生通信双方各自子私钥和计算公钥阶段
S101、所述第一通信方产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;
S102、所述第一通信方根据D1和G计算得到椭圆曲线点P1=[D1]G,把P1发送给所述第二通信方;
S103、所述第二通信方产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;
S104、所述第二通信方根据D2、P1和G计算得到公钥 P=P1+[D2]G+[D2]P1,并公开所述公钥;
二、通信双方协同解密阶段
S201、所述第一通信方从密文结构中取出C1,将C1的数据类型转换为椭圆曲线E上的点;若C1是无穷远点,则报错并退出;
S202、所述第一通信方根据C1、D1计算椭圆曲线点Q1=D1C1 mod n,并把C1、Q1发送给所述第二通信方;
S203、所述第二通信方根据C1、D2和Q1计算Q2=(D2C1+D2Q1)mod n,并将Q2发送给所述第一通信方;
S204、所述第一通信方根据Q1和Q2计算椭圆曲线点Q=Q1+Q2,Q的坐标为(x2,y2);然后计算t=KDF(x2||y2,klen),其中KDF( )为密钥派生函数,klen为密文中C2的比特长度;若t为全0的比特串,则报错并退出;
密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。
S205、所述第一通信方从密文结构中取出C2,计算M’=C2⊕t;
⊕表示长度相等的两个比特串按比特的异或运算。
S206、所述第一通信方根据M’和x2、y2计算u=Hash(x2||M’||y2),并从密文中取出C3, 其中Hash( )是密码杂凑函数;若u≠C3,则报错并退出;
S207:所述第一通信方输出明文M’。
要证明解密的正确性,只需要证明Q =(x2,y2)= dC1
由Q = Q1+ Q2
= D1C1 + D2C1 + D2Q1
= D1C1 + D2C1+ D2D1C1
= (D1 + D2 + D1D2)C1
= dC1 ,即可得证。
基于与上述方法同样的发明构思,本发明还提供了所述基于SM2算法的通信双方协同签名系统的一个实施例,如图3所示。该系统包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块和第一通信模块,所述第二通信方包括第二密码运算模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述第一通信方和所述第二通信方产生各自子私钥和计算公钥,在需要签名时进行通信双方协同签名;
所述第一通信方和所述第二通信方产生各自子私钥和计算公钥的过程包括:
所述第一通信方通过所述第一密码运算模块产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;然后计算椭圆曲线点P1=[D1]G,再通过所述第一通信模块把P1发送给所述第二通信方;
所述第二通信方通过第二通信模块接收P1,通过所述第二密码运算模块产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;然后计算得到公钥 P=P1+[D2]G+[D2]P1,并通过第二通信模块公开所述公钥;
通信双方协同签名过程包括:
所述第一通信方通过所述第一密码运算模块对待签名消息M使用预定的杂凑函数,得到消息摘要e;然后产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并通过所述第一通信模块将e、W1和k1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收e、W1和k1,由所述第二密码运算模块产生随机数k2,b2∈[1,n-1],根据b2和W1、k1计算得到椭圆曲线点W=[k2]W1+[b2k1]G,W的坐标为(x1,y1);然后根据x1和e计算得到第二部分签名r=(x1+e) mod n,若r=0,则由所述第二密码运算模块重新产生随机数以及计算第二部分签名;
所述第二通信方通过所述第二密码运算模块根据k1、k2、d2、b2和r计算得到第三部分签名s1=(k2d2)mod n,第四部分签名s2=(d2(r+b2k1))mod n,并通过所述第二通信模块将s1、s2、r发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收s1、s2和r,再由所述第一密码运算模块根据b1、d1、s1、s2和r计算s=(b1d1s1+d1s2-r)mod n,若s≠0,则把(r,s)作为协同签名的结果;若s=0,则重新开始通信双方协同签名过程。
如图4所示,本发明还提供所述基于SM2算法的通信双方协同解密系统的一个实施例。该系统包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块和第一通信模块,所述第二通信方包括第二密码运算模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述第一通信方和所述第二通信方产生各自子私钥和计算公钥,在需要解密时进行通信双方协同解密;
所述第一通信方和所述第二通信方产生各自子私钥和计算公钥的过程包括:
所述第一通信方通过所述第一密码运算模块产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;然后计算椭圆曲线点P1=[D1]G,再通过所述第一通信模块把P1发送给所述第二通信方;
所述第二通信方通过第二通信模块接收P1,通过所述第二密码运算模块产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;然后计算得到公钥P=P1+[D2]G+[D2]P1,并通过第二通信模块公开所述公钥;
通信双方协同解密过程包括:
设密文结构为C1||C2||C3,其中||表示拼接,所述第一通信方通过所述第一密码运算模块从密文结构中取出C1,将C1的数据类型转换为椭圆曲线E上的点;若C1是无穷远点,则报错并退出;否则根据C1、D1计算椭圆曲线点Q1=D1C1 mod n,并通过所述第一通信模块把C1、Q1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收C1、Q1,然后通过所述第二密码运算模块计算Q2=(D2C1+D2Q1)mod n,再通过所述第二通信模块把Q2发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收Q2,然后通过所述第一密码运算模块计算椭圆曲线点Q=Q1+Q2,Q的坐标为(x2,y2);再计算t=KDF(x2||y2,klen),其中KDF( )为密钥派生函数,klen为密文中C2的比特长度;若t为全0的比特串,则报错并退出,否则从密文结构中取出C2,计算M’=C2⊕t;然后根据M’和x2、y2计算u=Hash(x2||M’||y2),并从密文中取出C3,其中Hash( )是密码杂凑函数;若u≠C3,则报错并退出,否则第一通信方通过所述第一通信模块输出明文M’。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (6)

1. 一种基于SM2算法的通信双方协同签名方法,其特征在于:所述签名方法涉及第一通信方和第二通信方,所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述协同签名方法包括以下步骤:
一、产生通信双方各自子私钥和计算公钥阶段
S101、所述第一通信方产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;
S102、所述第一通信方根据D1和G计算得到椭圆曲线点P1=[D1]G,把P1发送给所述第二通信方;
S103、所述第二通信方产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;
S104、所述第二通信方根据D2、P1和G计算得到公钥P=P1+[D2]G+[D2]P1,并公开所述公钥;
二、通信双方协同签名阶段
S201、所述第一通信方对待签名消息M使用预定的杂凑函数,得到消息摘要e;
S202、所述第一通信方产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并将e、W1和k1发送给所述第二通信方;
S203、所述第二通信方产生随机数k2,b2∈[1,n-1],根据b2和接收到的W1、k1计算得到椭圆曲线点W=[k2]W1+[b2k1]G,W的坐标为(x1,y1);
S204、所述第二通信方根据x1和e计算得到第二部分签名r=(x1+e) mod n,若r=0,则返回S203;
S205、所述第二通信方根据k1、k2、d2、b2和r计算得到第三部分签名s1=(k2d2)mod n,第四部分签名s2=(d2(r+b2k1))mod n,并将s1、s2、r发送给所述第一通信方;
S206、所述第一通信方根据b1、d1、s1、s2和r计算s = (b1d1s1+d1s2-r)mod n,若s=0,返回S202;
S207、所述第一通信方输出M及其数字签名(r,s)。
2.根据权利要求1所述的基于SM2算法的通信双方协同签名方法,其特征在于,所述D1、D2、k1、k2、b1、b2分别由一个或多个位于[1,n-1]之间的随机数运算得到,所述运算包括线性运算、相乘和求逆。
3.根据权利要求1或2所述的基于SM2算法的通信双方协同签名方法,其特征在于,步骤S201、S202分别为:
S201、所述第一通信方产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并将W1和k1发送给所述第二通信方;
S202、所述第二通信方对待签名消息M使用预定的杂凑函数,得到消息摘要e。
4.一种基于SM2算法的通信双方协同解密方法,其特征在于:所述解密方法涉及第一通信方和第二通信方,所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;设密文结构为C1||C2||C3,其中||表示拼接,所述解密方法包括以下步骤:
一、产生通信双方各自子私钥和计算公钥阶段
S101、所述第一通信方产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;
S102、所述第一通信方根据D1和G计算得到椭圆曲线点P1=[D1]G,把P1发送给所述第二通信方;
S103、所述第二通信方产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;
S104、所述第二通信方根据D2、P1和G计算得到公钥P=P1+[D2]G+[D2]P1,并公开所述公钥;
二、通信双方协同解密阶段
S201、所述第一通信方从密文结构中取出C1,将C1的数据类型转换为椭圆曲线E上的点;若C1是无穷远点,则报错并退出;
S202、所述第一通信方根据C1、D1计算椭圆曲线点Q1=D1C1 mod n,并把C1、Q1发送给所述第二通信方;
S203、所述第二通信方根据C1、D2和Q1计算Q2=(D2C1+D2Q1)mod n,并将Q2发送给所述第一通信方;
S204、所述第一通信方根据Q1和Q2计算椭圆曲线点Q=Q1+Q2,Q的坐标为(x2,y2);然后计算t=KDF(x2||y2,klen),其中KDF( )为密钥派生函数,klen为密文中C2的比特长度;若t为全0的比特串,则报错并退出;
S205、所述第一通信方从密文结构中取出C2,计算M’=C2⊕t;
S206、所述第一通信方根据M’和x2、y2计算u=Hash(x2||M’||y2),并从密文中取出C3, 其中Hash( )是密码杂凑函数;若u≠C3,则报错并退出;
S207:所述第一通信方输出明文M’。
5.一种基于SM2算法的通信双方协同签名系统,其特征在于,包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块和第一通信模块,所述第二通信方包括第二密码运算模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述第一通信方和所述第二通信方产生各自子私钥和计算公钥,在需要签名时进行通信双方协同签名;
所述第一通信方和所述第二通信方产生各自子私钥和计算公钥的过程包括:
所述第一通信方通过所述第一密码运算模块产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;然后计算椭圆曲线点P1=[D1]G,再通过所述第一通信模块把P1发送给所述第二通信方;
所述第二通信方通过第二通信模块接收P1,通过所述第二密码运算模块产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;然后计算得到公钥P=P1+[D2]G+[D2]P1,并通过第二通信模块公开所述公钥;
通信双方协同签名过程包括:
所述第一通信方通过所述第一密码运算模块对待签名消息M使用预定的杂凑函数,得到消息摘要e;然后产生随机数k1,b1∈[1,n-1],根据b1和G生成第一部分签名W1=[b1]G,并通过所述第一通信模块将e、W1和k1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收e、W1和k1,由所述第二密码运算模块产生随机数k2,b2∈[1,n-1],根据b2和W1、k1计算得到椭圆曲线点W=[k2]W1+[b2k1]G,W的坐标为(x1,y1);然后根据x1和e计算得到第二部分签名r=(x1+e) mod n,若r=0,则由所述第二密码运算模块重新产生随机数以及计算第二部分签名;
所述第二通信方通过所述第二密码运算模块根据k1、k2、d2、b2和r计算得到第三部分签名s1=(k2d2)mod n,第四部分签名s2=(d2(r+b2k1))mod n,并通过所述第二通信模块将s1、s2、r发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收s1、s2和r,再由所述第一密码运算模块根据b1、d1、s1、s2和r计算s=(b1d1s1+d1s2-r)mod n,若s≠0,所述第一通信方通过所述第一通信模块输出M及其数字签名(r,s);若s=0,则重新开始通信双方协同签名过程。
6.一种基于SM2算法的通信双方协同解密系统,其特征在于,包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块和第一通信模块,所述第二通信方包括第二密码运算模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;所述第一通信方和所述第二通信方产生各自子私钥和计算公钥,在需要解密时进行通信双方协同解密;
所述第一通信方和所述第二通信方产生各自子私钥和计算公钥的过程包括:
所述第一通信方通过所述第一密码运算模块产生随机数D1∈[1,n-1],把d1=(1+D1)-1作为所述第一通信方的子私钥,其中(1+D1)-1表示1+D1的逆元(1+D1)-1mod n;然后计算椭圆曲线点P1=[D1]G,再通过所述第一通信模块把P1发送给所述第二通信方;
所述第二通信方通过第二通信模块接收P1,通过所述第二密码运算模块产生随机数D2∈[1,n-1],把d2=(1+D2)-1作为所述第二通信方的子私钥,其中(1+D2)-1表示1+D2的逆元(1+D2)-1mod n;然后计算得到公钥P=P1+[D2]G+[D2]P1,并通过第二通信模块公开所述公钥;
通信双方协同解密过程包括:
设密文结构为C1||C2||C3,其中||表示拼接,所述第一通信方通过所述第一密码运算模块从密文结构中取出C1,将C1的数据类型转换为椭圆曲线E上的点;若C1是无穷远点,则报错并退出;否则根据C1、D1计算椭圆曲线点Q1=D1C1 mod n,并通过所述第一通信模块把C1、Q1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收C1、Q1,然后通过所述第二密码运算模块计算Q2=(D2C1+D2Q1)mod n,再通过所述第二通信模块把Q2发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收Q2,然后通过所述第一密码运算模块计算椭圆曲线点Q=Q1+Q2,Q的坐标为(x2,y2);再计算t=KDF(x2||y2,klen),其中KDF( )为密钥派生函数,klen为密文中C2的比特长度;若t为全0的比特串,则报错并退出,否则从密文结构中取出C2,计算M’=C2⊕t;然后根据M’和x2、y2计算u=Hash(x2||M’||y2),并从密文中取出C3,其中Hash( )是密码杂凑函数;若u≠C3,则报错并退出,否则第一通信方通过所述第一通信模块输出明文M’。
CN201810799349.4A 2018-07-19 2018-07-19 基于sm2算法的通信双方协同签名及解密方法和系统 Active CN109088726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810799349.4A CN109088726B (zh) 2018-07-19 2018-07-19 基于sm2算法的通信双方协同签名及解密方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810799349.4A CN109088726B (zh) 2018-07-19 2018-07-19 基于sm2算法的通信双方协同签名及解密方法和系统

Publications (2)

Publication Number Publication Date
CN109088726A true CN109088726A (zh) 2018-12-25
CN109088726B CN109088726B (zh) 2021-01-26

Family

ID=64838226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810799349.4A Active CN109088726B (zh) 2018-07-19 2018-07-19 基于sm2算法的通信双方协同签名及解密方法和系统

Country Status (1)

Country Link
CN (1) CN109088726B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
CN110365487A (zh) * 2019-07-19 2019-10-22 北京向芯力科技有限公司 一种基于sm2算法的协同签名方法与装置
CN110505056A (zh) * 2019-07-19 2019-11-26 北京向芯力科技有限公司 一种支持可信显示的协同签名方法和装置
CN110601841A (zh) * 2019-11-01 2019-12-20 成都卫士通信息产业股份有限公司 Sm2协同签名及解密方法、装置
CN110943828A (zh) * 2019-11-05 2020-03-31 武汉理工大学 秘密数运算转换方法及系统
CN110971405A (zh) * 2019-12-06 2020-04-07 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN111130804A (zh) * 2019-12-27 2020-05-08 上海市数字证书认证中心有限公司 一种基于sm2算法的协同签名方法及装置、系统、介质
CN111314089A (zh) * 2020-02-18 2020-06-19 数据通信科学技术研究所 一种基于sm2的两方协同签名方法及解密方法
CN111355582A (zh) * 2020-03-03 2020-06-30 成都天瑞芯安科技有限公司 基于sm2算法的两方联合签名和解密的方法及系统
CN111447065A (zh) * 2019-01-16 2020-07-24 中国科学院软件研究所 一种主动安全的sm2数字签名两方生成方法
CN112131596A (zh) * 2020-09-30 2020-12-25 北京海泰方圆科技股份有限公司 加解密方法、设备及存储介质
CN112311549A (zh) * 2020-03-26 2021-02-02 神州融安科技(北京)有限公司 生成或协助签名方法、装置、系统、电子设备及存储介质
CN112713989A (zh) * 2019-10-25 2021-04-27 航天信息股份有限公司 一种解密方法及装置
CN112910645A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于椭圆曲线的分布式协同解密方法
CN113158258A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和系统
CN113300841A (zh) * 2021-05-25 2021-08-24 贵州大学 一种基于身份的协同签名方法及系统
CN113630240A (zh) * 2020-05-09 2021-11-09 成都天瑞芯安科技有限公司 拟态安全密码计算模型
CN113765670A (zh) * 2020-06-03 2021-12-07 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN113630240B (zh) * 2020-05-09 2024-04-26 成都天瑞芯安科技有限公司 一种拟态安全密码计算系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025500A1 (en) * 2005-01-24 2008-01-31 Fujitsu Limited Cryptographic device having tamper resistance to power analysis attack
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和系统
US9430655B1 (en) * 2012-12-28 2016-08-30 Emc Corporation Split tokenization
CN106506156A (zh) * 2016-12-15 2017-03-15 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
CN106685651A (zh) * 2016-12-22 2017-05-17 北京信安世纪科技有限公司 一种客户端和服务端协作生成数字签名的方法
CN106850198A (zh) * 2017-01-16 2017-06-13 武汉理工大学 基于多装置协同的sm2数字签名生成方法及系统
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025500A1 (en) * 2005-01-24 2008-01-31 Fujitsu Limited Cryptographic device having tamper resistance to power analysis attack
US9430655B1 (en) * 2012-12-28 2016-08-30 Emc Corporation Split tokenization
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和系统
CN106506156A (zh) * 2016-12-15 2017-03-15 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
CN106685651A (zh) * 2016-12-22 2017-05-17 北京信安世纪科技有限公司 一种客户端和服务端协作生成数字签名的方法
CN106850198A (zh) * 2017-01-16 2017-06-13 武汉理工大学 基于多装置协同的sm2数字签名生成方法及系统
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尚铭 等: ""SM2椭圆曲线门限密码算法"", 《密码学报》 *

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111447065A (zh) * 2019-01-16 2020-07-24 中国科学院软件研究所 一种主动安全的sm2数字签名两方生成方法
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
CN109672539B (zh) * 2019-03-01 2021-11-05 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
CN110365487A (zh) * 2019-07-19 2019-10-22 北京向芯力科技有限公司 一种基于sm2算法的协同签名方法与装置
CN110505056A (zh) * 2019-07-19 2019-11-26 北京向芯力科技有限公司 一种支持可信显示的协同签名方法和装置
CN112713989A (zh) * 2019-10-25 2021-04-27 航天信息股份有限公司 一种解密方法及装置
CN112713989B (zh) * 2019-10-25 2023-01-24 航天信息股份有限公司 一种解密方法及装置
CN110601841A (zh) * 2019-11-01 2019-12-20 成都卫士通信息产业股份有限公司 Sm2协同签名及解密方法、装置
CN110601841B (zh) * 2019-11-01 2022-06-14 成都卫士通信息产业股份有限公司 Sm2协同签名及解密方法、装置
CN110943828A (zh) * 2019-11-05 2020-03-31 武汉理工大学 秘密数运算转换方法及系统
CN110971405A (zh) * 2019-12-06 2020-04-07 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN110971405B (zh) * 2019-12-06 2022-06-14 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN111130804A (zh) * 2019-12-27 2020-05-08 上海市数字证书认证中心有限公司 一种基于sm2算法的协同签名方法及装置、系统、介质
CN111130804B (zh) * 2019-12-27 2022-09-06 上海市数字证书认证中心有限公司 一种基于sm2算法的协同签名方法及装置、系统、介质
CN111314089A (zh) * 2020-02-18 2020-06-19 数据通信科学技术研究所 一种基于sm2的两方协同签名方法及解密方法
CN111314089B (zh) * 2020-02-18 2023-08-08 数据通信科学技术研究所 一种基于sm2的两方协同签名方法及解密方法
CN111355582A (zh) * 2020-03-03 2020-06-30 成都天瑞芯安科技有限公司 基于sm2算法的两方联合签名和解密的方法及系统
CN112311549A (zh) * 2020-03-26 2021-02-02 神州融安科技(北京)有限公司 生成或协助签名方法、装置、系统、电子设备及存储介质
CN113630240A (zh) * 2020-05-09 2021-11-09 成都天瑞芯安科技有限公司 拟态安全密码计算模型
CN113630240B (zh) * 2020-05-09 2024-04-26 成都天瑞芯安科技有限公司 一种拟态安全密码计算系统
CN113765670A (zh) * 2020-06-03 2021-12-07 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN113765670B (zh) * 2020-06-03 2024-01-26 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN112131596B (zh) * 2020-09-30 2021-11-09 北京海泰方圆科技股份有限公司 加解密方法、设备及存储介质
CN112131596A (zh) * 2020-09-30 2020-12-25 北京海泰方圆科技股份有限公司 加解密方法、设备及存储介质
CN113158258A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和系统
CN113158258B (zh) * 2021-03-31 2022-02-11 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和系统
CN112910645A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于椭圆曲线的分布式协同解密方法
CN113300841B (zh) * 2021-05-25 2022-11-25 贵州大学 一种基于身份的协同签名方法及系统
CN113300841A (zh) * 2021-05-25 2021-08-24 贵州大学 一种基于身份的协同签名方法及系统

Also Published As

Publication number Publication date
CN109088726B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
CN109088726A (zh) 基于sm2算法的通信双方协同签名及解密方法和系统
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
CN108989047A (zh) 一种基于sm2算法的通信双方协同签名方法与系统
CN104038341B (zh) 一种基于身份的跨系统代理重加密方法
CN109274503A (zh) 分布式协同签名方法及分布式协同签名装置、软盾系统
CN106961336A (zh) 一种基于sm2算法的密钥分量托管方法和系统
CN107483212A (zh) 一种双方协作生成数字签名的方法
CN106603496B (zh) 一种数据传输的保护方法、智能卡、服务器及通信系统
CN102118710A (zh) 手机终端之间数据传输系统及其传输方法
CN107425971B (zh) 无证书的数据加/解密方法和装置、终端
CN103138938A (zh) 基于csp的sm2证书申请及应用方法
US6640303B1 (en) System and method for encryption using transparent keys
CN107682151A (zh) 一种gost数字签名生成方法及系统
US9088419B2 (en) Keyed PV signatures
US7894608B2 (en) Secure approach to send data from one system to another
CN107172043A (zh) 一种基于同态加密的智能电网用户售电方法
CN113468582A (zh) 一种抗量子计算加密通信方法
CN113849831A (zh) 一种基于sm2算法的两方协同签名和解密方法及系统
Nagaraj et al. Image security using ECC approach
CN106211108A (zh) 一种基于rsa公钥的短信加密方法
Suo et al. Encryption technology in information system security
DE MEL Cryptography Techniques for Software Security
CN113746829B (zh) 多源数据的关联方法、装置、设备及存储介质
Anand et al. AECC: An Enhanced Public Key Cryptosystem for User Defined Messages
Chida et al. Privacy preserving computations without public key cryptographic operation

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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Collaborative Signature and Decryption Method and System for Communication Parties Based on SM2 Algorithm

Granted publication date: 20210126

Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch

Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2024980007004