WO2007051770A1 - Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques - Google Patents
Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques Download PDFInfo
- Publication number
- WO2007051770A1 WO2007051770A1 PCT/EP2006/067901 EP2006067901W WO2007051770A1 WO 2007051770 A1 WO2007051770 A1 WO 2007051770A1 EP 2006067901 W EP2006067901 W EP 2006067901W WO 2007051770 A1 WO2007051770 A1 WO 2007051770A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- memory area
- copying
- operations
- memory areas
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000015654 memory Effects 0.000 claims abstract description 45
- 230000003936 working memory Effects 0.000 claims abstract description 24
- 230000004807 localization Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
Definitions
- the present invention relates to a method for countering hidden channel type attacks during data manipulation, typically when executing cryptographic algorithms on an electronic component. These can be secret key or public key algorithms.
- Such components are particularly used in applications where access to services or data is controlled, such as cryptographic applications.
- These components have a programmable architecture formed around a microprocessor and memories, including a volatile programmable memory or a non-volatile memory that contains one or more secret data; it is a generalist architecture able to execute any algorithm.
- These components are used in computer systems, embedded or not; they are particularly used in smart cards, for some applications thereof. These are for example banking applications, mobile phone applications including for example SIM cards, tele-toll applications, for example for television, etc. These components or cards therefore implement a cryptographic algorithm to ensure the encryption of a message (when it must remain confidential), or 1 'authentication or digital signature of a message (when one wants to ensure non-repudiation).
- the card From this message input to the card by a host system (server, bank distributor ...) and secret numbers contained in the card, the card provides back to the host system this encrypted or signed message, which allows for example the host system to authenticate the component or the card, or to exchange data.
- the security of these cryptographic algorithms lies in the number (s) secret (s) contained in the map and unknown (s) of the world outside this map, as well as the way in which these secret numbers are used. .
- external attacks based on measurable physical quantities from outside the component when it is executing the cryptographic algorithm allow malicious third parties to find the number (s) ( s) or secret data (s) contained in this card.
- These attacks are called hidden channel attacks (“side channel analysis" in English) and take into account the existence of an additional channel through which information can leak.
- the physical signals used are in particular the electromagnetic radiation, the electrical consumption or the calculation time of the component.
- SPA attacks acronym for Simple Power Analysis, based on one or even a few measurements
- DPA attacks which is the acronym for Differential Power Analysis, based on statistical analyzes from several measurements.
- the methods used in the prior art most often propose, for a given operation, to provide several embodiments for this operation and to perform the operation in question by using randomly the one of the intended embodiments.
- the objective is thus to scramble the tracks by multiplying the ways of performing the same operation, so that the various embodiments involve hidden forms of signals (or signatures or traces) different from a leakage point of view. outward information.
- the claimed invention solves this drawback and proposes an alternative method for securely manipulating data when executing cryptographic algorithms on a portable or non-portable electronic component, making it possible to counter hidden channel attacks, particularly those based on a leak in address of the components or on a distinction of active or non-active memory areas, in order to deduce the functionalities that are played in the card.
- the invention thus relates to a method for manipulating data between memory zones of an electronic component comprising at least one working memory zone for implementing operations on said component involving at least one of said data, said method being characterized in that it comprises the use of the same memory areas for the execution of an operation, whatever the operation to be implemented, so that each operation presents a trace identical hidden signal in terms of leakage in localization outward of said component.
- the method comprises, prior to the execution of the operation, a step of configuring the memory areas to be used with the data serving as operands in said operation, said step of configuring the memory zones depending on the operation to be performed.
- the step of configuring the memory areas consists of copying one of said data into the working memory area, the copy of said data being masked and random in its execution.
- the memory areas containing said data are simultaneously active when copying one of said data in the working memory area.
- the copying of one of said data in the working memory zone consists in successively accessing, in a random order, the elements of said data in their respective memory zone and in copying said elements in the memory. working memory area with replacement of one of the data elements by the data element corresponding to the data to be copied in the working memory area.
- the operations implemented are operations that are part of the the execution of a public key cryptographic algorithm.
- the public key cryptographic algorithm is of the RSA type, and the operations are square and multiplication operations for modular exponentiation.
- the method is implemented in a material way.
- the invention also relates to a system for implementing the method according to any one of the preceding claims, wherein the component is a smart card, a smart card reader or a smart card reader.
- TPM Trusted Platform Module
- FIG. 1 is a representation schematic of different memory areas of a smart card illustrating the principle of the invention.
- the general principle on which the invention is based is to find alternative embodiments of several different operations, so that these variants have the same "trace" outside of the electronic component in which they are executed, in terms of leakage. address or location of active areas or not.
- the respective variants of the different operations are in this case inseparable from each other, which has the effect that an outside observer does not know which operation is actually performed on the component.
- the copying operation of a first or second data in a working area of the memory will be performed so that an attacker capable of determining and distinguishing access to the first and to the second data will not be able to know which data has actually been stored in the work area.
- FIG. 1 thus represents such a working memory zone W, as well as two memory zones R1 and R2, containing values to be processed A and B.
- the copying of a datum in the zone working memory is masked and random in its execution, while the computational part is intended to be always the same from an information leakage point of view to the outside.
- the method of copying the data item A for example in the working memory area W consists in successively accessing, according to a randomness t, the words of A and B.
- the memory areas R1 and R2 respectively containing the data A and B are simultaneously active, in an order that is variable depending on the hazard.
- FIG. 1 illustrates more particularly a diagram of the algorithm implemented for the copying of the data item A in the work register W according to the principles explained above.
- A A k _i I
- t be a random bit.
- the algorithm would work similarly to the copy of the data B in W m and me so we could not therefore distinguish between the copy of A in W and B copies in W, since it is the 'random' which defines the order of access to which register first.
- the memory zone R1 or R2 is first accessed, but in both cases, it is This is indeed the value A which is finally copied in W.
- the algorithm predicts that at each loop turn, the value B 3 is replaced by the value A 3.
- the algorithm can be executed in the opposite direction, by decreasing j, without modifying the result.
- the algorithm works with words of any size.
- the copying of the data A or B in the working memory zone W is thus rendered more robust with respect to leakage towards the outside, since it is masked and random in its execution and this, regardless of the area accessed.
- the computational part involved in an operation to be implemented on the electronic component is intended to always be the same from an information leakage point of view to the outside.
- it is planned to always use the same memory areas regardless of the operation to be implemented, so that these operations have the same trace as a hidden signal from an information leakage point of view. outside.
- the operations are in this case indissociable from each other, which has the effect that an observer does not know what operation is actually performed on the electronic component.
- it is the configuration of the memory zones involved which makes it possible to obtain one operation or another.
- the method described above makes it possible to manipulate data in a secure manner to counter attacks of the type "Hidden channel” may advantageously be adapted for the implementation of multiplication and square operations for modular exponentiation in the context of an RSA type cryptographic algorithm.
- the multiplication (“multiply") and square (“square”) operations may have the same trace as a hidden signal, since they amount to multiplying a first memory zone by a second memory zone. If these memory zones are always the same, the traces in hidden signal seen from the outside are identical.
- the memory areas R1 and W are the memory zones used for the execution of an operation.
- the contents of R2 are first copied to W according to the principles of copying previously described, and the contents of the memory area R1 are multiplied by the contents of the working memory area W.
- performing the square operation on the data item A the content of R1 is first copied to W, still in application of the same principles already explained, and the content of the memory area R1 is multiplied by the content of the working memory area W.
- the functional difference therefore comes from the previously copied content in the working memory area W, which is rendered inaccessible to an outside observer by the copying process described above.
- the memory areas R1 and W involved in the implementation of the operations being always the same, the traces in hidden signal of these operations seen from the outside are identical. An observer can therefore only deduce which memory areas are used, namely R1 and W according to the example, but can not know what content A or B was copied previously in the working memory area W, it can not deduce which operation is implemented between multiplication or square.
- the working memory area W can be initialized in a random order and / or with random values.
- the method according to the invention is applicable to any algorithm where there would be the possibility of having at least two distinct memory zones to be applied in a calculation and where an outside observer could deduce information. sensitive knowledge of the areas used through attacks of the aforementioned type.
- the method of secure manipulation of data according to the invention can be implemented by any appropriate means, hardware or software.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
L' invention concerne un procédé de manipulation de données (A, B) entre des zones mémoires (W, Rl, R2) d'un composant électronique comprenant au moins une zone de mémoire de travail (W) pour la mise en oevre d'opérations sur ledit composant faisant intervenir au moins une desdites données, ledit procédé étant caractérisé en ce qu'il comprend l'utilisation des mêmes zones mémoires pour l'exécution d'une opération, quelle que soit l'opération à mettre en oevre, de sorte que chaque opération présente une trace en signal caché identique en termes de fuite en localisation vers l'extérieur dudit composant.
Description
PROCEDE SECURISE DE MANIPULATION DE DONNEES LORS DE
L'EXECUTION D'ALGORITHMES CRYPTOGRAPHIQUES SUR
SYSTEMES EMBARQUES
La présente invention concerne un procédé pour contrer les attaques de type à canaux cachés lors de la manipulation de données, typiquement lors de l'exécution d'algorithmes cryptographiques sur un composant électronique. Il peut s'agir d'algorithmes à clé secrète ou à clé publique.
De tels composants sont notamment utilisés dans des applications où l'accès à des services ou à des données est contrôlé, telles que les applications cryptographiques.
Ces composants ont une architecture programmable formée autour d'un microprocesseur et de mémoires, dont une mémoire programmable volatile ou une mémoire non volatile qui contient une ou plusieurs données secrètes; il s'agit d'une architecture généraliste apte à exécuter n'importe quel algorithme.
Ces composants sont utilisés dans des systèmes informatiques, embarqués ou non ; ils sont notamment utilisés dans les cartes à puce, pour certaines applications de celles-ci. Ce sont par exemple des applications bancaires, des applications pour téléphone mobile comprenant par exemple des cartes SIM, des applications de télé-péage, par exemple pour la télévision, etc. Ces composants ou ces cartes mettent donc en œuvre un algorithme cryptographique pour assurer le chiffrement d'un message (lorsque celui-ci doit demeurer confidentiel), ou 1 ' authentification ou la
signature numérique d'un message (lorsque l'on veut assurer la non répudiation) .
A partir de ce message appliqué en entrée à la carte par un système hôte (serveur, distributeur bancaire...) et de nombres secrets contenus dans la carte, la carte fournit en retour au système hôte ce message chiffré ou signé, ce qui permet par exemple au système hôte d'authentifier le composant ou la carte, ou d'échanger des données. La sécurité de ces algorithmes cryptographique tient dans le (s) nombre (s) secret (s) contenu (s) dans la carte et inconnu (s) du monde extérieur à cette carte, ainsi que sur la manière dont sont utilisés ces nombres secrets . Or, il est apparu que des attaques externes basées sur des grandeurs physiques mesurables de l'extérieur du composant lorsque celui-ci est en train d'exécuter l'algorithme cryptographique, permettent à des tiers mal intentionnés de trouver le (s) nombre (s) ou donnée (s) secret (s) contenu (s) dans cette carte. Ces attaques sont appelées attaques à canaux cachés ("Side channel analysis" en anglais) et prennent en compte l'existence d'un canal supplémentaire par lequel l'information peut fuir. Les signaux physiques exploités sont notamment le rayonnement électromagnétique, la consommation électrique ou le temps de calcul du composant.
On distingue notamment parmi ces attaques à canaux cachés, les attaques SPA, acronyme anglo-saxon pour Simple Power Analysis, basées sur une voire quelques mesures et les attaques DPA, acronyme anglo-saxon pour
Differential Power Analysis, basées sur des analyses statistiques issues de plusieurs mesures. Ces attaques reposent par exemple sur le fait que la consommation en courant du microprocesseur exécutant des instructions varie selon l'instruction ou la donnée manipulée.
Lors de la manipulation de données pour la mise en œuvre de fonctionnalités intervenant dans l'exécution d'algorithmes cryptographiques, il est possible pour un attaquant de savoir quel (s) registre (s) a (ont) été utilisé (s), par localisation des zones de mémoire actives ou non (par exemple si les adresses des données fuient en courant ou d'un point de vue électromagnétique). L'attaquant peut alors tirer partie de cette information pour pouvoir se servir des secrets ou de fonctionnalités auxquelles il n'a pas accès.
Classiquement, pour se protéger de telles attaques, les méthodes utilisées dans l'art antérieur proposent le plus souvent, pour une opération donnée, de prévoir plusieurs mode de réalisation pour cette opération et de réaliser l'opération en question en utilisant de manière aléatoire l'un des modes de réalisation prévus. L'objectif est ainsi de brouiller les pistes en multipliant les façons d'exécuter la même opération, de sorte que les différents modes de réalisation impliquent des formes de signaux cachés (ou signatures ou trace) différentes d'un point de vue fuite d'information vers l'extérieur.
Par exemple, dans le cas d'une recopie d'une donnée dans une zone de travail de la mémoire pour l'exécution d'une fonctionnalité, il peut être prévu d' accéder aux mots de la donnée à copier de manière
aléatoire et de recopier dans le désordre dans la zone de travail, les mots ainsi accèdes en fonction d'un aléa. Cependant, si une telle méthode permet d'éviter les attaques de type attaque par dictionnaire, elle reste inadaptée aux attaques de niveau élevé exploitant par exemple les fuites en adresse des composants ou fournissant notamment la possibilité de distinguer les zones actives de la mémoire ou non. Ainsi, de l'extérieur, il est possible au final, grâce à ce type d'attaque, de savoir quelle donnée a été recopiée dans la zone de mémoire de travail et d'en dériver tout ou partie des secrets.
L'invention revendiquée résout cet inconvénient et propose une méthode alternative pour la manipulation de données de façon sécurisée lors de l'exécution d' algorithmes cryptographiques sur un composant électronique portable ou non, permettant de parer les attaques à canaux cachés, notamment celles qui se basent sur une fuite en adresse des composants ou sur une distinction des zones mémoires actives ou non, en vue d'en déduire les fonctionnalités qui se jouent dans la carte.
L' invention porte ainsi sur un procédé de manipulation de données entre des zones mémoires d'un composant électronique comprenant au moins une zone de mémoire de travail pour la mise en œuvre d'opérations sur ledit composant faisant intervenir au moins une desdites données, ledit procédé étant caractérisé en ce qu'il comprend l'utilisation des mêmes zones mémoires pour l'exécution d'une opération, quelle que soit l'opération à mettre en œuvre, de sorte que chaque
opération présente une trace en signal caché identique en termes de fuite en localisation vers l'extérieur dudit composant.
Selon un mode de réalisation, le procédé comprend, préalablement à l'exécution de l'opération, une étape de configuration des zones mémoires à utiliser avec les données servant d'opérandes dans ladite opération, ladite étape de configuration des zones mémoires dépendant de l'opération à exécuter. Avantageusement, l'étape de configuration des zones mémoires consiste à recopier une desdites données dans la zone de mémoire de travail, la recopie de ladite donnée étant masquée et aléatoire dans son exécution . Avantageusement, les zones mémoires contenant lesdites données sont simultanément actives lors de la recopie d'une desdites données dans la zone de mémoire de travail.
Selon un mode de réalisation, la recopie d'une desdites données dans la zone de mémoire de travail consiste à accéder successivement, dans un ordre fonction d'un aléa, aux éléments desdites données dans leur zone mémoire respective et à copier lesdits éléments dans la zone de mémoire de travail avec remplacement d'un des éléments de donnée par l'élément de donnée correspondant à la donnée devant être recopiée dans la zone de mémoire de travail.
Selon un mode de réalisation, les opérations mises en œuvre sont des opérations intervenant dans le cadre
de l'exécution d'un algorithme cryptographique à clé publique .
De préférence, l'algorithme cryptographique à clé publique est de type RSA, et les opérations sont des opérations de carré et de multiplication servant à l'exponentiation modulaire.
Selon un mode de réalisation, le procédé est mis en œuvre de manière matérielle.
L' invention concerne aussi un système pour la mise en œuvre du procédé selon l'une quelconque des revendications précédentes, selon lequel le composant est une carte à puce, un lecteur de carte à puce ou un
TPM (Trused Platform Module) .
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui suit, donnée à titre d'exemple illustratif et non limitatif et faite en référence à la figure unique suivante : la figure 1, qui est une représentation schématique de différentes zones mémoires d'une carte à puce illustrant le principe de l'invention.
Le principe général sur lequel repose l'invention consiste à trouver des variantes de réalisation de plusieurs opérations différentes, de sorte que ces variantes présentent la même « trace » à l'extérieur du composant électronique dans lequel elles sont exécutées, en termes de fuites en adresse ou de localisation des zones actives ou non. Les variantes respectives des différentes opérations sont dans ce cas indissociables les unes des autres, ce qui a pour effet qu'un observateur extérieur ne sait pas quelle
opération est réellement exécutée sur le composant. Typiquement, selon le cas général, l'opération de recopie d'une première ou d'une seconde donnée dans une zone de travail de la mémoire sera réalisée de sorte qu'un attaquant capable de déterminer et de distinguer les accès à la première et à la seconde donnée ne sera pas capable de connaître quelle donnée a effectivement été stockée dans la zone de travail.
Selon l'invention, on se propose également d'utiliser tout le temps les mêmes zones mémoires pour faire les calculs impliqués par l'opération en cours, afin de limiter les accès mémoires et éviter les fuites en adresses. Plus particulièrement, on prévoit une zone de mémoire de travail commune, où les opérandes dont on a besoin pour réaliser l'opération sont recopiés à la volée .
La figure 1 représente donc une telle zone de mémoire de travail W, ainsi que deux zones mémoires Rl et R2, contenant des valeurs à traiter A et B. Pour contrer certaines attaques possibles du type précité, la recopie d'une donnée dans la zone de mémoire de travail est masquée et aléatoire dans son exécution, tandis que la partie calculatoire est prévue pour être toujours la même d'un point de vue fuite d'informations vers l'extérieur.
La méthode de recopie de la donnée A par exemple dans la zone de mémoire de travail W, consiste à accéder successivement, en fonction d'un aléa t, aux mots de A et de B. De cette façon, lors de la recopie de la donnée A dans W, les zones mémoires Rl et R2 contenant respectivement les données A et B sont
simultanément actives, dans un ordre qui est variable en fonction de l'aléa. De ce fait, il en ressort que, de l'extérieur, on ne sait pas si c'est la donnée issue de la zone mémoire Rl ou R2 qui est recopiée dans W à la fin du processus de recopie.
La figure 1 illustre plus particulièrement un schéma de l'algorithme mis en œuvre pour la recopie de la donnée A dans le registre de travail W selon les principes exposés ci-dessus. Notons A = Ak_i I | ... | |A0, B = Bk-i I I ... I I B0 et W = WkI I Wk-i I I ••• I IW0, où I I correspond à la concaténation, et où les X1 correspondent aux mots de la variable X. Par ailleurs, soit t un bit aléatoire.
Si t = 0 a) pour j = 0 à k-1 i) W3 <-BD ; W3 <- A3 b) Wk ^O
Si t = 1 a) pour j = 0 à k-1
W3 <- A3 ; W3+1^B3 b) Wk ^O
L'algorithme fonctionnerait de façon similaire pour la recopie de la donnée B dans W et de la mAme manière, on ne pourrait donc pas distinguer entre la recopie de A dans W et la recopie de B dans W, puisque c'est l'aléa t qui définit l'ordre d'accès à tel ou tel registre en premier.
Ainsi, pour revenir à l'exemple de la recopie de A dans W, en fonction de la valeur 0 ou 1 de l'aléa t, la zone mémoire Rl ou R2 est d'abord accédée, mais dans les deux cas, il s'agit bien de la valeur A qui est recopiée au final dans W. En effet, l'algorithme prévoit qu'à chaque tour de boucle, la valeur B3 est remplacée par la valeur A3.
Ainsi, si t=0, la valeur B3 est écrite en premier dans W3 (étape symbolisée par la flèche 1 sur la figure 1), puis W3 prend la valeur A3, qui vient donc remplacer la valeur B3 précédemment écrite dans W3 (flèche 2), et ainsi de suite à chaque tour de boucle de l'algorithme.
Dans le cas où t=l, W3 prend d'abord la valeur A3 (tel que symbolisé par la flèche l'), tandis que W3+i prend la valeur B3 (flèche 2') . Puis, au tour de boucle suivant, j ayant été incrémenté, la valeur B3 copiée précédemment est remplacée par la nouvelle valeur A3
(flèche 3' ) . La recopie peut bien entendu se faire de façon non linaire, c'est-à-dire par blocs choisis aléatoirement .
Comme décrit ci-dessus, on parcourt la boucle mise en œuvre dans l'algorithme de recopie de j=0 à j=k-l. Selon une variante, on peut exécuter l'algorithme dans le sens inverse, en décrémentant j, sans modifier le résultat. Par ailleurs, l'algorithme fonctionne avec des mots de n'importe quelle taille.
Dans les deux cas, on obtient au final dans la zone mémoire de travail W la valeur finale que l'on voulait recopier, soit la donnée A. L'aléa t permet donc avantageusement d'avoir deux façons différentes de
recopier A dans W, puisque selon la valeur de l'aléa, on accède d'abord à A ou d'abord à B, bien que la valeur recopiée au final dans W soit toujours A. Les attaques de type émission électromagnétiques sur les zones actives ou non ainsi que des fuites en adresse sont donc rendues caduques. Bien entendu, le même processus peut être utilisé pour recopier la donnée B dans W.
Selon l'invention, la recopie de la donnée A ou B dans la zone de mémoire de travail W est donc rendue plus robuste vis-à-vis des fuites vers l'extérieur, puisqu' étant masquée et aléatoire dans son exécution et ce, indépendamment de la zone accédée .
Selon un autre aspect de l'invention, la partie calculatoire impliquée par une opération à mettre en œuvre sur le composant électronique est prévue pour être toujours la même d'un point de vue fuite d'informations vers l'extérieur. Pour ce faire, on prévoit d'utiliser toujours les mêmes zones mémoires quelle que soit l'opération à mettre en œuvre, de sorte que ces opérations aient la même trace en signal caché d'un point de vue fuite d'information vers l'extérieur. Les opérations sont dans ce cas indissociables les unes des autres, ce qui a pour effet qu'un observateur ne sait pas quelle opération est réellement exécutée sur le composant électronique. Avantageusement, c'est la configuration des zones mémoires impliquées qui permet d'obtenir une opération ou une autre.
Selon un exemple d' implémentation, la méthode exposée ci-dessus permettant de manipuler des données de façon sécurisée pour contrer les attaques de type
« à canaux cachés », peut avantageusement être adaptée pour la mise en œuvre d'opérations de multiplication et de carré servant à l'exponentiation modulaire dans le cadre d'un algorithme cryptographique de type RSA. Ainsi, dans le cas de cet exemple, les opérations multiplication (« multiply ») et carré (« square ») peuvent avoir la même trace en signal caché, puisqu'elles reviennent à multiplier une première zone mémoire par une seconde zone mémoire. Si ces zones mémoires sont toujours les mêmes, les traces en signal caché vues de l'extérieur sont identiques.
Selon un exemple de réalisation, les zones mémoires Rl et W sont les zones mémoires utilisées pour l'exécution d'une opération. Pour réaliser l'opération de multiplication de A par B, on copie préalablement le contenu de R2 dans W selon les principes de recopie exposés précédemment et on multiplie le contenu de la zone mémoire Rl par le contenu de la zone mémoire de travail W. Pour réaliser l'opération de carré sur la donnée A, on copie préalablement le contenu de Rl dans W, toujours en application des mêmes principes déjà exposés, et on multiplie le contenu de la zone mémoire Rl par le contenu de la zone mémoire de travail W. La différence fonctionnelle vient donc du contenu copié au préalable dans la zone de mémoire de travail W, qui est rendu inaccessible à un observateur extérieur grâce au processus de recopie décrit précédemment. De plus, les zones mémoires Rl et W impliquées dans la mise en œuvre des opérations étant toujours les mêmes, les traces en signal caché de ces opérations vues de l'extérieur sont identiques. Un observateur pourra donc seulement
déduire quelles zones mémoires sont utilisées, en l'occurrence Rl et W selon l'exemple, mais ne pouvant pas connaître quel contenu A ou B a été copié préalablement dans la zone de mémoire de travail W, il ne pourra pas en déduire quelle opération est mise en œuvre entre multiplication ou carré.
La zone de mémoire de travail W peut être au préalable initialisée dans un ordre aléatoire et/ou avec des valeurs aléatoires. De manière générale, le procédé selon l'invention est susceptible de s'appliquer à tout algorithme où il y aurait la possibilité d'avoir au moins deux zones mémoires distinctes à appliquer dans un calcul et où un observateur extérieur pourrait déduire de l'information sensible de la connaissance des zones utilisées par l'intermédiaire d'attaques du type précité.
Le procédé de manipulation sécurisée de données selon l'invention peut être mis en œuvre par tout moyen approprié, matériel ou logiciel.
Claims
1. Procédé de manipulation de données (A, B) entre des zones mémoires (W, Rl, R2) d'un composant électronique comprenant au moins une zone de mémoire de travail (W) pour la mise en œuvre d'opérations sur ledit composant faisant intervenir au moins une desdites données, ledit procédé étant caractérisé en ce qu'il comprend l'utilisation des mêmes zones mémoires pour l'exécution d'une opération, quelle que soit l'opération à mettre en œuvre, de sorte que chaque opération présente une trace en signal caché identique en termes de fuite en localisation vers l'extérieur dudit composant.
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend, préalablement à l'exécution de l'opération, une étape de configuration des zones mémoires à utiliser avec les données servant d'opérandes dans ladite opération, ladite étape de configuration des zones mémoires dépendant de l'opération à exécuter.
3. Procédé selon la revendication 2, caractérisé en ce que l'étape de configuration des zones mémoires consiste à recopier une desdites données (A ou B) dans la zone de mémoire de travail (W) , la recopie de ladite donnée (A ou B) étant masquée et aléatoire dans son exécution .
4. Procédé selon la revendication 3, caractérisé en ce que les zones mémoires (Rl, R2) contenant lesdites données (A, B) sont simultanément actives lors de la recopie d'une desdites données (A ou B) dans la zone de mémoire de travail (W) .
5. Procédé selon les revendications 3 ou 4, caractérisé en ce que la recopie d'une desdites données (A ou B) dans la zone de mémoire de travail (W) consiste à accéder successivement, dans un ordre fonction d'un aléa (t) , aux éléments desdites données (A, B) dans leur zone mémoire respective (Rl, R2) et à copier lesdits éléments dans la zone de mémoire de travail (W) avec remplacement d'un des éléments de donnée par l'élément de donnée correspondant à la donnée devant être recopiée dans la zone de mémoire de travail .
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les opérations mises en œuvre sont des opérations intervenant dans le cadre de l'exécution d'un algorithme cryptographique à clé publique.
7. Procédé selon la revendication 6, caractérisé en ce que l'algorithme cryptographique à clé publique est de type RSA.
8. Procédé selon la revendication 7, caractérisé en ce que les opérations sont des opérations de carré et de multiplication servant à l'exponentiation modulaire .
9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est mis en œuvre de manière matérielle.
10. Système pour la mise en œuvre du procédé selon l'une quelconque des revendications précédentes, selon lequel le composant est une carte à puce, un lecteur de carte à puce ou un TPM (Trused Platform Module) .
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/084,487 US20100042851A1 (en) | 2005-11-04 | 2006-10-27 | Method for Securely Handling Data During the Running of Cryptographic Algorithms on Embedded Systems |
JP2008539394A JP2009515449A (ja) | 2005-11-04 | 2006-10-27 | 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法 |
EP06819181A EP1949292A1 (fr) | 2005-11-04 | 2006-10-27 | Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0511268 | 2005-11-04 | ||
FR0511268 | 2005-11-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007051770A1 true WO2007051770A1 (fr) | 2007-05-10 |
Family
ID=36570540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2006/067901 WO2007051770A1 (fr) | 2005-11-04 | 2006-10-27 | Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100042851A1 (fr) |
EP (1) | EP1949292A1 (fr) |
JP (1) | JP2009515449A (fr) |
WO (1) | WO2007051770A1 (fr) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407425B2 (en) * | 2007-12-28 | 2013-03-26 | Intel Corporation | Obscuring memory access patterns in conjunction with deadlock detection or avoidance |
FR2972064B1 (fr) * | 2011-02-25 | 2013-03-15 | Inside Secure | Procede de cryptographie comprenant une operation d'exponentiation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19936890A1 (de) * | 1998-09-30 | 2000-04-06 | Philips Corp Intellectual Pty | Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen |
US20030005321A1 (en) * | 2001-06-28 | 2003-01-02 | Shuzo Fujioka | Information processing device |
US20040093306A1 (en) * | 2000-11-16 | 2004-05-13 | Olivier Benoit | Method and device for making secure data processing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69837036T2 (de) * | 1997-09-16 | 2007-10-18 | Koninklijke Philips Electronics N.V. | Verfahren und vorrichtung zur ausführung einer entschlüsselung mittels einer standardisierten modularen potenzierung zum vereiteln eines zeitangriffs |
WO2000019657A1 (fr) * | 1998-09-30 | 2000-04-06 | Koninklijke Philips Electronics N.V. | Procede de codage permettant d'executer des operations cryptographiques |
FR2800478B1 (fr) * | 1999-10-28 | 2001-11-30 | Bull Cp8 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
JP2003150740A (ja) * | 2001-11-12 | 2003-05-23 | White Lily:Kk | 興行チケットの販売システム |
KR100436814B1 (ko) * | 2001-12-20 | 2004-06-23 | 한국전자통신연구원 | 아이씨카드용 알에스에이 암호 연산 장치 |
FR2838210B1 (fr) * | 2002-04-03 | 2005-11-04 | Gemplus Card Int | Procede cryptographique protege contre les attaques de type a canal cache |
JP2004129033A (ja) * | 2002-10-04 | 2004-04-22 | Renesas Technology Corp | データプロセッサ及びicカード |
FR2847402B1 (fr) * | 2002-11-15 | 2005-02-18 | Gemplus Card Int | Procede de division entiere securise contre les attaques a canaux caches |
FR2858496B1 (fr) * | 2003-07-31 | 2005-09-30 | Gemplus Card Int | Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant |
JP2005056413A (ja) * | 2003-08-01 | 2005-03-03 | Stmicroelectronics Sa | 複数の同じ計算の保護 |
-
2006
- 2006-10-27 EP EP06819181A patent/EP1949292A1/fr not_active Withdrawn
- 2006-10-27 US US12/084,487 patent/US20100042851A1/en not_active Abandoned
- 2006-10-27 WO PCT/EP2006/067901 patent/WO2007051770A1/fr active Application Filing
- 2006-10-27 JP JP2008539394A patent/JP2009515449A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19936890A1 (de) * | 1998-09-30 | 2000-04-06 | Philips Corp Intellectual Pty | Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen |
US20040093306A1 (en) * | 2000-11-16 | 2004-05-13 | Olivier Benoit | Method and device for making secure data processing |
US20030005321A1 (en) * | 2001-06-28 | 2003-01-02 | Shuzo Fujioka | Information processing device |
Non-Patent Citations (1)
Title |
---|
"SECTION 1: INTRODUCTION", DATA BOOK SOFT MICROCONTROLLER, XX, XX, 6 October 1993 (1993-10-06), pages 1-3,7,8,73,77 - 82, XP002020287 * |
Also Published As
Publication number | Publication date |
---|---|
JP2009515449A (ja) | 2009-04-09 |
EP1949292A1 (fr) | 2008-07-30 |
US20100042851A1 (en) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1627362A1 (fr) | Methode de generation d'une cle de securite | |
WO2012062994A1 (fr) | Protection contre les ecoutes passives | |
EP1652336A1 (fr) | Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant | |
EP1421473B1 (fr) | Procédé de calcul universel appliqué à des points d'une courbe elliptique | |
FR2811790A1 (fr) | Microcontroleur securise contre des attaques dites en courant | |
EP1949292A1 (fr) | Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques | |
FR3040512A1 (fr) | Protection d'un calcul d'exponentiation modulaire | |
WO2000062473A1 (fr) | Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme crytographique avec cle secrete, une utilisation du procede et l'ensemble electronique | |
EP1279141B1 (fr) | Procede de contre mesure dans un microcircuit et carte a puce comportant ledit microcircuit | |
EP2954449B1 (fr) | Authentification de signature manuscrite numérisée | |
CA2988357A1 (fr) | Procede de chiffrement, procede de chiffrement, dispositifs et programmes correspondants | |
EP1254408B1 (fr) | Procede de calcul d'exponentation modulaire dans un composant electronique mettant en oeuvre un algorithme de chiffrement a cle publique | |
EP1436792B1 (fr) | Protocole d'authentification a verification d'integrite de memoire | |
FR3040511A1 (fr) | Verification de la sensibilite d'un circuit electronique executant un calcul d'exponentiation modulaire | |
EP3100403B1 (fr) | Échelle de montgomery déséquilibrée résistante aux attaques par canaux auxiliaires | |
EP2053532A1 (fr) | Procédé d'ouverture sécurisée à des tiers d'une carte à microcircuit | |
EP1442556B1 (fr) | Procédé securisé de mise en oeuvre d'un algorithme de cryptographie et composant correspondant | |
WO2004017193A2 (fr) | Procede de calcul universel applique a des points d'une courbe elliptique | |
FR2908194A1 (fr) | Entite electronique portable et procede de blocage, a distance, d'une fonctionnalite d'une telle entite electronique portable | |
CA3183198A1 (fr) | Dispositif, methode et programme pour une communication securisee entre boites blanches | |
FR3145222A1 (fr) | Protection contre les attaques par canal auxiliaire d’un algorithme cryptographique impliquant une table de substitution | |
FR2976697A1 (fr) | Transfert securise entre memoire non-volatile et memoire volatile | |
WO2003025739A1 (fr) | Procede securise de mise en oeuvre d'un algorithme de cryptographie et composant correspondant | |
EP2273407A1 (fr) | Sécurisation de localisation d'un code distant à travers l'empreinte du destinataire | |
EP2104893A2 (fr) | Systemes electroniques securises, procedes de securisation et utilisations de tels systemes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006819181 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2008539394 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12084487 Country of ref document: US |
|
WWP | Wipo information: published in national office |
Ref document number: 2006819181 Country of ref document: EP |