CN102063586B - 用于检测故障攻击的方法和装置 - Google Patents

用于检测故障攻击的方法和装置 Download PDF

Info

Publication number
CN102063586B
CN102063586B CN201010552883.9A CN201010552883A CN102063586B CN 102063586 B CN102063586 B CN 102063586B CN 201010552883 A CN201010552883 A CN 201010552883A CN 102063586 B CN102063586 B CN 102063586B
Authority
CN
China
Prior art keywords
data element
data
value
group
generate
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.)
Expired - Fee Related
Application number
CN201010552883.9A
Other languages
English (en)
Other versions
CN102063586A (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.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN102063586A publication Critical patent/CN102063586A/zh
Application granted granted Critical
Publication of CN102063586B publication Critical patent/CN102063586B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Injection Moulding Of Plastics Or The Like (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)

Abstract

本发明涉及一种检测故障攻击的方法,该方法包括:提供多个掩蔽值(R1至RL);生成第一数据元素集合(D1...DM),该第一数据元素集合包括第一组数据元素(D1...DN)和通过在第一组中的至少一个数据元素与所述掩蔽值中的至少一个掩蔽值之间进行异或而生成的至少一个附加数据元素;生成与在第一数据元素集合的每一个数据元素与所述多个掩蔽值中的所选掩蔽值之间的异或对应的第二数据元素集合(D1’...DM’);通过在第一数据元素集合的各数据元素之间进行交换运算来生成第一签名(S1);通过在第二数据元素集合的各数据元素之间进行所述交换运算来生成第二签名;以及比较第一签名与第二签名以检测故障攻击。

Description

用于检测故障攻击的方法和装置
技术领域
本发明涉及一种用于检测故障攻击的方法和装置,并且特别涉及一种用于基于签名来提供检测的方法和装置。
背景技术
集成电路可以包括鉴于所操纵的诸如认证密钥、签名等数据的安全性或者鉴于所使用的算法如加密算法或解密算法而被视为敏感的电路。这样的信息需要保密,这意味着该信息不应被传达给第三方或未授权电路,或者可由第三方或未授权电路检测出。
用于剽窃由集成电路操纵的信息的常用过程包括检测该电路中在处理该信息期间使用的分区。为此,在功能环境中激活该电路或者将电路置于功能环境中,并且在输入端引入待编码的数据包。当进行处理数据时,由激光扫射集成电路的表面以在电路的运行中注入故障。通过并行分析电路的输出,这使得能够确定电路中处理该数据的分区。将这些分区局部化后,剽窃者能够对这些分区集中攻击,以确定正被处理的秘密数据。
签名提供一种保护电路免受故障攻击的方式。签名基于将由算法使用的一个或者多个数据值来生成。然后在相同的数据值经过算法使用之后,对这些数据值生成签名。这两个签名的差异表明出现攻击。检测电路一旦检测到这样的攻击,可以触发对策,比如重置电路,和/或将计数器递增,这使得在检测到一定数量的故障时使集成电路持久地不工作。
旁路攻击是包括例如测量电路功耗的一种不同类型的攻击。掩蔽提供一种保护电路免受旁路攻击的方式。掩蔽包括以无损方式更改使用伪随机变量的算法的输入。
希望提供一种电路,其中,同组数据值可以用来生成签名以检测故障攻击并且可以被掩蔽以使旁路攻击更为困难。然而,难以实现结合这些功能的有效的电路。
发明内容
本发明的一个目的在于至少部分地解决现有技术中的一个或者多个问题。
根据本发明的一个方面,提供一种检测故障攻击的方法,该方法包括:提供多个掩蔽值;生成第一数据元素集合,该第一数据元素集合包括第一组数据元素和通过在第一组中的至少一个数据元素与所述掩蔽值中的至少一个掩蔽值之间进行异或而生成的至少一个附加数据元素;生成与在第一数据元素集合的每一个数据元素与所述多个掩蔽值中的所选掩蔽值之间的异或对应的第二数据元素集合;通过在第一数据元素集合的各数据元素之间进行交换运算来生成第一签名;通过在第二数据元素集合的各数据元素之间进行所述交换运算来生成第二签名;以及比较第一签名与第二签名以检测故障攻击。
根据一个实施例,生成所述至少一个附加数据元素包括:通过在第一组数据元素的每一个数据元素与所述多个掩蔽值中的每一个掩蔽值之间进行异或来生成附加的多组数据元素;并且选择至少一个附加的组的至少一个数据值以形成至少一个附加数据元素。
根据另一实施例,生成附加的至少一组数据元素还包括在第一组数据元素的每一个数据元素与所述掩蔽值中的两个掩蔽值的每个组合之间进行异或。
根据另一实施例,通过在第一数据元素集合的每一个数据元素与多个掩蔽值中的所选掩蔽值之间进行异或来掩蔽所述第一数据元素集合的各数据元素从而生成第二数据元素集合。
根据另一实施例,通过在第一组的每一个数据元素与多个掩蔽值中的所选掩蔽值之间进行异或来掩蔽所述第一组数据值以生成被掩蔽的数据元素组并且在被掩蔽的数据元素组的至少一个数据元素与所述掩蔽值中的至少一个掩蔽值之间进行异或从而生成第二数据元素集合。
根据另一实施例,对于每一被掩蔽的组中的每个数据值,选择至少一个附加数据元素包括:确定所述数据值是否已经存在于第二数据元素集合中;以及如果所述数据值未存在于第二数据元素集合中,则将所述数据值添加到第二数据元素集合中。
根据另一实施例,选择至少一个附加数据元素还包括:将添加到第二数据元素集合中的各数据值标记为不可用;以及如果所述数据值已经存在于第二数据元素集合中,则确定所述数据值是否标记为不可用,若否,则将所述数据值标记为不可用,而若是,则将所述数据值添加到第二数据元素集合中。
根据另一实施例,生成所述第一签名和第二签名包括在对应的数据元素集合的各数据元素之间进行异或。
根据另一实施例,生成所述第一签名和第二签名包括将对应的数据元素集合的各数据元素全部相加。
根据另一实施例,生成所述第一签名和第二签名包括将对应的数据元素集合的各数据元素全部相乘。
根据本发明的另一方面,提供一种用于检测故障攻击的电路,该电路包括:存储器,存储多个掩蔽值;计算块,被布置成生成第一数据元素集合,该第一数据元素集合包括第一组数据元素和通过在第一组中的至少一个数据元素与所述掩蔽值中的至少一个掩蔽值之间进行异或而生成的至少一个附加数据元素,并且生成与在第一数据元素集合的每个数据元素与所述多个掩蔽值中的所选掩蔽值之间的异或对应的第二数据元素集合;签名块,被布置成通过在第一数据元素集合的各数据元素之间进行交换运算来生成第一签名并且通过在第二数据元素集合的各数据元素之间进行交换运算来生成第二签名;以及比较器,被布置成比较第一签名与第二签名以检测故障攻击。
根据一个实施例,该电路还包括:函数单元,被布置成基于第一数据元素集合的至少一个数据值来进行运算,其中,所述函数块被布置成基于密钥来进行加密或者解密运算。
根据本发明的另一方面,提供一种包括上述电路的集成电路、IC(集成电路)卡或者IC读卡器。
附图说明
根据以下参照附图通过图示方式而非限制方式给出的对实施例的详细描述,容易理解本发明的前述和其它目的、特征、方面及优点,附图中:
图1图示了根据一个实施例的用于检测故障攻击并且防范旁路攻击的电路;
图2图示了图1的电路所使用的数据值;
图3图示了根据本发明的实施例的用于检测故障攻击并且防范旁路攻击的电路;
图4图示了图3的电路所使用的数据的示例;
图5图示了根据本发明的另一实施例的用于检测故障攻击并且防范旁路攻击的电路;
图6图示了图5的电路所使用的数据的示例;
图7图示了根据本发明的实施例的用于生成数据集合的方法中的步骤;以及
图8图示了根据本发明的实施例的包括用于检测故障攻击的电路的电子设备。
具体实施方式
为求清楚,只有那些对理解本发明有用的步骤和元件在图中示出并且在下面详细描述。特别地,未详细描述用于在检测到一个或者多个故障注入时将集成电路重置或使其不工作的电路,本发明适用于任何这样的电路。另外,未详细描述受保护的集成电路的主要功能,本发明可与实现任何敏感功能(比如加密或者解密、或者涉及到敏感数据的其它功能)的集成电路兼容。
图1图示了包括函数单元(FUNCTION,函数)102的电路100,该函数单元102例如实施涉及诸如加密密钥等敏感数据的算法。在本示例中,该单元102通过输入线104接收密钥K。
通过线路106向掩蔽块(BLINDING,掩蔽)108提供一组数据值D1至DN,该掩蔽块108基于通过输入线110向掩蔽块108提供的掩蔽值R对这些数据值应用掩蔽算法。掩蔽值R例如是伪随机值。然后通过线路112向函数单元102提供被掩蔽的数据值D1’至DN’。函数单元102实施使用被掩蔽的数据值D1’至DN’的算法并且输出结果C,该结果C可以是加密的或解密的数据块或者其它值。
在由函数单元102进行使用时,被掩蔽的数据值D1’至DN’例如存储于寄存器(图1中未示出)中。在由函数块102执行算法期间的各个阶段和/或在这一执行结束时,通过线路114向签名块(SIG)116输出被掩蔽的数据值D1’至DN’。通过线路118还向签名块116提供原数据值D1至DN
签名块116基于原数据值D1至DN生成签名S1并基于被掩蔽的数据值D1’至DN’生成签名S2。然后比较器(COMP)120比较签名S1与S2,该比较器120通过输出线122提供表明签名是否匹配的输出。
块108所采用的掩蔽算法例如是XOR函数,在掩蔽值R与所述数据值D1至DN中的每一个之间采用。然而,问题在于:选择待应用于这两组数据值的签名函数以在不存在故障攻击时得到相同的结果。例如,图2图示了这一问题的示例。
图2在第一行200中针对N等于9的情况图示了数据值D1至DN的示例,并且值D1至D9分别等于12、1、0、128、245、0、1、2和8。假设用于确定签名的函数是将所有数据值相加,则D1至D9的签名等于397。图2中的第二行202图示了在这一示例中通过在数据值D1至D9中的每一个与值01之间应用XOR运算而获得的被掩蔽的数据值D1’至D9’。因此,值D1’至D9’分别等于13、0、1、129、244、1、0、3和9。然而,假设无故障,数据值D1’至D9’之和等于402,因而签名S2等于400。因此,尽管无故障,但是签名方案由于签名S1和S2的不匹配而无效。
图3图示了用于检测故障攻击和用于防范旁路攻击的电路300。电路300包括多个与图1的电路相同的元件,并且不再详细描述这些元件。特别地,这一电路包括函数单元102、掩蔽块108、签名块116和比较器120。
电路300还包括预掩蔽块(PRE-BLINDING,预掩蔽)302,该预掩蔽块302通过输入线304接收数据值D1至DN并通过输入线306接收多个掩蔽值R1至RL。预掩蔽块302生成数据值D1至DM的数据集合。该集合D1至DM包括数据值D1至DN,以及一个附加数据值DM或者多个附加数据值DN+1至DM。数据值D1至DM通过线路308提供给掩蔽块108且通过线路310提供给签名块116。
生成集合D1至DM,使得由块108来应用XOR掩蔽函数时,结果是数据值D1至DM进行排列而不引入新值,因此签名块116能够使用任何交换函数来生成有效签名。这例如按照下文中参照图4更详细描述的那样来实现。
图4图示了包含数据集合D1至DM的数据值的示例的表。该表的第一行示出数据值D1至DN,这些数据值在这一情况下包括分别等于十进制值12、1、0、128、245、0、1、2和8的等效二进制值的九个值D1至D9。这些数据值称为组A。在这一示例中,假设掩蔽值R1至RL包括两个分别等于十进制值01和02的等效二进制值的值R1和R2
预掩蔽块302生成新的一组数据值“A+1”(符号“+”在这里表示函数XOR),其等于数据组A的每一个值与第一掩蔽值01的XOR。这在图4中的表的第二行中示出,并且这些值等于13、0、1、129、244、1、0、3和9。预掩蔽块还生成新的一组数据值“A+2”,其等于数据组A的每一个值与第二掩蔽值02的XOR。这在图4中的表的第三行中示出,并且这些值为14、3、2、130、247、2、3、0和10。
在图4的示例中,还生成另一组数据值“(A+1)+2”。这等效于“A+3”并且等于数据组A的每一个值与值03的XOR。在图4的第四行中示出的值为15、2、3、131、246、3、2、1和11。该组并非总是会生成,因为在一些实施例中仅生成与各掩蔽值R1至RL对应的数据值集合。
例如,还生成与掩蔽值R1至RL中的两个掩蔽值的每一可能组合对应的行,除非该组合等效于已经存在的行的掩蔽值。在图4的示例中,(A+1)+2=A+3不与先前生成的任一行等效。然而,如果还使用附加掩蔽值R3=03,则因为(A+1)+3等效于A+2、(A+1)+2等效于A+3,而(A+2)+3等效于A+1,所以仅生成行A+1、A+2和A+3。
图4的表因此表示分别通过线路308和310向掩蔽块108和签名块116提供的值D1至DM。当对该表应用掩蔽时,结果仅为对行进行排列而不添加任何新值。特别地,如果例如从值R1和R2中伪随机选择的掩蔽值R等于01,则第一行会变成A+1,而第二行变成等于A的(A+1)+1。类似地,第三行变成等于A+3的(A+2)+1,而第四行变成等于A+2的(A+3)+1。
函数单元102使用数据值D1至DM的被掩蔽的版本。在图4的示例中,取决于掩蔽值是01还是02,这些被掩蔽的值是第二行或者第三行的被掩蔽的值。
图5图示了用于检测故障攻击和用于防范旁路攻击的电路500。
电路500包括多个与图1的电路相同的元件,并且不再详细描述这些元件。相对于图1的实施例,图5的实施例还包括用于向附加预签名块504提供数据值D1至DN的线路502,以及位于函数单元102与签名块116之间用于在签名生成之前处理被掩蔽的数据值的附加预签名块506。现在参照图6描述图5的电路的操作。
图6图示了在应用于图5的电路时与图4相同的数值示例。预签名块504生成与图4中生成的表相同的值D1至DM的表(不再图示),这不再详细描述。另一方面,预签名块506基于被掩蔽的值D1’至DN’生成新的表。该表的行以与图4的表相同的方式生成,即通过系统地应用各个掩蔽值来生成。在图6的示例中,假设通过线路110接收的掩蔽值为02,因此值D1’至DN’对应于所述值D1至DN中的每一个与值02的XOR。因此,图6的表中被标记为A’的第一行等于A+2,其与图4中的表的第三行相同。图6中的表的第二行等于与A+3(即图4的表的第四行)等效的A’+1。图6的表的第三行等于与A(即图4的表的第一行)等效的A’+2。最后,图6的表的第四行等于与A+1(即图4中的表的第二行)等效的(A’+1)+2。
因此,已经指出,图6的表的值为图4的表的值的排列,因此签名块116可以通过对两个数据值集合应用交换签名算法来有效地检测故障。
与图3的实施例相比时,图5的实施例的一个优点在于它使得多故障攻击的使用更加困难。特别地,尽管以图3为目标的多故障攻击可能攻击预掩蔽块302和函数块102,但是在图5中,这样的攻击除了将函数块102作为目标之外还必须将预签名块504和506二者作为目标。
图3或者图5的块116所采用的签名为交换函数,使得数据值的顺序不会影响结果。这样的函数的示例为在各个值D1’至DM’之间应用的XOR函数、或者所有值D1’至DM’之和、或者所有值D1’至DM’之积。可替选地,可以使用这些函数中的一个或者多个函数的组合或者变型。
可以通过去除重复的值来减少集合D1至DM中存在的其它值DN+1至DM的数量。例如,在图4的示例中,可以去除第二行中的值“0”和“1”而完全不会降低签名比较的有效性。现在参照图7的流程图描述用于确定哪些数据值可以被添加到集合D1至DM中的初始值D1至DN的技术的示例。
图7示出一种用于生成数据值DN+1至DM的方法。在该示例中,Dn表示组D1至DN中的第n个值,而Rp表示值R1至RP的集合的第p个值,该集合中前L个值R1至RL是从中选出R的掩蔽值集合,而值RL+1至RP是附加组合,其等于以下XOR计算的结果:R1+R(L+1),R1+R(L+2),...R1+RP,R2+R(L+1),R2+R(L+2),...R2+Rp,...R(L-1)+RL。可以去除集合R1至RP中的任何重复值,使得每个值仅出现一次,由此允许减少处理时间。字母S用来表示值D1至DM的集合,该集合起初仅包括值D1至DN
在该方法的第一步骤S1中,将变量n和p均设置为等于1。
接着,在步骤S2中,将变量Q设置为等于DnXORRp。起初,这将等于D1与第一掩蔽值R1的XOR。
在下一步骤S3中,确定Q是否为集合S的元素,即,该值是否存在于值D1至DN之中。若否,则下一步骤为S4,在步骤为S4中,将Q添加到集合S中,并且将标签与值Q关联从而表明该值不可用。该标签可以例如是存储器中与该值关联的标记或者表明该值不可用的任何其它手段。
如果在步骤S3中确定Q为S的元素,则在步骤S5中检验S中的该数据值是否可用。换而言之,检验该值是否已被标记为不可用。如果该值不可用,则下一步骤为步骤S4,如上文所述,在步骤S4中,将Q添加到集合S中并且被标记为不可用。然而,如果在步骤S5中确定S中的该数据值尚未被标记为不可用,则下一步骤为S6,在步骤S6中,不向集合S添加数据值Q,而是将S中的该值标记为不可用。
在步骤S4和S6之后,下一步骤为S7,在步骤S7中,确定p是否等于P。若否,则在步骤S8中递增p,并且该方法返回到步骤S2。然而,如果在步骤S7中确定p等于P,则下一步骤为S9。
在步骤S9中确定n是否等于N。若否,则在步骤S10中递增n,并且该方法返回到步骤S2。然而,如果n等于N,则该过程结束。
图8图示了电子设备800,该电子设备800包括微处理器802、存储器块804和向微处理器802提供输入值的输入线806。微处理器802通过输出线808提供输出值。另外,设置有故障检测电路810,与微处理器的输出耦合,该故障检测电路810例如包括如本文所述的预掩蔽块302或者预签名块504和506、签名块116和比较器120。如果由于签名之间的不匹配而检测到故障攻击,则该电路810通过环回至微处理器802的输出线812提供报警信号。该报警信号例如触发微处理器802重置和/或使计数器(图8中未示出)递增,一旦达到某个计数值,该计数器使微处理器持久地停用。
电子设备800例如是IC(集成电路)卡(比如智能卡)、IC读卡器(比如信用卡支付终端)、或者机顶盒、用于PC或者膝上型计算机的硬盘驱动、PC或者膝上型计算机、自动售货机或者其他处理敏感信息的设备。
这里描述的实施例的一个优点在于:通过生成如这里描述的数据值D1至DM的集合用于生成签名,使用XOR运算来掩蔽这些值的结果将获得这些值的排列。这造成可以广泛选择用来产生用于检测故障攻击的可比较的签名的签名算法。
尽管已经描述了本发明的多个具体实施例,但是本领域技术人员清楚可以应用许多变型和改变。
例如,本领域技术人员清楚这里描述的实施例可以应用于其中使用签名变化来检测故障的各种电路。
另外,本领域技术人员应当清楚,尽管已经描述了一些实施例,其中放大的集合D1’...DM’包括许多附加值DN+1’至DM’,但是在一些情况下仅提供一个或者少数几个附加值。
另外,可以用软件、硬件或者其组合来实现这里描述的实施例。此外,可以在替选实施例中以任何组合来组合关于各个实施例描述的特征。

Claims (14)

1.一种检测故障攻击的方法,包括:
提供多个掩蔽值(R1至RL);
生成第一数据元素集合(D1至DM),所述第一数据元素集合包括第一组数据元素(D1至DN)和至少一个附加数据元素,所述至少一个附加数据元素通过在所述第一组数据元素中的至少一个数据元素与所述多个掩蔽值中的至少一个掩蔽值之间进行异或而生成,其中M表示所述第一数据元素集合中的数据元素数目,并且N表示所述第一组数据元素中的数据元素数目;
通过在所述第一数据元素集合的每个数据元素与所述多个掩蔽值中的所选掩蔽值(R)之间执行异或,生成第二数据元素集合(D1’至DM’);
通过在所述第一数据元素集合的各数据元素之间进行交换运算来生成第一签名(S1);
通过在所述第二数据元素集合的各数据元素之间进行所述交换运算来生成第二签名(S2);以及
比较所述第一签名与第二签名以检测故障攻击。
2.根据权利要求1所述的方法,其中生成所述至少一个附加数据元素包括:通过在所述第一组数据元素的每个数据元素与所述多个掩蔽值中的每个掩蔽值之间进行异或来生成附加的多组数据元素;并且选择来自所述附加的多组数据元素的附加的至少一组数据元素的至少一个数据元素以形成所述至少一个附加数据元素。
3.根据权利要求2所述的方法,其中生成所述附加的多组数据元素还包括在所述第一组数据元素的每个数据元素与所述多个掩蔽值中的两个掩蔽值的每个组合之间进行异或。
4.根据权利要求1所述的方法,其中生成所述第二数据元素集合(D1’至DM’)包括:通过在所述第一组数据元素的每个数据元素与所述多个掩蔽值中的所选掩蔽值(R)之间进行异或来掩蔽所述第一组数据元素(D1至DN),并且在所述被掩蔽的数据元素组的至少一个数据元素与所述多个掩蔽值中的所述至少一个掩蔽值之间进行异或。
5.根据权利要求2所述的方法,其中选择来自所述附加的多组数据元素的附加的至少一组数据元素的至少一个数据元素包括:
对于每个被掩蔽的组中的每个数据元素的数据值,
确定所述数据值是否已经存在于所述第一数据元素集合中的数据元素的数据值集合中;以及
如果所述数据值未存在于所述数据值集合中,则将所述数据值添加到所述数据值集合中。
6.根据权利要求5所述的方法,其中选择来自所述附加的多组数据元素的附加的至少一组数据元素的至少一个数据元素还包括:
将添加到所述数据值集合中的每个数据值标记为不可用;以及
如果所述数据值已经存在于所述数据值集合中,则确定所述数据值是否被标记为不可用,若否,则将所述数据值标记为不可用,若是,则将所述数据值添加到所述数据值集合中。
7.根据权利要求1所述的方法,其中生成所述第一签名包括在所述第一数据元素集合的各数据元素之间执行异或,并且其中生成所述第二签名包括在所述第二数据元素集合的各数据元素之间执行异或。
8.根据权利要求1所述的方法,其中生成所述第一签名包括将所述第一数据元素集合的各数据元素全部相加,并且其中生成所述第二签名包括将所述第二数据元素集合的各数据元素全部相加。
9.根据权利要求1所述的方法,其中生成所述第一签名包括将所述第一数据元素集合的各数据元素全部相乘,并且其中生成所述第二签名包括将所述第二数据元素集合的各数据元素全部相乘。
10.一种用于检测故障攻击的电路,包括:
存储器,存储多个掩蔽值(R1至RL);
计算块(302,108,102),被布置成:
生成第一数据元素集合(D1至DM),所述第一数据元素集合包括第一组数据元素(D1至DN)和至少一个附加数据元素,所述至少一个附加数据元素通过在所述第一组数据元素中的至少一个数据元素与所述多个掩蔽值中的至少一个掩蔽值之间进行异或而生成,其中M表示所述第一数据元素集合中的数据元素数目,并且N表示所述第一组数据元素集合中的数据元素数目;以及
通过在所述第一数据元素集合的每个数据元素与所述多个掩蔽值中的所选掩蔽值(R)之间执行异或来生成第二数据元素集合(D1’至DM’);
签名块(116),被布置成通过在所述第一数据元素集合的各数据元素之间进行交换运算来生成第一签名(S1)并且通过在所述第二数据元素集合的各数据元素之间进行所述交换运算来生成第二签名(S2);以及
比较器(120),被布置成比较所述第一签名与第二签名以检测故障攻击。
11.根据权利要求10所述的电路,还包括:函数单元(102),被布置成基于所述第一数据元素集合的至少一个数据元素来进行运算,其中,所述函数单元被布置成基于密钥(K)进行加密或者解密运算。
12.一种集成电路,包括根据权利要求10所述的电路。
13.一种集成电路卡,包括根据权利要求12所述的集成电路。
14.一种集成电路读卡器,包括根据权利要求12所述的集成电路。
CN201010552883.9A 2009-11-18 2010-11-17 用于检测故障攻击的方法和装置 Expired - Fee Related CN102063586B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0958141A FR2952735B1 (fr) 2009-11-18 2009-11-18 Procede et dispositif de detection d'attaques par injection de fautes
FR0958141 2009-11-18

Publications (2)

Publication Number Publication Date
CN102063586A CN102063586A (zh) 2011-05-18
CN102063586B true CN102063586B (zh) 2015-11-25

Family

ID=42244112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010552883.9A Expired - Fee Related CN102063586B (zh) 2009-11-18 2010-11-17 用于检测故障攻击的方法和装置

Country Status (6)

Country Link
US (1) US8688995B2 (zh)
EP (1) EP2336930B1 (zh)
JP (1) JP5693927B2 (zh)
CN (1) CN102063586B (zh)
AT (1) ATE550726T1 (zh)
FR (1) FR2952735B1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2326042B1 (fr) * 2009-11-18 2013-04-03 STMicroelectronics (Rousset) SAS Procédé de détection d'une attaque par injection de fautes
EP2367316B1 (en) * 2010-03-12 2017-07-05 STMicroelectronics (Rousset) SAS Method and circuitry for detecting a fault attack
DE102010054446A1 (de) * 2010-12-14 2012-06-14 Giesecke & Devrient Gmbh Portabler Datenträger mit Fehlbedienungszähler
CN102967818B (zh) * 2011-08-31 2015-07-01 北京中电华大电子设计有限责任公司 一种故障检测电路
FR2984553B1 (fr) 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
US8977902B2 (en) * 2012-10-24 2015-03-10 International Business Machines Corporation Integrity checking including side channel monitoring
JP5863994B2 (ja) * 2012-12-11 2016-02-17 三菱電機株式会社 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
US9628507B2 (en) * 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
CN103530566B (zh) * 2013-10-21 2016-08-24 中国科学院深圳先进技术研究院 一种检测诱导错误攻击下安全芯片安全性能的系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101496342A (zh) * 2006-07-21 2009-07-29 日本电气株式会社 加密装置、程序及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL139935A (en) * 1998-06-03 2005-06-19 Cryptography Res Inc Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
FR2841015A1 (fr) 2002-06-18 2003-12-19 St Microelectronics Sa Controle d'execution d'un programme
US7111126B2 (en) * 2003-09-24 2006-09-19 Arm Limited Apparatus and method for loading data values
JP3998640B2 (ja) * 2004-01-16 2007-10-31 株式会社東芝 暗号化及び署名方法、装置及びプログラム
FR2867635B1 (fr) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
DE602005009133D1 (de) * 2005-03-11 2008-10-02 Verigy Pte Ltd Singapore Fehlererkennung in komprimierten Daten
US7856523B2 (en) * 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
US20070019805A1 (en) * 2005-06-28 2007-01-25 Trustees Of Boston University System employing systematic robust error detection coding to protect system element against errors with unknown probability distributions
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
JP2008233683A (ja) * 2007-03-22 2008-10-02 Toshiba Corp 暗号処理装置及びプログラム
EP2326042B1 (fr) * 2009-11-18 2013-04-03 STMicroelectronics (Rousset) SAS Procédé de détection d'une attaque par injection de fautes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101496342A (zh) * 2006-07-21 2009-07-29 日本电气株式会社 加密装置、程序及方法

Also Published As

Publication number Publication date
US8688995B2 (en) 2014-04-01
ATE550726T1 (de) 2012-04-15
JP5693927B2 (ja) 2015-04-01
EP2336930B1 (en) 2012-03-21
FR2952735B1 (fr) 2011-12-09
JP2011109662A (ja) 2011-06-02
US20110119762A1 (en) 2011-05-19
CN102063586A (zh) 2011-05-18
EP2336930A1 (en) 2011-06-22
FR2952735A1 (fr) 2011-05-20

Similar Documents

Publication Publication Date Title
CN102063586B (zh) 用于检测故障攻击的方法和装置
US10439797B2 (en) Methods and devices against a side-channel analysis
Bhasin et al. Attacking and defending masked polynomial comparison for lattice-based cryptography
Kocher et al. Introduction to differential power analysis and related attacks
Anderson et al. Cryptographic processors-a survey
Lin et al. Trojan side-channels: Lightweight hardware trojans through side-channel engineering
CA2333095C (en) Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
DE69938045T2 (de) Verwendung von unvorhersagbarer Information zur Leckminimierung von Chipkarten und anderen Kryptosystemen
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
CN104079304B (zh) 用于处理数据的设备和方法
KR20040053101A (ko) 정보 누출이 감소된 장치 및 방법
CN102970132B (zh) 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
KR20010091939A (ko) 정보처리장치 정보처리방법 및 카드부재
Roy et al. Circuit CAD tools as a security threat
Berzati et al. Fault analysis of GRAIN-128
US20050271201A1 (en) Encryption circuit
EP2602952A1 (en) Cryptographic method for protecting a key hardware register against fault attacks
Mischke et al. Fault sensitivity analysis meets zero-value attack
CN107016292B (zh) 防止通过功率分析进行窃听的电子电路及防止窃听的方法
US20110119532A1 (en) Method of detecting a fault attack
CN100588155C (zh) 在电子部件中实现用于寻找公共指数的加密算法的方法
Lee et al. Improved Shamir's CRT‐RSA Algorithm: Revisit with the Modulus Chaining Method
Barman et al. A randomised scheme for secured modular exponentiation against power analysis attacks
Luo et al. An improvement of both security and reliability for Keccak implementations on smart card
Rahaman et al. Side channel attack prevention for AES smart card

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151125

Termination date: 20211117