CN109450640B - 基于sm2的两方签名方法及系统 - Google Patents

基于sm2的两方签名方法及系统 Download PDF

Info

Publication number
CN109450640B
CN109450640B CN201811243198.0A CN201811243198A CN109450640B CN 109450640 B CN109450640 B CN 109450640B CN 201811243198 A CN201811243198 A CN 201811243198A CN 109450640 B CN109450640 B CN 109450640B
Authority
CN
China
Prior art keywords
party
private key
communication
sub
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811243198.0A
Other languages
English (en)
Other versions
CN109450640A (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.)
China Electronics Technology Network Security Technology Co ltd
Original Assignee
Chengdu Westone Information Industry Inc
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 Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201811243198.0A priority Critical patent/CN109450640B/zh
Publication of CN109450640A publication Critical patent/CN109450640A/zh
Application granted granted Critical
Publication of CN109450640B publication Critical patent/CN109450640B/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/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
    • 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

Abstract

本发明涉及信息安全技术领域,实施例公开一种基于SM2的两方签名方法及系统。采用本公开的技术方案,可在通信两方分别存储部分私钥,两方联合才能对消息进行签名或者解密等操作,通信两方均无法获取到对方私钥的任何信息,因此攻击者在入侵其中任一方的情况下,都不能伪造签名或解密密文,并且在签名交互中,通信两方仅需要传递给对方两个数据,数据通信量和数据运算量较低,签名效率较高。

Description

基于SM2的两方签名方法及系统
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于SM2的两方签名方法及系统。
背景技术
一般情况下,运行密码算法时需要调用完整的密钥信息,所以需要密钥直接存储在内存中。而在防护能力较弱的终端上,这会增加密钥丢失的风险。例如手机丢失、算法运算过程被窃听等都会导致密钥的丢失,如何能安全地保护弱终端的密钥是密码算法实现中面临的非常重要的问题。
现有的解决方案是采用两方签名的方法,但是普遍存在的问题是整个交互签名运算中,运算量大且通信的数据量也大,降低了签名生成的效率。
发明内容
有鉴于此,本公开提供一种基于SM2的两方签名方法及系统,能够解决或者至少部分解决上述存在的问题。
为解决以上技术问题,本发明提供的技术方案是一种基于SM2的两方签名方法,第一通信方和第二通信方共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n,所述方法包括:
第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方;
所述第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给所述第一通信方;
所述第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
可选的,在所述第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方的步骤前,还包括:第一通信方生成自身的子私钥d1,第二通信方生成自身的子私钥d2
其中,所述第一通信方生成自身的子私钥d1,所述第二通信方生成自身的子私钥d2的方法,包括:
所述第一通信方产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn;
所述第二通信方产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;
其中,Hash()表示预定的密码杂凑函数,mod表示求模运算。
可选的,所述方法还包括:
所述第一通信方根据d1计算第三参数Q1=[d1 -1]G,将Q1发送给所述第二通信方;
所述第二通信方根据d2和Q1计算P=[d2 -1]Q1-G,将P作为公钥公开;
其中,[*]G表示椭圆曲线上的倍点运算。
可选的,所述第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方的方法,包括:
所述第一通信方计算待签名的消息M的摘要e=Hash(Z||M),其中,Z表示第一通信方和第二通信方共同的身份标识,Hash()表示预定的密码杂凑函数,||表示级联;
所述第一通信方产生一个随机数k1,k1∈[1,n-1],计算第一参数G1=[d1 -1k1]G;
所述第一通信方将e和G1发送给第二通信方。
可选的,所述第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给第一通信方的方法,包括:
所述第二通信方产生一个随机数k2,k2∈[1,n-1],计算(x1,y1)=[d2 -1k2]G+[d2 -1]G1,再计算第一部分签名r=(x1+e)modn;
所述第二通信方若判断r不等于0,则计算第二参数s1=d2r+k2
所述第二通信方将r和s1发送给所述第一通信方。
可选的,所述第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M的方法,包括:
所述第一通信方计算第二部分签名s=d1s1+k1-r;
所述第一通信方若判断s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
本发明还提供一种基于SM2的两方签名系统,包括第一通信装置和第二通信装置;所述第一通信装置,包括
第一计算输出模块,用于生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信装置;
第三计算输出模块,用于根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M;
第一共享模块,用于与第二通信装置共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n;
所述第二通信装置,包括
第二计算输出模块,用于根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给所述第一通信装置;
第二共享模块,用于与第一通信装置共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n。
可选的,所述第一通信装置还包括第一子私钥生成模块,用于生成自身的子私钥d1;所述第一子私钥生成模块用于产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn;
所述第二通信装置还包括第二子私钥生成模块,用于生成自身的子私钥d2;所述第二子私钥生成模块用于产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;
所述第一通信装置包括第一共享模块,第二通信装置包括第二共享模块,用于共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n;
其中,Hash()表示预定的密码杂凑函数,mod表示求模运算。
可选的,所述第一子私钥生成模块还用于根据d1计算第三参数Q1=[d1 -1]G,将Q1发送给第二通信装置;所述第二子私钥生成模块还用于根据d2和Q1计算
P=[d2 -1]Q1-G,将P作为公钥公开;其中,[*]G表示椭圆曲线上的倍点运算。
可选的,所述第一计算输出模块还用于:
计算待签名的消息M的摘要e=Hash(Z||M),其中,Z表示第一通信装置和第二通信装置共同的身份标识,Hash()表示预定的密码杂凑函数,||表示级联;
产生一个随机数k1,k1∈[1,n-1],计算第一参数G1=[d1 -1k1]G;
将e和G1发送给所述第二通信装置。
可选的,所述第二计算输出模块还用于:
产生一个随机数k2,k2∈[1,n-1],计算(x1,y1)=[d2 -1k2]G+[d2 -1]G1,再计算第一部分签名r=(x1+e)modn;
若判断r不等于0,则计算第二参数s1=d2r+k2
将r和s1发送给所述第一通信装置。
可选的,所述第三计算输出模块还用于:
计算第二部分签名s=d1s1+k1-r;
若判断s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
本公开与现有技术相比,其有益效果详细说明如下:采用本发明的技术方案,可在通信两方分别存储部分私钥,两方联合才能对消息进行签名或者解密等操作,通信两方均无法获取到对方私钥的任何信息,因此攻击者在入侵其中任一方的情况下,都不能伪造签名或解密密文,并且在签名交互中,通信两方都仅需要传递给对方两个数据,数据通信量和数据运算量较低,签名效率较高。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于SM2的两方签名方法实施例的流程示意图;
图2为本发明第一通信方和第二通信方生成各自的子私钥和公钥的过程示意图;
图3为本发明第一通信方和第二通信方生成待签名消息M的完整签名的过程示意图;
图4为本发明基于SM2的两方签名系统实施例的结构示意图;
图5为本发明基于SM2的两方签名系统另一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
如图1所示,本发明实施例提供了一种基于SM2的两方签名方法,第一通信方和第二通信方共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n,该方法包括:
11:第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方;
12:第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给第一通信方;
13:第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
这里,采用上述实施例的技术方案,可在通信两方分别存储部分私钥,两方联合才能对消息进行签名或者解密等操作,通信两方均无法获取到对方私钥的任何信息,因此攻击者在入侵其中任一方的情况下,都不能伪造签名或解密密文,并且在签名交互中,通信两方都仅需要传递给对方两个数据,数据通信量和数据运算量较低,签名效率较高。
如图2所示,需要说明的是,在步骤11前还可以包括步骤:第一通信方生成自身的子私钥d1,第二通信方生成自身的子私钥d2
其中,第一通信方生成自身的子私钥d1,第二通信方生成自身的子私钥d2的方法,包括:
21:第一通信方产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn。
22:第二通信方产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;
其中,Hash()表示预定的密码杂凑函数,mod表示求模运算。
这里,Hash的输出值是固定长度的比特串,因此需要将输出值转变为小于n的整数才能进行下一步计算。转换的方法很多,这里可以采用简单的用模运算,即将Hash(d1’)的计算结果通过modn运算转换为d1”,将Hash(d2’)的计算结果通过mod n运算转换为d2”。n是椭圆曲线基点G的阶数,是一个固定的大素数,具体取值由所选择的椭圆曲线决定。
需要说明的是,步骤第一通信方生成自身的子私钥d1,第二通信方生成自身的子私钥d2的方法,还可以包括:
23:第一通信方根据d1计算第三参数Q1=[d1 -1]G,将Q1发送给第二通信方;
24:第二通信方根据d2和Q1计算P=[d2 -1]Q1-G;
25:第二通信方将P作为公钥公开;
其中,[*]G表示椭圆曲线上的倍点运算。
这里,步骤23-25是协商生成私钥的方法,该过程明确具体地给出了子私钥d1、d2和私钥的关系,在后面的签名过程的设计方法时需要用到该关系。公钥P是在验证签名时利用,本公开采用的是标准算法SM2签名的验签方法。
如图3所示,需要说明的是,步骤11中第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方的方法,包括:
31:第一通信方计算待签名的消息M的摘要e=Hash(Z||M),其中,Z表示第一通信方和第二通信方共同的身份标识,Hash()表示预定的密码杂凑函数,||表示级联;
32:第一通信方产生一个随机数k1,k1∈[1,n-1],计算第一参数G1=[d1 -1k1]G,其中,[*]G表示椭圆曲线上的倍点运算;
33:第一通信方将e和G1发送给第二通信方。
需要说明的是,步骤12中第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给第一通信方的方法,包括:
34:第二通信方产生一个随机数k2,k2∈[1,n-1],计算(x1,y1)=[d2 -1k2]G+[d2 -1]G1
35:第二通信方计算第一部分签名r=(x1+e)modn,若判断r不等于0,则计算第二参数s1=d2r+k2:,其中,mod表示求模运算,[*]G表示椭圆曲线上的倍点运算;
36:第二通信方将r和s1发送给第一通信方。
需要说明的是,步骤13中第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M的方法,包括:
37:第一通信方计算第二部分签名s=d1s1+k1-r;若判断s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
这里,计算(x1,y1)=[d2 -1k2]G+[d2 -1]G1的目的是将随机数k1,k2和子私钥d1,d2的信息揉合到一起,用于计算签名,在计算第一部分签名r时只需要x1信息就可以。本公开采用的验签的过程与标准算法SM2的验签过程一致。
这里,本公开采用的子私钥d1,d2是由随机数和随机数相关的其哈希值组成所得,获取方法简单高效;在生成签名的整个交互运算过程中,第二通信方仅需要生成一个随机数,整个签名过程仅需要生成两个随机数,降低了生成最终签名所需要的运算量;在签名交互时,第二通信方仅需要返回两个数据给第一通信方,降低了数据通信量和数据计算量,提高了签名生成的效率。具体的,在本实施例的技术方案中,第一通信方仅采用了1次椭圆曲线倍点运算,2次有限域乘法运算,2次有限域加法运算和1次生成随机数运算;第二通信方仅采用2次椭圆曲线倍点运算,1次椭圆曲线点加运算,2次有限域乘法运算,2次有限域加法运算和1次生成随机数运算,与现有技术相比,明显的降低了交互两方的数据通信量和数据计算量,提高了签名生成的效率。
如图4所示,本发明实施例还提供一种基于SM2的两方签名系统,包括第一通信装置41和第二通信装置42;第一通信装置41,包括:
第一计算输出模块411,用于生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信装置42;
第三计算输出模块412,用于根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M;
第一共享模块413,用于与第二通信装置共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n。
第二通信装置42,包括:
第二计算输出模块421,用于根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给第一通信装置41;
第二共享模块422,用于与第一通信装置共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n。
如图5所示,需要说明的是,第一通信装置41还包括第一子私钥生成模块410,用于生成自身的子私钥d1;第一子私钥生成模块410用于产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn;
更具体的,第二通信装置42还包括第二子私钥生成模块420,用于生成自身的子私钥d2,第二子私钥生成模块420用于产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;其中Hash()表示预定的密码杂凑函数,mod表示求模运算。
更具体的,第一子私钥生成模块410还用于根据d1计算第三参数Q1=[d1 -1]G,将Q1发送给第二通信装置;第二子私钥生成模块420还用于根据d2和Q1计算P=[d2 -1]Q1-G,将P作为公钥公开;其中,[*]G表示椭圆曲线上的倍点运算。
更具体的,第一计算输出模块411还用于:计算待签名的消息M的摘要e=Hash(Z||M),其中,Z表示第一通信装置41和第二通信装置42共同的身份标识,Hash()表示预定的密码杂凑函数,||表示级联;产生一个随机数k1,k1∈[1,n-1],计算第一参数G1=[d1 -1k1]G,其中,[*]G表示椭圆曲线上的倍点运算;将e和G1发送给第二通信装置42。
更具体的,第二计算输出模块421还用于:产生一个随机数k2,k2∈[1,n-1],计算(x1,y1)=[d2 -1k2]G+[d2 -1]G1,再计算第一部分签名r=(x1+e)modn,其中,mod表示求模运算,[*]G表示椭圆曲线上的倍点运算;若判断r不等于0,则计算第二参数s1=d2r+k2;将r和s1发送给第一通信装置41。
更具体的,第三计算输出模块412还用于:计算第二部分签名s=d1s1+k1-r;若判断s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
图4和图5所对应实施例中的系统,其中各个装置、模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本申请所公开的内容。

Claims (10)

1.一种基于SM2的两方签名方法,其特征在于,第一通信方和第二通信方共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n,所述方法包括:
第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方,其中,根据G和自身的子私钥d1生成第一参数G1具体包括:所述第一通信方产生一个随机数k1,k1∈[1,n-1],计算第一参数G1=[d1 -1k1]G;
所述第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给所述第一通信方;
所述第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
2.根据权利要求1所述的基于SM2的两方签名方法,其特征在于,在所述第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方的步骤前,还包括:第一通信方生成自身的子私钥d1,第二通信方生成自身的子私钥d2
其中,所述第一通信方生成自身的子私钥d1,所述第二通信方生成自身的子私钥d2的方法,包括:
所述第一通信方产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn;
所述第二通信方产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;
其中,Hash()表示预定的密码杂凑函数,mod表示求模运算。
3.根据权利要求2所述的基于SM2的两方签名方法,其特征在于,所述方法还包括:
所述第一通信方根据d1计算第三参数Q1=[d1 -1]G,将Q1发送给所述第二通信方;
所述第二通信方根据d2和Q1计算P=[d2 -1]Q1-G,将P作为公钥公开;
其中,[*]G表示椭圆曲线上的倍点运算。
4.根据权利要求2或3所述的基于SM2的两方签名方法,其特征在于,所述第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方的方法,包括:
所述第一通信方计算待签名的消息M的摘要e=Hash(Z||M),其中,Z表示第一通信方和第二通信方共同的身份标识,Hash()表示预定的密码杂凑函数,||表示级联;
所述第一通信方将e和G1发送给第二通信方。
5.根据权利要求2或3所述的基于SM2的两方签名方法,其特征在于,所述第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给第一通信方的方法,包括:
所述第二通信方产生一个随机数k2,k2∈[1,n-1],计算(x1,y1)=[d2 -1k2]G+[d2 -1]G1,再计算第一部分签名r=(x1+e)modn;
所述第二通信方若判断r不等于0,则计算第二参数s1=d2r+k2
所述第二通信方将r和s1发送给所述第一通信方。
6.根据权利要求2或3所述的基于SM2的两方签名方法,其特征在于,所述第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M的方法,包括:
所述第一通信方计算第二部分签名s=d1s1+k1-r;
所述第一通信方若判断s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
7.一种基于SM2的两方签名系统,其特征在于,包括第一通信装置和第二通信装置,所述第一通信装置,包括:
第一计算输出模块,用于生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信装置,其中,根据G和自身的子私钥d1生成第一参数G1具体包括:所述第一通信方产生一个随机数k1,k1∈[1,n-1],计算第一参数G1=[d1 -1k1]G;
第三计算输出模块,用于根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M;
第一共享模块,用于与第二通信装置共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n;
所述第二通信装置,包括:
第二计算输出模块,用于根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给所述第一通信装置;
第二共享模块,用于与第一通信装置共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n。
8.根据权利要求7所述的基于SM2的两方签名系统,其特征在于,所述第一通信装置还包括第一子私钥生成模块,用于生成自身的子私钥d1;所述第一子私钥生成模块用于产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn;
所述第二通信装置还包括第二子私钥生成模块,用于生成自身的子私钥d2;所述第二子私钥生成模块用于产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;
其中,Hash()表示预定的密码杂凑函数,mod表示求模运算。
9.根据权利要求8所述的基于SM2的两方签名系统,其特征在于,所述第一子私钥生成模块还用于根据d1计算第三参数Q1=[d1 -1]G,将Q1发送给第二通信装置;所述第二子私钥生成模块还用于根据d2和Q1计算P=[d2 -1]Q1-G,将P作为公钥公开;其中,[*]G表示椭圆曲线上的倍点运算。
10.根据权利要求8或9所述的基于SM2的两方签名系统,其特征在于,所述第一计算输出模块还用于:
计算待签名的消息M的摘要e=Hash(Z||M),其中,Z表示第一通信装置和第二通信装置共同的身份标识,Hash()表示预定的密码杂凑函数,||表示级联;
将e和G1发送给所述第二通信装置。
CN201811243198.0A 2018-10-24 2018-10-24 基于sm2的两方签名方法及系统 Active CN109450640B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811243198.0A CN109450640B (zh) 2018-10-24 2018-10-24 基于sm2的两方签名方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811243198.0A CN109450640B (zh) 2018-10-24 2018-10-24 基于sm2的两方签名方法及系统

Publications (2)

Publication Number Publication Date
CN109450640A CN109450640A (zh) 2019-03-08
CN109450640B true CN109450640B (zh) 2022-05-17

Family

ID=65548471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811243198.0A Active CN109450640B (zh) 2018-10-24 2018-10-24 基于sm2的两方签名方法及系统

Country Status (1)

Country Link
CN (1) CN109450640B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278088A (zh) * 2019-07-18 2019-09-24 广州安研信息科技有限公司 一种sm2协同签名方法
CN111010285B (zh) * 2019-11-25 2023-04-18 武汉大学 一种适用于轻量级客户端的sm2两方协同签名方法及介质
CN110958115B (zh) * 2019-12-03 2022-08-23 成都卫士通信息产业股份有限公司 基于sm9白盒的数字签名装置、方法、存储介质及设备
CN111147246B (zh) * 2020-02-18 2023-08-08 数据通信科学技术研究所 一种基于sm2的多方协同签名方法及系统
CN111314089B (zh) * 2020-02-18 2023-08-08 数据通信科学技术研究所 一种基于sm2的两方协同签名方法及解密方法
CN111754233B (zh) * 2020-06-29 2023-11-07 兴唐通信科技有限公司 基于多方签名的电子支付方法和系统
CN115134093B (zh) * 2022-08-30 2022-11-15 北京信安世纪科技股份有限公司 数字签名方法及计算设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和系统
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
CN107124274A (zh) * 2017-05-18 2017-09-01 深圳奥联信息安全技术有限公司 基于sm2的数字签名方法和装置
CN107342855A (zh) * 2017-06-14 2017-11-10 山东同智伟业软件股份有限公司 基于sm2算法的签名方法
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN108667627A (zh) * 2018-07-20 2018-10-16 武汉大学 基于两方协同的sm2数字签名方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015004065A1 (en) * 2013-07-12 2015-01-15 Koninklijke Philips N.V. Electronic signature system
EP2991262A1 (en) * 2014-08-29 2016-03-02 Gemalto SA A method for signing data, corresponding first and second device and system
CN108574571B (zh) * 2017-03-08 2021-12-03 华为技术有限公司 私钥生成方法、设备以及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和系统
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
CN107124274A (zh) * 2017-05-18 2017-09-01 深圳奥联信息安全技术有限公司 基于sm2的数字签名方法和装置
CN107342855A (zh) * 2017-06-14 2017-11-10 山东同智伟业软件股份有限公司 基于sm2算法的签名方法
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN108667627A (zh) * 2018-07-20 2018-10-16 武汉大学 基于两方协同的sm2数字签名方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SM2椭圆曲线门限密码算法;尚铭等;《密码学报》;20140415;全文 *
一种基于SM2的远程密钥管理系统分析与设计;李恒武等;《网络安全技术与应用》;20180915(第09期);全文 *

Also Published As

Publication number Publication date
CN109450640A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN109450640B (zh) 基于sm2的两方签名方法及系统
CN108667626B (zh) 安全的两方协作sm2签名方法
US9172529B2 (en) Hybrid encryption schemes
US8429408B2 (en) Masking the output of random number generators in key generation protocols
US6578144B1 (en) Secure hash-and-sign signatures
US8184803B2 (en) Hash functions using elliptic curve cryptography
CN107248909B (zh) 一种基于sm2算法的无证书安全签名方法
Boyd et al. Elliptic curve based password authenticated key exchange protocols
Almajed et al. SE-ENC: A secure and efficient encoding scheme using elliptic curve cryptography
US20210243005A1 (en) Fully homomorphic encryption method and device and computer readable storage medium
WO2016049406A1 (en) Method and apparatus for secure non-interactive threshold signatures
WO2015175365A1 (en) Method and apparatus for generating shorter signatures almost tightly related to standard assumptions
TWI455555B (zh) Authentication device, authentication method, and program
CN113162773A (zh) 一种可证安全的异构盲签密方法
US9722798B2 (en) Digital signature method
CN109831305B (zh) 基于非对称密钥池的抗量子计算签密方法和系统
CA2742530C (en) Masking the output of random number generators in key generation protocols
EP2571192A1 (en) Hybrid encryption schemes
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
CN113872767A (zh) 一种基于ecdsa算法的两方协同签名方法和装置
CN113849831A (zh) 一种基于sm2算法的两方协同签名和解密方法及系统
Li et al. Provably secure and efficient ID-based strong designated verifier signature scheme with message recovery
CN109787772B (zh) 基于对称密钥池的抗量子计算签密方法和系统
US20070033405A1 (en) Enhanced key agreement and transport protocol
US11228589B2 (en) System and method for efficient and secure communications between devices

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee after: China Electronics Technology Network Security Technology Co.,Ltd.

Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc.