CN107104783A - 使电路免受侧信道分析的方法 - Google Patents
使电路免受侧信道分析的方法 Download PDFInfo
- Publication number
- CN107104783A CN107104783A CN201710092732.1A CN201710092732A CN107104783A CN 107104783 A CN107104783 A CN 107104783A CN 201710092732 A CN201710092732 A CN 201710092732A CN 107104783 A CN107104783 A CN 107104783A
- Authority
- CN
- China
- Prior art keywords
- word
- input
- data
- computing
- complement
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004458 analytical method Methods 0.000 title abstract description 29
- 230000000295 complement effect Effects 0.000 claims abstract description 87
- 241001269238 Data Species 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 31
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000006467 substitution reaction Methods 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 37
- 238000012360 testing method Methods 0.000 description 26
- 239000000523 sample Substances 0.000 description 15
- 230000008859 change Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000013478 data encryption standard Methods 0.000 description 7
- 101100021996 Arabidopsis thaliana CYP97C1 gene Proteins 0.000 description 6
- 101100510695 Arabidopsis thaliana LUT2 gene Proteins 0.000 description 6
- 101000992298 Homo sapiens Kappa-type opioid receptor Proteins 0.000 description 6
- 102100031819 Kappa-type opioid receptor Human genes 0.000 description 6
- 101150091890 OPR3 gene Proteins 0.000 description 6
- 101100028073 Oryza sativa subsp. japonica OPR11 gene Proteins 0.000 description 6
- 101100295825 Oryza sativa subsp. japonica OPR7 gene Proteins 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007619 statistical method Methods 0.000 description 6
- 238000010998 test method Methods 0.000 description 6
- 101150097577 OPR1 gene Proteins 0.000 description 5
- 101150037114 OPR2 gene Proteins 0.000 description 5
- 101100028078 Oryza sativa subsp. japonica OPR1 gene Proteins 0.000 description 5
- 101100295822 Oryza sativa subsp. japonica OPR4 gene Proteins 0.000 description 5
- 101100295824 Oryza sativa subsp. japonica OPR6 gene Proteins 0.000 description 5
- 239000008000 CHES buffer Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000012797 qualification Methods 0.000 description 4
- 101000945093 Homo sapiens Ribosomal protein S6 kinase alpha-4 Proteins 0.000 description 3
- MKWKNSIESPFAQN-UHFFFAOYSA-N N-cyclohexyl-2-aminoethanesulfonic acid Chemical compound OS(=O)(=O)CCNC1CCCCC1 MKWKNSIESPFAQN-UHFFFAOYSA-N 0.000 description 3
- 102100033644 Ribosomal protein S6 kinase alpha-4 Human genes 0.000 description 3
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 3
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101000945096 Homo sapiens Ribosomal protein S6 kinase alpha-5 Proteins 0.000 description 2
- 101001122448 Rattus norvegicus Nociceptin receptor Proteins 0.000 description 2
- 102100033645 Ribosomal protein S6 kinase alpha-5 Human genes 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 101100001675 Emericella variicolor andJ gene Proteins 0.000 description 1
- 240000001973 Ficus microcarpa Species 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2215—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3249—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details 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])。所有上述攻击都基于所有被分析的踪迹的时间对准。换言之,在给定时间(例如从命令的执行被电路激活的时间)执行的所有测量必须对应于由算法处理的相同值。
为了保护此类电路及其执行的密码算法免受这些侧信道攻击,通常提供应对措施。几种普遍的应对措施均旨在避免这种时间对准。为此,这些应对措施引入为计算电路定速的时钟频率的变化,或引入伪时钟周期或伪运算。另几种应对措施涉及使得要保护的算法适合独立于由电路处理的数据的实际值来呈现这些数据。这几种应对措施中的某些应对措施被称为“掩蔽型应对措施”-使用随机掩码(二进制数),在执行加密方法期间,这些随机掩码与另一要保护的数据(例如密钥和/或消息)组合在一起。此类应对措施是有效的,但是需要修改算法,因此,在由专用协处理器执行的情况下,需要专用于实现此应对措施的协处理器,或者在由微电路的中央处理单元或编程协处理器执行的情况下,需要更复杂的程序。
通过多次执行实现的应对措施可以用不包括任何应对措施手段的常规协处理器来实现。其中仅涉及通过伪密钥或伪消息来多次执行加密方法。为此,提供了例如控制加密程序或协处理器的应对措施程序,该程序以随机的顺序,通过伪密钥多次执行加密方法,从而使得通过正确的密钥(即,真实的密钥)对加密方法的执行被“隐藏”在一组伪执行中。通过多次执行实现这种应对措施提供了以下优点:即,可以通过不包括任何应对措施手段的常规协处理器来实现此应对措施。
其它应对措施(参考文献[9]、[10]、[11])实现包括双重或多重数据路径的架构,以便当在一个数据路径中计算位时,另一数据路径计算该位的反码值。
为了检查旨在上市的安全集成电路提供的安全级别,在电路上市之前安排资格和/或认证测试,这些测试具体包括集成电路防侧信道分析的鲁棒性测试,目的是发现由集成电路处理的机密数据。还有一些测试可以评估软件程序对侧信道攻击的抵抗力。
因此,期望提出在包括这种测试方法的资格和/或认证过程之后,使得集成电路或软件程序能够被认为能够在产品中使用的应对措施手段。
发明内容
某些实施例涉及一种用于由电路执行将第一输入数据与第二输入数据相组合并提供输出数据的目标运算的方法,所述方法包括以下步骤:生成至少两个输入字对,每个输入字对包括第一输入字和第二输入字,所述第一输入字包括所述第一输入数据的相应部分和所述第一输入数据部分的二进制反码,所述第二输入字包括所述第二输入数据的相应部分和所述第二输入数据部分的二进制反码,所述第一和第二输入数据的所述部分位于每个字数据对的所述第一和第二输入数据字中的相同位置,并且所述第一和第二输入数据的所述部分的所述二进制反码位于每个字数据对的所述第一和第二输入数据字中的相同位置;以及向每个输入字对应用相同的导出运算,所述导出运算提供包括所述输出数据的一部分和所述输出数据部分的二进制反码的输出字,所述输出数据是将所述目标运算应用于所述输入字对中存在的所述第一和第二输入数据部分而产生的。
根据一实施例,每个输入字对中的每个所述输入字包括从随机或伪随机数发生器产生的数据。
根据一实施例,每个输入数据以包括多个位的字的形式来表示,每个输入数据的每个位与该位的二进制反码一起被插入相应输入字中。
根据一实施例,随机地选择每个输入字对的每个所述字和所述输出字中的所述数据部分的位置和所述数据部分的二进制反码的位置。
根据一实施例,所述导出运算被配置为通过将所述第一输入字的所述输入数据部分的所述二进制反码替换为所述输入数据部分来变换每个输入字对的所述第一输入字,以及被配置为向变换后的第一输入字和所述输入字对的所述第二输入字应用所述目标运算。
根据一实施例,所述输入字和所述输出字中的每一者分别包括两个输入数据或所述输出数据中的一者的一部分的两次出现,以及分别包括所述输入数据或所述输出数据的所述部分的二进制反码的两次出现,所述数据部分位于每个输入字对的所述第一和第二输入字和所述输出字中的相同位置,并且所述数据部分的所述二进制反码位于每个输入字对的所述第一和第二输入字和所述输出字中的相同位置。
根据一实施例,所述导出运算被配置为通过将所述第一输入字的所述输入数据部分的两次出现之一替换为所述输入数据部分的所述二进制反码,以及通过将所述第一输入字的所述输入数据部分的所述二进制反码的两次出现之一替换为所述输入数据部分,来变换每个输入字对的所述第一输入字,以及被配置为向变换后的第一输入字和所述输入字对的所述第二输入字应用所述目标运算。
根据一实施例,所述目标运算包括以下运算之一或它们的组合:异或、与、或、与非、或非、异或非、以及使用替换表的替换运算。
根据一实施例,所述导出运算被配置为通过组合每个输入字对的所述输入字来确定索引字,以及被配置为使用所述索引字在表中选择所述输出字。
根据一实施例,所述输入数据之一是机密数据,并且所述输入数据中的另一者是要由密码运算使用所述机密数据来处理的数据。
根据一实施例,所述目标运算是实现DES或AES算法的运算或运算组合。
某些实施例还可以涉及一种电路,其被配置为实现上面定义的方法并包括处理器。
根据一实施例,所述电路包括协处理器。
某些实施例还可以涉及一种设备,其包括如上定义并且被布置在介质上的电路。
某些实施例还可以涉及一种计算机程序产品,其可直接加载到计算机的内部存储器中并包括代码部分,当由计算机执行时,所述代码部分配置所述计算机以实现上面定义的方法的步骤。
附图说明
下面将结合但不限于附图来描述仅为了例示目的而提供的本发明的实施例的一些实例,其中:
图1示意性地表示安全电路的常规架构;
图2示意性地表示集成电路测试系统的一个实例;
图3表示在由安全电路执行加密运算期间获取的信号的踪迹;
图4表示根据一个实施例的用于测试电路的方法的步骤;
图5以图的形式表示了满射函数的一个实例;
图6示意性地表示根据一个实施例构建的用于执行统计处理的表;
图7表示根据另一实施例的用于测试电路的方法的步骤;
图8和9表示根据各种实施例的用于对通过测试方法获得的值集进行统计分析的方法的步骤;
图10和11以曲线的形式表示由图8和9的分析方法提供的结果表;
图12和13示出了保护数据的第一模式和涉及根据该第一保护模式保护的数据的运算;
图14和15示出了保护数据的第二模式和涉及根据该第二保护模式保护的数据的运算;
图16和17示出了保护数据的其它模式以及涉及根据该第三保护模式保护的数据的运算;
图18示意性地表示根据一个实施例的执行被修改为处理受保护数据的运算的电路;
图19示意性地表示根据一个实施例的用于计算修改后运算的索引的计算电路;
图20和21表示根据要执行的运算的图18中的电路的表的内容实例;
图22示意性地表示根据另一实施例的用于计算修改后运算的索引的计算电路;
图23和24表示根据其它实施例的图18中的电路的表的内容实例;
图25表示根据一个实施例的安全电路。
具体实施方式
作为一个实例,图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到S19,这些步骤处理在执行被应用于待发现的机密数据和被应用于也已知的输入数据M[0]...M[ix]的已知加密运算OPRK期间由测试系统收集的值。根据一个实施例,该测试的目的是例如判定机密数据的值是否泄漏到形成图3的踪迹的所收集的值中。处理单元PC首先执行步骤S1到S8。
在步骤S1,测试系统的处理单元PC将输入数据M[0]...M[ix]上的循环的索引i以及表CH设定为0。在步骤S2,处理单元PC通过要测试的电路MCT或软件程序激活运算OPRK的执行,该运算接收数据M[i],机密数据被提供给电路MCT或软件程序执行的运算。在步骤S3,处理单元PC收集构成踪迹Ci的值。在步骤S4,选择踪迹Ci的值的一部分ECi,只有该部分在以下处理步骤(图3)中被处理。在图4的实例中,为了简单起见,该部分由踪迹Ci的与索引k和kx对应的值来界定。实际上,索引k和kx可以从一个踪迹Ci变化到下一个踪迹Ci。此外,与现有技术的侧信道分析相比,每个踪迹中以此方式选定的值不一定是连续的,并且每个部分ECi中的值的数量在一个踪迹Ci与下一个踪迹之间可能是不同的。因此,例如可以选择从每个踪迹中仅提取最大或最小局部值。还应注意,所提取部分ECi可以是整个踪迹Ci。在下面的处理中,假设以此方式提取的数据包含一条关于被搜索的机密数据的信息。
在步骤S5,处理单元PC将循环索引j以及表HT设定为0。在步骤S6,处理单元PC对选定踪迹部分ECi的索引j的值ECi[j]应用满射函数F1,并且使表HT中的值递增一(1),该值由等于函数F1提供的结果的索引来指定。在步骤S7,索引j递增一(1)。在步骤S8,将索引j与其最大值进行比较,以判定是否已经处理了集ECi中的全部值。一旦处理了集ECi中的全部值,处理单元PC就执行步骤S9到S14,否则再次执行步骤S6到S8。以这种方式,加载到表HT的集ECi中的值具有指定由函数F1返回的每个可能值的出现次数的直方图形式,以使得与集ECi中的值相关的时间特征不包括在表HT中:表HT的内容使得不能确定集合中的值被收集的顺序。图5表示采取图的形式的使用函数F1计算的值(在x轴上)的出现次数(在y轴上)的表HT的一个实例。在图5的实例中,函数F1返回根据8位编码值计算的汉明权重。
在步骤S9,处理单元PC将索引g设定为0。在步骤S10,处理单元PC对数据M[i]和待确定的机密数据SD的一部分(被设定为等于索引g)应用运算OPR。运算OPR(M,g)假定提供在步骤S2执行的运算OPRK(M)(=OPR(M,SD))的结果的一部分。由运算OPR提供的结果被提供值VL的满射函数F2处理。在步骤S11,处理单元PC将索引l设定为0。在步骤S12,处理单元PC在由索引g、VL和l指定的位置处将存储在三维表CH中的值递增表HT中对应于数据M[i]的索引l处的值HT[1]。图6表示表CH的一个实例,其中由索引g和VL指定的每个位置CH[g,VL]包含根据在步骤S11获得的值VL组合若干表HT而获得的表。在步骤S13,索引l递增一(1)。在步骤S14,考虑到由函数F1提供的可能不同值的数量,将索引l与其最大值lx进行比较。如果索引l小于或等于其最大值lx,则再次执行步骤S12到S14,否则执行步骤S15和S16。
在步骤S15,处理单元PC使索引g递增一(1)。在步骤S16,考虑到所考虑的机密数据部分的可能不同值的数量,处理单元PC将索引g与其最大值gx进行比较。如果索引g小于或等于最大值gx,则执行从步骤S10到S16的新迭代,否则执行步骤S17和S18。在步骤S17,处理单元PC使索引i递增一(1)以处理另一踪迹Ci。在步骤S18,处理单元PC将索引i与其最大值ix(对应于所生成的踪迹Ci的数量)进行比较。如果索引i小于或等于最大值ix,则再次执行步骤S2到S18,否则执行步骤S19。在步骤S19,包含在位置[g,VL]处的表CH中的累积总和的每个表包含以下值:
在上述总和中要考虑的数据M[i]使得F2(OPR(M[i],g))=VL。
在步骤S19,处理单元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到S19搜索的机密数据部分例如可以在8或16位上定义。在8位的情况下,索引g被连续地分配给0和255(或1和256=28)之间的全部值。应当注意,测试g的值的顺序对于测试的结果而言不重要。要搜索的机密数据部分也可以在诸如16、32或64位的较宽的字上定义。
机密数据SD的另一部分可以通过使用先前确定的机密数据部分的值并通过将机密数据的另一部分强制到索引g的不同可能值来执行步骤S9到S19而确定。为此,能够在步骤S4提取踪迹Ci的相同部分ECi或这些踪迹的其它部分。
应当注意,在执行图4中的其它步骤之前,可能已经收集了形成踪迹C i的值集(步骤S2和S3)。另外,在执行步骤S9到S19之前,可能已经针对每个踪迹C i构成表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所示的步骤包括上述步骤S9到S19以及附加的步骤S20、S21和S22。在步骤S9之前执行的步骤S20中,索引i、一维表MHT和二维表CPT被设定为0。在步骤S9,二维表HT[0..ix,1]之前已经填充了包含针对所有踪迹Ci在步骤S6生成的所有表。将步骤S21插入由索引l控制的循环(在步骤S12和S14之间),由此可以例如在步骤S12之后选择由函数F1提供的值中的一个。在步骤S21,处理单元PC将每个值HT[i,l]累积在由索引l指定的位置处的累积总和表MHT中。以这种方式,在处理结束时,表MHT将包含针对每个踪迹Ci获得的索引i的全部值HT[i,l]的和。在由索引i控制的循环的每次迭代时执行一次步骤S22,从而例如可以在步骤S14之后选择踪迹Ci中的一个。步骤S22使能对累积在表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的、由索引l指定的存储在表MHT中的值MHT[1]之间的差的平方递增。在步骤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。
应当注意,在对应于等式(3)的步骤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的其它值大三倍。
与根据本发明的测试方法相关的常规应对措施的有效性
为使诸如集成电路的电路能够成功地通过已知的资格或认证程序,这些电路的设计者提供了涉及引入时间变量的最常规的应对措施。这种安排能够通过使为电路定速的时钟周期的持续时间随机改变,或者通过在随机选择的时间引入虚拟处理周期或运算来做出。表HT中的值的计算允许从所分析的值中移除时间方面,并且避免必须同步所分析的值的不同踪迹。如果关于要搜索的机密数据的信息在所分析的数据中,则先前描述的测试方法使能确定所有或部分机密数据。
适当的应对措施
某些实施例涉及使得电路能够在包括前述测试方法的资格或认证测试期间被使用的应对措施手段。
这里提出保护加密运算免受由如前所述的测试方法实现的分析。在此上下文中,所述运算接收一个或多个输入数据,并且根据输入数据的值提供输出数据。根据一个实施例,应对措施包括以包含一个或多个字的格式表示敏感数据,每个字包括该数据的一部分和该部分的二进制反码,所考虑的部分可能包括整个数据。包含数据一部分的每个字可以包括能够被设定为随机值的附加位。此外,修改运算以便考虑运算的输入数据的格式,并提供与输入数据具有相同格式或类似格式的输出数据。应当注意,运算的输入数据可以具有不同的格式,只要运算适于采用这些不同的格式即可。
由于要保护的数据以字的形式表示,每个字包括数据的一部分和该部分的二进制反码,所以表示该数据的每个字的汉明权重不取决于字中的数据或数据一部分的值。因此,如果电路的泄漏模式对应于汉明权重,则不可能通过统计分析找到数据或数据一部分的值。
图12表示可以是机密数据的数据M和/或可能属于加密计算的运算的输入数据M。在图12的实例中,数据M采取由八个位b0至b7组成的字节的形式。根据一个实施例,数据M以例如具有8个位的8个字M0到M7的形式表示,每个字包括数据M、SD的相应位b0-b7和该位的二进制反码。因此,每个字Mj包括位bj和j表示位bj在数据M中的列(rank)。根据一个实施例,字M j的其它位具有随机选择的值rj1到rj6(例如由随机数发生器RNG提供)。位bj和可以放置在字Mj中的任何其它位置。在图12的实例中,每个字Mj具有以下形式:
其中位bj处于第一列,位处于第四列。
图13表示将输入数据M的位Mbj与机密数据SD的位SDbj相组合并提供输出数据RD的位RDbj的运算OPR,其中j对应于在输入数据M、SD中处理的位bj的列。根据图12所示的实例,位Mbj和SDbj分别被插入字MMj和SDMj。因此,字MMj包括位MBj及其二进制反码类似地,字SDj包括位SDbj及其二进制反码
根据一个实施例,应用于输入数据和机密数据的每个位的运算OPR被替换为在输入处接收字MMj和SDMj并且提供输出字RDMj的运算OPR1。运算OPR1包括对输入字MMj的位进行部分反码并提供修改后的输入字MMj'的运算。运算OPR1将运算OPR应用于字SDMj和MMj',并且后一运算提供包括位RDbj及其二进制反码的输出字RDMj。
在运算OPR是异或逻辑运算的情况下,部分反码运算包括例如将输入字MMj与掩码MSK相组合的异或逻辑运算,后者包括位于字MMj中的位Mbj的列上的0处的位,位于位的列上的1处的位,以及位于掩码的其它列上的任何值“x”处的任何位。以此方式,通过应用掩码MSK来反码字MMj中的位以获得字MMj'中的位Mbj。结果是输出字RDMj中的位RDbj等于SDbj XOR Mbj,XOR表示异或逻辑运算,并且位等于XOR Mbj,该值实际上等于SDbj XOR Mbj的反码。应当注意,如果数据M不需要保护,则由于在字MMj'中存在两次的位Mbj而导致的泄漏风险不重要。
位SDbj、和Mbj、的字SDMj和MMj中的列是相同的,但能够是任何值,因此可以被随机选择。它们也可以根据索引j而不同。重要的是执行运算OPR1的电路知晓这些位的位置。
图14表示能够是机密数据SD的数据M和/或能够属于加密计算的运算的输入数据M。在图14的实例中,数据M采取由位b0至b7组成的字节的形式。根据一个实施例,数据M以一个字节的8个字M10到M17的形式表示,每个字包括数据M的相应位b0-b7的两次出现以及该位的二进制反码的两次出现。因此,每个字M1j包括位bj和中的每一者的两次出现,j等于位bj在数据M中的列。根据一个实施例,字M1j的其它位接收随机值rj1到rj4(例如由随机数发生器RNG提供)。位bj和中的每一者的两次出现可以放置在字M1j中的任何其它位置。在图14的实例中,每个字M1j具有以下形式:
其中位bj位于字M1j中的第一和第五列,位位于字M1j中的第三和第七列。
图15表示将输入数据M1的位M1bj与另一数据M2的位M2bj相组合并提供输出数据RD的位RDbj的运算OPR。根据图14所示的实例,位M1bj和M2bj分别插入字M1j和M2j。因此,字M1j包括位M1bj的两次出现和该位的二进制反码的两次出现。类似地,字M2j包括位M2bj的两次出现和该位的二进制反码的两次出现。
根据一个实施例,应用于输入数据M1、M2的每个位的运算OPR被替换为在输入处接收字M1j和M2j并提供输出字RM1j的运算OPR2。运算OPR2包括对输入字M2j的位进行部分反码并提供修改后的输入字M2j'的第一运算。运算OPR2将运算OPR应用于字M1j和M2j',从而提供包括位R1bj的两次出现和该位的二进制反码的两次出现的结果字RM1j'。运算OPR2的输出字RM1j在对结果字RM1j'的位进行部分反码的第二运算之后获得。
在运算OPR是异或逻辑运算的情况下,第一部分反码运算例如包括将输入字M2j与掩码MSK1相组合的异或逻辑运算,后者包括位于字M2j中的位M2bj和的第一次出现的列上的0处的位、位M2bj和的第二次出现的列上的1处的位、以及位于掩码的其它列上的任何值“x”处的位。以此方式,位M2bj和在字M2j中的两次第二次出现是通过应用掩码MSK1被取反码的。应当注意,在第一部分反码运算之后,位M2bj的出现数保持等于位的出现数。结果是字M2j或M2j'的汉明权重不依赖于位M2bj的值。结果字RM1j'连续包括位R1bj的两次出现,然后包括位的两次出现。实际上,如果位R1bj等于运算M1bj XORM2bj的结果,则字RM1j'中的第二位R1bj通过运算XOR产生,第一位通过运算M1bj XOR产生,以及第二位通过运算XOR M2bj产生。第二部分反码运算使能获得具有与输入字M1j和M2j相同格式的输出字RM1j。第二部分反码运算例如包括将结果字RM1j'与掩码MSK2组合的异或逻辑运算,后者包括分别位于位R1bj的第一和第二次出现的列上的0和1处的位、分别位于位的第一和第二次出现的列上的1和0处的位、以及位于掩码的其它列上的任何值“x”处的位。以此方式,字RM1j'中的位R1bj的第二次出现和位的第一次出现是通过应用掩码MSK2被取反码的。结果是输出字RM1j具有与输入数据M和机密数据SD相同的格式。输出字RM1j中的位R1bj等于M1bj XOR M2bj,并且位等于XOR M2bj,该值实际上等于M1bj XOR M2bj的反码。
在图15上可以看出,所有处理的字包括与不是反码的相应位一样多的经过反码的输入位M1bj、M2bj或输出数据R1bj。还应注意,应用掩码MSK2的最终部分反码运算仅旨在将输出字RM1j设定为与输入字M1j,M2j相同的格式。因此,如果应用于输出字RM1j的下一运算考虑中间结果字RM1j'的格式,则可以省略该部分反码运算。
图16示出根据一个实施例的其中可以表示要保护的数据的另一字格式。在图16上,机密数据SD及其二进制反码被完全插入更大的字SM2,该更大的字SM2还可以包括例如由随机数生成电路RNG生成的随机值R11、R12。输入数据M与其二进制反码和随机值R21、R22一起被插入具有与字SM2相同格式的字MM2。作为一个实例,数据SD和M中的每一个包括8位,并且字SM2和MM2包括32位。
图16还表示应用于字MM2和SD2并提供输出字RM2的运算OPR。在图16的实例中,此运算是异或运算。为使输出字RM2的格式与机密数据SD的格式相同并且不导致易于被统计分析的泄露,能够对输入字MM2执行部分反码运算,此运算对包含输入数据M的反码的字MM2的部分执行反码操作,并且不更改包含数据M的字MM2的部分。因此,输出字RM2具有以下形式:
符号表示异或运算符,符号“//”表示位串连接运算符。
图17示出根据一个实施例的其中能够表示要保护的数据的另一字格式。在图17上,数据M3、M4及其相应的二进制反码被完全插入更大的字MM3、MM4两次,这些字也可以包括例如由随机数生成电路RNG生成的随机值R11、R12、R13、R14、R21、R22、R23、R24。例如,数据M3和M4中的每一者包括4位,并且字MM3和MM4包括32位。应当注意,通过使用采用此格式的两个字,此格式能够用于包括8位的数据M3、M4,这些字中的每一者包括数据M3、M4的4位。
图17还表示包括要被执行的运算OPR、被应用于字MM3和MM4并提供输出字RM3的运算OPR3。在图17的实例中,此运算对数据M3、M4执行异或运算。运算OPR3包括将掩码MSK3与字MM3、MM4(图17的实例中的MM4)中的一者或另一者相组合的部分反码运算。该反码运算旨在对字MM4中的数据M4的第二次出现和反码数据的第二次出现进行反码。为此,部分反码运算通过异或运算将字MM4与掩码MSK3相组合,掩码MSK3包括与要保持的数据M4和其反码的第一次出现的位的列对应的列上的0处的位,以及与数据M4及其要反码的反码的第二次出现的位的列对应的列上的1处的位。反码运算提供通过与字MM3的运算OPR组合的字MM4'。运算OPR提供中间结果字RM3'。如果运算OPR是异或运算,则字RM3'连续包括输出数据的两次出现,接着包括反码后的输出数据的两次出现。运算OPR3可以包括将掩码MSK4应用于中间结果字RM3'的最终部分反码运算。该反码运算使能获得与机密数据字SM3格式相同的输出字RM3。为此,反码运算能够是将字RM3'与掩码MSK4相组合的异或运算,该掩码MSK4包括与字RM3'中不被反码的数据的位对应的列上的0处的位和与字RM3'中要被反码的数据的位对应的列上的1处的位。为了从字RM3'改变到输出字RM3,在字RM3'中对输出数据R2的第二次出现和反码后的输出数据的第一次出现进行反码便足够。可以看出,由运算OPR3处理的输入M3、M4,输出RM3和RM3'处的所有字具有相同数据的两次出现和该反码后数据的两次出现。
还应注意,如果以与字MM4'相同的格式在运算OPR3的输入处提供输入字MM4,则可能不需要第一部分反码运算。此外,如果使用输出字的运算被配置为处理具有中间结果字RM3'的格式的字,则提供输出字RM3的最终反码运算可能不是必需的。
图18表示执行要保护的运算的电路OPR4。该电路被配置为接收以具有与先前参考图12和14描述的格式类似的格式的字M1j、M2j的形式表示的输入数据位。在这些图上,输入数据的每位以字M1-M7、M11-M17的形式表示。因此,在图12上,这些字M0到M7(Mj)中的每一者包括输入数据的位bj的一次出现和该位的二进制反码的一次出现。在图14上,这些字M11到M17(M1j)中的每一者包括输入数据的位bj的两次出现和该位的二进制反码的两次出现。根据一个实施例,电路OPR4包括用于使用输入字M1j、M2j计算索引字IDX的计算电路IXCP。电路OPR4还包括根据索引字IDX的值提供电路OPR4的输出字RMj的表LUT。输出字可以具有类似于输入字的格式,或者甚至具有使用输出字RMj的下一运算所期望的格式。
图19表示当输入字M1j、M2j具有图12中表示的格式时的索引计算电路IXCP的一个实例。因此,字M1j和M2j中的每一者在第一列包括位M1bj、M2bj,并且在第四列包括等于该位的二进制反码的位电路IXCP包括二进制右移电路RSC,其接收输入字M2j并提供移位后的字IMj,该移位后的字IMj包括位于第一列上的0处的位,然后位于下一列上的字M2j的各个位,其中不包括最后一位(rj6')。电路IXCP还包括向输入字M1j和掩码字MSK3应用AND逻辑运算的第一逻辑掩码电路AND1、也向字IMj和掩码字MSK4应用AND逻辑掩码运算的第二逻辑电路AND2、以及向由电路AND1和AND2提供的字应用异或运算并提供索引字IDX的第三逻辑电路XOR。由电路AND1执行的第一掩码运算使得输入字M1j的第二和第五列上的位被置为0而不改变其它位。由电路AND2执行的第二掩码运算使得字IMj的第一和第四列上的位被置为0。结果是索引字IDX包括分别位于第一和第二列上的位M1bj和M2bj,以及分别位于第四和第五列上的位和
图20和21分别表示用于执行OR和AND逻辑函数的表LUT的实例LUT1、LUT2。表LUT1、LUT2中的字的分布对应于索引字的格式,如图19所示。这些表包含采用这样的格式的字:此格式中包括输出数据的位C和等于该位C的二进制反码的位
表LUT、LUT1、LUT2中的每一者包括2N个值,N是索引字IDX的位数,即图20和21的实例中的256个值。表LUT1、LUT2中的值也在8位上编码。表LUT1,LUT2的索引字和内容的值在图20和21中按属类指示,“x”表示具有任何值的位。表LUT1、LUT2分别再现OR和AND逻辑运算的真值表。包含在索引字IDX中的位A和B被应用在逻辑运算的输入端,位C由该逻辑运算根据位A和B的值来提供。
因此,能够执行组合两个位并提供一个位的任何逻辑运算。因此,可以执行诸如与非(NAND)、或非(NOR)、异或、异或非(Exclusive NOR)运算、使用替换表(SBOX)的替换运算或这些运算的组合等其它逻辑运算。此外,可以注意到,根据执行NAND运算的单表LUT,可以通过使用以下等式来执行任何基本逻辑运算:
还应注意,应用于位A和B以及上述等式中的运算结果的反码运算(NOT)能够简单地通过用字的每位的反码替换该位来执行,或者能够被省略。实际上,由于输出字RMj包括数据位及其反码,因此可以认为输出字具有另一格式,其中非反码数据位和反码数据位的列被反转。
因此,可以针对数据字的所有可能格式构建此类表LUT。然而,为缩减表的大小,有利的是能够将输入字M1j、M2j减小为与图19中的电路IXCP执行的相同大小的索引字。如果这些位的数量大于或等于对反码后的数据位计数的运算的输入数据位M1bj、M2bj的数量,则可以通过使用具有任何值“x”的位来执行该缩减运算。
图22表示索引计算电路IXC1的另一实例,该索引计算电路适合于图14所示的输入字M3j、M4j和输出字的格式,即具有数据位的两次出现和该位的二进制反码的两次出现。电路IXC1包括两个掩码电路AND2、AND3,和通过异或运算组合这两个掩码电路的输出的电路XOR1。掩码电路AND3通过AND逻辑运算将输入字M3j与掩码MSK5相组合。掩码MSK5具有位于第三和第五列上的0处的位,以将字M3j中的反码后的位的第一次出现以及数据位M3bj的第二次出现置为0。掩码MSK5的其它位位于1上,以使字M3j的其它位保持不变。掩码电路AND4通过AND逻辑运算将输入字M4j与掩码MSK6相组合。掩码MSK6具有位于第一和第七列上的0处的位,以将字M4j中的数据位M4bj的第一次出现和反码后的位的第二次出现置为0。掩码MSK6的其它位位于1上,以使字M4j的其它位保持不变。因此,在电路XOR1的输出处,索引字依次包括输入位M3bj、反码后的输入位输入位M4bj,然后是反码后的输入位这些位由具有任何值“x”的位分隔。
图23、24表示表LUT的实例LUT3、LUT4,该表适合于由图22中的电路IXC1提供的索引IDX的格式和图14中的字的格式。因此,索引字IDX具有格式图23再现了NAND逻辑运算的真值表,图24再现了异或逻辑运算(XOR)的真值表。因此,表LUT3、LUT4包含具有逻辑运算的输出位C的两次出现和该位的反码的两次出现的字:在图23和24中,表LUT3、LUT4的索引IDX和内容可以采用也以属类方式指示的256个不同的值,“x”表示具有任何值的位。
将理解,表LUT可以根据索引字IDX来构建,索引字IDX不仅包括输入数据M的一个位和机密数据SD的一个位,而且还包括输入数据M的多个不同的位和同样多位的机密数据SD。此外,索引字也能够简单地通过串接输入字M和SD来构建。
根据文献[7]和[8],可以通过仅使用基本逻辑运算(与、或、非、异或、异或非)来实现DES和AES加密算法。根据一个实施例,通过将输入数据和加密密钥转换为上述字表示格式之一,并且使用以参考图13和15到24描述的方式中的一种或其它方式执行的基本逻辑运算来实现DES和AES加密算法。
图25表示根据一个实施例的布置在诸如塑料卡的便携式介质HD上,并且配备有应对措施的集成电路CT1。该集成电路包括与上面结合图1描述的集成电路CT相同的单元,并且与后者的不同之处在于:协处理器CP1被实现上述应对措施中的一个和/或另一个的协处理器CP2所替代。因此,根据一个实施例,协处理器CP2被配置为以上述数据字中的表示的一种或多种格式来处理数据。输入数据到这些格式之一的转换以及输出数据的转换也可以由协处理器CP2执行。这些转换可以完全或部分地由处理器PRC执行。在这种情况下,处理器PRC与协处理器CP2匹配,以便使用输入和/或输出数据的相同表示格式。
应当理解,协处理器的存在是可选的,并且处理器PRC可以执行根据数据表示格式将数据转换为数据字以及将数据字转换为数据的所有操作,以及处理数据字的所有操作。
本领域技术人员将理解,本发明可以有各种备选实施例和各种应用。特别地,本发明不限于包括随机值的位的运算输入和/或输出字的格式。因此,数据字的所有位可以来自运算输入或输出数据。重要的是,该格式包括数据位的一次或多次出现以及这些位的二进制反码的相同出现次数。数据字格式可以由数据字中的输入数据的一部分的大小、该部分及其在数据字中的反码的相应位置和出现次数,以及数据字中的随机数据来定义,前提是数据部分的大小与该部分的出现次数的乘积小于数据字的大小。这种格式也能够被随机地选择。还可以考虑在每次执行实现运算的程序时更改该格式。
本发明还包括上述实施例的组合。因此,例如,如果数据字具有兼容格式,则可以通过运算OPR4,在单个运算中执行运算OPR1、OPR2、OPR3中的一个或另一个。
不言而喻,可以以可由处理器执行的程序的形式产生上述电路。
引用的参考文献
[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.Biham,“A fast new DES implementation in software”,FastSoftware Encryption,计算机科学丛书第1267卷,第260-272页,2006年。
[8]作者C.Rebeiro,D.Selvakumar,“Bitslice Implementation of AES”,A.S.L.Devi Cryptology and Network Security,计算机科学丛书第4301卷,第203-212页,2006年。
[9]作者M.Agoyan、S.Bouquet、J.-M.Dutertre、J.Fournier、J.-B.Rigaud、B.Robisson、A.Tria,“Design and characterization of an AES chip embeddingcountermeasures”,智能工程信息学国际期刊,第328页,2011年。
[10]作者M.Joye、P.Manet、J.-B.Rigaud,“Strengthening hardware AESimplementation against fault attacks”,IET Information Security,第1卷,第3条,第106-110页,2007年。
[11]作者F.Bouesse、G.Sicard、M.Renaudin,“Path Swapping Method toImprove DPA Resistance of Quasi Delay Insensitive Asynchronous Circuits”,CHES2006,LNCS 4249,第384-398页,2006年。
Claims (15)
1.一种用于由电路执行将第一输入数据与第二输入数据相组合并提供输出数据的目标运算的方法,所述方法包括以下步骤:
生成至少两个输入字对,每个输入字对包括第一输入字和第二输入字,所述第一输入字包括所述第一输入数据的相应部分和所述第一输入数据部分的二进制反码,所述第二输入字包括所述第二输入数据的相应部分和所述第二输入数据部分的二进制反码,所述第一和第二输入数据的所述部分位于每个字数据对的所述第一和第二输入数据字中的相同位置,并且所述第一和第二输入数据的所述部分的所述二进制反码位于每个字数据对的所述第一和第二输入数据字中的相同位置,以及
向每个输入字对应用相同的导出运算,所述导出运算提供包括所述输出数据的一部分和所述输出数据部分的二进制反码的输出字,所述输出数据是将所述目标运算应用于所述输入字对中存在的所述第一和第二输入数据部分而产生的。
2.根据权利要求1所述的方法,其中每个输入字对中的每个所述输入字包括从随机或伪随机数发生器产生的数据。
3.根据权利要求1或2所述的方法,其中每个输入数据以包括多个位的字的形式来表示,每个输入数据的每个位与该位的二进制反码一起被插入相应输入字中。
4.根据权利要求1至3中任一项所述的方法,其中随机地选择每个输入字对的每个所述字和所述输出字中的所述数据部分的位置和所述数据部分的二进制反码的位置。
5.根据权利要求1至4中任一项所述的方法,其中所述导出运算被配置为通过将所述第一输入字的所述输入数据部分的所述二进制反码替换为所述输入数据部分来变换每个输入字对的所述第一输入字,以及被配置为向变换后的第一输入字和所述输入字对的所述第二输入字应用所述目标运算。
6.根据权利要求1至4中任一项所述的方法,其中所述输入字和所述输出字中的每一者分别包括两个输入数据或所述输出数据中的一者的一部分的两次出现,以及分别包括所述输入数据或所述输出数据的所述部分的二进制反码的两次出现,所述数据部分位于每个输入字对的所述第一和第二输入字和所述输出字中的相同位置,并且所述数据部分的所述二进制反码位于每个输入字对的所述第一和第二输入字和所述输出字中的相同位置。
7.根据权利要求6所述的方法,其中所述导出运算被配置为通过将所述第一输入字的所述输入数据部分的两次出现之一替换为所述输入数据部分的所述二进制反码,以及通过将所述第一输入字的所述输入数据部分的所述二进制反码的两次出现之一替换为所述输入数据部分,来变换每个输入字对的所述第一输入字,以及被配置为向变换后的第一输入字和所述输入字对的所述第二输入字应用所述目标运算。
8.根据权利要求1至7中任一项所述的方法,其中所述目标运算包括以下运算之一或它们的组合:
异或、与、或、与非、或非、异或非,以及
使用替换表的替换运算。
9.根据权利要求1至8中任一项所述的方法,其中所述导出运算被配置为通过组合每个输入字对的所述输入字来确定索引字,以及被配置为使用所述索引字在表中选择所述输出字。
10.根据权利要求1至9中任一项所述的方法,其中所述输入数据之一是机密数据,并且所述输入数据中的另一者是要由密码运算使用所述机密数据来处理的数据。
11.根据权利要求1至10中任一项所述的方法,其中所述目标运算是实现DES或AES算法的运算或运算组合。
12.一种电路,其被配置为实现根据权利要求1至11中任一项所述的方法并包括处理器。
13.根据权利要求12所述的电路,包括协处理器。
14.一种设备,其包括被布置在介质上的根据权利要求12或13所述的电路。
15.一种计算机程序产品,其可直接加载到计算机的内部存储器中并包括代码部分,当由计算机执行时,所述代码部分配置所述计算机以实现根据权利要求1至11中任一项所述的方法的步骤。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1651443 | 2016-02-22 | ||
FR1651444A FR3048096A1 (fr) | 2016-02-22 | 2016-02-22 | Procede de protection d'un circuit contre une analyse par canaux auxiliaires |
FR1651444 | 2016-02-22 | ||
FR1651445A FR3048097A1 (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 |
FR1651445 | 2016-02-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107104783A true CN107104783A (zh) | 2017-08-29 |
Family
ID=57995161
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710093118.7A Pending CN107102919A (zh) | 2016-02-22 | 2017-02-21 | 测试电路对侧信道分析的抵抗力的方法 |
CN201710093076.7A Pending CN107103246A (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 | 使电路免受侧信道分析的方法 |
CN201710095301.0A Pending CN107104784A (zh) | 2016-02-22 | 2017-02-22 | 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 |
CN201710096299.9A Pending CN107104785A (zh) | 2016-02-22 | 2017-02-22 | 测试电路对侧信道分析的抵抗力的方法 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710093118.7A Pending CN107102919A (zh) | 2016-02-22 | 2017-02-21 | 测试电路对侧信道分析的抵抗力的方法 |
CN201710093076.7A Pending CN107103246A (zh) | 2016-02-22 | 2017-02-21 | 使电路免受侧信道分析的方法 |
CN201710092704.XA Pending CN107103229A (zh) | 2016-02-22 | 2017-02-21 | 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710095301.0A Pending CN107104784A (zh) | 2016-02-22 | 2017-02-22 | 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 |
CN201710096299.9A Pending CN107104785A (zh) | 2016-02-22 | 2017-02-22 | 测试电路对侧信道分析的抵抗力的方法 |
Country Status (4)
Country | Link |
---|---|
US (6) | US10243729B2 (zh) |
EP (6) | EP3208788B1 (zh) |
KR (6) | KR20170098730A (zh) |
CN (6) | CN107102919A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767584A (zh) * | 2020-06-09 | 2020-10-13 | 北京智芯微电子科技有限公司 | 内置随机数发生器的安全微处理器及安全芯片 |
TWI840062B (zh) * | 2022-12-30 | 2024-04-21 | 新唐科技股份有限公司 | 故障攻擊分析裝置和方法 |
Families Citing this family (19)
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. |
EP3208788B1 (en) * | 2016-02-22 | 2020-06-03 | Eshard | Method of protecting a circuit against 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 |
EP3729317B1 (en) * | 2017-12-22 | 2021-10-20 | Koninklijke Philips N.V. | A computer-implemented method of applying a first function to each data element in a data set, and a worker node for implementing the same |
FR3078463A1 (fr) * | 2018-02-26 | 2019-08-30 | Stmicroelectronics (Rousset) Sas | Procede et dispositif de realisation d'operations en table de substitution |
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 |
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 |
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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1360715A (zh) * | 1999-05-11 | 2002-07-24 | 格姆普拉斯公司 | 在使用一种密钥动态加密算法的电子元件中的对抗方法 |
US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
CN1672352A (zh) * | 2002-05-23 | 2005-09-21 | 爱特梅尔股份有限公司 | 基于先进加密标准(aes)的硬件密码机 |
US20080285745A1 (en) * | 2004-03-29 | 2008-11-20 | Stmicroelectronics S.A. | Processor for Executing an Aes-Type Algorithm |
US20100318811A1 (en) * | 2009-06-15 | 2010-12-16 | Kabushiki Kaisha Toshiba | Cryptographic processor |
US20130262544A1 (en) * | 2012-04-02 | 2013-10-03 | Samsung Electronics Co., Ltd. | Electronic multiplier and digital signal processor including the same |
CN103647638A (zh) * | 2013-12-03 | 2014-03-19 | 北京中电华大电子设计有限责任公司 | 一种抵抗侧信道攻击的des掩码方法 |
CN104583961A (zh) * | 2012-08-14 | 2015-04-29 | 英派尔科技开发有限公司 | 基于软件的侧信道攻击防止 |
Family Cites Families (107)
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 |
CN1260055A (zh) * | 1997-06-09 | 2000-07-12 | 联信公司 | 用于提高软件安全性的模糊技术 |
EP1050133B2 (en) * | 1998-01-02 | 2009-05-27 | Cryptography Research Inc. | Leak-resistant cryptographic method and apparatus |
US7587044B2 (en) * | 1998-01-02 | 2009-09-08 | Cryptography Research, Inc. | Differential power analysis method and apparatus |
EP2031792B1 (en) * | 1998-06-03 | 2013-01-09 | Cryptography Research Inc. | Secure modular exponentiation with leak minimization for smartcards and other cryptosystems |
WO2000002342A2 (en) * | 1998-07-02 | 2000-01-13 | Cryptography Research, Inc. | Leak-resistant cryptographic indexed key update |
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 |
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 |
US6760440B1 (en) * | 1999-12-11 | 2004-07-06 | Honeywell International Inc. | One's complement cryptographic combiner |
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 | 半導体集積回路の試験装置及び試験方法 |
JP2002247025A (ja) * | 2001-02-22 | 2002-08-30 | Hitachi Ltd | 情報処理装置 |
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 |
US20050152539A1 (en) * | 2004-01-12 | 2005-07-14 | Brickell Ernie F. | Method of protecting cryptographic operations from side channel attacks |
JP4651620B2 (ja) * | 2004-07-07 | 2011-03-16 | 三菱電機株式会社 | 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法 |
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 |
JP4806402B2 (ja) * | 2005-04-21 | 2011-11-02 | パナソニック株式会社 | プログラム難読化装置及び難読化方法 |
JP5384781B2 (ja) * | 2005-08-18 | 2014-01-08 | 日本電気株式会社 | 秘匿通信システムおよび共有秘密情報の生成方法 |
FR2893796B1 (fr) * | 2005-11-21 | 2008-01-04 | Atmel Corp | Procede de protection par chiffrement |
JP4241765B2 (ja) * | 2006-03-01 | 2009-03-18 | 株式会社日立国際電気 | 送信機及びキャリアリーク検出方法 |
EP1840732A1 (en) * | 2006-03-31 | 2007-10-03 | Axalto SA | Protection against side channel attacks |
BRPI0714242A2 (pt) * | 2006-07-12 | 2013-01-29 | Koninkl Philips Electronics Nv | sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador |
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 |
WO2009072547A1 (ja) * | 2007-12-05 | 2009-06-11 | Nec Corporation | サイドチャネル攻撃耐性評価装置、方法及びプログラム |
BRPI0907183A8 (pt) * | 2008-01-11 | 2015-09-29 | France Telecom | método e entidade para encriptação simétrica probabilística |
JP5288283B2 (ja) * | 2008-02-06 | 2013-09-11 | 日本電気株式会社 | サイドチャネル攻撃耐性評価装置とサイドチャネル攻撃耐性評価方法、及びサイドチャネル攻撃耐性評価用プログラム |
US8139764B2 (en) * | 2008-05-06 | 2012-03-20 | Harris Corporation | Closed galois field cryptographic system |
US20100086209A1 (en) * | 2008-10-02 | 2010-04-08 | Silverbrook Research Pty Ltd | Method of imaging position-coding pattern having tag coordinates encoded by bit-shifted subsequences of cyclic position code |
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 |
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 |
KR101714108B1 (ko) * | 2009-12-04 | 2017-03-08 | 크라이프토그라피 리서치, 인코포레이티드 | 검증가능 누출 방지 암호화 및 복호화 |
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 |
RU2013125468A (ru) * | 2010-11-03 | 2014-12-10 | Вирджиния Тек Интеллекчуал Пропертиз, Инк. | Использование технологии слежения за мощностью для контроля целостности и повышения безопасности компьютерных систем |
KR101955143B1 (ko) * | 2011-01-14 | 2019-03-06 | 지이 비디오 컴프레션, 엘엘씨 | 엔트로피 인코딩 및 디코딩 방식 |
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カード |
WO2013142983A1 (en) * | 2012-03-30 | 2013-10-03 | Irdeto Canada Corporation | Securing accessible systems using cross-linking |
EP2912629B1 (en) * | 2012-10-26 | 2018-10-03 | 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 |
WO2014149080A1 (en) * | 2013-03-18 | 2014-09-25 | The Trustees Of Columbia University In The City Of New York | Detection of anomalous program execution using hardware-based micro-architectural data |
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 |
CN103647639A (zh) * | 2013-12-03 | 2014-03-19 | 北京中电华大电子设计有限责任公司 | 一种对称密码算法抵抗侧信道分析的方法 |
WO2015100158A1 (en) * | 2013-12-23 | 2015-07-02 | 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 |
US9584310B2 (en) * | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
US9838198B2 (en) * | 2014-03-19 | 2017-12-05 | Nxp B.V. | Splitting S-boxes in a white-box implementation to resist attacks |
US9425952B2 (en) * | 2014-03-27 | 2016-08-23 | Samsung Israel Research Corporation | Algebraic manipulation detection codes from algebraic curves |
EP3127271B1 (en) * | 2014-03-31 | 2018-07-25 | Irdeto B.V. | Obfuscated performance of a predetermined function |
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 |
CN104202145B (zh) * | 2014-09-04 | 2018-07-03 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
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 |
CN105553638A (zh) * | 2015-12-07 | 2016-05-04 | 成都芯安尤里卡信息科技有限公司 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
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 |
EP3208788B1 (en) * | 2016-02-22 | 2020-06-03 | Eshard | Method of protecting a circuit against 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 |
-
2017
- 2017-02-15 EP EP17156287.9A patent/EP3208788B1/en active Active
- 2017-02-15 EP EP17156293.7A patent/EP3220306B1/en not_active Not-in-force
- 2017-02-15 EP EP17156290.3A patent/EP3220305B1/en active Active
- 2017-02-15 EP EP17156286.1A patent/EP3220304B1/en active Active
- 2017-02-15 EP EP17156289.5A patent/EP3208789B1/en active Active
- 2017-02-15 EP EP17156292.9A patent/EP3217307B1/en active Active
- 2017-02-21 CN CN201710093118.7A patent/CN107102919A/zh active Pending
- 2017-02-21 CN CN201710093076.7A patent/CN107103246A/zh active Pending
- 2017-02-21 CN CN201710092704.XA patent/CN107103229A/zh active Pending
- 2017-02-21 CN CN201710092732.1A patent/CN107104783A/zh active Pending
- 2017-02-22 KR KR1020170023792A patent/KR20170098730A/ko not_active Withdrawn
- 2017-02-22 KR KR1020170023793A patent/KR20170098731A/ko not_active Withdrawn
- 2017-02-22 US US15/439,530 patent/US10243729B2/en active Active
- 2017-02-22 KR KR1020170023794A patent/KR20170098732A/ko not_active Withdrawn
- 2017-02-22 KR KR1020170023805A patent/KR20170098734A/ko not_active Withdrawn
- 2017-02-22 CN CN201710095301.0A patent/CN107104784A/zh active Pending
- 2017-02-22 KR KR1020170023803A patent/KR20170098733A/ko not_active Withdrawn
- 2017-02-22 KR KR1020170023789A patent/KR20170098729A/ko not_active Withdrawn
- 2017-02-22 US US15/439,578 patent/US10419206B2/en active Active
- 2017-02-22 US US15/439,562 patent/US10505711B2/en active Active
- 2017-02-22 US US15/439,571 patent/US10320555B2/en active Active
- 2017-02-22 US US15/439,553 patent/US20170244551A1/en not_active Abandoned
- 2017-02-22 CN CN201710096299.9A patent/CN107104785A/zh active Pending
- 2017-02-22 US US15/439,581 patent/US10230521B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1360715A (zh) * | 1999-05-11 | 2002-07-24 | 格姆普拉斯公司 | 在使用一种密钥动态加密算法的电子元件中的对抗方法 |
CN1672352A (zh) * | 2002-05-23 | 2005-09-21 | 爱特梅尔股份有限公司 | 基于先进加密标准(aes)的硬件密码机 |
US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
US20080285745A1 (en) * | 2004-03-29 | 2008-11-20 | Stmicroelectronics S.A. | Processor for Executing an Aes-Type Algorithm |
US20100318811A1 (en) * | 2009-06-15 | 2010-12-16 | Kabushiki Kaisha Toshiba | Cryptographic processor |
US20130262544A1 (en) * | 2012-04-02 | 2013-10-03 | Samsung Electronics Co., Ltd. | Electronic multiplier and digital signal processor including the same |
CN104583961A (zh) * | 2012-08-14 | 2015-04-29 | 英派尔科技开发有限公司 | 基于软件的侧信道攻击防止 |
CN103647638A (zh) * | 2013-12-03 | 2014-03-19 | 北京中电华大电子设计有限责任公司 | 一种抵抗侧信道攻击的des掩码方法 |
Non-Patent Citations (3)
Title |
---|
FRAIDY BOUESSE 等: "Path Swapping Method to Improve DPA resistance of Quasi Delay Insensitive Asynchronous circuits", 《HTTP://CITESEERX.IST.PSU.EDU/VIEWDOC/DOWNLOAD;JSESSIONID=30A9FE343D9239A8A2F02489B2A83CA5?DOI=10.1.1.559.6232&REP=REP1&TYPE=PDF》 * |
MARC JOYE 等: "Strengthening Hardware AES Implementations against Fault Attack", 《IET INFORMATION SECURITY》 * |
MICHEL AGOYAN 等: "Design and characterisation of an AES chip embedding countermeasures", 《INTELLIGENT ENGINEERING INFORMATICS》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767584A (zh) * | 2020-06-09 | 2020-10-13 | 北京智芯微电子科技有限公司 | 内置随机数发生器的安全微处理器及安全芯片 |
CN111767584B (zh) * | 2020-06-09 | 2022-01-25 | 北京智芯微电子科技有限公司 | 内置随机数发生器的安全微处理器及安全芯片 |
TWI840062B (zh) * | 2022-12-30 | 2024-04-21 | 新唐科技股份有限公司 | 故障攻擊分析裝置和方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107104783A (zh) | 使电路免受侧信道分析的方法 | |
CN107547189A (zh) | 免受侧信道分析的保护方法和设备 | |
Masoumi et al. | Novel approach to protect advanced encryption standard algorithm implementation against differential electromagnetic and power analysis | |
Tunstall | Smart card security | |
CN109428707A (zh) | 测试电路对侧信道分析的抵抗的方法 | |
Müller et al. | Low-latency hardware masking of PRINCE | |
EP3200173B1 (en) | Method of protecting electronic circuit against eavesdropping by power analysis and electronic circuit using the same | |
Regazzoni et al. | Evaluating resistance of MCML technology to power analysis attacks using a simulation-based methodology | |
CN107547191A (zh) | 免受侧信道分析的保护方法和设备 | |
CN108370311A (zh) | 计算设备和方法 | |
EP3264667A1 (en) | A method for protecting a substitution operation against a side-channel analysis | |
EP3264668A1 (en) | A protection method and device against a side-channel analysis |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20220909 |