FR2819320A1 - Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif - Google Patents

Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif Download PDF

Info

Publication number
FR2819320A1
FR2819320A1 FR0100296A FR0100296A FR2819320A1 FR 2819320 A1 FR2819320 A1 FR 2819320A1 FR 0100296 A FR0100296 A FR 0100296A FR 0100296 A FR0100296 A FR 0100296A FR 2819320 A1 FR2819320 A1 FR 2819320A1
Authority
FR
France
Prior art keywords
algorithm
exponent
exponentiation
type
execute
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
Application number
FR0100296A
Other languages
English (en)
Other versions
FR2819320B1 (fr
Inventor
Christophe Clavier
Marc Joye
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to FR0100296A priority Critical patent/FR2819320B1/fr
Priority to PCT/FR2001/004182 priority patent/WO2002056171A1/fr
Priority to EP01995782A priority patent/EP1350161A1/fr
Publication of FR2819320A1 publication Critical patent/FR2819320A1/fr
Application granted granted Critical
Publication of FR2819320B1 publication Critical patent/FR2819320B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • 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/556Indexing scheme relating to group G06F7/556
    • G06F2207/5561Exponentiation by multiplication, i.e. calculating Y**INT(X) by multiplying Y with itself or a power of itself, INT(X) being the integer part of X

Landscapes

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

Abstract

L'invention concerne un dispositif de calcul d'exponentiation, ainsi qu'un procédé de programmation et d'utilisation de ce dernier, avec application notamment dans le domaine de la cryptologie où l'on utilise des algorithmes cryptographiques dans des dispositifs électroniques tels que des cartes à puce.Elle met en oeuvre des moyens de calcul (2) configurés pour réaliser les calculs d'exponentiation à partir d'une chaîne d'addition-soustraction C (e) élaborée pour l'exposant e, cette chaîne d'addition-soustraction étant stockée dans une portion de mémoire (6) inscriptible après sa fabrication.De cette manière, on peut effectivement établir l'algorithme à partir des composantes de la chaîne d'addition-soustraction, par programmation après fabrication, sans modifier la partie de calcul d'exponentiation qui peut être figée dans une mémoire masque. On diminue ainsi les risques d'avoir à procéder un remasquage.

Description

<Desc/Clms Page number 1>
DISPOSITIF DESTINE A REALISER DES CALCULS D'EXPONENTIATION, ET PROCEDE DE PROGRAMMATION ET
Figure img00010001

D'UTILISATION DU DISPOSITIF
La présente invention concerne un dispositif de calcul d'exponentiation, ainsi qu'un procédé de programmation et d'utilisation de ce dernier, avec application notamment dans le domaine de la cryptologie où l'on met en oeuvre des algorithmes cryptographiques dans des dispositifs électroniques tels que des cartes à puce.
De nombreux algorithmes cryptographiques sont basés sur des calculs d'exponentiation du type R = xe, où x et e sont des nombres prédéterminés qui codent une valeur R. Ceci est notamment le cas avec l'algorithme du type RSA (Rivert, Shamir et Adleman). La valeur R peut correspondre par exemple à un texte chiffré, un code confidentiel, une clé publique ou privée de cryptage ou de décryptage, etc.
Un dispositif électronique prévu pour exécuter un tel algorithme doit contenir en mémoire d'une part la partie exécutoire pour élever x à la puissance de e, et d'autre part les valeurs x et e.
Dans l'art antérieur, lorsque l'on doit effectuer une telle exponentiation, on utilise différents types d'algorithmes possibles : la méthode dite d'élever au carré et multiplier, connu sous le terme anglo-saxon de "square and multiply" (SAM), la méthode M, M3, des fenêtres glissantes, etc. Chaque fois qu'une telle méthode est mise en oeuvre, elle est intégralement codée en dur. Cela veut dire qu'elle est codée suivant une technique de masquage en mémoire non réinscriptible du type ROM ("read-only memory"en anglais), et ensuite exécutée. On rappelle qu'une ROM
<Desc/Clms Page number 2>
masque est une mémoire dont les données enregistrées sont physiquement inscrites lors de la réalisation matérielle du microcircuit, au niveau de la conception des masques utilisés pour la fabrication.
Ces algorithmes sont complexes et leurs programmes d'exécution ne sont pas toujours totalement vérifiables avant une série de tests réalisés directement à partir de la ROM masque en fin de fabrication. S'il s'avère que le programme est erroné pour une raison ou une autre, les corrections nécessaires entraînent une révision complète de l'ensemble des masques utilisés pour la fabrication de la ROM. Ce"remasquage"implique des surcoûts considérables tant en ressources industrielles qu'en temps de développement d'une nouvelle mémoire.
Au vu de ce problème, un objet de l'invention est de permettre de décomposer un algorithme, notamment pour la cryptographie, en une partie constante, relativement simple à programmer, et une partie variable en fonction de la valeur codée et d'un paramétrage de l'algorithme. Cette disposition permet de stocker la partie constante dans une ROM masque pour bénéficier de l'avantage de cette technologie, et la partie variable dans une mémoire ré-inscriptible, ou tout simplement programmable après sa fabrication. On réduit donc considérablement les risques d'erreurs au niveau de la partie ROM masque. En cas d'erreur dans le paramétrage de l'algorithme, ou en cas de changement de la clé, il suffit seulement de reprogrammer la mémoire ré-inscriptible. Cette opération n'intervient que sur le plan fonctionnel, s'agissant par exemple seulement de modifier un programme devant être chargé dans la mémoire.
Plus particulièrement, l'invention concerne, selon un premier aspect, un dispositif destiné à
<Desc/Clms Page number 3>
Figure img00030001

réaliser des calculs d'exponentiation du type R = xe où x et e sont des nombres prédéterminés, comprenant des moyens de calcul et des moyens de mémorisation, caractérisé en ce que les moyens de calcul sont configurés pour réaliser les calculs d'exponentiation à partir d'une chaîne d'addition-soustraction C (e) élaborée pour l'exposant e, et en ce que la chaîne d'addition-soustraction C (e) est stockée dans une portion de mémoire inscriptible après sa fabrication, par exemple une mémoire du type électriquement programmable (EPROM) ou du type électriquement programmable et effaçable (EEPROM).
Les moyens de calcul peuvent être configurés pour exécuter ledit calcul d'exponentiation, à partir de ladite chaîne d'addition-soustraction C (e), suivant un algorithme d'exponentiation stocké dans une portion de mémoire du type mémoire figée codée par masquage (ROM masque).
Les moyens de calcul peuvent être configurés pour exécuter un algorithme d'exponentiation du type universel à partir de la chaîne d'addition-soustraction présentée sous la forme C (e) = {e, e (l),..., e (r)}, avec la condition e = = e (j pour tout 1 i sr, dans laquelle à l'étape i, on évalue une multiplication x exposant e (i) = x exposant e(j(i)), x exposant (k(i)), le dispositif comprenant des premier et deuxième registres Ra (i) et Rss (i) respectivement pour le stockage des valeurs de x exposant e et de x exposant e, et un troisième registre Rj.) pour le stockage du résultat de ladite multiplication.
Dans ce cas, l'exposant e peut-être représenté par la séquence de registres suivante :
Figure img00030002

r (e) = { (y (i) : a (i), ss (i))} i. < = , signifiant que Ry (i) = Ra (i). Rss (i), les moyens de calcul
<Desc/Clms Page number 4>
Figure img00040001

étant configurés pour exécuter l'algorithme d'exponentiation (pour e > l) :
Figure img00040002

Initialiser Ra (i) < -x ; Ra (i) -x
Figure img00040003

pour i = 1 à r, exécuter Ry (i) F R (i). Rss (i) émettre en sortie R = RY (r)-
Les moyens de calcul peuvent aussi être configurés pour exécuter un algorithme d'exponentiation du type universel à partir d'une chaîne d'additionsoustraction du type étoile (en anglais"star chains"), présentée sous la forme C (e) = {e(0),e(1),...,e(r)} avec la condition e (i) = e ') + e (k (i)), pour tout 1 < i r, le dispositif comprenant un premier registre Rss (i) et un second registre Ry (i) pour représenter e, avec la condition a (i) = y (i-l) pour tout 1 i r.
Dans ce cas, les moyens de calcul peuvent être configurés pour réaliser une séquence de registres
Figure img00040004

donnée par : dz (e) = { (y (i) : B (i))} 1 : ; s rf et pour exécuter l'algorithme d'exponentiation :
Figure img00040005

Initialiser Ry (o) < -x ; Ra (i) -x
Figure img00040006

pour i = 1 à r, exécuter
Figure img00040007

Ry (i) F (i-l). Rss (i)
Figure img00040008

émettre en sortie R = R, (r).
Ainsi, les moyens de calcul peuvent par exemple être utilisés pour effectuer un algorithme selon une méthode binaire avec la représentation binaire de e donnée par e = (et-i,..., eO) 2 et en réalisant un balayage de l'exposant e de la droite vers la gauche pour obtenir l'expression
Figure img00040009

xe = (xr (x''r (x... (x'"')'-'.
Dans un mode de réalisation, le dispositif utilise pour cet algorithme un premier registre (Rl) destiné à contenir les valeurs successives de x et un registre courant (RO), les moyens de calcul étant
<Desc/Clms Page number 5>
actifs pour exécuter un algorithme d'exponentiation"de droite à gauche" :
Figure img00050001

RO < -1 ; Rl < -x
Figure img00050002

pour i = 0 à (t-1), exécuter si (ei = 1), alors RO < -RO. R1 Rl v R12 émettre en sortie R = RO.
Les moyens de calcul peuvent aussi effectuer un algorithme selon une méthode binaire avec la représentation binaire de e donnée par e = (et-i,..., eO) 2 et en réalisant un balayage de l'exposant e de la
Figure img00050003

gauche vers la droite pour obtenir l'expression xe = (... ( (x'-')'x) 2.. xe') 2x.
Dans un mode de réalisation, le dispositif utilise pour cet algorithme un premier registre (R1) et un registre courant (RO), les moyens de calcul étant
Figure img00050004

actifs pour exécuter un algorithme d'exponentiation"de gauche à droite" :
Figure img00050005

RO < -1 ; RI < -x
Figure img00050006

pour i = (t-1) en descendant à 0, exécuter
Figure img00050007

RO ± RO2
Figure img00050008

si (ei = 1) alors RO < -RO. R1 émettre en sortie R = RO.
Un autre exemple d'utilisation des moyens de calcul consiste à effectuer un algorithme selon une méthode 2k-aire, où on traite un nombre k de bits à chaque itération.
Dans un mode de réalisation, les moyens de calcul sont alors prévus pour réaliser le précalcul des
Figure img00050009

valeurs de x2-pour tout 1 j (2-1), le dispositif comprenant un premier, deuxième et troisième registres (RI, R2 et R3), les moyens de calcul étant actifs pour exécuter un algorithme d'exponentiation selon une méthode quaternaire, avec k = 2 :
Précalculer x3
<Desc/Clms Page number 6>
Figure img00060001

RO < -1, RI < < -x ; R2 < -x3 ;
Figure img00060002

pour i = 2[log4 e] en descendant à 0 par sauts de - 2, exécuter cas (ei+,, ei) de
Figure img00060003

(0, 0) : RO < -RO ; RO < -R02 (0, 1) : RO ± R02 ; RO < -RO2 ; RO < -RO. R1 (j 0). Ro < ~ R02 2 (1, 0) : RO f-RO2 RO < -RO. R1 ; RO < -RO (1, 1) : RO ±RO2 ; RO ±RO2 ; RO ±RO. R2
Figure img00060004

Emettre en sortie R = RO. Avantageusement, le dispositif est mis en oeuvre dans un système cryptographique basé sur un algorithme cryptographique faisant intervenir au moins une exponentiation du type R = xe, s'agissant par exemple d'un algorithme du type Rivert, Shamir, Adleman (RSA).
Selon le mode de mise en oeuvre choisi, la chaîne d'addition-soustraction peut être simplement une chaîne
Figure img00060005

d'additions présentée sous la forme : C (e) {e' ', e'",..., e'"}, avec la condition e'"= e"""+ e (k (l)), pour tout 1 i < r.
Selon un deuxième aspect, l'invention concerne une carte à puce, caractérisée en ce qu'elle intègre un dispositif du type précité.
Selon un troisième aspect, l'invention concerne l'utilisation d'un dispositif du type précité pour réaliser un calcul d'exponentiation, notamment dans l'éxécution d'un algorithme cryptographique.
Selon un quatrième aspect, l'invention concerne un dispositif de calcul d'exponentiation du type R = xe où x et e sont des nombres prédéterminés, utilisant des moyens de calcul et des moyens de mémorisation destinés à stocker un algorithme d'exponentiation, caractérisé en ce qu'il comprend les étapes de : - sélectionner une valeur d'exposant e ; - exprimer la valeur de l'exposant e par une chaîne d'addition-soustraction C (e) choisie ;
<Desc/Clms Page number 7>
- inscrire ladite chaîne d'addition-soustraction dans une portion de moyens de mémorisation qui est inscriptible après sa fabrication.
Les caractéristiques optionnelles présentées dans le cadre du dispositif précité s'appliquent mutatis mutandis à ce procédé.
Selon un cinquième aspect, l'invention concerne l'utilisation du procédé précité pour la mise en oeuvre dans un système de cryptographie basé sur un algorithme de cryptographie faisant intervenir au moins une exponentiation du type R = xe.
L'invention et les avantages qui en découlent apparaîtront plus clairement à la lecture de la description qui suit d'un mode de réalisation préféré, donné purement à titre d'exemple non-limitatif, par référence à la figure unique en annexe. Celle-ci est un organigramme des éléments principaux d'un dispositif électronique, par exemple une carte à puce, permettant de mettre en oeuvre l'invention.
Avant d'aborder la mise en oeuvre matérielle de l'invention, il sera décrit les caractéristiques des calculs d'exponentiation au moyen de chaînes d'addition-soustraction utilisées dans ce cadre par les algorithmes cryptographiques. L'exponentiation est du type R = xe, où x est un nombre prédéterminé et e est un entier qui correspond, par exemple, à une clé privée.
Une chaîne d'addition-soustraction permet d'arriver au résultat R de l'exponentiation par des successions de multiplications entre des paires de nombres préalablement calculés ou induits, ces nombres étant eux-mêmes égaux à x élevé à une puissance inférieure à e. Plus particulièrement, on exploite le fait que pour deux nombres a et b choisis pour que a + b = e, la valeur de xe peut s'exprimer comme xa. xb.
<Desc/Clms Page number 8>
L'objet de la chaîne d'additions est de produire une suite de nombres, à partir de 1, destinés à servir d'indices de puissance de sorte que le calcul d'élévation de x à ces indices soit réalisable en multipliant des résultats de calculs précédents.
Un cas particulier des chaînes d'additionsoustraction est la chaîne d'additions. Celle-ci est une suite qui a la propriété que chacun de ses éléments est la somme de deux éléments précédents. Le premier élément de la suite vaut 1, et le dernier élément est égal à l'exposant e.
Pour calculer la valeur xe, on peut donc établir une chaîne d'additions pour l'exposant e (quelque chose qui passe de 1 à e). Or, puisque chaque élément i (hormis le premier) de cette chaîne est égal à deux éléments précédents, on a toujours xe (i) = xe(j(i)).xe(k(i)), en posant la condition que e (i) = e (j (i) ) + e (k (i)).
Dans un langage plus formel, une chaîne d'additions pour un nombre e est définie comme la séquence C (e) = {e, e,..., e}, qui satisfait les conditions :
Figure img00080001

(Cl) e (o) = 1, e (r) = e, et (C2) pour tout 1 < i r, il existe j (i), k (i) < i de sorte que e (i) = e + e .
On peut ainsi aisément obtenir R = xe en calculant pour i = 1 à r : x puissance e = x puissance e(j(i)). x puissance e (k (, et en fixant R = x puissance e (r).
Par exemple, pour e = 5, on peut élaborer la chaîne d'additions C (5) = {1, 2,3, 5}. Cette chaîne commence par 1 et se termine par 5, et chaque élément de la suite est égal à la somme de deux éléments précédents. Par exemple, le nombre 2 est formé par 1+1, 3 est formé par 2+1,5 est formé par 3+2. Pour
<Desc/Clms Page number 9>
Figure img00090001

calculer x exposant 5, on calcule d'abord xl, ensuite 2 1 1 x2 en prenant x. xl, l'indice 2 étant formé par la somme 1+1. On calcule ensuite x3 en prenant la somme 2 1 des indices 1 et 2, donnant x2. x, et enfin on calcule x5 en prenant la somme des indices 3 et 2, donnant 3 2 x3. x2.
Le calcul d'exponentiation est alors réalisé 1 2 1 1 3 2 1 avec : x = x, x2 = xl. x\ x3 = x2. x\ et enfin in = 3 2 x3. x2.
Une fois que l'on dispose d'une chaîne d'addition, l'algorithme pour calculer x exposant e est rendu plus facile. Il suffit de parcourir la chaîne en multipliant simplement.
Une forme plus générale de la chaîne est la chaîne dite d'addition-soustraction, où chaque élément e (i) de la suite est égal à plus ou moins un élément précédent e (j), plus ou moins un autre élément e (k). On peut donc prendre en compte soit un élément, soit son opposé.
Il existe une variante, dénommée chaîne étoile, qui est une chaîne d'additions telle que chaque élément e est égal à l'élément immédiatement précédent e (i-l) plus un autre élément précédent e (k). Le cas ci-dessus pour c (5) est donc un exemple de chaîne étoile.
L'exponentiation avec une telle chaîne permet de mettre en oeuvre un algorithme dit d'élever au carré et multiplier, dénommé ci-après SAM (de l'anglais"square- and-multiply").
De ce qui précède, on constate que chaque algorithme a une chaîne d'additions correspondante.
Autrement dit, la chaîne d'additions, de par le choix des valeurs intermédiaires qui la constituent, donne un algorithme. Ainsi, d'autres algorithmes issus de chaînes d'additions différentes peuvent être utilisés pour parvenir à un même résultat de calcul. Par
<Desc/Clms Page number 10>
Figure img00100001

5 exemple, dans le cas précédent de x5, on peut aussi prendre les valeurs 1, 2, 4 et 5. Cela donne lieu à une autre chaîne d'additions, et donc à un autre algorithme. Plus l'exposant est grand, plus les possibilités d'envisager d'autres algorithmes sont importantes.
Avantageusement, on utilise la notation multiplicative. En notation additive, l'exponentiation devient une multiplication. Cette notion est particulièrement avantageuse pour la cryptographie basée sur les courbes elliptiques lorsqu'on sait que les points d'un groupe elliptique forment un groupe additif, c'est-à-dire abélien.
La figure 1 représente sous forme de schéma bloc un dispositif 1 programmé conformément à l'invention, en l'occurrence une carte à puce destinée à exécuter un programme cryptographique. Le dispositif met en oeuvre une chaîne d'additions C (e) stockée dans une portion de mémoire ré-inscriptible, et l'algorithme de multiplication est stocké dans une mémoire ROM masque. Ce dernier peut être basé sur un algorithme RSA (Rivert, Shamir et Adleman) qui implique un calcul d'exponentiation du type R = xe, où x est une valeur prédéterminée et e est un nombre entier qui constitue une clé. Le nombre R ainsi obtenu constitue une donnée chiffrée, déchiffrée, signée ou vérifiée.
A cette fin, le dispositif 1 réunit dans une puce des moyens programmés pour l'exécution de calculs (moyens de calcul), composé d'une unité centrale (UC) 2 reliée fonctionnellement à un ensemble de mémoires dont : - une mémoire accessible en lecture seulement, du type ROM masque 4, aussi connue sous l'appellation anglaise"mask read-only memory (mask ROM)",
<Desc/Clms Page number 11>
- une mémoire reprogrammable électriquement, du type EEPROM 6 (de l'anglais"electrically erasable programmable ROM"), et - une mémoire accessible en lecture et en écriture du type RAM 8 (de l'anglais"random access memory").
L'ensemble de ces mémoires 4,6 et 8, ainsi que l'unité centrale 2, peuvent être réalisés sur une seule puce.
L'unité centrale 2 est également reliée à une interface de communication 10 qui assure l'échange de signaux vis-à-vis de l'extérieur et l'alimentation de la puce. Cette interface peut être sous forme de plots sur la carte pour une connexion dite"à contact"avec un lecteur, et/ou d'une antenne dans le cas d'une carte dite"sans contact".
L'une des fonctions des moyens de calcul 1 est de crypter et de décrypter des données confidentielles respectivement transmises vers, et reçues de, l'extérieur. Ces données peuvent concerner par exemple des codes personnels, des informations médicales, une comptabilité sur des transactions bancaires ou commerciales, des autorisations d'accès à certains services restreints, etc. Une autre fonction consiste au calcul d'une signature numérique ou de sa vérification.
A cette fin, l'unité centrale 2 exécute l'algorithme cryptographique à partir de données de programmation qui, conformément à l'invention, sont stockées dans les parties ROM masque 4 et EEPROM 6.
Dans la mémoire EEPROM 6 est inscrite la chaîne d'additions C (e), qui servira dans sa fonction générale à extraire les multiplicandes successifs à l'algorithme de multiplication contenu dans la ROM masque 4 et, dans sa fonction de codage, à coder l'algorithme
<Desc/Clms Page number 12>
d'exponentiation par les choix spécifiques des valeurs intermédiaires e pour cette chaîne.
Selon cette approche, une fois que l'on dispose d'une chaîne d'additions en dehors de la ROM masque 4, il est seulement nécessaire de coder dans cette dernière un algorithme universel d'exponentiation, qui est basé sur de simples règles de multiplication, et la valeur de x. De la sorte, la programmation de la partie ROM masque 4 est aisée et comporte peu de risques d'erreur.
Un tel algorithme de multiplication se définit comme suit. soit une chaîne d'additions
Figure img00120001

C (e) {e, e,..., e} qui est fournie à partir de la portion EEPROM 6 pour un exposant e. Ainsi, pour tout 1 : 9 i : gr, ona e (ì) = e e < . A l'étape i, on évalue x exposant e = x exposant e. x exposant < < ). on suppose que x exposant e et x exposant e (i)) appartiennent respectivement à des premier et deuxième registres Ra (i) et Rss (i), et que le résultat est inscrit dans un troisième registre Ry (i). Ces registres peuvent être contenus dans la partie RAM 8.
Il sera maintenant décrit un exemple de codage de la représentation en chaîne d'additions. La chaîne
Figure img00120002

doit permettre d'exprimer non seulement les valeurs de calcul, mais aussi comment on y aboutit, c'est-à-dire le chemin qui permet d'arriver à ces valeurs.
De manière remarquable, lorsque l'on réalise des multiplications, on déclare simplement qu'un registre contient le produit des deux autres. Par exemple, à l'étape de calcul du iième élément de la chaîne
Figure img00120003

d'additions, le registre Rr (i) sera déclaré comme étant égal au contenu du registre Ra (i) fois le contenu du registre Rss (i). L'avantage est que si on dispose, par
<Desc/Clms Page number 13>
exemple, de quatre registres, seulement deux bits sont nécessaires pour coder chacun des registres.
L'algorithme va alors transmettre les valeurs aux registres R&gamma;(i), R&alpha;(i) et Rss(i).
L'exposant e peut donc être représenté par la séquence de registre suivante :
Figure img00130001

r (e) = { (y (i) : a (i), B (i))} i < i < r, ce qui veut dire que y (i) = Rc ( (i)-RB (i)' Par convention, la valeur e=l est représentée par F (l) = {}.
De ce qui précède, on obtient l'algorithme d'exponentiation suivant (pour e > l) :
Figure img00130002

Initialiser Ra (l) f-x ; Rss (i) x
Figure img00130003

pour i = 1 à r, exécuter
Figure img00130004

Ry (i) Rot (i). RB (i)
Figure img00130005

émettre en sortie R = Ry (r)' Cet algorithme est désigné algorithme universel d'exponentiation.
On note que Ra (i) et Rss (l) sont initialisés avec la valeur x, car le deuxième terme de chaque chaîne d'additions est toujours e = 2. On note également que l'on peut avoir a (1) = ss (l), et plus généralement a (i) = ss (i).
Si on veut économiser de l'espace mémoire, on peut utiliser des chaînes étoiles, car dans ces dernières il est préétabli par convention que le contenu du registre Ra (i) est égal au contenu au stade précédent du registre Ry (i-l). L'exploitation de cette identité des contenus autorise un gain d'espace d'environ 1/3.
Pour des chaînes étoiles, on a donc la condition e(i) = e(i-1) + e(k(i)). Dans ce cas, il suffit de prévoir des paires de registres pour représenter e, en posant la condition a (i) = y (i-1) pour tout 1 < i < r.
La séquence de registres est donc donnée par : r* (e) = {(&gamma; (i) : ss (i))} i < i. .
<Desc/Clms Page number 14>
Figure img00140001

L'algorithme d'exponentiation correspondant est :
Figure img00140002

Initialiser Ry/o) x ; R (i) < -x
Figure img00140003

pour i = 1 à r, exécuter
Figure img00140004

Ry (i) R7 (i-l). R3 (i)
Figure img00140005

émettre en sortie R = Ry(r)Les principes de l'invention peuvent s'appliquer à tous types d'algorithmes d'exponentiation, notamment les méthodes"binaires"et du type 2k-aire.
Selon la méthode binaire, on effectue un balayage de l'exposant de la droite vers la gauche. Soit e = (etc,..., 0) 2 la représentation binaire de e.
Figure img00140006
On peut donc écrire : x = X.) O (X-) I (X-) 2. (x 1-1.
Un registre de la mémoire RAM 8 (que l'on désignera RI) contient les valeurs successives de 22 x, et lorsque ei = 1, la valeur du contenu de ce registre est multipliée dans le registre courant (que l'on désignera Rad), également dans la mémoire RAM 8.
L'algorithme d'exponentiation"de droite à gauche"s'exprime alors comme suit :
Figure img00140007

RO < -1 ; RI < -x
Figure img00140008

pour i = 0 à (t-1), exécuter si (ei = 1), alors RO < -RO. R1
Figure img00140009

Rl F R12
Figure img00140010

émettre en sortie R = RO.
A titre d'exemple, supposons que e = 87 = (1, 0, 1, 0, 1, 1, 1) 2. Une chaîne d'additions qui correspond à l'algorithme"de droite à gauche" est Cdg2 (87) = {1, 2,3, 4,7, 8,16, 23,32, 64, 87}. En utilisant la représentation
Figure img00140011

r (e) = { (y (i) : a (i), B (i))} i. < , on a rdg2 (87) = { (O : 0, 1), (1 : 1, 1), (0 : 0, 1), (1 : 1, 1), (0 : 0, 1), (1 : 1, 1), (1 : 1, 1), (0 : 0, 1), (1 : 1, 1), (0 : 0, 1)}, où RO et RI où RO et Rl sont tous les deux initialisés à x.
Une autre façon de calculer R = xe consiste à balayer les bits de e de gauche à droite.
<Desc/Clms Page number 15>
Figure img00150001

L'algorithme qui en résulte est la méthode SAM (élever au carré et multiplier). Cet algorithme découle de l'expression : X = (... ( (X) 'X2) 2... XX.
L'algorithme d'exponentiation SAM s'exprime alors comme suit :
Figure img00150002

RO < -1 ; RI < -x
Figure img00150003

pour i = (t-1) en descendant à 0, exécuter RO < -RO2
Figure img00150004

i si (e = 1) alors RO < -RO. R1
Figure img00150005

émettre en sortie R = Ru.
Toujours avec le même exemple, une chaîne d'additions correspondante pour e = 87 est donnée par Cgd2 (87) = {1, 2, 4, 5, 10, 20, 21, 42, 43, 86, 87}. Du fait que les algorithmes SAM produisent des chaînes d'additions de type étoile, on peut utiliser la représentation étoile r* (e) = { (y (i) : ss (i))} 1 l 1 : 5 i : g ri et ainsi obtenir r*gd2 (87) = { (0 : 0), (0 : 0), (0 : l), (0 : 0), (0 : 0), (0 : l), (0 : 0), (0 : 1), (0 : 0), (0 : 1)}, où RO et R1 sont tous les deux initialisés à x.
Selon la méthode 2k-aire, on traite un nombre k de bits à chaque itération. Il est à noter que dans ce cas, l'algorithme"de gauche à droite"a un meilleur rendement, car c'est seulement dans ce sens que l'on peut utiliser des valeurs précalculées.
Pour tout 1 j (2k-l - 1), on précalcule les valeurs de x2j+l et on les mémorise dans des registres. Il n'est pas nécessaire de précalculer les puissances paires, puisqu'elles peuvent être incorporées dans les opérations d'élever au carré.
L'algorithme pour k = 2 selon la méthode quaternaire est la suivante : Précalculer x3
Figure img00150006

RO < -1, RI < -x ; R2 < -x3 ;
<Desc/Clms Page number 16>
Figure img00160001

pour i = 2 [log4 e] en descendant à 0 par sauts de - 2, exécuter cas (ei+,, ei) de
Figure img00160002

(0, 0) : RO < -RO2 ; RO < -RO2 (0, 1) : RO < -RO2 ; RO < -RO2 ; RO < -RO. R1 (1, 0) : RO < -RO2 ; RO < -RO. R1 ; RO < -RO2 (1, 1) : RO < -RO2 ; RO < -RO2 ; RO < -RO. R2
Figure img00160003

Emettre en sortie R = RO Cet algorithme nécessite (11/8) log2 (e) = 1, 3751zog2 (e) multiplications en moyenne, comparé à 1, 51sog2 (e) multiplications en moyenne pour l'algorithme SAM d'élever au carré et multiplier. Il est cependant possible de diminuer la complexité à (4/3) log2 (e) = 1, 3331log2 (e) multiplications en moyenne. La méthode est due à Yacobi et est désignée l'algorithme (M, M3).
Pour e = 87, la méthode d'exponentiation
Figure img00160004

quaternaire donne Cgd4 (87) = {1, 2, 4, 5, 10, 20, 21, 42, 84, 87}, et donc r gd4 (87) = { (0 : 0), (0 : 0), (0 : 1), (0 : 0), (0 : 0), (0 : 1), (0 : 0), (0 : 0), (0 : 2)} ; où RO et Rl sont 3 initialisés à x, et R2 est initialisé à x3.
On comprendra de l'ensemble de la description du mode de réalisation, que ce qui est codé dans la portion ROM masque 4 est un algorithme qui parcourt une chaîne (ou suite) contenue par exemple dans la portion EEPROM 6 qui multiplie simplement les éléments donnés par celle-ci. Ce type d'algorithme est très facile à programmer en ROM masque 4. Ce qui est mis en EEPROM 6 est non pas la clé (c'est-à-dire l'exposant), ce qui est fait habituellement, mais une représentation de cette clé par une chaîne d'additions spécifique. En cas d'erreur dans l'élaboration ou dans la programmation de la chaîne, ou encore de modification de la clé, il suffit de programmer les nouvelles données qui conviennent dans la portion EEPROM 6
<Desc/Clms Page number 17>
seulement. En effet, une erreur d'algorithme inscrit dans la mémoire EEPROM équivaudrait à une erreur dans l'écriture d'une chaîne d'additions. Le programme de multiplication stocké dans la portion ROM masque 4 reste inchangé.
Ce codage dans la chaîne d'additions en mémoire ré-inscriptible est donc avantageux par rapport à la technique habituelle de mettre l'intégralité de l'algorithme (par exemple du type SAM) en ROM masque, ce qui oblige de procéder à un remasquage en cas d'erreur. Par ailleurs, l'algorithme SAM utilisé classiquement dans ces conditions est relativement difficile à mettre en oeuvre, notamment en raison des contremesures à installer, ce qui augmente le risque d'erreur.
Dans le mode de réalisation préféré, au lieu de coder la clé sous sa forme binaire, on garde en mémoire sa représentation sous forme de triplets. On parcourt la chaîne et on multiplie le premier registre au second, et on met le résultat dans le troisième. Ceci est sensiblement tout ce qu'il y a d'exécutoire de programmé dans le dispositif, par exemple la carte à puce, pour réaliser de l'exponentiation. Avec cette approche, il est possible de mettre en oeuvre n'importe quel algorithme : il suffit de changer la chaîne d'additions de manière correspondante. Donc, le remasquage de la partie ROM masque 4 n'est pas nécessaire dans de tels cas.
Par ailleurs, le temps d'exécution est beaucoup plus rapide car la chaîne d'additions peut être traitée par des algorithmes efficaces, permettant de descendre à 1,3 voire 1, 2x n multiplications, pour un module de n bits.
Figure img00170001
Lorsque l'on utilise pour la clé (c'est-à-dire l'exposant) codée non pas sa représentation binaire,
<Desc/Clms Page number 18>
mais une suite de registres, on peut prendre pour exposant une chaîne plus courte, ce qui implique une plus grande rapidité d'exécution de l'algorithme d'exponentiation.
En plus, l'invention peut servir de protection contre les attaques dites SPA (de l'anglais"simple power analysis"), ou de manière plus générale contre les attaques dites SSLA (de l'anglais"simple secretleakage analysis").
Par ailleurs, la diversité des chemins de calcul d'exponentiation pour une valeur de e donnée, grâce au choix des valeurs intermédiaires e (i) dans les chaînes d'additions, permet d'éviter des attaques dites "différentielles". Ces attaques sont basées par exemple sur une analyse de la moyenne du courant consommé par une unité centrale. En effet, le calcul de xe, typiquement employé pour le codage RSA, peut être réalisé à chaque fois d'une façon différente, ce qui ne permet pas de réaliser des moyennes sur des éléments similaires. Or, l'attaque nécessite de calculer cette moyenne, sinon on obtient seulement une moyenne sur du bruit et l'information disparaît.
On comprendra que l'invention se prête à de nombreuses variantes, tant au niveau des modes de réalisation matériels que de l'élaboration des algorithmes et de leurs chaînes d'additions.
La description est donnée dans le cadre d'un processeur intégré dans une carte à puce. Il est cependant clair que les enseignements se transposent à toutes autres applications, telles que dans les terminaux informatiques, de communication sur réseau ou autre, et dans tout autre dispositif électronique qui fait appel à des calculs de codage ou de décodage.

Claims (29)

  1. REVENDICATIONS 1. Dispositif (1) destiné à réaliser des calculs d'exponentiation du type R = xe, où x et e sont des nombres prédéterminés, comprenant des moyens de calcul (2) et des moyens de mémorisation (4,6, 8), caractérisé en ce que les moyens de calcul (2) sont configurés pour réaliser les calculs d'exponentiation à partir d'une chaîne d'addition-soustraction C (e) élaborée pour l'exposant e, et en ce que ladite chaîne d'addition-soustraction C (e) est stockée dans une portion de mémoire (6) inscriptible après sa fabrication.
  2. 2. Dispositif selon la revendication 1, caractérisé en ce que ladite chaîne d'addition-soustraction C (e) est stockée dans une portion de mémoire figée inscriptible, du type électriquement programmable (EPROM) (6).
  3. 3. Dispositif selon la revendication 1, caractérisé en ce que ladite chaîne d'addition-soustraction C (e) est stockée dans une portion de mémoire figée réinscriptible, du type électriquement programmable et effaçable (EEPROM) (6).
  4. 4. Dispositif selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les moyens de calcul (2) sont configurés pour exécuter ledit calcul d'exponentiation, à partir de ladite chaîne d'additionsoustraction C (e), suivant un algorithme d'exponentiation stocké dans une portion de mémoire (4) du type mémoire figée codée par masquage (ROM masque).
  5. 5. Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les moyens de calcul (2)
    <Desc/Clms Page number 20>
    sont configurés pour exécuter un algorithme d'exponentiation du type universel à partir de ladite chaîne d'addition-soustraction présentée sous la forme C (e) = {e (O)/e (l),..., e (r)}, avec la condition e (i) = + e (-)) e, pour tout 1 i < r, dans lequel à l'étape i, on évalue une multiplication x exposant e (ì) = x exposant e. x exposant e, le dispositif comprenant un premier et deuxième registres Ra (i) et Rss (i) respectivement pour le stockage des valeurs de x exposant e et de x exposant e (k (i 1 et un troisième registre Ry (i) pour le stockage du résultat de ladite multiplication.
    Figure img00200001
  6. 6. Dispositif selon la revendication 5, caractérisé en ce que l'exposant e est représenté par la séquence de registre suivante :
    Figure img00200002
    r (e) = { (y (i) : cc (i) 1 13 (i) r i signif iant que Ry (i) = Ra (i). RB (i), les moyens de calcul (2) étant configurés pour exécuter l'algorithme d'exponentiation (pour e > l) :
    Figure img00200003
    Initialiser Rct (i) -x ; P r) x
    Figure img00200004
    pour i = 1 à r, exécuter
    Figure img00200005
    Ry (i) "Ra (i). Rj3 (i)
    Figure img00200006
    émettre en sortie R = Ry/r)-
  7. 7. Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les moyens de calcul (2) sont configurés pour exécuter un algorithme d'exponentiation du type universel à partir d'une chaîne d'addition-soustraction du type étoile, présentée sous la forme c(e) = {e(0),e(1),...,e(r)} avec la condition e(i) = ~ e(i-1) ~ e(k(i)), pour tout 1 i r, le dispositif comprenant un premier registre Rss (i) et un second registre Ry (i) pour représenter e, avec la condition &alpha; (i) = y (i-1) pour tout 1 < i < r.
    <Desc/Clms Page number 21>
    émettre en sortie R = Rr).
    Figure img00210005
    Ry (i) Ry (i-l). (i)
    Figure img00210004
    pour i = 1 à r, exécuter
    Figure img00210003
    Initialiser Ro) < -x ; Ra (i) < -x
    Figure img00210002
  8. 8. Dispositif selon la revendication 7, caractérisé en ce que les moyens de calcul (2) sont configurés pour réaliser une séquence de registres donnée par : F* (e) = { (y (i) : B (i))} 1 i g j- et pour exécuter l'algorithme d'exponentiation :
    Figure img00210001
  9. 9. Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les moyens de calcul (2) effectuent un algorithme selon une méthode binaire avec la représentation binaire de e donnée par e = (et-1, ..., eo 2 et en réalisant un balayage de l'exposant e de la droite vers la gauche pour obtenir l'expression
    Figure img00210006
    xe = (x (x' (X2... (x'"'r'-'.
  10. 10. Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les moyens de calcul (2) effectuent un algorithme selon une méthode binaire avec la représentation binaire de e donnée par e = (et-l,..., eo) 2 et en réalisant un balayage de l'exposant e de la gauche vers la droite
    Figure img00210007
    pour obtenir l'expression xe = (... ( (x''-') 2x''-2) 2... xe') 2xe.
  11. 11. Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les moyens de calcul (2) effectuent un algorithme selon une
    Figure img00210008
    méthode 2k-aire, où on traite un nombre k de bits à chaque itération, les valeurs de x ('l") pour tout 1 2 (k-1 étant précalculées.
    <Desc/Clms Page number 22>
    Figure img00220001
  12. 12. Dispositif selon l'une quelconque des revendications 1 à 11, caractérisé en ce que ladite chaîne d'addition-soustraction est une chaîne d'additions présentée sous la forme : C (e) = {e ", e'",..., e'}, avec la condition e (l) = e " + e (k (l)), pour tout 1 sis r.
  13. 13. Dispositif selon l'une quelconque des revendications 1 à 12, caractérisé en ce qu'il est mis en oeuvre dans un système cryptographique basé sur un algorithme cryptographique faisant intervenir au moins une exponentiation du type R = xe.
  14. 14. Dispositif selon la revendication 13, caractérisé en ce que l'algorithme cryptographique est du type Rivert, Shamir, Adleman (RSA).
  15. 15. Carte à puce, caractérisée en ce qu'elle intègre un dispositif (1) selon l'une quelconque des revendications 1 à 14.
  16. 16. Utilisation du dispositif selon l'une quelconque des revendications 1 à 15 pour réaliser un calcul d'exponentiation, notamment dans l'exécution d'un algorithme cryptographique.
  17. 17. Procédé de programmation d'un dispositif de calcul d'exponentiation du type R = xe, où x et e sont des nombres prédéterminés, utilisant des moyens de calcul (2) et des moyens de mémorisation (4,6, 8) destinés à stocker un algorithme d'exponentiation, caractérisé en ce qu'il comprend les étapes de : - sélectionner une valeur d'exposant e ; - exprimer la valeur de l'exposant e par une chaîne d'addition-soustraction C (e) choisie ;
    <Desc/Clms Page number 23>
    - inscrire ladite chaîne d'addition-soustraction dans une portion (6) de moyens de mémorisation (4, 6, 8) qui est inscriptible après sa fabrication.
  18. 18. Procédé selon la revendication 17, caractérisé en ce que l'on stocke ladite chaîne d'additionsoustraction C (e) dans une portion de mémoire figée inscriptible, du type électriquement programmable (EPROM) (6).
  19. 19. Procédé selon la revendication 17, caractérisé en ce que l'on stocke ladite chaîne d'additionsoustraction C (e) dans une portion de mémoire figée réinscriptible, du type électriquement programmable et effaçable (EEPROM) (6).
  20. 20. Procédé selon l'une quelconque des revendications 17 à 19, caractérisé en ce que l'on inscrit un algorithme d'exponentiation dans une portion de mémoire (4) du type mémoire figée codée par masquage (ROM masque), l'algorithme fonctionnant à partir de ladite chaîne d'addition-soustraction C (e).
  21. 21. Procédé selon l'une quelconque des revendications 17 à 20, caractérisé en ce que l'on configure les moyens de calcul (2) pour exécuter un algorithme d'exponentiation du type universel à partir de ladite chaîne d'addition-soustraction présentée sous la forme
    Figure img00230001
    C (e) = (O), e (l),.... e (r) , avec la condition e = e ] (i)) + e (k (i)), pour tout 1 : i < r, dans lequel à l'étape i, on évalue une multiplication x exposant e = x exposant e (i (i)). x exposant (k (i)), et en ce que l'on prévoit un premier et deuxième registres R, (i) et Rss (i) respectivement pour le stockage des valeurs de x exposant e et de x exposant e (i)), et un
    <Desc/Clms Page number 24>
    troisième registre R, (i) pour le stockage du résultat de ladite multiplication.
    Figure img00240001
  22. 22. Procédé selon la revendication 21, caractérisé en ce que l'exposant e est représenté par la séquence de registre suivante : r (e) = { (y (i) : a (i), B (i))} i < i < r. signifiant que Ry (i) = Ra (i). RB (i), et en ce que l'on configure les moyens de calcul (2) pour exécuter l'algorithme d'exponentiation (pour e > l) :
    Figure img00240002
    Initialiser Ra (i) < -x ; Rfl) x
    Figure img00240003
    pour i = 1 à r, exécuter
    Figure img00240004
    RY (i) Ra (i). Rss (i)
    Figure img00240005
    émettre en sortie R = Ry (r).
  23. 23. Procédé selon l'une quelconque des revendications 17 à 20, caractérisé en ce que l'on configure les moyens de calcul (2) pour exécuter un algorithme d'exponentiation du type universel à partir d'une chaîne d'addition-soustraction du type étoile, présentée sous la forme C (e) = {e (O), e (l),..., e (r)} avec la condition e (i) = e' e < , pour tout 1 < i r, et en ce que l'on prévoit un premier registre Rss (i) et un second registre Ry(i) pour représenter e, avec la condition a (i) = y (i-l) pour tout 1 < i < r.
  24. 24. Procédé selon la revendication 23, caractérisé en ce que l'on configure les moyens de calcul (2) pour réaliser une séquence de registres donnée par : F* (e) = { (y (i) : B (i))} i i r, et pour exécuter l'algorithme d'exponentiation :
    Figure img00240006
    Initialiser Ry (0) x ; Rss (l) X
    Figure img00240007
    pour i = 1 à r, exécuter
    Figure img00240008
    Re F Re Rss (i)
    Figure img00240009
    émettre en sortie R = RY (r).
    <Desc/Clms Page number 25>
  25. 25. Procédé selon l'une quelconque des revendications 17 à 20, caractérisé en ce que les moyens de calcul (2) effectuent un algorithme selon une méthode binaire avec la représentation binaire de e donnée par e = (et-i, eo) 2 et en réalisant un balayage de l'exposant e de la droite vers la gauche pour obtenir l'expression
    Figure img00250001
    xe = (x) r (x2' (x... (x2"'-; r'-'.
  26. 26. Procédé selon l'une quelconque des revendications 17 à 20, caractérisé en ce que les moyens de calcul (2) effectuent un algorithme selon une méthode binaire avec la représentation binaire de e donnée par e = (et-i, ..., e0) 2 et en réalisant un balayage de l'exposant e
    Figure img00250002
    de la gauche vers la droite pour obtenir l'expression xe = (... ( (xel-l) 2xe'-2) 2... xel) 2xeo.
  27. 27. Procédé selon l'une quelconque des revendications 17 à 20, caractérisé en ce que les moyens de calcul (2) effectuent un algorithme selon une méthode 2k-aire, où on traite un nombre k de bits à chaque itération, avec
    Figure img00250003
    un précalcul des valeurs de x" pour tout 1 j < (2 - 1).
  28. 28. Procédé selon l'une quelconque des revendications 17 à 27, caractérisé en ce que ladite chaîne d'addition-soustraction est une chaîne d'additions présentée sous la forme : C (e) = {e(0),e(1),...,e(r)},
    Figure img00250004
    avec la condition e e'-"'+ e"""", pour tout 1 < i : 9 r.
  29. 29. Utilisation du procédé selon l'une quelconque des revendications 17 à 28 pour la mise en oeuvre dans un système cryptographique basé sur un algorithme
    <Desc/Clms Page number 26>
    cryptographique faisant intervenir au moins une exponentiation du type R = xe.
FR0100296A 2001-01-11 2001-01-11 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif Expired - Fee Related FR2819320B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0100296A FR2819320B1 (fr) 2001-01-11 2001-01-11 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif
PCT/FR2001/004182 WO2002056171A1 (fr) 2001-01-11 2001-12-21 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif
EP01995782A EP1350161A1 (fr) 2001-01-11 2001-12-21 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0100296A FR2819320B1 (fr) 2001-01-11 2001-01-11 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif

Publications (2)

Publication Number Publication Date
FR2819320A1 true FR2819320A1 (fr) 2002-07-12
FR2819320B1 FR2819320B1 (fr) 2003-08-08

Family

ID=8858678

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0100296A Expired - Fee Related FR2819320B1 (fr) 2001-01-11 2001-01-11 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif

Country Status (3)

Country Link
EP (1) EP1350161A1 (fr)
FR (1) FR2819320B1 (fr)
WO (1) WO2002056171A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764735B (zh) * 2008-12-25 2011-12-07 凌阳电通科技股份有限公司 通信系统的传输区块长度计算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235538A (en) * 1990-09-07 1993-08-10 Hitachi, Ltd. Semiconductor operation device with memory for storing operation codes connected from coefficients prior to performing an operation on an input signal
US5987131A (en) * 1997-08-18 1999-11-16 Picturetel Corporation Cryptographic key exchange using pre-computation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235538A (en) * 1990-09-07 1993-08-10 Hitachi, Ltd. Semiconductor operation device with memory for storing operation codes connected from coefficients prior to performing an operation on an input signal
US5987131A (en) * 1997-08-18 1999-11-16 Picturetel Corporation Cryptographic key exchange using pre-computation

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BERNSTEIN R: "MULTIPLICATION BY INTEGER CONSTANTS", SOFTWARE PRACTICE & EXPERIENCE, JOHN WILEY & SONS LTD. CHICHESTER, GB, vol. 16, no. 7, 1 July 1986 (1986-07-01), pages 641 - 652, XP000743393, ISSN: 0038-0644 *
BOS J ET AL: "ADDITION CHAIN HEURISTICS", ADVANCES IN CRYPTOLOGY. SANTA BARBARA, AUG. 20 - 24, 1989, PROCEEDINGS OF THE CONFERENCE ON THEORY AND APPLICATIONS OF CRYPTOLOGY, NEW YORK, SPRINGER, US, vol. CONF. 9, pages 400 - 407, XP000135674 *
MENEZES A J ET AL: "HANDBOOK OF APPLIED CRYPTOGRAPHY", CRC PRESS, BOCA RATON, FL, USA, ISBN: 0-8493-8523-7, XP000764820 *
SAUERBREY J ET AL: "Resource requirements for the application of addition chains in modulo exponentiation", ADVANCES IN CRYPTOLOGY - EUROCRYPT '92. WORKSHOP ON THE THEORY AND APPLICATIONS OF CRYPTOGRAPHIC TECHNIQUES. PROCEEDINGS, BALATONFURED, HUNGARY, 24-28 MAY 1992, 1993, Berlin, Germany, Springer-Verlag, Germany, pages 174 - 182, XP001030139, ISBN: 3-540-56413-6 *

Also Published As

Publication number Publication date
WO2002056171A1 (fr) 2002-07-18
FR2819320B1 (fr) 2003-08-08
EP1350161A1 (fr) 2003-10-08

Similar Documents

Publication Publication Date Title
EP2842232B1 (fr) Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire
EP2380305B1 (fr) Circuit de cryptographie, protégé notamment contre les attaques par observation de fuites d&#39;information par leur chiffrement
EP1421473B1 (fr) Procédé de calcul universel appliqué à des points d&#39;une courbe elliptique
EP1832974A1 (fr) Protection EMA d&#39;un calcul par un circuit électronique
EP2166696A1 (fr) Protection de l&#39;intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
EP1804161A1 (fr) Détection de perturbation dans un calcul cryptographique
EP3502899B1 (fr) Procédé de détermination d&#39;une somme d&#39;intégrité, programme d&#39;ordinateur et entité électronique associés
EP1715410B1 (fr) Protection d&#39;un calcul effectué par un circuit intégré
EP2284690A2 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
WO2007104706A1 (fr) Procede de securisation d&#39;un calcul d&#39;une exponentiation ou d&#39;une multiplication par un scalaire dans un dispositif electronique
EP1904928A2 (fr) Integrite materielle permanente des donnees
EP1538508A1 (fr) Procédé et dispositif de chiffrement et dechiffrement à la volée
WO2003014916A1 (fr) Procede securise de realisation d&#39;une operation d&#39;exponentiation modulaire
EP1721246B1 (fr) Procede et dispositif pour accomplir une operation cryptographique
FR2819320A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation, et procede de programmation et d&#39;utilisation du dispositif
EP1279141B1 (fr) Procede de contre mesure dans un microcircuit et carte a puce comportant ledit microcircuit
EP2315388A1 (fr) Procédé sécurisé de calcul cryptographique et composant électronique correspondant.
EP0778518B1 (fr) Procédé de production d&#39;un paramètre J0 associé à la mise en oeuvre d&#39;opérations modulaires selon la méthode de Montgomery
WO2004017193A2 (fr) Procede de calcul universel applique a des points d&#39;une courbe elliptique
FR2823327A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation securisee et utilisation d&#39;un tel dispositif
WO2002099624A1 (fr) Procede de securisation d&#39;un calcul d&#39;exponentiation dans un dispositif electronique
FR3145222A1 (fr) Protection contre les attaques par canal auxiliaire d’un algorithme cryptographique impliquant une table de substitution
EP4270855A1 (fr) Protection contre les attaques par canal auxiliaire a l aide d&#39;un masquage carre
EP1891769A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire effectue par un circuit integre
WO2003069841A1 (fr) Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20091030