CN1739094A - 防止隐蔽信道攻击的整数除法方法 - Google Patents
防止隐蔽信道攻击的整数除法方法 Download PDFInfo
- Publication number
- CN1739094A CN1739094A CN200380108764.2A CN200380108764A CN1739094A CN 1739094 A CN1739094 A CN 1739094A CN 200380108764 A CN200380108764 A CN 200380108764A CN 1739094 A CN1739094 A CN 1739094A
- Authority
- CN
- China
- Prior art keywords
- carry
- iteration
- addr
- described method
- add
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7261—Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Error Detection And Correction (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
- Time-Division Multiplex Systems (AREA)
- Circuits Of Receivers In General (AREA)
- Stereo-Broadcasting Methods (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种加密方法,包括类型为q=a div b和r=a mod b的整数除法,其中q为商,a为m位的数,b为n位的数,n小于或等于m,并且bn-1不为零,bn-1是b的最高有效位,在该方法期间的每次迭代中,循环下标i在1和m-n+1之间改变,执行数a的n位字A除以数b的部分除法,以便获得商q的位。根据本发明,在每次迭代中执行相同的操作,而不管获得的商位值是多少。在本发明的不同的实施例中,在每个迭代中执行下列操作之一:将数b加到字A/从字A减去数b;将数b或者数b的补数b加到字A;或在将更新的数据加到字A之后,以2n对更新数据(a或b)或者哑数据(c或c)作补操作。
Description
本发明涉及一种防止隐蔽信道类型攻击的整数除法方法。本发明对采用更通常的加密方法来执行除法操作特别有益,例如是秘密或公开密钥加密方法。这样的加密方法可以在诸如芯片卡之类的电子设备中实现。
加密方法的安全性在于它们能够让机密数据或者利用机密数据导出的数据保持隐密。
恶意用户可能采取攻击,旨在发现特别是在处理操作中包含和操作的机密数据,所述处理操作由执行加密方法的计算设备来完成。
在众所周知的攻击中,可以列举简单或差分隐蔽信道攻击。隐蔽信道攻击是指基于可从设备外部测量的物理量的攻击,并且直接分析(简单攻击)或依照统计法(差分攻击)分析所述物理量使发现在设备里执行的处理操作中包含和操作的数据成为可能。这些攻击已经特别地由Paul Kocher公开(Advances in Cryptology-CRYPTO′99,计算机科学讲课笔记第1666卷,第388-397页,Springer-Verlag,1999年)。
在可以用于上述目的的物理量当中,可以列举执行时间、电流消耗、由用于执行计算的组件部分辐射出来的电磁场等。这些攻击基于这样的事实,在执行一个方法期间,一个位的操作,即由特定的指令对其处理,依照该位的值和/或依照所述指令在上述物理量上留下特定的印记。
在过去的几年里,使用模取幂操作类型Y=XD作为基本运算的加密方法已经被广泛地研究,其中X、Y和D是整数。以举例形式,可以列举依照Diffie-Hellman密钥交换的RSA方法,或DSA签名方法。在保护这些方法免遭隐蔽信道攻击上已经作了显著的改进。
另一方面,没有研究使用整数除法类型q=a div b和r=a mod b作为基本操作来产生安全加密方法,其中a和b是两个操作数,q和r分别是整数除法a除以b的商和余数。a和/或b是秘密数据,例如方法的密钥的元素。例如,Barrett的方法(P.Barret,“Implementingthe RSA public key encryption algorithm on a standard digital signalprocessing”,计算机科学讲课笔记第263卷,第311-323页,SpringerVerlag,1987年)、Quisquater的方法(美国专利5,166,978,92年11月)或依照中国余数定理实现的RSA方法(J J Quisquater和CCouvreur,“Fast decipherment algorithm for RSA public keycryptosystem”,Electronics Letter,第18卷,第905-907页,1982年10月)是使用整数除法作为基本操作的加密方法。
用于实现整数除法的已知方法是所谓的“纸/笔”方法。在实践中该方法重复在用手执行这种操作时所使用的方法。下面陈述这种方法。
给定两个数据项m位的a=(am-1,...,a0)和n位的b=(bn-1,...,b0),n小于或等于m并且bn-1γ0,所谓的“纸/笔”除法方法计算商q=a div b和余数r=a div b。为此,所述方法连续执行n+1位的整数A除以n位整数b的几次运算。在实践中有必要使0[A/b<2,这是每当bn-1γ0的情况。
由于r<b,所以余数r是一个不超过n位的数。由于q=a div b[a div(bn-1*2n-1)=a div 2n-1=(am-1,...,an-1),bμbn-1*2n-1和(am-1,...,an-1)是m-n+1位的数,所以其商q的部分是一个不超过m-n+1位的数。在所述除法最后,把商q存储在最初包含数a的寄存器的m-n+1最低有效位中。把余数r的最高有效位存储在1位寄存器中用作在计算期间的进位,而把所述余数r的n-1最低有效位存储在最初包含数a的寄存器的n-1最高有效位中。
因为该工作以2为底进行,所以整数除法A div b的商位只有两个可能的值:0或1。从而执行操作A div b的简单方式由下述步骤组成,从A中减去b,继而测试结果:如果A-b的结果是正的,那么A div b=1,而如果A-b的结果是严格负的,那么A div b=0。
然后可以依照下列方法写出完整的除法:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
A=(0,am-1,...,am-n+1)
For j=1 to(m-n+1),do:
a<-SHLm-1(a,1);σ<-carry
A<-SUBn(A,b);σ<-σOR carry
if(﹁σ=TRUE)then A<-ADDn(A,b)
if not lsb(a)=1
End for
方法1
在该方法中,并且遍及以下方法,使用下列记号。
使用符号“<-”和记号y<-x来表明把包含数据项x的寄存器的内容加载到其内容被称作y的寄存器中。
A是一个n位的字,对应于最初包含数据项a的寄存器的n个最高有效位的内容。当然在每次迭代中修改A。
σ表明是否已经错误地执行了减法(即商位必须等于0还是1)。
﹁σ是变量σ的对于1的补(也被称为求反)。TRUE是恒定值,在一个例子中等于1。
lsb(a)是数a的最低权位,也被称为a的最低有效位。
SHLm+1(a,1)是在包含数据项a的m+1位寄存器中左移1位的操作,把留在寄存器的位存储在变量进位中,而把等于0的位作为最初包含数据a的寄存器的最低有效位输入。
ADDn(A,b)是把数b的n位加到字A的n位上的操作。应当注意,操作SHLn(a,1)等价于操作ADDn(a,a)。当然通过在适当的寄存器内容加法电路中相加分别包含A和b的两个寄存器的内容,来执行加法ADDn(a,b)。
SUBn(A,b)是从字A中减去数b的操作。当然通过在适当的电路中从包含字A的寄存器的内容中减去包含数据项b的寄存器的内容,来执行减法SUBn(A,b)。
最后,不恰当地说,但是为了清楚起见,相同的名称将要用于谈及寄存器及其内容。从而寄存器A实际上指的是包含数据项A的寄存器。
总之,方法1执行下列步骤:
-如果a<-SHLm+1(a,1)产生进位(σ=carry=1),那么这意味着am=1(在移位之前)并且因此必须从A中减去b。
-如果am+1=0(在移位之前)并且如果A<-SUBn(A,b)产生进位(carry=1),那么这意味着在减法之前A-bμ0并且因此必须从A中减去b。
-如果a<-SHLm+1(a,1)没有产生进位并且如果A<-SUBn(A,b)也没有产生进位(即如果在更新σ之后,σ为假(或﹁σ为TRUE)),那么这意味着在减法之前A-b<0,并且因此将不必从A中减去b。在这种情况下,所述方法执行加法运算A<-ADDn(A,b)以便还原值A。
方法1易遭受隐蔽信道攻击。这是因为,注意方法1在每次迭代中,依照值σ,即依照将要在当前迭代期间获得的商位值,来执行或不执行加法ADDn(A,b)。因此在迭代期间执行操作的数目依照在所述迭代期间获得的结果位而改变。然而,在每次迭代期间的电流消耗和/或每次迭代的持续时间依照执行的操作数目而改变。通过测量并研究例如当执行方法时由组件留下的痕迹,那么可能逐位地确定结果位的值。
同样已知用来执行整数除法的另一方法是“纸/笔”方法的变式,被称为“不复原”(不复原二进制除法算法,特别在J.J.F.Cavanagh,数字计算机算法中描述,McGraw-Hill公司,1984年)。
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
σ′<-1;A=(0,am-1,...,am-n+1)
for j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
if(σ′=TRUE)then A<-SUBn(A,b)
σ<-σOR carry
if not A<-ADDn(A,b)
σ<-σAND carry
if(σ=TRUE)then lsb(a)=1
σ′<-σ
End For
if(﹁σ=TRUE)then A<-ADDn(A,b)
方法2
与方法1相比较,所述方法使用新变量σ′来保存在先前迭代中获得的值σ。这里,依照值σ,执行加法或减法。换句话说,如果在迭代期间错误地从A中减去b,那么在后面的迭代期间,而不是像方法1一样在当前迭代的最后,来复原值A。
不管在迭代期间σ的值是多少,所述方法在每个迭代期间执行相同数目的操作。然而该预防措施不足以保护所述方法免受隐蔽信道攻击。这是因为,在每次迭代中,执行移位运算a<-SHLm+1(a,1),继而取决于值σ,进行加法A<-ADDn(A,b)或减法A<-SUBn(A,b)。
然而,减法的执行比加法操作花费更久并且消耗更多的能量。这是因为,通常用于实现所述方法的计算装置并不包括减法电路。通过首先计算b的2n的补,表示为
b,然后把
b加到A,加法的任何进位被存储在变量进位中,来执行减法操作。执行减法的方法由下列事实证明:根据
b的定义,b+
b=2n。因此,给出A-b=A+
b-2n=A+
bmod(2n),mod(2n)是模2n的简写。两个操作,一个对2n求补的操作和一个加法操作,对执行减法来说在实践中是必需的。
由于已知的整数除法方法不能防止隐蔽信道攻击,因此任何使用已知整数除法的加密方法不再能防止这种隐蔽信道攻击。
另外,据统计,50%的由除法获得的商位等于0,这意味着统计上所述方法补偿减法两个中就有一个执行错了。因此据统计,方法1的执行时间是方法2的执行时间的1.5倍。
鉴于当前加密方法的问题,本发明的首要目的是一种新颖的执行整数除法的方法,该方法受到免受隐蔽信道攻击的保护。
本发明的附加目的是实行一种执行时间非常短的整数除法的方法。
本发明的附加目的还是执行整数除法的方法,在执行期间只有包含原始数据项a的寄存器被修改,由商和结果代替,存储器的任何其它寄存器(并且特别地是最初包含数据项b的寄存器)在所述方法执行最后保持不变。
考虑该主要目标和这些辅助目标,本发明提出一种加密方法,在所述加密方法期间执行整数除法类型,q=a div b并且r=a mod b,a为m位的数,b为n位的数,n小于或等于m,并且bn-1不为零,bn-1是b的最高有效位,在该方法期间的每次迭代中,循环下标i在1和m-n+1之间改变,执行数a的n位字a除以数b的部分除法,以便获得商位q。
依照本发明,在每次迭代中执行相同的操作,而不管获得的商位值是什么。
从而,采用依照本发明的方法,不再可能根据在执行本发明方法期间留下的痕迹来确定结果位。
依照本发明方法的第一实施例,在每次迭代中,执行向字A加上数b以及从字A中减去数b的操作。
照此第一实施例,优选地是,所述方法包括所有下列步骤:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
σ′<-1;A=(0,am-1,...,am-n+1)
For j=1 to(m-n+1),do:
a<-SHLm1(a,1);σ<-carry
A<-(σ′)SUBm+1(a,1)+(﹁σ′)ADDn(A,b)
σ<-(σAND σ′)/(σAND carry)/(σ′AND carry)
lsb(a)<-σ
σ′<-σ
End For
if (﹁σ)=TRUE) then A<-ADDn(A,b)
在该实施例中,当σ′等于1时上述变量进位指定由操作SUBn(A,b)产生的进位,而当σ′等于0时指定由操作ADDn(A,b)产生的进位。
依照本发明方法的第二实施例,在每次迭代中,执行把数b或所述数b的补数
b与字A相加的操作。
优选地是,在每次迭代期间,还依照所生成的商位来执行更新第一变量(σ′),所述第一变量(σ′)表明在下列迭代期间,必须把数b还是数
b加到字A上。
照此实施例,同样优选地是,所述方法包括所有下列步骤:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
A=(0,am-1,...,am-n+1);σ′<-1;
b<-CPL2n(b)
For j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
daddr<-baddr+σ′(
baddr-baddr)
A<-ADDn(A,d)
σ′<-(σ′ANDσ′)/(σ′AND carry)/(σ′AND carry)
lsb(a)<-σ′
σ′<-σ′
End For
if (﹁σ)=TRUE) then A<-ADDn(A,b)
依照本发明方法的第三实施例,在每次迭代中,执行更新的数据项(b或
b)或概念数据项(c或
c)对于2n的补的操作,继而执行把所述更新的数据项与字A相加的操作。
优选地是,在每次迭代期间,还在每次迭代中进行依照所生成的商位来更新第二变量(δ),所述第二变量(δ)表明在下列迭代期间必须对所述更新的数据项还是对概念数据项执行对于2n的补的操作。
同样优选地是,在每次迭代期间,还执行更新第三变量(β),所述第三变量(β)表明所述更新的数据项是等于数b还是等于补数
b。
照此实施例,同样优选地是,所述方法包括所有下列步骤:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
σ′<-1;β<-1,γ<-1;A=(0,am-1,...,am-n+1)
for j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
δ′<-σ′/β
daddr<-baddr+δ′(caddr-baddr)
d<-CPL2n(d)
A<-ADDn(A,b)
σ′<-(σ′AND σ′)/(σ′AND carry)/(σ′AND
carry)
β<-﹁σ;γ<-γ/δ′;σ′<-σ′
lsb(a)=σ′
end for
if(﹁β=TRUE)then b<-CPL2n(b)
if(﹁γ=TRUE)then c<-CPL2n(c)
if(﹁σ=TRUE)then A<-ADDn(A,b)
本发明还涉及一种包括计算装置的电子组件,所述计算装置被编程来实现如上所述的方法,所述计算装置特别包括与存储器相关联的中央单元,所述存储器包括用于存储数据a和b的几个寄存器。
最后,本发明还涉及一种包括上述集成电路的芯片卡。
通过阅读依照本发明整数除法方法的示例性实施例的下列描述,将能更好地理解本发明并且其它特性和优点将显而易见。
在本发明实施方式的第一例子中,通过消除方法2的测试操作(如果(if)...那么(then)...否则(otherwise)...类型)并且因此消除它们存在的结果,来实现防止隐蔽信道攻击。
依照本发明,在方法2中,由下列三个步骤来代替步骤如果...那么...否则:
A<-σ′SUBn(A,b)+(﹁σ′(ADDn(A,b)
σ<-(σANDσ′)/σAND carry)/σ′AND carry)
lsb(a)<-σ
采用这种方法获得依照本发明的下列方法:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
A=(0,am-1,...,am-n+1);σ′<-1
For j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
A<-(σ′)SUBn(A,b)+(﹁σ′)ADDn(A,b)
σ<-(σ′ANDσ′)/(σ′AND carry)/(σ′AND carry)
lsb(a)<-σ′
σ′<-σ
End for
if(﹁σ=TRUE)then A<-ADDn(A,b)
方法3
由于方法3根据相同的输入数据a和b会生成相同的结果,所以其等价于方法2。这是因为在方法2中,当σ′=1时,执行操作A<-SUBn(A,b),而当σ′=0时,执行操作A<-ADDn(A,b)。由于σ=﹁(﹁σ′),所以同样应用于方法3。此外在方法2中,当σ′=1时,执行操作σ<-σ OR carry,而当σ′=0时,执行操作σ<-σAND carry。这可以按下列形式写成
σ<-(σ′)(σOR carry)+(﹁σ′)(σAND carry),
其在逻辑上等价于
σ<-(σ AND σ′)/(σ AND carry)/(σ′ AND carry)
最后,在方法2中,通过执行操作a<-SHLm+1(a,1),把a的最低有效位固定为0(换句话说lsb(a)=0),继而在当前迭代最后,如果σ=1,那么执行操作lsb(a)=1,否则,如果σ=0,那么不修改lsb(a)。因此可以由操作lsb(a)=σ来容易地替换操作{if σ=1,then lsb(a)+1},而不管σ的值是什么。
方法3不等同于方法2,但是对于隐蔽信道攻击还比较安全。这是因为所述方法不包含类型为如果...那么...否则的测试操作,并且在每次迭代中执行相同的操作,而不管在迭代期间所使用的输入数据位和/或所获得的结果位。因此,不可能根据由组件留下的痕迹来分离各个迭代,并且确定输入数据位和/或输出数据位。
在本发明的实施方式的第二例子中,通过另外限制所述方法的执行时间来修改依照本发明的方法3。
正如先前所看到那样,为了执行减法操作A<-SUBn(A,b),在实践中执行数b对于2n的补的操作
b=CPL2n(b),继而执行类型A<-ADDn(A,
b)的加法操作。
这意味着对于方法3,在每次迭代中除加法操作A<-ADDn(A,b)或A<-ADDn(A,
b)之外,执行对于2n的补的操作。
为了减少执行时间,对2n的补
b<-CPL2n(b)的操作次数进行了限制,辅助存储空间在所述方法开始时用来存储值
b。那么足以把b加到A以便实现A<-SUBn(A,b),或者把b加到A以便实现A<-ADDn(A,b)。这还使按照迭代执行单个加法操作成为可能,以便执行速度得到进一步提高。
这里两个寄存器b和
b是用来分别存储数据b和
b,并且具有地址baddr和
baddr。在给定的迭代期间,其内容被加到寄存器A的内容的那个寄存器称作d,并且其地址称作daddr。在实践中,在每次迭代中,寄存器d是包含b的寄存器或是包含
b的寄存器。如在方法3中,使用变量σ′来保存在给定迭代期间发生的痕迹,并且用来确定在下列迭代中必须执行加法还是减法。通过把全部组合到一起,最后获得下列方法4:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
A=(0,am-1,...,am-n+1);σ′<-1;
b <-CPL2N(b)
For j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
daddr<-baddr+σ′(
baddr-baddr)
A<-ADDn(A,d)
σ<-(σ′ANDσ′)/(σ′AND carry)/(σ′AND carry)
lsb(a)<-σ
σ′<-σ
End For
if(﹁σ=TRUE)then A<-ADDn(A,b)
方法4
在本发明的实施方式的第三例子中,通过限制用于实现所述方法的存储空间,来修改依照本发明的方法4。
为此,代替初始值b,把b的补值
b,操作CPL2n(b)的结果存储在相同的寄存器中。从而通过在相同的寄存器中用b的补
b来替换b,继而将其加到所述寄存器的内容A来执行减法操作。
另外,避免不必要的值
b的计算(这是当两个连续的迭代j和j+1都使用了相同加法时的情况,如A<-A+b或A<-A+
b)。为此,当不必替换最初包含b的寄存器的内容时(即当两个连续的迭代使用b或
b时),使用另一寄存器c,由其对于2n的补来代替其无关的或概念的内容。在实践中,寄存器c是存储器的任一寄存器,具有与包含b的寄存器相同的大小,但是不同于最初包含a或b的寄存器。还可以使用寄存器c来执行其它操作。在本发明方法的最后,寄存器c包含其初始值,即在执行本方法之前所具有的值。寄存器c的内容的初始值是完全无关的,这是由于该值实际上并未用于依照本发明方法的上下文。
把项daddr给予包含下述值的寄存器的地址,所述值在当前迭代期间将要由其对于2n的补代替:如果最初包含b的寄存器的内容必须对于2n求补,那么daddr是baddr,否则的话就是caddr,把项d给予其地址是daddr的寄存器的内容。
还使用变量β和γ来保存在位于地址baddr和caddr的寄存器中包含的值状态的痕迹。该状态是原始值或是原始值对于2n的补。当位于地址baddr(或相应地caddr)的值是原始值时,选择β=1(或相应地γ=1),而当位于地址baddr(或相应地caddr)的值是所述原始值对于2n的补时,选择β=0(或相应地γ=0)。使用变量σ′来保存在先前迭代中变量σ值的痕迹。如前所述,σ′=0意味着在先前迭代中执行了不必要的减法(A<-SUBn(A,b)=ADDn(A,b)),而在当前迭代期间必须执行加法操作A<-ADDn(A,b)以便补偿。反之,σ′=1意味着在先前迭代期间错误地没有执行减法,而且在当前迭代期间必须执行减法。
获得下列真值表:
先前值 更新值
σ′ β γ β γ
0 0 0 1 0
0 0 1 1 1
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 1 0 0 0
1 1 1 0 1
据此导出下式:
β<-﹁σ′
γ<-γ/σ′/β
通过把全部组合到一起,最后获得下列方法5:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
σ′<-1;β<-1,γ<-1;A=(0,am-1,...,am-n+1)
for j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
δ<-σ′/β
daddr<-baddr+δ(caddr-baddr)
d<-CPL2n(d)
A<-ADDn(A,b)
σ<-(σAND σ′)/(σAND carry)/(σ′AND carry)
β<-﹁σ′;γ<-γ/δ;σ′<-σ
lsb(a)=σ
end for
if(﹁β=TRUE)then b<-CPL2n(b)
if(﹁γ=TRUE)then c<-CPL2n(c)
if(﹁σ=TRUE)then A<-ADDn(A,b)
方法5
概括地说,与执行相同操作的其它已知方法相比较,本发明的实质优点是它对于隐蔽信道攻击是安全的,并且特别是SPA类型的攻击。另外,为了实现它,依照本发明的方法与已知的无保护的整数除法方法相比不要求更多资源(特别是就执行时间和存储空间而言)。
Claims (13)
1.一种加密方法,在所述加密方法期间执行类型为q=a div b和r=a mod b的整数除法,其中q为商,a为m位的数,b为n位的数,n小于或等于m,并且bn-1不为零,bn-1是b的最高有效位,在该方法期间的每次迭代中,循环下标i在1和m-n+1之间改变,执行数a的n位字A除以数b的部分除法,以便获得商q的位,
所述方法其特征在于在每次迭代中执行相同的操作,而不管获得的商位值是多少。
2.如权利要求1所述的方法,在所述方法期间的每次迭代中,执行了把数b加到字A的一个加法以及从字A减去数b的一个减法。
3.如权利要求1到2之一所述的方法,在所述方法期间执行所有下列步骤:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
A=(0,am-1,...,am-n+1);σ′<-1
For j=1 to (m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
A<-(σ′)SUBn(A,b)+(σ′)ADDn(A,b)
σ<-(σ′ANDσ′)/(σ′AND carry)/(σ′AND carry)
lsb(a)σ′
σ′<-σ
End For
if (σ=TRUE)then A<-ADDn(A,b)
4.如权利要求1所述的方法,在所述方法期间的每次迭代中,执行把数b或所述数b的补数
b与字A相加的操作。
5.如权利要求4所述的方法,在所述方法期间的每次迭代中,还进行更新第一变量(σ′),其表明在以下迭代期间,依照生成的商位(lsb(a))必须是把数b还是把数
b加到字A上。
6.如权利要求4或5所述的方法,在所述方法期间执行所有以下步骤:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
A=(0,am-1,...,am-n+1);σ′<-1;
b<-CPL2N(b)
For j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
daddr<-baddr+σ′(
baddr-baddr)
A<-ADDn(A,d)
σ<-(σ′ANDσ′)/(σ′AND carry)/(σ′AND carry)
lsb(a)<-σ′
σ′<-σ
End For
if(σ=TRUE)then A<-ADDn(A,b)
7.如权利要求1所述的方法,在所述方法期间的每次迭代中,执行更新的数据项(b或
b)或概念数据项(c或
c)对于2n的补的操作,继而执行将所述更新的数据项加到字A的操作。
8.如权利要求7所述的方法,在所述方法期间的每次迭代中,还执行更新第二变量(δ)的操作,所述第二变量(δ)表明在以下迭代期间是对于更新的数据项还是概念数据项执行对于2n的补的操作。
9.如权利要求7或8之一所述的方法,其中在每次迭代中,还执行更新第三变量(β),其表明所述更新的数据项是等于数据项b还是等于b对于2n的补。
10.如权利要求7到9之一所述的方法,在所述方法期间,还执行所有以下步骤:
输入:a=(0,am-1,...,a0)
b=(bn-1,...,b0)
输出:q=a div b并且r=a mod b
σ′<-1;β<-1,γ<-1;A=(0,am-1,....,am-n+1)
for j=1 to(m-n+1),do:
a<-SHLm+1(a,1);σ<-carry
δ<-σ′/β
daddr<-baddr+δ(caddr-baddr)
d<-CPL2n(d)
A<-ADDn(A,b)
σ<-(σANDσ′)/(σAND carry)/(σ′AND carry)
β<-σ′;γ<-γ/δ;σ′<-σ
lsb(a)=σ
end for
if (σ=TRUE)then A<-ADDn(A,b)
11.如权利要求10所述的方法,在所述方法期间,最后执行以下操作:
if(β=TRUE)then b<-CPL2n(b)
if(γ=TRUE)then c<-CPL2n(c)
12.一种包括计算装置的电子组件,所述计算装置被编程来实现如权利要求1到11之一所述的方法,所述计算装置特别包括与存储器相关联的中央单元,所述存储器包括用于存储数据a和b的几个寄存器。
13.一种包括如权利要求12所述的集成电路的芯片卡。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0214281A FR2847402B1 (fr) | 2002-11-15 | 2002-11-15 | Procede de division entiere securise contre les attaques a canaux caches |
FR0214281 | 2002-11-15 | ||
PCT/FR2003/050119 WO2004046017A2 (fr) | 2002-11-15 | 2003-11-13 | Procede de division entiere securise contre les attaques a canaux caches |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1739094A true CN1739094A (zh) | 2006-02-22 |
CN1739094B CN1739094B (zh) | 2013-03-27 |
Family
ID=32187620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200380108764.2A Expired - Fee Related CN1739094B (zh) | 2002-11-15 | 2003-11-13 | 防止隐蔽信道攻击的整数除法方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8233614B2 (zh) |
EP (1) | EP1565812B1 (zh) |
JP (1) | JP4378479B2 (zh) |
CN (1) | CN1739094B (zh) |
AT (1) | ATE390665T1 (zh) |
AU (1) | AU2003295059A1 (zh) |
DE (1) | DE60320016T2 (zh) |
FR (1) | FR2847402B1 (zh) |
WO (1) | WO2004046017A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484365A (zh) * | 2015-08-27 | 2017-03-08 | 意法半导体(鲁塞)公司 | 验证执行模幂计算的电子电路的敏感度 |
CN109299621A (zh) * | 2017-07-25 | 2019-02-01 | 意法半导体(鲁塞)公司 | 对迭代计算的防范水平攻击的保护 |
US10229264B2 (en) | 2015-08-27 | 2019-03-12 | Stmicroelectronics (Rousset) Sas | Protection of a modular exponentiation calculation |
Families Citing this family (10)
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 |
US20100042851A1 (en) * | 2005-11-04 | 2010-02-18 | Gemplus | Method for Securely Handling Data During the Running of Cryptographic Algorithms on Embedded Systems |
US9313027B2 (en) * | 2005-12-29 | 2016-04-12 | Proton World International N.V. | Protection of a calculation performed by an integrated circuit |
US8150029B2 (en) | 2005-12-29 | 2012-04-03 | Proton World International N.V. | Detection of a disturbance in a calculation performed by an integrated circuit |
FR2897964B1 (fr) * | 2006-02-28 | 2017-01-13 | Atmel Corp | Procede de calcul numerique incluant la division euclidienne |
CA2680047C (en) * | 2007-03-06 | 2015-08-11 | Research In Motion Limited | Integer division in a manner that counters a power analysis attack |
US20080275932A1 (en) * | 2007-03-07 | 2008-11-06 | Research In Motion Limited | Integer Division In A Manner That Counters A Power Analysis Attack |
EP2169535A1 (en) * | 2008-09-22 | 2010-03-31 | Thomson Licensing | Method, apparatus and computer program support for regular recoding of a positive integer |
FR3015726B1 (fr) | 2013-12-24 | 2016-01-08 | Morpho | Procede de traitement comparatif securise |
US11961420B2 (en) * | 2019-01-07 | 2024-04-16 | Cryptography Research, Inc. | Efficient squaring with loop equalization in arithmetic logic units |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4514592A (en) * | 1981-07-27 | 1985-04-30 | Nippon Telegraph & Telephone Public Corporation | Cryptosystem |
US5504817A (en) * | 1994-05-09 | 1996-04-02 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for memory efficient variants of public key encryption and identification schemes for smart card applications |
CA2282051A1 (en) * | 1998-10-20 | 2000-04-20 | Lucent Technologies, Inc. | Efficient block cipher method |
DE19963408A1 (de) * | 1999-12-28 | 2001-08-30 | Giesecke & Devrient Gmbh | Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung |
FR2828608B1 (fr) * | 2001-08-10 | 2004-03-05 | Gemplus Card Int | Procede securise de realisation d'une operation d'exponentiation modulaire |
FR2848753B1 (fr) * | 2002-12-11 | 2005-02-18 | Gemplus Card Int | Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches |
-
2002
- 2002-11-15 FR FR0214281A patent/FR2847402B1/fr not_active Expired - Fee Related
-
2003
- 2003-11-13 JP JP2004552816A patent/JP4378479B2/ja not_active Expired - Fee Related
- 2003-11-13 WO PCT/FR2003/050119 patent/WO2004046017A2/fr active IP Right Grant
- 2003-11-13 US US10/534,873 patent/US8233614B2/en not_active Expired - Fee Related
- 2003-11-13 AU AU2003295059A patent/AU2003295059A1/en not_active Abandoned
- 2003-11-13 CN CN200380108764.2A patent/CN1739094B/zh not_active Expired - Fee Related
- 2003-11-13 DE DE60320016T patent/DE60320016T2/de not_active Expired - Lifetime
- 2003-11-13 AT AT03786055T patent/ATE390665T1/de not_active IP Right Cessation
- 2003-11-13 EP EP03786055A patent/EP1565812B1/fr not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484365A (zh) * | 2015-08-27 | 2017-03-08 | 意法半导体(鲁塞)公司 | 验证执行模幂计算的电子电路的敏感度 |
US10229264B2 (en) | 2015-08-27 | 2019-03-12 | Stmicroelectronics (Rousset) Sas | Protection of a modular exponentiation calculation |
CN106484365B (zh) * | 2015-08-27 | 2019-03-19 | 意法半导体(鲁塞)公司 | 验证执行模幂计算的电子电路的敏感度 |
CN109299621A (zh) * | 2017-07-25 | 2019-02-01 | 意法半导体(鲁塞)公司 | 对迭代计算的防范水平攻击的保护 |
Also Published As
Publication number | Publication date |
---|---|
US8233614B2 (en) | 2012-07-31 |
CN1739094B (zh) | 2013-03-27 |
ATE390665T1 (de) | 2008-04-15 |
DE60320016T2 (de) | 2009-04-16 |
EP1565812A2 (fr) | 2005-08-24 |
EP1565812B1 (fr) | 2008-03-26 |
AU2003295059A8 (en) | 2004-06-15 |
FR2847402A1 (fr) | 2004-05-21 |
US20060133603A1 (en) | 2006-06-22 |
WO2004046017A3 (fr) | 2004-07-15 |
WO2004046017A2 (fr) | 2004-06-03 |
JP4378479B2 (ja) | 2009-12-09 |
DE60320016D1 (de) | 2008-05-08 |
JP2006506676A (ja) | 2006-02-23 |
FR2847402B1 (fr) | 2005-02-18 |
AU2003295059A1 (en) | 2004-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1739094A (zh) | 防止隐蔽信道攻击的整数除法方法 | |
CN1728634A (zh) | 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备 | |
CN1153129C (zh) | 用于处理器定制操作的设备 | |
CN100339824C (zh) | 高效执行特长指令字的处理器和方法 | |
CN1530824A (zh) | 用于执行蒙哥马利型模乘法的装置及方法 | |
CN1702613A (zh) | 蒙哥马利模乘法器 | |
CN1093665C (zh) | 利用统计检验的数据隐藏方法和数据提取方法 | |
CN1345495A (zh) | 实现椭圆曲线类型公共密钥加密算法的电子部件中的对策方法 | |
CN1242321C (zh) | 应用蒙哥马利算法的幂剩余运算器 | |
CN1107905C (zh) | 在分组数据上执行乘-加运算的装置 | |
CN1296813C (zh) | 浮点存储方法及浮点运算装置 | |
CN1258057A (zh) | 信息处理装置 | |
CN1734527A (zh) | 数据变换装置和数据变换方法 | |
CN101034424A (zh) | 一种数据安全存储系统和装置及方法 | |
CN1489726A (zh) | 模乘方法及装置及模乘计算单元 | |
CN1684058A (zh) | 处理器 | |
CN1601578A (zh) | 密码处理装置、密码处理方法以及计算机程序 | |
CN1806224A (zh) | 用于防御微分功率分析攻击的方法 | |
CN1338166A (zh) | 公用与专用密钥加密方法 | |
CN1607518A (zh) | 在Montgomery乘法内利用SIMD指令 | |
CN1521638A (zh) | 信息处理设备 | |
CN1571952A (zh) | 用于椭圆曲线上的点的通用计算方法 | |
CN1967469A (zh) | 高效模乘方法及装置 | |
CN1536769A (zh) | 随机序列产生设备、加密/解密设备及其方法和程序 | |
CN1255998A (zh) | 运算装置、运算方法及记录了该运算方法的记录媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: GEMPLUS CARD INT Free format text: FORMER OWNER: GEMPLUS CO. Effective date: 20111202 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20111202 Address after: French Meudon Applicant after: Gemplus Card Int Address before: French gemenos Applicant before: Gemplus Co. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130327 Termination date: 20201113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |