CN112422288B - 一种抗能量分析攻击的基于sm2算法的两方协同签名方法 - Google Patents
一种抗能量分析攻击的基于sm2算法的两方协同签名方法 Download PDFInfo
- Publication number
- CN112422288B CN112422288B CN202011156120.2A CN202011156120A CN112422288B CN 112422288 B CN112422288 B CN 112422288B CN 202011156120 A CN202011156120 A CN 202011156120A CN 112422288 B CN112422288 B CN 112422288B
- Authority
- CN
- China
- Prior art keywords
- communication party
- signature
- elliptic curve
- party
- user
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明属于密码技术领域,尤其涉及一种抗能量分析攻击的基于SM2算法的两方协同签名方法。本发明方法包括以下步骤:1)签名参数初始化;2)通信双方生成子密钥和用户公钥;3)生成协同签名。本发明中的协同双方与用户协定协同签名过程中使用的公开参数;协同双方各自生成和存储SM2子密钥,并协同生成用户公钥;协同双方共同完成消息签名;任何一方无法获取对方的子私钥,提升了SM2签名私钥的安全性。相比于已有的基于SM2算法的协同签名方案,本发明方法的优点是:1)增加了对签名参数、用户公钥和签名结果的校验,保证了协同签名的有效性;2)生成的协同签名结果可有效抵抗能量分析攻击。
Description
技术领域
本发明属于密码技术领域,尤其涉及一种抗能量分析攻击的基于SM2算法的两方协同签名方法。
背景技术
SM2算法由国家密码管理局发布的一种椭圆曲线公钥密码算法,可用于加解密和数字签名,在生产实际中具有较高的应用价值。标准算法的细节可参考《GM/T 0003-2012SM2椭圆曲线公钥密码算法》。但SM2算法只适用于单方签名,易受到私钥泄露、单点失效等安全问题。对此,协同签名方案可以有效提升私钥的安全性。协同签名方案中的任何一个协同方都不能拥有或者恢复出完整的签名私钥,只能使用各自的子密钥生成子签名,多个子签名最终合成为完整的签名,同时验签所用的公钥也由协同签名参与方共同生成。
SM2算法是由我国自主设计,由国家密码管理局发布的一种椭圆曲线公钥密码算法,可用于加解密和数字签名,在生产实际中具有较高的应用价值。标准算法的细节可参考《GM/T 0003-2012SM2椭圆曲线公钥密码算法》。现将标准SM2算法数字签名方法简述如下:
1、产生SM2算法参数(n,q,Fq,E,G)
(1-1)n和q是两个长度满足通信安全要求的大素数;
(1-2)Fq是一个含有q个元素的有限域;
(1-3)E是定义Fq上的一条椭圆曲线;
(1-4)G是E上的一个阶为n的基点。
2、产生SM2算法密钥
(2-1)签名方随机生成SM2签名私钥d∈[1,n-2];
(2-2)计算SM2签名公钥P=d[*]G,其中“[*]”表示椭圆曲线上的点乘运算。
3、签名方生成SM2算法数字签名
(3-1)随机选取k∈[1,n-1];
(3-2)计算k*G=(x1,y1)
(3-3)计算r=e+x1 mod n,其中e=H(m)是待签名消息m的密码杂凑值,“+”是有限域上的加法运算,mod是有限域上的求模运算。若r不等于0且r+k不等于n,则进行步骤(3-4)继续执行;若r等于0或r+k等于n,则返回(3-1)重新执行;
(3-4)计算s=1+d-1k-rd mod n,其中d-1是签名私钥d在Fq上的逆元,“-”是有限域上的减法运算,mod是有限域上的求模运算。若s不等于0,则将(r,s)作为签名结果输出;若s等于0,则返回(3-1)重新执行。
4、验证方验证SM2算法数字签名
(4-2)计算(x1’,y1’)=s[*]G[+]s[*]P[+]r,其中“[*]”表示椭圆曲线上的点乘运算,“[+]”表示椭圆曲线上的加法运算;
(4-3)计算r’=e’+x1’mod n,其中e’=H(m’)是待签名消息m’的密码杂凑值,mod是有限域上的求模运算。
(4-4)判断r与r’是否相等,若r等于r’,则签名验证通过;若r不等于r’,则验签失败。
但SM2算法只适用于单方签名,易受到私钥泄露、单点失效等安全问题。对此,协同签名方案可以有效提升私钥的安全性。协同签名方案中的任何一个协同方都不能拥有或者恢复出完整的签名私钥,只能使用各自的子密钥生成子签名,多个子签名最终合成为完整的签名,同时验签所用的公钥也由协同签名参与方共同生成。
但同类基于SM2算法的协同数字签名方法中的签名计算过程易受到能量分析攻击。能量分析攻击是一种侧信道攻击的方法,通过观测和分析加密模块或密码芯片等密码设备在执行加/解密操作的能量功耗恢复设备内部的秘密信息,对各类密码算法的实际应用安全造成了严重威胁。在已有同类方法中,第二通信方的子私钥总与一个可公开的值相乘,再与一些公开确定值相加,攻击者可以通过积累一定数量的数字签名,并通过分析与子私钥相乘的乘数因子的差值,推测出第二通信方的子私钥,存在很大的安全隐患。
另一方面,同类基于SM2算法的协同数字签名方法或***中缺少对***参数、签名参数和签名结果正确性的验证和确认,存在参数生成错误导致签名算法失败或签名无效的问题。
发明内容
本发明的目的是提出一种抗能量分析攻击的基于SM2算法的两方协同签名方法,针对现有技术中的不足,现有的签名方法进行改进,以有效抵御能量分析攻击。同时,保证协同签名过程中使用的参数的正确性和签名结果的有效性,一定程度上提升基于SM2算法的两方协同签名方法的安全性。
本发明提出的抗能量分析攻击的基于SM2的两方协同签名方法,包括以下步骤:
(1)用户A、第一通信方和第二通信方共同商议产生签名过程所需的公开参数,所述的公开参数包括SM2算法的椭圆曲线相关参数q、Fq、E、G、n和一个消息摘要长度为v比特的安全密码杂凑函数Hv(),其中n和q是两个长度满足通信安全要求的大素数,Fq是一个包含q个元素的有限域,E是定义Fq上的一条椭圆曲线,G是阶为n的椭圆曲线上的一个基点;
(2)第一通信方和第二通信方分别生成各自子密钥并协同生成用户A的公钥,包括以下步骤:
(2-1)第一通信方利用随机数发生器生成一个随机数d1,d1∈[1,n-1],并将该随机数d1作为第一通信方的子私钥,根据随机数d1,计算椭圆曲线点P1,P1=d1[*]G,将椭圆曲线点P1作为第一通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第一通信方的密钥对(d1,P1),第一通信方将子公钥P1发送给第二通信方;
(2-2)第二通信方利用随机数发生器产生随机数d2,d2∈[1,n-1],并将该随机数d2作为第二通信方的子私钥,根据随机数d2,计算椭圆曲线点P2,P2=d2[*]G,将椭圆曲线点P2作为第二通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第二通信方的密钥对(d2,P2);同时第二通信方根据随机数d2和来自第一通信方的子公钥P1,计算椭圆曲线上的一个点PA',PA'=d2[*]P1-G,其中“[*]”表示椭圆曲线上的点乘运算,“-”表示椭圆曲线上的减法运算,第二通信方将子公钥P2和PA'发送给第一通信方;
(2-3)第一通信方根据步骤(2-1)的子私钥d1和步骤(2-2)中的来自第二通信方的子公钥P2,计算椭圆曲线上的一个点PA,PA=d1[*]P2[-]G,其中“[*]”表示椭圆曲线上的点乘运算,“[-]”表示椭圆曲线上的减法运算;第一通信方对来自第二通信方的PA'进行验证,若PA等于PA',则将PA作为用户A的公钥,若PA不等于PA',则用户A的公钥生成失败;
(3)第一通信方和第二通信方进行协同签名,包括以下步骤:
(3-1)第一通信方计算用户A的待签名消息M的消息摘要e,e=Hv(ZA||M),其中||表示连接操作,Hv()为步骤(1)中选定的消息摘要长度为v比特的安全密码杂凑函数。;
(3-2)第一通信方用随机数发生器产生随机数k1,k1∈[1,n-1],并根据第二通信方公钥P2和随机数k1计算椭圆曲线上的点Q1,Q1=k1[*]P2,其中“[*]”表示椭圆曲线上的点乘运算,第一通信方将步骤(3-1)的用户A的待签名消息M的消息摘要e和Q1发送给第二通信方;
(3-3)第二通信方对来自第一通信方的Q1进行验证,若Q1满足与用户A、第一通信方和第二通信方在步骤(1)共同商议选定的椭圆曲线方程时,进行步骤(3-4),若Q1不满足步骤(1)选定的椭圆曲线方程,则协同签名失败;
(3-4)第二通信方用随机数发生器产生随机数k2,k2∈[1,n-1],根据用户A、第一通信方和第二通信方共同商议选定的基点G、随机数k2和来自第一通信方的Q1,计算椭圆曲线点(x1,y1),(x1,y1)=k2[*]G[+]Q1,其中“[*]”表示椭圆曲线上的点乘运算,“[+]”表示椭圆曲线上的加法运算;
(3-5)第二通信方根据来自第一通信方的用户A的待签名消息M的消息摘要e和步骤(3-4)的椭圆曲线点坐标x1,并按GB/T 32918.1-2016第1部分4.2.8规定的方法,将x1数据类型(如字符串、字节串、比特串等)转换为整数,计算部分签名r,r=e+x1 mod n,其中“+”表示有限域上的加法运算,mod表示有限域上的求模运算;
(3-6)第二通信方根据第二通信方的子私钥d2,计算d2在Fq上的逆元d2 -1,第二通信方根据d2 -1、步骤(3-5)的部分签名值r和本步骤的k2计算签名中间值s1,s1=d2 -1×(r+k2)mod n,其中“×”表示有限域上的数乘运算,“+”表示有限域上的加法运算,mod表示有限域上的求模运算,第二通信方根据步骤(3-4)的k2对r的有效性进行验证,若r不等于0且r+k2不等于n,则第二通信方将部分签名r和签名中间值s1发给第一通信方,进行步骤(3-7),若r等于0或r+k2等于n,则协同签名失败;
(3-7)第一通信方根据步骤(3-2)的k1对来自第二通信方的s1进行验证,若k1+s1不等于n,则进行步骤(3-7),若k1+s1等于n,则协同签名失败,其中“+”表示有限域上的加法运算;
(3-8)第一通信方根据第一通信方的子私钥d1,计算d1在Fq上的逆元d1 -1,根据d1 -1、步骤(3-2)选取的k1以及来自第二通信方的s2,计算s,s=d1 -1×(k1+s1)-r mod n,其中“×”表示有限域上,的数乘运算,“+”表示有限域上的加法运算,“-”表示有限域上的减法运算,mod表示有限域上的求模运算,并对s进行验证,若s不等于0且s+r不等于n,则进行步骤(3-8),若s等于0或s+r等于n,则协同签名失败;
(3-9)第一通信方使用用户A的公钥PA,对签名结果(r,s)进行验证,若(r,s)是用户A待签名消息M的签名,则输出协同签名结果(r,s),若(r,s)不是用户A待签名消息M的签名,则协同签名失败。
上述两方协同签名方法,ZA是一个关于用户A的可辨别标识(如身份证号、手机号、邮箱或社会统一信任符)、部分步骤(1)中选定的椭圆曲线***参数和用户A的公钥PA的杂凑值。
本发明提出的抗能量分析攻击的基于SM2的两方协同签名方法,其特点和优点是:
1、本发明的签名方法与现有基于SM2协同签名方法对比,本发明方法可有效抵御能量分析攻击。本发明在支持待签名消息确认的协同签名工作模式中的步骤(3-10)中的部分签名s的计算中,算式由s=k1+d1 -1×s2-r mod n变为s=d1 -1×(k1+s2)-r mod n。由于k1不变,r和s2是公开参数,因此第一通信方子私钥d1易受到能量分析攻击。改动后的第一通信方子私钥d1 -1始终与一个变化值相乘,因此可以有效抵御能量分析攻击。
同理,本发明在支持隐私保护的协同签名工作模式中的部分签名s生成中的s也做了相似的改变,能够有效抵御能量分析攻击。
2、本发明签名方法增加了确认签名参数的步骤。本发明方法在协同签名密钥生成过程中增加了第一通信方对用户A公钥PA的验证,在协同签名生成过程中增加了对部分签名和签名中间值有效性的确认,确保后续了数字签名的正确性和有效性。
3、本发明的签名方法增加了验证签名结果的步骤。在协同签名生成过程中增加了第一通信方使用用户A的公钥PA对协同签名结果(r,s)进行验证,保证了签名过程的正确性和有效性。
附图说明
图1为本发明方法中第一通信方和第二通信方生成子密钥和用户公钥流程图。
图2为本方明方法中的协同签名的流程图。
具体实施方式
本发明提出的抗能量分析攻击的基于SM2的两方协同签名方法,包括以下步骤:
(1)用户A、第一通信方和第二通信方共同商议产生签名过程所需的公开参数,所述的公开参数包括SM2算法的椭圆曲线相关参数q、Fq、E、G、n和一个消息摘要长度为v比特的安全密码杂凑函数Hv(),其中n和q是两个长度满足通信安全要求的大素数,Fq是一个包含q个元素的有限域,E是定义Fq上的一条椭圆曲线,G是阶为n的椭圆曲线上的一个基点;
(2)第一通信方和第二通信方分别生成各自子密钥并协同生成用户A的公钥,其流程图如图1所示,包括以下步骤:
(2-1)第一通信方利用随机数发生器生成一个随机数d1,d1∈[1,n-1],并将该随机数d1作为第一通信方的子私钥,根据随机数d1,计算椭圆曲线点P1,P1=d1[*]G,将椭圆曲线点P1作为第一通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第一通信方的密钥对(d1,P1),第一通信方将子公钥P1发送给第二通信方;
(2-2)第二通信方利用随机数发生器产生随机数d2,d2∈[1,n-1],并将该随机数d2作为第二通信方的子私钥,根据随机数d2,计算椭圆曲线点P2,P2=d2[*]G,将椭圆曲线点P2作为第二通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第二通信方的密钥对(d2,P2);同时第二通信方根据随机数d2和来自第一通信方的子公钥P1,计算椭圆曲线上的一个点PA',PA'=d2[*]P1-G,其中“[*]”表示椭圆曲线上的点乘运算,“-”表示椭圆曲线上的减法运算,第二通信方将子公钥P2和PA'发送给第一通信方;
(2-3)第一通信方根据步骤(2-1)的子私钥d1和步骤(2-2)中的来自第二通信方的子公钥P2,计算椭圆曲线上的一个点PA,PA=d1[*]P2[-]G,其中“[*]”表示椭圆曲线上的点乘运算,“[-]”表示椭圆曲线上的减法运算;第一通信方对来自第二通信方的PA'进行验证,若PA等于PA',则将PA作为用户A的公钥,若PA不等于PA',则用户A的公钥生成失败;
(3)第一通信方和第二通信方进行协同签名,其流程图如图2所示,包括以下步骤:
(3-1)第一通信方计算用户A的待签名消息M的消息摘要e,e=Hv(ZA||M),其中ZA是一个关于用户A的可辨别标识(如身份证号、手机号、邮箱或社会统一信任符)、部分步骤(1)中选定的椭圆曲线***参数和用户A的公钥PA的杂凑值,||表示连接操作,Hv()为步骤(1)中选定的消息摘要长度为v比特的安全密码杂凑函数;
(3-2)第一通信方用随机数发生器产生随机数k1,k1∈[1,n-1],并根据第二通信方公钥P2和随机数k1计算椭圆曲线上的点Q1,Q1=k1[*]P2,其中“[*]”表示椭圆曲线上的点乘运算,第一通信方将步骤(3-1)的用户A的待签名消息M的消息摘要e和Q1发送给第二通信方;
(3-3)第二通信方对来自第一通信方的Q1进行验证,若Q1满足与用户A、第一通信方和第二通信方在步骤(1)共同商议选定的椭圆曲线方程时,进行步骤(3-4),若Q1不满足步骤(1)选定的椭圆曲线方程,则协同签名失败;
(3-4)第二通信方用随机数发生器产生随机数k2,k2∈[1,n-1],根据用户A、第一通信方和第二通信方共同商议选定的基点G、随机数k2和来自第一通信方的Q1,计算椭圆曲线点(x1,y1),(x1,y1)=k2[*]G[+]Q1,其中“[*]”表示椭圆曲线上的点乘运算,“[+]”表示椭圆曲线上的加法运算;
(3-5)第二通信方根据来自第一通信方的用户A的待签名消息M的消息摘要e和步骤(3-4)的椭圆曲线点坐标x1,并按GB/T 32918.1-2016第1部分4.2.8规定的方法,将x1数据类型(如字符串、字节串、比特串等)转换为整数,计算部分签名r,r=e+x1 mod n,其中“+”表示有限域上的加法运算,mod表示有限域上的求模运算;
(3-6)第二通信方根据第二通信方的子私钥d2,计算d2在Fq上的逆元d2 -1,第二通信方根据d2 -1、步骤(3-5)的部分签名值r和本步骤的k2计算签名中间值s1,s1=d2 -1×(r+k2)mod n,其中“×”表示有限域上的数乘运算,“+”表示有限域上的加法运算,mod表示有限域上的求模运算,第二通信方根据步骤(3-4)的k2对r的有效性进行验证,若r不等于0且r+k2不等于n,则第二通信方将部分签名r和签名中间值s1发给第一通信方,进行步骤(3-7),若r等于0或r+k2等于n,则协同签名失败;
(3-7)第一通信方根据步骤(3-2)的k1对来自第二通信方的s1进行验证,若k1+s1不等于n,则进行步骤(3-7),若k1+s1等于n,则协同签名失败,其中“+”表示有限域上的加法运算;
(3-8)第一通信方根据第一通信方的子私钥d1,计算d1在Fq上的逆元d1 -1,根据d1 -1、步骤(3-2)选取的k1以及来自第二通信方的s2,计算s,s=d1 -1×(k1+s1)-r mod n,其中“×”表示有限域上,的数乘运算,“+”表示有限域上的加法运算,“-”表示有限域上的减法运算,mod表示有限域上的求模运算,并对s进行验证,若s不等于0且s+r不等于n,则进行步骤(3-8),若s等于0或s+r等于n,则协同签名失败;
(3-9)第一通信方使用用户A的公钥PA,对签名结果(r,s)进行验证,若(r,s)是用户A待签名消息M的签名,则输出协同签名结果(r,s),若(r,s)不是用户A待签名消息M的签名,则协同签名失败。
以上所述,仅为本发明较佳实例,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (3)
1.一种抗能量分析攻击的基于SM2的两方协同签名方法,其特征在于,该方法包括以下步骤:
(1)用户A、第一通信方和第二通信方共同商议产生签名过程所需的公开参数,所述的公开参数包括SM2算法的椭圆曲线相关参数q、Fq、E、G、n和一个消息摘要长度为v比特的安全密码杂凑函数Hv(),其中n和q是两个长度满足通信安全要求的大素数,Fq是一个包含q个元素的有限域,E是定义Fq上的一条椭圆曲线,G是阶为n的椭圆曲线上的一个基点;
(2)第一通信方和第二通信方分别生成各自子密钥并协同生成用户A的公钥,包括以下步骤:
(2-1)第一通信方生成一个随机数d1,d1∈[1,n-1],并将该随机数d1作为第一通信方的子私钥,根据随机数d1,计算椭圆曲线点P1,P1=d1[*]G,将椭圆曲线点P1作为第一通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第一通信方的密钥对(d1,P1),第一通信方将子公钥P1发送给第二通信方;
(2-2)第二通信方产生随机数d2,d2∈[1,n-1],并将该随机数d2作为第二通信方的子私钥,根据随机数d2,计算椭圆曲线点P2,P2=d2[*]G,将椭圆曲线点P2作为第二通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第二通信方的密钥对(d2,P2);同时第二通信方根据随机数d2和来自第一通信方的子公钥P1,计算椭圆曲线上的一个点PA',PA'=d2[*]P1-G,其中“[*]”表示椭圆曲线上的点乘运算,“-”表示椭圆曲线上的减法运算,第二通信方将子公钥P2和PA'发送给第一通信方;
(2-3)第一通信方根据步骤(2-1)的子私钥d1和步骤(2-2)中的来自第二通信方的子公钥P2,计算椭圆曲线上的一个点PA,PA=d1[*]P2[-]G,其中“[*]”表示椭圆曲线上的点乘运算,“[-]”表示椭圆曲线上的减法运算;第一通信方对来自第二通信方的PA'进行验证,若PA等于PA',则将PA作为用户A的公钥,若PA不等于PA',则用户A的公钥生成失败;
(3)第一通信方和第二通信方进行协同签名,包括以下步骤:
(3-1)第一通信方计算用户A的待签名消息M的消息摘要e;
(3-2)第一通信方产生随机数k1,k1∈[1,n-1],并根据第二通信方公钥P2和随机数k1计算椭圆曲线上的点Q1,Q1=k1[*]P2,其中“[*]”表示椭圆曲线上的点乘运算,第一通信方将步骤(3-1)的用户A的待签名消息M的消息摘要e和Q1发送给第二通信方;
(3-3)第二通信方对来自第一通信方的Q1进行验证,若Q1满足与用户A、第一通信方和第二通信方在步骤(1)共同商议选定的椭圆曲线方程时,进行步骤(3-4),若Q1不满足步骤(1)选定的椭圆曲线方程,则协同签名失败;
(3-4)第二通信方产生随机数k2,k2∈[1,n-1],第二通信方根据用户A的待签名消息M的消息摘要e、来自第一通信方的Q1和本步骤的k2生成部分签名值r;
(3-5)第二通信方根据第二通信方的子私钥d2,计算d2在Fq上的逆元d2 -1,第二通信方根据d2 -1、步骤(3-4)的部分签名值r和本步骤的k2计算签名中间值s1,s1=d2 -1×(r+k2)mod n,其中“×”表示有限域上的数乘运算,“+”表示有限域上的加法运算,mod表示有限域上的求模运算,第二通信方根据步骤(3-6)的k2对r的有效性进行验证,若r不等于0且r+k2不等于n,则第二通信方将部分签名r和签名中间值s1发给第一通信方,进行步骤(3-6),若r等于0或r+k2等于n,则协同签名失败;
(3-6)第一通信方根据步骤(3-2)的k1对来自第二通信方的s1进行验证,若k1+s1不等于n,则进行步骤(3-7),若k1+s1等于n,则协同签名失败,其中“+”表示有限域上的加法运算;
(3-7)第一通信方根据第一通信方的子私钥d1,计算d1在Fq上的逆元d1 -1,根据d1 -1、步骤(3-2)选取的k1以及来自第二通信方的s2,计算s,s=d1 -1×(k1+s1)-r mod n,其中“×”表示有限域上,的数乘运算,“+”表示有限域上的加法运算,“-”表示有限域上的减法运算,mod表示有限域上的求模运算,并对s进行验证,若s不等于0且s+r不等于n,则进行步骤(3-8),若s等于0或s+r等于n,则协同签名失败;
(3-8)第一通信方使用用户A的公钥PA,对签名结果(r,s)进行验证,若(r,s)是用户A待签名消息M的签名,则输出协同签名结果(r,s),若(r,s)不是用户A待签名消息M的签名,则协同签名失败。
2.根据权利要求1所述的两方协同签名方法,其特征在于,所述的第一通信方生成的用户A的待签名消息M的消息摘要e的计算方法如下:第一通信方将一个关于用户A的可辨别标识、部分椭圆曲线***参数和用户A公钥的杂凑值ZA和待签名消息M连接,并计算连接消息ZA||M的消息摘要e=Hv(ZA||M),其中||表示连接操作,Hv()为选定的消息摘要长度为v比特的安全密码杂凑函数。
3.根据权利要求1所述的两方协同签名方法,其特征在于,所述步骤(3-4)中,第二通信方生成部分签名值r的方法如下:
(1)第二通信方根据用户A、第一通信方和第二通信方共同商议选定的基点G、随机数k2和来自第一通信方的Q1,计算椭圆曲线点(x1,y1),(x1,y1)=k2[*]G[+]Q1,其中“[*]”表示椭圆曲线上的点乘运算,“[+]”表示椭圆曲线上的加法运算;
(2)第二通信方根据来自第一通信方的用户A的待签名消息M的消息摘要e和步骤(1)的椭圆曲线点坐标x1,并按GB/T 32918.1-2016第1部分4.2.8规定的方法,将x1数据类型转换为整数,计算部分签名r,r=e+x1 mod n,其中“+”表示有限域上的加法运算,mod表示有限域上的求模运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011156120.2A CN112422288B (zh) | 2020-10-26 | 2020-10-26 | 一种抗能量分析攻击的基于sm2算法的两方协同签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011156120.2A CN112422288B (zh) | 2020-10-26 | 2020-10-26 | 一种抗能量分析攻击的基于sm2算法的两方协同签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422288A CN112422288A (zh) | 2021-02-26 |
CN112422288B true CN112422288B (zh) | 2023-06-27 |
Family
ID=74840832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011156120.2A Active CN112422288B (zh) | 2020-10-26 | 2020-10-26 | 一种抗能量分析攻击的基于sm2算法的两方协同签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422288B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205081B (zh) * | 2021-12-03 | 2023-12-19 | 中国科学院大学 | 一种保护用户隐私的盲协同签名方法 |
CN114070561A (zh) * | 2022-01-17 | 2022-02-18 | 工业信息安全(四川)创新中心有限公司 | 一种基于sm2算法的零知识证明方法和*** |
CN114978536B (zh) * | 2022-05-16 | 2024-01-30 | 福建凯特信息安全技术有限公司 | 一种基于sm2算法的多方联合签名方法及*** |
CN115549904A (zh) * | 2022-10-11 | 2022-12-30 | 北京无字天书科技有限公司 | 密钥生成方法及相关方法、计算机设备和存储介质 |
CN117978408B (zh) * | 2024-03-28 | 2024-06-25 | 鼎铉商用密码测评技术(深圳)有限公司 | 协同签名算法的检测方法、协同签名设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333447A (zh) * | 2014-11-26 | 2015-02-04 | 上海爱信诺航芯电子科技有限公司 | 一种可抵御能量分析攻击的sm4方法 |
CN104836666A (zh) * | 2015-04-20 | 2015-08-12 | 成都信息工程学院 | 一种针对sm2解密算法的能量分析攻击的方法 |
CN108650087A (zh) * | 2018-05-16 | 2018-10-12 | 广东工业大学 | 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8542820B2 (en) * | 2009-02-05 | 2013-09-24 | Infineon Technologies Ag | Apparatus for calculating a result of a scalar multiplication |
-
2020
- 2020-10-26 CN CN202011156120.2A patent/CN112422288B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333447A (zh) * | 2014-11-26 | 2015-02-04 | 上海爱信诺航芯电子科技有限公司 | 一种可抵御能量分析攻击的sm4方法 |
CN104836666A (zh) * | 2015-04-20 | 2015-08-12 | 成都信息工程学院 | 一种针对sm2解密算法的能量分析攻击的方法 |
CN108650087A (zh) * | 2018-05-16 | 2018-10-12 | 广东工业大学 | 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
Non-Patent Citations (1)
Title |
---|
SM2椭圆曲线门限密码算法;尚铭等;密码学报;第1卷(第2期);155-166 * |
Also Published As
Publication number | Publication date |
---|---|
CN112422288A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422288B (zh) | 一种抗能量分析攻击的基于sm2算法的两方协同签名方法 | |
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
US10944575B2 (en) | Implicitly certified digital signatures | |
CN109088726B (zh) | 基于sm2算法的通信双方协同签名及解密方法和*** | |
CN111314089B (zh) | 一种基于sm2的两方协同签名方法及解密方法 | |
EP3681093B1 (en) | Secure implicit certificate chaining | |
CN104396181B (zh) | 用于生成和保护密码密钥的***和方法 | |
US9800418B2 (en) | Signature protocol | |
CN107566128A (zh) | 一种两方分布式sm9数字签名生成方法与*** | |
JP2013539295A (ja) | メッセージ復元を伴うデジタル署名の認証された暗号化 | |
Truong et al. | Improvement of the more efficient and secure ID-based remote mutual authentication with key agreement scheme for mobile devices on ECC | |
CN114666032B (zh) | 基于同态加密的区块链交易数据隐私保护方法 | |
US20150006900A1 (en) | Signature protocol | |
CN113162773A (zh) | 一种可证安全的异构盲签密方法 | |
CN102291396B (zh) | 可信平台远程证明的匿名认证算法 | |
CN109831305B (zh) | 基于非对称密钥池的抗量子计算签密方法和*** | |
CN110943845A (zh) | 一种轻量级两方协同产生sm9签名的方法及介质 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
Li et al. | A secure two-factor authentication scheme from password-protected hardware tokens | |
Feng et al. | White-box implementation of Shamir’s identity-based signature scheme | |
CN117879833A (zh) | 一种基于改进椭圆曲线的数字签名生成方法 | |
WO2016187689A1 (en) | Signature protocol | |
CN109787772B (zh) | 基于对称密钥池的抗量子计算签密方法和*** | |
Su et al. | New proxy blind signcryption scheme for secure multiple digital messages transmission based on elliptic curve cryptography | |
Wang | Signer‐admissible strong designated verifier signature from bilinear pairings |
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 |