CN1413398A - Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals - Google Patents
Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals Download PDFInfo
- Publication number
- CN1413398A CN1413398A CN00817503A CN00817503A CN1413398A CN 1413398 A CN1413398 A CN 1413398A CN 00817503 A CN00817503 A CN 00817503A CN 00817503 A CN00817503 A CN 00817503A CN 1413398 A CN1413398 A CN 1413398A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping
- algorithm
- input
- output
- 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
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F21/755—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 with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/0806—Details of the card
- G07F7/0813—Specific details related to card security
- G07F7/082—Features insuring the integrity of the data on or in the card
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/0806—Details of the card
- G07F7/0833—Card having specific functional components
- G07F7/084—Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1025—Identification of user by a PIN code
- G07F7/1083—Counting of PIN attempts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
-
- 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/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
Abstract
Description
本发明的技术领域Technical Field of the Invention
本发明涉及数据保密。特别是,本发明涉及降低未经授权而使用数据的风险。The present invention relates to data security. In particular, the invention relates to reducing the risk of unauthorized use of data.
本发明背景技术Background of the invention
密码系统传统上被描述为带有密码(加密或解密)的黑盒子,其中输入数据(无论明码文或密码文)在其内部使用密钥进行处理,并且唯一离开该黑盒子的信息是预期输出数据。A cryptographic system is traditionally described as a black box with a cipher (encryption or decryption), where input data (whether plaintext or ciphertext) is processed inside it using a key, and the only information leaving the black box is the expected output data.
旁生信道信息,例如由设备产生的伴生发射的电磁波的辐射或功率波动,在以监测正在被处理的信息为目的的攻击中,可以被容易并有效地利用,这一技术近来已经出现(例如,见于:P.Kocher,J.Jaffe和B.Jun所著的 Differential Power Analysis,Advance inCryptology-Proceeding of Crypto’99,Lecture Notes in ComputerScience,Vol.1666,Springer-Verlag,1999)。这使提取密钥比传统的密码分析方式更加容易,使我们相信,即使噪音很严重,此后对内部处理的直接监测也变得可以被攻击者利用了。Side channel information, such as radiation or power fluctuations of electromagnetic waves associated with emissions generated by devices, can be easily and effectively exploited in attacks aimed at monitoring the information being processed, a technique that has recently emerged (e.g. , in: Differential Power Analysis by P. Kocher, J. Jaffe and B. Jun, Advance in Cryptology-Proceeding of Crypto'99, Lecture Notes in Computer Science, Vol. 1666, Springer-Verlag, 1999). This makes extracting keys much easier than traditional cryptanalysis, leading us to believe that direct monitoring of internal processing thereafter becomes exploitable to attackers, even if the noise is severe.
在加密操作中重复地使用一个密钥的情况下,攻击者通常可以在几个操作中通过监测和分析旁生信道信息来获取该密钥,而不需要借助传统的密码分析技术。必须被观测到以提取密钥值(或重复使用的任何内部数据)的操作的最小重复次数,与试图监测的信号功率和噪声功率的比值(信噪比)成反比变化。例如,通过改进硬件使该比值减小100倍(即20dB),那么攻击者将对加密操作监测大约100次以提取密钥。Where a key is used repeatedly in cryptographic operations, an attacker can usually obtain the key by monitoring and analyzing side channel information during several operations without resorting to traditional cryptanalysis techniques. The minimum number of repetitions of the operation that must be observed to extract the key value (or any internal data that is reused) varies inversely with the ratio of the signal power to the noise power that one is trying to monitor (signal-to-noise ratio). For example, by improving the hardware so that the ratio is reduced by a factor of 100 (ie 20dB), the attacker will monitor the encryption operation about 100 times to extract the key.
旁生信道的信噪比的降低存在着应用上和经济上的限制,例如使用屏蔽和附加噪声。当安全处理器(例如集成电路卡)落到一个潜在的攻击者手中时,他可以通过提供输入信号很容易地反复激励该处理器同时在在近处监测旁生信道信号。集成电路卡的实例包括银行卡和收费电视卡。通过花费很少的资金和时间,攻击者能够通过统计技术破解他所感兴趣的信息,在此称为DPA(差分功率分析DifferentialPower Analysis)。这样命名是因为最常见的用于集成电路卡的旁生信道监测是对该设备产生的功率波动进行监测。DPA技术还可以应用于秘密接收和分析由计算执行数据操作所产生的射频信号。There are practical and economical limitations to the reduction of the signal-to-noise ratio of the side channel, such as the use of masking and additive noise. When a secure processor (such as an integrated circuit card) falls into the hands of a potential attacker, he can easily repeatedly stimulate the processor by providing an input signal while monitoring the side channel signal in close proximity. Examples of integrated circuit cards include bank cards and pay TV cards. By spending very little money and time, the attacker can decipher the information he is interested in through statistical techniques, which is called DPA (Differential Power Analysis) here. It is so named because the most common side channel monitoring for IC cards is the monitoring of power fluctuations produced by the device. DPA technology can also be applied to covertly receive and analyze radio frequency signals produced by computing performing data manipulation.
对于简单的集成电路卡设计,对几个类似波形组的平均值之间的差异分析可以使得加密数据被推导出来。这是一阶DPA攻击的一个例子。已经证实,目前可行的商用集成电路卡,几乎没有例外,对这样具有可用于大多数确定了的参量的办法的攻击是脆弱的。通过适当的算法设计并包含随机性,使得在面临一阶甚至高阶DPA攻击时,使数据保密成为可能。For simple IC card designs, analysis of the difference between the average values of several similar sets of waveforms allows encrypted data to be deduced. This is an example of a first-order DPA attack. It has been shown that currently available commercially available IC cards, with few exceptions, are vulnerable to such an attack with such an approach available for most identified parameters. Through proper algorithm design and inclusion of randomness, it is possible to keep data confidential in the face of first-order or even higher-order DPA attacks.
DPA攻击的阶次可以由中间变量的最小个数来定义,通过这些变量,可以获取任何处于该攻击下的数据,这里,这些中间变量都是通过对大量监测数据进行的平均处理得到的监测数据中获取的。更加直观(但不精确)的定义可以是:该阶次是内部数字状态的数目,该数字内部状态(如果存在噪声)会控制旁生信道观测,以获取与攻击者所需的信息相关的任何信息。The order of DPA attack can be defined by the minimum number of intermediate variables. Through these variables, any data under the attack can be obtained. Here, these intermediate variables are the monitoring data obtained by averaging a large number of monitoring data. obtained from . A more intuitive (but imprecise) definition could be: the order is the number of internal digital states that (if noisy) control the side channel observations to obtain any information.
通过更加高级的数据处理(所谓的高阶DPA攻击)和大量的监测数据,仍然能以一定的可靠性,从理论上推断任何保密数据正在被处理,尽管所需要的监测数据的数量可以被做得惊人的大。With more advanced data processing (so-called high-order DPA attacks) and a large amount of monitoring data, it is still possible to theoretically infer with a certain reliability that any classified data is being processed, although the amount of monitoring data required can be made Surprisingly large.
此处说明的本发明的技术目的是减少攻击者可以从旁生信道信号中获取的有用信息的数量,并增加成功攻破行为的最小复杂度和困难度。该技术包括对一阶和高阶攻击的防御。The technical purpose of the invention described here is to reduce the amount of useful information an attacker can obtain from side channel signals and to increase the minimum complexity and difficulty of a successful breach. The technique includes defenses against first-order and higher-order attacks.
一般的,对涉及数据保密的安全设备的设计目的是在保密期间使关于保密数据的信息泄露数量保持低于可接受的限制水平。这可以通过加密装置实现,该加密装置完成这样一个过程:将少量的泄露信息组合成一个难以进行运算的可用的整体。这一目的还可以通过以下方法实现:限制信息的泄漏部分的比例,以使在信息的保密期间累积(根据信息理论常识定义)的有关保密的泄露内容处于可接受的较低程度,以实现本发明目的。In general, security devices that involve data secrecy are designed to keep the amount of information disclosure about classified data below acceptable limits during the secrecy period. This can be achieved by means of cryptographic means, which accomplishes the process of combining small amounts of leaked information into a usable whole that is difficult to compute. This purpose can also be achieved by the following methods: limit the proportion of the leakage part of the information, so that the accumulated (according to the common sense definition of information theory) leakage content related to the confidentiality during the confidentiality period of the information is at an acceptable low level, so as to achieve this goal. purpose of the invention.
数学基础Mathematical basis
可以以一种方式,将一组数据(例如几个比特)映射为另一组数据,这种方法使得:既使第二组数据对检测者是已知的,先前的那一组数据对检测者仍是完全未知的。如果知道映射的选取方法,则可以从经映射后的数据(第二组)中恢复出初始数据(第一组)。为了保持数据的保密性,映射的选取方法对检测者必须是未知的,并且对新的每一组数据的映射必须被随机地选择,这样,每一组可能的原始数据组可以以相同的几率被映射成为每一种可能的映射后表示法。本发明就采用了这一原理。One set of data (such as a few bits) can be mapped to another set of data in such a way that even if the second set of data is known to the detector, the previous set of data is not useful for the detection is still completely unknown. If the mapping selection method is known, the original data (first group) can be recovered from the mapped data (second group). In order to maintain the confidentiality of the data, the method of selection of the mapping must be unknown to the detector, and the mapping to each new set of data must be chosen randomly, so that each possible set of original data can be obtained with equal probability is mapped into every possible mapped representation. The present invention has just adopted this principle.
算子(将一个或多个操作对象结合到一个结果中)在密码设计中被当做积木使用。这些算子的例子包括:查询表-一元算子-模块加法或减法、全字位对位异或和模p乘法(数值集合1至p-1,p是质数)-后者都是二进制算子。著名的IDEA密码(由Xuejia Lai和JamesMassey设计)使用了三个这样的二元算子,并且著名的DES密码使用了查询表、逐位或非算子和位置换。Operators (combining one or more operands into a result) are used as building blocks in cryptographic design. Examples of these operators include: look-up tables - unary operators - modular addition or subtraction, full word bitwise XOR, and modulo p multiplication (set of values 1 to p-1, where p is a prime number) - the latter are all binary operators son. The well-known IDEA cipher (designed by Xuejia Lai and James Massey) uses three such binary operators, and the well-known DES cipher uses look-up tables, bitwise-OR operators, and bit permutations.
一般的,独立任意地选择的一对一的映射可以分别被应用于任意算子的输入和输出。这样,可以定义一个等价的算子,使得对于每一种选定的映射,从映射后输入值产生正确的映射输出。对于每一种给定的算子,可以存在一组这样的映射,以致这一等价算子与原始算子相同,并满足没有对原始数据具有启示作用的信息的必要条件。包括同样的算子约束的这一原则,通常被称为隐蔽,虽然可用于一般算子的映射区间的范围是几乎不会被获知的。In general, independently arbitrarily chosen one-to-one mappings can be applied to the input and output of any operator, respectively. In this way, an equivalent operator can be defined such that, for each chosen mapping, the correct mapped output is produced from the mapped input value. For each given operator, there can exist a set of mappings such that this equivalent operator is identical to the original operator and satisfies the necessary condition that there is no information enlightening the original data. This principle of including the same operator constraints is often referred to as concealment, although the range of mapping intervals available for general operators is rarely known.
例如,模加法运算的映射-x+y≡z(mod m)-在这一约束下,算子保持不变,以允许从(x,y,z)到(xi,yi,zi)的映射,其中xi≡aix+bi(modm),yi≡aiy+ci(mod m),zi≡aiz+bi+ci(mod m),其中ai与m互为质数的任何数,而bi和ci是任意数。其中m是2的乘方(即m=2n),ai有m/2个可能的取值,而bi和ci中的任一个都有m个可能的取值。很多种算子(比如加法,乘法和求幂)将显示出相似的性质。For example, the map of the modulo addition operation - x+y≡z(mod m) - under this constraint, the operator remains unchanged to allow from (x, y, z) to ( xi , y , zi ), where x i ≡a i x+b i (modm), y i ≡a i y+ci (mod m), z i ≡a i z+b i + ci ( mod m), where a i and m are mutually prime numbers, and b i and c i are arbitrary numbers. Where m is a power of 2 (ie m=2 n ), a i has m/2 possible values, and any one of b i and ci has m possible values. Many kinds of operators (such as addition, multiplication and exponentiation) will show similar properties.
多位的全字异或运算(这里我们看做是两个n个元素的向量在数域Z2上的相加,加和乘分别相当于二进制的“异或”和“与”运算,并且我们用小写字母表示向量而用大写字母表示矩阵)——x+y=z——在算法维持不变的情况下,它具有比模2n加法更多的数据映射选择。这些具有这样的形式:xi=Aix+bi,yi=Aiy+ci和zi=Aiz+bi+ci。Ai可以是 矩阵中的任何一个——有逆矩阵的那些——并且bi和ci可以分别为2n的任意值,对于每一个值给出 个不同的映射(忽略共用矩阵Ai暗含的限制)。当n=8比特时,就有大约270.2个这样的映射。Multi-bit full-word XOR operation (here we regard it as the addition of two n-element vectors on the number field Z2, addition and multiplication are equivalent to binary "XOR" and "AND" operations, and we Use lower case letters for vectors and upper case letters for matrices)—x+y=z—which has more data mapping options than modulo 2n addition, while the algorithm remains the same. These have the form: x i =A i x+ bi , y i =A i y+ ci and z i =A i z+ bi + ci . A i can be Any of the matrices—those that have an inverse—and bi and ci can be any value of 2 n each, giving for each different mappings (ignoring the restriction implied by the shared matrix A i ). When n=8 bits, there are about 2 70.2 such mappings.
可用于异或运算的大量的映射集合可以显著降低旁生信道信号的可用性,并且这样做可以允许折衷用于保密的某些必要条件。当泄漏给攻击者的信息数量保持在可以接受的较低程度时,这一折衷(如重复使用所选择的映射)可以在运算法则的最终设计中有效降低其复杂性。The large set of mappings available for XOR operations can significantly reduce the availability of side-channel signals, and doing so can allow some requisites for secrecy to be compromised. This trade-off (such as reusing the chosen mappings) can effectively reduce the complexity in the final design of the algorithm while the amount of information leaked to the attacker is kept acceptably low.
多重映射可以连续地用于同一数据以构成复合映射-如xi=fi(x),xij=fj(xi)。虽然这相当于单一映射xk=fk(x),其中fk=fi 0fj,但是如果安排恰当,攻击者必须获得关于多个独立的数据组(例中为三个-xk,fi,fj)的信息才能获得任何关于原始数据的信息。这就增加了DPA攻击的阶次(一般等于独立数据组的个数)和所需要的监测的数量(一般相当于独立数据组个数的乘方),才能从监测中提取出有用的信息。Multiple maps can be used consecutively on the same data to form compound maps - eg xi = f i (x), xij = f j (xi ) . While this is equivalent to a single mapping x k = f k (x) where f k = f i 0 f j , if properly arranged, the attacker must obtain information on multiple independent data sets (in this case three -x k , f i , f j ) to obtain any information about the original data. This increases the order of DPA attacks (generally equal to the number of independent data sets) and the number of required monitoring (generally equal to the power of the number of independent data sets), in order to extract useful information from the monitoring.
一阶算子(例如查询表或位置换)仍然应用在加密中。允许算子保持不变的映射只有在操作中有数据丢失(如多对一)时才是受到限制的,不过在这种情况下改变算子是更有意义的,例如通过使用映射-从属查询表。First-order operators (such as lookup tables or bit permutations) are still used in encryption. Mappings that allow operators to stay the same are only limited when there is data loss in the operation (like many-to-one), though in this case it makes more sense to change the operator, e.g. by using a map-dependent query surface.
Kocher、Jaffe和Jun的国际公开号WO99/67919提出了改进DES密码术协议的方法和设备,通过减少对信号处理期间的可用信息的泄漏数量(和信噪比)来防止外来监测的攻击。该发明所实施的一项改进的DES改为使用两个56位密钥(K1和K2)和两个64位明文报文(M1和M2),它们每一个都相关于一个排列(即K1P,K2P和M1P,M2P),以使K1P{K1}XOR K2P{K2}等于“标准”DES密钥K,并且M1P{M1}XORM2P{M2}等于“标准”报文。在该设备操作期间,运算表最好定时更新,通过比信息泄漏更快地引入刷新平均信息量到该表中,使得攻击者无法通过分析检测结果获得该表中的内容。该技术可以应用于加密集成电路卡(智能卡)、防篡改芯片和所有类型的安全处理系统。在使用了隐蔽的情况下,为了通过旁生信道提取有效信息所需要的监测结果的数量与该信道的SNR的乘方之间的关系不同于前述的成反比关系,并且在该申请中没有给出对这一原理的认识的迹象。在该申请中使用了隐蔽的情况下(有或没有排列),所需要的监测的数量应当与乘方SNR的平方(即SNR的四次方)相反地变化。International Publication No. WO99/67919 by Kocher, Jaffe and Jun proposes a method and apparatus for improving the DES cryptographic protocol to prevent attacks by alien monitoring by reducing the amount of leakage (and signal-to-noise ratio) of information available during signal processing. An improved DES implemented by this invention instead uses two 56-bit keys (K1 and K2) and two 64-bit plaintext messages (M1 and M2), each of which is associated with a permutation (i.e., K1P, K2P and M1P,M2P) such that K1P{K1}XOR K2P{K2} is equal to a "standard" DES key K, and M1P{M1}XORM2P{M2} is equal to a "standard" message. During the operation of the device, the calculation table is preferably regularly updated, and the average amount of refreshed information is introduced into the table faster than information leakage, so that the attacker cannot obtain the content in the table by analyzing the detection results. The technology can be applied to encrypted integrated circuit cards (smart cards), tamper-resistant chips and all types of secure processing systems. In the case that concealment is used, the relationship between the number of monitoring results required to extract useful information through a side-grown channel and the power of the channel's SNR is different from the aforementioned inverse relationship, and is not given in this application There are signs of recognition of this principle. Where concealment is used in this application (with or without permutation), the number of monitoring required should vary inversely as the square of the power SNR (ie SNR to the fourth power).
本发明概述SUMMARY OF THE INVENTION
本发明的技术提供了对密码术及其他方法的实用和有效的修正,该修正是基于改变用于计算和存储的所有秘密和中间数据的映射的数据保密而做出的。这些数据例如可以是密钥、被存储和被传送的数据。The techniques of the present invention provide practical and efficient modifications to cryptography and other methods based on data secrecy changing the mapping of all secret and intermediate data used for computation and storage. These data can be, for example, keys, stored and transmitted data.
当被映射的数据或被选择的映射(或所使用的复合映射中的所有映射)是未知的时,没有关于加密数据的信息可以被确定。该技术具有有效减少从旁生信道泄漏中获取有关原始数据的信息的能力,使得可监测的旁生信道泄漏足够低。When the data being mapped or the mapping selected (or all mappings in the composite mapping used) is unknown, no information about the encrypted data can be determined. This technique has the ability to effectively reduce the information about the original data obtained from the side channel leakage, so that the monitorable side channel leakage is low enough.
秘密数据,尤其是密码密钥,从不必要以原始形式存在(没有应用映射),除非它们在初始映射中使用,并被随机地基于每用原则重映射,以避免容易受到DPA攻击的数据重复出现。Secret data, especially cryptographic keys, are never necessarily in their original form (no mapping applied), unless they were used in the initial mapping, and are randomly remapped on a per-use basis to avoid duplication of data vulnerable to DPA Appear.
这一技术具有很高的价值的一个例子是用于集成电路卡,在某些情况下DPA仅仅通过对泄漏出来的旁生信道信号的分析,可以在短短几分钟内使非法用户使用这些集成电路卡。另一种可能的应用是应用于计算设备中的数据计算与存储,这里电磁辐射将会危及数据的安全。An example of the high value of this technology is used in integrated circuit cards. In some cases, DPA can enable illegal users to use these integrated circuits in just a few minutes only through the analysis of the leaked side channel signals. circuit card. Another possible application is data calculation and storage in computing equipment, where electromagnetic radiation will endanger the security of data.
因此,为了实现本发明的优点,这里提供了一种处理数据的方法,以降低通过诸如DPA等方法对数据继续拧非法访问的风险,该方法包括以下步骤:Therefore, in order to realize the advantages of the present invention, a method for processing data is provided here, to reduce the risk of continuing illegal access to data by methods such as DPA, the method includes the following steps:
- 算法设计,独特而并非专用的密码,以最大受益于这项技术;- Algorithm design, unique and not proprietary ciphers, to benefit the most from this technology;
- 将公知的数据隐蔽技术引申为较大的映射组;- Extend known data concealment techniques to larger mapping groups;
- 将算法工具改进以应用于已经映射的数据;- Algorithmic tool improvements to be applied to already mapped data;
- 用于存储数据的初始映射,尤其是密钥;- an initial map for storing data, especially keys;
- 通过使用二级映射,对每一个在先的数据映射进行数据映射转换;- Data mapping transformation for each previous data mapping by using secondary mapping;
- 映射输入数据以输入给修正的算法执行程序;并- Map input data for input to the modified algorithmic executive; and
- 映射从修正的算法输出的数据以进一步使用。- Map the data output from the revised algorithm for further use.
该方法可以包括保持秘密数据和映射的选择方法的数据保密性。The method may include maintaining data confidentiality of the secret data and the selected method of mapping.
数据映射和二次数据映射可以是查询表、具有映射选取方法数据的算法或其它类似的形式。Data maps and secondary data maps may be look-up tables, algorithms with map selection method data, or other similar forms.
该方法包括复合地(级联地)而不是单独地应用映射,以减少攻击者通过有限数量的监测可以获得的信息的数量,并增加成功进行DPA攻击的最小阶次。The approach consists of applying mappings compoundly (cascadedly) rather than individually, to reduce the amount of information an attacker can obtain through a limited number of inspections, and to increase the minimum order for a successful DPA attack.
已经映射的数据和映射选择方法被传送给远程单元。The mapped data and mapping selection method are communicated to the remote unit.
通过下面的描述、非限制性的实施例以及附图,可以更好地理解本发明。The invention can be better understood from the following description, non-limiting examples and accompanying drawings.
图1示出,加密过程的现有技术的示意图;Fig. 1 shows, the schematic diagram of the prior art of encryption process;
图2示出,图1的加密过程中旁生信道信息的泄漏的示意图;FIG. 2 shows a schematic diagram of leakage of side channel information during the encryption process of FIG. 1;
图3示出,用映射后数据等价物替换双输入运算的示意图;Figure 3 shows a schematic diagram of replacing a double-input operation with a mapped data equivalent;
图4示出,连续映射的结合的示意图;Figure 4 shows a schematic diagram of the combination of continuous mapping;
图5示出,加密器由其修正后的等价物代替的示意图;Figure 5 shows a schematic diagram of the encryption device being replaced by its modified equivalent;
图6示出,用于储存的密钥的初始映射的示意图;Figure 6 shows a schematic diagram of an initial mapping for stored keys;
图7示出,密钥的重复映射的示意图;FIG. 7 shows a schematic diagram of repeated mapping of keys;
图8示出了一个示意图,用最简单的密码说明的映射过程;和Figure 8 shows a schematic diagram illustrating the mapping process with the simplest cipher; and
图9说明了实施例3的情况:使DES密码抵抗1st-和2nd-阶DPA攻击。Figure 9 illustrates the case of Embodiment 3: making the DES cipher resistant to 1st- and 2nd -order DPA attacks.
图1中,附图标记10一般地表示了一个传统意义上的“黑盒子”密码运算。在运算10中,输入数据12使用密钥14转换成输出信号16。In FIG. 1, reference numeral 10 generally designates a "black box" cryptographic operation in the conventional sense. In operation 10 , input data 12 is converted into output signal 16 using key 14 .
图2中,附图标记20一般地表示了一个传统的密码运算,例如图1中所示的加密运算,并进一步指出旁生信道泄漏。运算20包括数据的输入22、使用密钥24将输入数据转换成输出数据26和信号的泄漏28。In FIG. 2,
图3中,附图标记30一般地表示了数据隐蔽等价物代替双输入运算的过程。在运算30中,通过在算子31中被运算的输入32和34实现一个标准双输入运算,以产生输出36。数据隐蔽运算再次接收输入32和34,随后,在由算子33进行运算之前,通过映射35和37被映射。合成后的输出随后由输出映射39进行映射,以提供隐秘的输出36。In FIG. 3, reference numeral 30 generally designates a procedure in which a data masking equivalent replaces a two-input operation. In operation 30 , a standard two-input operation is implemented with inputs 32 and 34 being operated on in operator 31 to produce output 36 . The data concealment operation again receives inputs 32 and 34 and is subsequently mapped by mappings 35 and 37 before being operated on by operator 33 . The synthesized output is then mapped by an output map 39 to provide a steganographic output 36 .
图4中,附图标记40一般地表示了通过级联运算实现的图3的连续映射的组合。算子41和47相当于图3中的运算33的两个不同的运算。映射43相当于涉及算子41的输出映射39,而映射45相当于涉及算子47的输入映射(如35或37)。映射49(fcd)是由43和45结合而来的单一的复合映射,它不会产生任何与原始数据相关联的数据,即使是中间值。In FIG. 4, reference numeral 40 generally designates the combination of the consecutive maps of FIG. 3 realized by cascading operations.
图5中,附图标记50一般地表示密码由其修正后的等价物替换(作为本发明的最终实现的中间步骤)。可以发现在未修正的运算中,输入数据52通过使用密钥51的加密运算53而起作用,提供输出54。在修正后的等价物中,在通过修正后的加密器57使用具有映射后的形式的密钥而起作用之前,输入数据52由转换运算56转换成映射后的形式,提供映射后的输出,通过使用转换算法58可以从中得到原始输出54。In Fig. 5, reference numeral 50 generally indicates the replacement of a cipher by its revised equivalent (as an intermediate step in the final realization of the invention). It can be seen that in an unmodified operation, the input data 52 is acted upon by an encryption operation 53 using a key 51 to provide an output 54 . In the modified equivalent, the input data 52 is converted to the mapped form by the transformation operation 56 before being acted on by the modified encryptor 57 using the key in the mapped form, providing a mapped output, via The raw output 54 can be derived therefrom using a transformation algorithm 58 .
在图6中,附图标记60表示进行映射的不可预知的选择的步骤。根据得出的选择结果,对未经映射的密钥62进行映射63,并储存为64。映射选择方法被存储为68,以供经映射的密钥使用。In FIG. 6 ,
在图7中,附图标记70表示进行二级映射的不可预知选择的步骤。通过使用所选择的二级映射,对先前被映射过的密钥72执行进一步的映射73,并储存为74,以代替72。根据选择二级映射的选择经验,对先前储存的映射选择结果76进行处理,以产生对于74可用的映射选择,并且储存为78,用于替换76。In Fig. 7,
在图8中,附图标记80一般地表示用对经映射后的数据进行的运算算法代替原有的运算算法。加密器83对输入正文81和密钥82进行运算,以产生输出文本块84。替换后,输入正文通过适当的映射被映射85。对初始密钥82执行类似的随意映射86,以产生映射密钥89。可选择地,89可以由一个加密运算的输出中得到,并已经是经过映射的形式。86进一步涉及反复改变的应用于密钥的映射。修正的加密器87对映射后的数据进行运算,并且通过映射运算器,它的映射输出被随机地进行运算88,以产生与未修正的加密器所产生的同样的数据84。或者还可以是:87的输出可以直接与映射选择数据一起,用在对等价物85和86的相似的修正算法,以避免未经映射的数据。In FIG. 8 , reference numeral 80 generally indicates that an original operation algorithm is replaced by an operation algorithm performed on the mapped data. Encryptor 83 operates on input text 81 and key 82 to produce output text block 84 . After substitution, the input text is mapped 85 by the appropriate mapping. A similar arbitrary mapping 86 is performed on the original key 82 to produce a mapping key 89 . Alternatively, 89 may be derived from the output of an encryption operation, already in mapped form. 86 further refers to the iteratively changing mapping applied to the key. A modified cipher 87 operates on the mapped data, and its mapped output is randomly operated 88 by the mapping operator to produce the same data 84 as produced by the unmodified cipher. Alternatively, the output of 87 can be used directly with mapping selection data in a similar correction algorithm to equivalents 85 and 86 to avoid unmapped data.
图9中,附图标记90总的表示将位变换替换成对经过映射后的数据和映射方法的选取数据都进行这种处理,以独立地对映射后的数据位应用映射。附图标记91表示对一个数据位的复制同样的替换,这一替换没有引入不同的映射法则,而是要警惕这些数据再组合时导致多余的不可预料的消除。附图标记92表示同样的替换操作,除了引入了不可预知的信息95以避免91中所涉及的消除。附图标记93类似地指出了异或运算的替换。附图标记94表示以使用映射值的、一个预先计算好的查询表代替DES S函数查询表(有六个输入位和四个输出位)。在预先计算中,不可预知数据96和所有可能的输入值97都与原始表结合,以产生所有映射后输入-输出组合98,用于写入映射后查询表99。根据设计的选择,该预先计算可以在每次或多次使用查询表之前进行。之后,查询表99被使用于对映射后数据操作的充分独立的重映射运算(异或)中。图中没有两个数据位向量可以被用来重构原始数据。为获得足够的隔离度,在信号路径中引入延迟(比如通过在异或运算之间使用定时锁存器)。In FIG. 9,
本发明的详细介绍Detailed introduction of the invention
密码设计password design
应对密码算法的选择给予考虑。适当的密码设计可以使下一步骤(密码修正)中的密码处理费用增加得很少。选择用于密码实施的设备,对于具有尽量小的复杂度和在其面临旁生信道攻击时,具有尽量大的数据保密程度是非常重要的。理解下述技术在设计中是很必要的。Consideration should be given to the choice of cryptographic algorithm. Proper cryptographic design can add little to the cryptographic processing overhead in the next step (cipher revision). It is very important that the equipment selected for cryptographic enforcement has the least possible complexity and the greatest possible degree of data privacy when it is exposed to side channel attacks. An understanding of the following techniques is essential in design.
对多组数据重复使用同一运算法则中的一个映射将会给攻击者提供潜在的易攻破的缺陷,不过这一缺陷并非很严重(例如只需抵御一阶DPA攻击时),这样通过使用加法器可实现很大的节约。在算法设计中一定要记住这一点。Reusing a mapping in the same algorithm for multiple sets of data will provide an attacker with a potentially vulnerable flaw, but this flaw is not very serious (such as when only resisting first-order DPA attacks), so that by using the adder Great savings can be realized. This must be kept in mind in algorithm design.
新的映射选择可以用于遍及加密装置的每一个数据值(包括每次运算的输出),否则映射可能被固定地用于两个运算之间。当这两个运算是无关的,后者明显是不可能的,只有在保持低复杂性的情况下才可能是有用的。必须注意与所有中间计算值结合的映射要保证隐秘要求(例如,当两个具有相同的映射应用的数值通过异或算子相结合时,之前的零输出将总是被映射成零值)。A new mapping option may be used for every data value throughout the encryption device (including the output of each operation), otherwise a mapping may be used fixedly between two operations. When the two operations are unrelated, the latter is clearly not possible and may only be useful if complexity is kept low. Care must be taken that the mapping combined with all intermediate computed values guarantees the privacy requirements (eg when two values with the same mapping applied are combined via the XOR operator, a previously zero output will always be mapped to a zero value).
如图3所示,每一个运算器由执行等价运算而且使所有数值都被映射的运算器所代替。输出映射39(fc)由输入映射35、37(fa和fb)和中心运算的任何改变来确定。例如,在输入映射是将每一个加法器的输入都分别加上一个任选值的情况下,那么输出映射就是从输出中减掉任意值的总和,这里假定中心运算是不变的。As shown in FIG. 3, each operator is replaced by an operator that performs an equivalent operation and causes all values to be mapped. The output map 39 ( fc ) is determined from the input maps 35, 37 ( fa and fb ) and any changes to the center operation. For example, where the input mapping is the addition of an optional value to each adder input, the output mapping is the sum of the arbitrary values subtracted from the output, assuming that the central operation is invariant.
原始值32、34和36(a,b,c)仍然在图3中出现,然而在应用了下一步之后就不会出现了。如果找出适当的可供选择的方法是不切实际的,那么,一般将在在映射数值上执行的运算选择为与以前相同的运算(如对于加法),不过如果替换是合理的,也可能选取不同的运算(如对于随机查询表)。The original values 32, 34 and 36 (a, b, c) still appear in Figure 3, however not after the next step is applied. If it is impractical to find an appropriate alternative, then the operation performed on the mapped values is generally chosen to be the same as before (eg for addition), although it is also possible if the substitution is reasonable. Choose a different operation (eg for a random lookup table).
下一步是将来自级联的运算41和47的连续的映射43和45(fc和fd)合并为单一的映射49(fcd),如图4中所示。这个映射绝不能,即使是中间计算值,也不能产生原始数据或任何与原始数据有关的数据。当映射49仅由不能被用于从映射后的值导出与原始数据有关的信息的信息构成时,这通常可以实现。出现相关数据会给DPA攻击提供主要目标。例如,如果两个映射43和45是对各个随机值的模加法,映射49将是这些数值总和的加法,从中无法推导出关于每个映射选择的信息。与相邻的运算联系起来,这个映射可以被简化。这里连续映射43和45的选取是有关联的(即其中一个的选取影响另一个的选取),复合映射可以稍微简单一些或者甚至变为相同的运算(因此被省略)。The next step is to merge the
当级联算子41和47无关时,如映射49(fcd)所执行的复合运算将是必要的。如果必要,它将通过使用查询表或其它算法来执行。如果相邻运算中的一个是查询表,因而导致级联的查询表将被结合为一个。这一步骤之后,除了输入数据、密钥数据、输出数据之外,所有计算过程中的数据通过映射保持保密状态。这些外部映射将在下一步中被分别处理。When the
通过精心的密码设计的选择和映射选择的限制,在忽略修正后的密码57外部的映射选择、运算和映射的情况下,修正后密码的复杂程度不一定比原始密码的大。每一个运算中的涉及映射的计算量保持为最小状态。图5中示出了由此得到的数学等效加密器。Through careful cipher design choices and constraints on mapping choices, the modified cipher is not necessarily more complex than the original cipher, ignoring the mapping choices, operations, and mappings external to the modified cipher 57. The amount of calculation involving mapping in each operation is kept to a minimum. The resulting mathematically equivalent cipher is shown in FIG. 5 .
密钥的初始存储Initial storage of keys
图5中,原始密钥、输入数据和输出数据仍显示为没有应用映射的形式,并且当它们被某一运算读取时,特别是进行映射处理时,仍然可以成为DPA攻击的目标。密钥必须仅以映射后的形式被存储,其中映射的选择具有必要的随机性。此外,把映射的选取方法译成密码的信息必须储存起来。这一初始存储只有当初始的或主密钥被下载时(典型地在受到保护的环境中)才是必要的,而且从不针对在加密中信息中所下载的密钥(见加密器输出数据的映射)。这可以被表示为:最先通过应用映射k0=f0(k)存储密钥k,同时存储识别映射f0的选定方法的信息。映射族将根据用于加密器中的算子最普通地进行选择,其中密钥用于避免不必要的重复映射。In Figure 5, the original key, input data, and output data are still shown without the mapping applied, and when they are read by an operation, especially for mapping processing, they can still be the target of DPA attacks. Keys must only be stored in mapped form, where the choice of mapping has the necessary randomness. In addition, the information that encodes the selected method of the mapping must be stored. This initial storage is only necessary when the initial or master key is downloaded (typically in a protected environment), and never for keys downloaded in encrypted messages (see Encryptor Output Data mapping). This can be expressed as: first storing the key k by applying the mapping k 0 =f 0 (k), while storing the information identifying the selected method of the mapping f 0 . The mapping family will most commonly be chosen according to the operator used in the encryptor, where keys are used to avoid unnecessary duplicate mappings.
每用密钥映射per key map
即使如密钥的初始存储中那样,通过一个应用映射进行了存储,反复读取可能导致通过一阶DPA技术(例如通过分析监测记录组的平均值)重现出秘密数据和映射信息。因此,在每次使用密钥之前,映射应当被更换为新的、随机选定的映射,这种映射受到由设计强加的约束。密钥的原始数据绝不能被计算出,即使只是在这一过程中作为临时变量。这导致派生出以ki=gi(ki-1)和fi=gi 0fi-1形式存在的值。后者意味着派生出fi以致fi(q)=gi(fi-1(q))对任意q成立。数值ki和fi将代替已存储的值ki-1和fi-1。这些数值将通过等式ki=fi(k)保持关系。Even if stored by an application map, as in the initial storage of the key, repeated reads may lead to the retrieval of secret data and map information by first-order DPA techniques (for example, by analyzing the average of groups of monitoring records). Therefore, before each use of the key, the mapping should be replaced with a new, randomly selected mapping subject to the constraints imposed by the design. The raw data of the key must never be calculated, even if only as a temporary variable in the process. This leads to derivation of values in the form k i =g i (k i-1 ) and f i =g i 0 f i-1 . The latter means deriving f i such that f i (q) = g i (f i-1 (q)) holds for any q. The values ki and f i will replace the stored values ki -1 and f i-1 . These values will remain related by the equation ki = f i (k).
加密器输入数据映射Encryptor input data map
输入数据52(图5中x)首先通过为这些输入所选定的映射关系进行映射。这类似于密钥的初始映射(见密钥的初始存储),只是所有的数据都将被处理,例如接收到的将被解密的秘文或供传送的将被加密的明文。其中极机密数据(如密钥)将被加密,它们必须已经以映射后的形式被存储,并被进行了适当的映射替换(如每用密钥映射中所述)。The input data 52 (x in FIG. 5) is first mapped through the mapping relationship selected for these inputs. This is similar to the initial mapping of keys (see Initial storage of keys), except that all data will be processed, such as ciphertext received to be decrypted or plaintext to be encrypted for transmission. Where extremely confidential data (such as keys) are to be encrypted, they must have been stored in mapped form and replaced by appropriate mappings (as described in Key Mapping).
加密器输出数据映射Encryptor output data map
输出将被映射成它的原始值,此时它的秘密性已经无关紧要(例如已经产生了用于传送的秘文)。当这一数据必须保持秘密状态时(例如传送后的密钥),它们和映射选定方法信息应当被存储且不被逆映射回原始形式。因此,上面提到的密钥的初始映射不会用于接收的和解密的密钥。这就使下载密钥的过程可以抵御DPA。The output will be mapped back to its original value, at which point its secrecy is irrelevant (e.g. a ciphertext has been generated for transmission). When this data must be kept secret (such as keys after transmission), they and mapping selection method information should be stored and not reverse mapped back to the original form. Therefore, the above mentioned initial mapping of keys will not be used for the received and decrypted keys. This makes the process of downloading keys DPA resistant.
例1:实现基于“异或”的加密器的DPA防御 Example 1: Implementing a DPA defense based on an XOR-based cipher
在本例中,一个很简单的加密器完全由模2加法-异或-以八位字节运算(每个八字节的向量)和一个单一的查询表构成,以对于每个8位输入产生8位输出。由于加密器的过于简单的性质,相应于密钥的使用,只有单个一组数据可以被安全地加密(如在Vernam加密器或一次延长器中),不过对同一数据的反复加密可以实现对一阶DPA的抵御。每用密钥映射没有说明,但是它在对DPA的防御中是必要的。本例试图说明用于严格限定的计算环境中的密码器设计,例如用于集成电路卡的加密器设计。他使用了一个单一的查询表代换。In this example, a very simple cipher consists entirely of modulo-2 addition-exclusive-or-operations in octets (vectors of each octet) and a single look-up table for each 8-bit input Produces 8-bit output. Due to the simplistic nature of ciphers, only a single set of data can be securely encrypted (as in a Vernam cipher or one-time extender) corresponding to the use of the key, although repeated encryption of the same data can achieve order DPA resistance. Per-use key mapping is not specified, but it is necessary in defense against DPA. This example attempts to illustrate the design of a cipher for use in a strictly defined computing environment, such as that used in integrated circuit cards. He uses a single lookup table instead.
在本例中,所述的映射被应用于每一个8位数据,具有kni=Aikn+bi、xni=Aixn+ci和yni=Aiyn+di的形式。下标n和i分别代表每个数据组中8位字节的选择和加密器使用计数。Ai是一个随机选取的比特的满秩8×8矩阵,每一个bi、ci和di都是随机选取的8位字节。In this example, the mapping is applied to each 8-bit data with k ni =A i k n + bi , x ni =A i x n +c i and y ni =A i y n +d the form of i . The subscripts n and i represent the octet selection and cipher usage count in each data group, respectively. A i is a full-rank 8×8 matrix of randomly selected bits, and each of b i , c i and d i is a randomly selected 8-bit byte.
下面结合图8中的运算说明本例。一个典型的加密器(加密或解密)可能使用很多运算,并且每一个k、x、y的数据大小一般至少是64位。每一个箭头代表一个8位字节的流向。图表示出数据的映射的等效运算。密钥的初始的和递增的(在每用密钥映射中做出说明)映射都被示出在密钥映射中。This example will be described below in conjunction with the operation in FIG. 8 . A typical cipher (encryption or decryption) may use many operations, and the data size of each k, x, y is generally at least 64 bits. Each arrow represents the flow of an octet. The figure shows the equivalent operation of the mapping of the data. Both the initial and incremental (described in each keymap) mappings of keys are shown in the keymap.
初始映射后的密钥kn,0=A0kn+b0和映射f0=A0,b0)被储存。The key k n,0 =A 0 k n +b 0 and the mapping f 0 =A 0 ,b 0 ) after the initial mapping are stored.
最好在使用密钥之前,通过选定新的Gi和hi来确定一个新的映射。我们将kn,i-1替换为kn,i=Gikn,i-1+hi,将Ai-1替换为Ai=GiAi-1,将bi- 1替换为bi=Gibi-i+hi。Preferably, a new mapping is determined by selecting new G i and hi before using the key. We replace k n, i-1 with k n, i = G i k n, i-1 + h i , A i-1 with A i = G i A i-1 , and b i-1 with b i =G i b ii +h i .
每一个查询表s被替换成它的等效值si,以对映射后的值进行运算,定义为si(z)=Ais(Ai-1(z+bi+ci))+di。使用相关映射xn,i=Aixn+ci对输入数据8位字节xn进行映射。使用原始加密程序而不是被替换后的查询表对映射后的输入加密。除了每密钥映射、替换后的查询表、初始映射和最终映射之外,没有涉及加密程序的计算变化。Each lookup table s is replaced by its equivalent value s i to operate on the mapped value, defined as s i (z)=A i s(A i-1 (z+b i +c i ) )+d i . The input data octet x n is mapped using the correlation map x n,i =A i x n + ci . The mapped input is encrypted using the original encryptor instead of the replaced lookup table. Other than per-key mappings, replaced lookup tables, initial mappings, and final mappings, there are no computational changes involved in the encryption procedure.
最后,当输出y保持秘密状态时,例如通过密钥,使用yi、Ai和di而不是y。如果将它映射成其原始状态,这将被表示为yn=Ai-1yn,i+di。Finally, when the output y is kept secret, e.g. by a key, use y i , A i and d i instead of y. If it is mapped to its original state, this will be expressed as y n =A i-1 y n,i +d i .
得出一个重要的观测结果,就是由于可能的映射的数量巨大(270.2),相同的映射可以用于不止一个8位数据的有效加密。一个简单的映射不能保证多个字节充分安全抵御DPA。应当尽量减少基于相同映射的重复使用的简化,并且应是可行的,为不同的数据组选择的映射,应当是分别选出的。An important observation is that due to the large number of possible mappings (2 70.2 ), the same mapping can be used for efficient encryption of more than one 8-bit data. A simple mapping cannot guarantee that multiple bytes are sufficiently secure against DPA. Simplifications based on repeated use of the same mapping should be minimized, and should be feasible, mappings chosen for different data sets should be chosen separately.
既然映射(Ai,bi)和映射后的数据d在每次使用中都会改变,那么被处理的数据(包括密钥)就和原始数据无关。只有数据的几个比特和映射的函数与原始数据有关。原始数据的每一位可以被表示为被处理的一个17位的函数。Since the mapping (A i , bi ) and the mapped data d change in each use, the processed data (including the key) has nothing to do with the original data. Only a few bits of the data and the mapped function are related to the original data. Each bit of raw data can be represented as a function of 17 bits being processed.
本例应用于强大的加密器,可以被有效应用于当前使用的集成电路卡,包括使用8位处理器和存储空间不大的集成电路卡。This example is applied to a strong encryptor, which can be effectively applied to currently used IC cards, including IC cards using 8-bit processors and small storage space.
例2:实现IDEA加密器的DPA防御 Example 2: Implementing DPA defense of IDEA encryptor
这个例子说明了应用于一个在设计时没有任何抵御DPA意图的公知的加密器时这个概念的使用。This example illustrates the use of this concept when applied to a known cipher that was designed without any intent to defend against DPA.
IDEA加密器,基于简单容易地应用于大多数常规用途计算机的目的,被有意设计成由三个互不相容的算子组成-16位值的二进制异或、加法和乘法。为了使该加密器实现DPA防御,由于算子之间互不相容,将在每个数据路径中引入一个查询表,目的是为了将映射后的数值从一个算子映射到下一个。The IDEA cipher, with the aim of being simple and easy to apply to most general-purpose computers, was intentionally designed to consist of three mutually incompatible operators—binary XOR, addition, and multiplication of 16-bit values. In order for this encryptor to implement DPA defense, since operators are incompatible with each other, a lookup table will be introduced in each data path for the purpose of mapping the mapped value from one operator to the next.
和上面的例子一样,每次异或都具有一个映射,除非向量的长度增加到16位。上文所述的“每次”意味在整个加密过程中,没有将随机映射限定为同一个映射,而且只要执行再映射,就可以独立地选择映射。As in the example above, each XOR has a mapping, except that the length of the vector is increased to 16 bits. "Every time" mentioned above means that throughout the encryption process, the random mapping is not limited to the same mapping, and as long as remapping is performed, the mapping can be independently selected.
加法器比异或算子具有较小的映射选择自由。乘法器与加法器具有相同的映射选择自由。映射必须是从一个适当的设备中随机选取的,必须据此对密钥和数据进行映射,必须产生查询表,且必须执行加密程序。Adders have less freedom of choice of mapping than XOR operators. Multipliers have the same freedom of mapping choice as adders. The mapping must be randomly selected from an appropriate device, keys and data must be mapped accordingly, look-up tables must be generated, and encryption procedures must be executed.
这里,系统管理的是若干查询表、用于辨识对密钥所施加的映射的信息的存储,和当有运算被执行时处理两倍的查询的系统工作量,其中系统所管理的每一个查询表都具有65536个16位字。Here, the system manages several lookup tables, the storage of information identifying the mappings applied to the keys, and the system workload of processing twice as many queries as there are operations performed, where each query managed by the system The tables each have 65536 16-bit words.
在典型的现代计算机中,这些资源是随时可用的。如本例展示,使用本技术,许多现有的应用程序可以被容易地保护起来,以抵御大部分的DPA攻击。采用这种方法,使得利用偷偷截取从执行加密操作的计算机发射出来的电磁波的DPA变得不可行了。In a typical modern computer, these resources are readily available. As this example demonstrates, many existing applications can be easily secured against most DPA attacks using this technique. In this way, it becomes infeasible to use DPA that surreptitiously intercepts electromagnetic waves emitted from computers performing cryptographic operations.
必须确立这样的概念:当需要处理大量的数据时,这些数据的映射在该处理过程中应当不时地更新。It must be established that when a large amount of data needs to be processed, the mapping of these data should be updated from time to time during the processing.
例3:实现DES加密的DPA防御 Example 3: DPA defense implementing DES encryption
数据加密标准(DES)加密法被广泛地使用,虽然它的56位密钥长度使得它容易受到穷举搜索攻击,但是仍然得到广泛应用。它还被用于更安全的同义密符,例如三重数据加密算法(TDEA,更一般地称为三重-DES)和DESX(由DES派生出的一种加密法)。由此,考虑将本发明用于DES是适当的。Data Encryption Standard (DES) encryption is widely used, although its 56-bit key length makes it vulnerable to exhaustive search attacks, but it is still widely used. It is also used in more secure synonymous ciphers such as Triple Data Encryption Algorithm (TDEA, more generally known as Triple-DES) and DESX (an encryption method derived from DES). Therefore, it is considered appropriate to apply the present invention to DES.
DES的设计没有考虑DPA。在通常情况下,用于增加密码的长度的方法,减小了后续操作中有可能使用的映射的兼容性。三个重要的运算被应用于DES-模2加法(异或)、展开(很像置换,只是将某些或所有的输入位复制成两个)和八个6到4位查询表(被称为S或选择函数)。移位、位置换(重排)和寄存器互换在本讨论中不予考虑,因为这些针对每个数据位的映射选择被简单地跟踪(假设信号保持孤立),无须把它们当做与所选择的映射策略截然不同的运算。用包括追踪映射选择的修正后的位移动代替未修正的位移动在90中得以说明。DES was not designed with DPA in mind. In general, the method used to increase the length of the password reduces the compatibility of mappings that may be used in subsequent operations. Three important operations are applied to DES -
虽然特殊的置换、展开和异或运算的使用允许对数据(包括密钥)的大量映射集合,但任何涉及多位的映射必须被重映射,以允许每次仅使用六个数据位作为对每个S函数的输入。在这一场合,将禁止将这8个S函数整体地看做一个单一的实体。为了简单起见,涉及多于一个数据位的映射在此将不被考虑。这并不意味着具有几乎每次运算之后的重映射的比较复杂的映射必须是复杂的。While the use of special permutations, expansions, and XOR operations allows for a large set of mappings to data (including keys), any mapping involving multiple bits must be remapped to allow using only six bits of data at a time as The input of an S function. On this occasion, it is prohibited to treat the eight S-functions collectively as a single entity. For simplicity, mappings involving more than one data bit will not be considered here. This does not mean that more complex mappings with remapping after almost every operation have to be complex.
这里将要考虑的映射包括在算法中对所处理的每一个数据位的单独选取。尽管这里需要尤其注意确保DPA防御的阶次不低于所要求的阶次,但为减少对新的随机数据的需求,仍可以采取折衷的办法,使得选择是相关的。本例将不包括对这种折衷方法的实现。The mapping to be considered here involves the individual selection of each data bit processed in the algorithm. Although special care needs to be taken here to ensure that the order of the DPA defense is not lower than required, there are trade-offs that can be made to reduce the need for new random data such that the selection is relevant. This example will not cover the implementation of this compromise.
假设本例中我们要求2nd阶DPA防御。为达到这一要求,我们将使用这样的原理:在能够重建出关于原始数据任何信息之前,所需的独立数字量的值必须是一个较高的值,即3。由于数字信号间以多种无法预料的方式相互影响,因此不能假定该信号是独立的,除非对它进行适当的隔离。Assume in this example we ask for a 2nd order DPA defense. To achieve this, we will use the principle that the required independent digit quantity must have a high value of 3 before any information about the original data can be reconstructed. Because digital signals can interact with each other in many unforeseen ways, the signals cannot be assumed to be independent unless they are properly isolated.
通用处理器中的信号隔离通常比功能描述中所暗含的隔离度要少得多。例如,将一个数值加载到诸如象累加器这样的一个寄存器中,可以达到隐藏的作用,以备将来使用,例如判断该值是否为零。在载入新的数据之前的一个时间段之后,从电路中删除数据,这种作法一般可以提供足够的隔离,即使发生细微的相互作用(象数据相互加热或离子移动)。不直接访问的字RAM中的数据值之间的相互作用,在执行其它访问期间,由于执行了寻址逻辑,因而这种相互作用仍然是明显的。这里,我们假设由具有适当性质的数据存储寄存器来实现硬件。这些性质中的第一项是:一旦数据从电路中被删除并经过适当的时间间隔(例如一个时钟周期)之后,那么在这个电路中将没有与后续数据之间的相互影响。第二项性质是:分立电路中数据之间的相互影响是可以忽略的,虽然这一性质的较保守形式是分立电路中数据之间的相互影响被合适地隔离,使得在同一时间所有电路都没有数据关联信号越迁产生。需要注意的是,同时处理的不同的数据位通常不能被假定为隔离的,因此不应将其视为独立的。Signal isolation in general-purpose processors is usually much less isolated than implied by the functional description. For example, loading a value into a register such as an accumulator can be hidden for future use, such as determining whether the value is zero. Removing data from the circuit after a period of time before loading new data generally provides sufficient isolation even if minor interactions occur (like mutual heating of data or ion migration). Interactions between data values in word RAM that are not accessed directly, remain evident during execution of other accesses due to the execution of the addressing logic. Here, we assume that the hardware is implemented by data storage registers with appropriate properties. The first of these properties is that once data is removed from a circuit after a suitable time interval (such as a clock cycle), there will be no interaction with subsequent data in the circuit. The second property is that the mutual influence of data in discrete circuits is negligible, although a more conservative form of this property is that the mutual influence of data in discrete circuits is suitably isolated so that all circuits are connected at the same time. No data association signal transitions are generated. It is important to note that different bits of data that are processed simultaneously cannot generally be assumed to be isolated and therefore should not be considered independent.
我们假设所有用于算法的输入数据都是映射后的形式(映射后数据的一个单一位被描述成单一位),对每个数据位,有两个独立应用的映射,每个映射具有唯一的独立的一个映射选择信息的不可预知的位。每个映射都是从两个组成的一组中挑选出的。该组中第一个映射使数据位保持不变,第二个交换两个可能值。可以发现,如果利用一个异或操作,对与原始位相关的三个位进行组合,则可以导出原始位。省略三个中的任何一位将会使原始数据实现保密(假设每种映射选择是不可预知的,每种情况有相同的可能性,而且每种选择之间没有相关的形式)。We assume that all input data to the algorithm is in mapped form (a single bit of mapped data is described as a single bit), and for each data bit, there are two independently applied mappings, each with a unique Independently a map selects unpredictable bits of information. Each mapping is picked from a set of two. The first mapping in the group leaves the data bits unchanged, and the second swaps the two possible values. It can be found that if the three bits related to the original bit are combined using an exclusive OR operation, the original bit can be derived. Omitting any of the three bits would render the original data confidential (assuming each mapping choice is unpredictable, each case is equally likely, and there is no form of correlation between each choice).
在修正DES加密法的过程中,任何映射后的数据位受到和从前一样的任何变换,并跟踪相关的映射位(90)。对于展开也是一样,除了进行位复制时(包括所有位被复制的情况),这样的复制应是独立进行的,除非进一步的分析指出这是没有必要的(在如91中的修正的情况时)。使用两个独立选择的映射(需要两位随机数据),可以构成合成映射。引入的映射数据可以应用于这两对映射(分别使用异或操作对每个复制数据进行再映射),加上对于用于每个复制结果的、为两个映射选择中的任意一个导出的组合映射。这涉及四个不可预知的新选择位,可以省略与每个引入的映射相联系的其中一个,而不会降低安全性(如92所示)。两个复制结果之间互相不相关,并可以一起在随后的操作中使用而不用担心随后的结合会引入DPA可攻击缺陷。DES加密法中的异或操作在这一映射下保持不变,尽管为应用于每个数据位的第一和第二映射推导出了组合映射。这一限定可以在硬件中进行-当两个映射数据位的异或被发现,每个选择位与使用相同操作的其它数据映射的相应选择位结合(93)。产生的三个数据位随后被作为屏蔽数据位和两个应用映射。选择有时可以被明智地做成相关的方式,而不减少有效的DPA攻击的最小阶次,其结果是可以减小附加的计算复杂性和不可预测数据需求。In modifying the DES encryption, any mapped data bits are subjected to any transformations as before, and the associated mapped bits are tracked (90). The same is true for unrolling, except when bit-copying is done (including the case where all bits are copied), such copying shall be done independently unless further analysis indicates that this is not necessary (in the case of corrections such as in 91) . Using two independently selected maps (requiring two bits of random data), a composite map can be formed. The incoming mapping data can be applied to both pairs of mappings (remapping each replicated data separately using an XOR operation), plus for each replicated result, the combination derived for either of the two mappings selected map. This involves four unpredictable new option bits, one of which can be omitted associated with each incoming mapping without reducing security (shown at 92). The two replicated results are not correlated with each other and can be used together in subsequent operations without worrying that the subsequent combination will introduce DPA exploitable flaws. The XOR operation in DES encryption remains unchanged under this mapping, although a combined mapping is derived for the first and second mappings applied to each data bit. This definition can be done in hardware - when an exclusive OR of two map data bits is found, each select bit is combined with the corresponding select bit of the other data map using the same operation (93). The resulting three data bits are then used as mask data bits and two application maps. Choosing the smallest order that can sometimes be judiciously made relevant without reducing the minimum order of an effective DPA attack can reduce additional computational complexity and unpredictable data requirements as a result.
上述情况中必须注意到的是,本发明的描述中建议的某些简化已经应用在本例中了。尤其是,对上级操作的输出进行的映射与应用于异或操作的输入一样,把重映射简化为相同的操作(可以将其省略)。通过数据展开(92),只有添加了足够的附加不可预知值(95),才能确保后续操作不会降低DPA防御能力。后续的基于映射选择的故意相关的简化成为可能。In the foregoing it must be noted that certain simplifications suggested in the description of the invention have been applied in this example. In particular, the mapping applied to the output of the superordinate operation is the same as applied to the input of the XOR operation, reducing remapping to the same operation (which can be omitted). Through data expansion (92), only enough additional unpredictable value (95) is added to ensure that subsequent operations will not reduce the DPA defense capability. Subsequent simplifications based on deliberate correlation of mapping choices are possible.
在本例中,S函数是保持被寻址的唯一区域。通过使被选取的映射的类型保持彼此相差悬殊,我们将限定完成本例目的映射的选择范围,以对独立的数据位进行映射。当引入简化时,有多种可以采用的方法。这里采用的方法是用根据函数(查询表)的输入而选取新的映射,对输入数据进行重映射(因此允许多次使用该表),并将输入映射和查询表的输出映射的不可预测情况进行结合。当修正S函数查询表(94)时,在这里使用了重映射方法,不过必须紧记:S函数的输出位应当与输入位无关。在使用之前,我们从所有其它的映射中为每一个S函数的输入和输出位随机地并独立地选取两个映射(96),用于每个可能的输入(在本例中由计数器97产生)。S函数表的替换条目被写入(98)。之后,对经映射的输入数据执行重映射,利用写入了映射的S函数查询表,并且选取的输出映射与输入映射一块传送,并用于添加的不可预知性,尽管可能执行简化。S函数查询表被存储在硬件寄存器中(全部寄存器寄存位的总和将是2048位以实现八个S函数)或RAM中。存储在该存储器中的值必须是从应用映射预先计算好的,从某种意义上讲,这可以保证对2nd阶DPA攻击的所需的抵御。每个合成的映射后输入值被用于对寄存器文件编址并且映射后的值被储存于选定的四个寄存器位。In this example, the S-function is the only area that remains addressed. By keeping the types of mappings chosen distinct from each other, we will limit the choices of mappings for the purposes of this example to mapping individual bits of data. When introducing simplifications, there are various approaches that can be taken. The approach taken here is to use new mappings based on the input of the function (lookup table), remap the input data (thus allowing multiple uses of the table), and combine the unpredictable situation of the input mapping and the output mapping of the lookup table to combine. When modifying the S-function look-up table (94), the remapping method is used here, but it must be kept in mind that the output bits of the S-function should be independent of the input bits. Before use, we randomly and independently select two mappings (96) for each input and output bit of the S-function from all other mappings for each possible input (generated in this example by counter 97 ). A replacement entry for the S-function table is written (98). Afterwards, remapping is performed on the mapped input data, using the S-function lookup table written with the mapping, and the selected output mapping is passed along with the input mapping and used for added unpredictability, although simplification may be performed. The S-function look-up table is stored in hardware registers (the sum of all register bits will be 2048 bits to implement eight S-functions) or in RAM. The values stored in this memory must be precomputed from the application map, in a sense, this guarantees the required resistance against 2 nd order DPA attacks. Each resulting mapped input value is used to address the register file and the mapped value is stored in selected four register bits.
为了数据展开而引入的随机数据位(如修正92中的95)通常费用昂贵。在这种情况下(假设S函数输出映射是无关的),则因为每次都是非线性相关的复制结果作为异或操作的输入,因此可以省去。由于多个密钥为复制结果,因此,刷新的S函数输出映射需要确保这一非相关性。还要考虑的是每个密钥位被使用差不多平均14次。The random bits of data introduced for data unwrapping (
用于每一个DES循环(每次加密法应用有16个循环)的新的一组S函数表的计算包括对应于每个输出位获取两个随机位(每个循环有32个),这是非常浪费的。在硬件中,有可能实现对应加密的每个循环重新计算S函数表。由于这项支出,一个典型的执行程序可以不变更地重复使用这些查询表,以进行不止一个的查询,并且甚至可能同样地进行不止一个的加密算法的调用。这就违反了前面的在不同的循环中输出数据位的输出映射之间非线性相关的假设,并且必须注意确定,这在什么情况下会降低可行的DPA攻击的最小阶次。此外,旁生信号的强度与内部数据位的使用次数有关,并且在确定信号的泄漏是否足够小时必须要考虑这一情况。在某些情况下,保持随机地重映射是必要的,尤其是对一个密钥位(它被多次使用)。另一个由这种简化导致的限制是,一个S函数的一个数据位的输入映射在更换查询表内容之前的每次使用中都是相同的。不对独立数据位所使用的映射(包括密钥)进行约束,而是必须用可应用于对S函数的输入的一对映射来替换对该数据的映射。这应当分两步完成(通过两个独立的异或操作),分别应用两个映射的组合(一个应用于S函数,一个应用于数据)。Computation of a new set of S-function tables for each DES cycle (16 cycles per cipher application) involves obtaining two random bits for each output bit (32 cycles per cycle), which is Very wasteful. In hardware, it is possible to recalculate the S-function table for each cycle of encryption. Because of this expense, a typical executive may reuse these lookup tables unchanged for more than one lookup, and possibly even more than one encryption algorithm call as such. This violates the previous assumption of a non-linear correlation between the output maps of the output data bits in different cycles, and care must be taken to determine under what circumstances this reduces the minimum order of a viable DPA attack. Furthermore, the strength of the side signal is related to the number of uses of the internal data bits, and this must be taken into account when determining whether the leakage of the signal is small enough. In some cases, it is necessary to keep the remapping random, especially for a key bit (which is used more than once). Another limitation caused by this simplification is that the input mapping of a data bit of an S-function is the same in every use before changing the content of the lookup table. There is no constraint on the mapping (including the key) used for individual data bits, but the mapping to the data must be replaced by a pair of mappings applicable to the input to the S-function. This should be done in two steps (via two separate XOR operations), applying the combination of the two maps (one to the S-function and one to the data) respectively.
对2nd阶防御增加的复杂性,除了对修改后的中心密码器外部的数据所使用的映射,总计为将近异或操作和用经过可变映射的S函数输入和输出的三倍,包括随机数据的使用。外表上,被应用于其上的数据必须用映射后的数据和映射选择数据替换,必须对密钥执行初始映射,接着,对其执行递增映射,并对其进行存储,其中还存储了附加映射数据。本例中,映射后数据的存储需求增至三倍。输出数据,在这里是用于DES的一个密钥,必须以这种形式储存,以备将来使用,除了输出位之间的输出映射的相关性,以及由于可以利用一个刷新的映射选择,通过对输出执行递增映射,可以消除相对静态的S函数映射。The added complexity for 2nd order defenses, other than the mapping used for data external to the modified central cipher, amounts to nearly three times the XOR operation and the S-function input and output with variable mapping, including random Use of Data. Externally, the data applied to it must be replaced with the mapped data and the mapped selection data, an initial mapping must be performed on the key, then an incremental mapping must be performed on it, and stored, where additional mappings are stored data. In this example, the storage requirements for the mapped data are tripled. The output data, here a key for DES, must be stored in this form for future use, except for the output mapping dependencies between the output bits, and since it is possible to utilize a refreshed mapping selection via the pair The output performs incremental mapping, which can eliminate the relatively static S-function mapping.
值得注意的是,直到考虑了S函数,具有映射选取数据的隐蔽数值的使用与多重“共享”-相当于数据通过使用运算法则被结合以确定原始数据-之间的区别表面上不是明显的。特别是,对映射选取数据执行的操作等于这一点对于那些对映射后数据执行的操作是相似的。然而,对于S函数(和任何无关于或更复杂于映射操作的函数),可以看到应用于映射选取数据的运算与映射的选取有关,并与算法的运算间接相关。在对S函数的输入输出的映射过程中,映射选取数据的处理完全不同于加在由原始数据得来的“共享”上的相似操作。It is worth noting that until the S-function is considered, the distinction between the use of concealed values with mapped selected data and multiple "sharing" - equivalent to data being combined using algorithms to determine the original data - is not apparent on the surface. In particular, operations performed on mapped selection data are similar to those performed on mapped data. However, for the S-function (and any function not related to or more complex than mapping operations), it can be seen that the operations applied to the selected data of the mapping are related to the selection of the mapping, and indirectly related to the operation of the algorithm. In the process of mapping the input and output of the S-function, the processing of the mapping selected data is completely different from the similar operation on the "share" obtained from the original data.
优点advantage
增加DPA攻击阶次的方法(本质上是被观测信号中被续被组合起来以得到原始数据的点的数量)。这就使得该攻击更加烦琐和复杂。A method of increasing the order of the DPA attack (essentially the number of points in the observed signal that are combined to obtain the original data). This makes the attack more cumbersome and complex.
通过扩展以前关于隐蔽所有(或至少是较多)的可能存在的映射以允许核心运算保持不变的概念,使得攻击者作业更加困难。出于经济的原因,使应用于一个数据位的映射选取方法与另一个数据位的映射选取方法相关联,大量的可能存在的映射可以实现合理的简化,而不会导致过多的数据泄漏。By extending the previous concept of concealing all (or at least more) of the possible mappings to allow core operations to remain unchanged, the attacker's job is made more difficult. For economical reasons, by associating the mapping selection method applied to one data bit with the mapping selection method of another data bit, the large number of possible mappings can be reasonably simplified without causing excessive data leakage.
进一步地,从有噪声的旁生信道监测中提取原始数据所必须的监测次数被充分地增加,比硬件屏蔽实现效果更加明显,提供的硬件屏蔽足够高。这一增加甚至可以有效应用于高阶DPA攻击。Furthermore, the number of monitoring times necessary to extract the original data from the noisy side channel monitoring is sufficiently increased, and the effect is more obvious than that achieved by hardware masking, and the hardware masking provided is sufficiently high. This increase can even be effectively applied to high-order DPA attacks.
再进一步,所需的数据存储和处理没有某些相关方案中增加的那么多。这些方案的一个例子是,每个数据位由一对数据位代表,第一个值是随机选择的并且当第一位是零时第二个是原始位,当第一位是一时是它的布尔变换(二进制“异或”)。Still further, the required data storage and processing is not as much increased as in some related schemes. An example of these schemes is that each data bit is represented by a pair of data bits, the first value is chosen at random and the second is the original bit when the first bit is zero, and its value when the first bit is one Boolean transformation (binary "exclusive OR").
又进一步,包含密码组分的系统保持不受影响(例如,协议保持不变),虽然密码选择被最优化以使本技术的使用容易实现。Still further, the system containing the cryptographic components remains unaffected (eg, the protocol remains the same), although the cryptographic choices are optimized to facilitate the use of the technology.
更进一步,这一技术可以应用于对称(具有单一、共用的密钥)和不对称(具有不同而相关的密钥)密码。Furthermore, this technique can be applied to both symmetric (with a single, shared key) and asymmetric (with different but related keys) ciphers.
此外,本技术还可以应用于与其它用于提高DPA防御能力的技术的结合体中,通过使用一个复杂的函数连续修正密钥,在加密和解密中采取相同的形式。Furthermore, this technique can also be applied in combination with other techniques used to improve DPA defenses by continuously modifying the key using a complex function that takes the same form in both encryption and decryption.
Claims (25)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16104799P | 1999-10-25 | 1999-10-25 | |
| US60/161,047 | 1999-10-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN1413398A true CN1413398A (en) | 2003-04-23 |
Family
ID=22579586
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN00817503A Pending CN1413398A (en) | 1999-10-25 | 2000-10-19 | Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals |
Country Status (8)
| Country | Link |
|---|---|
| EP (1) | EP1226681A2 (en) |
| JP (1) | JP2003513490A (en) |
| CN (1) | CN1413398A (en) |
| AU (1) | AU773982B2 (en) |
| CA (1) | CA2388971A1 (en) |
| EA (1) | EA003874B1 (en) |
| WO (1) | WO2001031422A2 (en) |
| ZA (1) | ZA200202798B (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101048969B (en) * | 2004-10-28 | 2012-04-04 | 耶德托公司 | Method and system for scrambling a cryptographic function |
| CN1989726B (en) * | 2004-07-22 | 2012-09-26 | 茂夫公司 | Method and apparatus for performing encrypted calculations |
| CN102790677A (en) * | 2011-05-17 | 2012-11-21 | Nxp股份有限公司 | Authentication method |
| CN105757878B (en) * | 2016-02-19 | 2018-07-27 | 广东美的暖通设备有限公司 | The encoding and decoding method, apparatus and air conditioner of communication data |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7142670B2 (en) * | 2001-08-14 | 2006-11-28 | International Business Machines Corporation | Space-efficient, side-channel attack resistant table lookups |
| CN1640051B (en) * | 2002-03-07 | 2011-05-18 | 艾斯奥托公司 | Method for making safe an electronic cryptography assembly with a secret key |
| FR2842376B1 (en) * | 2002-07-10 | 2004-09-24 | Somfy | SELECTIVE COMMUNICATION BETWEEN OBJECTS |
| EP1457858A1 (en) * | 2003-03-14 | 2004-09-15 | SCHLUMBERGER Systèmes | Method for securing an electronic system comprising a cryptoprocessor |
| DE10341096A1 (en) * | 2003-09-05 | 2005-03-31 | Giesecke & Devrient Gmbh | Transition between masked representations of a value in cryptographic calculations |
| WO2005057927A1 (en) * | 2003-11-13 | 2005-06-23 | Magiq Technologies, Inc | Qkd with classical bit encryption |
| KR101061906B1 (en) * | 2004-02-19 | 2011-09-02 | 삼성전자주식회사 | Basic Computing Device and Method Safe for Power Analysis Attack |
| EP1596278A1 (en) * | 2004-05-11 | 2005-11-16 | Axalto SA | Method to protect a cryptographic unit through homographic masking |
| DE102004043243A1 (en) * | 2004-09-07 | 2006-03-23 | Comvenient Gmbh & Co. Kg | Method for protecting keys |
| EP1646174A1 (en) * | 2004-10-07 | 2006-04-12 | Axalto SA | Method and apparatus for generating cryptographic sets of instructions automatically and code generation |
| JP2008181225A (en) * | 2007-01-23 | 2008-08-07 | Toshiba Corp | IC card |
| WO2009109884A1 (en) | 2008-03-05 | 2009-09-11 | Koninklijke Philips Electronics N.V. | Cryptographic system |
| EP2620890A1 (en) * | 2012-01-25 | 2013-07-31 | Gemalto SA | Method for detecting a fault injected in hardware registers of an electronic device |
| DE102012018924A1 (en) | 2012-09-25 | 2014-03-27 | Giesecke & Devrient Gmbh | Side channel protected masking |
| US9009495B2 (en) | 2013-06-28 | 2015-04-14 | Envieta, LLC | High speed cryptographic combining system, and method for programmable logic devices |
| JP6264935B2 (en) * | 2014-02-24 | 2018-01-24 | 大日本印刷株式会社 | Authentication method for information processing apparatus |
| CN104104587B (en) * | 2014-04-18 | 2017-12-26 | 天津大学 | A kind of rear uniformity analysis method of certified mail protocols |
-
2000
- 2000-10-19 JP JP2001533494A patent/JP2003513490A/en active Pending
- 2000-10-19 CN CN00817503A patent/CN1413398A/en active Pending
- 2000-10-19 EP EP00986837A patent/EP1226681A2/en not_active Withdrawn
- 2000-10-19 EA EA200200468A patent/EA003874B1/en not_active IP Right Cessation
- 2000-10-19 AU AU23014/01A patent/AU773982B2/en not_active Ceased
- 2000-10-19 CA CA002388971A patent/CA2388971A1/en not_active Abandoned
- 2000-10-19 WO PCT/ZA2000/000192 patent/WO2001031422A2/en not_active Ceased
-
2002
- 2002-04-10 ZA ZA200202798A patent/ZA200202798B/en unknown
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1989726B (en) * | 2004-07-22 | 2012-09-26 | 茂夫公司 | Method and apparatus for performing encrypted calculations |
| CN101048969B (en) * | 2004-10-28 | 2012-04-04 | 耶德托公司 | Method and system for scrambling a cryptographic function |
| CN102790677A (en) * | 2011-05-17 | 2012-11-21 | Nxp股份有限公司 | Authentication method |
| CN102790677B (en) * | 2011-05-17 | 2016-03-09 | Nxp股份有限公司 | Authentication method |
| CN105757878B (en) * | 2016-02-19 | 2018-07-27 | 广东美的暖通设备有限公司 | The encoding and decoding method, apparatus and air conditioner of communication data |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2301401A (en) | 2001-05-08 |
| EA200200468A1 (en) | 2002-10-31 |
| WO2001031422B1 (en) | 2002-01-10 |
| EP1226681A2 (en) | 2002-07-31 |
| WO2001031422A2 (en) | 2001-05-03 |
| JP2003513490A (en) | 2003-04-08 |
| WO2001031422A3 (en) | 2001-12-13 |
| EA003874B1 (en) | 2003-10-30 |
| CA2388971A1 (en) | 2001-05-03 |
| ZA200202798B (en) | 2003-09-23 |
| AU773982B2 (en) | 2004-06-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1413398A (en) | Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals | |
| US12399709B2 (en) | Obfuscation for protection of streaming media and other data flows | |
| Kong et al. | Deconstructing new cache designs for thwarting software cache-based side channel attacks | |
| US9569176B2 (en) | Deriving entropy from multiple sources having different trust levels | |
| US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
| US20070237327A1 (en) | Method and System for High Throughput Blockwise Independent Encryption/Decryption | |
| Backlund et al. | Secret key recovery attack on masked and shuffled implementations of crystals-kyber and saber | |
| CN112714235A (en) | Image encryption method based on filling curve and adjacent pixel bit scrambling | |
| US9722778B1 (en) | Security variable scrambling | |
| KR102169369B1 (en) | Countermeasure method of first-order side-channel attack on lightweight block cipher and apparatus using the same | |
| Andrade et al. | Lyra2: Efficient password hashing with high security against time-memory trade-offs | |
| Rajagopalan et al. | Survey and analysis of hardware cryptographic and steganographic systems on FPGA | |
| US11296869B2 (en) | Apparatus and method for unbreakable data encryption | |
| CN116488814A (en) | FPGA-based data encryption secure computing method | |
| WO2017000726A1 (en) | Key transformation method, apparatus, and terminal | |
| WO2021129470A1 (en) | Polynomial-based system and method for fully homomorphic encryption of binary data | |
| CN1592190A (en) | Hardware cryptographic engine and encryption method | |
| Chhabra et al. | Enhancing data security using obfuscated 128-bit AES algorithm-an active hardware obfuscation approach at RTL level | |
| US20100241872A1 (en) | Partially Reversible Key Obfuscation | |
| US9594918B1 (en) | Computer data protection using tunable key derivation function | |
| Shoukat et al. | Randomized substitution method for effectively secure block ciphers in IOT environment | |
| CN109190414A (en) | A kind of full homomorphism for multiplier obscures method | |
| Orucho et al. | Review of algorithms for securing data transmission in mobile banking | |
| Hafsa et al. | A lightweight and robust block cipher algorithm for real-time applications | |
| Mohua | A review on the integration of cryptography and steganography for enhanced information security |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
| WD01 | Invention patent application deemed withdrawn after publication |