CN114465728B - 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 - Google Patents
攻击椭圆曲线签名算法的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114465728B CN114465728B CN202011251402.0A CN202011251402A CN114465728B CN 114465728 B CN114465728 B CN 114465728B CN 202011251402 A CN202011251402 A CN 202011251402A CN 114465728 B CN114465728 B CN 114465728B
- Authority
- CN
- China
- Prior art keywords
- signature
- signatures
- temporary key
- threshold
- threshold 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.)
- 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/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
-
- 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
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)
- Collating Specific Patterns (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种攻击椭圆曲线签名算法的方法、装置、设备及存储介质,该方法包括:获取基于椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名、进而获得有效签名的集合;基于LLL算法对集合进行格破解而获得集合中至少一个有效签名对应的特定临时密钥;基于特定临时密钥获得椭圆曲线签名算法的私钥。这不仅可以便捷地获得私钥,还增加了攻击椭圆曲线签名算法的可行性。
Description
技术领域
本发明涉及数据加密的技术领域,尤其涉及攻击椭圆曲线签名算法的方法、装置、设备及存储介质。
背景技术
椭圆曲线签名算法相比于传统的签名算法(如RSA算法),在同样的安全强度下只需更短的密钥长度,因此更适合于应用到资源受限的芯片中。但是,针对椭圆曲线签名算法的攻击方法也在不断地出现。
2001年,罗默(Romer)提出了针对椭圆曲线签名算法的格攻击方法,可以参考文献一(Romer,Information Leakage Attacks against Smart Card Implementations ofthe Elliptic Curve Digital Signature Algorithm,I.Attali and T.Jensen(Eds.):E-smart 2001,LNCS 2140,pp.211–219,2001),其中,攻击者借助于其它攻击手段(如利用改变符号的故障而注入攻击)获得临时密钥的部分值(即一部分密钥),再利用求解格上问题获得完整的临时密钥,从而得到真实的私钥。
具体而言,破解流程包括:(1)攻击者利用椭圆曲线算法进行L次签名,借助于其它攻击手段获得每次临时密钥的部分值,第i次签名的临时密钥ki对应的签名为(ri,si),其中,i=0,1,…,L-1,ri和si为第i次签名的签名对;(2)得到关于L+1个变量的L个方程;(3)利用LLL算法进行格基约简求解出临时密钥,其中,LLL算法可参考文献二(A.K.Lenstra,H.W.Lenstra and L.Lov_asz,Factoring polynomials with rational coe_cients.Math.Ann.,261,515-534,1982)和文献三(N.A.Howgrave-Graham and N.P.Smart,Lattice Attacks on Digital Signature Schemes,HPL Laboratories Bristol,HPL-1999-90,3rd August,1999);(4)根据临时密钥计算出签名算法的私钥。
但是,在应用格攻击方法时,需要通过其它攻击手段来获得临时密钥的部分值,这一方面需要较专业的设备,另一方面也较难控制和实现。
发明内容
本发明解决的技术问题是如何解决在应用格攻击方法时较难获得临时密钥的部分值等问题。
本发明实施例提供一种攻击椭圆曲线签名算法的方法,包括:获取基于椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名、进而获得有效签名的集合;基于LLL算法对集合进行格破解而获得集合中至少一个有效签名对应的特定临时密钥;基于特定临时密钥获得椭圆曲线签名算法的私钥。
可选地,N大于或等于3。
可选地,多次签名包括第一组签名,签名参量为临时密钥进行一次签名所需的签名时间,阈值为第一阈值,获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值包括:对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;将统计出的特定时间作为第一阈值。
可选地,多次签名包括第一组签名,签名参量为临时密钥进行一次签名所需的签名时间,阈值为第一阈值,获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值包括:对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥各自进行签名所需的签名时间,其中,I为小于N的整数;基于第一个非零比特位之前有0、1直至I个零比特位的签名时间获取相邻临时密钥之间的签名时间差;基于签名时间差计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;将特定时间作为第一阈值。
可选地,多次签名包括第二组签名,将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名、进而获得有效签名的集合包括:获取第二组签名分别对应的每一个临时密钥用于签名的签名时间;将第二组签名分别对应的每一个临时密钥用于签名的签名时间分别与第一阈值比较;将签名时间小于或等于第一阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
可选地,第一组签名和第二组签名为同一组或者不同组的签名。
可选地,签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,阈值为第二阈值,获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值包括:将临时密钥的总位数M减去N所得到的值作为第二阈值,其中,M为整数。
可选地,将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名、进而获得有效签名的集合包括:获取至少一部分签名分别对应的每一个临时密钥相应的功耗曲线;基于功耗曲线而统计出至少一部分签名分别对应的每一个临时密钥参与点乘运算的比特位的有效个数;将有效个数分别与第二阈值比较;将有效个数小于或等于第二阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
本发明实施例还提供一种设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行上述任一种攻击椭圆曲线签名算法的方法的步骤。
本发明实施例还提供一种存储介质,其上存储有计算机指令,计算机指令运行时执行上述任一种攻击椭圆曲线签名算法的方法的步骤。
本发明实施例还提供一种攻击椭圆曲线签名算法的装置,包括:第一获取模块,其适于获取基于椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;第二获取模块,其适于获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;比较模块,其适于将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名、进而获得有效签名的集合;第一计算模块,其适于基于LLL算法对集合进行格破解而获得集合中至少一个有效签名对应的特定临时密钥;第二计算模块,其适于基于特定临时密钥获得椭圆曲线签名算法的私钥。
可选地,多次签名包括第一组签名,签名参量为临时密钥进行一次签名所需的签名时间,阈值为第一阈值,第二获取模块适于:对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;将统计出的特定时间作为第一阈值。
可选地,多次签名包括第一组签名,签名参量为临时密钥进行一次签名所需的签名时间,阈值为第一阈值,第二获取模块适于:对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥各自进行签名所需的签名时间,其中,I为小于N的整数;基于第一个非零比特位之前有0、1直至I个零比特位的签名时间获取相邻临时密钥之间的签名时间差;基于签名时间差计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;将特定时间作为第一阈值。
可选地,多次签名包括第二组签名,比较模块适于:获取第二组签名分别对应的每一个临时密钥用于签名的签名时间;将第二组签名分别对应的每一个临时密钥用于签名的签名时间分别与第一阈值比较;将签名时间小于或等于第一阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
可选地,签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,阈值为第二阈值,第二获取模块适于:将临时密钥的总位数M减去N所得到的值作为第二阈值,其中,M为整数。
可选地,比较模块适于:获取至少一部分签名分别对应的每一个临时密钥相应的功耗曲线;基于功耗曲线而统计出至少一部分签名分别对应的每一个临时密钥参与点乘运算的比特位的有效个数;将有效个数分别与第二阈值比较;将有效个数小于或等于第二阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
本发明实施例的技术方案可以获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,并且将多次签名中的至少一部分签名对应的每一个签名参量分别与该阈值进行比较而获得有效签名的集合,从而可以便捷地获得椭圆曲线签名算法的私钥,这增加了攻击椭圆曲线签名算法的可行性。
附图说明
图1是本发明实施例中攻击椭圆曲线签名算法的方法的流程图;
图2是本发明实施例中攻击椭圆曲线签名算法的装置的结构示意图。
具体实施方式
在本发明的实施例中,椭圆曲线签名算法包括常规的椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)、椭圆曲线公钥密码算法SM2等。
在本发明的实施例中,临时密钥由若干位比特组成,其中,零比特位和非零比特位分别表示临时密钥的某位为0和1。
在本发明的实施例中,考虑到椭圆曲线签名算法涉及点乘算法,并且,无论采用哪种点乘算法(例如,总是点加倍点算法、蒙哥马利点乘算法),签名参量都与临时密钥的有效长度有关。
例如,签名参量为临时密钥进行一次签名所需的签名时间,第一阈值为第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;第一个非零比特位的位置越靠后则执行时间越短、越靠前则执行时间越长,从而可以在一些签名中基于签名时间来选择性地获取签名时间小于或等于第一阈值的临时密钥对应的有效签名的集合,进而可以便捷地基于该有效签名的集合而获得椭圆曲线签名算法的私钥。
又例如,签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,第二阈值为临时密钥的总位数M减去第一个非零比特位之前零比特位的个数N所得到的值;可以在一些签名中基于第一个非零比特位及其之后的比特位的个数来选择性地获取其中个数小于或等于第二阈值的临时密钥对应的有效签名的集合,进而可以便捷地基于该有效签名的集合而获得椭圆曲线签名算法的私钥。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例作详细的说明。
如图1所示,攻击椭圆曲线签名算法的方法100包括步骤:S110,获取基于椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;S120,获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;S130,将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名(ri,si)、进而获得有效签名(ri,si)的集合;S140,基于LLL算法对集合进行格破解而获得集合中至少一个有效签名对应的特定临时密钥;S150,基于特定临时密钥获得椭圆曲线签名算法的私钥。
在步骤S110的执行中,可以进行多次签名,例如大于或等于三次签名,每次签名对应一个临时密钥、也对应一个签名参量。
在一些实施例中,对于总是点加倍点算法,进行1000次签名。
在步骤S120的执行中,获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值;在步骤S130的执行中,将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名(ri,si)、进而获得有效签名(ri,si)的集合。
有效签名(ri,si)对应的临时密钥中第一个非零比特位之前的零比特位数N应较大(如N大于或等于3),从而便于后续的LLL算法进行格破解而获得临时密钥。
有效签名(ri,si)的个数应足够多。例如,如果临时密钥的最大长度是P个比特位,则至少需要Q个的有效签名(ri,si),其中,Q为P除以N并向上取整而得到的数值。
在一些实施例中,签名参量可以为临时密钥进行一次签名所需的签名时间,阈值为第一阈值。
多次签名可以包括第一组签名和第二组签名,其中,第一组签名用于计算第一阈值,第二组签名用于与该第一阈值比较而获得有效签名(ri,si)的集合,其中,(ri,si)为第i次签名的临时密钥ki对应的签名。
第一组签名和第二组签名可以为不同组的临时密钥;即,第一组签名仅用于计算第一阈值,而第二组签名仅用于与该第一阈值比较而获得有效签名(ri,si)的集合。
第一组签名和第二组签名可以为同一组签名;即,该组签名先用于计算第一阈值,然后将该组签名用于与该第一阈值比较而获得有效签名(ri,si)的集合。
临时密钥具有第一个非零比特位,在该第一个非零比特位之前的比特位都是零;由于这些零比特位不进行点乘运算,因此它们无需处理时间。
可以通过下述第一种方式确定第一阈值。
具体而言,对于第一组签名,可以记录它们每次签名的时间,并且进行分类和统计,例如,将签名时间最长的临时密钥作为第一类,其最高比特位(第一高比特位)为1,将签名时间次长的临时密钥作为第二类,其次高比特位(第二高比特位)为1,将签名时间第三长的临时密钥作为第三类,其第三高比特位为1,依次类推,直至将第一个非零比特位之前有N个零比特位的临时密钥(或签名时间最短的临时密钥)作为最后一类,可以根据依次类推的顺序得到该最后一类临时密钥的第一个非零比特位。其中,N为较大的值(如N大于或等于3),从而便于后续的LLL算法进行格破解而获得临时密钥。
在具体实施中,可以对第一组签名进行多次签名,从而能够依次获得上述第一类、第二类、第三类直至最后一类临时密钥;其中,具体签名的次数决定于点乘算法的类型和临时密钥的长度等。
根据分类和统计,可以得到签名时间与第一个非零比特位的位置的关系,即,签名时间越长则临时密钥中第一个非零比特位的位置越靠前,签名时间越短则临时密钥中第一个非零比特位的位置越靠后。
可以统计出第一组签名中每一个临时密钥使用第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间。将该特定时间作为第一阈值。
也可以通过下述第二种方式确定第一阈值。
具体而言,对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥各自进行签名所需的签名时间,其中,I为小于N的整数。例如,I等于2,或者为小于N/2、N/3的整数。其中,N为较大的值(如N大于或等于3),从而便于后续的LLL算法进行格破解而获得临时密钥。
可以基于第一个非零比特位之前有0、1直至I个零比特位的签名时间获取相邻临时密钥之间的签名时间差。
在具体实施中,可以将第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥按次序排列,从而获取相邻临时密钥之间的签名时间差。例如,可以获取任意两个相邻密钥之间的签名时间,并且计算出二者的差值而获得签名时间差;也可以获取上述I+1个临时密钥中全部或部分连续排列的临时密钥,并且分别计算其中两个相邻密钥之间签名时间的差值,并且将多个差值取平均而获得签名时间差。
基于签名时间差计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间。在具体实施中,基于已知的0、1直至I个零比特位的签名时间、以及相邻临时密钥之间的签名时间差,根据常规的、等差队列的计算公式,可以计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间。将该特定时间作为第一阈值。
确定第一阈值的第一种方式中,需要依次获得上述第一类、第二类、第三类直至第一个非零比特位之前有N个零比特位的临时密钥(或签名时间最短的临时密钥)以进行分类和统计,从而确定第一阈值;相对照地,确定第一阈值的第二种方式仅需要计算出相邻临时密钥之间的时间差,就可以推算出第一阈值。第二种方式显著地减少了分类、统计和相关计算的工作量。
可以测量而获得第二组签名分别对应的每一个临时密钥用于签名的签名时间,并且将这些签名时间分别与第一阈值进行比较,将其中签名时间小于或等于第一阈值的临时密钥对应的签名确定为有效签名(ri,si),从而获得具有多个有效签名(ri,si)的集合;该集合中的每一个有效签名(ri,si)对应的临时密钥的一部分可以确定,即,这些临时密钥的前部具有N个零比特位。
在另一些实施例中,签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,阈值为第二阈值。
临时密钥具有第一个非零比特位,在该第一个非零比特位之前的比特位都是零;由于这些零比特位不进行点乘运算,因此它们不产生功耗。
可以确定第一个非零比特位之前零比特位个数为N,其为较大的值(如N大于或等于3),从而便于后续的LLL算法进行格破解而获得临时密钥。并且,可以将临时密钥的总位数M减去N所得到的值作为第二阈值,其中,M为整数。
可以获取多次签名中至少一部分签名分别对应的每一个临时密钥相应的功耗曲线(例如通过示波器观察而获得该功耗曲线),基于功耗曲线而统计出该至少一部分签名分别对应的每一个临时密钥参与点乘运算的比特位的有效个数,并且将这些有效个数分别与第二阈值N比较,将其中有效个数小于或等于第二阈值N的临时密钥对应的签名确定为有效签名(ri,si),从而获得有效签名(ri,si)的集合;该集合中的每一个有效签名(ri,si)对应的临时密钥的一部分可以确定,即,这些临时密钥的前部具有N个零比特位。
在步骤S140的执行中,基于LLL算法对有效签名的集合进行格破解而获得有效签名的集合中至少一个有效签名对应的特定临时密钥;在步骤S150的执行中,基于特定临时密钥获得椭圆曲线签名算法的私钥。
在一些实施例中,基于一种椭圆曲线签名算法ECDSA进行计算。
具体而言,使用上述获得的有效签名(ri,si)的集合构建方程组,如公式(1)所示:
si=ki -1(ei+rid)modn (1)
其中,i=0,1,…,L-1,L为有效签名集合中有效签名的个数,ri、si、ki和ei均为在第i次签名时的值,ri和si为有效签名的签名对,ki为临时密钥,ki -1为ki的逆运算,ei为密码散列函数(Cryptographic Hash Function)关于被加密消息(message)的输出结果,d为私钥,n为ECDSA椭圆曲线对应的素数阶。
取i=0,可以计算出d的公式,如公式(2)所示:
d=r0 -1(s0k0-e0) (2)
其中,r0、s0、k0和e0分别为ri、si、ki和ei第1次签名时的值。
通过公式(1)和(2)可以得到公式(3):
其中,i=1,2,…,L-1,si -1为si的逆运算,r0 -1为r0的逆运算。
可以将公式(3)简化,如公式(4)所示:
ki+Ai·k0+Bi=0modn (4)
公式(4)可以变换,如公式(5)所示:
ki=-Ai·k0-Bi modn (5)
在公式(4)和(5)中,Ai和Bi是已知的,而k0和ki是未知的,可以构造具有L行和L列的矩阵U,如公式(6)所示:
可以构建ACVP(Approximate Closest Vector Problem)。
首先,构造一个格(Lattice),使得在该Lattice中的一个向量到向量B=(0,B1,B2,...,BL-1)具有最短距离;然后,令该Lattice中的这个向量为(-k0,x1,x2,...,xL-1)U,根据公式(5)可以得到最短距离,即(k0,k1,...,kL-1)。
具体而言,由于k0和ki都是比较小的数(例如,前14比特为0),可以利用格基约简算法来求出最短距离。
为简便计算,可以将上述ACVP转化成U-SVP(Unique-Shortest Vector Problem),即,构造矩阵U',如公式(7)所示:
对矩阵U'进行格基约减,直到找到矩阵中的最短向量,结果中的第一个向量(k0,k1,...,kL-1,0)即为最短向量,其对应前述的最短距离(k0,k1,...,kL-1),从而获得特定临时密钥,其可以为(k0,k1,...,kL-1)中的一个或多个,为描述方便,其中的任一个可以通过ki表示。
接着,可以通过公式(1)计算出私钥d。
在步骤S140和S150的执行中,是基于已知的LLL算法对有效签名的集合进行格破解而获得特定临时密钥,进而基于特定临时密钥获得椭圆曲线签名算法的私钥。
虽然以上实施例仅基于一种椭圆曲线签名算法(即ECDSA)的计算而获得私钥d,应理解,对于其他的椭圆曲线签名算法(如SM2),也可以通过类似的计算而获得私钥d。
本发明实施例还公开了一种攻击椭圆曲线签名算法的设备,该设备可以包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令。处理器运行该计算机指令时可以执行上述攻击椭圆曲线签名算法的方法的步骤。
本发明实施例还公开了一种攻击椭圆曲线签名算法的存储介质,其上存储有计算机指令,计算机指令运行时可以执行上述攻击椭圆曲线签名算法的方法的步骤。存储介质可以包括ROM、RAM、磁盘或者光盘等。存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
本发明实施例还提供一种攻击椭圆曲线签名算法的装置200,包括:第一获取模块210,其适于获取基于椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;第二获取模块220,其适于获取与椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;比较模块230,其适于将多次签名中的至少一部分签名对应的每一个签名参量分别与阈值进行比较而获得其中的有效签名、进而获得有效签名的集合;第一计算模块240,其适于基于LLL算法对集合进行格破解而获得集合中至少一个有效签名对应的特定临时密钥;第二计算模块250,其适于基于特定临时密钥获得椭圆曲线签名算法的私钥。
在具体实施中,多次签名包括第一组签名,签名参量为临时密钥进行一次签名所需的签名时间,阈值为第一阈值,第二获取模块220适于:对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;将统计出的特定时间作为第一阈值。
在具体实施中,多次签名包括第一组签名,签名参量为临时密钥进行一次签名所需的签名时间,阈值为第一阈值,第二获取模块220适于:对第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥各自进行签名所需的签名时间,其中,I为小于N的整数;基于第一个非零比特位之前有0、1直至I个零比特位的签名时间获取相邻临时密钥之间的签名时间差;基于签名时间差计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;将特定时间作为第一阈值。
在具体实施中,多次签名包括第二组签名,比较模块230适于:获取第二组签名分别对应的每一个临时密钥用于签名的签名时间;将第二组签名分别对应的每一个临时密钥用于签名的签名时间分别与第一阈值比较;将签名时间小于或等于第一阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
在具体实施中,签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,阈值为第二阈值,第二获取模块220适于:将临时密钥的总位数M减去N所得到的值作为第二阈值,其中,M为整数。
在具体实施中,比较模块230适于:获取至少一部分签名分别对应的每一个临时密钥相应的功耗曲线;基于功耗曲线而统计出至少一部分签名分别对应的每一个临时密钥参与点乘运算的比特位的有效个数;将有效个数分别与第二阈值比较;将有效个数小于或等于第二阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
关于攻击椭圆曲线签名算法的装置200的工作原理、工作方式的更多内容,可以参照上述关于攻击椭圆曲线签名算法的方法的相关描述,这里不再赘述。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (16)
1.一种攻击椭圆曲线签名算法的方法,其特征在于,包括:
获取基于所述椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;
获取与所述椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;
将所述多次签名中的至少一部分签名对应的每一个签名参量分别与所述阈值进行比较而获得其中的有效签名、进而获得所述有效签名的集合;
基于LLL算法对所述集合进行格破解而获得所述集合中至少一个有效签名对应的特定临时密钥;
基于所述特定临时密钥获得所述椭圆曲线签名算法的私钥。
2.根据权利要求1所述的方法,其特征在于,N大于或等于3。
3.根据权利要求1所述的方法,其特征在于,所述多次签名包括第一组签名,所述签名参量为临时密钥进行一次签名所需的签名时间,所述阈值为第一阈值,所述获取与所述椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值包括:
对所述第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;
将统计出的所述特定时间作为所述第一阈值。
4.根据权利要求1所述的方法,其特征在于,所述多次签名包括第一组签名,所述签名参量为临时密钥进行一次签名所需的签名时间,所述阈值为第一阈值,所述获取与所述椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值包括:
对所述第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥各自进行签名所需的签名时间,其中,I为小于N的整数;
基于第一个非零比特位之前有0、1直至I个零比特位的签名时间获取相邻临时密钥之间的签名时间差;
基于所述签名时间差计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;
将所述特定时间作为所述第一阈值。
5.根据权利要求3或4所述的方法,其特征在于,所述多次签名包括第二组签名,所述将所述多次签名中的至少一部分签名对应的每一个签名参量分别与所述阈值进行比较而获得其中的有效签名、进而获得所述有效签名的集合包括:
获取所述第二组签名分别对应的每一个临时密钥用于签名的签名时间;
将所述第二组签名分别对应的每一个临时密钥用于签名的签名时间分别与所述第一阈值比较;
将所述签名时间小于或等于所述第一阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
6.根据权利要求5所述的方法,其特征在于,所述第一组签名和所述第二组签名为同一组或者不同组的签名。
7.根据权利要求1所述的方法,其特征在于,所述签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,所述阈值为第二阈值,所述获取与所述椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值包括:将所述临时密钥的总位数M减去N所得到的值作为所述第二阈值,其中,M为整数。
8.根据权利要求7所述的方法,其特征在于,所述将所述多次签名中的至少一部分签名对应的每一个签名参量分别与所述阈值进行比较而获得其中的有效签名、进而获得所述有效签名的集合包括:
获取所述至少一部分签名分别对应的每一个临时密钥相应的功耗曲线;
基于所述功耗曲线而统计出所述至少一部分签名分别对应的每一个临时密钥参与点乘运算的比特位的有效个数;
将所述有效个数分别与所述第二阈值比较;
将所述有效个数小于或等于所述第二阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
9.一种设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至8中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至8中任一项所述方法的步骤。
11.一种攻击椭圆曲线签名算法的装置,其特征在于,包括:
第一获取模块,其适于获取基于所述椭圆曲线签名算法而进行多次签名的多个签名参量,多次签名中的每一个签名分别对应一个签名参量;
第二获取模块,其适于获取与所述椭圆曲线签名算法的临时密钥中第一个非零比特位之前有N个零比特位相关的阈值,其中,N为整数;
比较模块,其适于将所述多次签名中的至少一部分签名对应的每一个签名参量分别与所述阈值进行比较而获得其中的有效签名、进而获得所述有效签名的集合;
第一计算模块,其适于基于LLL算法对所述集合进行格破解而获得所述集合中至少一个有效签名对应的特定临时密钥;
第二计算模块,其适于基于所述特定临时密钥获得所述椭圆曲线签名算法的私钥。
12.根据权利要求11所述的装置,其特征在于,所述多次签名包括第一组签名,所述签名参量为临时密钥进行一次签名所需的签名时间,所述阈值为第一阈值,所述第二获取模块适于:
对所述第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;
将统计出的所述特定时间作为所述第一阈值。
13.根据权利要求11所述的装置,其特征在于,所述多次签名包括第一组签名,所述签名参量为临时密钥进行一次签名所需的签名时间,所述阈值为第一阈值,所述第二获取模块适于:
对所述第一组签名分别对应的每一个临时密钥统计使用第一个非零比特位之前有0、1依次直至I个零比特位的临时密钥各自进行签名所需的签名时间,其中,I为小于N的整数;
基于第一个非零比特位之前有0、1直至I个零比特位的签名时间获取相邻临时密钥之间的签名时间差;
基于所述签名时间差计算出第一个非零比特位之前有N个零比特位的临时密钥进行签名所需的特定时间;
将所述特定时间作为所述第一阈值。
14.根据权利要求12或13所述的装置,其特征在于,所述多次签名包括第二组签名,所述比较模块适于:
获取所述第二组签名分别对应的每一个临时密钥用于签名的签名时间;
将所述第二组签名分别对应的每一个临时密钥用于签名的签名时间分别与所述第一阈值比较;
将所述签名时间小于或等于所述第一阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
15.根据权利要求11所述的装置,其特征在于,所述签名参量为临时密钥的、第一个非零比特位及其之后的比特位的个数,所述阈值为第二阈值,所述第二获取模块适于:将所述临时密钥的总位数M减去N所得到的值作为所述第二阈值,其中,M为整数。
16.根据权利要求15所述的装置,其特征在于,所述比较模块适于:
获取所述至少一部分签名分别对应的每一个临时密钥相应的功耗曲线;
基于所述功耗曲线而统计出所述至少一部分签名分别对应的每一个临时密钥参与点乘运算的比特位的有效个数;
将所述有效个数分别与所述第二阈值比较;
将所述有效个数小于或等于所述第二阈值的临时密钥对应的签名确定为有效签名,从而获得有效签名的集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251402.0A CN114465728B (zh) | 2020-11-09 | 2020-11-09 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251402.0A CN114465728B (zh) | 2020-11-09 | 2020-11-09 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114465728A CN114465728A (zh) | 2022-05-10 |
CN114465728B true CN114465728B (zh) | 2023-05-16 |
Family
ID=81404200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011251402.0A Active CN114465728B (zh) | 2020-11-09 | 2020-11-09 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114465728B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473649A (zh) * | 2022-08-18 | 2022-12-13 | 深圳先进技术研究院 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
CN115801264B (zh) * | 2022-10-12 | 2024-09-13 | 中国电子科技集团公司第三十研究所 | 椭圆曲线数字签名的物理攻击方法、介质、设备及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050062231A (ko) * | 2003-12-20 | 2005-06-23 | 삼성전자주식회사 | 사이드채널 공격을 방지할 수 있는 타원곡선 암호화 방법 |
CN104852805A (zh) * | 2015-05-11 | 2015-08-19 | 中国科学院软件研究所 | 一种抵抗基于格的错误攻击的sm2签名算法防护方法 |
CN111224783A (zh) * | 2019-11-26 | 2020-06-02 | 复旦大学 | 一种支持密钥刷新的两方椭圆曲线数字签名算法 |
-
2020
- 2020-11-09 CN CN202011251402.0A patent/CN114465728B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050062231A (ko) * | 2003-12-20 | 2005-06-23 | 삼성전자주식회사 | 사이드채널 공격을 방지할 수 있는 타원곡선 암호화 방법 |
CN104852805A (zh) * | 2015-05-11 | 2015-08-19 | 中国科学院软件研究所 | 一种抵抗基于格的错误攻击的sm2签名算法防护方法 |
CN111224783A (zh) * | 2019-11-26 | 2020-06-02 | 复旦大学 | 一种支持密钥刷新的两方椭圆曲线数字签名算法 |
Non-Patent Citations (2)
Title |
---|
A New SPA Attack on ECC with Regular Point Multiplication;Lihui Wang, etc.;《2015 11th International Conference on Computational Intelligence and Security(CIS)》;全文 * |
一种轻量级数据加密标准循环掩码实现方案;王立辉等;《电子与信息学报》;第42卷(第8期);第1829-1835页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114465728A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mirzaei et al. | A new image encryption method: parallel sub-image encryption with hyper chaos | |
US7908641B2 (en) | Modular exponentiation with randomized exponent | |
Yen et al. | Power analysis by exploiting chosen message and internal collisions–vulnerability of checking mechanism for RSA-decryption | |
DE102006022960B9 (de) | Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt | |
US7218735B2 (en) | Cryptography method on elliptic curves | |
US20040139136A1 (en) | Method for securing a computer installation involving a cryptographic algorithm using boolean operations and arithmetic operations and the corresponding embedded system | |
US8817973B2 (en) | Encrypting method having countermeasure function against power analyzing attacks | |
CN114465728B (zh) | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 | |
CN104917608B (zh) | 一种密钥抗功耗攻击的方法 | |
US20090136025A1 (en) | Method for scalarly multiplying points on an elliptic curve | |
CN112446052B (zh) | 一种适用于涉密信息系统的聚合签名方法及系统 | |
CN104851071A (zh) | 一种基于三维混沌系统的数字图像加密方法 | |
Demirtaş | A novel multiple grayscale image encryption method based on 3D bit-scrambling and diffusion | |
JP2011510579A (ja) | 署名ダイアグラムを用いた非対称暗号方式のための対策方法およびデバイス | |
Abd El-Wahed et al. | Efficiency and security of some image encryption algorithms | |
CN108875416B (zh) | 椭圆曲线多倍点运算方法和装置 | |
Somsuk et al. | Authentication system for e-certificate by using RSA’s digital signature | |
CN110708160B (zh) | 基于sm2算法标量乘法编码的抗侧信道攻击方法及系统 | |
JP5553773B2 (ja) | 楕円曲線上の点のスカラー倍を計算する装置及び方法 | |
US9419789B2 (en) | Method and apparatus for scalar multiplication secure against differential power attacks | |
KR102444193B1 (ko) | Ring-LWR기반 양자내성 서명 방법 및 그 시스템 | |
CN111756518B (zh) | 一种基于忆阻超混沌系统的彩色图像加密方法 | |
Aminudin et al. | A practical analysis of the fermat factorization and pollard rho method for factoring integers | |
JP6885460B2 (ja) | 逆像サンプリング装置、逆像サンプリング方法および逆像サンプリングプログラム | |
Yasuda et al. | Efficient variant of rainbow without triangular matrix representation |
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 |