EP1792435A1 - Procede de securisation de traitements cryptographiques par le biais de leurres - Google Patents

Procede de securisation de traitements cryptographiques par le biais de leurres

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)
English (en)
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/fr
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

Dans le procédé de sécurisation d'un traitement cryptographique contre des attaques physiques selon l'invention, 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.

Description

_ _
PROCEDE DE SECURISATION DE TRAITEMENTS CRYPTOGRAPHIOUES PAR LE BIAIS DE LEURRES.
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é.
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.
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.
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. _ _
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.
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.
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.
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-
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.
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é.
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. _ _
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.
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.
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.
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é.
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.
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.
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 :
• 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.
• 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.
• 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. . _
• 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.)
• 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.
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.
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.
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 _ _
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.
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.
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.
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.
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.
Des raffinements pourront être apportés concernant le nombre de calculs itérés :
• 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.
• Le nombre total d'itérations pourra aussi être déterminé en fonction :
- des données publiques et/ou invariantes spécifiques au traitement cryptographique, notamment les tailles des données de clé, et/ou
- 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/ou
- des ressources disponibles pour effectuer ledit traitement, notamment le temps d'exécution et/ou l'espace mémoire,
- d'un facteur aléatoire.
Des raffinements pourront également être apportés à la construction des données incorrectes : . _
• Les données incorrectes pourront ne concerner que les données de clé (et non les textes).
• 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.
• 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.
• 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).
Des raffinements particuliers pourront aussi être apportés à l'enchaînement des traitements itérés :
• 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.
Des raffinements pourront également être apportés dans la dissimulation de la construction des données incorrectes : _ _
• 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.
• 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.
Le procédé selon l'invention pourra aussi être combiné avec d'autres formes de sécurisation :
• 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.
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 :
• 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,
• 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, _ _
• 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,
• si le traitement cryptographique comprend un calcul cryptographique de type SAFER ("Secure And Fast Encryption Routine"), alors β ≤ NT≤ 10,
• si le traitement cryptographique comprend un calcul cryptographique de type RC5 ("Rivest Cipher 5"), alors 12 ≤ NT ≤ 16.
Ce procédé pourra être mis en œuvre par des moyens divers :
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.
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.
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 . _
observations utiles et de réaliser des synchronisations fines avec un traitement en cours d'exécution.
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.
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).
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.
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.
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é . _
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.
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.
Selon cette logique, le nombre d'itérations NT pourra par exemple être défini ainsi pour les traitements cryptographiques suivants :
• COMP 128 : 8 itérations,
• DES : 16 itérations,
• FEAL : 8 itérations, • IDEA : 8 itérations,
• SEED : 16 itérations.
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. _ _
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é.
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.
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.
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 . .
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 :
• AES-128 : 10 itérations ; AES-192 : 12 itérations ; ASE-256 : 14 itérations. • SAFER : de 6 à 10 itérations.
• RC5 : de 12 à 16 itérations.
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).
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.
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, à - -
la fois par leurs valeurs (par exemple, quelques bits de différence) et dans les usages faits de ces valeurs.
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.
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.
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. - -
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é.
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.
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.
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, _ _
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.
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.
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.
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. . _
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.
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 :
• 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.
• 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.
• 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.
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.
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.
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.
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.
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.
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.

Claims

_ .Revendications
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.
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.
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.
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. . -
5. Procédé selon la revendication 1, caractérisé en ce que le nombre total d'itérations NT est déterminé en fonction :
- des données publiques et/ou invariantes spécifiques au traitement cryptographique, notamment les tailles des données de clé, et/ou
- 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/ou
- des ressources disponibles pour effectuer ledit traitement, notamment le temps d'exécution et/ou l'espace mémoire,
- d'un facteur aléatoire.
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).
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.
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).
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^ "
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.
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.
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.
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.
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 " ΔΌ "
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 :
- si le traitement cryptographique comprend un calcul cryptographique de type DES ou SEED, alors NT= 16,
- si le traitement cryptographique comprend un calcul cryptographique de type COMP128, FEAL ou IDEA, alors 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,
- si le traitement cryptographique comprend un calcul cryptographique de type SAFER, alors 6 ≤Nr≤ 10,
- si le traitement cryptographique comprend un calcul cryptographique de type RC5, alors 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.
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.
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.
EP05800594A 2004-09-22 2005-09-01 Procede de securisation de traitements cryptographiques par le biais de leurres Withdrawn EP1792435A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0410010A FR2875657B1 (fr) 2004-09-22 2004-09-22 Procede de securisation de traitements cryptographiques par le biais de leurres.
PCT/FR2005/002193 WO2006032746A1 (fr) 2004-09-22 2005-09-01 Procede de securisation de traitements cryptographiques par le biais de leurres

Publications (1)

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

Family

ID=34950093

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05800594A Withdrawn EP1792435A1 (fr) 2004-09-22 2005-09-01 Procede de securisation de traitements cryptographiques par le biais de leurres

Country Status (4)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790347A1 (fr) * 1999-02-25 2000-09-01 St Microelectronics Sa Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme
WO2004053684A2 (fr) * 2002-12-12 2004-06-24 Arm Limited Masquage de l'activite de traitement dans un systeme de traitement de donnees

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2298990A1 (fr) * 2000-02-18 2001-08-18 Cloakware Corporation Methode et systeme de resistance a l'analyse de puissance
FR2825542B1 (fr) * 2001-05-31 2003-08-29 Sagem Procede fonde sur un algorithme de chiffrage par bloc a repetition de rondes et dispositif le mettant en oeuvre
FR2838262B1 (fr) * 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
FR2844409B1 (fr) * 2002-09-05 2004-12-24 Sagem Protection d'une cle secrete pour algorithme d'authentification dans un radiotelephone mobile
EP1601132B1 (fr) * 2004-05-24 2006-11-15 Research In Motion Limited Masquage de table pour résister aux attaques par analyse de puissance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790347A1 (fr) * 1999-02-25 2000-09-01 St Microelectronics Sa Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme
WO2004053684A2 (fr) * 2002-12-12 2004-06-24 Arm Limited Masquage de l'activite de traitement dans un systeme de traitement de donnees

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
FR2875657A1 (fr) 2006-03-24
BRPI0515587A (pt) 2008-07-29
FR2875657B1 (fr) 2006-12-15
WO2006032746A1 (fr) 2006-03-30

Similar Documents

Publication Publication Date Title
EP2380306B1 (fr) Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve
EP2520041B1 (fr) Procede de generation de table de correspondance pour une boite blanche cryptographique
EP2215768A2 (fr) Procede et dispositifs de protection d'un microcircuit contre des attaques visant a decouvrir une donnee secrete
WO2014037657A1 (fr) Protection contre canaux auxiliaires
EP1745366A1 (fr) Procede de protection d"un ensemble cryptographique par masquage homographique
EP2638660B1 (fr) Protection contre les ecoutes passives
EP3320471A1 (fr) Systeme et procede d'authentification et de licence ip de modules hardware
EP1652336A1 (fr) Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe
EP2326042B1 (fr) Procédé de détection d'une attaque par injection de fautes
EP2284748B1 (fr) Procédé de contremesure pour protéger des données mémorisées
EP2336931B1 (fr) Procédé de vérification de signature
EP1163562A1 (fr) Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme
EP1449067A2 (fr) Securisation d'un generateur pseudo-aleatoire
EP1792435A1 (fr) Procede de securisation de traitements cryptographiques par le biais de leurres
WO2019025516A1 (fr) Dispositif de détection d'attaque lce et de contre-mesure
FR3069993A1 (fr) Dispositifs et procedes de masquage d'operations de chiffrement rsa
EP1442556B1 (fr) Procédé securisé de mise en oeuvre d'un algorithme de cryptographie et composant correspondant
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
FR3085215A1 (fr) Dispositifs et procedes de masquage d'operations de cryptographie ecc
EP2294750B1 (fr) Procede et systeme tracables de diffusion de donnees numeriques
FR2836312A1 (fr) Procede de generation de cles securisees pour un algorithme cryptographique
FR2995110A1 (fr) Optimisation memoire cryptographique
EP2225693A1 (fr) Procede de securisation d'un branchement conditionnel, support d'informations, programme, systeme securise et processeur de securite pour ce procede
CA3183198A1 (fr) Dispositif, methode et programme pour une communication securisee entre boites blanches

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