FR2791496A1 - Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique - Google Patents
Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique Download PDFInfo
- Publication number
- FR2791496A1 FR2791496A1 FR9903920A FR9903920A FR2791496A1 FR 2791496 A1 FR2791496 A1 FR 2791496A1 FR 9903920 A FR9903920 A FR 9903920A FR 9903920 A FR9903920 A FR 9903920A FR 2791496 A1 FR2791496 A1 FR 2791496A1
- Authority
- FR
- France
- Prior art keywords
- algorithm
- decryption
- counter
- integer
- countermeasure method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- 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
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7247—Modulo masking, e.g. A**e mod (n*r)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7257—Random modification not requiring correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques consistant à calculer à partir de la clé privée d et du nombre de points n de ladite courbe elliptique un nouvel entier de déchiffrement d'tel que le déchiffrement d'un message chiffré quelconque, au moyen d'un algorithme de déchiffrement, avec d'donne le même résultat qu'avec d, en réalisant l'opération Q = d * P, P étant un point de la courbe, procédé caractérisé en ce qu'il comprend quatre étapes : 1) Détermination d'un paramètre de sécurité s, dans la pratique on peut prendre s voisin de 30, 2) Tirage d'un nombre aléatoire k compris entre 0 et 21 s, 3) Calcul de l'entier d' = d + k*n,4) Calcul de Q = d'. P.
Description
PROCEDES DE CONTRE-MESURE DANS UN
COMPOSANT ELECTRONIQUE METTANT EN îUVRE
UN ALGORITHME DE CRYPTOGRAPHIE A CLE
PUBLIQUE DE TYPE COURBE ELLIPTIQUE
La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de chiffrement à clé publique de type courbe elliptique Dans le modèle classique de la cryptographie à clef secrète, deux personnes désirant communiquer par l'intermédiaire d'un canal non sécurisé doivent au préalable se mettre d'accord sur une clé secrète de chiffrement K. La fonction de chiffrement et la fonction de déchiffrement utilisent la même clef K. L'inconvénient du système de chiffrement à clé secrète est que ledit système requiert la communication préalable de la clé K entre les deux personnes par l'intermédiaire d'un canal sécurisé, avant qu'un quelconque message chiffré
ne soit envoyé à travers le canal non sécurisé.
Dans la pratique, il est généralement difficile de trouver un canal de communication parfaitement sécurisé, surtout si la distance séparant les deux personnes est importante. On entend par canal sécurisé un canal pour lequel il est impossible de connaître ou de modifier
les informations qui transitent par ledit canal.
Un tel canal sécurisé peut être réalisé par un câble reliant deux terminaux, possédés par les
deux dites personnes.
Le concept de cryptographie à clef publique fut inventé par Whitfield DIFFIE et Martin HELLMAN en 1976. La cryptographie à clef publique permet de résoudre le problème de la distribution des clefs à travers un canal non sécurisé. Le principe de la cryptographie à clef publique consiste à utiliser une paire de clefs, une clef publique de chiffrement et une clef privée de déchiffrement. Il doit être calculatoirement infaisable de trouver la clef privée de déchiffrement à partir de la clef publique de chiffrement. Une personne A désirant communiquer une information à une personne B utilise la clef publique de chiffrement de la personne B. Seule la personne B possède la clef privée associée à sa clef publique. Seule la personne B est donc capable de déchiffrer le message qui lui est adressé. Un autre avantage de la cryptographie à clé publique sur la cryptographie à clé secrète est que la cryptographie à clef publique permet l'authentification par l'utilisation de
signature électronique.
La première réalisation de schéma de chiffrement à clef publique fut mis au point en 1977 par Rivest, Shamir et Adleman, qui ont inventé le système de chiffrement RSA. La sécurité de RSA repose sur la difficulté de factoriser un grand nombre qui est le produit de deux nombres premiers. Depuis, de nombreux systèmes de chiffrement à clef publique ont été proposés, dont la sécurité repose sur différents problèmes calculatoires:
(cette liste n'est pas exhaustive).
- Sac à dos de Merckle-Hellman: Ce système de chiffrement est basé sur la
difficulté du problème de la somme de sous-
ensembles. - McEliece: Ce système de chiffrement est basé sur la théorie des codes algébriques. Il est basé sur
le problème du décodage de codes linéaires.
- ElGamal: Ce système de chiffrement est basé sur la difficulté du logarithme discret dans un corps fini. - Courbes elliptiques: Le système de chiffrement à courbe elliptique constitue une modification de systèmes cryptographiques existant pour les
appliquer au domaine des courbes elliptiques.
L'utilisation de courbes elliptiques dans des systèmes cryptographiques fut proposé indépendamment par Victor Miller et Neal Koblitz en 1985. Les applications réelles des courbes elliptiques ont été envisagées au début des
années 1990.
L'avantage de cryptosystèmes a base de courbe elliptique est qu'ils fournissent une sécurité équivalente aux autres cryptosystèmes mais avec des tailles de clef moindres. Ce gain en taille de clé implique une diminution des besoins en mémoire et une réduction des temps de calcul, ce qui rend l'utilisation des courbes elliptiques particulièrement adaptées pour des applications
de type carte à puce.
Une courbe elliptique sur un corps fini GF(q^n) (q étant un nombre premier et n un entier) est l'ensemble des points (x,y) avec x l'abscisse et y l'ordonnée appartenant à GF(q^n) solution de l'équation: y^2=x^3+ax+b si q est supérieur ou égal à 3 et y^2+x*y=x^3+ a*x^2+b
si q=2.
Les deux classes de courbes elliptiques les plus utilisées en cryptographie sont les classes suivantes: 1) Courbes définies sur le corps fini GF(p) (ensemble des entiers modulo p, p étant un nombre premier) ayant pour équation: y^2=x^3+ax=b 2) Courbes elliptiques sur le corps fini GF(2^n) ayant pour équation y^2+ xy=x^3+axA2+b Pour chacune de ces deux classes de courbes, on définit une opération d'addition de points: étant donné deux points P et Q. la somme R=P+Q est un point de la courbe, dont les coordonnées s'expriment à l'aide des coordonnées des points P et Q suivant des formules dont l'expression est donnée dans l'ouvrage " Elliptic Curve public key
cryptosystem " par Alfred J. Menezes.
Cette opération d'addition permet de définir une opération de multiplication scalaire: étant donné un point P appartenant à une courbe elliptique et un entier d, le résultat de la multiplication scalaire de P par un point d
tel que Q=d.P=P+PP....+P d fois.
La sécurité des algorithmes de cryptographie sur courbes elliptiques est basée sur la difficulté du logarithme discret sur courbes elliptiques, ledit problème consistant à partir de deux points Q et P appartenant à une courbe elliptique E, de trouver, s'il existe, un entier x tel que Q=x.P Il existe de nombreux algorithmes cryptographiques basés sur le problème du
logarithme discret.
Ces algorithmes sont facilement transposables aux courbes elliptiques. Ainsi, il est possible de mettre en oeuvre des algorithmes assurant l'authentification, la confidentialité, le contrôle d'intégrité et l'échange de clé. Un point commun à la plupart des algorithmes cryptographiques basés sur les courbes elliptiques est qu'ils comprennent comme paramètre une courbe elliptique définie sur un corps fini et un point P appartenant à cette courbe elliptique. La clé privée est un entier d choisi aléatoirement. La clef publique est un point de la courbe Q tel que Q=d.P. Ces algorithmes cryptographiques font généralement intervenir une multiplication scalaire dans le calcul d'un point R=d.T o d est la clef secrète. Dans ce paragraphe, on décrit un algorithme de chiffrement à base de courbe elliptique. Ce schéma est analogue au schéma de chiffrement d'El Gamal. Un message m est chiffré de la manière suivante: Le chiffreur choisit un entier k aléatoirement et calcule les points k.P=(xl,yl) et k.Q=(x2,y2) de la courbe, et l'entier c= x2 + m. Le chiffré
de m est le triplet (xl,yl,c).
Le déchiffreur qui possède d déchiffre m en calculant: (x'2, y'2)=d(xl,yl) et m=c-x'2 Pour réaliser les multiplications scalaires nécessaires dans les procédé de calcul décrits précédemment, plusieurs algorithmes existent: Algorithme " double and add "; Algorithme " addition-soustraction " Algorithme avec chaînes d'addition; Algorithme avec fenêtre; Algorithme avec représentation signée; Cette liste n'est pas exhaustive. L'algorithme le plus simple et le plus utilisé est l'algorithme " double and add ". L'algorithme " double and add " prend en entrée un point P appartenant à une courbe elliptique donnée et un entier d. L'entier d est noté d=(d(t),d(t-1),..., d(0)), o (d(t),d(t-l),...,d(0)) est la représentation binaire de d, avec d(t) le bit de
poids fort et d(0) le bit de poids faible.
L'algorithme retourne en sortie le point Q=d.P.
L'algorithme " double and add " comporte les 3 étapes suivantes: 1)Initialiser le point Q avec la valeur P 2)Pour i allant de t-1 à 0 exécuter: 2a) Remplacer Q par 2Q 2b) Si d(i)=1 remplacer Q par Q+ P 3) Retourner Q. Il est apparu que l'implémentation sur carte à puce d'un algorithme de chiffrement à clé publique du type courbe elliptique était vulnérable à des attaques consistant en une analyse différentielle de consommation de courant permettant de retrouver la clé privée de déchiffrement. Ces attaques sont appelées attaques DPA, acronyme pour Differential Power Analysis. Le principe de ces attaques DPA repose sur le fait que la consommation de courant du microprocesseur exécutant des instructions varie
selon la donnée manipulée.
En particulier, lorsqu'une instruction manipule une donnée dont un bit particulier est constant, la valeur des autres bits pouvant varier, l'analyse de la consommation de courant liée à l'instruction montre que la consommation moyenne de l'instruction n'est pas la même suivant que
le bit particulier prend la valeur 0 ou 1.
L'attaque de type DPA permet donc d'obtenir des informations supplémentaires sur les données intermédiaires manipulées par le microprocesseur de la carte lors de l'exécution d'un algorithme cryptographique. Ces informations supplémentaires peuvent dans certain cas permettre de révéler les paramètres privés de l'algorithme de déchiffrement, rendant le
système cryptographique non sûr.
Dans la suite de ce document on décrit un procédé d'attaque DPA sur un algorithme de type courbe elliptique réalisant une opération du type multiplication scalaire d'un point P par un entier d, l'entier d étant la clé secrète. Cette attaque permet de révéler directement la clé secrète d. Elle compromet donc gravement la sécurité de l'implémentation de courbes
elliptiques sur une carte à puce.
La première étape de l'attaque est l'enregistrement de la consommation de courant correspondant à l'exécution de l'algorithme " double and add" décrit précédemment pour N points distincts P(1),..., P(N). Dans un algorithme à base de courbes elliptiques, le microprocesseur de la carte à puce va effectuer
N multiplications scalaires d.P(l),...,d.P(N).
ú
Pour la clarté de la description de l'attaque,
on 'commence par décrire une méthode permettant d'obtenir la valeur du bit d(t-1) de la clé secrète d, o (d(t),d(t-1),.., d(0)) est la représentation binaire de d, avec d(t) le bit de poids fort et d(0) le bit de poids faible. On
donne ensuite la description d'un algorithme qui
permet de retrouver la valeur de d.
On groupe les points P(1) à P(N) suivant la valeur du dernier bit de l'abscisse de 4.P, o P désigne un des points P(1) à P(N). Le premier groupe est constitué des points P tels que le
dernier bit de l'abscisse de 4.P est égal à 1.
Le second groupe est constitué des points P tels que le dernier bit de l'abscisse de 4.P est égal à O. On calcule la moyenne des consommations de courant correspondant à chacun des deux groupes, et on calcule la courbe de différence entre ces
deux moyennes.
Si le bit d(t-1) de d est égal à 0, alors l'algorithme de multiplication scalaire précédemment décrit calcule et met en mémoire la valeur de 4.P. Cela signifie que lors de l'exécution de l'algorithme dans une carte à puce, le microprocesseur de la carte va effectivement calculer 4.P. Dans ce cas, dans le premier groupe de message le dernier bit de la donnée manipulée par le microprocesseur est toujours à 1, et dans le deuxième groupe de message le dernier bit de la donnée manipulée est toujours à 0. La moyenne des consommations de courant correspondant à chaque groupe est donc différente. Il apparaît donc dans la courbe de différence entre les 2 moyennes un pic de
différentiel de consommation de courant.
Si au contraire le bit d(t-l) de d est égal à 1, l'algorithme d'exponentiation décrit précédemment ne calcule pas le point 4.P. Lors de l'exécution de l'algorithme par la carte à puce, le microprocesseur ne manipule donc jamais la donnée 4.P. Il n'apparaît donc pas de pic de
différentiel de consommation.
Cette méthode permet donc de déterminer la
valeur du bit d(t-1) de d.
L'algorithme décrit dans le paragraphe suivant est une généralisation de l'algorithme précédant. Il permet de déterminer la valeur de la clé secrète d: On définit l'entrée par N points notés P(1) à P(N) correspondant à N calculs réalisés par la carte à puce et la sortie par un entier h. Ledit algorithme s'effectue de la manière
suivante en trois étapes.
1) Exécuter h=l; 2) Pour i allant de t-l à 1, exécuter: 2)1) Classer les points P(1) à P(N) suivant la valeur du dernier bit de l'abscisse de (4*h).P; 2)2) Calculer la moyenne de consommation de courant pour chacun des deux groupes; 2)3) Calculer la différence entre les 2 moyennes; 2 4)Si la différence fait apparaître un pic de différentiel de consommation, faire h=h*2; sinon faire h=h*2+l; 3) Retourner h. L'algorithme précédent fournit un entier h tel que d=2*h ou d=2*h+l. Pour obtenir la valeur de d, il suffit ensuite de tester les deux
hypothèses possibles.
L'attaque de type DPA décrite permet donc de
retrouver la clé privée d.
Le procédé de l'invention consiste en l'élaboration de trois contre-mesures permettant de se prémunir contre l'attaque DPA précédemment décrite. Le procédé de la première contre-mesure consiste à calculer à partir de la clé privée d et du nombre de points n de la courbe elliptique un nouvel entier de déchiffrement d', tel que le déchiffrement d'un message chiffré quelconque
avec d' donne le même résultat qu'avec d.
Dans le cas d'un algorithme cryptographique basé sur l'utilisation de courbes elliptiques réalisant l'opération Q=d.P o d est la clé privée et P un point de la courbe, le calcul de Q=d.P est remplacé par le procédé suivant en quatre étapes: 1) Détermination d'un paramètre de sécurité s,
dans la pratique on peut prendre s voisin de 30.
2) Tirage d'un nombre aléatoire k compris entre 0 et 2^s; 3) Calcul de l'entier d'=d+k*n;
4) Calcul de Q=d'.P.
Le procédé de la première contre-mesure comprend deux variantes qui concernent la mise à jour de l'entier d'. La première variante consiste en ce qu'un nouvel entier de déchiffrement d'est calculé à chaque nouvelle exécution de l'algorithme de déchiffrement, selon le procédé décrit précédemment. La seconde variante consiste en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement. Lorsque ce compteur atteint une valeur fixée T, un nouvel entier de déchiffrement d' est calculé selon le procédé décrit précédemment, et le compteur est remis à
zéro. Dans la pratique, on peut prendre T=16.
Le procédé de la première contre-mesure rend donc l'attaque DPA précédemment décrite impossible en changeant d'entier d de déchiffrement. Le procédé de la deuxième contre-mesure s'applique à la première classe de courbes précedemment décrites, c'est à dire les courbes définies sur le corps fini GF(p) ayant pour équation y^2=x^3+ax+b. Le procédé de la deuxième contre-mesure consiste à utiliser un module de calcul aléatoire à chaque nouvelle exécution. Ce module aléatoire est de la forme p'= p*r o r est un entier aléatoire. L'opération de multiplication scalaire Q=d.p réalisée dans un algorithme à base de courbe elliptique s'effectue alors selon le procédé suivant en cinq étapes: l) Détermination d'un paramètre de sécurité s; dans la pratique, on peut prendre s voisin du nombre 60; 2) Tirage du nombre aléatoire r dont la représentation binaire fait s bits; 3) Calcul de p'=p*r; 4) Exécuter l'opération de multiplication scalaire Q=d.P, les opérations étant effectuées modulo p'; ) Effectuer l'opération de réduction modulo p des coordonnées du point Q. Le procédé de la seconde contre-mesure comprend deux variantes qui concernent la mise à jour de l'entier r. La première variante consiste en ce qu'un nouvel entier r est calculé à chaque nouvelle exécution de l'algorithme de déchiffrement, selon le procédé décrit précédemment. La seconde variante consiste en ce qu'un compteur est incrémenté à chaque nouvelle
exécution de l'algorithme de déchiffrement.
Lorsque ce compteur atteint une valeur fix "e T, un nouvel entier r est calculé selon le procédé décrit précédemment, et le compteur est remis à
zéro.. Dans la pratique, on peut prendre T+16.
Le procédé de la troisième contre-mesure consiste à " masquer " le point P sur lequel on veut appliquer l'algorithme de multiplication scalaire en lui ajoutant un point aléatoire R. Le procédé de multiplication scalaire d'un point P par un entier d suivant Q=d.P comprend les cinq étapes suivantes: 1) Tirage d'un point aléatoire R sur la courbe; 2) Calcul de P'=P+R; 3) Opération de multiplication scalaire Q'=d.P'; 4) Opération de multiplication scalaire S=d.R; ) Calcul de Q=Q'- S. Le procédé de la troisième contre-mesure comprend trois variantes. la première variante consiste en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement. Lors de la première exécution de l'algorithme de déchiffrement, l'algorithme est exécuté suivant le procédé en cinq étapes décrit précédemment. Tant que le compteur n'a pas atteint la valeur limite T, les étapes 1 et 4 du procédé décrit précédemment ne sont pas exécutées, les points R et S gardant les valeurs prises lors de l'exécution précédente. Lorsque le compteur atteint la valeur limite T, l'algorithme de déchiffrement s "effectue suivant le procédé décrit précédemment en cinq étapes, et le compteur est remis à zéro. Dans la
pratique, on peut prendre T=16.
La deuxème variante consiste en ce que la carte possède initialement en mémoire deux points de la courbe elliptique tels que S=d.R. Les étapes 1 et 4 de l'algorithme de déchiffrement précédent sont remplacées par les étapes 1' et 4' suivantes: 1') Remplacer R par 2.R:
4') Remplacer S par 2.S.
La troisième variante consiste en une modification de la deuxième variante caractérisée en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement. Lors de la première exécution de l'algorithme de déchiffrement, l'algorithme est exécuté suivant le procédé en cinq étapes de la deuxième variante décrit précédemment. Tant que le compteur n'a pas atteint une valeur limite T, les étapes 1' et 4' du procédé décrit précédemment ne sont pas exécutées, les points R et S gardant les valeurs prises lors de l'exécution précédente. Lorsque le compteur atteint une valeur limite T, l'algorithme de déchiffrement s'effectue suivant le procédé précédemment décrit en cinq étapes, et le compteur est remis à zéro. Dans la pratique, on
peut prendre T=16.
L'application des trois procédés de contre-
mesure précédents permet de protéger tout l'algorithme cryptographique basé sur les courbes elliptiques contre l'attaque DPA précédemment décrit. Les trois contre-mesures présentées sont de plus compatibles entre elles: il est possible d'appliquer à l'algorithme de
déchiffrement RSA une, deux ou trois des contre-
mesures décrites.
Claims (5)
1- Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques consistant à calculer à partir de la clé privée d et du nombre de points n de ladite courbe elliptique un nouvel entier de déchiffrement d' tel que le déchiffrement d'un message chiffré quelconque, aumoyen d'un algorithme de déchiffremet, avec d' donne le même résultat qu'avec d, en réalisant l'opération Q=d*P, P étant un point de la courbe, procédé caractérisé en ce qu'il comprend quatre étapes: 1) Détermination d'un paramètre de sécurité s, dans la pratique on peut prendre s voisin de 30; 2) Tirage d'un nombre aléatoire k compris entre 0 et 2As; 3) Calcul de l'entier d'=d+k*n;
4) Calcul de Q=d'.P.
2- Procédé de contre-mesure selon la revendication 1 caractérisé en ce qu'une première variante consiste en ce qu'un nouvel entier de déchiffrement d' est calculé à chaque nouvelle exécution de l'algorithme de déchiffrement. 3- Procédé de contre-mesure selon la revendication 1 caractérisé en ce qu'une seconde variante consiste en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'agorithme de déchiffrement jusqu'à atteindre une valeur fixée T. 4- Procédé de contre-mesure selon la revendication 3 caractérisé en ce qu'une fois la valeur T atteinte, un nouvel entier de chiffrement est calculé selon le procédé de la
revendication 1 et le compteur est remis à zéro.
- Procédé de contre-mesure selon la revendication 3 caractérisé la valeur T est
égale à l'entier seize.
6- Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques définies sur un corps fini GF(p), p étant un nombre premier, ayant pour équation y^2=x^3+ax+b, consistant à utiliser un module de calcul aléatoire à chaque nouvelle exécution de la forme p'=p*r o r est un entier aléatoire et présentant un point P caractérisé en ce que ledit procédé exécute l'opération de multiplication scalaire en cinq étapes: 1) Détermination d'un paramètre de sécurité s; dans la pratique, on peut prendre s voisin du nombre 60; 2) Tirage du nombre aléatoire r dont la représentation binaire fait s bits; 3) Calcul de p'=p*r; 4) Exécuter l'opération de multiplication scalaire Q=d.P, les opérations étant effectuées modulo p'; 5) Effectuer l'opération de réduction modulo p des coordonnées du point Q. 7- Procédé de contre-mesure selon la revendication 6 caractérisé en ce qu'un nouvel entier est calculé à chaque nouvelle exécution
de l'algorithme de déchiffrement.
8- Procédé de contre-mesure selon la revendication 6 caractérisé en ce qu'un compteur est incrémenté à chaque nouvelle exécution de
l'algorithme de déchiffrement.
9- Procédé de contre-mesure selon la revendication 8 caractérisé en ce que le compteur est remis à zéro lorsqu'il a atteint une valeur T. - Procédé de contre-mesure selon la revendication 8 ou la revendication 9 caractérisé en ce que la valeur T est égale à seize. 11- Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques consistant à calculer à partir de la clé privée d et du nombre de points n de ladite courbe elliptique un nouvel entier de déchiffrement d' tel que le déchiffrement d'un message chiffré quelconque, au moyen d'un algorithme de déchiffrement, avec d' donne le même résultat qu'avec d, en réalisant l'opération Q=d*P, P étant un point de la courbe sur lequel est appliqué l'algorithme de multiplication scalaire en lui ajoutant un point aléatoire R par un entier d suivant l'équation Q=d*P, procédé caractérisé en ce qu'il comprend cinq étapes suivantes: 1) Tirage d'un point aléatoire R sur la courbe; 2) Calcul de P'=P+R; 3) Opération de multiplication scalaire Q'=d.P'; 4) Opération de multiplication scalaire S=d.R; ) Calcul de Q=Q'- S. 12- Procédé de contre-mesure dans un composant électronique selon la revendication 11 caractérisé en ce que ledit composant comprend un compteur incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement jusqu'à une valeur T. 13- Procédé de contre-mesure selon la revendication 12 caractérisé en ce que le compteur est remis à zéro une fois atteint la valeur T. 14- Procédé de contre-mesure selon la revendication 11 caractérisé en ce que la courbe elliptique possède en mémoire deux points tels que S=d*R, les étapes 1 et 4 étant alors remplacées par les étapes l'et
4':
1') Remplacer R par 2.R:
4') Remplacer S par 2.S.
- Procédé de contre-mesure selon la revendication 5 caractérisé en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'alqorithme de déchiffrement jusqu'à une valeur T. 16- Procédé de contre-mesure selon la revendication 15 caractérisé en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement jusqu'à une valeur T.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9903920A FR2791496B1 (fr) | 1999-03-26 | 1999-03-26 | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique |
AU36603/00A AU3660300A (en) | 1999-03-26 | 2000-03-22 | Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm |
PCT/FR2000/000723 WO2000059157A1 (fr) | 1999-03-26 | 2000-03-22 | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique |
US09/937,397 US7286666B1 (en) | 1999-03-26 | 2000-03-22 | Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm |
CN00805519XA CN1218531C (zh) | 1999-03-26 | 2000-03-22 | 实现椭圆曲线类型公共密钥加密算法的电子部件中的对策方法 |
JP2000608546A JP2002540484A (ja) | 1999-03-26 | 2000-03-22 | 楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品における対抗措置方法 |
MXPA01009402A MXPA01009402A (es) | 1999-03-26 | 2000-03-22 | Procedimiento de contramedida en un componente electronico que implementa un algoritmo de criptografia de clave publica de tipo curva eliptica. |
EP00915215A EP1166495A1 (fr) | 1999-03-26 | 2000-03-22 | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9903920A FR2791496B1 (fr) | 1999-03-26 | 1999-03-26 | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2791496A1 true FR2791496A1 (fr) | 2000-09-29 |
FR2791496B1 FR2791496B1 (fr) | 2001-10-19 |
Family
ID=9543774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9903920A Expired - Lifetime FR2791496B1 (fr) | 1999-03-26 | 1999-03-26 | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique |
Country Status (8)
Country | Link |
---|---|
US (1) | US7286666B1 (fr) |
EP (1) | EP1166495A1 (fr) |
JP (1) | JP2002540484A (fr) |
CN (1) | CN1218531C (fr) |
AU (1) | AU3660300A (fr) |
FR (1) | FR2791496B1 (fr) |
MX (1) | MXPA01009402A (fr) |
WO (1) | WO2000059157A1 (fr) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2821945A1 (fr) * | 2001-03-12 | 2002-09-13 | Gemplus Card Int | Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique |
FR2821944A1 (fr) * | 2001-03-12 | 2002-09-13 | Gemplus Card Int | Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique |
FR2824210A1 (fr) * | 2001-04-27 | 2002-10-31 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305453A (ja) * | 1999-04-21 | 2000-11-02 | Nec Corp | 暗号化装置,復号装置,および暗号化・復号装置 |
FR2809893B1 (fr) * | 2000-06-02 | 2002-11-15 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique |
CA2369537C (fr) * | 2001-12-31 | 2013-07-23 | Certicom Corp. | Methode et dispositif permettant d'effectuer des calculs dans le corps fini |
AU2003304629A1 (en) * | 2003-07-22 | 2005-02-04 | Fujitsu Limited | Tamper-resistant encryption using individual key |
KR100652377B1 (ko) * | 2004-08-06 | 2007-02-28 | 삼성전자주식회사 | 모듈라 지수승 알고리즘, 기록매체 및 시스템 |
US8396213B2 (en) * | 2005-01-21 | 2013-03-12 | Certicom Corp. | Elliptic curve random number generation |
FR2881300B1 (fr) * | 2005-01-21 | 2007-03-16 | Gemplus Sa | Procede de generation d'une courbe elliptique, application a un procede cryptographique, et procede cryptographique une telle courbe |
WO2007000702A2 (fr) | 2005-06-29 | 2007-01-04 | Koninklijke Philips Electronics N.V. | Dispositif et procede de protection de dispositif de traitement de donnees contre une attaque ou analyse |
JP4513752B2 (ja) * | 2006-01-16 | 2010-07-28 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
DE102006013515A1 (de) * | 2006-03-23 | 2007-10-04 | Siemens Ag | Kryptographisches Verfahren mit elliptischen Kurven |
FR2941115B1 (fr) * | 2009-01-14 | 2011-02-25 | Sagem Securite | Codage de points d'une courbe elliptique |
JP5407352B2 (ja) | 2009-01-19 | 2014-02-05 | 富士通株式会社 | 復号処理装置、復号処理プログラム、復号処理方法 |
EP2326041A1 (fr) | 2009-11-19 | 2011-05-25 | Gemalto SA | Contre-mesures contre les attaques en force pour la randomisation de l'exposant |
EP3220305B1 (fr) * | 2016-02-22 | 2018-10-31 | Eshard | Procédé de test de la résistance d'un circuit à une analyse de canal latéral de second ordre ou plus |
US10674045B2 (en) * | 2017-05-31 | 2020-06-02 | Google Llc | Mutual noise estimation for videos |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6064740A (en) * | 1997-11-12 | 2000-05-16 | Curiger; Andreas | Method and apparatus for masking modulo exponentiation calculations in an integrated circuit |
US6466668B1 (en) * | 1998-01-28 | 2002-10-15 | Hitachi, Ltd. | IC card equipped with elliptical curve encryption processing facility |
FR2809893B1 (fr) * | 2000-06-02 | 2002-11-15 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique |
-
1999
- 1999-03-26 FR FR9903920A patent/FR2791496B1/fr not_active Expired - Lifetime
-
2000
- 2000-03-22 WO PCT/FR2000/000723 patent/WO2000059157A1/fr not_active Application Discontinuation
- 2000-03-22 MX MXPA01009402A patent/MXPA01009402A/es unknown
- 2000-03-22 AU AU36603/00A patent/AU3660300A/en not_active Abandoned
- 2000-03-22 EP EP00915215A patent/EP1166495A1/fr not_active Withdrawn
- 2000-03-22 CN CN00805519XA patent/CN1218531C/zh not_active Expired - Lifetime
- 2000-03-22 US US09/937,397 patent/US7286666B1/en not_active Expired - Lifetime
- 2000-03-22 JP JP2000608546A patent/JP2002540484A/ja active Pending
Non-Patent Citations (4)
Title |
---|
KOBLITZ N: "Elliptic curve cryptosystems", MATHEMATICS OF COMPUTATION, JAN. 1987, USA, vol. 48, no. 177, pages 203 - 209, XP000671098, ISSN: 0025-5718 * |
KOCHER P C: "Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems", ADVANCES IN CRYPTOLOGY - CRYPTO'96. 16TH ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE. PROCEEDINGS, ADVANCES IN CRYPTOLOGY - CRYPTO '96, SANTA BARBARA, CA, USA, 18-22 AUG. 1996, 1996, Berlin, Germany, Springer-Verlag, Germany, pages 104 - 113, XP000626590, ISBN: 3-540-61512-1 * |
MENKUS B: "Two important data encryption structures reported broken in record times", EDPACS, JAN. 1999, AUERBACH PUBLICATIONS, USA, vol. 26, no. 7, pages 15 - 18, XP000884687, ISSN: 0736-6981 * |
PAUL KOCHER ET AL.: "Introduction to Differential Power Analysis and Related Attacks", RETRIEVED FROM INTERNET: <URL: HTTP://WWW.CRYPTOGRAPHY.COM/DPA/TECHNICAL/INDEX.HTML> ON 24 FEBRUARY 2000; AVAILABLE ON INTERNET SINCE 1998, San Francisco, CA, USA, pages 1 - 8, XP002132318 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2821945A1 (fr) * | 2001-03-12 | 2002-09-13 | Gemplus Card Int | Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique |
FR2821944A1 (fr) * | 2001-03-12 | 2002-09-13 | Gemplus Card Int | Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique |
FR2824210A1 (fr) * | 2001-04-27 | 2002-10-31 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique |
WO2002088933A1 (fr) * | 2001-04-27 | 2002-11-07 | Gemplus | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique |
Also Published As
Publication number | Publication date |
---|---|
WO2000059157A1 (fr) | 2000-10-05 |
CN1345496A (zh) | 2002-04-17 |
CN1218531C (zh) | 2005-09-07 |
AU3660300A (en) | 2000-10-16 |
JP2002540484A (ja) | 2002-11-26 |
FR2791496B1 (fr) | 2001-10-19 |
MXPA01009402A (es) | 2002-06-04 |
EP1166495A1 (fr) | 2002-01-02 |
US7286666B1 (en) | 2007-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1166494B1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique | |
EP2946284B1 (fr) | Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation | |
FR2809893A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique | |
FR2791496A1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique | |
EP2546737A1 (fr) | Protection d'un calcul d'exponentiation modulaire par addition d'une quantité aléatoire | |
FR2977952A1 (fr) | Protection d'un calcul d'exponentiation modulaire par multiplication par une quantite aleatoire | |
EP1224765B1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa | |
EP1350357B1 (fr) | Procede d'amelioration de la securite de schemas de chiffrement a clef publique | |
EP3300292A1 (fr) | Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés | |
EP2983083B1 (fr) | Procede de cryptographie sur courbe elliptique comprenant une detection d'erreur | |
FR2810821A1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz | |
FR2814619A1 (fr) | Procede d'encodage de messages longs schemas de signature electronique a base de rsa | |
FR2856537A1 (fr) | Procede de contre-mesure par masquage de l'accumulateur dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique | |
FR2856538A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique | |
EP1325585A1 (fr) | Procede de transmission accelere de signature electronique | |
FR2818846A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie | |
EP1222528B1 (fr) | Procede d'amelioration de performance de l'operation de multiplication sur un corps fini de caracteristique 2 | |
FR2818473A1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa | |
FR3010562A1 (fr) | Procede de traitement de donnees et dispositif associe | |
WO2003021864A2 (fr) | Procede de reduction de la taille d'une signature rsa ou rabin | |
FR3013476A1 (fr) | Securisation de procede de cryptographie sur courbes elliptiques | |
FR2854997A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique definie sur un corps de caracteristique deux | |
FR2824653A1 (fr) | Dispositif destine a realiser des calculs d'exponentiation appliques a des points d'une courbe elliptique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CD | Change of name or company name | ||
TP | Transmission of property | ||
PLFP | Fee payment |
Year of fee payment: 18 |
|
PLFP | Fee payment |
Year of fee payment: 19 |
|
PLFP | Fee payment |
Year of fee payment: 20 |