Nothing Special   »   [go: up one dir, main page]

EP1792435A1 - Method for securing cryptographic processing by means of decoys - Google Patents

Method for securing cryptographic processing by means of decoys

Info

Publication number
EP1792435A1
EP1792435A1 EP05800594A EP05800594A EP1792435A1 EP 1792435 A1 EP1792435 A1 EP 1792435A1 EP 05800594 A EP05800594 A EP 05800594A EP 05800594 A EP05800594 A EP 05800594A EP 1792435 A1 EP1792435 A1 EP 1792435A1
Authority
EP
European Patent Office
Prior art keywords
iterations
data
cryptographic
processing
cryptographic processing
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.)
Withdrawn
Application number
EP05800594A
Other languages
German (de)
French (fr)
Inventor
Patrice Hameau
Cédric MESNIL
Renaud Marlet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trusted Logic SAS
Original Assignee
Trusted Logic SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Trusted Logic SAS filed Critical Trusted Logic SAS
Publication of EP1792435A1 publication Critical patent/EP1792435A1/en
Withdrawn legal-status Critical Current

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/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
    • 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
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Definitions

  • the present invention relates to a method for securing cryptographic processing intended to ensure the protection of data and / or programs of a computer system such as, for example, but not exclusively, an embedded system.
  • Physical observation attacks perform a passive hardware spying of a circuit. They include for example the measurement of the execution time (or the number of cycles performed by the processor), the measurement of the power consumption, the analysis of electromagnetic emissions, etc. _ _
  • Physical disturbance attacks change the state or hardware properties of a circuit. They include for example the disruption of the power supply (voltage peaks, ...), the bombardment by radiation (flash of light, %), the destruction of logic gates, etc.
  • a disturbance can confuse a program of its normal execution or modify the values of the data on which it operates (for example, by imposing values where all the bits are at 0, or at 1) in order to deceive it or to indirectly reveal certain information in the results produced or in physical emissions.
  • the data specifically targeted by the attacks are the digital key data.
  • These keys are used in processing, including cryptographic calculations (encryption, decryption, signature, etc.) to ensure the confidentiality and / or authenticity and / or integrity of texts, especially during exchanges between the program (or system) and the outside world: an encrypted text can only be read by someone who has the decryption key, a signature affixed to a text can guarantee its origin and the fact that the text does not has not been changed, etc.
  • the size of the key data may vary depending on the level protection sought. Indeed, a cryptographic treatment does not offer a total guarantee but a statistical guarantee (or probabilistic). Software attacks consist in exploiting the result of a large number of calculations made by the system to try to deduce the key used. In general, the larger the size of the key data, the greater the number of calculations required to retrieve the value of the key. To ensure good protection, it is made that this number of calculations is very difficult to achieve by an attacker.
  • cryptographic processing is often implemented by well-known algorithms whose execution has a characteristic "trace" detectable by a physical observation of the execution. This trace left by the execution allows an attacker to synchronize with the processes, not only to try to deduce some of the manipulated data but also to practice disturbances of the execution, disturbances which in turn allow to facilitate other observations. By repeated executions on different input data, an attacker gradually determines information about the keys, until finally know them in their entirety.
  • DFA Different Fault Attacks
  • Redundant operations are added to the cryptographic processing to calculate a "hash", for example a checksum, which is representative of the operations performed by the system. If the imprint at the end of the calculation differs from the expected value, it means that the execution has been disturbed. Security measures can then be taken, such as blocking the system or program, a common measure in the case of a smart card.
  • a checksum for example a checksum
  • the secure blocking of the system or program in the event of a proven disruption of execution requires the attacker to have several similar copies of the system, so that he can achieve all the measures he needs. to conclude. The sooner the disturbances are detected, and the system subsequently blocked, the more the attacker requires similar copies of the system.
  • the invention proposes a novel method for making it more difficult to observe cryptographic processing.
  • the method applies to any cryptographic treatment that is to be masked. It consists in concealing at least a part of the treatment, for example an effective calculation "with similarity", that is to say to insert it among decoys constituted by superfluous similar treatments.
  • the invention proposes a method of securing a cryptographic treatment against physical attacks, in which all or part of said cryptographic processing is repeated several times: one or more times on the correct data, the other times on incorrect data.
  • the choice of iterations made on correct or incorrect data is done randomly, and the iterations made on the incorrect data are ignored in the final result of the processing.
  • the program may perform a particular treatment.
  • the particular treatment of the program in the case where imprints and / or results of iterations differ may consist (1) in securing certain data and / or (2) in interrupting, definitively or not, its execution and / or, when c is physically possible, (3) to possibly warn the user of the malfunction by an audible or visual signal.
  • the total number of iterations Nr may be equal to the number of repetitions N of said pattern, or to a multiple M of said number of repetitions N, the iterations then being grouped into N packets. of M / N repetitions of the pattern.
  • resources necessary to carry out said processing are said resources depending in particular on the text on which said treatment operates, and / or on the size of this text), and / or
  • the incorrect data can be deduced from the correct data by a transformation on the first and / or last key bits manipulated in the implementation of the cryptographic processing.
  • the incorrect data can be deduced from the correct data by a random transformation preserving the observable measurements of the key data (notably the Hamming weight).
  • NC iterations are performed on correct data over a total of Nr iterations, the iterations on incorrect data can be composed from NT / NC sets of different values, each of these sets being used NC times among the NTs. iterations, the choice of the iterations relating to this or that set of values (correct or incorrect) remaining random.
  • This method can be combined with other methods of securing cryptographic processing, at the level of the implementation of an elementary processing (an iteration) and / or at the level of the implementation of the repetition of the elementary processes.
  • random delays may be inserted within each iteration and / or between each iteration.
  • This method may in particular be applied with a number of iterations on correct data NC equal to 2 and a total number of iterations Nr defined as follows:
  • Nr is respectively equal to 10, 12 or 14
  • the cryptographic processing comprises a SAFER ("Secure And Fast Encryption Routine") cryptographic calculation, then ⁇ ⁇ NT ⁇ 10,
  • Basic cryptographic processing may be implemented by instructions for the system processor and / or via one or more crypto ⁇ processors and / or via one or more cryptographic libraries provided by a third party.
  • the sequence of the iterations may be implemented at the software level or implemented at the hardware level using a circuit that performs the iterations in sequence and / or in parallel, and in a desynchronized manner.
  • the interest of the invention lies in the combinatorics created against the attacker. Indeed, the number of similar treatments performed (that is to say the number of iterations) is such that the combinatory consisting of supposing alternatively correct each of the elementary treatments (one of the iterations) is very large. After implementation of the process, it is not so much to determine "where is the treatment? Which is difficult (unless other security measures are taken for that), but "what is the correct treatment? ". It becomes very difficult for the attacker to practice . _
  • a system that duplicates cryptographic processing can only be used if it is fast enough. This is particularly the case with systems equipped with crypto-processors.
  • the execution time of a DES processing on a smart card crypto-processor can be of the order of thirty cycles, which is hundreds or even thousands of times less than an explicit processing performed by the main processor (not dedicated to cryptography).
  • the total number of elementary treatments performed (ie the number of iterations) does not necessarily have to be constant.
  • the total number Nr of elementary treatments may in particular depend on the type of cryptographic processing. In particular, if the cryptographic processing includes a particular internal subprocessing that is repeated . _
  • NT can be chosen equal to N. This allows, besides the indeterminacy created by the multiplication of the treatments, to deceive an attacker by revealing a signal characteristic of the cryptographic treatment (the repetition N times of the same algorithmic pattern) when in fact each repeated pattern N times is itself a complete cryptographic process.
  • Treatment of an encryption or decryption DES 5 characteristic provides a good example:
  • the heart of this treatment is in fact constituted by 16 iterations of a virtually identical sequence of operations.
  • the observation of the same physical signal repeating 16 times in succession is an index that betrays the presence of the DES calculation. If the DES treatment is secured by repeating it 16 times as described in the present invention, an attacker who observes the treatments may be deluded by these 16 iterations, thinking to see therein the repetition of the internal motif of the DES treatment, while 'In fact it is a complete DES treatment repeated 16 times.
  • the number of iterations NT may for example be defined as follows for the following cryptographic treatments:
  • a dedicated cryptographic processor may be necessary for this, especially so that each elementary cryptographic processing is fast enough.
  • the processing time which is small enough to be comparable to the other basic operations of the main processor, justifies not only the viability of a repeated treatment (even a hundred times, if necessary) but also the relevance of the decoy consisting in making one believe in one. programmed processing integrally on the main processor, implementing NT repetitions of a characteristic subprocessing, while it is actually performed Nr times on the dedicated cryptographic processor.
  • the cryptographic treatment comprises a repeating unit N times
  • a repetitive treatment M times can be organized in N iterations of a group of M / N treatments, thus leaving appear the lure of a repeated pattern N times.
  • a DES treatment it will be possible, for example, to fix the number of iterations at 32 or 48, which will be organized in 16 iterations of a packet of 2 or 3 treatments.
  • the total number of iterations need not be constant for a given cryptographic processing, it may depend on public data and / or processing-specific invariant data. For example, in the case of DES processing, it can be made dependent on the size of the key; in the case of RSA encryption or decryption, it may depend on the size and / or value of the module and the exponent.
  • a cryptographic treatment comprises a repeated pattern a variable number of times, for example related to the size of the key, it will be possible to adopt a number of iterations of the complete processing equal to the effective number of repetition of the pattern , or fix it to one of the numbers of . .
  • the number of iterations can also be dynamic and depend on the resources needed to perform the processing (which may depend on the text, and in particular on its length) and / or the resources available to perform the processing (such as the execution time and / or memory space) and / or a random factor. This makes it possible to find compromises between security level (difficulty of observing and disrupting), quality of service (processing time) and cost of service (memory to be available in the system).
  • the iterations on the correct data can be recognized in particular because they are repeated, either in the same group of iterations for a secure processing (case of several iterations performed on the correct data), or through several secure processes carried out on identical data.
  • additional security methods such as the introduction of random delays, makes it more difficult to observe this repetition.
  • incorrect data can be constructed by only slightly modifying some of the correct data in the process.
  • the incorrect data must not be too close to the correct data, otherwise conclusions concerning the observation of the incorrect data would also be relevant for the correct data, and the hiding effect would be lost because the decoys are not would not be.
  • the main purpose of securing is to conceal key data during cryptographic processing.
  • cryptographic processing may depend not only on the value of keys but also the text on which it operates.
  • the execution trace left by cryptographic processing is generally more dependent on the value of the key data than text, it will be advantageous to construct the incorrect data to modify the key data and not the text. .
  • key data to be modified (in part or in whole) to make incorrect data may depend on the type of cryptographic processing and its implementation.
  • physical attacks often exploit the very first or the last operations performed by the processing, which relate to bits at known positions of the key. Determining these bits then makes it possible, step by step, to determine the totality of the key. To hide the correct data, it is therefore important to first mask the bits that occur first or last in the implementation of the processing.
  • keys consisting of values with particular properties
  • particular properties such as in the case of RSA (which is based on prime numbers)
  • particular data such as fully or partially calculated key data, may optionally be stored in the system to allow easy generation of modified key data that satisfies these properties.
  • Some physical observations may also provide information on the value of the data manipulated during a processing, possibly related information, just to classify or compare measures. This is the case, for example, with the Hamming weight (number of bits set to 1), on which the circuit's electrical consumption depends.
  • the Hamming weight number of bits set to 1
  • Making the values similar may also affect the number of different copies of the incorrect data used in the set of iterations. Indeed, at the risk of rendering the process ineffective, it should not be possible to identify the iterations made on the correct data simply because, compared with those relating to incorrect data, they are in small numbers and / or identical.
  • DES processing may advantageously be secured by 16 iterations composed from 8 different sets of values (1 with correct values, 7 with incorrect values), each used twice randomly from the 16 iterations.
  • a fine observation could possibly reveal that the 16 iterations can be grouped into 8 pairs of iterations on identical data, but without however being able to determine which of these pairs corresponds to the correct data. . _
  • pretreatments can be carried out:
  • the actual values of the data to be used for the different iterations can be prepared: the set of values corresponding to the correct data, and the different sets of values corresponding to incorrect data.
  • each iteration access the precomputed data in the same way. For this, one can for example prepare in one or more tables of the choices and / or values to be used for each of the iterations (with possible repetitions), and access these tables during iterations via the simple index of the current iteration, or a function of this index.
  • This combination can be carried out on two levels: another method can in fact be used, on the one hand, to secure an elementary processing (that is to say an iteration) and, on the other hand, to secure the sequence of repeated treatments.
  • another method can in fact be used, on the one hand, to secure an elementary processing (that is to say an iteration) and, on the other hand, to secure the sequence of repeated treatments.
  • a random delay can be introduced, on the one hand, among the operations of the elementary processing, which has an impact on each iteration and, on the other hand, between each iteration of the processing.
  • the method which is the subject of the present invention can obviously be implemented when there is full freedom on the implementation of the elementary treatment. But it can also be implemented when one does not have the control of the underlying elementary treatment, which can be the case when one uses a crypto-processor or a cryptographic library supplied by a third party.
  • the processing means is then used as a "black box" at each iteration.
  • This security method can be implemented at the software level, by programming the sequence of the different iterations of an elementary processing. It can also be implemented at the hardware level, using a circuit that connects the different iterations.
  • the iterations are independent of one another, they can also occur in parallel. This parallelism makes it possible to make the process usable in cases where an elementary treatment can not be repeated too many times, otherwise the processing will be rendered unusable because it is too long in execution time.
  • we can ensure desynchronize the different processes or processors performing the iterations, to scramble the observations and make it more difficult to distinguish different treatments.
  • the invention relates to the execution system implementing one or more cryptographic processes, in which some of the cryptographic processes are secured against physical attacks in accordance with the previously described method.
  • the basic cryptographic computations of secure cryptographic processing can be implemented by instructions for the system processor and / or via a crypto-processor and / or via a cryptographic library provided by a third party.
  • the sequence of different iterations of a basic cryptographic processing can be implemented at the software level or implemented at the hardware level, using a circuit that performs the iterations in sequence and / or in parallel, in a desynchronized manner.

Landscapes

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

Abstract

The inventive method for securing a cryptographic processing against physical attacks consists in repeating entirely or partially said cryptographic processing several times, i.e. one or several times on correct data, other times on incorrect data in order to decoy an attacker, wherein the selection of iterations performed on correct or incorrect data is carried out randomly and the incorrect data is ignored in the final result of processing.

Description

_ _ _ _
PROCEDE DE SECURISATION DE TRAITEMENTS CRYPTOGRAPHIOUES PAR LE BIAIS DE LEURRES.METHOD OF SECURING CRYPTOGRAPHED TREATMENTS THROUGH LURES.
La présente invention concerne un procédé pour la sécurisation de traitements cryptographiques destinés à assurer la protection de données et/ou de programmes d'un système informatique tels que, par exemple, mais non exclusivement, un système embarqué.The present invention relates to a method for securing cryptographic processing intended to ensure the protection of data and / or programs of a computer system such as, for example, but not exclusively, an embedded system.
D'une manière générale, on sait que certains systèmes embarqués, comme par exemple les cartes à puce, sont conçus pour protéger les données et les programmes qu'ils contiennent. En particulier, le support matériel de ces systèmes rend très difficile l'observation et la modification non seulement des données stockées ainsi que de l'exécution des programmes.In general, we know that some embedded systems, such as smart cards, are designed to protect the data and programs they contain. In particular, the hardware support of these systems makes it very difficult to observe and modify not only the stored data as well as the execution of the programs.
La protection n'est toutefois pas totale. Ces systèmes peuvent être exposés à des actions malveillantes, aussi appelées attaques, qui visent à altérer le bon fonctionnement des programmes ou à dévoiler des informations confidentielles. Certaines attaques, dites physiques, opèrent au niveau du matériel, par opposition aux attaques logicielles.The protection is not complete, however. These systems may be exposed to malicious actions, also known as attacks, which aim to alter the proper functioning of programs or to reveal confidential information. Some attacks, called physical, operate at the hardware level, as opposed to software attacks.
Les attaques physiques d'observation effectuent un espionnage matériel passif d'un circuit. Elles incluent par exemple la mesure du temps d'exécution (ou du nombre de cycles effectués par le processeur), la mesure de la consommation électrique, l'analyse des émissions électromagnétiques, etc. _ _Physical observation attacks perform a passive hardware spying of a circuit. They include for example the measurement of the execution time (or the number of cycles performed by the processor), the measurement of the power consumption, the analysis of electromagnetic emissions, etc. _ _
Les attaques physiques de perturbation modifient l'état ou les propriétés matérielles d'un circuit. Elles incluent par exemple la perturbation de l'alimentation électrique (pics de tensions, ...), le bombardement par des rayonnements (flash de lumière, ...), la destruction de portes logiques, etc. Une perturbation peut dérouter un programme de son exécution normale ou modifier les valeurs des données sur lesquelles il opère (par exemple, en imposant des valeurs où tous les bits sont à 0, ou bien à 1) afin de le tromper ou de révéler indirectement certaines informations dans les résultats produits ou dans les émissions physiques.Physical disturbance attacks change the state or hardware properties of a circuit. They include for example the disruption of the power supply (voltage peaks, ...), the bombardment by radiation (flash of light, ...), the destruction of logic gates, etc. A disturbance can confuse a program of its normal execution or modify the values of the data on which it operates (for example, by imposing values where all the bits are at 0, or at 1) in order to deceive it or to indirectly reveal certain information in the results produced or in physical emissions.
Les attaques physiques de perturbation sont souvent combinées à des attaques d'observation. En effet, pour que la perturbation soit pertinente du point de vue de l'attaque, il est souvent nécessaire de la pratiquer à des moments opportuns de l'exécution et donc de se synchroniser avec le programme en cours d'exécution, ce qui nécessite une observation physique.Physical disturbance attacks are often combined with observation attacks. Indeed, for the disturbance to be relevant from the point of view of the attack, it is often necessary to practice it at appropriate times of execution and thus to synchronize with the running program, which requires a physical observation.
Les données plus particulièrement visées par les attaques sont les données de clés numériques. Ces clés sont utilisées dans des traitements, notamment des calculs cryptographiques (chiffrement, déchiffrement, signature, etc.) pour s'assurer de la confidentialité et/ou de l'authenticité et/ou de l'intégrité de textes, notamment lors des échanges entre le programme (ou système) et le monde extérieur : un texte chiffré ne peut être lu que par quelqu'un qui dispose de la clé de déchiffrement, une signature apposée sur un texte peut garantir son origine et le fait que le texte n'a pas été modifié, etc. Certains traitements cryptographiques, comme les reconnaissances d'empreinte (hash), ne reposent pas sur des clés.The data specifically targeted by the attacks are the digital key data. These keys are used in processing, including cryptographic calculations (encryption, decryption, signature, etc.) to ensure the confidentiality and / or authenticity and / or integrity of texts, especially during exchanges between the program (or system) and the outside world: an encrypted text can only be read by someone who has the decryption key, a signature affixed to a text can guarantee its origin and the fact that the text does not has not been changed, etc. Some cryptographic processes, such as hash recognition, do not rely on keys.
Les données de clé différent suivant le type de traitement : bloc de bits pour un traitement de cryptage de données standard DES ("Data Encryption Standard"), module et exposant pour un traitement RSA ("Rivest-Shamir-Different key data depending on the type of processing: block of bits for standard data encryption standard (DES) processing, module and exponent for RSA processing ("Rivest-Shamir-
Adleman"), etc. La taille des données de clé peut varier en fonction du niveau de protection recherché. En effet, un traitement cryptographique n'offre pas une garantie totale mais une garantie statistique (ou probabiliste). Les attaques logicielles consistent à exploiter le résultat d'un grand nombre de calculs effectués par le système pour tenter d'en déduire la clé utilisée. En général, plus la taille des données de clé est grande, plus grand est aussi le nombre de calculs nécessaires pour retrouver la valeur de la clé. Pour assurer une bonne protection, on fait en sorte que ce nombre de calculs soit très difficilement réalisable par un attaquant.Adleman "), etc. The size of the key data may vary depending on the level protection sought. Indeed, a cryptographic treatment does not offer a total guarantee but a statistical guarantee (or probabilistic). Software attacks consist in exploiting the result of a large number of calculations made by the system to try to deduce the key used. In general, the larger the size of the key data, the greater the number of calculations required to retrieve the value of the key. To ensure good protection, it is made that this number of calculations is very difficult to achieve by an attacker.
Toutefois, les traitements cryptographiques sont souvent implémentés par des algorithmes bien connus dont l'exécution a une « trace » caractéristique décelable par une observation physique de l'exécution. Cette trace que laisse l'exécution permet à un attaquant de se synchroniser avec les traitements, non seulement pour tenter d'en déduire une partie des données manipulées mais aussi pour pratiquer des perturbations de l'exécution, perturbations qui permettent à leur tour de faciliter d'autres observations. Par des exécutions répétées sur des données d'entrée différentes, un attaquant détermine petit à petit des informations concernant les clés, jusqu'à finalement les connaître dans leur intégralité.However, cryptographic processing is often implemented by well-known algorithms whose execution has a characteristic "trace" detectable by a physical observation of the execution. This trace left by the execution allows an attacker to synchronize with the processes, not only to try to deduce some of the manipulated data but also to practice disturbances of the execution, disturbances which in turn allow to facilitate other observations. By repeated executions on different input data, an attacker gradually determines information about the keys, until finally know them in their entirety.
En pratique, la nature de la trace laissée par une exécution dépend bien sûr du type d'observation mais aussi de la manière dont le traitement est implémenté. En particulier, dans certains systèmes embarqués, comme par exemple les cartes à puce, certaines implémentations ont recours à des circuits ou processeurs spécifiques (crypto-processeurs) qui effectuent tout ou partie de certains traitements cryptographiques. Les avantages sont notamment un temps de traitement beaucoup plus faible et, en général, une protection renforcée contre les attaques physiques, tant du point de vue de l'observation que de la perturbation. _ _In practice, the nature of the trace left by an execution depends of course on the type of observation but also on the way the processing is implemented. In particular, in some embedded systems, such as smart cards, some implementations use specific circuits or processors (crypto-processors) that perform all or part of certain cryptographic processing. The advantages include a much lower processing time and, in general, enhanced protection against physical attacks, both from the point of view of observation and disturbance. _ _
En l'absence de crypto-processeur, ou si le crypto-processeur n'effectue qu'une partie des traitements (qu'il peut falloir alors itérer), des opérations liées au traitement cryptographique doivent être effectuées par le processeur principal du système. De ce fait, elles sont davantage exposées à une attaque.In the absence of a crypto-processor, or if the crypto-processor performs only a part of the processing (which it may be necessary to iterate), operations related to cryptographic processing must be performed by the main processor of the system. As a result, they are more vulnerable to attack.
Parmi les attaques physiques les plus connues basées sur l'observation, on peut citer les attaques de type SPA ("Simple Power Analysis") et DPA ("Differential Power Analysis"), qui sont basées sur un enregistrement de la consommation électrique et qui ont été utilisées avec succès notamment pour découvrir des clés de type DES.Among the most well-known physical attacks based on observation, we can mention the SPA ("Simple Power Analysis") and DPA ("Differential Power Analysis") attacks, which are based on a recording of the electrical consumption and which have been successfully used to discover DES keys.
Dans le cas d'attaques de type SPA, des observations plus fines, éventuellement corrélées avec des mesures de temps, permettent ensuite de déterminer des bits de la clé car les opérations effectuées (et leur trace en terme de consommation électrique ou de temps d'exécution) diffèrent légèrement suivant que ces bits valent 0 ou 1.In the case of SPA type attacks, finer observations, possibly correlated with time measurements, then make it possible to determine bits of the key because the operations performed (and their trace in terms of power consumption or time run) differ slightly depending on whether these bits are 0 or 1.
Dans le cas d'attaques de type DPA, employées notamment quand des mesures anti-SPA ont été prises (voir ci-dessous), on effectue non pas un mais plusieurs traitements cryptographiques, que l'on traite avec des outils statistiques. Pour cela, on fait une hypothèse sur la présence d'un bit positionné à 0 dans des données d'une opération particulière du traitement cryptographique et on effectue deux suites de traitements cryptographiques sur des données particulières choisies pour opérer sur ce bit, valant soit 0, soit 1. On fait ensuite la moyenne de ces deux suites de mesures, puis la différence de ces deux moyennes. S'il y a un pic dans la courbe résultante, l'hypothèse de départ était bonne (le bit était à 0), sinon l'hypothèse était fausse. On peut ainsi de proche en proche déterminer tous les bits de la clé.In the case of attacks of the DPA type, used in particular when anti-SPA measures have been taken (see below), not one but several cryptographic treatments are carried out, which are treated with statistical tools. For this, we make an assumption on the presence of a bit set to 0 in data of a particular operation of the cryptographic processing and two cryptographic processing sequences are carried out on particular data chosen to operate on this bit, equal to 0 1. The average of these two series of measurements is then averaged, then the difference of these two averages. If there is a peak in the resulting curve, the initial assumption was good (the bit was 0), otherwise the assumption was wrong. It is thus possible gradually to determine all the bits of the key.
Les attaques de type SPA et DPA ont leur pendant en terme non pas de consommation électrique mais d'émissions électromagnétiques : ce sont la SEMA ("Simple Electromagnetic Emanation Analysis") et la DEMA ("Differential Electromagnetic Emanation Analysis"). Bien que de mise en œuvre moins aisée, ces techniques sont théoriquement plus fines que celles des attaques SPA et DPA car elles peuvent cibler leur attaque sur une partie précise du circuit (par exemple, le crypto-processeur) alors que l'analyse de courant est globale à tout le circuit.Attacks like SPA and DPA have their counterpart in terms not of electricity consumption but of electromagnetic emissions: these are the SEMA (Simple Electromagnetic Emanation Analysis) and DEMA (Differential Electromagnetic Emanation Analysis). Although less easy to implement, these techniques are theoretically finer than those of SPA and DPA attacks because they can target their attack on a specific part of the circuit (for example, the crypto-processor) while the current analysis is global to all the circuit.
Parmi les attaques exploitant des perturbations de l'exécution, on trouve par exemple les attaques de type DFA ("Differential Fault Attacks"), initialement développé contre des systèmes à clé publique de type RSA, puis étendu à la plupart des types de systèmes à clé privée.Among the attacks exploiting disturbances of execution, one finds for example the attacks of the type DFA ("Differential Fault Attacks"), initially developed against public key systems of RSA type, then extended to most types of systems to private key.
Pour renforcer la sécurité d'un système, il faut masquer autant que possible la nature des traitements effectués et surveiller les possibles perturbations d'exécution. Les contre-mesures les plus courantes sont les suivantes :To enhance the security of a system, it is necessary to mask as much as possible the nature of the treatments carried out and to monitor the possible disturbances of execution. The most common countermeasures are:
• Un délai aléatoire est introduit dans le traitement cryptographique. Ce délai peut être produit par l'exécution d'opérations inutiles.• A random delay is introduced in the cryptographic processing. This delay can be produced by performing unnecessary operations.
• Des opérations superflues sont introduites de manière à rendre constant le temps d'exécution du traitement cryptographique, quelle que soit la valeur des données manipulées. En particulier, le temps ne dépend alors pas des branchements effectués dans l'implémentation du traitement. Les valeurs des données sur lesquelles portent les opérations superflues peuvent aussi être choisies pour rendre constante la consommation électrique.• Unnecessary operations are introduced in order to make the execution time of the cryptographic processing constant, whatever the value of the manipulated data. In particular, the time does not depend on the connections made in the implementation of the processing. The values of the data to which the superfluous operations relate may also be chosen to make the power consumption constant.
• Plusieurs implémentations d'une même opération impliquée dans les traitements cryptographiques coexistent, ces implémentations pouvant différer par leur temps d'exécution et/ou leur consommation électrique. À l'exécution de l'opération, un choix aléatoire détermine l'implémentation particulière à utiliser. . _• Several implementations of the same operation involved in the cryptographic processing coexist, these implementations being able to differ by their execution time and / or their electrical consumption. At the execution of the operation, a random choice determines the particular implementation to use. . _
• L'ordre d'exécution des opérations impliquées dans un traitement cryptographique est modifié avec une permutation aléatoire. (Pour cela, il peut falloir reformuler le traitement pour faire apparaître des fragments dont l'ordre d'exécution est indifférent.)• The execution order of the operations involved in a cryptographic process is modified with a random permutation. (For this, it may be necessary to reformulate the processing to reveal fragments whose execution order is indifferent.)
• Des opérations redondantes sont ajoutées au traitement cryptographique pour calculer une empreinte ("hash"), par exemple une somme de contrôle ("checksum"), qui est représentative des opérations effectuées par le système. Si l'empreinte en fin de calcul diffère de la valeur attendue, cela signifie que l'exécution a été perturbée. Des mesures sécuritaires peuvent alors être prises, comme par exemple le blocage du système ou du programme, mesure courante dans le cas d'une carte à puce.• Redundant operations are added to the cryptographic processing to calculate a "hash", for example a checksum, which is representative of the operations performed by the system. If the imprint at the end of the calculation differs from the expected value, it means that the execution has been disturbed. Security measures can then be taken, such as blocking the system or program, a common measure in the case of a smart card.
Avec ces contre-mesures, le temps d'exécution, la consommation électrique et les émissions électromagnétiques deviennent moins prévisibles (introduction d'un aléa) et/ou moins discernables (temps constant, indépendant des données d'entrée), et il est plus difficile de se synchroniser avec le programme pour observer les traitements cryptographiques et éventuellement les perturber.With these countermeasures, execution time, power consumption and electromagnetic emissions become less predictable (introduction of a hazard) and / or less discernible (constant time, independent of input data), and it is more difficult to synchronize with the program to observe cryptographic processing and possibly disrupt it.
Cependant, comme c'est fréquemment le cas en matière de sécurité, la protection résultante n'est généralement que partielle ou relative. Au lieu de viser une inaccessible immunité totale, l'objectif d'une sécurisation n'a en fait souvent comme ambition que de rendre la tâche d'un attaquant plus difficile, et notamment plus longue ou plus onéreuse.However, as is frequently the case with security, the resulting protection is usually only partial or relative. Instead of aiming for an unattainable total immunity, the goal of securing is often aimed at making the task of an attacker more difficult, especially longer or more expensive.
Par exemple, certaines mesures physiques ont besoin d'une finesse qui nécessite des appareils permettant un échantillonnage élevé (de l'ordre d'une centaine de fois la fréquence du processeur, donc en pratique souvent plus de un gigahertz) et par conséquent également de très grandes capacités de stockage pour mémoriser ces mesures. La difficulté est d'autant plus élevée _ _For example, some physical measurements need a finesse that requires devices allowing high sampling (of the order of a hundred times the frequency of the processor, so in practice often more than one gigahertz) and therefore also of very large storage capacities to memorize these measurements. The difficulty is even higher _ _
quand ces mesures doivent être répétées de nombreuses fois, comme c'est le cas pour une attaque de type DPA, qui peut nécessiter de l'ordre de mille à dix mille mesures.when these measurements must be repeated many times, as is the case for a DPA-type attack, which may require in the range of one thousand to ten thousand measurements.
De même, le blocage sécuritaire du système ou du programme en cas de perturbation avérée de l'exécution impose à l'attaquant de disposer de plusieurs exemplaires similaires du système, pour qu'il parvienne à réaliser l'ensemble des mesures dont il a besoin pour conclure. Plus les perturbations sont détectées tôt, et le système subséquemment bloqué, plus l'attaquant nécessite d'exemplaires similaires du système.Similarly, the secure blocking of the system or program in the event of a proven disruption of execution requires the attacker to have several similar copies of the system, so that he can achieve all the measures he needs. to conclude. The sooner the disturbances are detected, and the system subsequently blocked, the more the attacker requires similar copies of the system.
L'invention propose un nouveau procédé pour rendre plus difficile l'observation des traitements cryptographiques. Le procédé s'applique à tout traitement cryptographique que l'on souhaite masquer. Il consiste à dissimuler au moins une partie du traitement, par exemple un calcul effectif « avec de la similitude », c'est-à-dire à l'insérer parmi des leurres constitués par des traitements similaires superflus.The invention proposes a novel method for making it more difficult to observe cryptographic processing. The method applies to any cryptographic treatment that is to be masked. It consists in concealing at least a part of the treatment, for example an effective calculation "with similarity", that is to say to insert it among decoys constituted by superfluous similar treatments.
Plus précisément, l'invention propose un procédé de sécurisation d'un traitement cryptographique contre des attaques physiques, dans lequel tout ou partie dudit traitement cryptographique est réitéré plusieurs fois : une ou plusieurs fois sur les données correctes, les autres fois sur des données incorrectes en vue de leurrer un attaquant, le choix des itérations effectuées sur des données correctes ou incorrectes étant fait de manière aléatoire, et les itérations effectuées sur les données incorrectes étant ignorées dans le résultat final du traitement.More precisely, the invention proposes a method of securing a cryptographic treatment against physical attacks, in which all or part of said cryptographic processing is repeated several times: one or more times on the correct data, the other times on incorrect data. to decoy an attacker, the choice of iterations made on correct or incorrect data is done randomly, and the iterations made on the incorrect data are ignored in the final result of the processing.
Dans le cas où le nombre d'itérations effectuées sur les données correctes est supérieur ou égal à deux et où les itérations effectuées sur les données correctes ont des empreintes et/ou des résultats différents, alors le programme pourra effectuer un traitement particulier. Le traitement particulier du programme dans le cas où des empreintes et/ou des résultats d'itérations diffèrent pourra consister (1) à sécuriser certaines données et/ou (2) à interrompre, définitivement ou non, son exécution et/ou, quand c'est matériellement possible, (3) à éventuellement avertir l'utilisateur du dysfonctionnement par un signal sonore ou visuel.In the case where the number of iterations performed on the correct data is greater than or equal to two and the iterations performed on the correct data have different fingerprints and / or results, then the program may perform a particular treatment. The particular treatment of the program in the case where imprints and / or results of iterations differ may consist (1) in securing certain data and / or (2) in interrupting, definitively or not, its execution and / or, when c is physically possible, (3) to possibly warn the user of the malfunction by an audible or visual signal.
Des raffinements pourront être apportés concernant le nombre de calculs itérés :Refinements can be made concerning the number of iterated calculations:
• Si le traitement cryptographique comporte un motif algorithmique interne répété, le nombre total d'itérations Nr pourra être égal au nombre de répétitions N dudit motif, ou bien à un multiple M dudit nombre de répétitions N, les itérations étant alors regroupées en N paquets de M /N répétitions du motif.If the cryptographic processing includes a repeated internal algorithmic pattern, the total number of iterations Nr may be equal to the number of repetitions N of said pattern, or to a multiple M of said number of repetitions N, the iterations then being grouped into N packets. of M / N repetitions of the pattern.
• Le nombre total d'itérations pourra aussi être déterminé en fonction :• The total number of iterations can also be determined based on:
- des données publiques et/ou invariantes spécifiques au traitement cryptographique, notamment les tailles des données de clé, et/oupublic and / or invariant data specific to the cryptographic processing, especially the sizes of the key data, and / or
- des ressources nécessaires pour effectuer ledit traitement (lesdites ressources dépendant notamment du texte sur lequel opère ledit traitement, et/ou de la taille de ce texte), et/ouresources necessary to carry out said processing (said resources depending in particular on the text on which said treatment operates, and / or on the size of this text), and / or
- des ressources disponibles pour effectuer ledit traitement, notamment le temps d'exécution et/ou l'espace mémoire,resources available for performing said processing, in particular the execution time and / or the memory space,
- d'un facteur aléatoire.- a random factor.
Des raffinements pourront également être apportés à la construction des données incorrectes : . _Refinements can also be made to the construction of incorrect data: . _
• Les données incorrectes pourront ne concerner que les données de clé (et non les textes).• Incorrect data may only affect key data (not text).
• Les données incorrectes pourront être déduites des données correctes par une transformation portant sur les premiers et/ou les derniers bits de clé manipulés dans l'implémentation du traitement cryptographique.• The incorrect data can be deduced from the correct data by a transformation on the first and / or last key bits manipulated in the implementation of the cryptographic processing.
• Lorsque ledit traitement cryptographique impose des propriétés spécifiques pour les données de clé qu'il exploite, les données de clé incorrectes pourront être produites à partir de données particulières stockées dans le système, de manière à garantir lesdites propriétés spécifiques.• When said cryptographic processing imposes specific properties for the key data it exploits, the incorrect key data may be produced from particular data stored in the system, so as to guarantee said specific properties.
• Les données incorrectes pourront être déduites des données correctes par une transformation aléatoire conservant les mesures observables des donnés de clé (notamment le poids de Hamming).• The incorrect data can be deduced from the correct data by a random transformation preserving the observable measurements of the key data (notably the Hamming weight).
Des raffinements particuliers pourront aussi être apportés à l'enchaînement des traitements itérés :Special refinements can also be made to the sequence of the iterated treatments:
• Si l'on effectue NC itérations sur des données correctes sur un total de Nr itérations, les itérations sur des données incorrectes pourront être composées à partir de NT /NC ensembles de valeurs différentes, chacun de ces ensembles étant utilisé NC fois parmi les NT itérations, le choix des itérations portant sur tel ou tel ensemble de valeurs (correctes ou incorrectes) restant aléatoire.• If NC iterations are performed on correct data over a total of Nr iterations, the iterations on incorrect data can be composed from NT / NC sets of different values, each of these sets being used NC times among the NTs. iterations, the choice of the iterations relating to this or that set of values (correct or incorrect) remaining random.
Des raffinements pourront également être apportés dans la dissimulation de la construction des données incorrectes : _ _Refinements could also be made in the concealment of the construction of the incorrect data: _ _
• Les choix des itérations effectuées sur des données incorrectes et/ou les valeurs des données pour les itérations sur des données incorrectes pourront être calculés avant la toute première itération.• Iteration choices made on incorrect data and / or data values for iterations on incorrect data may be calculated before the first iteration.
• Ces choix et ces valeurs pourront être stockés, avec ou sans répétitions, dans une ou plusieurs tables, et l'implémentation dudit traitement cryptographique pourra accéder à ces tables via une fonction de l'index de l'itération courante.These choices and values can be stored, with or without repetitions, in one or more tables, and the implementation of said cryptographic processing can access these tables via a function of the index of the current iteration.
Le procédé selon l'invention pourra aussi être combiné avec d'autres formes de sécurisation :The method according to the invention may also be combined with other forms of security:
• Ce procédé pourra être combiné avec d'autres procédés de sécurisation de traitement cryptographique, au niveau de l'implémentation d'un traitement élémentaire (une itération) et/ou au niveau de l'implémentation de la répétition des traitements élémentaires. En particulier, des délais aléatoires pourront être insérés à l'intérieur de chaque itération et/ou entre chaque itération.• This method can be combined with other methods of securing cryptographic processing, at the level of the implementation of an elementary processing (an iteration) and / or at the level of the implementation of the repetition of the elementary processes. In particular, random delays may be inserted within each iteration and / or between each iteration.
Ce procédé pourra en particulier être appliqué avec un nombre d'itérations sur des données correctes NC égal à 2 et un nombre total d'itérations Nr défini de la manière suivante :This method may in particular be applied with a number of iterations on correct data NC equal to 2 and a total number of iterations Nr defined as follows:
• si le traitement cryptographique comprend un calcul cryptographique de type DES ou SEED (standard d'encryption de données de la Corée du Sud), alors N-T = 16,• if the cryptographic processing includes a cryptographic calculation of type DES or SEED (data encryption standard of South Korea), then N-T = 16,
• si le traitement cryptographique comprend un calcul cryptographique de type COMP 128 (algorithme d'authentification GSM "Global System for Mobile Communications"), FEAL ("Fast Data Encipherment Algorithm") ou IDEA ("International Data Encryption Algorithm"), alors Nr= 8, _ _• if the cryptographic processing comprises a cryptographic computation type COMP 128 (GSM algorithm "Global System for Mobile Communications"), FEAL ("Fast Data Encipherment Algorithm") or IDEA ("International Data Encryption Algorithm"), then Nr = 8, _ _
• si le traitement cryptographique comprend un calcul cryptographique de type AES- 128, AES- 192 ou AES-256 (AES = "Advanced Encryption Standard"), alors Nr est respectivement égal à 10, 12 ou 14,If the cryptographic processing comprises a cryptographic calculation of the type AES-128, AES-192 or AES-256 (AES = "Advanced Encryption Standard"), then Nr is respectively equal to 10, 12 or 14,
• si le traitement cryptographique comprend un calcul cryptographique de type SAFER ("Secure And Fast Encryption Routine"), alors β ≤ NT≤ 10,If the cryptographic processing comprises a SAFER ("Secure And Fast Encryption Routine") cryptographic calculation, then β ≤ NT ≤ 10,
• si le traitement cryptographique comprend un calcul cryptographique de type RC5 ("Rivest Cipher 5"), alors 12 ≤ NT ≤ 16.• if the cryptographic processing includes a cryptographic calculation of type RC5 ("Rivest Cipher 5"), then 12 ≤ NT ≤ 16.
Ce procédé pourra être mis en œuvre par des moyens divers :This process can be implemented by various means:
Un traitement cryptographique élémentaire pourra être mis en œuvre par des instructions pour le processeur du système et/ou via un ou plusieurs crypto¬ processeurs et/ou via une ou plusieurs librairies cryptographiques fournies par un tiers.Basic cryptographic processing may be implemented by instructions for the system processor and / or via one or more crypto¬ processors and / or via one or more cryptographic libraries provided by a third party.
L'enchaînement des itérations pourra être implémenté au niveau logiciel ou mis en œuvre au niveau matériel à l'aide d'un circuit qui effectue les itérations en séquence et/ou en parallèle, et de manière désynchronisée.The sequence of the iterations may be implemented at the software level or implemented at the hardware level using a circuit that performs the iterations in sequence and / or in parallel, and in a desynchronized manner.
L'intérêt de l'invention tient dans la combinatoire créée à l'encontre de l'attaquant. En effet, le nombre de traitements similaires effectués (c'est-à-dire le nombre d'itérations) est tel que la combinatoire consistant à supposer comme corrects alternativement chacun des traitements élémentaires (une des itérations) est très grande. Après mise en oeuvre du procédé, ce n'est pas tant déterminer « où est le traitement ? » qui est difficile (à moins que d'autres mesures de sécurisation soient prises pour ça), mais « quel est le traitement correct ? ». Il devient alors très difficile pour l'attaquant de pratiquer des . _The interest of the invention lies in the combinatorics created against the attacker. Indeed, the number of similar treatments performed (that is to say the number of iterations) is such that the combinatory consisting of supposing alternatively correct each of the elementary treatments (one of the iterations) is very large. After implementation of the process, it is not so much to determine "where is the treatment? Which is difficult (unless other security measures are taken for that), but "what is the correct treatment? ". It becomes very difficult for the attacker to practice . _
observations utiles et de réaliser des synchronisations fines avec un traitement en cours d'exécution.useful observations and realize fine synchronizations with running processing.
De plus, vérifier que chaque itération effectuée sur des données correctes produit une empreinte ou un résultat identique permet de mettre en évidence des perturbations physiques de l'exécution et de prendre, le cas échéant, des mesures sécuritaires, comme par exemple le blocage du système et/ou du programme.In addition, check that each iteration carried out on correct data produces an identical impression or result makes it possible to highlight physical disturbances of the execution and to take, if necessary, security measures, such as the blocking of the system. and / or program.
En pratique, un système qui duplique des traitements cryptographiques n'est exploitable que s'il est suffisamment rapide. C'est le cas notamment de systèmes équipés de crypto-processeurs. Par exemple, le temps d'exécution d'un traitement DES sur un crypto-processeur de carte à puce peut être de l'ordre d'une trentaine de cycles, ce qui est des centaines voire des milliers de fois inférieur à un traitement explicite effectué par le processeur principal (non dédié à la cryptographie).In practice, a system that duplicates cryptographic processing can only be used if it is fast enough. This is particularly the case with systems equipped with crypto-processors. For example, the execution time of a DES processing on a smart card crypto-processor can be of the order of thirty cycles, which is hundreds or even thousands of times less than an explicit processing performed by the main processor (not dedicated to cryptography).
D'autre part, le nombre d'itérations effectuées sur des données correctes doit être petit, sinon l'effet de dissimulation est perdu. Inversement, multiplier le nombre d'itérations sur des données correctes augmente d'autant la possibilité de détecter des perturbations de l'exécution. Dans la mesure où il est difficile de reproduire avec précision une même perturbation de l'exécution (empêchant ainsi la détection de la perturbation), un nombre de deux itérations avec des données correctes est un bon compromis.On the other hand, the number of iterations performed on correct data must be small, otherwise the hiding effect is lost. Conversely, multiplying the number of iterations on correct data increases the possibility of detecting disturbances of execution. Since it is difficult to accurately reproduce the same perturbation of execution (thus preventing detection of the perturbation), a number of two iterations with correct data is a good compromise.
Par ailleurs, le nombre total de traitements élémentaires effectués (c'est-à-dire le nombre d'itérations) n'a pas nécessairement à être constant.Moreover, the total number of elementary treatments performed (ie the number of iterations) does not necessarily have to be constant.
Le nombre total Nr de traitements élémentaires peut notamment dépendre du type de traitement cryptographique. En particulier, si le traitement cryptographique comprend un sous-traitement interne particulier qui est répété . _The total number Nr of elementary treatments may in particular depend on the type of cryptographic processing. In particular, if the cryptographic processing includes a particular internal subprocessing that is repeated . _
un nombre donné de fois N, alors NT pourra être choisi égal à N. Cela permet, outre l'indétermination créée par la multiplication des traitements, de leurrer un attaquant en faisant apparaître un signal caractéristique du traitement cryptographique (la répétition N fois d'un même motif algorithmique) alors qu'en fait chaque motif répété N fois est lui-même un traitement cryptographique complet.a given number of times N, then NT can be chosen equal to N. This allows, besides the indeterminacy created by the multiplication of the treatments, to deceive an attacker by revealing a signal characteristic of the cryptographic treatment (the repetition N times of the same algorithmic pattern) when in fact each repeated pattern N times is itself a complete cryptographic process.
Le traitement d'un chiffrement ou déchiffrement DES5 très caractéristique, en fournit un bon exemple : outre une permutation de données initiale et finale, le cœur de ce traitement est en effet constitué par 16 itérations d'une séquence quasiment identique d'opérations. L'observation d'un même signal physique se répétant 16 fois de suite est un indice qui trahit la présence du calcul DES. Si l'on sécurise le traitement DES en le répétant 16 fois comme décrit dans la présente invention, un attaquant qui observe les traitements peut se prendre au leurre de ces 16 itérations en pensant y voir la répétition du motif interne du traitement DES, alors qu'en fait il s'agit d'un traitement DES complet répété 16 fois.Treatment of an encryption or decryption DES 5 characteristic, provides a good example: In addition to a permutation of the initial and final data, the heart of this treatment is in fact constituted by 16 iterations of a virtually identical sequence of operations. The observation of the same physical signal repeating 16 times in succession is an index that betrays the presence of the DES calculation. If the DES treatment is secured by repeating it 16 times as described in the present invention, an attacker who observes the treatments may be deluded by these 16 iterations, thinking to see therein the repetition of the internal motif of the DES treatment, while 'In fact it is a complete DES treatment repeated 16 times.
Selon cette logique, le nombre d'itérations NT pourra par exemple être défini ainsi pour les traitements cryptographiques suivants :According to this logic, the number of iterations NT may for example be defined as follows for the following cryptographic treatments:
• COMP 128 : 8 itérations,• COMP 128: 8 iterations,
• DES : 16 itérations,• DES: 16 iterations,
• FEAL : 8 itérations, • IDEA : 8 itérations,• FEAL: 8 iterations, • IDEA: 8 iterations,
• SEED : 16 itérations.• SEED: 16 iterations.
Toutefois, ce leurre supplémentaire n'est efficace que si l'attaquant peut confondre une itération du traitement avec d'autres opérations, c'est-à-dire à la condition qu'elles produisent un signal du même ordre : temps d'exécution, consommation électrique, etc. _ _However, this additional lure is only effective if the attacker can confuse an iteration of the processing with other operations, that is to say on the condition that they produce a signal of the same order: execution time , power consumption, etc. _ _
En pratique, un processeur cryptographique dédié peut être nécessaire à cela, notamment pour que chaque traitement cryptographique élémentaire soit suffisamment rapide. Le temps de traitement, suffisamment faible pour être comparable aux autres opérations élémentaires du processeur principal, justifie non seulement la viabilité d'un traitement répété (même une centaine de fois, si nécessaire) mais aussi la pertinence du leurre consistant à faire croire en un traitement programmé intégralement sur le processeur principal, mettant en œuvre NT répétitions d'un sous-traitement caractéristique, alors qu'il est en fait effectué Nr fois sur le processeur cryptographique dédié.In practice, a dedicated cryptographic processor may be necessary for this, especially so that each elementary cryptographic processing is fast enough. The processing time, which is small enough to be comparable to the other basic operations of the main processor, justifies not only the viability of a repeated treatment (even a hundred times, if necessary) but also the relevance of the decoy consisting in making one believe in one. programmed processing integrally on the main processor, implementing NT repetitions of a characteristic subprocessing, while it is actually performed Nr times on the dedicated cryptographic processor.
Si le traitement cryptographique comporte un motif répété N fois, on peut plus généralement adopter pour NT un multiple M de N. En effet, un traitement réitéré M fois peut être organisé en N itérations d'un groupe de M/ N traitements, laissant ainsi apparaître le leurre d'un motif répété N fois. Dans le cas d'un traitement DES, on pourra par exemple fixer le nombre d'itérations à 32 ou 48, que l'on organisera en 16 itérations d'un paquet de 2 ou 3 traitements.If the cryptographic treatment comprises a repeating unit N times, we can more generally adopt for NT a multiple M of N. Indeed, a repetitive treatment M times can be organized in N iterations of a group of M / N treatments, thus leaving appear the lure of a repeated pattern N times. In the case of a DES treatment, it will be possible, for example, to fix the number of iterations at 32 or 48, which will be organized in 16 iterations of a packet of 2 or 3 treatments.
Le nombre total d'itérations n'a pas à être constant pour un traitement cryptographique donné, il peut dépendre des données publiques et/ou des données invariantes spécifiques au traitement. Par exemple, dans le cas d'un traitement DES, on peut le faire dépendre de la taille de la clé ; dans le cas d'un chiffrement ou d'un déchiffrement RSA, il peut dépendre de la taille et/ou de la valeur du module et de l'exposant.The total number of iterations need not be constant for a given cryptographic processing, it may depend on public data and / or processing-specific invariant data. For example, in the case of DES processing, it can be made dependent on the size of the key; in the case of RSA encryption or decryption, it may depend on the size and / or value of the module and the exponent.
En particulier, si la spécification d'un traitement cryptographique comporte un motif répété un nombre de fois variable, par exemple relié à la taille de la clé, on pourra adopter un nombre d'itérations du traitement complet égal au nombre effectif de répétition du motif, ou bien le fixer à un des nombres de . .In particular, if the specification of a cryptographic treatment comprises a repeated pattern a variable number of times, for example related to the size of the key, it will be possible to adopt a number of iterations of the complete processing equal to the effective number of repetition of the pattern , or fix it to one of the numbers of . .
répétitions recommandés par les cryptanalystes. Le nombre d'itérations pourra par exemple être défini ainsi pour les traitements cryptographiques suivants :repetitions recommended by cryptanalysts. The number of iterations may for example be defined as follows for the following cryptographic treatments:
• AES-128 : 10 itérations ; AES-192 : 12 itérations ; ASE-256 : 14 itérations. • SAFER : de 6 à 10 itérations.• AES-128: 10 iterations; AES-192: 12 iterations; ASE-256: 14 iterations. • SAFER: from 6 to 10 iterations.
• RC5 : de 12 à 16 itérations.• RC5: from 12 to 16 iterations.
Le nombre d'itérations peut aussi être dynamique et dépendre des ressources nécessaires pour effectuer le traitement (qui peuvent dépendre du texte, et en particulier de sa longueur) et/ou des ressources disponibles pour effectuer le traitement (telles que le temps d'exécution et/ou l'espace mémoire) et/ou d'un facteur aléatoire. Cela permet de trouver des compromis entre niveau de sécurisation (difficulté d'observer et de perturber), qualité de service (temps de traitement) et coût de service (mémoire devant être disponible dans le système).The number of iterations can also be dynamic and depend on the resources needed to perform the processing (which may depend on the text, and in particular on its length) and / or the resources available to perform the processing (such as the execution time and / or memory space) and / or a random factor. This makes it possible to find compromises between security level (difficulty of observing and disrupting), quality of service (processing time) and cost of service (memory to be available in the system).
Pour que ce procédé soit efficace même lorsque l'attaquant peut faire des observations fines de l'exécution, il faut rendre difficile la possibilité de reconnaître si une itération est effectuée sur des données correctes ou sur des données incorrectes.For this method to be effective even when the attacker can make fine observations of the execution, it must be made difficult to recognize whether an iteration is performed on correct data or on incorrect data.
Les itérations sur les données correctes peuvent être reconnues notamment parce qu'elles sont répétées, soit dans un même groupe d'itérations pour un traitement sécurisé (cas de plusieurs itérations effectuées sur les données correctes), soit au travers de plusieurs traitements sécurisés effectués sur des données identiques. L'usage de procédés de sécurisation additionnels, comme par exemple l'introduction de délais aléatoires, permet de rendre plus difficile l'observation de cette répétition. Mais on peut aussi se protéger en raffinant le procédé de sécurisation qui fait l'objet de la présente invention. Pour cela, on peut faire en sorte de rendre semblables les données correctes et incorrectes, à - -The iterations on the correct data can be recognized in particular because they are repeated, either in the same group of iterations for a secure processing (case of several iterations performed on the correct data), or through several secure processes carried out on identical data. The use of additional security methods, such as the introduction of random delays, makes it more difficult to observe this repetition. But we can also protect ourselves by refining the security process which is the object of the present invention. For this, we can make sure to make the correct and incorrect data the same. - -
la fois par leurs valeurs (par exemple, quelques bits de différence) et dans les usages faits de ces valeurs.both by their values (for example, a few bits of difference) and in the uses made of these values.
Pour rendre semblables les valeurs, on peut construire des données incorrectes en ne modifiant que légèrement certaines des données correctes du traitement. Il faut toutefois que les données incorrectes ne soient pas trop proches des données correctes, sinon des conclusions concernant l'observation des données incorrectes seraient alors également pertinentes à propos des données correctes, et l'effet de dissimulation serait perdu car les leurres n'en seraient pas. Il y a donc un compromis à trouver pour rendre les données incorrectes suffisamment différentes, mais pas trop. Pour cela, on peut considérer quels types de données et quelles fractions de ces données sont les plus intéressants à modifier.To make values similar, incorrect data can be constructed by only slightly modifying some of the correct data in the process. However, the incorrect data must not be too close to the correct data, otherwise conclusions concerning the observation of the incorrect data would also be relevant for the correct data, and the hiding effect would be lost because the decoys are not would not be. There is therefore a trade-off to make the data incorrect enough, but not too much. For this, we can consider which types of data and which fractions of these data are the most interesting to modify.
L'objet principal de la sécurisation est de dissimuler les données de clé lors d'un traitement cryptographique. Or, un traitement cryptographique peut dépendre non seulement de la valeur de clés mais aussi du texte sur lequel il opère. Cependant, dans la mesure où la trace d'exécution laissée par un traitement cryptographique dépend généralement plus de la valeur des données de clé que du texte, on aura avantage, pour construire des données incorrectes, à modifier les données de clé et non le texte.The main purpose of securing is to conceal key data during cryptographic processing. However, cryptographic processing may depend not only on the value of keys but also the text on which it operates. However, since the execution trace left by cryptographic processing is generally more dependent on the value of the key data than text, it will be advantageous to construct the incorrect data to modify the key data and not the text. .
Le choix des données de clé à modifier (en partie ou en totalité) pour fabriquer des données incorrectes peut dépendre du type de traitement cryptographique et de son implémentation. En pratique, les attaques physiques exploitent souvent les toutes premières ou les toutes dernières opérations effectuées par le traitement, qui portent sur des bits à des positions connues de la clé. Déterminer ces bits permet ensuite, de proche en proche, de déterminer la totalité de la clé. Pour masquer les données correctes, il importe donc de masquer en priorité les bits qui interviennent en premier ou en dernier dans l'implémentation du traitement. - -The choice of key data to be modified (in part or in whole) to make incorrect data may depend on the type of cryptographic processing and its implementation. In practice, physical attacks often exploit the very first or the last operations performed by the processing, which relate to bits at known positions of the key. Determining these bits then makes it possible, step by step, to determine the totality of the key. To hide the correct data, it is therefore important to first mask the bits that occur first or last in the implementation of the processing. - -
Par exemple, dans le cas du DES, on aura intérêt à modifier les derniers bits de la clé. En effet, les attaques du DES par DPA permettent de déterminer les bits d'une clé en commençant par le dernier puis, connaissant le dernier, en déterminant le précédent, et ainsi de suite jusqu'au premier. En plaçant des bits incorrects (au moins) en fin de clé, on rend difficile l'observation de la totalité des données de clé.For example, in the case of the DES, it will be advantageous to modify the last bits of the key. Indeed, DES attacks by DPA make it possible to determine the bits of a key starting from the last then, knowing the last, by determining the precedent, and so on until the first. Placing incorrect bits (at least) at the end of the key makes it difficult to observe all of the key data.
Dans le cas de clés constituées de valeurs ayant des propriétés particulières, comme par exemple dans le cas de RSA (qui repose sur des nombres premiers), il faut s'assurer que les modifications de données de clé préservent ces propriétés. Des données particulières, comme par exemple des données de clé totalement ou partiellement calculées, peuvent éventuellement être stockées dans le système pour permettre la génération facile de données de clé modifiées qui satisfont ces propriétés.In the case of keys consisting of values with particular properties, such as in the case of RSA (which is based on prime numbers), it must be ensured that the key data changes preserve these properties. Particular data, such as fully or partially calculated key data, may optionally be stored in the system to allow easy generation of modified key data that satisfies these properties.
Dans la mesure où des fractions de données de clé peuvent être ignorées dans certains traitements cryptographiques, par exemple parce qu'elles sont redondantes, il faut aussi s'assurer que les valeurs incorrectes diffèrent suffisamment des valeurs correctes pour garantir que le traitement diffère opérationnellement. C'est le cas en particulier des clés DES, qui n'exploitent en fait que 56 bits sur 64.Since key data fractions may be ignored in some cryptographic processes, for example because they are redundant, it must also be ensured that the incorrect values are sufficiently different from the correct values to ensure that the processing operationally differs. This is the case in particular DES keys, which in fact only operate 56 bits out of 64.
Certaines observations physiques peuvent aussi fournir des renseignements sur la valeur des données manipulées lors d'un traitement, renseignements éventuellement relatifs, permettant juste de classer ou de comparer des mesures. C'est le cas par exemple du poids de Hamming (nombre de bits positionnés à 1), dont dépend la consommation électrique du circuit. Lors de la modification des données pour fabriquer des données incorrectes, on aura donc avantage à préserver les invariants qui sont observables. Par exemple, _ _Some physical observations may also provide information on the value of the data manipulated during a processing, possibly related information, just to classify or compare measures. This is the case, for example, with the Hamming weight (number of bits set to 1), on which the circuit's electrical consumption depends. When modifying the data to produce incorrect data, it will be advantageous to preserve the invariants that are observable. For example, _ _
contre la SPA, on pourra faire en sorte que le poids de Hamming des données de clé incorrectes soit identique à celui des données de clé correctes.against the SPA, it will be possible to ensure that the Hamming weight of the incorrect key data is identical to that of the correct key data.
Le fait de rendre les valeurs semblables peut aussi avoir un impact sur le nombre d'exemplaires différents des données incorrectes utilisées dans l'ensemble des itérations. En effet, sous peine de rendre inefficace le procédé, il ne faut pas que l'on puisse identifier les itérations effectuées sur les données correctes par le seul fait que, comparées à celles qui portent sur des données incorrectes, elles sont en petit nombre et/ou identiques.Making the values similar may also affect the number of different copies of the incorrect data used in the set of iterations. Indeed, at the risk of rendering the process ineffective, it should not be possible to identify the iterations made on the correct data simply because, compared with those relating to incorrect data, they are in small numbers and / or identical.
Ainsi, dans le cas où une seule des itérations porte sur les données correctes, il est bon que toutes les itérations sur des données incorrectes soient effectuées avec des ensembles de valeurs différentes. Il est alors difficile d'identifier l'itération correcte parmi les autres. Plus généralement, si l'on effectue NC itérations correctes sur un total de NT itérations, il est bon que les itérations sur des données incorrectes soient composées, autant que possible, à partir de NT /NC ensembles de valeurs différentes, chacun de ces ensembles étant utilisé NC fois parmi les NT itérations, le choix des itérations portant sur tel ou tel ensemble de valeurs (correctes ou incorrectes) restant totalement aléatoire. Dans le cas où Nr et NC sont imposés par d'autres considérations, la division entière NT /NC peut avoir un reste différent de zéro. On peut alors choisir NT /NC ou NT /NC + 1 ensembles de valeurs, chacun étant utilisé NC ou NC + 1 fois.Thus, in the case where only one of the iterations relates to the correct data, it is good that all the iterations on incorrect data are performed with sets of different values. It is difficult to identify the correct iteration among the others. More generally, if one performs NC correct iterations on a total of NT iterations, it is good that the iterations on incorrect data are composed, as far as possible, from NT / NC sets of different values, each of these sets being used NC times among the NT iterations, the choice of the iterations relating to this or that set of values (correct or incorrect) remaining totally random. In the case where Nr and NC are imposed by other considerations, the entire division NT / NC can have a rest different from zero. One can then choose NT / NC or NT / NC + 1 sets of values, each being used NC or NC + 1 time.
Par exemple, un traitement DES pourra avantageusement être sécurisé par 16 itérations composées à partir de 8 ensembles différents de valeurs (1 avec des valeurs correctes, 7 avec des valeurs incorrectes), chacun utilisé 2 fois au hasard des 16 itérations. Une observation fine pourrait éventuellement déceler que les 16 itérations peuvent se regrouper en 8 paires d'itérations sur des données identiques, mais sans pouvoir toutefois déterminer laquelle de ces paires correspond aux données correctes. . _For example, DES processing may advantageously be secured by 16 iterations composed from 8 different sets of values (1 with correct values, 7 with incorrect values), each used twice randomly from the 16 iterations. A fine observation could possibly reveal that the 16 iterations can be grouped into 8 pairs of iterations on identical data, but without however being able to determine which of these pairs corresponds to the correct data. . _
En pratique, il est bon de combiner ce procédé à d'autres contre-mesures afin de rendre différentes entre elles chacune des itérations, même lorsqu'elles portent sur des valeurs égales, par exemple en insérant des délais aléatoires dans chaque itération.In practice, it is good to combine this method with other countermeasures in order to make each of the iterations different, even when they relate to equal values, for example by inserting random delays in each iteration.
Pour rendre semblables les usages qui sont faits des données correctes et incorrectes, on peut précalculer certaines informations et valeurs dans une phase initiale (avant d'effectuer la première itération) et rendre uniforme ultérieurement (lors des itérations) la manière d'accéder à ces informations et valeurs précalculées, évitant ainsi qu'une observation puisse facilement les distinguer. On peut notamment effectuer les prétraitements suivants :To make similar uses that are made correct and incorrect data, one can precalculate certain information and values in an initial phase (before doing the first iteration) and make uniform later (during iterations) how to access these precalculated information and values, thus avoiding an observation that can easily distinguish them. In particular, the following pretreatments can be carried out:
• On peut préparer les choix d'itérations : lesquelles sont à faire sur des données correctes, lesquelles sont à faire sur des données incorrectes.• You can prepare the iteration choices: which are to be done on correct data, which are to be done on incorrect data.
• On peut préparer les valeurs effectives des données à utiliser pour les différentes itérations : l'ensemble des valeurs correspondant aux données correctes, et les différents ensembles de valeurs correspondant à des données incorrectes.• The actual values of the data to be used for the different iterations can be prepared: the set of values corresponding to the correct data, and the different sets of values corresponding to incorrect data.
• On peut faire en sorte que chaque itération accède de la même manière aux données précalculées. Pour cela, on peut par exemple préparer dans une ou plusieurs tables des choix et/ou valeurs à utiliser pour chacune des itérations (avec des répétitions éventuelles), et accéder à ces tables lors des itérations via le simple index de l'itération courante, ou une fonction de cet index.• It is possible to make each iteration access the precomputed data in the same way. For this, one can for example prepare in one or more tables of the choices and / or values to be used for each of the iterations (with possible repetitions), and access these tables during iterations via the simple index of the current iteration, or a function of this index.
Il devient ainsi très difficile de savoir si une itération opère sur des données correctes ou incorrectes. II faut noter que le procédé de sécurisation au cœur de la présente invention peut facilement être combiné à d'autres procédés de sécurisation pour augmenter d'autant la tâche d'un attaquant.It becomes very difficult to know if an iteration operates on correct or incorrect data. It should be noted that the security method at the heart of the present invention can easily be combined with other security methods to increase the task of an attacker.
Cette combinaison peut s'effectuer à deux niveaux : un autre procédé peut en effet être employé, d'une part, pour sécuriser un traitement élémentaire (c'est- à-dire une itération) et, d'autre part, pour sécuriser l'enchaînement des traitements répétés. Par exemple, un délai aléatoire peut être introduit, d'une part, parmi les opérations du traitement élémentaire, ce qui a un impact à chaque itération et, d'autre part, entre chaque itération du traitement.This combination can be carried out on two levels: another method can in fact be used, on the one hand, to secure an elementary processing (that is to say an iteration) and, on the other hand, to secure the sequence of repeated treatments. For example, a random delay can be introduced, on the one hand, among the operations of the elementary processing, which has an impact on each iteration and, on the other hand, between each iteration of the processing.
Le procédé qui fait l'objet de la présente invention peut évidemment être mis en œuvre quand on a toute liberté sur l'implémentation du traitement élémentaire. Mais il peut aussi être mis en œuvre lorsque l'on n'a pas la maîtrise du traitement élémentaire sous-jacent, ce qui peut être le cas quand on utilise un crypto-processeur ou une librairie cryptographique fourni par un tiers. Le moyen de traitement est alors utilisé comme une « boîte noire » à chaque itération.The method which is the subject of the present invention can obviously be implemented when there is full freedom on the implementation of the elementary treatment. But it can also be implemented when one does not have the control of the underlying elementary treatment, which can be the case when one uses a crypto-processor or a cryptographic library supplied by a third party. The processing means is then used as a "black box" at each iteration.
Ce procédé de sécurisation peut être mis en œuvre au niveau logiciel, en programmant l'enchaînement des différentes itérations d'un traitement élémentaire. Il peut aussi être mis en œuvre au niveau matériel, à l'aide d'un circuit qui enchaîne les différentes itérations.This security method can be implemented at the software level, by programming the sequence of the different iterations of an elementary processing. It can also be implemented at the hardware level, using a circuit that connects the different iterations.
Puisque les itérations sont indépendantes les unes des autres, elles peuvent aussi avoir lieu en parallèle. Ce parallélisme permet de rendre le procédé utilisable dans les cas où un traitement élémentaire ne peut pas être répété un trop grand nombre de fois sous peine de rendre le traitement sécurisé inexploitable car trop long en temps d'exécution. Dans le cas d'une mise en œuvre parallèle, on pourra veiller à désynchroniser les différents processus ou processeurs effectuant les itérations, afin de brouiller les observations et rendre plus difficile la distinction des différents traitements.Since the iterations are independent of one another, they can also occur in parallel. This parallelism makes it possible to make the process usable in cases where an elementary treatment can not be repeated too many times, otherwise the processing will be rendered unusable because it is too long in execution time. In the case of a parallel implementation, we can ensure desynchronize the different processes or processors performing the iterations, to scramble the observations and make it more difficult to distinguish different treatments.
Bien entendu, l'invention concerne le système d'exécution mettant en œuvre un ou plusieurs traitements cryptographiques, dans lequel certains des traitements cryptographiques sont sécurisés contre des attaques physiques conformément au procédé précédemment décrit. Dans ce système d'exécution, les calculs cryptographiques élémentaires des traitements cryptographiques sécurisés pourront être mis en œuvre par des instructions pour le processeur du système et/ou via un crypto-processeur et/ou via une librairie cryptographique fournie par un tiers. L'enchaînement des différentes itérations d'un traitement cryptographique élémentaire pourra être implémenté au niveau logiciel ou mis en œuvre au niveau matériel, à l'aide d'un circuit qui effectue les itérations en séquence et/ou en parallèle, de manière désynchronisée. Of course, the invention relates to the execution system implementing one or more cryptographic processes, in which some of the cryptographic processes are secured against physical attacks in accordance with the previously described method. In this execution system, the basic cryptographic computations of secure cryptographic processing can be implemented by instructions for the system processor and / or via a crypto-processor and / or via a cryptographic library provided by a third party. The sequence of different iterations of a basic cryptographic processing can be implemented at the software level or implemented at the hardware level, using a circuit that performs the iterations in sequence and / or in parallel, in a desynchronized manner.

Claims

_ .Revendications _ .Referications
1. Procédé de sécurisation d'un traitement cryptographique contre des attaques physiques, caractérisé en ce que tout ou partie dudit traitement cryptographique est réitéré plusieurs fois : une ou plusieurs fois sur les données correctes, les autres fois sur des données incorrectes en vue de leurrer un attaquant, le choix des itérations effectuées sur des données correctes ou incorrectes étant fait de manière aléatoire, et les itérations effectuées sur les données incorrectes étant ignorées dans le résultat final du traitement.A method for securing cryptographic processing against physical attacks, characterized in that all or part of said cryptographic processing is repeated several times: one or more times on the correct data, the other times on incorrect data in order to lure an attacker, the choice of iterations made on correct or incorrect data being done randomly, and the iterations made on the incorrect data being ignored in the final result of the processing.
2. Procédé selon la revendication 1, caractérisé en ce que, dans le cas où le nombre d'itérations effectuées sur les données correctes est supérieur ou égal à deux, si les itérations effectuées sur les données correctes ont des empreintes et/ou des résultats différents, alors le programme effectue un traitement particulier.2. Method according to claim 1, characterized in that, in the case where the number of iterations performed on the correct data is greater than or equal to two, if the iterations performed on the correct data have fingerprints and / or results. different, then the program performs a particular treatment.
3. Procédé selon la revendication 2, caractérisé en ce que le traitement particulier du programme dans le cas où des empreintes et/ou des résultats d'itérations diffèrent consiste (1) à sécuriser certaines données et/ou (2) à interrompre, définitivement ou non, son exécution et/ou, quand c'est matériellement possible, (3) à avertir l'utilisateur du dysfonctionnement par un signal sonore ou visuel.3. Method according to claim 2, characterized in that the particular processing of the program in the case where footprints and / or results of iterations differ (1) to secure certain data and / or (2) to interrupt, permanently or not, its execution and / or, when it is physically possible, (3) to warn the user of the malfunction by an audible or visual signal.
4. Procédé selon la revendication 1, caractérisé en ce que, si le traitement cryptographique comporte un motif algorithmique interne répété, le nombre total d'itérations Nr est égal au nombre de répétitions N dudit motif, ou bien à un multiple M dudit nombre de répétitions N, les itérations étant alors regroupées en N paquets de M/ N répétitions du motif. . -4. Method according to claim 1, characterized in that, if the cryptographic processing comprises a repeated internal algorithmic pattern, the total number of iterations Nr is equal to the number of repetitions N of said pattern, or to a multiple M of said number of N repetitions, the iterations then being grouped into N packets of M / N repetitions of the pattern. . -
5. Procédé selon la revendication 1, caractérisé en ce que le nombre total d'itérations NT est déterminé en fonction :5. Method according to claim 1, characterized in that the total number of iterations NT is determined according to:
- des données publiques et/ou invariantes spécifiques au traitement cryptographique, notamment les tailles des données de clé, et/oupublic and / or invariant data specific to the cryptographic processing, especially the sizes of the key data, and / or
- des ressources nécessaires pour effectuer ledit traitement (lesdites ressources dépendant notamment du texte sur lequel opère ledit traitement, et/ou de la taille de ce texte), et/ouresources necessary to carry out said processing (said resources depending in particular on the text on which said treatment operates, and / or on the size of this text), and / or
- des ressources disponibles pour effectuer ledit traitement, notamment le temps d'exécution et/ou l'espace mémoire,resources available for performing said processing, in particular the execution time and / or the memory space,
- d'un facteur aléatoire.- a random factor.
6. Procédé selon la revendication I5 caractérisé en ce que les données incorrectes ne concernent que les données de clé (et non les textes).6. The method of claim I 5 characterized in that the incorrect data relate only to the key data (not texts).
7. Procédé selon la revendication 1, caractérisé en ce que les données incorrectes sont déduites des données correctes par une transformation portant sur les premiers et/ou les derniers bits de clé manipulés dans l'implémentation du traitement cryptographique.7. Method according to claim 1, characterized in that the incorrect data are deduced from the correct data by a transformation relating to the first and / or last key bits manipulated in the implementation of the cryptographic processing.
8. Procédé selon la revendication 1, caractérisé en ce que les données incorrectes sont déduites des données correctes par une transformation aléatoire conservant les mesures observables des donnés de clé (notamment le poids de Hamming).8. Method according to claim 1, characterized in that the incorrect data are deduced from the correct data by a random transformation preserving the observable measurements of the key data (in particular the Hamming weight).
9. Procédé selon la revendication 1, caractérisé en ce que, lorsque ledit traitement cryptographique impose des propriétés spécifiques pour les données de clé qu'il exploite, les données de clé incorrectes sont produites à partir de données particulières stockées dans le système, de manière à garantir lesdites propriétés spécifiques. 006/032746 " z^ "The method according to claim 1, characterized in that, when said cryptographic processing imposes specific properties for the key data it exploits, the incorrect key data is produced from particular data stored in the system, such as to guarantee said specific properties. 006/032746 " z ^"
10. Procédé selon la revendication 1, caractérisé en ce que, si l'on effectue NC itérations sur des données correctes sur un total de NT itérations, les itérations sur des données incorrectes sont composées à partir de NT /NC ensembles de valeurs différentes, chacun de ces ensembles étant utilisé NC fois parmi les NT itérations, le choix des itérations portant sur tel ou tel ensemble de valeurs (correctes ou incorrectes) restant aléatoire.Method according to claim 1, characterized in that, if NC iterations are performed on correct data over a total of NT iterations, the iterations on incorrect data are composed from NT / NC sets of different values, each of these sets being used NC times among the NT iterations, the choice of the iterations relating to this or that set of values (correct or incorrect) remaining random.
11. Procédé selon la revendication 1 , caractérisé en ce que les choix des itérations effectuées sur des données incorrectes et/ou les valeurs des données pour les itérations sur des données incorrectes sont calculés avant la toute première itération.11. Method according to claim 1, characterized in that the choices of the iterations performed on the incorrect data and / or the data values for the iterations on the incorrect data are calculated before the very first iteration.
12. Procédé selon la revendication 11, caractérisé en ce que lesdits choix et/ou lesdites valeurs sont stockés, avec ou sans répétition, dans une ou plusieurs tables, et l'implémentation dudit traitement cryptographique accède à ces tables via une fonction de l'index de l'itération courante.12. Method according to claim 11, characterized in that said choices and / or said values are stored, with or without repetition, in one or more tables, and the implementation of said cryptographic processing accesses these tables via a function of the index of the current iteration.
13. Procédé selon la revendication 1, caractérisé en ce qu'une combinaison avec d'autres procédés de sécurisation de traitement cryptographique s'effectue au niveau de l'implémentation d'un traitement élémentaire et/ou au niveau de l'implémentation de la répétition des traitements élémentaires.13. The method as claimed in claim 1, characterized in that a combination with other methods of securing cryptographic processing takes place at the level of the implementation of an elementary processing and / or at the level of the implementation of the method. repetition of elementary treatments.
14. Procédé selon la revendication 13, caractérisé en ce que des délais aléatoires sont insérés à l'intérieur de chaque itération et/ou entre chaque itération. 006/032746 " ΔΌ " 14. The method of claim 13, characterized in that random delays are inserted within each iteration and / or between each iteration. 006/032746 "ΔΌ"
15. Procédé selon l'une des revendications 1 à 14, caractérisé en ce que le nombre d'itérations sur des données correctes NC est égal à 2 et le nombre total d'itérations NT est défini de la manière suivante :15. Method according to one of claims 1 to 14, characterized in that the number of iterations on correct data NC is equal to 2 and the total number of iterations NT is defined as follows:
- si le traitement cryptographique comprend un calcul cryptographique de type DES ou SEED, alors NT= 16,if the cryptographic processing comprises a DES or SEED type cryptographic calculation, then NT = 16,
- si le traitement cryptographique comprend un calcul cryptographique de type COMP128, FEAL ou IDEA, alors Nr= 8,if the cryptographic processing comprises a cryptographic calculation of COMP128, FEAL or IDEA type, then Nr = 8,
- si le traitement cryptographique comprend un calcul cryptographique de type AES- 128, AES- 192 ou AES-256, alors Nr est respectivement égal à 10, 12 ou 14,if the cryptographic processing comprises a cryptographic calculation of the type AES-128, AES-192 or AES-256, then Nr is respectively equal to 10, 12 or 14,
- si le traitement cryptographique comprend un calcul cryptographique de type SAFER, alors 6 ≤Nr≤ 10,if the cryptographic processing comprises a SAFER type cryptographic calculation, then 6 ≤Nr 10 10,
- si le traitement cryptographique comprend un calcul cryptographique de type RC5, alors 12 ≤ NT ≤ 16.if the cryptographic processing comprises a cryptographic calculation of the RC5 type, then 12 ≤ NT ≤ 16.
16. Système d'exécution mettant en oeuvre un ou plusieurs traitements cryptographiques, caractérisé en ce que certains desdits traitements cryptographiques sont sécurisés contre des attaques physiques conformément au procédé selon l'une des revendications 1 à 15.16. Execution system implementing one or more cryptographic processes, characterized in that some of said cryptographic treatments are secured against physical attacks in accordance with the method according to one of claims 1 to 15.
17. Système d'exécution selon la revendication 16, caractérisé en ce que les traitements cryptographiques élémentaires des traitements cryptographiques sécurisés sont mis en oeuvre par des instructions pour le processeur du système et/ou via un ou plusieurs crypto-processeurs et/ou via une ou plusieurs librairies cryptographiques fournies par un tiers. 17. The execution system as claimed in claim 16, characterized in that the elementary cryptographic processes of the secure cryptographic processing are implemented by instructions for the processor of the system and / or via one or more crypto-processors and / or via a or several cryptographic libraries provided by a third party.
18. Système d'exécution selon la revendication 16, caractérisé en ce que l'enchaînement des différentes itérations d'un traitement cryptographique élémentaire est implémenté au niveau logiciel ou mis en œuvre au niveau matériel à l'aide d'un circuit qui effectue les itérations en séquence et/ou en parallèle, et de manière désynchronisée. 18. The execution system according to claim 16, characterized in that the sequence of the different iterations of a basic cryptographic processing is implemented at the software level or implemented at the hardware level using a circuit which performs the iterations in sequence and / or in parallel, and in a desynchronized manner.
EP05800594A 2004-09-22 2005-09-01 Method for securing cryptographic processing by means of decoys Withdrawn EP1792435A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0410010A FR2875657B1 (en) 2004-09-22 2004-09-22 METHOD OF SECURING CRYPTOGRAPHIC TREATMENTS THROUGH LURES.
PCT/FR2005/002193 WO2006032746A1 (en) 2004-09-22 2005-09-01 Method for securing cryptographic processing by means of decoys

Publications (1)

Publication Number Publication Date
EP1792435A1 true EP1792435A1 (en) 2007-06-06

Family

ID=34950093

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05800594A Withdrawn EP1792435A1 (en) 2004-09-22 2005-09-01 Method for securing cryptographic processing by means of decoys

Country Status (4)

Country Link
EP (1) EP1792435A1 (en)
BR (1) BRPI0515587A (en)
FR (1) FR2875657B1 (en)
WO (1) WO2006032746A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790347A1 (en) * 1999-02-25 2000-09-01 St Microelectronics Sa METHOD FOR SECURING A CHAIN OF OPERATIONS CARRIED OUT BY AN ELECTRONIC CIRCUIT IN THE CONTEXT OF THE EXECUTION OF AN ALGORITHM
WO2004053684A2 (en) * 2002-12-12 2004-06-24 Arm Limited Processing activity masking in a data processing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
FR2825542B1 (en) * 2001-05-31 2003-08-29 Sagem METHOD BASED ON A ROUND REPETITION BLOCK ENCRYPTION ALGORITHM AND DEVICE USING THE SAME
FR2838262B1 (en) * 2002-04-08 2004-07-30 Oberthur Card Syst Sa METHOD FOR SECURING ELECTRONICS WITH ENCRYPTED ACCESS
FR2844409B1 (en) * 2002-09-05 2004-12-24 Sagem PROTECTION OF A SECRET KEY FOR AUTHENTICATION ALGORITHM IN A MOBILE RADIOTELEPHONE
EP1601132B1 (en) * 2004-05-24 2006-11-15 Research In Motion Limited Table Masking for Resistance to Power Analysis Attacks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790347A1 (en) * 1999-02-25 2000-09-01 St Microelectronics Sa METHOD FOR SECURING A CHAIN OF OPERATIONS CARRIED OUT BY AN ELECTRONIC CIRCUIT IN THE CONTEXT OF THE EXECUTION OF AN ALGORITHM
WO2004053684A2 (en) * 2002-12-12 2004-06-24 Arm Limited Processing activity masking in a data processing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HOLLMANN H D L ET AL: "Protection of software algorithms executed on secure modules", FUTURE GENERATIONS COMPUTER SYSTEMS, ELSEVIER SCIENCE PUBLISHERS. AMSTERDAM, NL, vol. 13, no. 1, 1 July 1997 (1997-07-01), pages 55 - 63, XP004081709, ISSN: 0167-739X, DOI: 10.1016/S0167-739X(97)89111-X *
See also references of WO2006032746A1 *

Also Published As

Publication number Publication date
BRPI0515587A (en) 2008-07-29
WO2006032746A1 (en) 2006-03-30
FR2875657A1 (en) 2006-03-24
FR2875657B1 (en) 2006-12-15

Similar Documents

Publication Publication Date Title
EP2520041B1 (en) Method for generating a look-up table for a cryptographic white box
FR2941342A1 (en) CRYPTOGRAPHIC CIRCUIT PROTECTED AGAINST ATTACKS IN OBSERVATION, IN PARTICULAR OF HIGH ORDER.
EP2215768A2 (en) Method and devices for protecting a microcircuit from attacks for obtaining secret data
EP2893431A1 (en) Protection against side channels
EP3320471B1 (en) System and method for hardware ip modules authentication and licensing
FR3033965A1 (en)
CA2712178A1 (en) Countermeasure method and devices for asymmetric cryptography
WO2005022820A1 (en) Method for the secure application of a cryptographic algorithm of the rsa type and corresponding component
WO2012062994A1 (en) Protection against passive sniffing
EP1904921A1 (en) Cryptographic method for securely implementing an exponentiation and related component
EP1745366A1 (en) Method for protecting a cryptographic assembly by a homographic masking
EP2326042B1 (en) Method for detecting an attack by fault injection
EP2284748B1 (en) Countermeasure for the protection of stored data
WO2000050977A1 (en) Method for making secure a sequence of operations performed by an electronic circuit in the execution of an algorithm
EP2336931B1 (en) Method for signature verification
WO2003042812A2 (en) Securing a pseudo-random generator
CA2988357C (en) Encryption method, corresponding encryption method, devices and programs
EP1792435A1 (en) Method for securing cryptographic processing by means of decoys
WO2019025516A1 (en) Device for detecting lce attack and taking counter-measures
FR3069993A1 (en) DEVICES AND METHODS FOR MASKING RSA ENCRYPTION OPERATIONS
EP2599256B1 (en) Method and device for randomizing a secret key for protecting against attacks by auxiliary channels
EP1442556B1 (en) Method for secure operation of a functional module in an electronic component and corresponding component
FR2818846A1 (en) Method for protecting electronic component executing cryptographic algorithm against current measurement attack, comprises factorization of exponential in algorithm and permutation of the factors
FR3085215A1 (en) DEVICES AND METHODS FOR MASKING ECC CRYPTOGRAPHY OPERATIONS
WO2009083371A1 (en) Method for securing a conditional connection, information carrier, software, secured system, and security processor for said method

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20070321

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20070730

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: TRUSTED LOGIC

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20180323

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20180803