CN104836670A - 一种基于随机数未知的sm2签名算法安全性验证方法 - Google Patents

一种基于随机数未知的sm2签名算法安全性验证方法 Download PDF

Info

Publication number
CN104836670A
CN104836670A CN201510239377.7A CN201510239377A CN104836670A CN 104836670 A CN104836670 A CN 104836670A CN 201510239377 A CN201510239377 A CN 201510239377A CN 104836670 A CN104836670 A CN 104836670A
Authority
CN
China
Prior art keywords
random number
signature
delta
signing
algorithm
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
CN201510239377.7A
Other languages
English (en)
Other versions
CN104836670B (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.)
COMMERCIAL PASSWORDS INSPECTION CENTER OF STATE CRYPTOGRAPHY ADMINISTRATION
Institute of Software of CAS
Beijing CEC Huada Electronic Design Co Ltd
Original Assignee
COMMERCIAL PASSWORDS INSPECTION CENTER OF STATE CRYPTOGRAPHY ADMINISTRATION
Institute of Software of CAS
Beijing CEC Huada Electronic Design 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 COMMERCIAL PASSWORDS INSPECTION CENTER OF STATE CRYPTOGRAPHY ADMINISTRATION, Institute of Software of CAS, Beijing CEC Huada Electronic Design Co Ltd filed Critical COMMERCIAL PASSWORDS INSPECTION CENTER OF STATE CRYPTOGRAPHY ADMINISTRATION
Priority to CN201510239377.7A priority Critical patent/CN104836670B/zh
Publication of CN104836670A publication Critical patent/CN104836670A/zh
Application granted granted Critical
Publication of CN104836670B publication Critical patent/CN104836670B/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/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于随机数未知的SM2签名算法安全性验证方法。本方法为:1)采用SM2签名算法分别对N+1个消息M进行签名,并在每次SM2签名中注入错误,使每次签名时所用随机数k的相同设定比特部分的签名结果s出现相同的错误;2)以第一次签名的错误签名结果s的等式为参照,将其他N次签名中的错误签名结果s分别与其进行相减,得到一方程组,即格攻击模型;3)对该格攻击模型进行求解,恢复出每一次签名所用随机数k的所有比特,将其代入计算对应签名结果s的等式,得到一私钥dA,如果该私钥dA为正确私钥,则判断该SM2签名算法不安全。本发明能够更有效、全面分析SM2签名算法抵抗攻击的安全能力。

Description

一种基于随机数未知的SM2签名算法安全性验证方法
技术领域
本发明具体涉及一种基于随机数未知的SM2签名算法安全性验证方法,属于信息安全技术领域。
背景技术
自从20世纪80年代,Miller和Koblitz将椭圆曲线引入密码学,以及Lenstra提出了利用椭圆曲线进行因数分解算法以来,椭圆曲线在密码学中的作用越来越大。ECC是基于有限域椭圆曲线离散对数问题(ECDLP):在一个循环加法群中,G为生成元,且G的阶为n,已知Q=kG和G,求k的值,其中Q=kG为有限域上的标量乘运算,具体为有限域上的代数运算。
若F为有限域,则至少含有两个元素,并存在一个加法+和一个乘法·运算,满足如下条件:
1)(F,+)是一个交换群;
2)(F/{0},·)是一个交换群;
3)满足结合律:(a·b)·c=a·(b·c)加法和乘法满足分配律,即对任何a,b,c∈R,a·(b+c)=a·b+a·c,(b+c)·a=a·b+a·c。
密码应用中最常用的有限域包括:素数域和特征为2的扩张域(二元扩域),这里主要介绍素数域。若p是素数,F={0,1,2,…,p-1}是关于modp的+和·构成的一个有限域,记为Fp,称为素数域(Galois域),Fp *=FP/{0}是Fp由中所有非零元构成的乘法群,由于Fp *是循环群,所以在Fp中至少存在一个元素g,使得Fp中任一非零元都可以由g的一个方幂表示,称g为Fp *的生成元(或本原元),即Fp *=<g>,阶为p-1。
若在素数域Fp(p是大于3的素数)上的椭圆曲线方程为:
y2=x3+ax+bmodp,a、b∈Fp,且(4a3+27b2)modp≠0
则有限域Fp上椭圆曲线点集E(Fp)定义为:
E(Fp)={(x,y)|x,y∈Fp,y2=x3+ax+bmodp}∪{O},其中,O为无穷远点。
若点G∈E(Fp),且G的阶n为素数,则由G生成的循环群<G>={O,G,2G,3G,…,(n-1)G}为E(Fp)的循环子群。椭圆曲线点集E(Fp)的元素数目用#E(Fp)表示,称为椭圆曲线E(Fp)的阶。在ECC密码系统中,素数p、域Fp的椭圆曲线方程、基点G及其阶n均为公开的域参数,任选私钥d∈[1,n-1],则相应的公钥P=dG。
椭圆曲线上定义的点与点加法运算使用了弦切线法则,则E(Fp)为加法交换群,无穷远点O为单位元,P(x,y)+P(x,-y)=O。对E(Fp)上两点P、Q之和P+Q,若P≠Q,连接P、Q的直线交E于点R',则R'关于x轴的对称点R即为P+Q之和,称为点加运算(A)。如图1所示。
若P=Q,做P点的切线交E于点R',则R'关于x轴的对称点R即为则2P,称为点倍运算(D)。如图2所示。
由椭圆曲线上的点加和点倍的几何意义,可以推断出E(Fp)在仿射坐标下运算法则,具体如下:
点加:令P=(x1,y1)∈E(Fp),Q=(x2,y2)∈E(Fp),且P≠Q,则R(x3,y3)=P+Q,其中, x 3 = ( y 2 - y 1 x 2 - x 1 ) 2 - x 2 - x 1 , y 3 = ( y 2 - y 1 x 2 - x 1 ) ( x 1 - x 3 ) - y 1 .
点倍:令P=(x1,y1)∈E(Fp),P≠-P,则R(x3,y3)=2P,其中, y 3 = ( 3 x 1 2 + a 2 y 1 ) ( x 1 - x 3 ) - y 1 .
因此,对于ECC中的标量乘运算Q=kG,实际上就是为k个相同点G之和,由多个点倍和点加运算组合,kG是ECC中与密钥相关的基本运算,错误攻击和侧信道分析通常针对kG进行。kG具有多种实现算法,其中最基本的是二进制算法。
ECC作为公钥算法,相对较传统的RSA公钥算法,在相同的安全性下,ECC算法密钥长度短、计算数据量小、运算速度快、灵活性好,在没有协处理器的情况下,易于在芯片中实现。另外,目前还没有找到求解ECDLP问题的有效算法,因此在算法安全性上要高于RSA算法。ECC密码算法基于其自身特点,在许多应用中正逐渐取代了传统的RSA算法,广被使用。
ECC数字签名算法是ECC公钥算法中应用中最广泛的算法之一,主要用于身份验证,由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。
SM2签名算法是一种ECC的数字签名算法,由国家密码管理局在2010年发布的标准,共包括签名和验签两部分。
在签名过程(如图3所示)中,设待签名的消息为M,为了获取消息M的数字签名(r,s),签名者A的公私钥分别为PA、dA,算法中采用的杂凑算法同样由国家密码管理局发布的SM3杂凑算法,则签名者A应实现以下运算步骤:
1.令其中,ZA=Hv(ENTLA||IDA),IDA为签名者A的可辨别标识,ENTLA为IDA的比特长度,由两个字节表示,Hv(.)为SM3算法的哈希函数;
2.计算 e = H v ( M ‾ ) ;
3.用随机数发生器产生随机数k∈[1,n-1];
4.计算椭圆曲线点(x1,y1)=kG;
5.计算r=(e+x1)modn,若r=0或r+k=n则返回3;
6.计算s=(1+dA)-1(k-rdA)modn,若s=0则返回3;
7.输出消息M的签名(r,s)。
签名者将签名结果(r,s)和消息M发送给验签者B,已知签名者A的可辨别标识IDA,经过杂凑运算B可得ZA=Hv(ENTLA||IDA),且采用A的公钥PA进行验签(如图4所示),具体如下:
1.检验r∈[1,n-1]、s∈[1,n-1]是否成立,若不成立则验签失败;
2.令 M ‾ = Z A | | M ;
3.计算. e = H v ( M ‾ ) . ;
4.计算t=(r+s)modn,若t=0,验签失败;
5.计算椭圆曲线点(x1,y1)=sG+tPA
6.计算R=(e+x1)modn,若R≠r则验签失败,否则验签成功。
鉴于SM2签名算法的应用重要性,有必要分析其安全性,一般通过攻击的方法检验其是否安全。由上可知,由于私钥dA仅在签名中被使用,因此,一般对SM2的攻击和防护都是分析签名过程中私钥dA的安全性。大多数对其他ECC签名算法的攻击方法均可用于SM2签名算法,如对标量乘、ECDSA等的侧信道和错误攻击方法。目前,已有文献提出了对SM2签名算法的错误攻击方法,主要包括弱曲线、对私钥的错误攻击和基于格的错误攻击。弱曲线错误攻击是在标量乘kG运算中对基点G注入若干比特错误变成点G',标量乘结果Q=kG则变为Q'=kG',G'不在原曲线上,而在一个新的弱曲线上,且G'在新曲线上的阶n'相对原来的阶n要小得多,若n'的最大素因子q的计算是可行的,则通过解Q'=kG'可获得k的值,进而可推导出私钥dA。对私钥的错误攻击是利用签名中rdAmodn的模乘运算,对该运算中的私钥注入错误,使其出现一个字节的错误,通过猜测确定私钥dA的值。基于格的错误攻击方法一般是在标量乘运算中注入错误,通过分析获取随机数k的部分比特,进行N次错误签名,代入签名结果s=(1+dA)-1(k-rdA)modn中,可生成一个方程组,采用格攻击可确定私钥的dA值。
格是m维实数空间Rm的离散子群L,其元素β∈L为N个线性无关的向量αi∈L(i∈{0,1,…,N-1})的线性组合,ai∈Z,Z为整数域,则α0,…,αN-1为格L的一组基,B=[α0,…,αN-1]T为基矩阵。
格中存在两个著名的难解问题,分别为最小向量问题(SVP)和最近向量问题(CVP)。
SVP:已知格L的一组基B,在格中找到其最短非零向量v∈L,使得||v||=min{||u|||u∈L},其中||·||为二范数,该问题可通过LLL算法确定v的近似解。
CVP:已知格L的一组基B、任意向量u∈Rm,在格中找到距u最近的向量v∈L,满足||v-u||=min{||t-u|||t∈L}。CVP可由LLL算法和Babai算法在多项式时间内获得其近似解。
若对SM2签名算法实施格攻击,首先就需要转化成隐藏数问题(HNP)。若ti∈Zn是随机均匀分布的,i∈{1,2,…,N},ui∈Zn,0<l<log2n,找到一个α∈Zn,使其满足|αti-ui|n≤n/2l,其中|x|n=min{|x-bn||x∈Zn,b∈Z},上述即为HNP。实际上,上述不等式等价于|αti-ui+hin|≤n/2l,其中hi是使得上述不等式成立的最小值。
HNP可转化成格中的CVP,构建(N+1)维格L,则基向量矩阵为
令目标向量u=(u1,u2,…,uN,0)、x=(h1,h2,…,hN,dA),则v=xM为格L中向量,且v=(αt1+nh1,…,αtN+nhN,α/2l),由HNP不等式组可得为CVP问题,求解CVP可得v,由v可确定α的值。
对于SM2签名算法,假若进行了N次签名运算,通过电磁、激光等错误诱导手段使得每一次签名运算出现错误,从而分别获取到随机数ki的最低l位比特值ai,i∈{1,2,…,N},并得到错误的签名结果(ri,si),可构造相应的HNP。令ki=bi2l+ai,其中bi<n/2l为未知值。将ki代入签名中的第6步s=(1+dA)-1(k-rdA)modn可得下式:
2-l(si+ri)dA-2-l(ai-si)=bi modn
令ti=2-l(si+ri)modn、ui=2-l(ai-si)modn,从而可得:
|tidA+hin-ui|<n/2l
其中,hi是使得上述不等式成立的最小值。
上式即为HNP问题,将其转换成CVP,可求解得dA的值。对于m位的签名算法,目前已有文献证明若已知k的l比特,需m/l条错误的签名,即可得到正确的dA。如对于256位的SM2签名算法,若已知k的8比特,一般约需32条签名即可成功获取私钥,这在实际实验中是非常可行的。
相比较弱曲线攻击和直接对私钥的错误攻击,基于格的错误攻击运算速度快,模型简单,对SM2的安全性威胁相对较大,且防护相对较难,不同的错误模型对应的防护也需相应改变,日益成为检验ECC签名算法安全性的主要攻击手段。目前对签名算法基于格的错误攻击方法的错误注入方式主要为在标量乘运算中忽略某些点倍和点加运算,该错误注入方法很容易通过算法级别的验签来防护,因此,亟需一些无法防护或防护困难的基于格攻击的错误攻击方法来重新评估和定义算法的安全性。
发明内容
为了检验和评估SM2签名算法是否安全,本发明提出了一种基于随机数未知的SM2签名算法安全性验证方法。该方法采用的错误注入方式进行攻击并没有使得算法中任何的中间值错误,使得从防护角度很难检验到错误,在更强的防护条件下,并未知随机数的任何比特值,仍可对算法进行格攻击获取私钥dA。整个错误攻击方法(如图5所示)共包括三部分,1)在SM2签名中注入错误使每次签名时随机数k的低/高位部分比特的签名结果s出现相同的错误;2)以第1次签名中计算s的等式(即等式s=(1+dA)-1(k-rdA)modn)为参照,将其他所有错误签名中计算s的等式分别与其进行相减,所得的方程组为HNP,即格攻击模型;3)采用格攻击解HNP,可恢复随机数k的所有比特,代入计算s的等式,可得到正确的私钥dA;如果该私钥dA为正确私钥,则判断该SM2签名算法不安全。具体如下:
1)在SM2签名中注入错误使每次签名时随机数k高/低位部分比特的签名结果s出现相同的错误。在一个实现了SM2签名算法的智能卡芯片中,输入不同的消息Mi,共进行了N+1(N≥log2n/l,n为基点G的阶,G为SM2签名算法椭圆曲线的基点)次签名运算,每一次签名运算芯片需生成256比特的随机数ki(0≤i≤N),若随机数发生器每次仅产生ki的l比特ai,共需要256/l次才能生成完整的ki,其中l一般为总线位宽,如8、16、32、64等。每一次生成的随机数ai需通过总线写入到芯片的存储区域,该写入操作在能量迹上峰值明显,很容易能区分出来。因此,若在随机数写入存储区域的时刻t对芯片的CPU注入错误,则该写入操作的指令未被执行,则在时刻t该存储区的值未被更新,即ki的l比特ai与上一次签名中ki-1的ai-1相等(1≤i≤N),ai=ai-1。采用相同的光强,并在相同的位置,在每一消息Mi签名所用随机数k的相同比特部分写入存储区时注入错误,可使得ki中低/高l比特ai一直保持相同,即其中bi为ki中剩余的未知部分比特,0<bi<n/2l,且a=a0=a1=…=aN,并得到错误的签名结果(ri,si)。
2-1)建立格攻击的模型。已知错误的签名结果(ri,si),且ki中低l比特ai一直保持相同,ki=bi2l+a(0≤i≤N),则可得如下方程组:
s 0 = ( 1 + d A ) - 1 ( k 0 - r 0 d A ) mod n s 1 = ( 1 + d A ) - 1 ( k 1 - r 1 d A ) mod n . . . s N = ( 1 + d A ) - 1 ( k N - r N d A ) mod n
将ki代入上式,转化可得:
( 1 + d A ) s 0 = ( a + b 0 2 l - r 0 d A ) mod n ( 1 + d A ) s 1 = ( a + b 1 2 l - r 1 d A ) mod n . . . ( 1 + d A ) s N = ( a + b N 2 l - r N d A ) mod n
令第1个方程为参考,将其他方程分别与其相减,约化可得:
2 - l ( s 1 + r 1 - s 0 - r 0 ) d A - 2 - l ( s 0 - s 1 ) = b 1 - b 0 mod n 2 - l ( s 2 + r 2 - s 0 - r 0 ) d A - 2 - l ( s 0 - s 2 ) = b 2 - b 0 mod n . . . 2 - l ( s N + r N - s 0 - r 0 ) d A - 2 - l ( s 0 - s N ) = b N - b 0 mod n
已知0<bi<n/2l,则|b1-b0|<n/2l,对于1≤i≤N,令Δti=2-l(si+ri-s0-r0)mod n,Δui=2-l(s0-si)mod n,hi为使得不等式成立的最小整数,可得如下HNP的不等式方程组:
| &Delta; t 1 d A - &Delta; u 1 + n h 1 | < n / 2 l | &Delta; t 2 d A - &Delta; u 2 + n h 2 | < n / 2 l . . . | &Delta; t N d A - &Delta; u N + n h N | < n / 2 l
2-2)建立格攻击的模型。已知错误的签名结果(ri,si),且ki中高l比特ai一直保持相同, k i = a 2 log 2 n - l + b i ( 0 &le; i &le; N ) , 则可得如下方程组:
s 0 = ( 1 + d A ) - 1 ( k 0 - r 0 d A ) mod n s 1 = ( 1 + d A ) - 1 ( k 1 - r 1 d A ) mod n . . . s N = ( 1 + d A ) - 1 ( k N - r N d A ) mod n
将ki代入上式,转化可得:
( 1 + d A ) s 0 = ( a 2 log 2 n - l + b 0 - r 0 d A ) mod n ( 1 + d A ) s 1 = ( a 2 log 2 n - l + b 1 - r 1 d A ) mod n . . . ( 1 + d A ) s N = ( a 2 log 2 n - l + b N - r N d A ) mod n
令第1个方程为参考,将其他方程分别与其相减,约化可得:
( s 1 + r 1 - s 0 - r 0 ) d A - ( s 0 - s 1 ) = b 1 - b 0 mod n ( s 2 + r 2 - s 0 - r 0 ) d A - ( s 0 - s 2 ) = b 2 - b 0 mod n . . . ( s N + r N - s 0 - r 0 ) d A - ( s 0 - s N ) = b N - b 0 mod n
已知则|b1-b0|<n/2l,对于1≤i≤N,令Δti=(si+ri-s0-r0)modn,Δui=(s0-si)modn,hi为使得不等式成立的最小整数,可得如下HNP的不等式方程组:
| &Delta; t 1 d A - &Delta; u 1 + n h 1 | < n / 2 l | &Delta; t 2 d A - &Delta; u 2 + n h 2 | < n / 2 l . . . | &Delta; t N d A - &Delta; u N + n h N | < n / 2 l
3)采用格攻击分析出私钥。将HNP转化成CVP,采用LLL和Babai算法求解最近向量问题CVP,可可恢复随机数k的所有比特,代入计算s的等式,可得到一私钥dA;根据该私钥dA判断该SM2签名算法是否安全,如果得到的私钥正确,则该SM2签名算法存在安全问题。从算法安全的角度来看,SM2签名算法是无法抵抗该攻击。
和现有技术相比,本发明具有如下优势:
1.本发明创新地提出了一种基于格的错误攻击方法,使用本发明提出的新方法能够更有效、全面分析SM2签名算法抵抗攻击的安全能力;
2.本发明与以前的错误方法不同,以前的错误攻击方法是错误影响的比特越少,复杂度越小,但对实验而言是越难实现。而本发明则相反,错误影响的比特数越多,复杂度越小,这非常有利于错误注入实验;
3.本发明是在标量运算前对随机数k注入的错误,在其后面的运算均无任何的错误中间值或结果,因此可防护一般的抗错误攻击的校验。如标量运算点是否在椭圆曲线上,签名后是否可通过验签等。
附图说明
图1是椭圆曲线上点加运算几何表示图;
图2是椭圆曲线上点倍运算几何表示图;
图3是SM2签名生成流程图;
图4是SM2验签流程图;
图5是本发明中对SM2签名算法的攻击流程图;
具体实施方式
下面结合附图和一个范例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。在实施例中,通过以本发明的错误攻击方法对SM2签名算法进行格攻击的实验为例说明本发明的有效性。
1)对随机数k注入错误使得低位部分比特出现相同的错误。在一个32位的SM2签名算法芯片中,共进行了50次签名,当每次签名运算中产生随的机数写入内存时,对其EPPROM(存储COS指令)区注入错误,可得ki=bi2l+ai(0≤i≤49)中的低32位比特ai全部等于a,其中l=32,如下表所示,所有随机数的低32比特都相同,均为a,a=0xf5e333d0,并得到错误的签名结果(ri,si)。
2)建立格攻击的模型。根据上述50条数据,共得到50个签名结果(ri,si),且ki=bi2l+a,建立格攻击模型,将求dA转化成HNP问题进行格攻击。
3)采用格攻击分析密钥。由于已知随机数的32比特,因次需至少选择log2n/l+1=9条签名数据,实验中依次选择连续的10条数据进行格攻击,攻击结果如表2所示,共进行了41次格攻击,每次均为10条,成功获取私钥的概率为100%,每次格攻击的平均时间为48ms,因此,该攻击方法可成功分析出正确的私钥。
表1:随机数低32位比特值相同的SM2签名结果
表2:对SM2签名算法格攻击结果
以上详细说明的具体的实施方式仅仅是为了更好了理解本发明使用的,本发明不局限于此,本领域一般技术人员可以根据本发明的公开内容,采用其他多种实施方式来实施本发明,凡是采用本发明的设计结构和思路的,在不脱离权利要求范围的变换和替代,都属于本发明的保护范围。

Claims (8)

1.一种基于随机数未知的SM2签名算法安全性验证方法,其步骤为:
1)采用SM2签名算法分别对N+1个消息M进行签名,并在每次SM2签名中注入错误,使每次签名时所用随机数k的相同设定比特部分的签名结果s出现相同的错误;其中,N≥log2n/l,n为基点G的阶,G为SM2签名算法椭圆曲线的基点,l为总线位宽;
2)以第一次签名的错误签名结果s的等式为参照,将其他N次签名中的错误签名结果s分别与其进行相减,得到一方程组,即格攻击模型;
3)对该格攻击模型进行求解,恢复出每一次签名所用随机数k的所有比特,将其代入计算对应签名结果s的等式,得到一私钥dA,如果该私钥dA为正确私钥,则判断该SM2签名算法不安全。
2.如权利要求1所述的方法,其特征在于,所述使每次签名时随机数k的设定比特部分出现相同的错误的方法为:对于任意一消息Mi,其对应的随机数ki共需要L/l次完成,L为随机数总长度,每次产生的比特部分为ai,当检测到设定比特部分ai写入存储区,对SM2签名算法芯片的CPU注入错误,使得该存储区的值未被更新。
3.如权利要求2所述的方法,其特征在于,所述设定比特部分为随机数k的低比特部分。
4.如权利要求3所述的方法,其特征在于,所述格攻击模型为: | &Delta;t 1 d A - &Delta;u 1 + nh 1 | < n / 2 l | &Delta;t 2 d A - &Delta;u 2 + nh 2 | < n / 2 l . . . | &Delta;t N d A - &Delta;u N + nh N | < n / 2 l ;
其中,1≤i≤N,Δti=2-l(si+ri-s0-r0)modn,Δui=2-l(s0-si)modn,hi为使得不等式成立的最小整数,(s0,r0)为第1个消息M的签名结果,(si,ri)为第i+1个消息M的签名结果,mod为模运算。
5.如权利要求2所述的方法,其特征在于,所述设定比特部分为随机数k的最高比特部分。
6.如权利要求5所述的方法,其特征在于,所述格攻击模型为: | &Delta;t 1 d A - &Delta;u 1 + nh 1 | < n / 2 l | &Delta;t 2 d A - &Delta;u 2 + nh 2 | < n / 2 l . . . | &Delta;t N d A - &Delta;u N + nh N | < n / 2 l ;
其中,1≤i≤N,Δti=(si+ri-s0-r0)modn,Δui=(s0-si)modn,hi为使得不等式成立的最小整数,(s0,r0)为第1个消息M的签名结果,(si,ri)为第i+1个消息M的签名结果,mod为模运算。
7.如权利要求3或5所述的方法,其特征在于,采用相同的光强并在相同的位置对每一消息M签名产生随机数写入存储时注入错误。
8.如权利要求1或2所述的方法,其特征在于,将所述格攻击模型的求解问题转化成CVP,采用LLL和Babai算法求解CVP,得到随机数k的所有比特。
CN201510239377.7A 2015-05-12 2015-05-12 一种基于随机数未知的sm2签名算法安全性验证方法 Active CN104836670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510239377.7A CN104836670B (zh) 2015-05-12 2015-05-12 一种基于随机数未知的sm2签名算法安全性验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510239377.7A CN104836670B (zh) 2015-05-12 2015-05-12 一种基于随机数未知的sm2签名算法安全性验证方法

Publications (2)

Publication Number Publication Date
CN104836670A true CN104836670A (zh) 2015-08-12
CN104836670B CN104836670B (zh) 2017-12-08

Family

ID=53814326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510239377.7A Active CN104836670B (zh) 2015-05-12 2015-05-12 一种基于随机数未知的sm2签名算法安全性验证方法

Country Status (1)

Country Link
CN (1) CN104836670B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712942A (zh) * 2017-01-10 2017-05-24 武汉理工大学 基于秘密共享的sm2数字签名生成方法及系统
CN107402905A (zh) * 2016-05-19 2017-11-28 北京旷视科技有限公司 基于神经网络的计算方法及装置
IT201600076089A1 (it) * 2016-07-20 2018-01-20 St Microelectronics Srl Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico
CN109067554A (zh) * 2018-10-31 2018-12-21 北京云测信息技术有限公司 抗注入攻击的签名方法、装置、移动终端及存储介质
CN109600232A (zh) * 2018-12-05 2019-04-09 北京智慧云测科技有限公司 针对sm2签名算法的攻击验证、防护方法及装置
CN109600233A (zh) * 2019-01-15 2019-04-09 西安电子科技大学 基于sm2数字签名算法的群签名标识签发方法
CN109981276A (zh) * 2019-01-21 2019-07-05 北京交通大学 一种zk-snark底层双线性对的国密替代实现方法
CN110932868A (zh) * 2019-11-27 2020-03-27 浪潮商用机器有限公司 一种数据签名方法、系统及装置
CN110990896A (zh) * 2019-12-03 2020-04-10 成都卫士通信息产业股份有限公司 基于sm2白盒的数字签名装置、方法、存储介质及设备
CN111835518A (zh) * 2020-07-10 2020-10-27 中金金融认证中心有限公司 椭圆曲线公钥密码算法安全性测评中的错误注入方法及系统
CN113037495A (zh) * 2021-03-03 2021-06-25 中国科学院软件研究所 一种椭圆曲线签名算法的安全评估方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761415A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线的数字签名生成、验证及混合系统
CN103701598A (zh) * 2013-12-05 2014-04-02 武汉信安珞珈科技有限公司 一种基于sm2签名算法的复核签名方法和数字签名设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761415A (zh) * 2011-04-27 2012-10-31 航天信息股份有限公司 p元域SM2椭圆曲线的数字签名生成、验证及混合系统
CN103701598A (zh) * 2013-12-05 2014-04-02 武汉信安珞珈科技有限公司 一种基于sm2签名算法的复核签名方法和数字签名设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MINGJIE LIU等: ""Partially Known Nonces and Fault Injection Attacks on SM2 Signature Algorithm"", 《SPRINGER INTERNATIONAL PUBLISHING SWITZERLAND》 *
N. A. HOWGRAVE-GRAHAM等: ""Lattice Attacks on Digital Signature Schemes"", 《SPINGER,DESIGNS, CODES AND CRYPTOGRAPHY》 *
PHONG Q.NGUYEN等: ""The Insecurity of the Digital Signature Algorithm with Partially Known Nonces"", 《JOURNAL OF CRYPTOLOGY》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402905A (zh) * 2016-05-19 2017-11-28 北京旷视科技有限公司 基于神经网络的计算方法及装置
US10333718B2 (en) 2016-07-20 2019-06-25 Stmicroelectronics S.R.L. Method for the generation of a digital signature of a message, corresponding generation unit, electronic apparatus and computer program product
IT201600076089A1 (it) * 2016-07-20 2018-01-20 St Microelectronics Srl Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico
CN106712942A (zh) * 2017-01-10 2017-05-24 武汉理工大学 基于秘密共享的sm2数字签名生成方法及系统
CN106712942B (zh) * 2017-01-10 2019-08-23 武汉理工大学 基于秘密共享的sm2数字签名生成方法及系统
CN109067554A (zh) * 2018-10-31 2018-12-21 北京云测信息技术有限公司 抗注入攻击的签名方法、装置、移动终端及存储介质
CN109600232A (zh) * 2018-12-05 2019-04-09 北京智慧云测科技有限公司 针对sm2签名算法的攻击验证、防护方法及装置
CN109600232B (zh) * 2018-12-05 2021-08-06 北京智慧云测科技有限公司 针对sm2签名算法的攻击验证、防护方法及装置
CN109600233A (zh) * 2019-01-15 2019-04-09 西安电子科技大学 基于sm2数字签名算法的群签名标识签发方法
CN109981276A (zh) * 2019-01-21 2019-07-05 北京交通大学 一种zk-snark底层双线性对的国密替代实现方法
CN109981276B (zh) * 2019-01-21 2021-01-19 北京交通大学 一种zk-snark底层双线性对的国密替代实现方法
CN110932868A (zh) * 2019-11-27 2020-03-27 浪潮商用机器有限公司 一种数据签名方法、系统及装置
CN110932868B (zh) * 2019-11-27 2022-04-15 浪潮商用机器有限公司 一种数据签名方法、系统及装置
CN110990896A (zh) * 2019-12-03 2020-04-10 成都卫士通信息产业股份有限公司 基于sm2白盒的数字签名装置、方法、存储介质及设备
CN111835518A (zh) * 2020-07-10 2020-10-27 中金金融认证中心有限公司 椭圆曲线公钥密码算法安全性测评中的错误注入方法及系统
CN111835518B (zh) * 2020-07-10 2024-02-23 中金金融认证中心有限公司 椭圆曲线公钥密码算法安全性测评中的错误注入方法及系统
CN113037495A (zh) * 2021-03-03 2021-06-25 中国科学院软件研究所 一种椭圆曲线签名算法的安全评估方法
CN113037495B (zh) * 2021-03-03 2022-05-24 中国科学院软件研究所 一种椭圆曲线签名算法的安全评估方法

Also Published As

Publication number Publication date
CN104836670B (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
CN104836670A (zh) 一种基于随机数未知的sm2签名算法安全性验证方法
CN104852805A (zh) 一种抵抗基于格的错误攻击的sm2签名算法防护方法
CN104836808B (zh) 基于改进差分错误攻击的sm2签名算法安全性验证方法
Fouque et al. Fault attack on elliptic curve Montgomery ladder implementation
CN103414569B (zh) 一种建立抗攻击的公钥密码的方法
CA2701573C (en) Fault detection in exponentiation and point multiplication operations using a montgomery ladder
CN106027262B (zh) 一种抵抗密钥恢复攻击的多变量签名方法
US20110170685A1 (en) Countermeasure method and devices for asymmetric encryption with signature scheme
US20110274271A1 (en) Countermeasure method and devices for asymmetric encryption
Liu et al. An efficient double parameter elliptic curve digital signature algorithm for blockchain
CN103220146A (zh) 基于多变量公钥密码体制的零知识数字签名方法
CN108039947B (zh) 一种利用协处理器抗攻击的sm2签名方法
CN101714919B (zh) 基于rsa算法的前向安全数字签名算法
CN101741559B (zh) 一种无密钥泄露的变色龙数字签名方法
CN104717060A (zh) 一种攻击椭圆曲线加密算法的方法和攻击设备
Barenghi et al. A novel fault attack against ECDSA
Huang et al. Leakage-resilient ring signature schemes
Bedoui et al. A Secure Hardware Implementation for Elliptic Curve Digital Signature Algorithm.
CN105119929A (zh) 单一恶意云服务器下的安全模指数外包方法及系统
CN102651747B (zh) 基于不可信更新环境的前向安全数字签名方法
CN113037495B (zh) 一种椭圆曲线签名算法的安全评估方法
CN105610583A (zh) 用于抵御错误曲线攻击的ecdsa方法
Le et al. On double exponentiation for securing RSA against fault analysis
Kim et al. Bit-flip faults on elliptic curve base fields, revisited
CN115834096A (zh) 一种基于可验证随机函数的区块链选举的实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant