WO2011057991A1 - Circuit electronique de faible complexite protege par masquage personnalise - Google Patents

Circuit electronique de faible complexite protege par masquage personnalise Download PDF

Info

Publication number
WO2011057991A1
WO2011057991A1 PCT/EP2010/067064 EP2010067064W WO2011057991A1 WO 2011057991 A1 WO2011057991 A1 WO 2011057991A1 EP 2010067064 W EP2010067064 W EP 2010067064W WO 2011057991 A1 WO2011057991 A1 WO 2011057991A1
Authority
WO
WIPO (PCT)
Prior art keywords
masks
circuit
mask
circuit according
linear
Prior art date
Application number
PCT/EP2010/067064
Other languages
English (en)
Inventor
Sylvain Guilley
Jean-Luc Danger
Original Assignee
Institut Telecom - Telecom Paristech
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institut Telecom - Telecom Paristech filed Critical Institut Telecom - Telecom Paristech
Priority to EP10773354.5A priority Critical patent/EP2499773B1/fr
Priority to ES10773354T priority patent/ES2571225T3/es
Priority to JP2012538299A priority patent/JP5987250B2/ja
Priority to CN201080056401.9A priority patent/CN102648600B/zh
Priority to US13/509,494 priority patent/US9197412B2/en
Priority to CA2780719A priority patent/CA2780719C/fr
Priority to KR1020127015118A priority patent/KR101783495B1/ko
Publication of WO2011057991A1 publication Critical patent/WO2011057991A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Definitions

  • a masking-protected electronic circuit that takes advantage of circuit-specific customization so as to reduce the scope of the observation attacks and reduce the cost of implementing the protection.
  • the invention applies in particular to the field of protection circuits that handle confidential data whose cryptography circuits are an example.
  • the activity of the electronic circuits is observable during their operation through physical quantities such as power consumption, calculation time or electromagnetic radiation.
  • the dissipation of these physical quantities may jeopardize the security of systems processing secret data protected in particular by cryptographic methods.
  • secret data is protected using a symmetric cryptographic algorithm
  • the robustness of the protection lies in the ability to keep the encryption key secret.
  • the dissipation of physical quantities may allow a third party to obtain said key by implementing appropriate attacks and, consequently, to access the secret data.
  • An attack by observing physical quantities dissipated by said circuit is usually referred to simply as an observation attack.
  • an attacker a third party using observation attack methods to access data that is not intended for him is called an attacker, while the physical quantities dissipated are called leaks or hidden channels.
  • Attacks by observing the consumption of the circuits can also be used by an attacker, for example by using DPA type methods, this type of attack being described in the article by PC Kocher, J. Jaffe and B. Jun entitled Differential Power Analysis, Proceedings of CRYPTO'99, Volume 1666 LNCS, pp. 388-397, Springer-Verlag, 1999.
  • Some countermeasures only increase the number of steps needed for an attack to succeed. This is the case, for example, countermeasure methods using a non-functional noise generator implemented next to the calculation logic.
  • PRNG pseudo random number generator
  • PRNG an acronym derived from the English expression "Pseudo-Random Number Generator”
  • PRNG pseudo random number generator
  • any measurement collected by an attacker is disturbed by a noise that is superimposed on the hidden channel.
  • the attacks become more complex because, in practice, more measures are needed to amplify the expected signal-to-noise ratio for the countermeasure technique to be effective.
  • Other countermeasures techniques protect against hidden masking observation attacks and usually involve during processing to protect a random or pseudo-random variable called mask. Said variable is used so that the result of the calculation does not depend on said mask, but the leakage of information through the hidden channels depend on it.
  • masking countermeasures techniques are implemented by interleaving the sensitive data x transiting within the cryptography circuit with the mask variable m, this interleaving being used to hinder the exploitation of the hidden channel by an attacker.
  • the sensitive data or variables x correspond to variables that are both fully predictable and sharing non-zero mutual information with the secret.
  • This technique amounts to modifying the representation of the sensitive data x, to the quantity x ⁇ m corresponding to the Vernam encryption of x by applying the key m using the operation ⁇ designating an operation of the exclusive OR type also designated by the acronym XOR in the following description.
  • the mask may be conditioned by a signature specific to each circuit in which case it is shown that the leak of the key is encrypted by said mask. This specificity avoids so-called “cataloging" attacks where circuit clones can be exploited to model leaks.
  • This duplication involves a significant increase in the complexity of the circuit compared to an unmasked implementation.
  • Second-order attacks exploit the fact that the variance of the leak depends on the sensitive variable x.
  • the estimation of the variance is carried out either by combining the information leaks at the two dates when x ⁇ m and m are used, or by estimating the joint torque distribution (x ⁇ m, m) when the mask and the masked data are used simultaneously.
  • Second-order attacks based on variance estimation are called zero-offset attacks and are described in the article by E. Peeters, F. Standaert, N. Donckers and JJ. Quisquater titled Improved Higher Order Side-Channel Attacks with FPGA experiments, Josyula R. Rao and Berk Sunar editors, Cryptography Hardware and Embedded Systems - Proceedings of CHES, Volume 3659 LNCS, pages 309-323. Springer-Verlag, 2005.
  • An object of the invention is in particular to overcome the aforementioned drawbacks.
  • the subject of the invention is a masking-protected cryptographic circuit, said circuit comprising means for encrypting binary words using at least one key k r c , means for applying linear processes and nonlinear treatments to said words, means for masking said words.
  • the binary words are unmasked upstream of the non-linear processes by using a mask k r 'and masked downstream of said processes by using a mask k r + ', the masks k r 'and k r + i' being part of a set of masks specific to each instance of the circuit.
  • the nonlinear processing, unmasking upstream nonlinear processing and hiding downstream of linear processing are implemented in a ROM type memory.
  • the function P (x) is a circular permutation, a secondary mask of index r + 1 being deduced from a secondary mask of index r by circularly permuting the mask k r 'with a number of bits d chosen.
  • the main masks k ' are of length W and composed of an integer number of sub masks of length S, the secondary masks k r 'being generated by permutation of said sub-masks.
  • r is the round number
  • i is a 4-bit random number
  • Q is an integer for controlling the permutation rate between two consecutive secondary masks k r 'and k r + ';
  • S is the length of a sub-mask expressed in bits
  • W is the length of the main mask expressed in bits
  • the main encryption mask k ' is modified regularly by randomly choosing a mask k' from a set of main masks stored in the circuit.
  • the set of main masks stored in the circuit is different from one circuit to another.
  • the set of main masks are obtained using a mask generation circuit intrinsic to the component.
  • the Hamming distance between two masks k r 'and k r + ' is substantially equal to S / 2.
  • the Hamming weight of a mask k ' is, for example, substantially equal to W / 2.
  • non-linear processing is implemented using S-boxes.
  • Non-linear processing is applied, for example, after linear processing in the same combinatorial block just before sampling the result in a register.
  • the circuit is, for example, implemented in an FPGA.
  • the set of main masks is obtained, for example, using the modification of the configuration file of the FPGA circuit.
  • the circuit comprises, for example, dynamic reconfiguration means for updating all the main masks and the tables implementing the parts of the circuit corresponding to non-linear processing.
  • the circuit is implemented in an ASIC.
  • the invention has the particular advantage of not significantly increasing the complexity of the circuit by the implementation of the protection by masking, particularly concerning the parts of the circuit performing non-linear processing.
  • the invention also has the advantage of allowing the use of a predetermined mask set of reduced size, said game being able to be different from one circuit to another so as to make the protection unique between circuits coming from the same chain of production.
  • FIG. 1 shows the example of a Feistel function protected by masking
  • FIG. 2 gives an example of a masking protected cryptographic circuit, the nonlinear parts being unmasked
  • FIG. 3 illustrates an implementation of the masked AES algorithm according to the invention.
  • Figure 1 shows the example of a masked Feistel function.
  • the principle of masking consists of modifying the representation of the sensitive variables x into a redundant representation.
  • This representation comprises at least two parts, one part corresponding to the hidden sensitive data denoted x ⁇ m and a part corresponding to the mask m.
  • a round is also called “round” in English and designates a calculation cycle in which at least two types of transformations have been executed, one linear and the other non-linear, also called substitution transformation.
  • the linear transformation aims to mix the symbols or groups of symbols presented at its entry following predefined rules and thus create diffusion.
  • substitution transformation is usually carried out using substitution tables called S-boxes and contributes to breaking the linearity of the encryption structure.
  • S-boxes substitution tables
  • the pair of parts (x ⁇ m, m) is transformed into a pair (round (x ⁇ m '), m'), the function round () designating the functional operation of a round, whereas m ' is the new round mask.
  • the function S '() thus has twice as many entries as the function S ().
  • the implementation of the masking for nonlinear S () functions amounts to adding the square of the complexity of S.
  • FIG. 1 shows the example of a masking-protected Feistel function. This type of function is used in particular for DES type block ciphering, an acronym derived from the English expression "Data Encryption Block”.
  • the implementation of the masking of the sensitive data x requires, as previously explained, a two-part processing 100, 101.
  • the first part 100 corresponds to the treatments performed on the part x ⁇ m and the second part 101 corresponds to the treatments performed on the part m.
  • Encryption of sensitive data is performed by applying a key k to the block to be encrypted followed by an S-Box function S () and the application of a linear function L ().
  • the digital signals to be processed by the two channels 100, 101 of the circuit are synchronized by using a register 102, 103 for each channel.
  • the first channel 100 processes the part comprising the x masked sensitive data, that is to say x ⁇ m.
  • the encryption key k is applied using an XOR gate 106.
  • the resulting signal corresponds to x ⁇ m ⁇ k.
  • An S-box 107 then makes it possible to obtain the signal S (x ⁇ m ⁇ k) 1 17 to which a linear function L 108 is applied.
  • the second channel 101 processes the part corresponding to the mask m.
  • the application of a nonlinear function S () 107 on a masked signal usually involves its consideration in the processing of the second part.
  • the function S '() defined by the expression (4) is implemented 1 13 by using two S-Boxes and 2 XOR gates 109, 1 12.
  • the function takes as input on the one hand the mask M 105 and on the other hand the signal x ⁇ m ⁇ k 1 resulting from the application of the encryption key k at the level of the first channel 100.
  • a linear function L () 1 14 On the signal 1 16 resulting from the application of S '() is applied a linear function L () 1 14 so as to take into account the linear function 108 of the first channel 100.
  • the function S '() can be implemented in a ROM type memory so that it is protected against observation attacks. It is indeed particularly difficult to observe, for example, the variations in power consumption within such a memory.
  • FIG. 2 gives an example of a masking protected cryptographic circuit on which the invention is based. It should be noted that there is no longer a mask path which, advantageously, makes second-order attacks like the one described above impossible.
  • a memory is considered a black box protected against information leakage. Only entries or exits are vulnerable.
  • One of the objectives of the circuit described is to take advantage of an implementation in memory with a custom masking method of moderate complexity.
  • the calculation elements can be scheduled so as to position the non-linear parts as far as possible from the output of the registers.
  • a correlated attack is all the less effective if it is conducted deeply in the combinatorial logic of the circuit.
  • FIG. 2 shows an example of implementation of the invention in a circuit based on the use of an SPN network, acronym from the English expression "Substitution Permutation Network”. This type of circuit is also called Shannon's SP network. In this example a two-round encryption is considered. Binary words of index r denoted k r 'and k r c are respectively used as masking key and encryption key.
  • the circuit shown as an example can be broken down into several stages, namely an input stage, a stage corresponding to the first round, a stage corresponding to the second round and an output stage.
  • the data to be encrypted is presented at the input of the input stage, for example in the form of 32-bit words divided into four subwords of 8 bits.
  • Input masking is applied by using the 32-bit key k 0 ', said key being divided into four sub-masks of 8 bits k 0 ' [0], k 0 '[1], k 0 '[2], k 0 ' [3], said sub-masks being applied to the four subwords of 8 bits using four XOR gates 200, 201, 202, 203.
  • a register 204 takes as input the four 8-bit subwords resulting from the masking by the key k 0 '. This register makes it possible to synchronize the different bit streams, a stream corresponding to a subword of 8 input bits.
  • a first encryption key k 0 c divided into four 8-bit subkeys rated k 0 c [0], k 0 c [1], k 0 c [2], k 0 c [3], is applied to level of four XOR gates 206, 206, 207, 208 on the hidden subwords presented at the output of said register 204.
  • the key k 0 c is associated with the first round of encryption.
  • the four data subwords masked by k 0 'and encrypted by k 0 c are then respectively processed by four processing blocks 209, 210, 21 1, 212 implemented in a memory, for example of the ROM type. It should be noted that the complexity of implementing functions, in particular non-linear, in a ROM memory increases exponentially with the number of entries. Cryptographic algorithms incorporate this constraint and treat words to Encrypt smaller subwords at the non-linear function to minimize implementation complexity.
  • the 8-bit subwords are unmasked by applying the four sub-masks of 8 bits k 0 '[0], k 0 ' [1], k 0 '[2], k 0 '[3] using XOR gates 214.
  • a non-linear function is then applied, an S-box 21 3 can be used to implement it.
  • an XOR gate 21 is used to mask the output data, so that the sensitive data is masked at the output of the first-round stage by a mask k- cut into four sub-masks kV [0], kV [1], k-i '[2], ki' [3].
  • a linear transformation L 0 () is applied at the output of the round, which must be taken into account for the masking within the processing blocks. For this, the masking is performed using a modified mask L 0 "1 (k'-i) of the mask k It is divided into four sub-masks modified by 8 bits the transformation L 0 "1 () corresponding to the inverse of the linear transformation L 0 () 21 6.
  • the transformation L 0 () is applied to the binary words presented at the output of said blocks.
  • the result of the first round of encryption corresponds to the binary subwords at the output of the linear transformation 21 6, said subwords corresponding to sensitive data masked by the mask k and thus protected against attacks by observations.
  • the entry of the second round is the exit of the first round and corresponds to the four subwords of 8 bits resulting from the linear transformation 21 6 of the first round. These four subwords are presented at the input of a register 21 7 for synchronizing the different bitstreams.
  • the four data subwords hidden by k- and encrypted by ki c are then respectively processed by four processing blocks 222, 223, 224, 225 implemented in a memory, for example, ROM type.
  • the data are unmasked by applying the key k- ⁇ 'using XOR gates.
  • a non-linear function is then applied, an S-box that can be used in each block to implement it.
  • an XOR gate is used to mask the output data, so that the sensitive data is masked at the output of the second round stage by the mask k ' 2 .
  • the masking is performed using a modified mask Li "1 (k ' 2 ), the transformation l_i " 1 () corresponding to the inverse of a linear transformation
  • the transformation l_i () is applied to the binary subwords presented at the output of the processing blocks 209, 21 0, 21 1, 212.
  • the result of the second round of encryption corresponds to the binary subwords at the output of the linear transformation. 226, said subwords corresponding to sensitive data masked and thus protected against attacks by observation.
  • An advantage of this type of implementation is that it is possible to invert the encryption by k 0 c and the masking by k 0 'for the round 1 as well as the encryption by ki c and the masking by k- for the round 2.
  • k 2 j P (kV) the function P (bin) representing a permutation function, for example a circular permutation of the binary word bin.
  • the main mask k 1 can be drawn at random from a predefined set of main masks. A example of permutation of masks on the basis of a main mask is given in the description with the aid of FIG.
  • the small size of the set of main masks advantageously allows the use of custom masks specific to the component, that is to say, specific to each instance of the circuit.
  • the application of this signature makes it possible to reduce the scope of "cataloging" type attacks because the leaks thus become specific to a circuit and no longer to a type of circuit.
  • the high-order attacks HO-DPA acronym coming from the English expression “higher-order differential power analysis”, as for example those of type "zero-offset" are in turn challenged by the fact that there is no more specific mask path. It is therefore no longer possible to consider the couple (masked variable, mask).
  • Figure 3 illustrates an implementation of the masking protected AES algorithm.
  • the AES block cipher algorithm an acronym derived from the English expression "Advanced Encryption Standard", is particularly powerful for keeping binary messages secret.
  • the message to be protected is processed by binary words of fixed size, said words possibly being 128, 192 or 256 bits.
  • the encryption keys are of length W, W being equal to the length of the words to be processed.
  • the algorithm comprises three processing phases, each phase being composed of one or more rounds.
  • the first phase R1 corresponds to an initialization round
  • the second phase R2 corresponds to N rounds using the same structure iteratively
  • the third phase R3 corresponds to a final round.
  • the principle of these three phases specific to the AES algorithm is known to those skilled in the art.
  • the circuit is for example an FPGA or ASIC circuit.
  • a masking protection according to the invention can be introduced so as to protect against attacks by observation of the hidden channels the AES cryptography circuit implementing the three phases R1, R2, R3.
  • a random number generator 300 is used to generate binary words i, for example of n bits, where n is the entropy of the masking. In the example described in the following description, n is represented on 4 bits.
  • a counter CTR 301 increments a variable r corresponding to the current round number.
  • the protected circuit comprises a memory area 303 which makes it possible in particular to store a set of constant masks of equal length to that of the words to be encrypted, ie 128 bits in this example.
  • main masks stored in the component may be different from one component product to another, so as to obtain a differentiated protection and avoid "cataloging attacks”.
  • a principal mask k 'of length W is composed of an integer number of sub-masks of length S, W being a multiple of S.
  • secondary masks may be generated, for example by permuting the sub-masks composing the main mask.
  • a different secondary mask can be used for each round.
  • variable i is random and can be generated before each encryption.
  • d S bits for example, that is to say a length corresponding to a sub mask. It is also possible to switch the index mask r by an integer number of sub-masks.
  • r is the round number
  • i is a 4-bit number randomly drawn by the generator 300;
  • Q is an integer for controlling the permutation rate between two consecutive secondary masks k r 'and k r + ';
  • S is the length of a sub-mask expressed in bits
  • W is the length of the mask k 'expressed in bits
  • the main mask may, for example, be modified during an encryption procedure by randomly drawing a new value of i.
  • the resistance to observation attacks can be optimized by choosing the main masks k 'such that the secondary masks are independent of each other, for example by ensuring that the Hamming distance between k r ' and k r + 'is substantially equal to S / 2.
  • An average balancing of the masks also makes it possible to reinforce the protection, said balancing being obtained by ensuring that the Hamming weight of a secondary mask and therefore of the main mask is substantially equal to W / 2.
  • the words to be encrypted are 128-bit words and are presented at the input of the coder in a register 302.
  • the result of the masking is then encrypted by applying an encryption key of length W denoted k 0 c using a second gate XOR 305.
  • the word masked by k 0 'and encrypted by k 0 c is stored into a register 306, said register corresponding to the inlet of the part of the circuit embodying the second processing phase R2, said phase corresponding to an iterative encryption loop, an iteration corresponding to a round of processing.
  • the word stored in the register 306 is processed by a control module 307 cutting the 128-bit word into 16 subwords of 8 bits.
  • the control module also has the role of selecting the mask k r 'to be used to unmask the data at the beginning of the round, one round being applied to each iteration of index r.
  • the 16 subwords of 8 bits are processed using nonlinear function modules 308, said modules being implemented in a ROM-type memory, for example.
  • modules unmask the subwords presented at their input, apply a non-linear processing 310 to them for example by using S-boxes, and hide the result of said processing.
  • These modules use for the index round r the sub-masks k r '[0], k r ' [1], k r '[15] for the unmasking of input 309 and the sub-masks k r + i' [0], k r + i '[1], k r + i' [15] for output masking 31 1.
  • the 16 S-boxes can be pre-computed in order to be masked by the sub-masks k r '[] and then unmasked by the sub-masks k r + ' [].
  • the 16 subwords at the output of the nonlinear processing modules are then directed to a second control module 312 whose function is in particular to concatenate said words into a 128-bit word.
  • the 128-bit word is then processed by two linear processing modules, a first realizing a mixture of the lines 313 usually designated by the English expression "Shift Rows” and a second treatment making a mixture of the columns 314, a treatment usually designated by the Anglo-Saxon expression "Shift Columns”.
  • These two linear treatments can be modeled by a function L r ().
  • An encryption using a key k r c is applied to the 128-bit word resulting from said linear processing, using an XOR function 315.
  • a mask k in t 'of 128 bits is applied 316.
  • the masks k in t' are stored 303 after being pre-calculated using the expression: (6)
  • a final unmasking is performed by applying a mask k end of 128 bits using an XOR function 318.
  • the word obtained at the end of the final round, that is to say at the end of the processing phase R3 corresponds to the final result of the AES encryption.
  • the resulting encrypted message is written to an output register 319.
  • FIG. 4 gives an example of a masking protected cryptographic circuit whose non-linear processing is positioned at the end of the round.
  • FIG. 4 gives an example of a masking protected cryptographic circuit implementing this principle.
  • This circuit example is similar to the one presented with the help of figure 2.
  • the encryption is realized using a Feistel architecture and is realized thanks to the implementation of a stage of entry, of two round floors called round 1 and round 2, then an exit floor.
  • the non-linear processes are placed at the end of the cone of logic. Linear treatments are therefore placed at the beginning of the round.
  • a linear processing corresponding to an initial diffusion function Li () is applied 401.
  • a linear processing corresponding to a diffusion function L 0 () is applied 402.
  • the inverse Li "1 () of the initial diffusion function is applied 400 at the output of the input stage and a final diffusion function Li () is applied 403 to the input of the output stage.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention a pour objet un circuit de cryptographie protégé par masquage, ledit circuit comportant des moyens pour chiffrer des mots binaires à l'aide d'au moins une clé kr c, des moyens pour appliquer des traitements linéaires (216) et des traitements non linéaires (226) auxdits mots et des moyens pour masquer lesdits mots. Les mots binaires sont démasqués (214) en amont des traitements non linéaires en utilisant un masque kr i et masqués (215) en aval desdits traitements en utilisant un masque kr+1 i, les masques kr i et kr+1 i étant choisis dans un ensemble de masques étant propres à chaque instance du circuit.

Description

Circuit électronique de faible complexité protégé par masquage personnalisé
L'invention concerne un circuit électronique protégé par masquage et tirant parti d'une personnalisation propre au circuit de façon à réduire la portée des attaques par observation et réduire le coût d'implémentation de la protection. L'invention s'applique notamment au domaine de la protection des circuits qui manipulent des données confidentielles dont les circuits de cryptographie sont un exemple.
L'activité des circuits électroniques est observable pendant leur fonctionnement au travers des grandeurs physiques telles que la consommation de puissance, le temps de calcul ou le rayonnement électromagnétique.
Ces quantités physiques dépendent à la fois des architectures de calcul et des données manipulées à l'intérieur du circuit. Des informations sur les données traitées sont donc indirectement disponibles à l'extérieur du circuit par l'observation des dites quantités appelées canaux cachés ou canaux auxiliaires.
La dissipation de ces quantités physiques peut remettre en cause la sécurité de systèmes traitant des données secrètes protégées notamment par des méthodes de cryptographie. Ainsi, si des données secrètes sont protégées en utilisant un algorithme de cryptographie symétrique, la robustesse de la protection réside dans la capacité à garder la clé de chiffrement secrète. La dissipation des quantités physiques peut permettre à un tiers d'obtenir ladite clé en mettant en œuvre des attaques adaptées et, par conséquent, d'accéder aux données secrètes. Une attaque par observation de quantités physiques dissipées par ledit circuit est habituellement qualifiée simplement d'attaque par observation. Dans la suite de la description, un tiers utilisant des méthodes d'attaque par observation pour accéder à des données ne lui étant pas destinées est appelé attaquant, les quantités physiques dissipées, quant à elles, sont appelées fuites ou canaux cachés.
Il existe aujourd'hui des attaques par observation puissantes permettant d'accéder aux données traitées par des circuits protégés. Ainsi des attaques par observation de fuites représentatives des temps de traitement des données par le circuit existent, comme celle présenté dans l'article de P. C. Kocher, J. Jaffe et B. Jun intitulé Timing Attack on Implémentations of Diffie-Hellman, RSA, DSS and Other Systems, Proceedings of CRYPTO'96, volume 1 109 LNCS, pages 104-1 13, Springer- Verlag, 1996.
Des attaques par observation de la consommation des circuits peuvent également être utilisées par un attaquant, en utilisant par exemple des méthodes de type DPA, ce type d'attaques étant décrit dans l'article de P. C. Kocher, J. Jaffe et B. Jun intitulé Differential Power Analysis, Proceedings of CRYPTO'99, volume 1666 LNCS, pages 388-397, Springer- Verlag, 1999.
Ces méthodes permettent de contourner la sécurité conférée au niveau mathématique par la cryptographie.
S'il est relativement simple d'équilibrer un algorithme en temps de temps de traitement, il est plus difficile de protéger les circuits contre l'observation instantanée de la forme d'onde de la consommation électrique.
Il existe différentes méthodes de contre-mesure pour protéger un circuit électronique contre les attaques sur les canaux cachés. Leurs caractéristiques sont notamment spécifiées par des critères communs définis au niveau international ou par des normes, comme par exemple la norme américaine FIPS 140, l'acronyme FIPS venant de l'expression anglo- saxonne « Fédéral Information Processing Standardization».
Certaines contre-mesures ne font qu'accroître le nombre de mesures nécessaires pour qu'une attaque réussisse. C'est le cas, par exemple, des méthodes de contre-mesures utilisant un générateur de bruit non-fonctionnel mis en œuvre à côté de la logique de calcul. Par exemple, un générateur de nombre pseudo aléatoire PRNG, acronyme venant de l'expression anglo-saxonne « Pseudo-Random Number Generator », initialisé aléatoirement, peut jouer ce rôle. Dans ce cas, toute mesure recueillie par un attaquant est perturbée par un bruit qui se superpose au canal caché. Les attaques deviennent plus complexes car il faut, en pratique, réaliser plus de mesures afin d'amplifier le rapport signal-sur-bruit attendu pour que la technique de contre-mesure soit efficace. D'autres techniques de contre-mesures protègent contre les attaques par observation par masquage des canaux cachés et font habituellement intervenir au cours du traitement à protéger une variable aléatoire ou pseudo-aléatoire m appelée masque. Ladite variable est utilisée de manière à ce que le résultat du calcul ne dépende pas dudit masque, mais que les fuites d'information au travers des canaux cachés en dépendent.
Ainsi, les techniques de contre-mesure par masquage sont mises en œuvre en entrelaçant les données sensibles x transitant au sein du circuit de cryptographie avec la variable de masque m, cet entrelacement servant à entraver l'exploitation du canal caché par un attaquant. Les données ou variables sensibles x correspondent à des variables étant à la fois prédictibles entièrement et partageants une information mutuelle non nulle avec le secret. Cette technique revient à modifier la représentation des données sensibles x, vers la quantité x Θ m correspondant au chiffrement Vernam de x en appliquant la clé m à l'aide de l'opération Θ désignant une opération de type OU exclusif également désigné par le sigle XOR dans la suite de la description.
Le masque peut être conditionné par une signature propre à chaque circuit auquel cas il est montré que la fuite de la clé est chiffrée par ledit masque. Cette spécificité évite des attaques dites par « catalogage » où des clones de circuits peuvent être exploités pour modéliser les fuites.
Les techniques de contre-mesures habituelles faisant appel à un masquage aléatoire résistent aux attaques directes sur la prédiction des registres attaques du premier ordre, comme par exemple aux attaques de type DPA ou aux attaques de type CPA, acronyme venant de l'expression anglo-saxonne « Corrélation Power Analysis ». Elles sont mises en œuvre, par exemple, en dupliquant les chemins de traitement de données dans le circuit.
Cette duplication implique une augmentation significative de la complexité du circuit par rapport à une implémentation non masquée.
Par ailleurs, ces contre-mesures résistent mal à des attaques d'ordre supérieur ou égal à deux. A titre d'exemple, les attaques de deuxième ordre exploitent le fait que la variance de la fuite dépend de la variable sensible x. L'estimation de la variance est réalisée soit par combinaison des fuites d'information aux deux dates où x Θ m et m d'autre part sont utilisés, soit par estimation de la distribution conjointe du couple (x Θ m, m) lorsque le masque et la donnée masquée sont utilisés simultanément. Les attaques de second ordre basées sur l'estimation de la variance sont appelées attaques « zero-offset » et sont décrites dans l'article de E. Peeters, F. Standaert, N. Donckers et J-J. Quisquater intitulé Improved Higher Order Side-Channel Attacks with FPGA experiments, Josyula R. Rao and Berk Sunar editors, Cryptographie Hardware and Embedded Systems - Proceedings of CHES, volume 3659 LNCS, pages 309-323. Springer-Verlag, 2005.
Un but de l'invention est notamment de pallier les inconvénients précités.
A cet effet l'invention a pour objet un circuit de cryptographie protégé par masquage, ledit circuit comportant des moyens pour chiffrer des mots binaires à l'aide d'au moins une clé kr c, des moyens pour appliquer des traitements linéaires et des traitements non linéaires auxdits mots, des moyens pour masquer lesdits mots. Les mots binaires sont démasqués en amont des traitements non linéaires en utilisant un masque kr' et masqués en aval desdits traitements en utilisant un masque kr+ ', les masques kr' et kr+i ' faisant partie d'un ensemble de masques propres à chaque instance du circuit.
Selon un aspect de l'invention, les traitements non linéaires, le démasquage en amont des traitements non linéaires et le masquage en aval des traitements linéaires sont implémentés dans une mémoire de type ROM.
Les masques kr' sont, par exemple, des masques secondaires déduits de masques primaires k' tels que kr+ ' = P(kr') et k0' = k', la fonction P(x) correspondant à une fonction de permutation des éléments de x, les mémoires ROM restant inchangées.
Dans un mode de réalisation, la fonction P(x) est une permutation circulaire, un masque secondaire d'indice r+1 étant déduit d'un masque secondaire d'indice r en permutant circulairement le masque kr' d'un nombre de bits d choisi.
Dans un autre mode de réalisation, les masques principaux k' sont de longueur W et composés d'un nombre entier de sous-masques de longueur S, les masques secondaires kr' étant générés par permutation desdits sous-masques.
Les sous-masques des masques secondaires sont, par exemple, choisis en utilisant l'expression : k +l [x] = [mod{x - Q,W I S)} dans laquelle :
r est le numéro de ronde ;
i est un nombre de 4 bits tirés aléatoirement ;
Q est un entier permettant de contrôler le taux de permutation entre deux masques secondaires kr' et kr+ ' consécutifs ;
S est la longueur d'un sous-masque exprimée en bits ;
W est la longueur du masque principal exprimée en bits ;
mod() est une fonction définie telle que mod(a,b) = a modulo b, a et b étant des nombres entiers ;
Selon un aspect de l'invention, le masque principal k' de chiffrement est modifié régulièrement en choisissant aléatoirement un masque k' parmi un ensemble de masques principaux mémorisés dans le circuit.
Selon un autre aspect de l'invention, l'ensemble des masques principaux mémorisés dans le circuit est différent d'un circuit à l'autre.
L'ensemble des masques principaux sont obtenus à l'aide d'un circuit de génération de masques intrinsèques au composant.
Dans un mode de mise en œuvre, la distance de Hamming entre deux masques kr' et kr+ ' est sensiblement égale à S/2.
Le poids de Hamming d'un masque k' est, par exemple, sensiblement égal à W/2.
Selon un aspect de l'invention, les traitements non linéaires sont mis en œuvre à l'aide de S-boxes.
Les traitements non linéaires sont appliqués, par exemple, après les traitements linéaires dans un même bloc combinatoire juste avant l'échantillonnage du résultat dans un registre.
Le circuit est, par exemple, implémenté dans un FPGA. L'ensemble des masques principaux est obtenu, par exemple, à l'aide de la modification du fichier de configuration du circuit FPGA.
Le circuit comprend, par exemple, des moyens de reconfiguration dynamique permettant de mettre à jour l'ensemble des masques principaux et les tables implémentant les parties du circuit correspondant aux traitements non-linéaires.
Dans un mode de mise en œuvre, le circuit est implémenté dans un ASIC. L'invention a notamment comme avantage de ne pas augmenter significativement la complexité du circuit de par la mise en œuvre de la protection par masquage, notamment concernant les parties du circuit réalisant des traitements non linéaires. L'invention a également comme avantage de permettre l'utilisation d'un jeu de masque prédéterminé de taille réduite, ledit jeu pouvant être différent d'un circuit à l'autre de manière à rendre la protection unique entre circuits issus de la même chaîne de production.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit donnée à titre illustratif et non limitatif, faite en regard des dessins annexés parmi lesquels : la figure 1 présente l'exemple d'une fonction de Feistel protégée par masquage ;
- la figure 2 donne un exemple de circuit de cryptographie protégé par masquage, les parties non linéaires étant démasquées ;
la figure 3 illustre une implémentation de l'algorithme AES protégé par masquage selon l'invention.
La figure 1 présente l'exemple d'une fonction de Feistel protégée par masquage.
Le principe du masquage, connu de l'homme du métier, consiste à modifier la représentation des variables sensibles x en une représentation redondante. Cette représentation comprend au moins deux parts, une part correspondant aux données sensibles masquées notée x Θ m et une part correspondant au masque m. La somme de ces deux parts dans le corps de Galois binaire où elles sont définies permet de retrouver la variable x en utilisant la propriété suivante : χ = (χ Θ η )θ η ^
A titre d'exemple, dans un algorithme de chiffrement par bloc tel que DES ou AES, le résultat de l'opération de cryptage d'un bloc de données est issu de la répétition de plusieurs rondes. Une ronde est aussi appelée « round » en anglais et désigne un cycle de calcul dans lequel au moins deux types de transformations ont été exécutées, l'une linéaire et l'autre non- linéaire, appelée également transformation par substitution.
La transformation linéaire a pour objectif de mélanger les symboles ou les groupes de symboles présentés à son entrée en suivant des règles prédéfinies et créer ainsi de la diffusion.
La transformation par substitution est réalisée habituellement à l'aide de tables de substitution dites S-boxes et contribue à casser la linéarité de la structure de chiffrement. En utilisant ce type de transformation, des symboles ou des groupes de symboles sont remplacés par d'autres symboles ou groupes de symboles dans le but de créer de la confusion.
Ainsi, le couple de parts (x Θ m, m) est transformé en un couple (round(x Θ m'), m'), la fonction round() désignant l'opération fonctionnelle d'une ronde, tandis que m' est le nouveau masque de ronde.
Les parties linéaires de chaque ronde sont simplement dupliquées. La linéarité des fonctions L() desdites parties implique que :
L(x © m) = L(x)©L(m) La linéarité permet ainsi d'utiliser le masque mL = L(m) comme nouveau masque après transformation.
En revanche, la mise en œuvre du masquage sur les parties non- linéaires, c'est-à-dire les S-Boxes, induit un accroissement significatif en terme de coût d'implémentation. Un masque mNL prenant en compte cette transformation et permettant de retrouver S(x) à partir de S(x Θ m) doit être déterminé tel que :
S(x) = S(x @ m)emNL ^
Pour cela, mNL peut s'exprimer à l'aide d'une fonction S'() définie telle que : n NL = S'(x, x © m) = S(x)©S(x © m) ^
La fonction S'() possède donc deux fois plus d'entrées que la fonction S(). Ainsi, la mise en œuvre du masquage pour des fonctions S() non linéaires revient à ajouter le carré de la complexité de S.
Afin d'illustrer la mise en œuvre du masquage dans un circuit de cryptographie, la figure 1 présente l'exemple d'une fonction de Feistel protégée par masquage. Ce type de fonction est notamment utilisé pour le chiffrement par bloc de type DES, acronyme venant de l'expression anglo- saxonne « Data Encryption Bloc ».
La mise en œuvre du masquage des données sensibles x requiert, comme explicité précédemment, un traitement en deux parties 100, 101 .
La première partie 100 correspond aux traitements réalisés sur la part x Θ m et la seconde partie 101 correspond aux traitements réalisés sur la part m.
Le chiffrement des données sensibles est effectué en appliquant une clé k au bloc à chiffrer suivie d'une S-Box de fonction S() et de l'application d'une fonction linéaire L().
Les signaux numériques à traiter par les deux voies 100, 101 du circuit sont synchronisés en utilisant un registre 102, 103 pour chaque voie.
La première voie 100 traite la part comportant les données sensibles x masquées, c'est-à-dire x Θ m. La clé k de chiffrement est appliquée en utilisant une porte XOR 106. Le signal résultant correspond à x Θ m Θ k. Une S-Box 107 permet ensuite d'obtenir le signal S(x Θ m Θ k) 1 17 auquel est appliquée une fonction linéaire L 108. La seconde voie 101 traite la part correspondant au masque m. Comme explicité précédemment, l'application d'une fonction non-linéaire S() 107 sur un signal masqué implique habituellement sa prise en compte au niveau du traitement de la seconde part. Ainsi, la fonction S'() définie par l'expression (4) est mise en œuvre 1 13 en utilisant deux S-Boxes et 2 portes XOR 109, 1 12. La fonction prend en entrée d'une part le masque m 105 et d'autre part le signal x Θ m Θ k 1 15 résultant de l'application de la clé de chiffrement k au niveau de la première voie 100. Sur le signal 1 16 résultant de l'application de S'() est appliqué une fonction linéaire L() 1 14 de manière à prendre en compte la fonction linéaire 108 de la première voie 100. La fonction S'() peut être implémentée dans un mémoire de type ROM de manière à ce qu'elle soit protégée contre les attaques par observations. Il est en effet particulièrement difficile d'observer, par exemple, les variations de consommation électrique au sein d'une telle mémoire.
Même si une telle implémentation est protégée par masquage et que l'observation de l'activité liée à la fonction S'() est difficile à observer, des failles de sécurité la rende fragile, notamment contre des attaques du second ordre. Il est par exemple possible pour une attaquant de positionner deux sondes d'observation de la consommation électrique au niveau de deux nœuds de circuit distincts, par exemple aux sorties 1 18, 1 19 des deux registres d'entrée de chaque voie. Une attaque basée sur l'estimation de la variance, c'est-à-dire de type « zero-offset », est dans ce cas très efficace.
La figure 2 donne un exemple de circuit de cryptographie protégé par masquage sur laquelle s'appuie l'invention. Il faut noter qu'il n'existe plus de chemin de masque ce qui, avantageusement, rend impossible les attaques du second ordre comme celle décrite précédemment.
Comme explicité précédemment, lorsque les parties non masquées d'un circuit de chiffrement sont confinées dans une mémoire, il est difficile d'attaquer les variables internes à ladite mémoire. En d'autres termes, une mémoire est considérée comme une boîte noire protégée contre les fuites d'informations. Seules les entrées ou les sorties sont vulnérables. Un des objectifs du circuit décrit est de tirer partie d'une l'implémentation en mémoire avec une méthode de masquage personnalisée de complexité modérée. Par ailleurs, lorsque l'utilisation de mémoires n'est pas adaptée, les éléments de calcul peuvent être ordonnancés de manière à positionner les parties non-linéaires le plus loin possible de la sortie des registres. A titre d'exemple, une attaque en corrélation est d'autant moins efficace qu'elle est menée profondément dans la logique combinatoire du circuit.
L'exemple de la figure 2 présente un exemple de mise en œuvre de l'invention dans un circuit basé sur l'utilisation d'un réseau SPN, acronyme venant de l'expression anglo-saxonne « Substitution Permutation Network ». Ce type de circuit est aussi appelé réseau S-P de Shannon. Dans cet exemple un cryptage en deux rondes est considéré. Des mots binaires d'indice r notés kr' et kr c sont utilisés respectivement en tant que clé de masquage et clé de chiffrement.
Le circuit présenté en exemple peut être décomposé en plusieurs étages, soit un étage d'entrée, un étage correspondant à la première ronde, un étage correspondant à la seconde ronde et un étage de sortie. Les données à chiffrer sont présentées en entrée de l'étage d'entrée, par exemple sous la forme de mots de 32 bits découpés en quatre sous-mots de 8 bits. Une masquage d'entrée est appliqué en utilisant la clé k0' d'une longueur de 32 bits, ladite clé étant découpée en quatre sous-masques de 8 bits k0'[0], k0'[1 ], k0'[2], k0'[3], lesdits sous-masques étant appliqués au quatre sous-mots de 8bits en utilisant quatre portes XOR 200, 201 , 202, 203.
En entrée de la première ronde, un registre 204 prend en entrée les quatre sous-mots de 8 bits résultant du masquage par la clé k0'. Ce registre permet de synchroniser les différents flux binaires, un flux correspondant à un sous-mot de 8 bits d'entrée. Une première clé de chiffrement k0 c, découpée en quatre sous-clés de 8 bits notées k0 c[0], k0 c[1 ], k0 c[2], k0 c[3], est appliquée au niveau de quatre portes XOR 206, 206, 207, 208 sur les sous-mots masqués présentés en sortie dudit registre 204. La clé k0 c est associée à la première ronde de chiffrement. Les quatre sous-mots de données masqués par k0' et chiffrés par k0 c sont ensuite respectivement traités par quatre blocs de traitements 209, 210, 21 1 , 212 implémentés dans une mémoire, par exemple de type ROM. Il est à noter que la complexité d'implémentation de fonctions, notamment non linéaires, dans une mémoire ROM augmente de manière exponentielle avec le nombre d'entrées. Les algorithmes cryptographiques intègrent cette contrainte et traitent les mots à chiffrer en sous-mots de plus petite taille au niveau de la fonction non-linéaire afin de minimiser la complexité d'implémentation.
En entrée de chaque bloc de traitement, les sous-mots de 8 bits sont démasqués en appliquant les quatre sous-masques de 8 bits k0'[0], k0'[1 ], k0'[2], k0'[3] à l'aide de portes XOR 214. Une fonction non linéaire est ensuite appliquée, une S-box 21 3 pouvant être utilisée pour la mettre en œuvre.
En amont de la sortie de chaque bloc de traitement, une porte XOR 21 5 est utilisée afin de masquer les données en sortie, de manière à ce que les données sensibles soient masquées en sortie de l'étage de première ronde par un masque k- découpé en quatre sous-masques kV[0], kV[1 ], k-i'[2], ki'[3]. Une transformation linéaire L0() est appliquée en sortie de ronde, celle-ci devant être prise en compte pour le masquage au sein des blocs de traitement. Pour cela, le masquage est réalisé en utilisant un masque modifié L0 "1(k'-i) du masque k Celle-ci est découpée en quatre sous-masques modifiés de 8 bits
Figure imgf000013_0001
la transformation L0 "1 () correspondant à l'inverse de la transformation linéaire L0() 21 6.
En sortie des blocs de traitement 209, 21 0, 21 1 , 21 2, la transformation L0() est appliquée sur les mots binaires présentés en sortie desdits blocs. Le résultat de la première ronde de chiffrement correspond aux sous-mots binaires en sortie de la transformation linéaire 21 6, lesdits sous-mots correspondant à des données sensibles masquées par le masque k et donc protégés contre des attaques par observations.
L'entrée de la deuxième ronde est la sortie de la première ronde et correspond aux quatre sous-mots de 8 bits résultant de la transformation linéaire 21 6 de la première ronde. Ces quatre sous-mots sont présentés en entrée d'un registre 21 7 permettant de synchroniser les différents flux binaires.
Une seconde clé de chiffrement kic propre à la deuxième ronde, découpée en quatre sous-clés de 8 bits notées k-ic[0], k-ic[1 ], k-ic[2], k-ic[3], est appliquée au niveau de quatre portes XOR 21 8, 219, 220, 221 sur les sous- mots masqués présentés en sortie du registre 21 7.
Les quatre sous-mots de données masqués par k- et chiffrés par kic sont ensuite respectivement traités par quatre blocs de traitements 222, 223, 224, 225 implémentés dans une mémoire, par exemple, de type ROM. En entrée de chaque bloc, les données sont démasquées en appliquant la clé k-ι' à l'aide de portes XOR.
Une fonction non linéaire est ensuite appliquée, une S-box pouvant être utilisée dans chaque bloc pour la mettre en œuvre. En sortie de chaque bloc de traitement, un porte XOR est utilisée pour masquer les données en sortie, de manière à ce que les données sensibles soient masquées en sortie de l'étage de seconde ronde par le masque k'2. Pour cela, le masquage est réalisé en utilisant un masque modifié Li"1(k'2), la transformation l_i"1() correspondant à l'inverse d'une transformation linéaire
La transformation l_i() est appliquée sur les sous-mots binaires présentés en sortie des blocs de traitement 209, 21 0, 21 1 , 212. Le résultat de la seconde ronde de chiffrement correspond aux sous-mots binaires en sortie de la transformation linéaire 226, lesdits sous-mots correspondant à des données sensibles masquées et donc protégés contre des attaques par observation.
Un avantage de ce type d'implémentation est qu'il est possible, d'intervertir le chiffrement par k0 c et le masquage par k0' pour la ronde 1 ainsi que le chiffrement par kic et le masquage par k- pour la ronde 2.
De façon à réduire la complexité d'implémentation et à utiliser toujours les mêmes mémoires ROM, il est proposé de déduire les masques d'implémentation utilisés d'une étape à l'autre par une permutation d'un masque principal. Par exemple, si k' est le masque principal, les masques secondaires k0', k- et k2' peuvent être déduits du masque principal de la manière suivante : ko1 = k1
kV = Ρ(
k2 j = P(kV) la fonction P(bin) représentant une fonction de permutation, par exemple une permutation circulaire du mot binaire bin. De plus, le masque principal k1 peut être tiré au hasard parmi un ensemble prédéfini de masques principaux. Un exemple de permutation de masques sur la base d'un masque principal est donné dans la description à l'aide de la figure 3.
La faible taille de l'ensemble des masques principaux permet avantageusement d'utiliser des masques personnalisés propres au composant, c'est-à-dire propre à chaque instance du circuit. L'application de cette signature permet de réduire la portée des attaques de type « catalogage » car les fuites deviennent ainsi propres à un circuit et non plus à un type de circuit. Les attaques d'ordre élevé HO-DPA, acronyme venant de l'expression anglo-saxonne « higher-order differential power analysis », comme par exemple celles de type « zero-offset » sont quant à elles remises en cause du fait qu'il n'y a plus de chemin de masque spécifique. Il n'est donc plus possible de considérer le couple (variable masquée, masque).
La figure 3 illustre une implémentation de l'algorithme AES protégé par masquage.
L'algorithme de chiffrement par blocs AES, acronyme venant de l'expression anglo-saxonne « Advanced Encryption Standard », est particulièrement performant pour garder secret des messages binaires. Le message à protéger est traité par mots binaires de taille fixe, lesdits mots pouvant être de 128, 192 ou 256 bits. Les clés de chiffrement sont de longueur W, W étant égal à la longueur des mots à traiter. L'algorithme comprend trois phases de traitement, chaque phase étant composée d'une ou plusieurs rondes. La première phase R1 correspond à une ronde d'initialisation, la deuxième phase R2 correspond à N rondes utilisant la même structure de manière itérative et la troisième phase R3 correspond à une ronde finale. Le principe de ces trois phases propre à l'algorithme AES est connu de l'homme du métier.
Le circuit est par exemple un circuit FPGA ou ASIC.
Une protection par masquage selon l'invention peut être introduite de manière à protéger contre les attaques par observation des canaux cachés le circuit de cryptographie AES mettant en œuvre les trois phases R1 , R2, R3.
Un générateur de nombre aléatoire 300 est utilisé afin de générer des mots binaires i, par exemple de n bits, n représentant l'entropie du masquage. Dans l'exemple décrit dans la suite de la description, n est représenté sur 4 bits.
Un compteur CTR 301 incrémente une variable r correspondant au numéro de ronde en cours.
Le circuit protégé comprend une zone de mémoire 303 permettant notamment de stocker un ensemble de masques constants de longueur égale à celle des mots à chiffrer, soit 128 bits dans cet exemple.
Le nombre i généré aléatoirement 300 permet de sélectionner un masque principal k' parmi l'ensemble des masques mémorisés 303. Par conséquent, pour n = 4, 16 masques principaux k' différents peuvent être sélectionnés aléatoirement.
Par ailleurs, les masques principaux mémorisés dans le composant peuvent être différents d'un composant produit à l'autre, de manière à obtenir une protection différenciée et éviter les « attaques par catalogage ».
Un masque principal k' de longueur W est composé d'un nombre entier de sous-masques de longueur S, W étant un multiple de S. Par exemple, un masque k' de longueur W = 128 bits comprend par exemple 16 sous-masques de S = 8 bits, lesdits sous-masques étant notés k0'[0], k0'[1 ], 15].
A partir d'un masque principal, des masques secondaires peuvent être générés, par exemple en permutant les sous-masques composant le masque principal. Ainsi, à partir d'un unique masque principal, un masque secondaire différent peut être utilisé pour chaque ronde.
De façon à augmenter la robustesse face aux attaques, il existe un jeu de masques principaux k' différent d'un composant à l'autre de manière à mettre en œuvre une protection masquage différenciée entre lesdits composants. La variable i est aléatoire et peut être générée avant chaque chiffrement.
Une fois le masque principal k' choisi, un masque secondaire d'indice r+1 est déduit d'un masque secondaire d'indice r en permutant avec une permutation P circulairement le masque kr' d'un nombre de bits d choisi, le masque d'indice 0 étant initialisé tel que k0' = k'.
d peut être choisi tel que d = S bits par exemple, c'est-à-dire d'une longueur correspondant à un sous masque. Il est également possible de faire permuter le masque d'indice r d'un nombre entier de sous-masques. Ainsi, le masque kr+ ' peut être généré en utilisant l'expression : kr l +l [x] = kr l [mod(x - Q,W / S)] (5) dans laquelle :
r est le numéro de ronde ;
i est un nombre de 4 bits tirés aléatoirement par le générateur 300 ;
Q est un entier permettant de contrôler le taux de permutation entre deux masques secondaires kr' et kr+ ' consécutifs ;
S est la longueur d'un sous-masque exprimée en bits ;
W est la longueur du masque k' exprimée en bits ;
mod() est une fonction définie telle que mod(a,b) = a modulo b, a et b étant des nombres entiers ;
Le masque principal peut être, par exemple, modifié au cours d'une procédure de chiffrement en tirant au hasard une nouvelle valeur de i.
Avantageusement, la résistance aux attaques par observation peut être optimisée en choisissant les masques principaux k' tels que les masques secondaires soient indépendants les uns par rapport aux autres, par exemple en garantissant que la distance de Hamming entre kr' et kr+ ' soit sensiblement égale à S/2.
Un équilibrage en moyenne des masques permet aussi de renforcer la protection, ledit équilibrage étant obtenu en garantissant que le poids de Hamming d'un masque secondaire et donc du masque principal soit sensiblement égal à W/2.
Dans l'exemple de la figure, les mots à chiffrer sont des mots de 128 bits et sont présentés en entrée du codeur dans une base de registre 302. Le mot à traiter est ensuite masqué par application de la clé k0' = k' non permutée à l'aide d'une porte XOR 304. Le résultat du masquage est ensuite chiffré par application d'une clé de chiffrement de longueur W notée k0 c à l'aide d'un seconde porte XOR 305.
Le mot masqué par k0' et chiffré par k0 c est stocké dans un registre 306, ledit registre correspondant à l'entrée de la partie du circuit réalisant la deuxième phase de traitement R2, ladite phase correspondant à une boucle de chiffrement itératif, une itération correspondant à une ronde de traitement. Le mot mémorisé dans le registre 306 est traité par un module de contrôle 307 découpant le mot de 128 bits en 16 sous-mots de 8 bits. Le module de contrôle a également pour rôle de sélectionner le masque kr' à utiliser pour démasquer les données en début de ronde, une ronde étant appliquée à chaque itération d'indice r. Les 16 sous-mots de 8 bits sont traités à l'aide de modules de fonction non-linéaire 308, lesdits modules étant implémentés dans une mémoire de type ROM, par exemple. Ces modules démasquent 309 les sous-mots présentés à leur entrée, leur applique un traitement non- linéaire 310 par exemple en utilisant des S-boxes, et masquent 31 1 le résultat dudit traitement. Il y a un module 308 de fonction non linéaire par sous-mot de 8 bits à traiter. Par conséquent, il y a 16 modules de fonctions non linéaires pour l'exemple de la figure 3.
Ces modules utilisent pour la ronde d'indice r les sous-masques kr'[0], kr'[1 ], kr'[15] pour le démasquage d'entrée 309 et les sous-masques kr+i'[0], kr+i'[1 ], kr+i'[15] pour le masquage de sortie 31 1 . Par exemple, les 16 S-boxes peuvent être pré-calculées afin d'être masquées par les sous- masques kr'[] puis démasquées par les sous-masques kr+ '[].
Les 16 sous-mots en sortie des modules de traitements non linéaires sont ensuite dirigés vers un second module de contrôle 312 dont la fonction est notamment de concaténer lesdits mots en un mot de 128 bits.
Le mot de 128 bits est ensuite traité par deux modules de traitement linéaire, un premier réalisant un mélange des lignes 313 désigné habituellement par l'expression anglo-saxonne « Shift Rows » et un second traitement réalisant un mélange des colonnes 314, traitement habituellement désigné par l'expression anglo-saxonne « Shift Columns ». Ces deux traitements linéaires peuvent être modélisés par une fonction Lr().
Un chiffrement utilisant une clé kr c est appliqué sur le mot de 128 bits résultant desdits traitements linéaires, et ce à l'aide d'une fonction XOR 315.
Sur le mot résultant du chiffrement par kr c et de façon à pouvoir utiliser les mêmes S-boxes d'une ronde à l'autre, un masque kint' de 128 bits est appliqué 316. Les masques kint' sont mémorisés 303 après avoir été pré- calculés en utilisant l'expression : (6)
Il existe ainsi en mémoire 16 mots pré-calculés kint' de 128 bits. Les traitements de la phase R2 sont exécutés N fois de manière itérative. Lorsque les N rondes de la deuxième phase R2 ont été exécutées, la phase finale R3 est exécutée sur le mot de 128 bits extrait entre le traitement linéaire de mélange des lignes 313 et le traitement linéaire de mélange de colonnes 314.
Après un chiffrement final utilisant une clé kfin c appliquée par une fonction XOR 317 sur le mot extrait, un démasquage final est réalisé en appliquant un masque kfin' de 128 bits à l'aide d'une fonction XOR 318.
Les 16 masques kfin' de 128 bits sont mémorisés 303 dans le circuit protégé après avoir été pré-calculés en utilisant l'expression : kk = k1 R 0 L71 (k1 r ) (7) dans laquelle la fonction L'r "1() représente l'inverse du traitement de mélange des lignes 313.
Le mot obtenu à la fin de la ronde finale, c'est-à-dire à la fin de la phase R3 de traitement correspond au résultat final du chiffrement AES. Le message chiffré obtenu est écrit dans un registre de sortie 319.
La figure 4 donne un exemple de circuit de cryptographie protégé par masquage dont les traitements non-linéaires sont positionnés en fin de ronde.
Lorsque les parties du circuit correspondant aux traitements non- linéaires sont implémentés en portes logiques et non en mémoire, les fonctions de démasquage en amont et de masquage en aval desdits traitements peuvent faire l'objet d'attaques.
Afin de protéger le circuit contre ces attaques, une solution est de placer les traitements non-linéaires d'une ronde en bout du cône de logique, c'est à dire juste avant l'échantillonnage par registre du résultat. Les calculs sont alors étalés du fait de leur dispersion temporelle et l'efficacité de l'attaque est alors limitée. L'exemple de la figure 4 donne un exemple de circuit de cryptographie protégé par masquage mettant en œuvre ce principe.
Cet exemple de circuit ressemble à celui présenté à l'aide de la figure 2. Le chiffrement est réalisé à l'aide d'une architecture de Feistel et est réalisé grâce à la mise en œuvre d'un étage d'entrée, de deux étages de ronde appelés ronde 1 et ronde 2, puis d'un étage de sortie.
A la différence du circuit donné en exemple avec la figure 2, les traitements non-linéaires, mis en œuvre par exemple avec des S-boxes, sont placés en bout de cône de logique. Les traitements linéaires sont donc placés en début de ronde. Ainsi, au niveau de l'étage correspondant à la première ronde, un traitement linéaire correspondant à une fonction de diffusion initiale L.i () est appliqué 401 . Au niveau de l'étage correspondant à la deuxième ronde, un traitement linéaire correspondant à une fonction de diffusion L0() est appliqué 402.
L'inverse L.i "1 () de la fonction de diffusion initiale est appliqué 400 en sortie de l'étage d'entrée et une fonction de diffusion finale Li() est appliquée 403 à l'entrée de l'étage de sortie.
La consommation électrique en début de ronde est modélisable difficilement, alors qu'elle est rendue plus dépendante des conditions environnementales en fin de ronde.

Claims

REVENDICATIONS
- Circuit de cryptographie protégé par masquage, ledit circuit comportant des moyens pour chiffrer des mots binaires à l'aide d'au moins une clé kr c, des moyens pour appliquer des traitements linéaires (216) et des traitements non linéaires (226) auxdits mots, des moyens pour masquer lesdits mots, ledit circuit étant caractérisé en ce que les mots binaires sont démasqués (214) en amont des traitements non linéaires en utilisant un masque kr' et masqués (215) en aval des traitements non linéaires en utilisant un masque kr+ ', les masques kr' et kr+i ' faisant partie d'un ensemble de masques propres à chaque instance du circuit.
Circuit selon la revendication 1 caractérisé en ce que les traitements non linéaires, le démasquage (214) en amont des traitements non linéaires et le masquage (215) en aval des traitements linéaires sont implémentés dans des mémoires de type ROM (209).
Circuit selon l'une quelconque des revendications précédentes caractérisé en ce que les masques kr' sont des masques secondaires déduits de masques primaires k' tels que kr+ ' = P(kr') et k0' = k', la fonction P(x) correspondant à une fonction de permutation des éléments de x, les mémoires ROM restant inchangées.
Circuit selon la revendication 3 caractérisé en ce que la fonction P(x) est une permutation circulaire, un masque secondaire d'indice r+1 étant déduit d'un masque secondaire d'indice r en permutant circulairement le masque kr' d'un nombre de bits d choisi.
Circuit selon la revendication 3 caractérisé en ce les masques principaux k' sont de longueur W et composés d'un nombre entier de sous-masques de longueur S, les masques secondaires kr' étant générés par permutation desdits sous-masques. 6- Circuit selon la revendication 5 caractérisé en ce que les sous- masques des masques secondaires sont choisis en utilisant l'expression : kr l +l [x] = kr l [mod(x - Q,W / S)] dans laquelle :
r est le numéro de ronde ;
i est un nombre de 4 bits tirés aléatoirement ;
Q est un entier permettant de contrôler le taux de permutation entre deux masques secondaires kr' et kr+ ' consécutifs ;
S est la longueur d'un sous-masque exprimée en bits ;
W est la longueur du masque principal exprimée en bits ;
mod() est une fonction définie telle que mod(a,b) = a modulo b, a et b étant des nombres entiers ;
Circuit selon l'un quelconque des revendications 3 à 6 caractérisé en ce que le masque principal k' de chiffrement est modifié régulièrement en choisissant aléatoirement un masque k' parmi un ensemble de masques principaux mémorisés dans le circuit.
Circuit selon la revendication 7 caractérisé en ce que l'ensemble des masques principaux mémorisés dans le circuit (303) est différent d'un circuit à l'autre.
Circuit selon la revendication 8 caractérisé en ce que l'ensemble des masques principaux est obtenu à l'aide d'un circuit interne de génération de masques.
10- Circuit selon l'un quelconque des revendications précédentes caractérisé en ce que la distance de Hamming entre deux masques kr' et kr+ ' est égale à S/2. 1 1 - Circuit selon l'une quelconque des revendications précédentes caractérisé en ce que le poids de Hamming d'un masque k' est égal à W/2. 12- Circuit selon l'une quelconque des revendications précédentes caractérisé en ce que les traitements non linéaires sont mis en œuvre à l'aide de S-boxes (213, 310).
13- Circuit selon l'une quelconque des revendications précédentes caractérisé en ce que les traitements non linéaires sont appliqués après les traitements linéaires dans un même bloc combinatoire juste avant l'échantillonnage du résultat dans une registre.
14- Circuit selon l'une quelconque des revendications précédentes caractérisé en ce qu'il est implémenté dans un FPGA.
15- Circuit selon la revendication 13 caractérisé en ce que l'ensemble des masques principaux est obtenu à l'aide de la modification du fichier de configuration du circuit FPGA.
16- Circuit selon l'une quelconque des revendication 13 ou 14 caractérisé en ce qu'il comprend des moyens de reconfiguration dynamique permettant de mettre à jour l'ensemble des masques principaux et les tables implémentant les parties du circuit correspondant aux traitements non-linéaires
17- Circuit selon l'une quelconque des revendications 1 à 13 caractérisé en ce qu'il est implémenté dans un ASIC.
PCT/EP2010/067064 2009-11-13 2010-11-08 Circuit electronique de faible complexite protege par masquage personnalise WO2011057991A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP10773354.5A EP2499773B1 (fr) 2009-11-13 2010-11-08 Circuit electronique de faible complexite protege par masquage personnalise
ES10773354T ES2571225T3 (es) 2009-11-13 2010-11-08 Circuito electrónico de escasa complejidad protegido por enmascaramiento personalizado
JP2012538299A JP5987250B2 (ja) 2009-11-13 2010-11-08 カスタマイズされたマスキングによって保護される低複雑度の電子回路
CN201080056401.9A CN102648600B (zh) 2009-11-13 2010-11-08 由定制的掩蔽保护的低复杂度电子电路
US13/509,494 US9197412B2 (en) 2009-11-13 2010-11-08 Low-complexity electronic circuit protected by customized masking
CA2780719A CA2780719C (fr) 2009-11-13 2010-11-08 Circuit electronique de faible complexite protege par masquage personnalise
KR1020127015118A KR101783495B1 (ko) 2009-11-13 2010-11-08 커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0958030 2009-11-13
FR0958030A FR2952773B1 (fr) 2009-11-13 2009-11-13 Circuit electronique de faible complexite protege par masquage personnalise

Publications (1)

Publication Number Publication Date
WO2011057991A1 true WO2011057991A1 (fr) 2011-05-19

Family

ID=42244180

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2010/067064 WO2011057991A1 (fr) 2009-11-13 2010-11-08 Circuit electronique de faible complexite protege par masquage personnalise

Country Status (9)

Country Link
US (1) US9197412B2 (fr)
EP (1) EP2499773B1 (fr)
JP (1) JP5987250B2 (fr)
KR (1) KR101783495B1 (fr)
CN (1) CN102648600B (fr)
CA (1) CA2780719C (fr)
ES (1) ES2571225T3 (fr)
FR (1) FR2952773B1 (fr)
WO (1) WO2011057991A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014119512A (ja) * 2012-12-13 2014-06-30 Nec Corp 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
JP5612007B2 (ja) * 2012-03-15 2014-10-22 株式会社東芝 暗号化鍵生成装置
WO2015059845A1 (fr) * 2013-10-24 2015-04-30 日本電気株式会社 Circuit de traitement de cryptage, circuit de traitement de décryptage et procédés associés
EP3475825B1 (fr) 2016-06-23 2023-01-25 Cryptography Research, Inc. Opérations cryptographiques utilisant un codage de partage non linéaire pour la protection contre les attaques de surveillance externe
US10530567B2 (en) * 2016-10-05 2020-01-07 Megachips Corporation Encryption device and memory device
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3422176A1 (fr) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
US11562101B2 (en) * 2017-11-13 2023-01-24 Intel Corporation On-device bitstream validation
US11372983B2 (en) 2019-03-26 2022-06-28 International Business Machines Corporation Employing a protected key in performing operations
US11201730B2 (en) * 2019-03-26 2021-12-14 International Business Machines Corporation Generating a protected key for selective use
FR3096206A1 (fr) * 2019-05-17 2020-11-20 Stmicroelectronics (Grenoble 2) Sas Dispositif de protection de donnees masquees et procede associe
US11700111B2 (en) * 2019-06-26 2023-07-11 Cryptography Research, Inc. Platform neutral data encryption standard (DES) cryptographic operation
CN113343175B (zh) * 2021-05-31 2022-05-27 中国电子科技集团公司第三十研究所 一种自动化搜索spn型轻量级分组密码活跃s盒的快速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981223A2 (fr) * 1998-08-20 2000-02-23 Kabushiki Kaisha Toshiba Dispositif de chiffrage/déchiffrage
US20050232430A1 (en) * 2004-04-16 2005-10-20 Gebotys Catherine H Security countermeasures for power analysis attacks
EP1722502A1 (fr) * 2005-05-10 2006-11-15 Research In Motion Limited Masquage de clé pour procédés cryptographiques
WO2009074728A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652796A (en) * 1994-06-21 1997-07-29 Pitney Bowes Inc. Data encryption control system
US6205249B1 (en) * 1998-04-02 2001-03-20 Scott A. Moskowitz Multiple transform utilization and applications for secure digital watermarking
CA2333095C (fr) * 1998-06-03 2005-05-10 Cryptography Research, Inc. Perfectionnement de normes cryptographiques et autres procedes cryptographiques a reduction des fuites pour cartes a puces et autres systemes cryptographiques
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
KR100605813B1 (ko) * 2003-02-28 2006-08-01 삼성전자주식회사 초 광대역 통신시스템에서 헤더정보 전송장치 및 방법
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
FR2873523B1 (fr) 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
US7720225B2 (en) * 2006-03-07 2010-05-18 Research In Motion Limited Table splitting for cryptographic processes
JP4936996B2 (ja) * 2007-05-24 2012-05-23 株式会社東芝 非線形データ変換器、暗号化装置、および復号装置
CN101542558A (zh) * 2007-05-30 2009-09-23 松下电器产业株式会社 加密装置、解密装置、加密方法及集成电路
WO2009043139A1 (fr) * 2007-10-01 2009-04-09 Research In Motion Limited Masquage de table de substitution pour processus de chiffrement
US7995749B2 (en) * 2007-10-30 2011-08-09 Harris Corporation Cryptographic system configured for extending a repetition period of a random sequence
DE102008033962B4 (de) * 2008-07-21 2011-11-24 Siemens Aktiengesellschaft Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
FR2952256B1 (fr) * 2009-11-04 2011-12-16 St Microelectronics Rousset Protection d'une cle de chiffrement contre des attaques unidirectionnelles

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981223A2 (fr) * 1998-08-20 2000-02-23 Kabushiki Kaisha Toshiba Dispositif de chiffrage/déchiffrage
US20050232430A1 (en) * 2004-04-16 2005-10-20 Gebotys Catherine H Security countermeasures for power analysis attacks
EP1722502A1 (fr) * 2005-05-10 2006-11-15 Research In Motion Limited Masquage de clé pour procédés cryptographiques
WO2009074728A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
E. PEETERS; F. STANDAERT; N. DONCKERS: "Cryptographic Hardware and Embedded Systems - Proceedings of CHES", vol. 3659, 2005, SPRINGER-VERLAG, article "J-J. Quisquater intitulé Improved Higher Order Side-Channel Attacks with FPGA experiments", pages: 309 - 323
HUNG-YU CHIEN: "Tree-Based Matched RFID Yoking Making It More Practical and Efficient", I.J.COMPUTER NETWORK AND INFORMATION SECURITY, vol. 1, October 2009 (2009-10-01), pages 1 - 8, XP002588445, Retrieved from the Internet <URL:http://www.mecs-press.org/ijcnis/ijcnis-200901001.pdf> [retrieved on 20100623] *
P. C. KOCHER; J. JAFFE; B. JUN: "Proceedings of CRYPTO'96", vol. 1109, 1996, SPRINGER-VERLAG, article "Timing Attack on Implémentations of Diffie-Hellman, RSA, DSS and Other Systems", pages: 104 - 113
P. C. KOCHER; J. JAFFE; B. JUN: "Proceedings of CRYPTO'99", vol. 1666, 1999, SPRINGER-VERLAG, article "Differential Power Analysis", pages: 388 - 397

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014119512A (ja) * 2012-12-13 2014-06-30 Nec Corp 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム

Also Published As

Publication number Publication date
US9197412B2 (en) 2015-11-24
CN102648600A (zh) 2012-08-22
EP2499773A1 (fr) 2012-09-19
CA2780719C (fr) 2019-08-20
JP5987250B2 (ja) 2016-09-07
KR20120109501A (ko) 2012-10-08
CN102648600B (zh) 2014-12-24
FR2952773A1 (fr) 2011-05-20
FR2952773B1 (fr) 2012-07-20
EP2499773B1 (fr) 2016-02-17
US20130129081A1 (en) 2013-05-23
CA2780719A1 (fr) 2011-05-19
ES2571225T3 (es) 2016-05-24
KR101783495B1 (ko) 2017-09-29
JP2013511057A (ja) 2013-03-28

Similar Documents

Publication Publication Date Title
EP2499773B1 (fr) Circuit electronique de faible complexite protege par masquage personnalise
EP2380306B1 (fr) Circuit de cryptographie protege contre les attaques en observation, notamment d&#39;ordre eleve
Nassar et al. RSM: A small and fast countermeasure for AES, secure against 1st and 2nd-order zero-offset SCAs
EP1358732B1 (fr) Procede de cryptage securise et composant utilisant un tel procede de cryptage
CA2570617C (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
EP3228043B1 (fr) Méthode de chiffrement à couches de confusion et de diffusion dynamiques
FR2968104A1 (fr) Procede et systeme de protection d&#39;un dispositif de cryptographie
FR2985624A1 (fr) Procede de chiffrement protege contre des attaques par canaux auxiliaires
EP2380305A1 (fr) Circuit de cryptographie, protégé notamment contre les attaques par observation de fuites d&#39;information par leur chiffrement
CA2392739A1 (fr) Isolateur cryptographique a multiplication
Reyad et al. Key-based enhancement of data encryption standard for text security
Korkikian et al. Blind fault attack against SPN ciphers
El Assad Chaos based information hiding and security
Abbasi et al. Cryptography: Security and integrity of data management
McEvoy et al. All-or-nothing transforms as a countermeasure to differential side-channel analysis
Moradi Advances in side-channel security
Ha et al. Differential power analysis on block cipher ARIA
EP2738974A1 (fr) Procédé de dérivation de clés cryptographiques multiples à partir d&#39;une clé maitresse dans un microprocesseur de sécurité
WO2009068658A1 (fr) Procedes et dispositifs de cryptage et de decryptage d&#39;un message de donnees a cle secrete aleatoire
Dravie Synchronization and dynamical systems: application to cryptography
FR2949887A1 (fr) Procede de traitement cryptographique de donnees
EP3745638A1 (fr) Procedes de mise en uvre et d&#39;obfuscation d&#39;un algorithme cryptographique a cle secrete donnee
FR3061822A1 (fr) Procede de chiffrement ou de dechiffrement d&#39;un n-uplet de donnees avec un n-uplet de cles secretes predeterminees
Singh et al. Comparative Study of Saellite Image Encryption Algorithm
Bhasin Logic-Level Countermeasures to Secure FPGA based Designs

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080056401.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10773354

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012538299

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 2780719

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2010773354

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20127015118

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13509494

Country of ref document: US