WO2002056171A1 - 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
WO2002056171A1
WO2002056171A1 PCT/FR2001/004182 FR0104182W WO02056171A1 WO 2002056171 A1 WO2002056171 A1 WO 2002056171A1 FR 0104182 W FR0104182 W FR 0104182W WO 02056171 A1 WO02056171 A1 WO 02056171A1
Authority
WO
WIPO (PCT)
Prior art keywords
exponentiation
algorithm
chain
exponent
execute
Prior art date
Application number
PCT/FR2001/004182
Other languages
English (en)
Inventor
Marc Joye
Christophe Clavier
Original Assignee
Gemplus
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus filed Critical Gemplus
Priority to EP01995782A priority Critical patent/EP1350161A1/fr
Publication of WO2002056171A1 publication Critical patent/WO2002056171A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Definitions

  • the present invention relates to an exponentiation calculation device, as well as a method for programming and using the latter, with application in particular in the field of cryptology where cryptographic algorithms are implemented in electronic devices. such as smart cards.
  • R x e
  • x and e predetermined numbers which code an R value. This is notably the case with the algorithm of the RSA type (Rivert, Shamir and Adleman).
  • the value R can correspond for example to an encrypted text, a confidential code, a public or private key for encryption or decryption, etc.
  • An electronic device intended to execute such an algorithm must contain in memory on the one hand the executable part for raising x to the power of e, and on the other hand the values x and e.
  • different types of possible algorithms are used: the so-called squared and multiply method, known by the English term “square and multiply” ( SAM), method M, M 3 , sliding windows, etc.
  • SAM square and multiply
  • M M 3
  • sliding windows etc.
  • SAM square and multiply
  • a mask ROM is a memory whose recorded data is physically written during production. material of the microcircuit, in terms of the design of the masks used for manufacturing.
  • an object of the invention is to make it possible to decompose an algorithm, in particular for cryptography, into a constant part, relatively simple to program, and a variable part according to the coded value and a setting. of the algorithm.
  • This arrangement makes it possible to store the constant part in a mask ROM to benefit from the advantage of this technology, and the variable part in a rewritable memory, or quite simply programmable after its manufacture.
  • the risks of errors are therefore considerably reduced at the level of the mask ROM part.
  • reprogram the rewritable memory In the event of an error in the configuration of the algorithm, or in the event of a change of the key, it suffices only to reprogram the rewritable memory. This operation only takes place on the functional level, for example only modifying a program to be loaded in the memory.
  • EPROM electrically programmable type
  • EEPROM electrically programmable and erasable type
  • the calculation means can be configured to execute said exponentiation calculation, from said addition-subtraction chain C (e), according to an exponentiation algorithm stored in a memory portion of the frozen memory type coded by masking ( ROM mask).
  • R ⁇ (i ) and R ⁇ (i) respectively for the storage of the values of x exponent e (j! L>) and of x exponent e (k (1)) , and a third register R ⁇ ( i) for the storage of result of said multiplication.
  • the exponent can be represented by the following sequence of registers:
  • T (e) ⁇ ( ⁇ (i): ⁇ (i), ⁇ (i)) ⁇ i ⁇ i ⁇ r , meaning that ⁇ di ⁇ R ⁇ x (i) .R ⁇ (i) / the means of calculation being configured to execute the exponentiation algorithm (for e> l):
  • the calculation means can also be configured to execute a universal type exponentiation algorithm from an addition chain.
  • star type subtraction in English “star chains”
  • C (e)
  • the device uses for this algorithm a first register (Ri) intended to contain the successive values of x 2 and a current register (RO), the calculation means being active to execute an exponentiation algorithm "of right to left ":
  • the device uses for this algorithm a first register (RI) and a current register (RO), the calculation means being active to execute an exponentiation algorithm "from left to right":
  • calculation means consists in performing an algorithm according to a 2 k -ary method, where a number k of bits is processed at each iteration.
  • the invention relates to a smart card, characterized in that it incorporates a device of the aforementioned type.
  • the invention relates to the use of a device of the aforementioned type for carrying out an exponentiation calculation, in particular in the execution of a cryptographic algorithm.
  • the object of the chain of additions is to produce a series of numbers, starting from 1, intended to serve as power indices so that the computation of elevation of x to these indices is possible by multiplying the results of previous calculations.
  • addition chain This is a sequence which has the property that each of its elements is the sum of two previous elements. The first element of the sequence is worth 1, and the last element is equal to the exponent e. To calculate the value x e , we can therefore establish a chain of additions for the exponent e (something going from 1 to e). Now, since each element i
  • x power e (r) x power e (r) .
  • C (5) ⁇ 1,2,3,5 ⁇ . This chain begins with 1 and ends with 5, and each element in the sequence is equal to the sum of two previous elements. For example, the number 2 is formed by 1 + 1, 3 is formed by 2 + 1, 5 is formed by 3 + 2.
  • a more general form of the chain is the so-called addition-subtraction chain, where each element e (1) of the sequence is more or less a preceding element e (jl , more or less another element e (k> We can therefore take into account either an element or its opposite.
  • a star chain which is a chain of additions such that each element e (x) is equal to the immediately preceding element e (1_1) plus another preceding element e (k) .
  • SAM squaring and multiplying
  • FIG. 1 shows in the form of a block diagram a device 1 programmed in accordance with the invention, in this case a smart card intended to execute a cryptographic program.
  • the device implements an addition chain C (e) stored in a portion of rewritable memory, and the multiplication algorithm is stored in a mask ROM memory.
  • the latter can be based on an RSA algorithm
  • the device 1 combines in a chip programmed means for the execution of calculations
  • calculation means composed of a central unit (CPU) 2 functionally connected to a set of memories of which:
  • the central unit 2 is also connected to a communication interface 10 which ensures the exchange of signals vis-à-vis the outside and the supply of the chip.
  • This interface can be in the form of pads on the card for a so-called “contact” connection with a reader, and / or an antenna in the case of a so-called “contactless” card.
  • One of the functions of the computing means 1 is to encrypt and decrypt confidential data respectively transmitted to and received from the outside. This data may relate, for example, to personal codes, medical information, accounting on bank or commercial transactions, authorizations to access certain restricted services, etc. Another function is to calculate a digital signature or verify it.
  • the central unit 2 executes the cryptographic algorithm from programming data which, according to the invention, are stored in the mask ROM 4 and EEPROM 6 parts.
  • the EEPROM memory 6 is written the addition chain C (e), which will serve in its general function to extract the successive multiplicands to the multiplication algorithm contained in the mask ROM 4 and, in its coding function, to code the exponentiation algorithm by the specific choices of the intermediate values e (l) for this chain.
  • Such a multiplication algorithm is defined as follows.
  • C (e) ⁇ e (0) , e (1) , ..., e (r) ⁇ which is supplied from the EEPROM 6 portion for an exponent e.
  • e (1) e (:,)) + e (k (1)) .
  • the algorithm will then transmit the values to the registers R ⁇ ( i), R ⁇ (i) and R ⁇ (i) .
  • This algorithm is called the universal exponentiation algorithm.
  • ⁇ (l ) ⁇ (l)
  • ⁇ (i) ⁇ (i).
  • the exponent is scanned from right to left.
  • e (e t _ ⁇ , ..., e 0 ) 2 be the binary representation of e.
  • X e (x 2 °) e ° (x 2l ) e ⁇ (x 22 ) e2 ... (x 2t "1 ) ⁇ l - 1.
  • R x e
  • the resulting algorithm is the SAM method
  • EEPROM 6 which simply multiplies the elements given by it. This type of algorithm is very easy to program in ROM mask 4. What is put in EEPROM 6 is not the key (i.e. the exponent), which is usually done, but a representation of this key by a specific chain of additions. In the event of an error in the elaboration or programming of the chain, or even a modification of the key, it suffices to program the new suitable data in the EEPROM 6 portion only. Indeed, an algorithm error registered in the EEPROM memory would be equivalent to an error in the writing of a chain of additions. The multiplication program stored in the mask ROM portion 4 remains unchanged.
  • This coding in the chain of additions in rewritable memory is therefore advantageous compared to the usual technique of putting the entire algorithm (for example of the SAM type) in mask ROM, which requires re-tagging. in case error.
  • the SAM algorithm conventionally used under these conditions is relatively difficult to implement, in particular because of the countermeasures to be installed, which increases the risk of error.
  • the execution time is much faster because the chain of additions can be processed by efficient algorithms, making it possible to go down to 1.3 or even l, 2x n multiplications, for a module of n bits.
  • the invention can serve as protection against attacks called SPA (from the English "simple po er analysis"), or more generally against attacks called SSLA (from the English "simple secret-leakage analysis” ).
  • SPA from the English "simple po er analysis”
  • SSLA from the English "simple secret-leakage analysis”
  • the diversity of the exponentiation calculation paths for a given value of e thanks to the choice of intermediate values e (l) in the addition chains, makes it possible to avoid so-called attacks "Differential". These attacks are based for example on an analysis of the average current consumed by a central unit.

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

DISPOSITIF DESTINE A REALISER DES CALCULS
D'EXPONENTIATION, ET PROCEDE DE PROGRAMMATION ET
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 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é à 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(0) , e(1) , ... , e(r) } , avec la condition e(i) = e(j(i)> + e(k(i)), pour tout 1 < i < r, dans laquelle à l'étape i, on évalue une multiplication x exposant e(1) = x exposant e(j(1)).x exposant (k(1)), le dispositif comprenant des premier et deuxième registres
Rα(i) et Rβ(i) respectivement pour le stockage des valeurs de x exposant e (j!l>) et de x exposant e(k(1)), et un troisième registre Rγ(i) 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:
T(e) = {(γ(i): α(i), β (i) ) } i ≤ i ≤ r, signifiant que γdi R<x(i).Rβ(i)/ les moyens de calcul étant configurés pour exécuter l'algorithme d'exponentiation (pour e>l) :
Initialiser Rα(1) <- x ; Rβ(i) <- x pour i = 1 à r, exécuter
Figure imgf000005_0001
émettre en sortie R = Rγ(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'addition- soustraction 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) = e11-1» + e(k(il), pour tout 1 < i < r, le dispositif comprenant un premier registre Rβ(_.) et un second registre Rγ(i) pour représenter e, avec la condition α(i) = γ(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 donnée par : r*(e) = {(γ(i): β (i) ) } i ≤ i ≤ τ, et pour exécuter l'algorithme d'exponentiation :
Initialiser Rγ(0) <- x ; Rβ(i> <— x pour i = 1 à r, exécuter
Figure imgf000006_0001
é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-ι, •••/ e0)2 et en réalisant un balayage de l'exposant e de la droite vers la gauche pour obtenir l'expression xe = (x20^21)^22)62...^2'"1)6'-1.
Dans un mode de réalisation, le dispositif utilise pour cet algorithme un premier registre (Ri) destiné à contenir les valeurs successives de x2 et un registre courant (RO) , les moyens de calcul étant actifs pour exécuter un algorithme d'exponentiation "de droite à gauche" :
RO <- 1; RI - x pour i = 0 à (t-1) , exécuter si (ei = 1), alors R0 <- R0.R1 RI <- RI2 émettre en sortie R = R0.
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-ι, . • . , e0)2 et en réalisant un balayage de l'exposant e de la gauche vers la droite pour obtenir l'expression xe = (...((x61-1)2*6'-2)2.. 61)2*60-
Dans un mode de réalisation, le dispositif utilise pour cet algorithme un premier registre (RI) et un registre courant (RO) , les moyens de calcul étant actifs pour exécuter un algorithme d'exponentiation "de gauche à droite" :
RO <- 1; RI <- x pour i = (t-1) en descendant à 0, exécuter RO <- RO2 si (e1 = 1) alors RO <- R0.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 valeurs de x2j+1 pour tout 1 < j < (2k_1 - 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 R0 - 1, RI <r- x; R2 <- x3; pour i = 2[log4 e] en descendant à 0 par sauts de - 2, exécuter cas (ei+ι, e±) de
( 0 , 0 ) R0 - R0O22 ;; RR00 < <-- RR0022 ( (00,,11)) : R R00 < <-- R ROO22 ; ; RR00 < <-- RROO22 ; R0 r- R0.R1
( 1 / 0 ) R0 <- RO2 ; R0 r~ R0 . ; R0 <- RO2
( 1 / 1 ) R0 <- RO2 ; R0 <- R02 R0 - R0.R2 Emettre en sortie R = R0.
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 d'additions présentée sous la forme : C(e) =
{e(0),e(1), ...,e(r)}, avec la condition e(i> = e(j(i>) + e(k(i)>, 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'exé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 ;
- 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.x . 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'addition- soustraction 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 xθ(x) = xe(j (1,)e(k(1>) . 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(0),e(11, ..., e(r1}, qui satisfait les conditions :
(Cl) e(0) = 1, e(r> = e, et
(C2) pour tout 1 < i < r, il existe j (i) , k(i) < i de sorte que e(i> = e(j(i)) + e(k(i)).
On peut ainsi aisément obtenir R = xe en calculant pour i = 1 à r : x puissance e(l) = x puissance e(j )).x puissance e(k(1)), 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 calculer x exposant 5, on calcule d'abord x1, ensuite x2 en prenant x1.x1, l'indice 2 étant formé par la somme
1+1. On calcule ensuite x3 en prenant la somme des indices 1 et 2, donnant x2.xx, et enfin on calcule x5 en prenant la somme des indices 3 et 2, donnant x3.x2.
Le calcul d'exponentiation est alors réalisé avec: x1 = x, x2 = x1 . x1, x3 = x2.xα, et enfin x5 =
3 2 A . .
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(1) de la suite est égal à plus ou moins un élément précédent e(jl, 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(x) est égal à l'élément immédiatement précédent e(1_1) 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 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 " ask read-only me ory ( ask ROM) ",
- 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 d'exponentiation par les choix spécifiques des valeurs intermédiaires e(l) 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 C(e) = {e(0), e(1), ... , e(r) } qui est fournie à partir de la portion EEPROM 6 pour un exposant e. Ainsi, pour tout 1 ≤ i < r, on a e(1) = e(:, )) + e(k(1)). A l'étape i, on évalue x exposant e ) = x exposant e{ (1>).x exposant (k(i)>. On suppose que x exposant e'3'1" et x exposant e (ku)) appartiennent respectivement à des premier et deuxième registres Rα(ι> et Rβd>, et que le résultat est inscrit dans un troisième registre Rγ(1) . 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 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 ileme élément de la chaîne d'additions, le registre Rγ(1) sera déclaré comme étant égal au contenu du registre Rα(1) fois le contenu du registre Rβ(1) . L'avantage est que si on dispose, par 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γ(i), Rα(i) et Rβ(i) . L'exposant e peut donc être représenté par la séquence de registre suivante: r (e) = { (γ(i) : α(i), β(i))} ι≤i≤r/ ce qui veut dire que
Figure imgf000014_0001
ti).Rβ(i). Par convention, la valeur e≈l est représentée par 17(1)= {}. De ce qui précède, on obtient l'algorithme d'exponentiation suivant (pour e>l) : Initialiser Rα(i> <— x ; Rβ(i) •<— x pour i = 1 à r, exécuter
Figure imgf000014_0002
émettre en sortie R = Rγ(r) .
Cet algorithme est désigné algorithme universel d' exponentiation.
On note que Rα(i) et Rβ(u sont initialisés avec la valeur x, car le deuxième terme de chaque chaîne d'additions est toujours e(1) = 2. On note également que l'on peut avoir α(l) = β(l), et plus généralement α(i) = β (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 Rα(i) est égal au contenu au stade précédent du registre Rγϋ-u . 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 (D _ eu-D + e (kd)) ^ Dans ce cas. ϋ suffit de prévoir des paires de registres pour représenter e, en posant la condition α(i) = γ(i-l) pour tout 1 < i ≤ r.
La séquence de registres est donc donnée par : r (e) = { (γ(i) : β(i)) } _ ≤i≤r.
L'algorithme d'exponentiation correspondant est:
Initialiser Rγ(0) <— x ; Rβ(i) <— x pour i = 1 à r, exécuter
Figure imgf000015_0001
émettre en sortie R = Rγ(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 = (et_ι, ..., e0)2 la représentation binaire de e. On peut donc écrire: Xe = (x2°)e°(x2l)(x22)e2...(x2t"1)βl-1. Un registre de la mémoire RAM 8 (que l'on désignera RI) contient les valeurs successives de x2 , et lorsque e± = 1, la valeur du contenu de ce registre est multipliée dans le registre courant (que l'on désignera RO) , également dans la mémoire RAM 8. L'algorithme d'exponentiation "de droite à gauche" s'exprime alors comme suit : RO - 1; RI r- x pour i = 0 à (t-1), exécuter si (e± = 1), alors RO <- R0.R1 RI <r- RI2 é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
T(e) = { (γ(i) : α(i) , β(i))l ι.ι.H on a rdg2 (87) = { (0: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 sont tous les deux initialisés à x.
Une autre façon de calculer R = xe consiste à balayer les bits de e de gauche à droite.
L'algorithme qui en résulte est la méthode SAM
(élever au carré et multiplier) . Cet algorithme découle de l'expression: xe = (...(( ^ 1-2)2-"*61)2*60. L'algorithme d'exponentiation SAM s'exprime alors comme suit : RO - 1; RI <- x pour i = (t-1) en descendant à 0, exécuter RO <- RO2 si (e1 = 1) alors RO <- R0.R1 émettre en sortie R = RO .
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 T* (e) = { (γ(i) : β (i) ) } i ≤ _. ≤ _, et ainsi obtenir rgd2(87) = { (0:0), (0:0), (0:1), (0:0), (0:0), (0:1), (0:0),
(0:1) , (0:0) , (0:1) }, où R0 et RI 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_1 - 1), on précalcule les valeurs de x2j+1 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
R0 <- 1, RI <- x; R2 <- x3; pour i = 2 [log4 e] en descendant à 0 par sauts de - 2, exécuter
Figure imgf000016_0001
( 0 , 0 ) : R0 <r- RO2 ; R0 <- RO2
( 0 , 1 ) : R0 <- RO2 ; R0 <- RO2 ; R0 <- R0 . R1
( 1. 0 ) : R0 - RO2 ; R0 - R0 . R1 ; R0 <- R02
( 1. 1 ) : R0 <- RO2 ; R0 <- RO2 ; R0 <- R0 . R2 Emettre en sortie R = RO
Cet algorithme nécessite
(11/8) log2 (e) = l,3751og2(e) multiplications en moyenne, comparé à l,51og2(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) = l,3331og2(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 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ù R0 et RI sont 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 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 l,2x n multiplications, pour un module de n bits .
Lorsque l'on utilise pour la clé (c'est-à-dire l'exposant) codée non pas sa représentation binaire, 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 po er analysis"), ou de manière plus générale contre les attaques dites SSLA (de l'anglais "simple secret- leakage 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(l) 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

R E V E N D I C A T I O N S
1. Dispositif (1) destiné à réaliser des calculs d'exponentiation du type R = xe, où l'opérande x et l'exposant e sont des nombres prédéterminés, comprenant des moyens de calcul (2) et des moyens de mémorisation (4,6,8), lesdits moyens de calcul (2) étant configurés pour réaliser les calculs d'exponentiation, caractérisé en ce que ledit exposant e est représenté par la séquence de registre suivante : T(e) = {(γ(i) : (i), β(i))} ι≤i ≤ r/ signifiant que Rγ(i)= Rα(i). β(i) pour tout 1 < i < r, dans lequel à l'étape i, on effectue le produit de Rα(i) avec Rβ(i), ledit dispositif (1) comprenant un premier et deuxième registres Rα(i) et Rβ(i) en entrée, et un troisième registre Rγ(i) pour le stockage du résultat dudit produit, les moyens de calcul (2) étant configurés pour exécuter l'algorithme d'exponentiation (pour e>l) : Initialiser Rα(i) — x ; Rβ(i) <- x pour i = 1 à r, exécuter
Figure imgf000020_0001
émettre en sortie R = Rγ(r) .
2. Dispositif selon la revendication 1, caractérisé en ce que les moyens de calcul (2) sont configurés pour réaliser une séquence de registres donnée par : T*(e) = {(γ(i): β(i))} i i ≤ r et pour exécuter l'algorithme d'exponentiation : Initialiser Rγ(0) <— x ; Rβ(i> - x pour i = 1 à r, exécuter
Figure imgf000020_0002
émettre en sortie R = Rγ(r) .
3. Dispositif selon la revendication 1 ou 2, 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.
4. Dispositif selon la revendication 3, caractérisé en ce que l'algorithme cryptographique est du type Ri ert, Shamir, Adleman (RSA) .
5. Carte à puce, caractérisée en ce qu'elle intègre un dispositif (1) selon l'une quelconque des revendications 1 à 4.
6. Utilisation du dispositif selon l'une quelconque des revendications 1 à 5 pour réaliser un calcul d'exponentiation, notamment dans l'exécution d'un algorithme cryptographique.
7. Procédé de programmation d'un dispositif de calcul d'exponentiation du type R = xe, où l'opérande x et l'exposant 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 que l'exposant e est représenté par la séquence de registre suivante:
T(e) = { (γ(i) : α(i), β(i))} _ ≤ ± ≤ _ , signifiant que Rγ(i)= Rα(i).Rβ(i> pour tout 1 ≤ i < r, dans lequel à l'étape i, on effectue le produit de Rα(i) avec Rβ(u, ledit dispositif (1) comprenant un premier et deuxième registres Rα(i) et Rβ(i) en entrée, et un troisième registre Rγ(i) pour le stockage, du résultat dudit produit, et en ce que l'on configure les moyens de calcul (2) pour exécuter l'algorithme d'exponentiation (pour e>l) :
Initialiser Rα(i) <— x ; RBID - x pour i = 1 à r, exécuter
Figure imgf000021_0001
émettre en sortie R = Rγ(r) .
8. Procédé selon la revendication 7, caractérisé en ce que l'on configure les moyens de calcul (2) pour réaliser une séquence de registres donnée par : T* (e) = {(γ(i): β(i))} i i _ , et pour exécuter l'algorithme d'exponentiation : Initialiser Rγ(0) <- x ; Rβ(u <- x pour i = 1 à r, exécuter
Figure imgf000022_0001
émettre en sortie R = Rγ(r) .
9. Utilisation du procédé selon la revendication 7 ou 8 pour la mise en oeuvre dans un système cryptographique basé sur un algorithme cryptographique faisant intervenir au moins une exponentiation du type R = Xe.
PCT/FR2001/004182 2001-01-11 2001-12-21 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif WO2002056171A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
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 (2)

Application Number Priority Date Filing Date Title
FR01/00296 2001-01-11
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 (1)

Publication Number Publication Date
WO2002056171A1 true WO2002056171A1 (fr) 2002-07-18

Family

ID=8858678

Family Applications (1)

Application Number Title Priority Date Filing Date
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

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
FR2819320A1 (fr) 2002-07-12
FR2819320B1 (fr) 2003-08-08
EP1350161A1 (fr) 2003-10-08

Similar Documents

Publication Publication Date Title
EP1804161B1 (fr) Détection de perturbation dans un calcul cryptographique
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
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
EP1715410B1 (fr) Protection d&#39;un calcul effectué par un circuit intégré
EP3502899B1 (fr) Procédé de détermination d&#39;une somme d&#39;intégrité, programme d&#39;ordinateur et entité électronique associés
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
EP2284690A2 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
WO2001028153A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
EP1904928A2 (fr) Integrite materielle permanente des donnees
EP1804160B1 (fr) Protection d&#39;un calcul cryptographique effectué par un circuit intégré
EP1419434A1 (fr) Procede securise de realisation d&#39;une operation d&#39;exponentiation modulaire
WO2002056171A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation, et procede de programmation et d&#39;utilisation du dispositif
EP1839125A1 (fr) Procédé d&#39;exponentiation sécurisée et compacte pour la cryptographie
EP1279141B1 (fr) Procede de contre mesure dans un microcircuit et carte a puce comportant ledit microcircuit
FR2979725A1 (fr) Procede de calculs cryptographique resistant aux defaillances materielles
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
FR3004043A1 (fr) Procedes de generation et d&#39;utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
EP1089175A1 (fr) Système informatique sécurisé
FR3135854A1 (fr) Fourniture sécurisée de clefs pour un cryptage totalement homomorphe
WO2006134306A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire effectue par un circuit integre
EP2232762B1 (fr) Procede de codage d&#39;un secret forme par une valeur numerique
WO2003069841A1 (fr) Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2001995782

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001995782

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2001995782

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP