CN107103229A - 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 - Google Patents

测试电路对二阶或更高阶侧信道分析的抵抗力的方法 Download PDF

Info

Publication number
CN107103229A
CN107103229A CN201710092704.XA CN201710092704A CN107103229A CN 107103229 A CN107103229 A CN 107103229A CN 201710092704 A CN201710092704 A CN 201710092704A CN 107103229 A CN107103229 A CN 107103229A
Authority
CN
China
Prior art keywords
value
data
found
computing
collection
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
CN201710092704.XA
Other languages
English (en)
Inventor
H·西博尔德德拉克鲁伊
A·武尔科尔
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.)
Echal Co
EshardSAS
Original Assignee
Echal Co
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
Priority claimed from FR1651444A external-priority patent/FR3048096A1/fr
Priority claimed from FR1651443A external-priority patent/FR3048086B1/fr
Priority claimed from FR1651445A external-priority patent/FR3048097A1/fr
Application filed by Echal Co filed Critical Echal Co
Publication of CN107103229A publication Critical patent/CN107103229A/zh
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • 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]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31719Security aspects, e.g. preventing unauthorised access during test
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/72Protecting 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 cryptographic circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic 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/3247Cryptographic 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
    • 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/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3249Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
    • 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/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种测试电路对二阶或更高阶侧信道分析的抵抗力的方法,包括:获取多个值集,每个值集包括物理量或逻辑信号的值,值集与电路的活动关联;选择每个值集的至少两个值子集;对于每个值集,计算将每个值子集中的一个值组合在一起的组合值;对于每个值集,对由被应用于该值集中的组合值的第一满射函数变换的值的出现次数计数;对于运算集中的每个运算以及机密数据的一部分的每个可能值,计算部分运算结果;计算累积出现次数集,其通过将对应于运算集中的运算的出现次数集相加而获得,当被应用于机密数据的部分的可能值的相同值时,运算提供具有通过第二满射函数获得的相同变换值的部分运算结果;以及分析累积出现次数集以确定机密数据部分。

Description

测试电路对二阶或更高阶侧信道分析的抵抗力的方法
技术领域
本发明涉及一种用于测试电路的方法,具体涉及被设计为处理机密数据的电路,特别涉及用于通过使用密钥的加密算法来变换消息的电路。
本发明特别涉及实现密码算法的设备,诸如安全设备(智能卡集成电路、安全元件、安全存储卡)、移动设备(移动电话、智能手机、物联网)、家用和汽车设备、以及集成到计算机和其他电子和IT设备(USB驱动器、电视解码器、游戏控制台等)的母板上的硬件加密组件等。本发明还涉及包括加密运算的软件,该软件用于在安全或不安全的环境中执行。
本发明具体涉及实现诸如DES(数据加密标准)或三重DES、AES(高级加密标准)、RSA(Rivest、Shamir和Adleman)、DSA(数字签名算法)或ECDSA(椭圆曲线数字签名算法)等加密算法之类的密码算法的电路。本发明还涉及实现诸如HMAC(密钥散列消息认证码)之类的散列函数的电路。
背景技术
实现密码算法的微电路配备有中央处理单元(CPU)。一些微电路配备有专用于密码计算的电路,例如加密协处理器。这些微电路包括根据所执行的运算以不同的方式切换的数千个逻辑门。这些开关在电流消耗上产生短暂变化,例如可以被测量的几纳秒。具体而言,CMOS型集成电路包括在切换时(即,当逻辑节点变为1或0时)才消耗电流的逻辑门。因此,电流消耗取决于中央单元处理的数据及其各种外围设备(存储器)上的数据、在数据或地址总线上流动的数据、密码协处理器等。
此外,具体使用加密或模糊技术(诸如“白盒密码术”技术)产生的某些软件程序可以以使得难以通过逆向工程确定的方式来集成机密数据。某些软件程序还可以通过安全通信信道从外部接收机密数据。当观察到这些微电路的电流消耗、或它们的磁或电磁辐射、或可以在执行加密算法的同时观察到的其它任何信息时,这些微电路可能会受到所谓的侧信道分析攻击。此类攻击旨在发现它们使用的机密数据,特别是它们的加密密钥。频繁的侧信道攻击实施诸如SPA(“单功耗分析”)、DPA(“差分功耗分析”)、CPA(“相关功耗分析”)或EMA(“电磁分析”)之类的统计分析方法。SPA分析(参考文献[1])通常只需要获取单个电流消耗踪迹。其目的是通过观察对应于密码计算的消耗踪迹的一部分来获得关于集成电路的活动的信息,因为当前踪迹根据所执行的运算和所处理的数据而变化。
软件在被电路执行期间也可能经历这种侧信道攻击。
DPA(参考文献[2])和CPA分析使得能够通过获取大量数据或测量踪迹并通过对这些踪迹进行统计分析以查找搜索的信息来找到加密算法的密钥。它们基于这样的前提:即,当寄存器中或总线上的位从0变为1时,CMOS型集成电路的消耗发生变化,以及当位保持等于0、保持等于1或从1变为0(MOS晶体管的寄生电容的放电)时,其不发生变化。或者,可以认为当位从0变为1或从1变为0时,CMOS型集成电路的消耗发生变化,并且当位保持等于0或保持等于1时,CMOS型集成电路的消耗不变。该第二假设使得能够使用常规的“汉明距离”或“汉明权重”函数来开发不需要已知集成电路的结构可应用的消耗模型。DPA分析涉及通过对大量消耗踪迹的统计处理来放大该消耗差异,目的在于突出根据公式假设区分的两个消耗踪迹族之间的测量差异。
CPA分析(参考文献[3])基于线性电流消耗模型,并且涉及计算首先所测量的形成捕获的消耗踪迹的消耗点与其次根据线性消耗模型和有关由微电路处理的待发现的变量以及有关加密密钥的值的假设而计算的推定消耗值之间的相关系数。
电磁分析(EMA)基于如下原理:即,微电路可以以近场或远场电磁辐射的形式泄漏信息。假设晶体管在其状态改变时发射电磁信号,则可以通过诸如SPA、DPA和CPA分析中的一种或其它分析,像电流消耗变化信号那样处理这些信号。此分析的一个应用实例由Jean-Jacques Quisquater(参考文献[4])做出。
存在其它侧信道攻击,例如“模板攻击”(参考文献[5])和“交互信息分析”(MIA)(参考文献[6])。所有上述攻击都基于所有被分析的踪迹的时间对准。换言之,在给定时间(例如从命令的执行被电路激活的时间)执行的所有测量必须对应于由算法处理的相同值。
为了保护此类电路及其执行的密码算法免受这些侧信道攻击,通常提供应对措施。几种普遍的应对措施均旨在避免这种时间对准。为此,这些应对措施引入为计算电路定速的时钟频率的变化,或引入伪时钟周期或伪运算。
有时可以借助特定的专业知识以及多次尝试来恢复这种时间对准,特别是使用大量要被重新对准的踪迹或应用一些信号处理。尽管如此,仍存在以下情况:即,不能恢复这种时间对准,这样,即使在踪迹中存在机密数据泄漏,侧信道测试也会失败。
另几种应对措施涉及借助伪密钥或伪消息来多次执行加密方法。为此,提供了例如控制加密程序或协处理器的应对措施程序,该程序以随机的顺序,通过伪密钥多次执行加密方法,从而使得通过正确的密钥(即,真实的密钥)对加密方法的执行被“隐藏”在一组伪执行中。通过多次执行实现这种应对措施提供了以下优点:即,可以通过不包括任何特定的应对措施手段的常规协处理器来实现此应对措施。
另几种应对措施涉及使得要保护的算法适合独立于由电路处理的数据的实际值来呈现这些数据。这几种应对措施中的某些应对措施被称为“掩蔽型应对措施”-使用随机掩码(二进制数),在执行加密方法期间,这些随机掩码与另一要保护的数据(例如密钥和/或消息)组合在一起。此类应对措施是有效的,但是需要修改算法,因此,在由专用协处理器执行的情况下,需要专用于实现此应对措施的协处理器,或者在由微电路的中央处理单元或编程协处理器执行的情况下,需要更复杂的程序。此外,此类应对措施易经受所谓的“二阶攻击”,此攻击基于对一组信号踪迹的分析,通过组合相应踪迹的两个部分来获得每个信号踪迹。作为一个实例,这些信号踪迹中的每一个组合了应持有与由待发现的数据值和随机掩码值的组合产生的数据相关的泄漏的信号部分、以及应持有随机掩码值的泄漏的信号部分。参考文献[7]公开了组合时间信号部分以获得与待发现的数据值相关的信号踪迹的不同方式。但是,由于要求组合信号部分在被组合之前需要在时间上严格对准,因此这种二阶攻击面临困难。如果不满足此要求,则组合后的信号踪迹不包含能够通过常规统计分析提取的有用信息,或者组合后的信号踪迹包含有用信息,但是此信息不能通过常规统计分析提取。因此,二阶攻击对基于各种时间未对准的应对措施非常敏感,例如导致为电路定速的时钟周期的持续时间随机改变的应对措施,或者在随机选择的时间引入伪处理周期或运算的应对措施。
为了检查旨在上市的安全集成电路提供的安全级别,在电路上市之前安排资格和/或认证测试,这些测试具体包括集成电路防侧信道分析的鲁棒性测试,目的是发现由集成电路处理的机密数据。还有一些测试可以评估软件程序对侧信道攻击的抵抗力。
因此,期望提出一种用于测试电路或软件程序对二阶侧信道攻击的抵抗力的方法,其具体能够检测机密数据泄漏,而不需要对电流消耗踪迹或表示电路活动的其它任何物理或逻辑量的任何先前时间对准处理。还希望此方法能够独立于执行软件程序或应用的电路来测试软件程序或应用的鲁棒性。
还可能期望将此测试方法集成到旨在检查电路或由给定电路执行的软件对侧信道分析的抵抗力以及它们在信息泄漏方面的严密性的工业资格和/或认证处理中。
还可能期望提出在包括这种测试方法的资格和/或认证过程之后,使得集成电路或软件程序能够被认为能够在产品中使用的应对措施手段。
发明内容
某些实施例涉及一种测试方法,包括:获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联;选择每个值集中的至少两个值子集;对于每个值集,计算将每个值子集中的一个值组合在一起的组合值;对于每个值集,通过处理单元对由被应用于该值集中的所述组合值的第一满射函数变换的值的出现次数计数,以形成该值集的出现次数集;对于所述运算集中的每个运算以及待发现的数据的一部分的每个可能值,通过所述处理单元计算部分运算结果;通过所述处理单元计算累积出现次数集,所述累积出现次数集是通过将对应于所述运算集中的运算的出现次数集相加而获得的,当被应用于所述待发现的数据的所述部分的可能值的相同值或等价值时,所述运算提供具有应用第二满射函数所获得的相同变换值的部分运算结果;以及通过所述处理单元分析所述累积出现次数集以确定所述待发现的数据的所述部分,从而知道如果所述待发现的数据已经泄漏到所述值集中,则在与所述待发现的数据的所述部分的值对应的所述累积出现次数集中找到所述待发现的数据。
根据一实施例,通过以下操作获得值集的所述组合值:将每个子集中的每个值相乘在一起,或者计算第一子集中的每个值与第二子集中的每个值之间的正差,或者将每个子集中的每个值与该子集中的值的平均值之间的差相乘在一起。
根据一实施例,所述方法进一步包括:向所述电路发送多个不同的命令,每个命令触发由所述电路执行被应用于所述待发现的数据的所述运算集中的运算之一;以及在由所述电路执行所述运算集中的一个运算期间,由测量设备收集所述值集中的一个值集的值。
根据一实施例,每个值集的所述子集包括相应不同信号的测量。
根据一实施例,所述值集包括:所述电路的电流消耗的测量,和/或由所述电路发射的电磁辐射的测量,和/或所述电路周围存在的磁场的吸收的测量,和/或在所述电路中收集的逻辑信号或数字值。
根据一实施例,其中所述第一和第二满射函数中的每一者是以下函数之一:恒等函数;这样的函数:其提供结果值,该结果值然后被简化为对应于汉明权重的值;这样的函数:其提供该函数被应用到的值的汉明权重;或这样的函数:其提供值与该函数被应用到的先前值之间的汉明距离。
根据一实施例,所述方法进一步包括:如果分析步骤确定所述待发现的数据的所述部分,则拒绝所述电路或由所述电路执行的程序。
根据一实施例,针对所述待发现的数据的先前确定的部分和所述待发现的数据的另一部分,执行计算所述待发现的数据的一部分的每个可能值的运算结果的步骤、计算所述累积出现次数的步骤、以及分析所述累积出现次数的步骤。
根据一实施例,每个值集中的选定子集包括:该值集的连续值,和/或该值集的非连续值,和/或该值集的局部极值,和/或该值集的全部值。
根据一实施例,所述运算集中的所述运算包括将单个运算应用于所述待发现的数据以及应用于输入数据集中的输入数据,所述单个运算包括以下运算中的至少一者:对称或不对称加密或解密运算;签名运算;与所述待发现的数据的模乘或非模乘;与所述待发现的数据的逻辑异或运算;模幂运算,所述待发现的数据被用作指数;模简化运算,所述待发现的数据被用作模数;采用使用输入值在替换表中选择的值的替换运算;组合了与所述待发现的数据的逻辑异或运算和替换运算的运算,所述替换运算以使用所述逻辑运算的结果在替换表中选择的值替换所述逻辑运算的结果。
根据一实施例,所述累积出现次数集的分析包括:对于每个累积出现次数,通过将该累积出现次数除以在该累积出现次数中累积的对应数量的出现次数来计算正规化累积出现次数;对于所述待发现的数据的所述部分的每个可能值和变换后的部分结果的每个可能值,计算对应于所述待发现的数据的所述部分的该可能值和所述变换后的部分结果的该可能值的每个正规化累积出现次数与被除以运算次数的所述累积出现次数的平均值之间的差值平方和;对于所述待发现的数据的所述部分的每个可能值,计算与所述变换后的部分结果的所述可能值对应的累积总差值和;以及相互比较所述累积总差值和,并且检测所述待发现的数据的所述部分的可能值的所述累积总差值和之一是否大于另一累积总差值和。
根据一实施例,所述累积出现次数的分析包括:对于所述待发现的数据的所述部分的每个可能值和变换后的部分结果的每个可能值,计算所述累积出现次数的累积总和;对于每个累积出现次数,通过将出现次数和除以累积出现次数的对应累积总和来计算正规化累积总和,并计算所述正规化累积总和与所述正规化累积总和的对数的乘积;对于所述待发现的数据的所述部分的每个可能值和变换后的部分结果的每个可能值,计算与所述待发现的数据的所述部分的该可能值和所述变换后的部分结果的该可能值对应的所述乘积的和;对于所述待发现的数据的所述部分的每个可能值,计算与所述变换后的部分结果的所述可能值对应的累积总乘积和,每个乘积和被乘以对应数量的出现次数和;以及相互比较所述累积总乘积和,并且检测所述待发现的数据的所述部分的可能值的所述累积总乘积和之一是否大于另一累积总乘积和。
实施例还可以涉及一种用于测试电路的系统,所述系统包括:测量设备,其被配置为获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联;以及处理单元,其被配置为实现先前定义的方法。
根据一实施例,所述系统进一步包括测量探头,其耦合到所述测量设备以获取与所述电路的活动相关联的踪迹。
根据一实施例,所述系统进一步包括仿真器,其执行要测试的应用。
实施例还可以涉及一种计算机程序产品,其可加载到计算机的内部存储器中并包括代码部分,当由计算机执行时,所述代码部分配置所述计算机以执行上面定义的方法的步骤。
附图说明
下面将结合但不限于附图来描述仅为了例示目的而提供的本发明的实施例的一些实例,其中:
图1示意性地表示安全电路的常规架构;
图2示意性地表示集成电路测试系统的一个实例;
图3表示在由安全电路执行加密运算期间获取的信号的踪迹;
图4表示根据一个实施例的用于测试电路的方法的步骤;
图5以图的形式表示了满射函数的一个实例;
图6示意性地表示根据一个实施例构建的用于执行统计处理的表;
图7表示根据另一实施例的用于测试电路的方法的步骤;
图8和9表示根据各种实施例的用于对通过测试方法获得的值集进行统计分析的方法的步骤;以及
图10和11以曲线的形式表示由图8和9的分析方法提供的结果表。
具体实施方式
作为一个实例,图1表示安全集成电路CT,该集成电路例如布置在诸如塑料卡或任何其它介质的便携式介质HD上,或者布置在诸如移动终端、智能电话、IoT设备等终端中。所述集成电路包括微处理器PRC、输入/输出电路IOC,通过数据和地址总线耦合到微处理器的存储器M1、M2、M3以及可选地包括加密计算协处理器CP1或算术加速器,以及随机数发生器RGN。存储器M1是包含易失性应用数据的RAM型(“随机存取存储器”)存储器。存储器M2是包含非易失性数据和应用程序的非易失性存储器,例如EEPROM或闪存。存储器M3是包含微处理器的操作系统的只读存储器(或ROM存储器)。
通信接口电路IOC可以是例如根据ISO/IEC 7816标准的接触型电路,例如根据ISO/IEC 14443A/B或ISO/IEC 13693标准的具有感应耦合的非接触型电路,借助电耦合的非接触型电路(UHF接口电路),或同时为接触型和非接触型电路。接口电路IOC还可以通过特定接口耦合到诸如NFC(近场通信)控制器的另一电路,或者诸如移动终端或连接对象的终端的主电路。
在某些实施例中,集成电路CT可以被配置为通过加密功能执行对发送给它的消息进行加密、解密或签名的操作。该加密功能可以由电路CT的处理器PRC执行,或者部分地或完全地由处理器PRC的协处理器CP1执行。
图2表示根据一个实施例的用于实现测试方法的集成电路测试系统的一个实例。例如假定测试系统被配置为测试图1中的集成电路CT。
图2的测试系统包括耦合到诸如数字示波器的测量设备MD的测量探头PB,以获取与电路的活动相关的踪迹,诸如电流消耗或电磁信号变化的踪迹,以及包括诸如个人计算机PC的计算部件。计算机PC耦合到测量设备并且实现测试程序。该测试程序具体地包括通信接口、用于与集成电路通信并用于向集成电路发送消息的程序、信号处理程序,以及用于实现根据本发明的方法的计算步骤的程序。在集成电路是非接触式电路的情况下,通信接口可以包括非接触式读卡器。
探头PB可以是电流探头(例如放置在集成电路的电源端子Vcc上的电阻器)或者通过信号放大器AMP耦合到测量设备的电磁探头。或者,电流探头可以与电磁探头组合。电磁辐射的研究实际表明,工作中由电路发射的电磁场提供关于集成电路中的位开关的信息,就像消耗的电流的测量一样。电磁探头的优点是它可以放置其操作需要分析电路部分附近(例如靠近微处理器PRC的核心或密码计算协处理器CP1的核心)。
此外,在非接触式集成电路的情况下,电流探头可以用电感探头代替,电感探头测量集成电路对读取器发射的磁场的吸收。这种电感探头(例如天线线圈)本身能够与放置在要研究的电路区域附近的电磁场探头组合。
因此,在本申请中,为了简化语言而使用的短语“电流消耗”指任何可测量的物理量,其随时间的变化表示集成电路内部或所研究的集成电路部分内部的二进制数据的切换,该物理量能够在集成电路的端子处或在所研究的集成电路部分附近被测量。此外,以高得足以收集感兴趣的数据周期内的多个点的采样频率对物理量进行采样,实际上形成大量踪迹,其中每个踪迹包含10到数十万个点,但是也可以考虑在每个踪迹中收集几百万个值或甚至更多值。
本申请还涉及一种用于测试软件程序或应用的方法。在这种情况下,软件程序可以由测试系统直接执行或由测试系统所执行的仿真程序执行。因此,所分析的踪迹例如可以是当访问存储器时被发送到存储器的一系列值,或在电路的寄存器中处理的数据,甚至是被发送到电路的通信接口的数据,这些发送由受测试的软件程序控制。
所述测试方法的某些实施例基于对信号或数字值的随时间变化的踪迹的详细观察,这些踪迹表示在受测试电路执行被应用于待发现的数据(下文称为“机密数据”)的运算时所述电路的操作。
图3表示可以由测试系统获取的一段时间上的值的踪迹C0、C1、...Cix。这些踪迹中的每一者已经通过使受测试的电路或软件程序执行运算而获得。对应于踪迹C0、C1、...Cix的运算通常都是不同的。这些运算不同例如是因为它们涉及将同一函数应用于不同的已知输入数据,例如要加密、解密或签名的消息或要检查的签名,或要计算的HMAC(密钥-散列消息认证码)。或者,已知数据可以是函数的输出数据、或该函数的输入和输出数据的一部分,而非其输入数据。
所述函数可以是应用于相同机密数据SD和输入数据M的任何函数,诸如对称或不对称加密或解密运算、或甚至签名运算、或者仅仅是与机密数据的模乘或非模乘(M×SD)、与机密数据的逻辑XOR函数(异或)(M XOR SD)、模幂函数(机密数据被用作指数(MSD mod n,n是已知的))、模简化函数(机密数据被用作模数(M mod SD))。所述函数的另一实例涉及使用替换表(SBOX[M XOR SD],SBOX是替换表)来处理XOR运算的结果,如在DES和AES加密算法的情况下。更一般地,该函数必须能够基于机密数据的一部分和输入数据来计算由运算产生的值的一部分。
在图3的实例中,踪迹C0,C1,…Ci,…Cix分别对应于输入(或输出)数据M[0]、M[1]、...M[i]、...M[ix]。每个踪迹Ci可以由从在同一受测试电路上测量的同一信号获取的样本形成,或者可以包括来自当受测试电路操纵数据M[i]时捕获的不同信号的样本。
图4表示步骤S1到S20,这些步骤处理在执行被应用于待发现的机密数据和被应用于也已知的输入数据M[0]...M[ix]的已知加密运算OPRK期间由测试系统收集的值。根据一个实施例,该测试的目的是例如判定机密数据的值是否泄漏到形成图3的踪迹的所收集的值中。处理单元PC首先执行步骤S1到S9。
在步骤S1,测试系统的处理单元PC将输入数据M[0]...M[ix]上的循环的索引i以及表CH设定为0。在步骤S2,处理单元PC通过要测试的电路MCT或软件程序激活运算OPRK的执行,该运算接收数据M[i],机密数据被提供给电路MCT或软件程序执行的运算。在步骤S3,处理单元PC收集构成踪迹Ci的值。在步骤S4,选择踪迹Ci的值的部分EC1i、EC2i(图3),只有这些部分在以下处理步骤中被处理。在图4的实例中,为了简单起见,部分EC1i、EC2i由踪迹Ci的与部分EC1i的索引k1和k1x以及与部分EC2i的索引k2和k2x对应的值来界定。实际上,索引k1、k1x、k2和k2x可以从一个踪迹Ci变化到下一个踪迹Ci。此外,与现有技术的侧信道分析相比,每个踪迹中以此方式选定的值不一定是连续的,并且每个部分EC1i、EC2i中的值的数量在每个踪迹Ci中可能彼此不同,并且在一个踪迹Ci与下一个踪迹之间可能是不同的。因此,例如可以选择从每个踪迹Ci中仅提取最大或最小局部值。还应注意,所提取部分EC1i、EC2i可以包括整个踪迹Ci。在下面的处理中,假设以此方式提取的数据包含一条关于被被搜索的机密数据的信息。每个踪迹Ci(i=0…ix)可以包括来自在受测试电路操纵数据M[i]的同时获取的不同信号的样本值。在这种情况下,部分EC1i例如可以包括从第一信号提取的样本值,并且部分EC2i包括从第二信号提取的样本值。
在步骤S5,将所提取部分EC1i中的每个点与所提取部分EC2i中的每个点相组合,以形成要在下面的步骤处理的点集Wi(图3)。根据某些实例,可以根据下面等式之一计算每个点Wi[j]:
Wi[j]=EC1i[m1]x EC2i[m2], (1)
Wi[j]=|EC1i[m1]–EC2i[m2]|, (2)
Wi[j]=|EC1i[m1]–M(EC1i)|x|EC2i[m2]–M(EC2i)|, (3)
m1和m2是范围分别从k1到k1x(m1)以及从k2到k2x(m2)的索引,j是范围从0到(k1x-k1+1)(k2x-k2+1)-1的索引,|x|表示值x的绝对值,并且M(EC)表示点集EC的算术平均值。因此,对于所提取部分EC1i的点和所提取部分EC2i的点的每个可能组合,每个点集Wi包括不同值Wi[j]。
在步骤S6,处理单元PC将循环索引j以及表HT设定为0。在步骤S7,处理单元PC对点集Wi的索引j的点值Wi[j]应用满射函数F1,并且使表HT中的值递增一(1),该值由等于函数F1提供的结果的索引来指定。在步骤S8,索引j递增一(1)。在步骤S9,将索引j与其最大值进行比较,以判定是否已经如此处理了点集Wi中的全部值。根据等式(1)、(2)和(3),能够根据点集Wj中的点的数量计算j的最大值。能够通过将点集EC1i中的点的数量乘以点集EC2i中的点的数量,即(k1x-k1+1)(k2x-k2+1),计算点集Wj中的点的数量。一旦处理了点集Wi中的全部值,处理单元PC就执行步骤S10到S15,否则再次执行步骤S7到S9。以这种方式,加载到表HT的点集Wi中的值具有指定由函数F1返回的每个可能值的出现次数的直方图形式,以使得与点集Wi中的值相关的时间特征不包括在表HT中:表HT的内容使得不能确定集合中的值被收集的顺序。图5表示采取图的形式的使用函数F1计算的值(在x轴上)的出现次数(在y轴上)的表HT的一个实例。在图5的实例中,函数F1返回根据8位编码值计算的汉明权重。
在步骤S10,处理单元PC将索引g设定为0。在步骤S11,处理单元PC对数据M[i]和待确定的机密数据SD的一部分(被设定为等于索引g)应用运算OPR。运算OPR(M,g)假定提供在步骤S2执行的运算OPRK(M)(=OPR(M,SD))的结果的一部分。由运算OPR提供的结果被提供值VL的满射函数F2处理。在步骤S12,处理单元PC将索引l设定为0。在步骤S13,处理单元PC在由索引g、VL和l指定的位置处将存储在三维表CH中的值递增表HT中对应于数据M[i]的索引l处的值HT[1]。图6表示表CH的一个实例,其中由索引g和VL指定的每个位置CH[g,VL]包含根据在步骤S12获得的值VL组合若干表HT而获得的表。在步骤S14,索引l递增一(1)。在步骤S15,考虑到由函数F1提供的可能不同值的数量,将索引l与其最大值lx进行比较。如果索引l小于或等于其最大值lx,则再次执行步骤S13到S15,否则(当索引l大于其最大值1x)时,执行步骤S16和S17。
在步骤S16,处理单元PC使索引g递增一(1)。在步骤S17,考虑到所考虑的机密数据部分的可能不同值的数量,处理单元PC将索引g与其最大值gx进行比较。如果索引g小于或等于最大值gx,则执行从步骤S11到步骤S17的新迭代,否则(当索引g大于其最大值gx时),执行步骤S18和S19。在步骤S18,处理单元PC使索引i递增一(1)以处理另一踪迹Ci。在步骤S19,处理单元PC将索引i与其最大值ix(对应于所生成的踪迹Ci的数量)进行比较。如果索引i小于或等于最大值ix,则再次执行步骤S2到S19,否则(当索引i大于其最大值ix时),则执行步骤S20。在步骤S20,包含在位置[g,VL]处的表CH中的累积总和的每个表包含以下值:
在上述总和中要考虑的数据M[i]使得F2(OPR(M[i],g))=VL。
在步骤S20,处理单元PC对表CH执行统计分析,旨在判定索引g的值是否对应于要搜索的机密数据部分。为此,考虑从机密数据的泄漏获得的信息已经累积在表CH中的行g的位置中,而独立于机密数据的信息被随机地或均匀地分布在表CH中。因此,如果表CH的索引g的行包含比该表的其余部分更高的值,则表CH中的该行的索引g的值对应于要搜索的机密数据SD的该部分的值。在这种情况下,能够认为机密数据SD已经泄漏到所收集的形成踪迹Ci的数据中。
可以选择函数F1和F2以使其对应于要测试的电路或软件程序的泄漏模式。因此,函数F1和F2可以彼此相同或不同,并且可以被选择以最大化发现由电路操纵的机密数据的概率。例如,函数F1和F2可以是以下函数之一:
-恒等函数,
-这样的函数(例如,形式为F(x)=a·x+b):其结果值可以被简化为对应于汉明权重的值,例如当x在8位上被编码时介于值0与8之间,
-这样的函数:其计算在该函数的输入处提供的值的汉明权重,例如二进制编码值的1处的位数,或者
-这样的函数:其计算与另一值的汉明距离,例如这两个值中的1处的位数之间的差。
应当注意,函数F1和F2的选择可以影响要执行以确定所考虑的机密数据部分的表CH的统计处理的复杂性,以及确定要搜索的机密数据部分的值的统计处理的成功性。
通过执行步骤S1到S20搜索的机密数据部分例如可以在8或16位上定义。在8位的情况下,索引g被连续地分配给0和255(或1和256=28)之间的全部值。应当注意,测试g的值的顺序对于测试的结果而言不重要。要搜索的机密数据部分也可以在诸如16、32或64位的较宽的字上定义。
机密数据SD的另一部分可以通过使用先前确定的机密数据部分的值并通过将机密数据的另一部分强制到索引g的不同可能值来执行步骤S10到S20而确定。为此,能够在步骤S4提取踪迹Ci的相同部分EC1i、EC2i或这些踪迹的其它部分。
应当注意,在执行图4中的其它步骤之前,可能已经收集了形成踪迹Ci的值集(步骤S2和S3)。另外,在执行步骤S10到S20之前,可能已经针对每个踪迹Ci构成表HT。
应用于机密数据SD和输入数据M[i]的运算OPR/OPRK可以是以下运算之一或它们的组合:
-对称或不对称加密或解密运算,其中机密数据SD是加密或解密密钥,
-使用机密数据SD的签名运算,
-与机密数据的模乘或非模乘(M[i]×SD),
-与机密数据的异或逻辑运算(异或)(M[i]XOR SD),
-模幂运算,其中机密数据SD被用作指数(M[i]SD mod n,n是已知的),
-模简化运算,其中机密数据SD被用作模数(M[i]mod SD),
-采用使用输入数据在替换表中选择的值的替换运算(SBOX[M[i]],SBOX位于替换表中),以及
-组合了以下两种运算的运算:即,应用于机密数据的逻辑异或运算,和采用使用异或运算的结果在替换表中选择的值替换逻辑运算的结果的替换运算(SBOX[M[i]XORSD])。
更一般地,该运算必须使得能够仅基于机密数据的一部分和输入数据来计算运算的最终值的一部分。
为了突显与有关机密数据的信息对应的累积值,可以将所有表HT的内容彼此相加,以获得由函数F1返回的每个可能值的累积出现次数表。从表CH[g,VL]的位置中累积的所有表中减去该累积总和表的值。因此,可以根据图7所示的顺序来修改图4中的步骤序列。图7所示的步骤包括上述步骤S10到S20以及附加的步骤S21、S22和S23。在步骤S10之前执行的步骤S21中,索引i、一维表MHT和二维表CPT被设定为0。在步骤S10,二维表HT[0..ix,1]之前已经填充了包含针对所有踪迹Ci在步骤S7生成的所有表。将步骤S22插入由索引l控制的循环(在步骤S13和S15之间),由此可以例如在步骤S13之后选择由函数F1提供的值中的一个。在步骤S22,处理单元PC将每个值HT[i,l]累积在由索引l指定的位置处的累积总和表MHT中。以这种方式,在处理结束时,表MHT将包含针对每个踪迹Ci获得的索引i的全部值HT[i,l]的和。在由索引i控制的循环的每次迭代时执行一次步骤S23,从而例如可以在步骤S15之后选择踪迹Ci中的一个。步骤S23使能对累积在表CH的每个位置CH[g,VL]中的表HT[i,l]的数量计数。该计数的结果被存储在表CPT中。
图8表示为了尝试确定要搜索的机密数据SD的一部分的值而执行的表CH的统计处理的一个实例的步骤S31到S43。连续执行步骤S31到S37。在步骤S31,将索引VL设定为0,并且将表TT的所有位置设定为1。在步骤S32,将索引g和表IT的所有位置设定为0。在步骤S33,将索引l被设定为0。在步骤S34,变量T接收由索引g、VL和l选择的包含在表CH中的值CH[g,VL,l],该值被除以位于表CPT中的位置CPT[g,VL]处的计数值。在步骤S35,位于表IT中的位置g处的值IT[g]按照变量T的值与被除以踪迹Ci的总数ix的、由索引g和VL指定的存储在表MHT中的值MHT[g,VL]之间的差的平方递增。在步骤S36,索引l递增一(1)。在步骤S37,将索引l与其最大值lx进行比较。如果索引l已经达到其最大值1x,则执行步骤S38到S40,否则执行从步骤S34开始的新迭代。
在步骤S38,用在步骤S35到S37计算的值IT[g]乘以表TT中由索引g指定的值TT[g]来更新值TT[g],执行1x次。在步骤S39,索引g递增一(1)。在步骤S40,将索引g与其最大值gx进行比较。如果索引g大于其最大值gx,则执行步骤S41和S42,否则执行从步骤S33开始的新迭代。在步骤S41,索引VL递增一(1)。在步骤S42,将索引VL与其最大值VLx进行比较。如果索引VL大于其最大值VLx,则执行步骤S43,否则执行从步骤S32开始的新迭代。在步骤S43,作为统计分析的结果返回表TT。
因此,在包括步骤S32到S42的处理循环的最后一次迭代时,表IT和TT包含以下值:
其中并且
其中运算符“==”表示当相等为真时等于1的相等测试,并且当相等为假时,相等测试为0,表IT在步骤S32被设定为0,并且在步骤S35针对索引VL的每个新值加载表IT。
因此,CPT[g,VL]表示条件(F2(OPR(M[i],g))==VL)为真的次数。如果在执行运算OPRK时机密数据SD被泄漏,则表TT的一个位置包含比该表中存储的其它值高得多的值。结果是要搜索的机密数据SD的所述部分等于表TT中的最高值的索引g。
应当注意,在对应于等式(6)的步骤S38,可以加上表IT的值而不是相乘。乘法运算的实现只是允许增大表TT的各值之间的差,因此更好地突显对应于要搜索的机密数据部分的最高值。还可以考虑将对数函数应用于表IT的值,并且对在表TT中所获得的对数值执行加法累积。当表IT的值相加时,它们能够按照以下方式被加权:
图9表示为了尝试确定要搜索的机密数据SD的一部分的值而执行的表CH的统计处理的另一实例的步骤S51到S67。该处理基于香农熵函数。连续执行步骤S51到S56。在步骤S51,将索引g设定为0,并且将表TT的所有位置设定为0。在步骤S52,将索引VL设定为0。在步骤S53,将索引l和变量SXY设定为0。在步骤S54,使变量SXY按照由索引g、VL和l指定的表CH中选择的值CH[g,VL,l]递增。在步骤S55,索引l递增一(1)。在步骤S56,将索引l与其最大值lx进行比较。如果索引l已经达到其最大值lx,则执行步骤S57到S61,否则执行从步骤S54到步骤S56的新迭代。在步骤S57,将索引l和变量PXY设定为0。在步骤S58,变量VXY接收索引g、VL和l在表CH中选择的值CH[g,VL,l],该值被除以通过步骤S54到S56的迭代计算的变量SYX。在步骤S59,变量PXY按照变量VXY与变量VXY的对数(例如,以2为底数)的乘积递增。在步骤S60,索引l递增一(1)。在步骤S61,将索引l与其最大值lx进行比较。如果索引l已经达到其最大值lx,则执行步骤S62到S64,否则执行从步骤S58到步骤S61的新迭代。
在步骤S62,通过从由表TT中的索引g指定的值TT[g]中减去被除以踪迹Ci的数量ix的值CPT[g,VL]与变量PXY的乘积来更新值TT[g],值CPT[g,VL]由在步骤S22填充的表CPT中的索引g和VL指定。在步骤S63,索引VL递增一(1)。在步骤S64,将索引VL与其最大值VLx进行比较。如果索引VL大于其最大值VLx,则执行步骤S65和S66,否则执行从步骤S53开始的新迭代。在步骤S65,索引g递增一(1)。在步骤S66,将索引g与其最大值gx进行比较。如果索引g大于其最大值gx,则执行步骤S67,否则执行从步骤S52开始的新迭代。在步骤S67,作为统计分析的结果,返回表TT。
因此,在执行最后一次迭代时,在步骤S65之后,表TT包含以下值:
其中针对索引g和VL的每个值计算并且索引g的每个值表示要搜索的密钥部分的可能值。如果机密数据SD在处理运算OPRK时被泄漏,则表TT的一个位置包含比该表中存储的其它值高得多的值。结果是要搜索的机密数据SD的所述部分等于表TT中的最高值的索引g。
图10和11以曲线CC1、CC2的形式表示作为索引g的函数的表TT的内容的一个实例。曲线CC1已经通过执行图8中的步骤获得,曲线CC2已经通过执行图9中的步骤获得。在图10和11的实例中,索引g具有一个字节的长度(从而从0变化到255),并且曲线CC1和CC2已经通过数量达到500,000的大量踪迹Ci获得。与表TT中包含的其它值相比,曲线CC1和CC2在值g=168处具有明显的峰值。曲线CC1中的峰值比表TT的其它值约大三十倍。在曲线CC2中,峰值比表TT的其它值大三倍。取决于表CH的统计处理,可以认为,当通过增加所分析的踪迹Ci的数量而获得的峰值保持为比最接近的值大0.9倍的值时,要搜索的机密数据部分泄漏。
为使诸如集成电路的电路能够成功地通过已知的资格或认证程序,这些电路的设计者提供了涉及引入时间变量的最常规的应对措施。表HT中的值的计算允许从所分析的值中移除时间方面,并且避免必须同步或在时间上对准所分析的值的不同踪迹。如果关于要搜索的机密数据的信息在所分析的数据中,则先前描述的测试方法使能确定所有或部分机密数据。因此,先前描述的测试方法能够检测由电路操纵的机密数据是否在能够从该电路外部获取的信号中泄漏。
因为先前描述的测试方法组合了每个踪迹Ci中的两个部分EC1i、EC2i,所以其为二阶方法。通过选择每个踪迹Ci中的n个部分EC1i到ECni,并且通过将测试方法应用于每个可能的不同组合,能够将先前描述的测试方法应用于n阶(n大于2),该每个可能的不同组合根据以下等式,将每个踪迹Ci中的每个部分ECki(k的范围从1到n)中的一个值组合在一起:
其中mk的范围从kk到kxk,并且j的范围从0到
引用的参考文献
[1]作者P.C.Kocher,“Timing attacks on implementation of Diffie-Hellman,RSA,DSS,and other systems”,Neal Koblitz编辑,Advances in Cryptology-CRYPTO'96,计算机科学讲义第1109卷,第104-113页,Springer,1996年。
[2]作者P.C.Kocher、J.Jaffe和B.Jun,“”Differential Power Analysis”,M.J.Wiener编辑,Advances in Cryptology-CRYPTO'99,计算机科学讲义第1666卷,第388-397页,Springer,1999年。
[3]作者E.Brier、C.Clavier和F.Olivier,“Correlation Power Analysis witha Leakage Model”M.Joye和J-J.Quisquater编辑,Cryptographic Hardware andEmbedded Systems-CHES 2004,计算机科学讲义第3156卷,第16-29页,Springer,2004年。
[4]作者J.-J.Quisquater,“ElectroMagnetic Analysis(EMA):Measures andcounter-measures for Smart Cards”,Smart Card Programming and Security,Springer Berlin/Heidelberg,第2140、2001卷,第200-210页。
[5]作者S.Chari、J.R.Rao和P.Rohatgi,“Template Attacks”,Kaliski Jr.、B.S.、C.K.、Paar、C(编辑)CHES 2002.LNCS,第2523卷,第172-186页,Springer,Heidelberg(2003年)。
[6]作者B.Gierlichs、L.Batina、P.Tuyls和B.Preneel,“Mutual InformationAnalysis”,CHES 2008,LNCS的第5154卷,第426-442页,Springer,2008年。
[7]作者E.Prouff、M.Rivain、R.Bevan,“Statistical Analysis of SecondOrder Differential Power Analysis”,IEEE Transactions on Computers,第58卷,第6期,2009年6月。

Claims (16)

1.一种测试方法,包括:
获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联,
选择每个值集中的至少两个值子集,
对于每个值集,计算将每个值子集中的一个值组合在一起的组合值,
对于每个值集,通过处理单元对由被应用于该值集中的所述组合值的第一满射函数变换的值的出现次数计数,以形成该值集的出现次数集,
对于所述运算集中的每个运算以及待发现的数据的一部分的每个可能值,通过所述处理单元计算部分运算结果,
通过所述处理单元计算累积出现次数集,所述累积出现次数集是通过将对应于所述运算集中的运算的出现次数集相加而获得的,当被应用于所述待发现的数据的所述部分的可能值的相同值或等价值时,所述运算提供具有应用第二满射函数所获得的相同变换值的部分运算结果,以及
通过所述处理单元分析所述累积出现次数集以确定所述待发现的数据的所述部分,从而知道如果所述待发现的数据已经泄漏到所述值集中,则在与所述待发现的数据的所述部分的值对应的所述累积出现次数集中找到所述待发现的数据。
2.根据权利要求1所述的方法,其中通过以下操作获得值集的所述组合值:
将每个子集中的每个值相乘在一起,或者
计算第一子集中的每个值与第二子集中的每个值之间的正差,或者
将每个子集中的每个值与该子集中的值的平均值之间的差相乘在一起。
3.根据权利要求1或2所述的方法,包括:
向所述电路发送多个不同的命令,每个命令触发由所述电路执行被应用于所述待发现的数据的所述运算集中的运算之一,以及
在由所述电路执行所述运算集中的一个运算期间,由测量设备收集所述值集中的一个值集的值。
4.根据权利要求1至3中任一项所述的方法,其中每个值集的所述子集包括相应不同信号的测量。
5.根据权利要求1至4中任一项所述的方法,其中所述值集包括:
所述电路的电流消耗的测量,和/或
由所述电路发射的电磁辐射的测量,和/或
所述电路周围存在的磁场的吸收的测量,和/或
在所述电路中收集的逻辑信号或数字值。
6.根据权利要求1至5中任一项所述的方法,其中所述第一和第二满射函数中的每一者是以下函数之一:
恒等函数,
这样的函数:其提供结果值,该结果值然后被简化为对应于汉明权重的值,
这样的函数:其提供该函数被应用到的值的汉明权重,或
这样的函数:其提供值与该函数被应用到的先前值之间的汉明距离。
7.根据权利要求1至6中任一项所述的方法,包括如果分析步骤确定所述待发现的数据的所述部分,则拒绝所述电路或由所述电路执行的程序。
8.根据权利要求1至7中任一项所述的方法,其中针对所述待发现的数据的先前确定的部分和所述待发现的数据的另一部分,执行计算所述待发现的数据的一部分的每个可能值的运算结果的步骤、计算所述累积出现次数的步骤、以及分析所述累积出现次数的步骤。
9.根据权利要求1至8中任一项所述的方法,其中每个值集中的选定子集包括:
该值集的连续值,和/或
该值集的非连续值,和/或
该值集的局部极值,和/或
该值集的全部值。
10.根据权利要求1至9中任一项所述的方法,其中所述运算集中的所述运算包括将单个运算应用于所述待发现的数据以及应用于输入数据集中的输入数据,所述单个运算包括以下运算中的至少一者:
对称或不对称加密或解密运算,
签名运算,
与所述待发现的数据的模乘或非模乘,
与所述待发现的数据的逻辑异或运算,
模幂运算,所述待发现的数据被用作指数,
模简化运算,所述待发现的数据被用作模数,
采用使用输入值在替换表中选择的值的替换运算,
组合了与所述待发现的数据的逻辑异或运算和替换运算的运算,所述替换运算以使用所述逻辑运算的结果在替换表中选择的值替换所述逻辑运算的结果。
11.根据权利要求1至10中任一项所述的方法,其中所述累积出现次数集的分析包括:
对于每个累积出现次数,通过将该累积出现次数除以在该累积出现次数中累积的对应数量的出现次数来计算正规化累积出现次数,
对于所述待发现的数据的所述部分的每个可能值和变换后的部分结果的每个可能值,计算对应于所述待发现的数据的所述部分的该可能值和所述变换后的部分结果的该可能值的每个正规化累积出现次数与被除以运算次数的所述累积出现次数的平均值之间的差值平方和,
对于所述待发现的数据的所述部分的每个可能值,计算与所述变换后的部分结果的所述可能值对应的累积总差值和,以及
相互比较所述累积总差值和,并且检测所述待发现的数据的所述部分的可能值的所述累积总差值和之一是否大于另一累积总差值和。
12.根据权利要求1至10中任一项所述的方法,其中所述累积出现次数的分析包括:
对于所述待发现的数据的所述部分的每个可能值和变换后的部分结果的每个可能值,计算所述累积出现次数的累积总和,
对于每个累积出现次数,通过将出现次数和除以累积出现次数的对应累积总和来计算正规化累积总和,并计算所述正规化累积总和与所述正规化累积总和的对数的乘积,
对于所述待发现的数据的所述部分的每个可能值和变换后的部分结果的每个可能值,计算与所述待发现的数据的所述部分的该可能值和所述变换后的部分结果的该可能值对应的所述乘积的和,
对于所述待发现的数据的所述部分的每个可能值,计算与所述变换后的部分结果的所述可能值对应的累积总乘积和,每个乘积和被乘以对应数量的出现次数和,以及
相互比较所述累积总乘积和,并且检测所述待发现的数据的所述部分的可能值的所述累积总乘积和之一是否大于另一累积总乘积和。
13.一种用于测试电路的系统,所述系统包括:
测量设备,其被配置为获取多个值集,每个值集包括物理量或逻辑信号的值,当受测试电路执行被应用于待发现的相同数据的不同密码运算的运算集中的运算时,所述值集与所述电路的活动关联,以及
处理单元,其被配置为实现根据权利要求1至12中任一项所述的方法。
14.根据权利要求13所述的系统,包括测量探头,其耦合到所述测量设备以获取与所述电路的活动相关联的踪迹。
15.根据权利要求13或14所述的系统,包括仿真器,其执行要测试的应用。
16.一种计算机程序产品,其可加载到计算机的内部存储器中并包括代码部分,当由计算机执行时,所述代码部分配置所述计算机以执行根据权利要求1至12中任一项所述的方法的步骤。
CN201710092704.XA 2016-02-22 2017-02-21 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 Pending CN107103229A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
FR1651444A FR3048096A1 (fr) 2016-02-22 2016-02-22 Procede de protection d'un circuit contre une analyse par canaux auxiliaires
FR1651443A FR3048086B1 (fr) 2016-02-22 2016-02-22 Procede de test de la resistance d'un circuit a une analyse par canaux auxiliaires
FR1651443 2016-02-22
FR1651445A FR3048097A1 (fr) 2016-02-22 2016-02-22 Procede de protection d'un circuit contre une analyse par canaux auxiliaires
FR1651444 2016-02-22
FR1651445 2016-02-22

Publications (1)

Publication Number Publication Date
CN107103229A true CN107103229A (zh) 2017-08-29

Family

ID=57995161

Family Applications (6)

Application Number Title Priority Date Filing Date
CN201710093076.7A Pending CN107103246A (zh) 2016-02-22 2017-02-21 使电路免受侧信道分析的方法
CN201710093118.7A Pending CN107102919A (zh) 2016-02-22 2017-02-21 测试电路对侧信道分析的抵抗力的方法
CN201710092704.XA Pending CN107103229A (zh) 2016-02-22 2017-02-21 测试电路对二阶或更高阶侧信道分析的抵抗力的方法
CN201710092732.1A Pending CN107104783A (zh) 2016-02-22 2017-02-21 使电路免受侧信道分析的方法
CN201710096299.9A Pending CN107104785A (zh) 2016-02-22 2017-02-22 测试电路对侧信道分析的抵抗力的方法
CN201710095301.0A Pending CN107104784A (zh) 2016-02-22 2017-02-22 测试电路对二阶或更高阶侧信道分析的抵抗力的方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201710093076.7A Pending CN107103246A (zh) 2016-02-22 2017-02-21 使电路免受侧信道分析的方法
CN201710093118.7A Pending CN107102919A (zh) 2016-02-22 2017-02-21 测试电路对侧信道分析的抵抗力的方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN201710092732.1A Pending CN107104783A (zh) 2016-02-22 2017-02-21 使电路免受侧信道分析的方法
CN201710096299.9A Pending CN107104785A (zh) 2016-02-22 2017-02-22 测试电路对侧信道分析的抵抗力的方法
CN201710095301.0A Pending CN107104784A (zh) 2016-02-22 2017-02-22 测试电路对二阶或更高阶侧信道分析的抵抗力的方法

Country Status (4)

Country Link
US (6) US10505711B2 (zh)
EP (6) EP3220306B1 (zh)
KR (6) KR20170098730A (zh)
CN (6) CN107103246A (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
EP3220306B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
EP3264311B1 (en) 2016-06-28 2021-01-13 Eshard A protection method and device against a side-channel analysis
CN107547193A (zh) 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
FR3072211B1 (fr) * 2017-10-11 2021-12-10 St Microelectronics Rousset Procede de detection d'une injection de fautes et d'un amincissement du substrat dans un circuit integre, et circuit integre associe
EP3502903A1 (en) 2017-12-20 2019-06-26 Eshard Method of testing resistance of a software program to a side-channel analysis
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
EP3557813A1 (en) * 2018-04-17 2019-10-23 Gemalto Sa Method secured against side-channel attacks performing an arithmetic operation of a cryptographic algorithm mixing boolean and arithmetic operations
CN108646072B (zh) * 2018-05-16 2019-12-27 电子科技大学 一种基于汉明距的触发产生装置
DE102018130177A1 (de) 2018-11-28 2020-05-28 Infineon Technologies Ag Ausführen von kryptographischen Operationen in einer Steuereinheit eines Fahrzeugs
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
CN109921892A (zh) * 2019-01-15 2019-06-21 中国科学院信息工程研究所 一种基于测试向量的多维度侧信道泄露评估方法和系统
DE102020102796A1 (de) 2020-02-04 2021-08-05 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten von geheimen daten
CN111767584B (zh) * 2020-06-09 2022-01-25 北京智芯微电子科技有限公司 内置随机数发生器的安全微处理器及安全芯片
CN111984476B (zh) * 2020-06-29 2023-08-01 百度在线网络技术(北京)有限公司 测试方法和装置
FR3119252B1 (fr) * 2021-01-26 2023-01-06 Commissariat A L’Energie Atomique Et Aux Energies Alternatives Dispositif de protection et de supervision d’un système électronique comprenant au moins un composant électronique. Procédé associé de protection et de supervision de l’intégrité du système électronique et du dispositif, et de brouillage d’attaques.

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020154767A1 (en) * 2001-02-22 2002-10-24 Takashi Endo Tamper resistance device
US6760440B1 (en) * 1999-12-11 2004-07-06 Honeywell International Inc. One's complement cryptographic combiner
CN101371480A (zh) * 2005-11-21 2009-02-18 爱特梅尔公司 加密保护方法
CN104202145A (zh) * 2014-09-04 2014-12-10 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击

Family Cites Families (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH664056A5 (de) * 1984-11-02 1988-01-29 Borer Communications Ag Verfahren und vorrichtung fuer die umwandlung einer digitalen datensequenz in die verschluesselte form.
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
AU7957998A (en) * 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
ATE325478T1 (de) * 1998-01-02 2006-06-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US6298442B1 (en) * 1998-06-03 2001-10-02 Cryptography Research, Inc. Secure modular exponentiation with leak minimization for smartcards and other cryptosystems
CA2334597C (en) * 1998-07-02 2007-09-04 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
FR2791496B1 (fr) * 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2791497B1 (fr) * 1999-03-26 2001-05-18 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2793571B1 (fr) * 1999-05-11 2003-10-31 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
FR2809893B1 (fr) * 2000-06-02 2002-11-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
JP2002236152A (ja) * 2001-02-08 2002-08-23 Mitsubishi Electric Corp 半導体集積回路の試験装置及び試験方法
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US8104017B2 (en) * 2001-10-25 2012-01-24 The Mathworks, Inc. Traceability in a modeling environment
JP4086503B2 (ja) * 2002-01-15 2008-05-14 富士通株式会社 暗号演算装置及び方法並びにプログラム
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
US6825785B1 (en) * 2002-02-28 2004-11-30 Silicon Laboratories, Inc. Digital expander apparatus and method for generating multiple analog control signals particularly useful for controlling a sub-varactor array of a voltage controlled oscillator
CA2486713A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
US20040086117A1 (en) * 2002-06-06 2004-05-06 Petersen Mette Vesterager Methods for improving unpredictability of output of pseudo-random number generators
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
US8102997B2 (en) * 2004-03-29 2012-01-24 Stmicroelectronics S.A. Processor for executing an AES-type algorithm
EP1768040A4 (en) * 2004-07-07 2008-05-21 Mitsubishi Electric Corp POWER SUPPLY CALCULATING APPARATUS, POWER SUPPLY CALCULATING METHOD, APPARATUS FOR EVALUATING INVIOLABILITY, AND INVIOLABILITY ASSESSING METHOD
FR2873523B1 (fr) 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
JP4824319B2 (ja) * 2005-01-21 2011-11-30 ルネサスエレクトロニクス株式会社 故障検出装置及び方法、並びに信号抽出回路
JP4815141B2 (ja) * 2005-03-29 2011-11-16 富士通株式会社 回路異常動作検出システム
US7577850B2 (en) * 2005-04-15 2009-08-18 Lsi Corporation Security application using silicon fingerprint identification
CN101203859B (zh) * 2005-04-21 2013-08-14 松下电器产业株式会社 程序难破解化装置和难破解化方法
JP5384781B2 (ja) * 2005-08-18 2014-01-08 日本電気株式会社 秘匿通信システムおよび共有秘密情報の生成方法
JP4241765B2 (ja) * 2006-03-01 2009-03-18 株式会社日立国際電気 送信機及びキャリアリーク検出方法
EP1840732A1 (en) * 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
JP5496663B2 (ja) * 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
US8190299B2 (en) * 2006-07-19 2012-05-29 Rovnyak Steven M Integrated and optimized distributed generation and interconnect system controller
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20080091975A1 (en) * 2006-10-17 2008-04-17 Konstantin Kladko Method and system for side-channel testing a computing device and for improving resistance of a computing device to side-channel attacks
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
JP2008252299A (ja) * 2007-03-29 2008-10-16 Hitachi Ltd 暗号処理システム及び暗号処理方法
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US20100246808A1 (en) * 2007-12-05 2010-09-30 Nec Corporation Side channel attack tolerance evaluation apparatus, method and program
US8689087B2 (en) * 2008-01-11 2014-04-01 Orange Method and entity for probabilistic symmetrical encryption
US8848903B2 (en) * 2008-02-06 2014-09-30 Nec Corporation Device for evaluating side-channel attack resistance, method for evaluating side-channel attack resistance, and program for evaluating side-channel attack
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
US20100086171A1 (en) * 2008-10-02 2010-04-08 Silverbrook Research Pty Ltd Method of imaging coding pattern having merged data symbols
US8316338B2 (en) * 2009-02-09 2012-11-20 The United States Of America, As Represented By The Secretary Of Commerce, The National Institute Of Standards & Technology Method of optimizing combinational circuits
CN101562522A (zh) * 2009-05-06 2009-10-21 深圳先进技术研究院 抗侧信道攻击的椭圆曲线密码系统实现方法
US8331568B2 (en) * 2009-05-28 2012-12-11 Microsoft Corporation Efficient distribution of computation in key agreement
JP2010288233A (ja) * 2009-06-15 2010-12-24 Toshiba Corp 暗号処理装置
FR2947404B1 (fr) * 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
GB0914603D0 (en) * 2009-08-20 2009-09-30 Univ East Anglia Image reconstruction method
US8386800B2 (en) * 2009-12-04 2013-02-26 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
US8527766B2 (en) * 2009-12-30 2013-09-03 Microsoft Corporation Reducing leakage of information from cryptographic systems
US8572406B2 (en) * 2010-03-31 2013-10-29 Inside Contactless Integrated circuit protected against horizontal side channel analysis
EP2365659B1 (fr) * 2010-03-01 2017-04-12 Inside Secure Procédé de test de la résistance d'un circuit intégré à une analyse par canal auxiliaire
US8457919B2 (en) * 2010-03-31 2013-06-04 Inside Secure Process for testing the resistance of an integrated circuit to a side channel analysis
US8619985B2 (en) * 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
CN103370716B (zh) * 2010-11-03 2016-10-19 维吉尼亚技术知识产权公司 使用电力指纹监控基于计算机系统的完整性的方法和系统
EP3349360B1 (en) * 2011-01-14 2019-09-04 GE Video Compression, LLC Entropy encoding and decoding scheme
FR2972064B1 (fr) * 2011-02-25 2013-03-15 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation
US20130086328A1 (en) * 2011-06-13 2013-04-04 Paneve, Llc General Purpose Digital Data Processor, Systems and Methods
US20130067212A1 (en) * 2011-09-14 2013-03-14 Augustin J. Farrugia Securing implementation of cryptographic algorithms using additional rounds
US8891630B2 (en) * 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
US9906360B2 (en) * 2012-03-30 2018-02-27 Irdeto B.V. Securing accessible systems using variable dependent coding
KR20130111721A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 부분 곱 생성기의 부스코드 생성방법, 컴퓨터 시스템 및 그 매체와 디지털 신호프로세서
US9773111B2 (en) * 2012-08-14 2017-09-26 Empire Technology Development Llc Software-based side-channel attack prevention
EP3428883B1 (en) * 2012-10-26 2021-06-09 Brainlab AG Matching patient images and images of an anatomical atlas
US9015500B2 (en) * 2013-01-16 2015-04-21 Qualcomm Incorporated Method and apparatus for using dynamic voltage and frequency scaling with circuit-delay based integrated circuit identification
US9231978B2 (en) * 2013-02-04 2016-01-05 Mirko Randic Cryptographic construction for anonymity during interaction for collective outcome
US20140249799A1 (en) * 2013-03-04 2014-09-04 Microsoft Corporation Relational similarity measurement
US20140281208A1 (en) * 2013-03-13 2014-09-18 Silicon Graphics International Corp. Associative Look-up Instruction for a Processor Instruction Set Architecture
EP2972877B1 (en) * 2013-03-15 2021-06-16 Power Fingerprinting Inc. Systems, methods, and apparatus to enhance the integrity assessment when using power fingerprinting systems for computer-based systems
CN105229612B (zh) * 2013-03-18 2018-06-26 纽约市哥伦比亚大学理事会 使用基于硬件的微体系结构数据的异常程序执行的检测
US9524399B1 (en) * 2013-04-01 2016-12-20 Secturion Systems, Inc. Multi-level independent security architecture
US9237015B2 (en) * 2013-07-24 2016-01-12 Cisco Technology, Inc. Compact and efficient communication security through combining anti-replay with encryption
US9087192B2 (en) * 2013-09-10 2015-07-21 Infineon Technologies Ag Electronic circuit and method for monitoring a data processing
CN103647638A (zh) * 2013-12-03 2014-03-19 北京中电华大电子设计有限责任公司 一种抵抗侧信道攻击的des掩码方法
CN103647639A (zh) * 2013-12-03 2014-03-19 北京中电华大电子设计有限责任公司 一种对称密码算法抵抗侧信道分析的方法
US10055587B2 (en) * 2013-12-23 2018-08-21 The Trustees Of Columbia University In The City Of New York Implementations to facilitate hardware trust and security
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
DE102014101936A1 (de) * 2014-02-17 2015-08-20 Infineon Technologies Ag Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung
US9838198B2 (en) * 2014-03-19 2017-12-05 Nxp B.V. Splitting S-boxes in a white-box implementation to resist attacks
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US9425952B2 (en) * 2014-03-27 2016-08-23 Samsung Israel Research Corporation Algebraic manipulation detection codes from algebraic curves
CN106464484B (zh) * 2014-03-31 2019-08-09 爱迪德技术有限公司 预定函数的混淆执行
DE102014207296A1 (de) * 2014-04-16 2015-10-22 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
US9418231B2 (en) * 2014-06-03 2016-08-16 Empire Technology Development Llc Perturbation of field programmable gate array code to prevent side channel attack
US20160063516A1 (en) * 2014-08-29 2016-03-03 The Nielsen Company (Us), Llc Methods and apparatus to estimate commercial characteristics based on geospatial data
US10025926B2 (en) * 2014-11-19 2018-07-17 The Mitre Corporation Side-channel leakage evaluator and analysis kit
US9740863B2 (en) * 2014-11-25 2017-08-22 Intel Corporation Protecting a secure boot process against side channel attacks
WO2016083864A1 (en) * 2014-11-25 2016-06-02 Institut Mines-Telecom Methods for recovering secret data of a cryptographic device and for evaluating the security of such a device
US10333696B2 (en) * 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
CN104717054B (zh) * 2015-02-12 2017-11-14 中国科学院信息工程研究所 一种密码实现侧信道安全性快速检测方法
US10594471B2 (en) * 2015-03-20 2020-03-17 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
US10853625B2 (en) * 2015-03-21 2020-12-01 Mine One Gmbh Facial signature methods, systems and software
US10097342B2 (en) * 2015-07-30 2018-10-09 Nxp B.V. Encoding values by pseudo-random mask
CN105262726B (zh) * 2015-09-10 2018-10-19 中国人民解放军信息工程大学 一种基于大数据行为序列分析的apt攻击检测方法
US10204532B2 (en) * 2015-09-25 2019-02-12 Intel Corporation Multiple input cryptographic engine
US9794062B2 (en) * 2015-10-08 2017-10-17 The Boeing Company Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
US9942038B2 (en) * 2015-11-04 2018-04-10 Nxp B.V. Modular exponentiation using randomized addition chains
EP3179668B1 (en) * 2015-12-11 2019-05-22 Institut Mines-Télécom Methods and devices for estimating secret values
EP3188401B1 (en) * 2015-12-29 2019-12-18 Secure-IC SAS Method and system for protecting a cryptographic operation
EP3220306B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
EP3226460A1 (en) * 2016-04-01 2017-10-04 Institut Mines-Telecom Secret key estimation methods and devices
CN107547193A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
US10121011B2 (en) * 2016-11-16 2018-11-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus, method and article of manufacture for partially resisting hardware trojan induced data leakage in sequential logics

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760440B1 (en) * 1999-12-11 2004-07-06 Honeywell International Inc. One's complement cryptographic combiner
US20020154767A1 (en) * 2001-02-22 2002-10-24 Takashi Endo Tamper resistance device
CN101371480A (zh) * 2005-11-21 2009-02-18 爱特梅尔公司 加密保护方法
CN104202145A (zh) * 2014-09-04 2014-12-10 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击

Also Published As

Publication number Publication date
EP3220305B1 (en) 2018-10-31
CN107102919A (zh) 2017-08-29
US20170244551A1 (en) 2017-08-24
EP3220304B1 (en) 2018-11-07
US10505711B2 (en) 2019-12-10
KR20170098730A (ko) 2017-08-30
US20170244550A1 (en) 2017-08-24
US20170244548A1 (en) 2017-08-24
EP3208789B1 (en) 2020-08-05
CN107104784A (zh) 2017-08-29
US10230521B2 (en) 2019-03-12
US10320555B2 (en) 2019-06-11
US10419206B2 (en) 2019-09-17
US20170244547A1 (en) 2017-08-24
CN107104785A (zh) 2017-08-29
US20170244552A1 (en) 2017-08-24
KR20170098733A (ko) 2017-08-30
EP3220305A1 (en) 2017-09-20
US10243729B2 (en) 2019-03-26
EP3220306B1 (en) 2018-11-07
EP3220304A1 (en) 2017-09-20
KR20170098734A (ko) 2017-08-30
US20170244549A1 (en) 2017-08-24
EP3208789A1 (en) 2017-08-23
CN107104783A (zh) 2017-08-29
KR20170098732A (ko) 2017-08-30
KR20170098731A (ko) 2017-08-30
EP3208788B1 (en) 2020-06-03
EP3217307B1 (en) 2018-11-07
EP3208788A1 (en) 2017-08-23
EP3220306A1 (en) 2017-09-20
EP3217307A1 (en) 2017-09-13
KR20170098729A (ko) 2017-08-30
CN107103246A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN107103229A (zh) 测试电路对二阶或更高阶侧信道分析的抵抗力的方法
US11036891B2 (en) Testing resistance of a circuit to a side channel analysis
US8572406B2 (en) Integrated circuit protected against horizontal side channel analysis
US8457919B2 (en) Process for testing the resistance of an integrated circuit to a side channel analysis
CN102193060B (zh) 用于测试集成电路设备的方法和系统
CN107547191A (zh) 免受侧信道分析的保护方法和设备
李陽 New fault-based physical attacks and their countermeasures

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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20220624

AD01 Patent right deemed abandoned