WO2007099164A1 - Procede de securisation de l'execution d'une suite d'etapes logiquement enchainees - Google Patents

Procede de securisation de l'execution d'une suite d'etapes logiquement enchainees Download PDF

Info

Publication number
WO2007099164A1
WO2007099164A1 PCT/EP2007/051998 EP2007051998W WO2007099164A1 WO 2007099164 A1 WO2007099164 A1 WO 2007099164A1 EP 2007051998 W EP2007051998 W EP 2007051998W WO 2007099164 A1 WO2007099164 A1 WO 2007099164A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret data
execution
data
transformed
steps
Prior art date
Application number
PCT/EP2007/051998
Other languages
English (en)
Inventor
Mathieu Ciet
Karine Villegas
Benoît FEIX
Original Assignee
Gemplus
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 Gemplus filed Critical Gemplus
Publication of WO2007099164A1 publication Critical patent/WO2007099164A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7242Exponent masking, i.e. key masking, e.g. A**(e+r) mod n; (k+r).P
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred

Definitions

  • the present invention relates to the field of securing the execution of a sequence of logically linked steps, such as an algorithm or a computer program, particularly in the context of smart cards, and more particularly to a method of securing the execution of such a sequence of steps in which at least one determined step has at least one predecessor step and must use secret data for its execution.
  • a potential attacker physically disrupts the integrated circuit of the chip, in particular by the injection of light rays or electromagnetic waves. It can thus modify the behavior of this integrated circuit and thus divert the software code to another type of execution.
  • the attacker In so-called "side-channel” attacks, the attacker analyzes variables of the environment of the chip, such as its electromagnetic radiation or its energy consumption. He can then, using analytical methods and statistical tools, deduce secret information that emanates from the chip. It is for example thus possible to find a private key when the developer has not been able to protect himself properly with the help of adequate protections. Such protections are known to those skilled in the art.
  • the present invention is more particularly intended to guard against the combined attacks in which a fault injection is followed by an analysis of the information leaks. More specifically, it aims to counter this type of attack so that even if a code derivation takes place, it does not leave the door open to a hidden channel type attack.
  • the present invention aims to overcome these disadvantages in order to counteract this type of attack.
  • the object of the invention is to provide a method of defeating combined blind channel fault / attack injection attacks directed against logically sequenced steps of steps such as programs or algorithms, recorded in a memory of an electronic component.
  • the invention also aims to provide such methods for securing the execution of certain sequences of steps of particular types.
  • the invention firstly relates to a method for securing the execution of a sequence of logically linked steps, at least one determined step having at least one predecessor step and to be used for r executing the secret data, characterized in that it comprises the steps of:
  • the initial secret data to be used is converted to a certain subsequent step. This data is then modified during the execution of the step. If the program has been run normally, the modification parameters are available for modifying the original secret data. Otherwise, the execution of the program may have been attacked, but the program then proceeds with erroneously modified data so that it is these erroneous data that will "leak" at later stages. res. Whenever the malfunction is subsequently recognized by the prior art methods, it will not be too late to take the necessary measures.
  • secret data must be interpreted broadly.
  • the transformation performed on the secret data may relate to a piece of code or an instruction jump address, function to call, cryptographic parameters or data in memory.
  • the step of transforming said secret data is implemented prior to starting the execution of said sequence of logically linked steps.
  • the modification is done here a priori, that is to say before the execution of the program.
  • the modification makes it possible to fall back on the initial secret data or on similar data which make it possible to obtain the expected result; the modification can be likened to a correction of the transformed data when it is intended to recover the initial secret data.
  • the modification or correction may take place as and when This is a function of the steps prior to the use (of the data and / or the code) and so that there is a correction if the execution is that expected and not a correction or a random modification of the values manipulated in the following steps. if the execution is not the one expected.
  • the step of transforming the secret data is implemented immediately before the execution of the said determined step.
  • the step of transforming said secret data is implemented during at least one predecessor step r.
  • the step of transforming said secret data is implemented successively at each of said predecessor steps.
  • said predecessor step immediately precedes said determined step
  • said transformation of the secret data consists in applying an identity function; the modification of the secret data consists in applying an identity function; said parameter of modification depends on said transformed secret data, thus increasing the security of the method;
  • the step of modifying transformed secret data includes correcting the transformed data to arrive at the initial secret data.
  • the invention also relates to an electronic component comprising a memory in which is recorded a secure program for implementing the method, and a smart card or a smart card module comprising such an electronic component.
  • FIG. 1 is a flowchart illustrating a method according to the invention
  • FIG. 2 is a flowchart of an exemplary embodiment.
  • step 1 may consist, for example, of an input, a reading, a calculation, a random or pseudo-random generation, or any other operation that can be envisaged.
  • secret data we generally mean any data whose disclosure poses a risk for the one who holds it legitimately, such as a PI N code, a secret key ...
  • step 2 a transformation is performed on the secret data that has the effect of providing transformed secret data 3. It will be observed that step 2 is not necessarily immediately following step 1. However, it is generally avoided to use the raw secret data 1 before their transformation to 2 according to the method of the invention. It will also be observed that the transformation of step 2 may in certain cases be nothing else than the identity I transformation.
  • the secret data will then have to be used in a later stage of use. But this data having been transformed, they must first be restored in their integrity, either by the recovery of raw secret data or by formatting or valuing these data in a con nictable format to perform the expected operations.
  • step 5 of this "predecessor" step that is, before it precedes step 4 of use
  • at least one mod parameter is generated. ification.
  • This modification parameter is injected with the secret data transformed in a step 6 capable of generating transformed transformed data restoring the integrity of the original secret data.
  • the modification parameters are as expected, and the modified transformed data from step 6 conforms to the original secret data so that the program can continue to run normally. A priori, no fault was injected and no program diversion was made. No leak of secret data is therefore to be feared.
  • step 6 does not restore the original secret data. It is therefore with false data that the program will be able to continue.
  • Such a module generally comprises a microprocessor for the execution of the invention, at least one non-volatile memory for storing the computer code of the invention and a random access memory used by the microprocessor for data manipulation at runtime. and traditional communication interfaces for a smart card or equivalent.
  • the RSA is an algorithm called public keys (or asymmetric), that is to say two keys: one public, the other private.
  • the security of the RSA is based on the difficulty of factoring a large number that is the product of two prime numbers.
  • This system is the most used public key cryptosystem. It can be used as an encryption method and decryption of messages, as a signature and verification method or as a secret key exchange method.
  • the principle of the RSA cryptographic system is as follows. It consists of generating the RSA key pair first. Thus, each user creates an RSA public key and a corresponding private key, following the following 5-step process:
  • the public key is (n, e); the private key is d, (d, n) or
  • the integers e and d are called respectively public exponent and private exponent.
  • the integer n is called the RSA module.
  • the principle is based on the fact that it is common (in 90% of cases) that verification is done with a small public exponent. Thus, when the length of the public exponent is large, it may be a code derivation induced by a fault injection. This is the reason why the invention can be applied to this case.
  • the secret data manipulated are here the memories of the two functions called by which the microprocessor accesses and executes these functions.
  • transformation step 2 Transformation of the memory address (for example pointer r) of the algorithm to be executed, and parameters to be used by the functions,
  • 1 .3 modification step 6 (applied to the memory addresses): Modification according to this parameter 1 of the address of the algorithm to be executed (which then becomes the ad resse of function i or of function2 to which these functions are accessible in memory), 1 .4 utilization step 4: Calling the function corresponding to the modified address,
  • double protection is provided for both the memory address of the function to be executed and the secret data used for the calculations.
  • the step of searching e is for example that described in documents FR2830146A1 and FR2858496A1.
  • step 1 1 When the exponent e is found, there is input, in step 1 1, transformed data of p , d q , p and q (in the case of Figure 2, the transformation is the identity).
  • This step 1 1 is a predecessor step performing the verification of the exponent e determined according to formulas (4).
  • the result of this test represents the modification parameter and allows the modification, according to this result, of the data used in the rest of the process.
  • Step 12/12 'corresponds to the execution of the CRT with the modified data. Either the continuation of the algorithm 12 'is false after the use of erroneous modified data (and therefore an attack is detected) or the algorithm continues with exact data 12.
  • step 13 is performed, examples of which with which the present invention correspond to Examples 3, 4 or 5 below.
  • the following nested method is applied: self-deterioration of private (and possibly public) elements.
  • the function ⁇ can be a function that does anything in the case where the equality is not respected. Again, this last function can use randomness to protect the secret.
  • a calculation error due to a fault injection for example, generates an erroneous value of u or a u value.
  • different correction of d It follows that subsequent calculations of exponentiation are erroneous.
  • the secret data is derived (transformed and modified) and then reconstructed for the desired message exponentiation step. These processes are based, in case of error by fault injection, for example, on the destruction of this secret data which is no longer exploitable.
  • This process is based on the principle that as soon as a fault is detected, all the data is transformed and the process changes.
  • tstval ⁇ (d)
  • a test value tstval ⁇ (d)
  • a checksum or the hash (or a part of the hash) of the value using conventional hash functions such as SHA-1 - Secure Hash Algorithm - or functions defined by FI PS PUB 180-1 .
  • an on-the-fly checksum that is used to modify all the exponent as soon as a fault has been detected. This modification may be deterministic or random so that it will protect the secret even in the event of a leak.
  • U consists of the concatenation of the word tstval and XOR is an exclusive OR binary operation. If d does not have as length a multiple of tstval, one of the tstval of U is modified, for example truncated, to obtain the desired length.
  • checksum can use random or one-way functions to protect the secret exponent.
  • this example is based on the iterative transformation and modification of words constituting the secret data. More precisely, the manipulation of the private exponent d is done bit by bit or word by word (whatever the size of the words, bytes for example). In this example, it is intended to calculate for example the modular exponentiation modulo m to n, or in general a function of the type g (m, d) involving the use of at least one secret data.
  • d *, and d are also modification parameters for d, .i, and therefore if a d *, and / or a d, is erroneous following a fault injection during the calculation step of this value, then the set of subsequent words (depending on the exponentiation algorithm used) is also modified to an erroneous value, the modification will therefore lead to a value other than d.
  • the function f is chosen so that its knowledge as well as that of d * or d * does not allow to go back to the secret value of d or those of the d's.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de sécurisation de l 'exécution d'une suite d'étapes logiquement enchaînées, au moins une étape déterminée ayant au moins une étape prédécesseur et devant utiliser pour son exécution des données secrètes. Ce procédé comprend les étapes consistant à : préalablement à l'exécution de ladite étape déterminée, transformer les données secrètes à utiliser pour l'exécution de cette étape; = lors de l 'exécution de ladite au moins une étape prédécesseur, générer un paramètre de modification; = lors de l' exécution de ladite étape déterminée - modifier les données secrètes transformées en utilisant ledit paramètre de modification; - exécuter l'étape déterminée en utilisant les données secrètes transformées et modifiées.

Description

PROCEDE DE SECURISATION DE L'EXECUTION D'UNE SUITE D'ÉTAPES LOGIQUEMENT ENCHAÎNÉES
La présente invention concerne le domaine de la sécurisation de l'exécution d'une suite d'étapes logiquement enchaînées, telle qu'un algorithme ou un programme d'ordinateur, notamment dans le cadre des cartes à puce, et a plus particulièrement pour objet un procédé de sécurisation de l'exécution d'une telle suite d'étapes dans laquelle au moins une étape déterminée a au moins une étape prédécesseur et doit utiliser pour son exécution des données secrètes.
Il est apparu que les cartes à puce sont sujettes à des tentatives d'attaques, notamment par des attaques par injection de fautes, des attaques à canaux cachés, ou des attaques combinées.
Dans les attaques par injection de fautes, ayant pour effet, par exemple, une dérivation de code, un attaquant potentiel perturbe physiquement le circuit intégré de la puce, notamment par l'injection de rayons lumineux ou, d'ondes électromagnétiques. Il peut ainsi modifier le comportement de ce circuit intégré et ainsi dérouter le code logiciel vers un autre type d'exécution.
Dans les attaques dites à canaux cachés (« side-channel » en anglais), l'attaquant analyse des variables de l'environnement de la puce, comme son rayonnement électromagnétique ou sa consommation d'énergie. Il peut alors, à l'aide de procédés d'analyse et d'outils statistiques, déduire des informations secrètes qui émanent de la puce. Il est par exemple ainsi possible de retrouver une clé privée lorsque le développeur n'a pas su se prémunir correctement à l'aide de protections adéquates. De telles protections sont connues de l'homme de l'art. La présente invention vise plus particulièrement à se prémunir contre les attaques combinées dans lesquelles une injection de faute est suivie d'une analyse des fuites d'information. Plus particulièrement, elle vise à contrer ce type d'attaques de sorte que même si une dérivation de code a lieu, elle ne laisse pas la porte ouverte à une attaque de type à canaux cachés.
Pour faire échec à ces tentatives, il est bien connu, dans des produits comprenant d'une manière générale un ou plusieurs composants électroniques et un logiciel embarqué, d'utiliser des contrôles d'intégrité sur les données manipulées et/ou de la redondance de code afin de détecter d'éventuelles perturbations. Généralement dans ces cas-là, la détection de l'erreur ne peut avoir lieu qu'une fois toutes les redondances effectuées et les comparaisons entre les différentes valeurs obtenues réalisées. C'est-à-dire, dans certains cas, lorsque tous ces calculs ont été réalisés et terminés.
Cependant, dans le cas d'attaques combinées, ce type de détection a lieu trop tard. En effet une fois la dérivation réalisée, les fuites de type à canaux cachés découlant des calculs effectués ont déjà eu lieu, et ceci avant que la détection ne soit effective (à la fin de l'exécution par les méthodes connues).
La présente invention vise à pallier ces inconvénients afin de contrecarrer ce type d'attaques.
Plus particulièrement, l'invention a pour but de fournir un procédé permettant de faire échec à des attaques combinées injection de faute / attaque à canaux cachés, dirigées contre des suites d'étapes logiquement enchaînées telles que des programmes ou des algorithmes, enregistrées dans une mémoire d'un composant électroniques. L'invention a également pour but de fournir de tels procédés visant à la sécu risation de l'exécution de certaines suites d'étapes de types particuliers.
A cet effet, l' invention a tout d'abord pou r objet u n procédé de sécurisation de l'exécution d'u ne su ite d'étapes logiquement enchaînées, au moins une étape déterminée ayant au moins une étape prédécesseur et devant utiliser pou r son exécution des données secrètes , caractérisé par le fait qu' il comprend les étapes consistant à :
• préalablement à l'exécution de lad ite étape déterminée, transformer les données secrètes à utiliser pour l'exécution de cette étape ;
• lors de l'exécution de ladite au moins u ne étape prédécesseu r, générer un paramètre de modification ;
« lors de l'exécution de ladite étape déterminée o modifier les données secrètes transformées en util isant ledit paramètre de mod ification ; o exécuter l'étape déterminée en utilisant les données secrètes transformées et mod ifiées.
Par conséquent, selon l'invention , on transforme les données secrètes initiales devant être util isées au cou rs d'une certaine étape ultérieure. Ces données sont ensuite modifiées lors de l'exécution de l'étape. Si le prog ramme s'est déroulé normalement, on dispose pour la modification d'éléments -les paramètres de modification- propres à rétablir les données secrètes d'origine. Sinon , l'exécution du programme a peut-être fait l'objet d'une attaque, mais le programme se déroule alors avec des don nées modifiées erronées de sorte que ce sont ces données erronées qu i vont "fuir" lors des étapes ultérieu res. Lorsque éventuellement l'on se rend ra compte ultérieurement du dysfonctionnement par les procédés de l'art antérieu r, il ne sera donc pas trop tard pour prend re les mesu res nécessaires. A titre d'illustration, on peut prévoir de modifier de manière déterministe les données manipulées à une certaine étape de sorte que si la ou les étapes prédécesseurs se sont déroulées correctement, alors, au moment de l'exécution, les données de cette certaine étape sont transformées dans un état qui correspond à celui attendu (c'est-à-dire avant leur transformation initiale), sinon elles sont modifiées dans un état différent de celui attendu .
On observera que les deux premières étapes du procédé, préalables à l'exécution de l'étape déterminée, peuvent selon le cas se dérouler dans un ordre ou dans l'autre.
On note également que, lors de la mise en œuvre du procédé, si les étapes ne se sont pas déroulées correctement, il n'est pas possible de retrouver les données secrètes à partir des données modifiées.
Par ailleurs, les termes "données secrètes" doivent être interprétés au sens large. C'est ainsi que la transformation effectuée sur les données secrètes peut porter sur une partie de code ou sur une adresse de saut d'instructions, de fonction à appeler, de paramètres cryptographiques ou de données en mémoire.
Dans un mode de mise en oeuvre particulier, l'étape de transformation desdites données secrètes est mise en œuvre préalablement au démarrage de l'exécution de ladite suite d'étapes logiquement enchaînées.
La modification est faite ici a priori, c'est-à-dire avant l'exécution du programme. La modification permet de retomber sur les données secrètes initiales ou su r des données semblables qui permettent d'obtenir le résultat attendu ; la modification peut s'apparenter à une correction des données transformées lorsque l'on vise à récupérer les données secrètes initiales. La modification ou correction peut avoir lieu au fur et à mesure du déroulement en fonction des étapes antérieu res à l'util isation (des données et/ou du code) et de sorte qu 'il y a correction si l'exécution est cel le attendue et non correction ou modification aléatoire des valeu rs manipulées aux étapes su ivantes si l'exécution n'est pas celle attendue.
Dans u n autre mode de mise en oeuvre, l'étape de transformation desd ites don nées secrètes est mise en œuvre i mméd iatement avant l'exécution de lad ite étape déterminée.
Dans encore u n autre mode de mise en œuvre, l'étape de transformation desdites données secrètes est mise en œuvre lors d'au moins une étape prédécesseu r.
Dans encore u n autre mode de mise en œuvre, l 'étape de transformation desdites données secrètes est mise en œuvre successivement à chacu ne desdites étapes prédécesseurs.
Selon différents modes de mise en œuvre : ladite étape prédécesseur précède imméd iatement ladite étape déterminée,
- ladite transformation des données secrètes consiste à appliquer une fonction identité, lad ite modification des données secrètes consiste à appliquer u ne fonction identité, - ledit paramètre de mod ification dépend desdites données secrètes transformées, accroissant de la sorte la sécu rité du procédé, ladite étape de mod ification des don nées secrètes transformées comprend la correction des don nées transformées permettant d 'aboutir aux données secrètes initiales.
L'invention a également pou r objet u n composant électronique comprenant une mémoire dans laquelle est enregistré un programme sécurisé pour la mise en œuvre du procédé, et une carte à puce ou un module de carte à puce comprenant un tel composant électronique.
On décrira maintenant, à titre d'exemple non limitatif, un mode de réalisation particulier de l'invention , en référence aux dessins schématiques annexés dans lesquels :
- la figure 1 est un organigramme illustrant un procédé selon l'invention ; - la figure 2 est un organigramme d'un exemple de réalisation.
Si l'on se réfère en premier lieu à la figure 1 , on voit, dans le cadre généralement non représenté de l'exécution d'une suite d'étapes logiquement enchaînées, que des données secrètes interviennent au cours d'une étape 1 . Cette étape 1 peut consister par exemple en une saisie, une lecture, un calcul , une génération aléatoire ou pseudo-aléatoire, ou toute autre opération envisageable. Par donnée secrète, on entend généralement toute donnée dont la divulgation présente un risque pour celui qui la détient légitimement, telle qu'un code PI N, une clé secrète...
Au cours d'une étape ultérieure 2, on opère sur les données secrètes une transformation qui a pour effet de fournir des données secrètes transformées 3. On observera que l'étape 2 n'est pas nécessairement immédiatement consécutive à l'étape 1 . On évitera toutefois en général d'utiliser les données secrètes brutes 1 avant leur transformation en 2 selon le procédé de l'invention. On observera par ailleurs que la transformation de l'étape 2 peut dans certains cas n'être autre que la transformation identité I .
Les données secrètes devront ensuite être utilisées au cours d'une étape ultérieure 4 d'utilisation. Mais ces données ayant été transformées, elles devront au préalable être rétablies dans leur intégrité, soit par la récupération des données secrètes brutes soit par la mise en forme ou en valeu r de ces données dans u n format con nu permettant de réaliser les opérations attendues.
A cet effet, au cou rs d'une étape 5 d ite étape "prédécesseu r" (c'est-à-d ire qu'elle précède l'étape 4 d'util isation ), on génère au moins u n paramètre de mod ification . Ce paramètre de mod ification est injecté avec les données secrètes transformées dans u ne étape 6 susceptible de générer des données transformées modifiées rétablissant l'intég rité des données secrètes in itiales.
Si la suite d'étapes logiquement enchaînées s'est déroulée normalement, les paramètres de mod ification sont conformes à ce qui est attendu , et les données transformées modifiées issues de l'étape 6 sont bien conformes aux données secrètes d'origine de sorte que le programme peut continuer à se dérouler normalement. A priori, aucu ne faute n'a été injectée et aucun déroutement de programme n'a été opéré. Aucu ne fuite de données secrètes n'est donc à craindre.
Si en revanche u ne faute a été injectée qui altère le fonctionnement de l'étape prédécesseur 5 (ou de toute autre étape qui pou rrait lu i être liée), ou si u n déroutement du programme l'a amené à ne pas mettre en oeuvre cette étape prédécesseur 5, alors les paramètres de mod ification sont erronés (rectangles pointillés), et l'étape 6 ne reconstitue pas les données secrètes d'origine. C'est donc avec des don nées fausses que le programme va se pou rsuivre.
Si u n tel dysfonctionnement s'est produit, alors il est possible qu'au cou rs de la suite du déroulement des opérations, u ne fu ite se produ ise lors d'une étape 7. Mais cette fu ite ne porte alors que sur des données "secrètes" fausses et est donc sans importance. On note que les opérations de transformation et de mod ification ont rendu impossible la détermination des données secrètes à partir des fuites produ ites lors d'u ne étape 7. En particulier, des moyens complémentaires à l'invention pourront détecter l'attaque lors d'une étape 8 postérieure à la fuite. Alors que, sans l'invention, la détection de l'attaque intervient trop tard (les fuites ont déjà délivrées les données secrètes), l'invention permet cette détection "dans les temps" puisque aucune donnée secrète n'aura pu être récupérée.
EXEMPLES
On décrira maintenant cinq exemples de mise en œuvre de l'invention, à savoir trois exemples que l'on qualifiera de "tests primaires", et deux exemples que l'on qualifiera de "processus d'auto-dérivation". L'invention au travers de ces exemples s'applique particulièrement bien à la sécurisation de données dans des modules de carte à puce. Un tel module comprend généralement un microprocesseur pour l'exécution de l'invention, au moins une mémoire non volatile pour le stockage du code informatique de l'invention et une mémoire vive utilisée par le microprocesseur pour la manipulation de données lors de l'exécution et des interfaces de communication traditionnelles pour une carte à puce ou équivalent.
Mais on effectuera tout d'abord un bref rappel sur le système cryptographique RSA.
Rappel sur le système RSA (Rivest, Shamir et Adleman)
Le RSA est un algorithme dit à clefs publiques (ou asymétrique), c'est-à-dire à deux clefs : l'une publique, l'autre privée.
La sécurité du RSA repose sur la difficulté de factoriser un grand nombre qui est le produit de deux nombres premiers. Ce système est le système cryptographique à clé publique le plus utilisé. Il peut être utilisé comme procédé de chiffrement et déchiffrement de messages, comme procédé de signature et de vérification ou comme procédé d'échange de clef secrète.
Le principe du système cryptographique RSA est le suivant. Il consiste d'abord à générer la paire de clés RSA. Ainsi, chaque utilisateur crée une clé publique RSA et une clé privée correspondante, suivant le procédé suivant en 5 étapes :
1) Générer deux nombres premiers distincts p et q ;
2) Calculer n = pq et Φ(n) = (p-1)(q-1), Φ étant la fonction indicatrice d'Euler ;
3) Sélectionner un entier e, 1 <e < Φ(n), tel que PGCD (e, Φ(n)) = 1, aléatoirement ou au choix de l'utilisateur ; des valeurs couramment utilisées pour e sont 216+1, 3 et 17 ;
4) Calculer l'unique entier d, 1 ≤d < Φ(n), tel que e.d = 1 modulo Φ(n) (1)
5) La clé publique est (n,e) ; la clé privée est d, (d, n) ou
(d, P. q)-
Les entiers e et d sont appelés respectivement exposant public et exposant privé. L'entier n est appelé le module RSA.
Une fois les paramètres publics et privés définis, étant donné un message m avec 0<m<n, l'opération publique sur m qui peut être par exemple le chiffrement du message m consiste à calculer c = me modulo n (2)
Dans ce cas, l'opération privée correspondante est l'opération de déchiffrement du message chiffré c, et consiste à calculer m = cd modulo n (3) Une autre opération privée peut consister en Ia génération d'une signature s à partir du message préalablement encodé m par application d'une fonction de padding μ, et consiste à calculer : s = (μ(m))d modulo n (2)
L'opération publique sur s consiste alors en la vérification de la signature m, par le calcul de μ(m), avec μ(m)= se modulo n (3) puisque e.d = 1 modulo Φ (n).
On va maintenant présenter un autre mode de mise en oeuvre du système RSA, dit mode CRT car basé sur le théorème des restes Chinois ("Chinese Remainder Theorem" ou CRT en anglais), quatre fois plus rapide en théorie que celui de l'algorithme RSA standard. Selon ce mode CRT, on n'effectue pas directement les calculs modulo n mais on effectue d'abord les calculs modulo p et modulo q.
Les paramètres publics sont (n, e) et les paramètres privés sont dans ce mode (p, q, d) ou (p, q, dp, dq, iq) avec dp = d modulo (p-1 ) dq = d modulo (q-1 ) iq = q"1 modulo p
Par la relation (1), on obtient edp = 1 modulo (p-1 ) et edq = 1 modulo (q-1 ) (4)
L'opération publique s'effectue de la même façon que pour le mode de fonctionnement standard. Par contre, pour l'opération privée, on calcule d'abord, pour l'exemple de la signature du message m : Sp= μ(m) p modulo p et
Sq= μ(m)dq modulo q
Ensuite, par application du théorème des restes chinois, on obtient : s = μ(m)d modulo n par s = CRT (sp, Sq) = sq + q[iq (Sp-Sq) modulo p] (5)
On décri ra mai ntenant les exem ples de réal isation proprement d its de l' invention .
Tests primaires :
Exemple 1 : Test de longueur pour éviter le déroutement de code
Le principe est basé sur le fait qu'il est cou rant (dans 90% des cas) que la vérification soit faite avec un exposant public e de petite taille. Ainsi, lorsque la longueur de l'exposant public est grande, il peut s'agir d'une dérivation de code induite par une injection de faute. C'est la raison pour laquelle on peut appliquer l'invention à ce cas.
On dispose de deux fonctions pour effectuer un calcul: u ne fonction i conçue pour effectuer le calcul avec des paramètres publics dont e, donc une fonction non protégée,
- une fonction2 conçue pour effectuer le calcul avec des paramètres secrets, donc une fonction protégée. Les don nées secrètes manipu lées sont ici les ad resses mémoires des deux fonctions appelées, ad resses par lesquelles le microprocesseur accède et exécute ces fonctions.
Ainsi on appl ique le procédé de la manière suivante :
1 .1 étape de transformation 2 : Transformation de l'ad resse mémoire (par exemple pointeu r) de l'algorithme à exécuter, et des paramètres à utiliser par les fonctions,
1 .2 étape prédécesseu r 5 : Test de la longueur de l'exposant pou r obtenir u n paramètre de modification 1 ,
1 .3 étape de modification 6 (appliquée aux adresses mémoires) : Modification suivant ce paramètre 1 de l'ad resse de l'algorithme à exécuter (qui devient alors l'ad resse de fonction i ou de fonction2 à laquelle ces fonctions sont accessibles en mémoire), 1 .4 étape d'util isation 4 : Appel de la fonction correspondant à l'adresse modifiée,
1 .5 nouvelle étape prédécesseu r 5 : Dans la fonction ainsi appelée (fonction 1 ou 2), test de la longueu r de l'exposant pour obtenir un paramètre de modification 2, 1 .6 nouvelles étapes de modification 6 et d'utilisation 4
(appliquée aux paramètres) : Utilisation de ce paramètre de modification 2 pou r modifier les paramètres transformés et exécuter le calcul avec les bons paramètres ou avec des paramètres erronés (transformés).
Dans cet exemple, on réalise u ne dou ble protection à la fois de l'ad resse mémoire de la fonction à exécuter et des données secrètes utilisées pour les calculs.
L'attaquant qu i injecte des fautes pour récu pérer des informations par fuite altère l'étape prédécesseur 4, les paramètres de modification et les données modifiées transformées. Cela conduit inéluctablement vers u ne exécution erronée de la suite du processus , l'attaquant n'ayant accès qu'à des données mod ifiées, les données secrètes étant conservées inaccessibles. U ne erreu r d'exécution est alors interprétée comme la détection d'u ne attaque ; des mesu res et contre-mesu res appropriées sont alors prises.
I I est également prévu de mu nir la présente invention de procédés connus de l'art antérieu r, tels que des procédés de redondance, pou r compléter la détection d'erreu rs. À titre d'exemple, il peut être prévu de dédou bler les opérations de calcul puis de comparer les résultats obtenus pou r en déd u ire si u ne attaque a eu lieu (les deux résultats sont alors différents). Éventuellement, on applique ces deux traitements parallèles à des données dédoublées : par exemple, d'u ne part, les don nées secrètes mod ifiées et, d'autre part, u ne signature de ces don nées ; moyennant des propriétés particu lières pou r les opérations mises en œuvre afin d'obtenir un même résultat à partir de ces données dédou blées.
Exemple 2 : Test de l'exposant pu bl ic e
On propose de coder le RSA CRT comme montré à la figu re
2, sachant que les tests correspondent en fait à des processus modification/correction tels que décrits ci-dessus. Les différentes étapes du procédé sont connues en soi.
L'étape 1 0 de recherche de e est par exemple celle qui est décrite dans les documents FR2830146A1 et FR2858496A1 .
Lorsque l'exposant e est trouvé, on dispose en entrée, à l'étape 1 1 , des données transformées dp, dq, p et q (dans le cas de la figure 2, la transformation est l'identité). Cette étape 1 1 constitue une étape prédécesseur réalisant la vérification de l'exposant e déterminé selon les formules (4). Le résultat de ce test représente le paramètre de modification et permet la modification, conformément à ce résultat, des données utilisées dans la suite du processus. L'étape 12/12' correspond à l'exécution du CRT avec les données modifiées. Soit la suite de l'algorithme 12' est fausse après l'utilisation de données modifiées erronées (et donc une attaque est détectée) soit l'algorithme se poursuit avec des données exactes 12.
Enfin, en l'absence d'exposant public e identifié, l'étape 13 est exécutée, dont des exemples de réalisation avec la présente invention correspondent aux exemples 3, 4 ou 5 ci-après. La méthode imbriquée suivante est appliquée : auto-déterioration des éléments privés (et éventuellement publics).
Exemple 3 : Chargement sécurisé des paramètres
On définit une valeur de test (pour d) que l'on nomme tstval=f(d) de sorte qu'il existe une fonction Ψ vérifiant : Ψ(d*)=tstval, où d* correspond à l'exposant privé randomisé. Des randomisations classiques peuvent être utilisées, par exemple d*=d + r.(e.d-1) où r est un entier aléatoire généré par un générateur de nombres aléatoires présent dans la carte à puce.
On définit également une fonction φ, qui vérifie φ(Ψ,d,d*,tstval) = d**. L'exponentiation du message m est définie comme suit :
(a). Calculer d*, correspondant à l'étape de transformation 2 de d ;
(b). Calculer Ψ(d*), étape prédécesseur 5 ;
(c). Calculer u = φ(Ψ,d,d*,tstval), étape de modification 6 de l'exposant privé transformé en fonction des paramètres de modification Ψ(d*) et tstval. (d). Calculer mu modulo n* (les * correspondent à des randomisations comme classiquement utilisées. Il est également possible que de telles randomisations ne soient pas utilisées ; c'est- à-dire par exemple n* = n) pour une étape de déchiffrement par exemple. I I est à noter que lors de l'étape (c), si la valeu r tstval n'est pas retrouvée, alors l'exponentiation utilise u n exposant aléatoire généré par le générateur de nombres aléatoires et appliqué à la fonction φ. Par cette mesu re de sauvegarde, le processus continue malgré les erreurs de calcul que générera l'utilisation de cet exposant aléatoire et l'attaquant ne retire aucune information d'u ne faute qu'il au rait pu injecter su r tstval.
Il est également possible que les fonctions utilisées mettent en œuvre des éléments aléatoires, assu rant alors l'impossibil ité de remonter au secret à partir des éléments modifiés.
Les fonctions φ et Ψ existent : on peut par exemple prendre u ne réduction modulaire pour Ψ et tstval. Ainsi, la fonction φ peut être une fonction qu i fait n' importe quoi dans le cas où l'égal ité n'est pas respectée. Encore u ne fois, cette dernière fonction peut utiliser des aléas pour protéger le secret.
On remarque que, dans l'exemple qui précède :
• tstval est u n paramètre de référence
• d est la donnée d 'origine • Ψ(d*) et tstval sont des paramètres de mod ification
» φ(Ψ,d,d*, tstval) constitue l'étape de mod ification
Éventuellement, la randomisation peut ne pas être utilisée auquel cas la transformation de d en d* se résu me à l'identité : d = d*.
I l est à noter également que l'étape de mod ification (c) génère u ne valeu r u dérivant de d*, entre autres , et dont l'utilisation pou r l'exponentiation de m est équ ivalente (c'est-à-d ire les calculs utilisant cette valeu r modifiée sont corrects par rapport à ce que l'on attend ) à l'util isation de la valeu r initiale d pou r cette même exponentiation . On verra par la suite que cette étape de modification peut aboutir à u=d c'est-à-dire à récupérer la valeur initiale de d . On peut alors parler d'étape de correction .
Dans les deux cas , une erreur de calcul due à une injection de faute par exemple, génère u ne valeu r erronée de u ou u ne valeu r de correction différente de d . Il s'en suit que les calculs ultérieurs d'exponentiation sont erronés.
Processus d'auto-dérivation :
Dans les deux exemples ci-après, la donnée secrète est dérivée (transformée et modifiée) puis reconstituée pour l'étape souhaitée d'exponentiation du message. Ces processus reposent, en cas d'erreur par injection de faute par exemple, sur la destruction de cette donnée secrète qui n'est alors plus exploitable.
Exemple 4 : Processus de dérivation et destruction I
Ce processus repose sur le principe que dès qu'une faute est détectée, toutes les données sont transformées et le processus change.
Dans un exemple relatif à une signature de type RSA standard , il est classique d'associer à l'exposant privé d une valeur de test tstval = Ψ(d), par exemple une somme de contrôle (checksum) ou le haché (ou une partie du haché) de la valeur (en utilisant des fonctions de hachage classiques telles que SHA-1 - Secure Hash Algorithm - ou des fonctions définies par FI PS PUB 180-1 ... ). Il est également possible d'associer une somme de contrôle calculée à la volée qui est utilisée pour modifier tout l'exposant dès qu'une faute aura été détectée. Cette modification pourra être déterministe ou aléatoire de sorte qu'elle protégera le secret même en cas de fuite.
(a). En substance, à partir de d , la valeur tstval = Ψ(d) est initialement utilisée comme paramètre de modification pour transformer d en d*, par exemple d* = d XOR U , où
U = tstval H ... I l tstval
U est constitué de la concaténation du mot tstval et XOR est une opération binaire OU exclusif. Si d n'a pas comme longueur un multiple de tstval, un des tstval de U est modifié, par exemple tronqué, pour obtenir la longueur souhaitée.
(b). Lors de phases d'exponentiation, on souhaite récupérer la valeur de l'exposant privé d par la manipulation des mots d * composant d*. I l s'agit de l'étape de modification de la donnée secrète transformée d* ou plus exactement une étape de correction puisqu'elle vise à récupérer la valeur de d. Pour ce faire, la valeur tstval est recalculée à la volée pour chaque mot d * de d* en déterminant B = Ψ(d). On obtient ainsi à chaque fois u n paramètre de modification B à l'instant /, lequel paramètre prend la valeur tstval si aucune erreur n'est intervenue pendant l'étape de calcul.
En appliquant l'opération OU exclusive à d * avec B ou U*
(concaténation de B), on remonte aux valeurs d, de d. Ainsi dès qu'une erreur s'est produite à une étape /, un mot d, de d est corrompu ; l'ensemble de l'exposant privé est corrompu pour les étapes suivantes.
Il est à noter que la somme de contrôle peut utiliser des aléas ou des fonctions à sens unique pour protéger l'exposant secret.
Exemple 5 : Processus de dérivation et destruction I I
A la différence de l'exemple 4, cet exemple repose sur la transformation et la modification itératives de mots constituant la donnée secrète. Plus précisément, la manipulation de l'exposant privé d est réalisée bit par bit ou mot par mot (quelque soit la taille des mots, des octets par exemple). Dans cet exemple, il est prévu de calculer par exemple l'exponentiation modulaire md modulo n, ou de façon générale une fonction du type g(m, d) faisant intervenir l'utilisation d'au moins une donnée secrète.
(a). Dans cet exemple de l'invention, on dispose d'une constante este secrète, dont la valeur peut aussi être tirée aléatoirement et varier pour chaque exécution de l'exponentiation, d'une fonction f et de l'exposant privé d constitué de la concaténation suivante : dn-i | | ... | | do. f peut être toute fonction, par exemple à sens unique utilisant également un aléa.
Plusieurs étapes sont mises en œuvre pour la manipulation de l'exposant privé en vue de l'exponentiation :
(b). on calcule une valeur A = Ψ(d) = tstval comme premier paramètre de modification. Ψ(d) peut être obtenu lors de précédentes étapes, comme dans l'exemple 4, et cette valeur A est liée à la valeur de d.
(c). on opère une transformation de d en d*, di par dj en utilisant les valeurs dj+i et d*i+1. Dans ce cas dι+i et d* i+1 sont aussi considérés comme des paramètres de modification de dj. o c/ V 1 = c/n-i Φ f(cste, A)
Figure imgf000020_0001
O
Figure imgf000020_0002
o
Figure imgf000020_0003
(d). on effectue l'étape d'exponentiation de m en modifiant d*j en of/ à la volée pour récupérer les mots d, de l'exposant privé d et ainsi d. Le paramètre B = Ψ(d) peut avoir été calculé à une étape différente de celle qui a permis le calcul de A, offrant de la sorte une sécurité accrue. Ainsi en cas de différence entre A et B, une valeur différente et donc erronée de d est obtenue en sortie de l'étape de modification. B constitue un second paramètre de modification. Cette étape de modification pour la récupération de d est comme suit :
O Gfn-I = Cf Vi Φ f(CStθ, B) O dn.2
Figure imgf000020_0004
dn^), o CZj- 1 = of Vi Φ. f(d*] , dι)
O o d0 = d* 0 Φ f(d*ï,dï)
On note que les d*, et d, sont aussi des paramètres de modification pour d,.i, et donc si un d*, et/ou un d, est erroné suite à une injection de faute pendant l'étape de calcul de cette valeur, alors l'ensemble des mots suivants (dépendant de l'algorithme d'exponentiation utilisé) est aussi modifié vers une valeur erronée, la modification conduira donc à une valeur autre que d.
II est également possible d'avoir des principes de fonctionnement déterministes ou aléatoires. Là aussi, il est également important de noter qu'il faut s'assurer de l'impossibilité de remonter au secret à partir des éléments modifiés, ainsi si un attaquant parvient à retrouver les d*,, il ne doit pas pouvoir remonter aux d, même en connaissant le processus de dérivation. Ainsi, afin de garantir une grande sécurité, la fonction f est choisie de telle sorte que sa connaissance ainsi que celle de d* ou des d*, ne permette pas de remonter à la valeur secrète de d ou celles des d,.
Tous les procédés présentés ci-dessus peuvent être combinés ensemble pour assurer une sécurité optimale et ne concernent pas uniquement les algorithmes à clefs publiques. Ce même procédé peut s'appliquer aux autres algorithmes cryptographiques, tels ceux dit à clé secrète. Ce procédé peut également s'appliquer à tous les algorithmes manipulant des données secrètes tels que la gestion d'un code PI N ou la lecture de fichiers secrets.

Claims

REVENDICATIONS
1. Procédé de sécurisation de l'exécution d'une suite d'étapes logiquement enchaînées, au moins une étape déterminée ayant au moins une étape prédécesseur et devant utiliser pour son exécution des données secrètes, caractérisé par le fait qu'il comprend les étapes consistant à : β préalablement à l'exécution de ladite étape déterminée, transformer les données secrètes à utiliser pour l'exécution de cette étape ;
« lors de l'exécution de ladite au moins une étape prédécesseur, générer un paramètre de modification ;
• lors de l'exécution de ladite étape déterminée o modifier les données secrètes transformées en utilisant ledit paramètre de modification ; o exécuter l'étape déterminée en utilisant les données secrètes transformées et modifiées.
2. Procédé selon la revendication 1, dans lequel l'étape de transformation desdites données secrètes est mise en œuvre préalablement au démarrage de l'exécution de ladite suite d'étapes logiquement enchaînées.
3. Procédé selon la revendication 1, dans lequel l'étape de transformation desdites données secrètes est mise en œuvre immédiatement avant l'exécution de ladite étape déterminée.
4. Procédé selon la revendication 1, dans lequel l'étape de transformation desdites données secrètes est mise en œuvre lors d'au moins une étape prédécesseur.
5. Procédé selon la revendication 1 , dans lequel l'étape de transformation desdites données secrètes est mise en œuvre successivement à chacune desdites étapes prédécesseurs.
6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel ladite étape prédécesseur précède immédiatement ladite étape déterminée.
7. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit paramètre de modification dépend desdites données secrètes transformées.
8. Procédé selon l'une quelconque des revendications précédentes, dans lequel ladite étape de modification des données secrètes transformées comprend une étape de correction des données transformées permettant d'aboutir auxdites données secrètes.
9. Composant électronique caractérisé par le fait qu'il comprend une mémoire dans laquelle est enregistré un programme sécurisé pou r la mise en œuvre du procédé selon l'une quelconque des revendications précédentes.
10. Carte à puce caractérisée par le fait qu'elle comprend un composant électronique selon la revendication précédente.
PCT/EP2007/051998 2006-03-02 2007-03-02 Procede de securisation de l'execution d'une suite d'etapes logiquement enchainees WO2007099164A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650729 2006-03-02
FR0650729A FR2898199A1 (fr) 2006-03-02 2006-03-02 Procede de securisation de l'execution d'une suite d'etapes logiquement enchainees

Publications (1)

Publication Number Publication Date
WO2007099164A1 true WO2007099164A1 (fr) 2007-09-07

Family

ID=37603306

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/051998 WO2007099164A1 (fr) 2006-03-02 2007-03-02 Procede de securisation de l'execution d'une suite d'etapes logiquement enchainees

Country Status (2)

Country Link
FR (1) FR2898199A1 (fr)
WO (1) WO2007099164A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023605A2 (fr) * 2001-09-06 2003-03-20 Infineon Technologies Ag Dispositif et procede pour calculer le resultat d'une exponentiation modulaire
GB2399904A (en) * 2003-03-28 2004-09-29 Sharp Kk Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023605A2 (fr) * 2001-09-06 2003-03-20 Infineon Technologies Ag Dispositif et procede pour calculer le resultat d'une exponentiation modulaire
GB2399904A (en) * 2003-03-28 2004-09-29 Sharp Kk Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption.

Also Published As

Publication number Publication date
FR2898199A1 (fr) 2007-09-07

Similar Documents

Publication Publication Date Title
EP3457620B1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
FR3033965A1 (fr)
EP3761199B1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
CA2712178A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique
EP3736719A1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
EP3712795B1 (fr) Procédé d&#39;exécution, par un microprocesseur, d&#39;un code binaire comportant une fonction appelante et une fonction appelee
EP3712794B1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
FR3071082A1 (fr) Procede d&#39;execution d&#39;un code binaire d&#39;une fonction securisee par un microprocesseur
EP2159952B1 (fr) Protection d&#39;un algorithme de chiffrement
EP3457621A1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
EP2326042B1 (fr) Procédé de détection d&#39;une attaque par injection de fautes
EP3610372B1 (fr) Procédé d&#39;exécution d&#39;un code machine d&#39;une fonction sécurisée
EP2336931B1 (fr) Procédé de vérification de signature
FR2979725A1 (fr) Procede de calculs cryptographique resistant aux defaillances materielles
EP1387519A2 (fr) Procédé de sécurisation d&#39;un ensemble électronique contre des attaques par introduction d&#39;erreurs
EP3284206B1 (fr) Procédé de sécurisation de l&#39; exécution d&#39;un programme
WO2007099164A1 (fr) Procede de securisation de l&#39;execution d&#39;une suite d&#39;etapes logiquement enchainees
FR3069993A1 (fr) Dispositifs et procedes de masquage d&#39;operations de chiffrement rsa
EP3685259B1 (fr) Procédé d&#39;exécution d&#39;un code machine d&#39;une fonction sécurisée
FR3085215A1 (fr) Dispositifs et procedes de masquage d&#39;operations de cryptographie ecc
EP4057169B1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;un programme d&#39;ordinateur par un microprocesseur
EP4089559B1 (fr) Microprocesseur équipé d&#39;une unité arithmétique et logique et d&#39;un module matériel de sécurisation
EP4239944B1 (fr) Procédé de signature cryptographique d&#39;une donnée, dispositif électronique et programme d&#39;ordinateur associés
EP4328771A1 (fr) Procédé d&#39;exécution d&#39;un code machine par un calculateur
EP4089557A1 (fr) Procédé d&#39;exécution d&#39;un code binaire par un microprocesseur

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07712426

Country of ref document: EP

Kind code of ref document: A1