CN102684876A - 包括求幂运算的加密方法 - Google Patents

包括求幂运算的加密方法 Download PDF

Info

Publication number
CN102684876A
CN102684876A CN2012100406976A CN201210040697A CN102684876A CN 102684876 A CN102684876 A CN 102684876A CN 2012100406976 A CN2012100406976 A CN 2012100406976A CN 201210040697 A CN201210040697 A CN 201210040697A CN 102684876 A CN102684876 A CN 102684876A
Authority
CN
China
Prior art keywords
multiplication
large scale
scale variable
algorithm
computing
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.)
Pending
Application number
CN2012100406976A
Other languages
English (en)
Inventor
B·菲克斯
G·加戈纳罗特
M·罗瑟莱特
V·韦纳伊
C·克拉维耶
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.)
Inside Secure SA
Original Assignee
Inside Secure SA
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 Inside Secure SA filed Critical Inside Secure SA
Publication of CN102684876A publication Critical patent/CN102684876A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/5235Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种免受隐藏信道攻击的方法和设备DV1,用于计算按照指数d来对数据m求幂的结果。所述方法和设备被配置以便:通过将不同的大尺寸变量x、y的任何乘法分解成相同的大尺寸变量的乘法的组合,仅执行相同的大尺寸变量的乘法。

Description

包括求幂运算的加密方法
技术领域
本发明涉及一种在电子设备上实现的按照指数d来对数据m求幂的结果的迭代计算方法。
背景技术
各种已知的加密方法是基于模幂运算,其数学表示如下:
md modulo(n),
其中m是输入数据,d是指数,n是模。模幂函数用于计算基数(potency)为d的m被n相除的余数。
这样的函数由诸如算法RSA(“Rivest,Shamir et Adleman”)、算法DSA(“数字签名算法”)、El Gamal等的各种加密算法来使用。数据m通常是要解密或签名的消息,而指数d是私钥。
已知通过下面的“平方&乘法”算法A1或A1’来执行模幂计算。
算法A1---“平方&乘法”求幂,从左到右
输入:
整数“m”和“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:a=md modulo n
步骤1:a=1
步骤2:对于在v-1和0之间的s进行:
(步骤2A)a=(a×a)mod n               (平方)
(步骤2B)如果ds=1,则a=(a×m)mod n  (乘法)
步骤3:输出结果a
算法A1’---“平方&乘法”求幂,从右到左
输入:
整数“m”和“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:a=md modulo n
步骤1:a=1;b=m
步骤2:对于在0和v-1之间的s进行:
(步骤2A’)如果ds=1,则a=(a×b)mod n  (乘法)
(步骤2B’)b=(b×b)mod n               (平方)
步骤3:输出结果a
算法A1称为“从左到右”是因为计算循环的第一步骤从指数的最高有效位开始朝着最低有效位行进。算法A1’称为“从右到左”是因为计算循环的第一步骤从指数的最低有效位开始朝着最高有效位行进。
这些算法包括使两个相同的大尺寸变量相乘以及使两个不同的大尺寸变量相乘。这通常涉及不同的函数来执行这些运算中的每个运算,使两个相同的大尺寸变量相乘是通过平方函数或“SQUARE”函数来执行的,而使两个不同的大尺寸变量相乘是通过乘法函数或“MULT”函数来执行的。该区别是由于以下事实:当x=y时,相比于相反的情况,通过SQUARE函数可更快地计算x×y。SQUARE函数的执行时间和MULT函数的执行时间之间的比值通常大约为0.8,但是根据以下情况可以在0.5和1之间变化:所考虑的数的尺寸、执行乘法的方式,等等。
在芯片卡类型的电子设备中,加密计算通常由专用处理器(诸如算术协处理器或加密处理器)来执行。计算“md modulo n”(并且尤其是执行乘法)相比于签名或加密或解密运算的总计算时间来说占用了处理器的大部分计算时间。因此,根据将要进行的计算类型来交替使用SQUARE函数或MULT函数使得整体加密、签名或解密计算时间得到优化。
然而,使用两个不同的函数SQUARE和MULT导致信息泄漏,可通过SPA(单功率分析)(即,通过对卡的电消耗进行分析)而检测该信息。SQUARE函数比MULT函数具有更短的执行时间,通过观测元件的电消耗曲线可以区分这两个运算。“电消耗”表示的是指示了执行运算的电子元件的运算的任何可观察物理量,特别是该元件的电磁辐射或消耗的电流。
图1示出了执行算法A1的元件的电消耗的曲线。可以清楚地看到SQUARE和MULT函数的消耗分布。SQUARE运算之后是MULT运算(步骤2A之后是步骤2B)揭示了指数d的那个比特等于1,因为通往步骤2B的条件分支要求验证条件ds=1。相反地,SQUARE运算之后是另一个SQUARE运算(步骤2A之后是另一个步骤2A)揭示了指数的那个比特等于0。因而,通过简单地观察电消耗曲线可以接连地发现指数d的比特。
为了补偿该缺陷,可以仅通过MULT函数而不使用SQUARE函数来实施步骤2A和2B(或者步骤2A’和2B’)。然而,对电消耗的更精细的分析使得可以区分步骤2A与步骤2B(或者步骤2A’与步骤2B’),因为算法A1或A1’不是规则的。实际上,在该情况中,当两个乘法对应于连续执行两个步骤2A(指数比特等于0)或者对应于执行步骤2A和其后的步骤2B(指数比特等于1)的时候,这两个连续的乘法之间的时间是不同的。攻击者因而可以“放大”在乘法之间分布的消耗曲线部分,并且可以观察到揭示了条件分支的时间不对称性以及从而观察到指数比特的值。
下面的算法A2是算法A1的可补偿该缺陷的版本。该算法称为“平方&总是乘法”,这是因为:由于双条件分支“如果”和“否则”,因此当指数d的比特等于0时,在求平方之后插入了使用假参数(dummyparameter)b的假乘法(dummy multiplication)。
算法A2---“平方&总是乘法”求幂
输入:
整数“m”和“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:a=md modulo n
步骤1:a=1,b=1
步骤2:对于在v-1和0之间的s进行:
(步骤2A)a=(a×a)mod n                 (平方)
(步骤2B)如果dv-s=1,则a=(a×m)mod n  (乘法)
否则b=(a×m)mod n                     (乘法)
步骤3:输出结果a
图2示出了由于执行算法A2产生的电消耗。观察到消耗峰值的规则性,其对应于连续的步骤2A和2B,这针对攻击SPA而保护了算法。因此假设双条件分支“如果”和“否则”不产生任何可通过SPA分析而检测到的峰值,这是因为:由于总是执行乘法,因此无法区分条件是真还是假。算法A2称为“规则的”,因为攻击者看到的是连续的相同步骤。然而,其与原子化原则(atomicity principle)并不匹配。
由B.Chevallier-Mames、M.Ciet和M.Joye在题为“Low-CostSolutions for Preventing Simple Side-Channel Analysis:Side-ChannelAtomicity”(公布于IEEE Transactions on Computers,2004年,第53卷,第6期(2004年6月),第760-768页)中介绍了原子化原则。还在国际申请WO 03 083 645或专利US 7 742 595中描述了原子化原则。
对原子化原则的应用导致将不规则循环(例如由算法A1的步骤2A和2B构成的循环,或者由算法A1’的步骤2A’和2B’构成的循环)变换成规则的乘法系列,而不需要为了在执行算法时的时间增益来使用任何假乘法。
例如,下面称为“总是乘法”的求幂算法A3是算法A1“平方&乘法”的原子版本。该算法是完全规则的,因为其仅包括乘法,并且主循环的每个迭代仅包括一个乘法。
算法A3---“总是乘法”,原子版本,从左到右
输入:
整数“m”和“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:md modulo n
步骤1:R0=1,R1=m,s=v-1,k=0
步骤2:只要s≥0就进行:
(步骤2A)R0=R0×Rk mod n
(步骤2B) k = k ⊕ d s ; s=s-1+k
步骤3:输出结果R0
图3示出了算法A3的电消耗曲线并示出了电消耗的峰值的规则性。
在该算法中,一些乘法是不同变量的乘法,而另一些乘法是相同变量的乘法。目前在作者为F.Amiel、B.Feix、M.Tunstall、C.Whelan和W.Marnane的文章“Distinguishing Multiplications from Squaring Operations”(Selected Areas in Cryptography,Lecture Notes in Computer Science的第5381卷,第346-360页,Springer,2008)中描述了隐藏的信道分析方法,其使用两个不同变量的乘法与两个相同变量的乘法(等效于平方运算)之间的固有差(intrinsic difference),即,与第一个的结果相比,第二个的结果就平均来看具有较低的汉明权重。
算法A3“总是乘法”因此暴露于这种攻击,因为其含有不同项的乘法和相同项的乘法。
算法A2“平方&总是乘法”对于这种攻击不敏感,因为在步骤2B执行的乘法都是不同变量的乘法,并且步骤2A是利用SQUARE函数来执行的。然而,由于其包括假乘法而具有非优化的执行时间的缺陷。另外,存在一种称为“安全错误(safe errors)”的攻击,其允许检测出算法所包括的假运算。这些攻击包括:在特定时间在加密计算中注入错误,以及观察计算结果是正确还是错误的。这种施加到算法A2的攻击使得可以获知乘法是在“如果”之后进行还是在“否则”之后进行。实际上,在第二种情况中,假乘法的结果并不用于计算最终结果。因此,在其中条件分支“否则”起作用的循环中注入错误并不影响结果,并且使得可以获知已保留条件分支“否则”而不是“如果”分支。
因此,可能希望提供一种用于执行求幂计算的方法,该方法免受刚才所提及的隐藏信道攻击,另外在执行速度方面也可得到优化。
发明内容
因而,本发明的实施例涉及一种在电子设备中实现的免受隐藏信道攻击的迭代计算方法,用于计算按照指数d来对数据m求幂的结果,并且所述方法包括通过所述电子设备的至少一个计算块来执行的大尺寸变量的乘法,其仅包括相同的大尺寸变量的乘法,不同的大尺寸变量x、y的任何乘法均被分解成相同的大尺寸变量的乘法的组合。
根据一个实施例,通过从下面的公式推导出的等效公式或者下面的公式之一,将两个不同的大尺寸变量x、y的乘法分解成相同的大尺寸变量的乘法的组合:
x×y=[(x+y)×(x+y)-x×x-y×y]/2
x×y=(x+y)×(x+y)/2-x×x/2-y×y/2
x×y=(x+y)×(x+y)/2-[x×x+y×y]/2
x×y=[(x+y)×(x+y)-x×x]/2-y×y/2
x×y=[(x+y)×(x+y)-y×y]/2-x×x/2
x×y=[(x+y)/2]×[(x+y)/2]-[(x-y)/2]×[(x-y)/2]
x×y=[(x+y)×(x+y)]/4-[(x-y)×(x-y)]/4
x×y=[(x+y)×(x+y)-(x-y)×(x-y)]/4
根据一个实施例,通过用于计算平方函数的至少一个计算块来执行相同的大尺寸变量的所有乘法。
根据一个实施例,该方法不包括任何假乘法。
根据一个实施例,该方法包括:通过用于计算乘法函数或平方函数的两个计算块来同时执行大尺寸变量的两个乘法。
根据一个实施例,该方法包括:同时执行大尺寸变量的假乘法以及大尺寸变量的非假乘法,从而使得一计算块在另一计算块起作用时不会是空闲的。
本发明的实施例涉及一种免受隐藏信道攻击的设备,其被配置以便计算按照指数d来对数据m求幂的结果,该设备包括用于执行大尺寸变量的乘法的至少一个计算块,所述设备被配置以便:通过将不同的大尺寸变量x、y的任何乘法分解成相同的大尺寸变量的乘法的组合,仅执行相同的大尺寸变量的乘法。
根据一个实施例,所述设备被配置以便通过从下面的公式推导出的等效公式或下面的公式之一,将两个不同的大尺寸变量x、y的乘法分解成相同的大尺寸变量的乘法的组合:
x×y=[(x+y)×(x+y)-x×x-y×y]/2
x×y=(x+y)×(x+y)/2-x×x/2-y×y/2
x×y=(x+y)×(x+y)/2-[x×x+y×y]/2
x×y=[(x+y)×(x+y)-x×x]/2-y×y/2
x×y=[(x+y)×(x+y)-y×y]/2-x×x/2
x×y=[(x+y)/2]×[(x+y)/2]-[(x-y)/2]×[(x-y)/2]
x×y=[(x+y)×(x+y)]/4-[(x-y)×(x-y)]/4
x×y=[(x+y)×(x+y)-(x-y)×(x-y)]/4
本发明实施例还涉及一种根据上述实施例之一的电子设备,其被配置以便通过用于计算平方函数的至少一个计算块来执行相同的大尺寸变量的所有乘法。
根据一个实施例,该电子设备被配置以便不执行假乘法。
根据一个实施例,该电子设备包括用于计算乘法函数或平方函数的两个计算块,并且被配置以便通过所述两个计算块来同时执行大尺寸变量的两个乘法。
根据一个实施例,该电子设备被配置以便:同时执行大尺寸变量的假乘法以及大尺寸变量的非假乘法,从而使得一计算块在另一计算块起作用时不会是空闲的。
本发明实施例还涉及一种在半导体芯片上的集成电路,其包括根据上述实施例之一的集成电路。
本发明的实施例还涉及一种便携式物体,其包括根据上述实施例之一的集成电路。
附图说明
下文将结合附图来描述本发明的实施例,其中:
图1如前所述示出了执行第一常规求幂算法的元件的电消耗曲线;
图2如前所述示出了执行第二常规求幂算法的元件的电消耗曲线;
图3如前所述示出了执行第三常规求幂算法的元件的电消耗曲线;
图4示出了执行根据本发明的算法的元件的电消耗曲线;
图5A、5B示出了实施根据本发明的第一求幂算法的电子设备的两个变型;以及
图6A、6B示出了实施根据本发明的第二求幂算法的电子设备的两个变型。
具体实施方式
本发明涉及一种仅包括相同的大尺寸变量的乘法的加密计算方法。其基于利用以下两个公式之一将两个不同的大尺寸变量x、y的乘法变换为相同的大尺寸变量的乘法的组合:
(i)x×y=[(x+y)×(x+y)-x×x-y×y]/2
(ii)x×y=[(x+y)/2]×[(x+y)/2]-[(x-y)/2]×[(x-y)/2]
实施公式(i)包括以下内容:通过三个对函数MULT(a,b)的调用来替换一个对函数MULT(a,b)的调用,以及执行一个加法、两个减法和一个被2相除的除法。实施公式(ii)包括以下内容:通过两个对函数MULT的调用来替换一个对函数MULT(a,b)的调用,以及执行一个加法、两个减法和两个被2相除的除法。这些乘法根据所考虑的应用可以是模数的(modular)或者不是模数的。该方法可以是求幂计算RSA、在加密方法ECC(椭圆曲线加密)中的标量乘法,等等。
在实施例变型中,通过对函数SQUARE(a)的调用来替换对函数MULT(a,b)的调用,因为这些调用通常在a=b的情况下进行。函数SQUARE通常被更快地执行,其允许优化该方法的整体执行时间。
该方法因而免受上述攻击,其包括将两个不同变量的乘法与两个相同变量的乘法区分开来。
下面的算法A4是根据本发明的求幂算法的示例实施例,在原子版本中从左到右使用公式(i):
算法A4
输入:消息“m”和模“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:md mod n
步骤1:R0=1,R1=m mod n,R2=1,R3=(m×m)/2mod n
步骤2:u=0,s=2,t=1,i=v-1
步骤3:只要i≥0就进行:
(步骤3A)Ru=Ru×Ru mod n
(步骤3B)Rs=Rs/2mod n
(步骤3C)如果(u≠s)则Rs=Ru+Rt mod n
否则Rs=R2-Rt mod n
(步骤3D)s=(u+2)mod 4,u=di*t*s,t=u+(s>>1)
(步骤3E) i = i - ( ( u ⊕ s ) > > 1 )
步骤3:输出结果R0
在算法A4和在以下描述的算法中:
表示变量a和b的按比特异或;
-“a>>b”表示移到变量a的右边b个比特;
-a*b表示小尺寸变量的乘法,在执行该乘法时不调用函数MULT或函数SQUARE,即,不调用乘法或平方块。
可见,步骤3A仅包括相同项的乘法。此外,该算法不包括假乘法。另外,在该实施例中,有利地提供变量u、s、t和步骤3B至3E来规则化在每个计算循环处的乘法之间执行的运算,从而使得在执行两个乘法之间不出现会根据指数的比特值变化的时间差。实际上,尽管被2相除、加法以及减法的执行时间可以忽略,然而攻击者可以“放大”对应于这些运算的电消耗曲线,从而检测到揭示了过程中的密钥的比特值的线索。
在算法A4中,如下实现公式(i):可观察到,算法A1中的步骤2B的乘法的第二运算对象是常数且值为m。该观察使得可以如通常情况中公式(i)所要求的那样仅以相同项的两个而不是三个乘法来替换不同项的该乘法。实际上,考虑下面的公式(i’):
(i’)x×m=[(x+m)×(x+m)-x×x]/2-(m×m)/2
该公式使得可以对于所有求幂进行一次计算(m×m),这使得其在计算时间方面的“成本”可忽略。在算法A4中,m被寄存在R1中,而(m×m)/2mod n被寄存在R3中。
使用特定的开发和仿真工具开发该算法,其运算不能轻易地仅通过对其进行读取而理解。然而,可通过参考所示出的常规算法A1并通过考虑在步骤2限定的初始条件中对步骤3A至3E的执行来理解该算法的运算。可能出现两种情况:
1)指数的比特di的值为0:
-该算法计算R0=R0×R0(其对应于算法A1的步骤2A)。
2)比特di的值为1,该算法进行三个循环:
-R0=R0×R0(其对应于算法A1的步骤2A)
-R2=(R0+m)×(R0+m)/2-m×m/2,然后
-R0=R0×R0/2以及R0=R2-R0(其对应于利用公式(i’)所实施的算法A1的步骤2B)。
图4示出了执行算法A4的元件的电消耗分布。电消耗曲线仅具有与对函数MULT(或SQUARE)的调用相对应的连续峰值。这样的消耗曲线不允许推导出秘密指数的比特值,因此防止了攻击SPA。另一方面,由于该方法仅包括相同项的乘法,因此无法应用包括对两个不同变量的乘法与两个相通变量的乘法进行区分的攻击。
下面的算法A5是根据本发明的求幂算法的另一实例,这里在原子版本中从左到右使用公式(ii):
算法A5
输入:消息“m”和模“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:md mod n
步骤1:R0=1,R1=m mod n,R2=1
步骤2:u=0,s=2,w=2,t=0,i=v-1
步骤3:只要i≥0就进行:
(步骤3A)Ru=Ru×Ru mod n
(步骤3B)如果(w=0)则Rw=Rt-R(t+1)mod3 mod n
否则Rw=Rt+R(t+1)mod3 mod n
(步骤3C)Rs=Rs/2 mod n
(步骤3D)t=u,u=w*di,s=(u+2)mod 4,
Figure BDA0000137062910000111
(步骤3E)i=i-(w>>1)
步骤3:输出结果R0
算法A5具有与算法A4相同的电消耗分布,并且因此提供了针对上述攻击的相同程度的保护。
可以通过参考上述常规算法A1并考虑在步骤2中限定的初始条件中对步骤3A至3E的执行来理解算法A5的运算。可能出现两种情况:
1)指数的比特di的值为0:
-该算法计算R0=R0×R0(其对应于算法A1的步骤2A)。
2)比特di的值为1,该算法进行循环“只要”的三个迭代:
-R0=R0×R0(其对应于算法A1的步骤2A)
-R2=((R0+m)/2)×((R0+m)/2)
-R0=((R0-m)/2)×((R0-m)/2)以及R0=R2-R0(其对应于利用公式(ii)所实现的算法A1的步骤2B)。
图5A以框图形式示出了电子设备DV1,其被配置以便执行包括算法A4或A5的加密计算。设备DV1可以是布置在便携式支撑体CD(诸如塑料卡)上的半导体芯片上的集成电路,其整体形成芯片卡。
设备DV1包括处理器PROC、计算块MB1(其被配置以便执行大尺寸变量a、b的函数MULT(a,b))、存储器MEM1和通信接口电路IC。接口电路IC可以是接触型或无接触型,例如通过感应耦合或电耦合操作的接口电路RF或UHF。计算块MB1可以是配备有可编程中央单元的协处理器、状态机类型的全硬件协处理器,或者由处理器来执行的乘法子程序。
在常规的方式中,当变量的尺寸(比特数)高于处理器PROC的计算寄存器的比特数时,该变量称为“大尺寸”。后者在不调用计算块MB1的情况下进行小尺寸变量(即,其尺寸小于或等于其计算寄存器的尺寸)的乘法,而对于大尺寸变量的乘法调用计算块MB1。例如,如果计算寄存器的尺寸是32比特,则大尺寸变量是超过32比特的变量。
存储器MEM1耦合到处理器PROC并允许设备存储密钥d。处理器PROC通过接口电路IC来接收要被加密或签名的消息,并发送被加密的消息或者类型Fd(m)的签名,其中F是基于密钥d的加密函数,包括通过算法A5或A6所执行的md modulo(n)类型的求幂计算。在求幂计算期间,处理器PROC通过对计算块MB1提供总是相等的变量a、b来调用计算块MB1,并且计算块MB1输出a×b。
图5B以框图形式示出了电子设备DV2,其被配置以便执行包括算法A4或A5的加密计算。设备DV2不同于设备DV1之处仅在于:由配置为执行函数SQUARE的计算块SB1替换了计算块MB1。如前所述,计算块SB1可以是配备有可编程中央单元的协处理器、全硬件协处理器,或者由处理器来执行的平方子程序。
根据本发明的求幂算法还可以从上述算法A1’导出,其构成了算法A1的“从右到左”变型。尽管在该实施例中,在乘法期间没有运算对象是恒定的,但是公式(i)和公式(ii)在复杂性方面保持等同。实际上,公式(i)要求计算三个乘法(a+b)×(a+b)、a×a和b×b而不是两个乘法,但是对于步骤2B来说计算b×b是必要的。因而,这三个运算允许实施步骤2A和2B。这在使用公式(ii)期间是相同的,其要求三个乘法:两个执行步骤2A,而一个执行步骤2B。
现在将考虑对公式(ii)的使用作为非限制性示例,公式(ii)在本质上更灵活,因为其通常要求两个乘法而不是三个乘法。
下面的算法A6是根据本发明的求幂算法的另一示例实施例,其在原子版本中从右到左实现公式(ii):
算法A6
输入:消息“m”和模“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:md mod n
步骤1:R0=m mod n,R1=1,R2=1
步骤2:u=2,s=0,w=0,t=2,i=0
步骤3:只要i≤l-1就进行:
(步骤3A)u=2-s0-s1,w=2t mod 4,
t=(2+2s1)mod 3,s=2di-w-t0
(步骤3B)如果(u=2)则Ru=Rw+R1mod n
否则Ru=Rw-R1mod n
(步骤3C)Rt=Rt/2mod n
(步骤3D)Rs=Rs×Rs mod n
(步骤3E)i=i+1-s[0]-s[1]
步骤3:输出结果R1
算法A6具有与算法A4或A5相同的消耗分布,并且因此提供了针对上述攻击的相同程度的保护。
可以通过参考上述常规算法A1并考虑在步骤2限定的初始条件中对步骤3A至3E的执行来理解该算法的运算。可能出现两种情况:
1)指数的比特di的值为0:
-该算法计算R0=R0×R0(其对应于算法A1’的步骤2B)。
2)比特di的值为1,该算法进行循环“只要”的三个迭代:
-R2=((R0+R1)/2)×((R0+R1)/2)
-R1=((R0-R1)/2)×((R0-R1)/2)以及R1=R2-R1(其对应于利用公式(ii)所实现的算法A1’的步骤2A)
-R0=R0×R0(其对应于算法A1’的步骤2B)。
根据本发明的求幂算法还可被设计为具有涉及两个不同计算块的并行架构,并允许同时进行两个不同的乘法(或两个平方运算)。实际上,当一个乘法被替换为两个乘法(从(i)导出的公式(ii)或公式(i’))或三个乘法(公式(i))时,这些乘法彼此独立并且因此可以同时执行。
在该情况下,可以提供特定的预防措施来避免造成可被分析SPA检测到的信息泄漏。特别地,可能希望攻击者无法区分出并行执行的是一个或两个乘法。为此,可以提供假运算。
可以注意到,当与用于计算结果所需的运算同时执行假运算时,在平行算法架构中提供假运算并不影响算法的执行时间。实际上,如果目标是例如通过两个计算块来对包括三个所需运算O1、O2、O3的序列的算法进行完全并行化,则这样的并行化要求提供假运算O4。在该情况下,该算法包括并行执行运算O1、O2,记为O1//O2,在此之后并行执行运算O3、O4,记为O3//O4。这样的并行化执行快于顺序执行O1、O2和O3,并且也快于执行O1//O2然后单独地执行运算O3。因此,这里认为当假运算总是与非假运算同时执行时遵守了原子化原则。
另外,从右到左的算法就并行化而言更加灵活。实际上,可注意到,如果在存储器中保存中间结果,算法A1’的步骤2B’可继续下去而不用等待步骤2A’的结果,而算法A1的步骤2A’和2B’必须被顺序执行。
下面的算法A7示出了根据本发明的求幂计算的示例实施例,其在原子版本中从右到左实现公式(ii):
算法A7
输入:
整数“m”和“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:md mod n
步骤1:a=1;b=m;extra=0;i=0;u=1;临时寄存器s1,s2,s3
步骤2:只要i≤v-1就进行:
x=(a-b)mod n
y=(a+b)mod n
如果di=1则
如果extra=0
如果u=1
s1=x×x mod n//s2=b×b mod n
x=(a-s1)/4 mod n
x=s2
x =s3
x=1
u=0
否则
a=y×y mod n//s3=s2×s2 mod n
a=(a-s1)/4 mod n
b=s2
s2=s3
extra=1
u=1
否则
如果为真
s1=x×x mod n//a=y×y mod n
a=(a-s1)/4 mod n
b=s2
x=s3
extra=0
x=0
否则
如果extra=0
如果为真
b=b×b mod n//x=y×y mod n
x=(a-s1)/4 mod n
x=s2
x=s3
x=0
x=0
如果di+1=0以及extra=1
b=s2
extra=0
i=i+1
否则
x=s2
x=0
x=i+1
i=i+u
步骤3:输出结果a
符号“//”表示两个并行化的计算步骤。该算法的原子版本含有用于隐藏(规则化)在乘法之间的变量处理的假运算。这些假运算被寄存在寄存器x中。只有运算x=(a-b)mod n不是假运算。同样,假条件分支被用于规则化由循环所使用的分支的数目。
下面的算法A8是算法A7的等效变型。
算法A8
输入:
整数“m”和“n”,例如m<n
v个比特的指数“d”,例如d=(dv-1dv-2...d0)2
输出:md mod n
步骤1:u=1;t0=0;t1=0;t2=0;s0=1;s1=m;s2=0;s3=0;s4=0;s5=0;s6=0
步骤2:只要t0≤v-1就进行:
(步骤2A)j=dt0*(v1+u+1)
(步骤2B)s5=(R0-R1)/2mod n
(步骤2C)s6=(R0+R1)/2mod n
(步骤2D)SM1(j,0)=sM1(j,1)×sM1(j,1)mod n//sM1(j,2)=sM1(j,3)×sM1(j,3)mod n
(步骤2E)sM1(j,4)=s0-s2mod n
(步骤2F)sM1(j,5)=s3
(步骤2G)sM1(j,6)=s4
(步骤2H)t1=M1(j,7)
(步骤2I)u=M1(j,8)
(步骤2J)k=1-(1-dt0+1)*t1
(步骤2K)sM2(k,0)=s3
(步骤2L)tM2(k,1)=0
(步骤2M)tM2(k,2)=tM2(k,2)+1
(步骤2N)t0=t0+u
步骤3:输出结果s0
算法A8使用寄存在存储器中的两个矩阵M1和M2,含有常量。
矩阵M1:
115655501
064301311
253155500
250601501
矩阵M2:
110
522
M1和M2的各自的行和列的索引分别标记为:对于行是从0到3以及从0到1,对于列是从0到8以及从0到2。
图6A以框图的形式示出了电子设备DV3,其被配置以便执行包括算法A7的加密计算。设备DV3不同于设备DV1之处仅在于其包括函数MULT(a,b)的两个计算块MB1、MB2而不是一个。算法A7具有完全并行的结构,这两个计算块总是同时起作用而不存在这样的计算循环,即,在该计算循环中,一个计算块起作用而另一个块处于空闲。
图6B以框图的形式示出了电子设备DV4,其被配置以便执行包括算法A7的加密计算。设备DV4不同于设备DV3之处仅在于其包括函数SQUARE(a)的两个计算块SB1、SB2而不是函数MULT(a,b)的两个计算块。这两个计算块总是同时起作用而不存在这样的计算循环,即,在该计算循环中,一个计算块起作用而另一个块处于空闲。
如前所述,计算块MB1、MB2、SB1、SB2可以是配备有可编程中央单元的协处理器、全硬件协处理器或者由处理器执行的乘法或平方子程序。
对于本领域技术人员清楚地是,本发明允许各种实施例和应用,尤其是各种其它形式的算法和执行该算法的加密设备。
本发明的实施例可特别地使用等效于上述公式(i)和(ii)的公式,例如:
等效于(i)的公式示例:
x×y=(x+y)×(x+y)/2-x×x/2-y×y/2
x×y=(x+y)×(x+y)/2-[x×x+y×y]/2
x×y=[(x+y)×(x+y)-x×x]/2-y×y/2
x×y=[(x+y)×(x+y)-y×y]/2-x×x/2
等效于公式(ii)的公式的示例:
x×y=[(x+y)×(x+y)]/4-[(x-y)×(x-y)]/4
x×y=[(x+y)×(x+y)-(x-y)×(x-y)]/4,等等。
另外,在一些实施例中,通过上述公式之一将两个不同变量的乘法变换为相同变量的两个或三个乘法可以包括:将乘法变换为相同的大尺寸变量的多个(即,多于两个或三个)乘法,然而其中,所述大尺寸小于要相乘的两个不同变量的尺寸。例如在其中使用函数SQUARE来执行相同变量的乘法的情况中,每个平方运算均可被分解为较小尺寸变量的多个平方运算。通过使用例如Karatsuba-Ofman公式,两个相同变量的乘法可由6个或9个平方运算(其尺寸等于初始变量的尺寸的一半)来替换。
另外在根据本发明的算法中,虽然上文明确地排除了提供不同的大尺寸变量的乘法,然而,本发明的一些实施例包括这样的不同大尺寸变量的乘法,只要这些大尺寸变量是假类型的,或者不易受到隐藏信道攻击。换句话说,突出这样的乘法不会提供任何暗示来允许发现指数的比特。因此在本发明的概念中认为这样的乘法并不存在,因为其独特地解决了使算法免于隐藏信道攻击。
最后,尽管上述算法被设计为实现原子化原则并且因而提供了针对SPA攻击的最佳安全性同时具有优化的计算时间,但是本发明的范围并不排除实现了公式(i)或(ii)的这些算法的非原子实施例。

Claims (14)

1.一种在电子设备(DV1,DV2,DV3,DV4)上实现的免受隐藏信道攻击的迭代计算方法,用于计算按照指数d来对数据m求幂的结果,所述方法包括通过所述电子设备的至少一个计算块(MB1,MB2,SB1,SB2)来执行的大尺寸变量的乘法,
仅包括相同的大尺寸变量的乘法,不同的大尺寸变量x、y的任何乘法均被分解成相同的大尺寸变量的乘法的组合。
2.根据权利要求1的方法,其中,通过以下公式或者从所述公式导出的等效公式之一,将两个不同的大尺寸变量x、y的乘法分解成相同的大尺寸变量的乘法的组合:
x×y=[(x+y)×(x+y)-x×x-y×y]/2
x×y=(x+y)×(x+y)/2-x×x/2-y×y/2
x×y=(x+y)×(x+y)/2-[x×x+y×y]/2
x×y=[(x+y)×(x+y)-x×x]/2-y×y/2
x×y=[(x+y)×(x+y)-y×y]/2-x×x/2
x×y=[(x+y)/2]×[(x+y)/2]-[(x-y)/2]×[(x-y)/2]
x×y=[(x+y)×(x+y)]/4-[(x-y)×(x-y)]/4
x×y=[(x+y)×(x+y)-(x-y)×(x-y)]/4。
3.根据权利要求1和2之一的方法,其中,通过用于计算平方函数的至少一个计算块(SB1,SB2)来执行相同的大尺寸变量的所有乘法。
4.根据权利要求1至3之一的方法,其不包括任何假乘法。
5.根据权利要求1和3之一的方法,其包括:通过用于计算乘法函数或平方函数的两个计算块(MB1,MB2,SB1,SB2)来同时执行大尺寸变量的两个乘法。
6.根据权利要求5的方法,其包括:同时执行大尺寸变量的假乘法以及大尺寸变量的非假乘法,从而使得一计算块在另一计算块起作用时不会是空闲的。
7.一种免受隐藏信道攻击的设备(DV1,DV2,DV3,DV4),其被配置以便计算按照指数d来对数据m求幂的结果,所述设备包括用于执行大尺寸变量的乘法的至少一个计算块(MB1,MB2,SB1,SB2),
所述设备被配置以便:通过将不同的大尺寸变量x、y的任何乘法分解成相同的大尺寸变量的乘法的组合,仅执行相同的大尺寸变量的乘法。
8.根据权利要求7的设备,其被配置以便:通过以下公式或者从所述公式导出的等效公式之一,将两个不同的大尺寸变量x、y的乘法分解成相同的大尺寸变量的乘法的组合:
x×y=[(x+y)×(x+y)-x×x-y×y]/2
x×y=(x+y)×(x+y)/2-x×x/2-y×y/2
x×y=(x+y)×(x+y)/2-[x×x+y×y]/2
x×y=[(x+y)×(x+y)-x×x]/2-y×y/2
x×y=[(x+y)×(x+y)-y×y]/2-x×x/2
x×y=[(x+y)/2]×[(x+y)/2]-[(x-y)/2]×[(x-y)/2]
x×y=[(x+y)×(x+y)]/4-[(x-y)×(x-y)]/4
x×y=[(x+y)×(x+y)-(x-y)×(x-y)]/4。
9.根据权利要求7和8之一的电子设备,其被配置以便:通过用于计算平方函数的至少一个计算块(SB1,SB2)来执行相同的大尺寸变量的所有乘法。
10.根据权利要求7至9之一的电子设备,其被配置以便不执行假乘法。
11.根据权利要求7至9之一的电子设备,其包括用于计算乘法函数或平方函数的两个计算块(MB1,MB2,SB1,SB2),并被配置以便:通过所述两个计算块来同时执行大尺寸变量的两个乘法。
12.根据权利要求11的电子设备,其被配置以便:同时执行大尺寸变量的假乘法以及大尺寸变量的非假乘法,从而使得一计算块在另一计算块起作用时不会是空闲的。
13.一种在半导体芯片上的集成电路,其包括根据权利要求7至12之一的集成电路。
14.一种便携式物体(CD),其包括根据权利要求7至12之一的集成电路。
CN2012100406976A 2011-02-25 2012-02-21 包括求幂运算的加密方法 Pending CN102684876A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1151569 2011-02-25
FR1151569A FR2972064B1 (fr) 2011-02-25 2011-02-25 Procede de cryptographie comprenant une operation d'exponentiation

Publications (1)

Publication Number Publication Date
CN102684876A true CN102684876A (zh) 2012-09-19

Family

ID=45558653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100406976A Pending CN102684876A (zh) 2011-02-25 2012-02-21 包括求幂运算的加密方法

Country Status (4)

Country Link
US (1) US20120221618A1 (zh)
EP (1) EP2492804B1 (zh)
CN (1) CN102684876A (zh)
FR (1) FR2972064B1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246494A (zh) * 2013-05-27 2013-08-14 上海爱信诺航芯电子科技有限公司 一种抵抗能量分析和错误攻击的安全模幂计算方法
CN104049940A (zh) * 2013-03-15 2014-09-17 英特尔公司 用于减少短整数乘法数量的系统、装置和方法
CN106571922A (zh) * 2015-10-12 2017-04-19 瑞昱半导体股份有限公司 解密装置、方法及电路
CN106571916A (zh) * 2015-10-12 2017-04-19 瑞昱半导体股份有限公司 解密装置、方法及电路
CN107104785A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 测试电路对侧信道分析的抵抗力的方法
CN110247929A (zh) * 2019-06-28 2019-09-17 兆讯恒达微电子技术(北京)有限公司 一种椭圆加密算法协处理器防注入式攻击的方法
CN111190569A (zh) * 2019-12-30 2020-05-22 中国科学技术大学 一种基于Intel QAT的同态加密卸载方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2535804A1 (en) * 2011-06-17 2012-12-19 Thomson Licensing Fault-resistant exponentiation algorithm
FR2997780B1 (fr) 2012-11-07 2016-01-22 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation modulaire
EP2793123A1 (en) * 2013-04-16 2014-10-22 Gemalto SA Method to securely execute a modular exponentiation
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
TWI575924B (zh) * 2015-10-06 2017-03-21 瑞昱半導體股份有限公司 解密裝置、方法及電路
TWI580243B (zh) 2015-10-06 2017-04-21 瑞昱半導體股份有限公司 解密裝置、方法及電路

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3545580A1 (de) * 1985-01-12 1986-07-17 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Verfahren und schaltungsanordnung zur multiplikation zweier operanden fuer rechenanlagen
CN1397035A (zh) * 2000-01-26 2003-02-12 格姆普拉斯公司 在电子部件中使用公共密钥加密算法的模求幂算法
CN1148643C (zh) * 1996-04-05 2004-05-05 冲电气工业株式会社 模幂运算装置
EP1381936B1 (fr) * 2001-04-27 2005-07-06 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique
WO2005069122A2 (fr) * 2003-12-19 2005-07-28 Gemplus Procede cryptographique d'exponentiation modulaire protege contre les attaques de type dpa
CN1667999A (zh) * 2005-01-18 2005-09-14 中国电子科技集团公司第三十研究所 一种移动自组网络中移动节点间的保密通信方法
CN101346691A (zh) * 2005-12-26 2009-01-14 格姆普拉斯公司 包括安全模幂以避免隐蔽通道攻击的加密方法、用于执行所述方法的加密处理器以及相关的芯片卡
US20090092245A1 (en) * 2006-03-31 2009-04-09 Axalto Sa Protection Against Side Channel Attacks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2838210B1 (fr) 2002-04-03 2005-11-04 Gemplus Card Int Procede cryptographique protege contre les attaques de type a canal cache
WO2007051770A1 (fr) * 2005-11-04 2007-05-10 Gemplus Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques
EP1994465A1 (fr) * 2006-03-16 2008-11-26 Gemplus Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique
EP2015171A1 (fr) * 2007-06-29 2009-01-14 Gemplus Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés sans la connaissance de l'exposant public, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
FR2969787B1 (fr) * 2010-12-24 2013-01-18 Morpho Protection des applets

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3545580A1 (de) * 1985-01-12 1986-07-17 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Verfahren und schaltungsanordnung zur multiplikation zweier operanden fuer rechenanlagen
CN1148643C (zh) * 1996-04-05 2004-05-05 冲电气工业株式会社 模幂运算装置
CN1397035A (zh) * 2000-01-26 2003-02-12 格姆普拉斯公司 在电子部件中使用公共密钥加密算法的模求幂算法
EP1381936B1 (fr) * 2001-04-27 2005-07-06 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique
WO2005069122A2 (fr) * 2003-12-19 2005-07-28 Gemplus Procede cryptographique d'exponentiation modulaire protege contre les attaques de type dpa
CN1667999A (zh) * 2005-01-18 2005-09-14 中国电子科技集团公司第三十研究所 一种移动自组网络中移动节点间的保密通信方法
CN101346691A (zh) * 2005-12-26 2009-01-14 格姆普拉斯公司 包括安全模幂以避免隐蔽通道攻击的加密方法、用于执行所述方法的加密处理器以及相关的芯片卡
US20090092245A1 (en) * 2006-03-31 2009-04-09 Axalto Sa Protection Against Side Channel Attacks

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049940A (zh) * 2013-03-15 2014-09-17 英特尔公司 用于减少短整数乘法数量的系统、装置和方法
CN104049940B (zh) * 2013-03-15 2018-08-10 英特尔公司 用于减少短整数乘法数量的系统、装置和方法
CN103246494A (zh) * 2013-05-27 2013-08-14 上海爱信诺航芯电子科技有限公司 一种抵抗能量分析和错误攻击的安全模幂计算方法
CN106571922A (zh) * 2015-10-12 2017-04-19 瑞昱半导体股份有限公司 解密装置、方法及电路
CN106571916A (zh) * 2015-10-12 2017-04-19 瑞昱半导体股份有限公司 解密装置、方法及电路
CN106571922B (zh) * 2015-10-12 2020-03-10 瑞昱半导体股份有限公司 解密装置、方法及电路
CN107104785A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 测试电路对侧信道分析的抵抗力的方法
CN110247929A (zh) * 2019-06-28 2019-09-17 兆讯恒达微电子技术(北京)有限公司 一种椭圆加密算法协处理器防注入式攻击的方法
CN111190569A (zh) * 2019-12-30 2020-05-22 中国科学技术大学 一种基于Intel QAT的同态加密卸载方法

Also Published As

Publication number Publication date
FR2972064A1 (fr) 2012-08-31
EP2492804B1 (fr) 2013-09-04
EP2492804A1 (fr) 2012-08-29
FR2972064B1 (fr) 2013-03-15
US20120221618A1 (en) 2012-08-30

Similar Documents

Publication Publication Date Title
CN102684876A (zh) 包括求幂运算的加密方法
Danger et al. A synthesis of side-channel attacks on elliptic curve cryptography in smart-cards
US9772821B2 (en) Cryptography method comprising an operation of multiplication by a scalar or an exponentiation
CN107040362B (zh) 模乘设备和方法
Savaş et al. Finite field arithmetic for cryptography
Koziel et al. Low-resource and fast binary edwards curves cryptography
Yen et al. Relative doubling attack against montgomery ladder
US20190089523A1 (en) Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
US9405729B2 (en) Cryptographic method comprising a modular exponentiation operation
US20100287384A1 (en) Arrangement for and method of protecting a data processing device against an attack or analysis
Clavier et al. Square always exponentiation
JP2008304920A (ja) マスキングされたモンゴメリーのモジュラー乗算方法及び関連装置
Medwed et al. Arithmetic logic units with high error detection rates to counteract fault attacks
Pirotte et al. Design of a fully balanced ASIC coprocessor implementing complete addition formulas on Weierstrass elliptic curves
CN105337734A (zh) 包括错误检测的椭圆曲线加密方法
Feix et al. Defeating with fault injection a combined attack resistant exponentiation
US20080130877A1 (en) Method of Performing Secure and Compact Exponentiation for Cryptography
Park et al. An improved side channel attack using event information of subtraction
US20150092940A1 (en) Method for Complete Atomic Blocks for Elliptic Curves in Jacobian Coordinates over Prime Fields Countermeasure for Simple-Side Channel Attacks and C-Safe-Fault Attacks for Right-to-Left Algorithms
Kabin et al. Unified field multiplier for ECC: Inherent resistance against horizontal SCA attacks
Ding et al. Further research on N-1 attack against exponentiation algorithms
Koziel Low-Resource and Fast Elliptic Curve Implementations over Binary Edwards Curves
Monfared et al. Secure and efficient exponentiation architectures using Gaussian normal basis
Ha et al. Power Analysis Attacks on the Right-to-Left Square-Always Exponentiation Algorithm.
Wang et al. A new SPA attack on ECC with regular point multiplication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120919

WD01 Invention patent application deemed withdrawn after publication