CN1723436A - 抗隐蔽信道攻击的整数除法或模数简化保密方法 - Google Patents

抗隐蔽信道攻击的整数除法或模数简化保密方法 Download PDF

Info

Publication number
CN1723436A
CN1723436A CN200380105308.2A CN200380105308A CN1723436A CN 1723436 A CN1723436 A CN 1723436A CN 200380105308 A CN200380105308 A CN 200380105308A CN 1723436 A CN1723436 A CN 1723436A
Authority
CN
China
Prior art keywords
division
random number
integer
digital
modulus
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
CN200380105308.2A
Other languages
English (en)
Inventor
M·若耶
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.)
Gemplus SA
Original Assignee
Gemplus 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 Gemplus SA filed Critical Gemplus SA
Publication of CN1723436A publication Critical patent/CN1723436A/zh
Pending legal-status Critical Current

Links

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/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/535Dividing only
    • 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
    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/302Public 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
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种密码方法,这种方法包括:执行类型q=a div b的整数除法和/或类型r=a mod b的模数简化,q为商数,a为m位的数字,b为n位的数字,n不超过m,且bn-1非零,bn-1是数字b的最高有效位,本发明的特征在于:在执行上述整数除法和/或所述模数简化之前通过随机数ρ屏蔽所述数字a。本发明还涉及用于执行所述方法的电子组件。本发明适用于制作抗隐蔽信道攻击,尤其是差分攻击的保密智能卡。

Description

抗隐蔽信道攻击的整数除法或模数简化保密方法
本发明涉及抗隐蔽信道攻击,具体为区分估计的整数除法或模数简化保密方法。本发明可用于执行更一般的密码方法,例如秘密或公开密钥密码方法中的除法运算。这样的密码方法例如可以在诸如芯片卡之类的电子设备中实现。
密码方法的保密性在于它们可以使机密数据或从它们处理的机密数据导出的数据保持隐蔽。
恶意用户可能发起攻击,旨在发现执行密码方法的计算设备所执行的处理操作中包含和处理的数据(尤其是机密数据)。
在已知最佳的攻击方法中,可列举简单的信道攻击或差分隐蔽信道攻击。隐蔽信道攻击指基于可从设备外测量的物理量的攻击,对所述物理量的直接分析(简单攻击)或根据统计方法的分析(差分攻击)使得可以发现设备中执行的处理操作中处理的数据。PaulKocher具体地公开了这些攻击方法(“密码学进展(Advances inCryptology)”-CRYPTO′99,vol.1666 of Lecture Notes in ComputerScience,pp.388-397,Springer-Verlag,1999)。
在可用于这些目的的物理量中,可以列举执行时间、电流消耗、用于执行所述计算的组件部分辐射的电磁场。在执行方法期间,对一比特的处理(即特定指令对它的处理)会根据该比特的值和/或根据该指令在所述物理量上留下印记。换言之,执行所述方法的组件留下的痕迹(即所述物理量随时间的变化)随正在处理等于一的比特还是正在处理等于零的比特而有所不同。隐蔽攻击正是基于密码方法的这一弱点。
将类型Y=XD(X、Y和D是整数)的模指数运算用作基本运算的密码方法在最近几年已得到非常广泛的研究。例如,可以列举RSA方法、根据Diffie-Hellman的密钥交换或DSA签名方法。在使这些方法免于隐蔽信道攻击方面已取得显著进展。
另一方面,尚未对实现将如下运算用作基本运算的保密密码方法进行任何研究:类型q=a div b的整数除法以及r=a mod b,a和b为两个操作数,q和r分别为a除以b的商数和余数。a和/或b是秘密数据,例如是所述方法的密钥的元素。例如,Barrett的方法(“基于标准数字信号处理实现RSA公钥加密算法(Implementing the RSApublic key encryption algorithm on a standard digital singalprocessing)”,vol.263 of Lecture Notes in Computer Science,pp.311-323,Springer-Verlag,1999)、Quisquater的方法(美国专利5166978,1992年11月)或根据中国剩余定理实现的RSA方法(J JQuisquater和C Couvreur所著的“用于RSA公钥密码体制的快速解密算法”(“Fast decipherment algorithm for RSA public keycryptosystem”,Electronics Letter,vol 18,99.905-907,October 1982)就是将整数除法用作基本运算的密码方法。
这种利用整数除法和/或模数简化方法的方法对隐蔽信道攻击很敏感,从如下示例中将会看出这一点。
采用整数除法和/或模数简化的已知方法是所谓的“纸/铅笔”方法。此方法在实际中重复用手完成这种运算时所采用的方法。下面对此方法予以阐述。
给定两个数据项:m位的a=(am-1,...,a0)和n位的b=(bn-1,...,b0),n小于或等于m且bn-1γ0,所谓的“纸/铅笔”除法方法(division method)计算商数q=a div b以及余数r=a div b。为此,所述方法连续地执行几次n+1位的整数A除以n位的整数b。实际中有必要让0[A/b<2,这是bn-1γ0时的情况。
由于r<b,余数r只是n位的数字。对其而言,由于bμbn- 1*2n-1以及(am-1,...,an-1)是m-n+1位的数字,而q=a div b[a div(bn-1*2n-1)=a div 2n-1=(am-1,...,an-1),因此商数q只是m-n+1位的数字。在除法方法结束时,将商数q存储在最初包含数字a的寄存器的m-n+1个最低有效位中。将余数r的最高有效位存储在1位寄存器中,以用作计算期间的进位(carry),并且将余数r的n-1个最低有效位存储在最初包含数字a的寄存器的n-1个最高有效位中。
由于此运算是以2为基数完成的,因此整数除法A div b的商位(quotient bit)仅取两个可能值:0或1。因此,执行运算A divb的简单方法包括从A中减去b,然后测试结果:如果A-b的结果为正,则A div b=1;而如果A-b的结果为负,则A div b=0。
随后可以如下方式书写完整的除法方法:
Input:a=(0,am-1,...,a0)
       b=(bn-1,...,b0)
Output:q=a div b and 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
在此方法中,以及下文中,均采用下列标记。
虽然提法不精确,但为了清楚,除非明确指出,同样的名称可用于指一个寄存器及其内容。因此,为了论及包含数据项A的寄存器,将会提到寄存器A。
符号“<-”和标记y<-x用于指示将寄存器x的内容装入寄存器y,寄存器y的内容也称为y。
A是一个对应于最初包含数据项a的寄存器的n个最高有效位的内容的n位字。每次迭代时当然会修改A,正如最初包含a的寄存器一样。
σ指示是否错误地执行了减法(即,商位必须是等于0或还是等于1)。
﹁σ是变量σ对于1的补码(亦称为反码)。TRUE是常数,在一个示例中等于1。
Lsb(a)是数字a的最低加权位,亦称为a的最低有效位。
SHLm+1(a,1)是包含数据项a的m+1位的寄存器左移1位的运算,从该寄存器移出的位存储在变量carry中,而输入等于0的一位作为最初包含数据a的寄存器的最低有效位。
ADDn(A,b)是将数字b的n位与字A的n位相加的运算。应注意,运算SHLn(a,1)等效于运算ADDn(a,a)。自然,加法ADDn(a,b)是通过在适当的加法电路中将分别包含A和b的两个寄存器的内容相加来完成的。
SUBn(A,b)是从字A中减去数字b的运算。自然,减法SUBn(A,b)是通过在适当的减法电路中从包含字A的寄存器的内容中减去包含数据项b的寄存器的内容来完成的。
概括地说,方法1执行下列步骤:
-如果a<-SHLm+1(a,1),则生成carry(σ=carry=1),这意味着am=1(在移位前),因此必须从A中减去b。
-如果am=1(在移位前)并且如果A<-SUBn(A,b),则生成carry(carry=1),这意味着,在执行减法前A-bμ0,因此必须从A中减去b。
-如果a<-SHLm+1(a,1),则不生成carry,并且如果A<-SUBn(A,b),则也不生成carry(也就是说,如果在更新σ之后σ为假(或者﹁σ为真)),则这意味着在执行减法运算前A-b<0,因此不必从A中减去b。在此情况下,所述方法执行加法运算A<-ADDn(A,b),以便恢复A的值。
所述方法1对隐蔽信道攻击很敏感。这是因为注意到,方法1在每次迭代时,根据σ的值,也就是说根据当前迭代期间将获得的商位的值,执行加法ADDn(A,b)或将包含数据项a的寄存器的最低有效位设为1。执行这两种运算的用法和持续时间是不同的,并且它们在执行期间留下的痕迹也是不同的。每次迭代期间留下的总的痕迹因此随所述迭代期间获得的结果位(resultbit)变化。通过测量并研究例如执行完整方法时组件留下的痕迹,然后便可以逐位确定结果位的值。
方法1使得有可能获得整数除法(q=a div b)的结果和整数除法(r=a mod b)的余数,r=a mod b也是模数简化的结果。具有相同缺陷的其它已知方法要么单独执行模数除法,要么单独执行模数简化。一般而言,除法方法与模数简化方法非常相似。
本发明的目的之一是使执行模数除法和/或模数简化的方法保密。
为此,本发明提出了一种密码方法,其中执行类型q=a div b的整数除法和/或类型r=a mod b的模数简化,q为商数,a为m位的数字,b为n位的数字,n小于或等于m,且bn-1非零,bn-1是数字b的最高有效位。
根据本发明,所述方法的特征在于:在执行所述整数除法和/或所述模数简化之前通过随机数ρ屏蔽所述数字a。
由于数字a被随机数屏蔽,因此所述方法执行期间留下的痕迹(例如能量消耗)在每次执行时是不同的,从而不再可能实施差分隐蔽信道攻击。
本发明可应用于例如执行除法和模数简化二者的所述方法1。本发明可更一般地适用于执行这些运算中的一个或另一个的任何方法。
随机数ρ可以在每次执行所述方法时加以修改,或者简单地在执行所述方法预定次数后加以修改。在适用的情况下,最后选择相对小的随机数ρ,例如选择从32位到64位的随机数。
根据本发明的优选实施例,为了屏蔽数字a,将b乘以随机数ρ加到所述数字a上(a<-a+b*ρ)。为此,在具体项中,寄存器b的内容与随机数ρ相乘,随后与数字a相加,此加法结果存储在最初包含数字a的寄存器中。
然后接着执行整数除法和/或模数简化方法。
在执行整数除法的情况下,在以形式a+b*ρ屏蔽数字a的条件下执行整数除法的结果等于a div b+ρ。在此情况下,在整数除法之后,为了求得有关数字a的整数除法,即a div b的预期结果,从所述整数除法结果中去除随机数ρ的贡献量。
在执行模数简化的情况下,运算(a+b*ρ)mod b的结果等于amod b,即关于数字a的模数简化的预期结果。
本发明还涉及一种包括用于实施上述根据本发明的方法的装置的电子组件。编程计算装置特别包括用于存储所述数字a和b的几个存储器。
最后,本发明还涉及一种包括具有上述特征的组件的芯片卡。

Claims (8)

1.一种密码方法,其中执行类型q=a div b的整数除法和/或类型r=a mod b的模数简化,q为商数,a为m位的数字,b为n位的数字,n小于或等于m,以及bn-1非零,bn-1是数字b的最高有效位,所述方法的特征在于:在执行所述整数除法和/或所述模数简化之前通过随机数ρ屏蔽所述数字a。
2.如权利要求1所述的方法,其特征在于:为了屏蔽所述数字a,将b乘以随机数ρ加到所述数字a上(a<-a+b*ρ)。
3.如权利要求1或2所述的方法,其特征在于:在执行整数除法之后,从所述整数除法的结果中去除所述随机数ρ的贡献量。
4.如结合权利要求2的权利要求3所述的方法,其特征在于:为了去除所述随机数ρ的贡献量,从所述整数除法的结果中减去所述随机数ρ。
5.如权利要求1至4之一所述的方法,其特征在于:在每次执行所述方法时修改所述随机数ρ。
6.如权利要求1至4之一所述的方法,其特征在于:在执行所述方法预定次数之后修改所述随机数ρ。
7.一种包括用于实施根据前述权利要求之一的方法的电子组件,编程计算装置特别包括用于存储所述数字a和b的几个存储器。
8.一种包括根据上述权项的组件的芯片卡。
CN200380105308.2A 2002-12-11 2003-12-11 抗隐蔽信道攻击的整数除法或模数简化保密方法 Pending CN1723436A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0215623A FR2848753B1 (fr) 2002-12-11 2002-12-11 Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches
FR02/15623 2002-12-11

Publications (1)

Publication Number Publication Date
CN1723436A true CN1723436A (zh) 2006-01-18

Family

ID=32338660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200380105308.2A Pending CN1723436A (zh) 2002-12-11 2003-12-11 抗隐蔽信道攻击的整数除法或模数简化保密方法

Country Status (7)

Country Link
US (1) US7639796B2 (zh)
EP (1) EP1579312A1 (zh)
JP (1) JP4378480B2 (zh)
CN (1) CN1723436A (zh)
AU (1) AU2003296823A1 (zh)
FR (1) FR2848753B1 (zh)
WO (1) WO2004055665A1 (zh)

Families Citing this family (9)

* 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
FR2847402B1 (fr) * 2002-11-15 2005-02-18 Gemplus Card Int Procede de division entiere securise contre les attaques a canaux caches
FR2895609A1 (fr) * 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
FR2897964B1 (fr) * 2006-02-28 2017-01-13 Atmel Corp Procede de calcul numerique incluant la division euclidienne
US8280041B2 (en) * 2007-03-12 2012-10-02 Inside Secure Chinese remainder theorem-based computation method for cryptosystems
JP4603022B2 (ja) * 2007-08-02 2010-12-22 株式会社スクウェア・エニックス 暗号化データ作成装置、および暗号化データ作成プログラム
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
FR3095709B1 (fr) * 2019-05-03 2021-09-17 Commissariat Energie Atomique Procédé et système de masquage pour la cryptographie

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5077793A (en) * 1989-09-29 1991-12-31 The Boeing Company Residue number encryption and decryption system
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
DE19963407A1 (de) * 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung

Also Published As

Publication number Publication date
US20060023873A1 (en) 2006-02-02
AU2003296823A1 (en) 2004-07-09
FR2848753A1 (fr) 2004-06-18
US7639796B2 (en) 2009-12-29
WO2004055665A1 (fr) 2004-07-01
JP4378480B2 (ja) 2009-12-09
JP2006509261A (ja) 2006-03-16
EP1579312A1 (fr) 2005-09-28
FR2848753B1 (fr) 2005-02-18

Similar Documents

Publication Publication Date Title
US10902156B2 (en) Asymmetrically masked multiplication
Nascimento et al. Attacking embedded ECC implementations through cmov side channels
US8402287B2 (en) Protection against side channel attacks
EP1084548A2 (en) Secure modular exponentiation with leak minimization for smartcards and other cryptosystems
US7227947B2 (en) Cryptographic method and cryptographic device
TWI403144B (zh) 隨機化模數減化方法及其硬體
CN101213512A (zh) 保护数据处理设备以抵御攻击或分析的装置和方法
US8233614B2 (en) Integer division method secure against covert channel attacks
KR101061906B1 (ko) 전력분석공격에 안전한 기본 연산 장치 및 방법
CN1723436A (zh) 抗隐蔽信道攻击的整数除法或模数简化保密方法
WO2009091748A1 (en) Modular reduction using a special form of the modulus
US20080130877A1 (en) Method of Performing Secure and Compact Exponentiation for Cryptography
US7174016B2 (en) Modular exponentiation algorithm in an electronic component using a public key encryption algorithm
Ambrose et al. DARNS: A randomized multi-modulo RNS architecture for double-and-add in ECC to prevent power analysis side channel attacks
Joye et al. A protected division algorithm
Lee et al. A practical collision-based power analysis on RSA prime generation and its countermeasure
Monfared et al. Secure and efficient exponentiation architectures using Gaussian normal basis
EP4297330A1 (en) Method and system for protecting cryptographic operations against side-channel attacks
Alioto et al. Power modeling of precharged address bus and application to multi-bit DPA attacks to DES algorithm
Walter Pp. 59-68 of the Proceedings Breaking the Liardet-Smart Randomized Exponentiation Algorithm
JP2008224830A (ja) 耐タンパーベキ乗演算方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060118