EP1350161A1 - 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

Info

Publication number
EP1350161A1
EP1350161A1 EP01995782A EP01995782A EP1350161A1 EP 1350161 A1 EP1350161 A1 EP 1350161A1 EP 01995782 A EP01995782 A EP 01995782A EP 01995782 A EP01995782 A EP 01995782A EP 1350161 A1 EP1350161 A1 EP 1350161A1
Authority
EP
European Patent Office
Prior art keywords
exponentiation
algorithm
chain
exponent
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.)
Withdrawn
Application number
EP01995782A
Other languages
German (de)
English (en)
Inventor
Marc Joye
Christophe Clavier
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
Publication of EP1350161A1 publication Critical patent/EP1350161A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (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 é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 é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 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 é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 é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 ( 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 é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 é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 é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 é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.
EP01995782A 2001-01-11 2001-12-21 Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif Withdrawn EP1350161A1 (fr)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
EP1350161A1 true EP1350161A1 (fr) 2003-10-08

Family

ID=8858678

Family Applications (1)

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

Country Status (3)

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

Cited By (1)

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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04116720A (ja) * 1990-09-07 1992-04-17 Hitachi Ltd 半導体装置
US5987131A (en) * 1997-08-18 1999-11-16 Picturetel Corporation Cryptographic key exchange using pre-computation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO02056171A1 *

Cited By (1)

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

Also Published As

Publication number Publication date
FR2819320B1 (fr) 2003-08-08
FR2819320A1 (fr) 2002-07-12
WO2002056171A1 (fr) 2002-07-18

Similar Documents

Publication Publication Date Title
WO2000059156A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
WO2002063821A1 (fr) Procede de cryptage securise et composant utilisant un tel procede de cryptage
EP3502899B1 (fr) Procédé de détermination d&#39;une somme d&#39;intégrité, programme d&#39;ordinateur et entité électronique associés
CA2732444C (fr) Circuit integre protege contre une analyse par canal auxiliaire horizontale
FR3095709A1 (fr) Procédé et système de masquage pour la cryptographie
EP1421473A1 (fr) Procede de calcul universel applique a des points d&#39;une courbe elliptique
EP2284690A2 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
EP0793165A1 (fr) Coprocesseur d&#39;arithmétique modulaire permettant de réaliser rapidement des opération non modulaires
EP1350161A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation, et procede de programmation et d&#39;utilisation du dispositif
EP2315388B1 (fr) Procédé sécurisé de calcul cryptographique et composant électronique correspondant.
EP2070234A2 (fr) Sécurisation de code pour entité personnelle
EP1715410B1 (fr) Protection d&#39;un calcul effectué par un circuit intégré
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
EP1804161A1 (fr) Détection de perturbation dans un calcul cryptographique
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
FR2818772A1 (fr) Procede de securisation d&#39;un operateur logique ou mathematique implante dans un module electronique a microprocesseur, ainsi que le module electronique et le systeme embarque associes
EP1804160B1 (fr) Protection d&#39;un calcul cryptographique effectué par un circuit intégré
WO2007010009A2 (fr) Integrite materielle permanente des donnees
EP1721246B1 (fr) Procede et dispositif pour accomplir une operation cryptographique
FR2823327A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation securisee et utilisation d&#39;un tel dispositif
FR2843506A1 (fr) Procede de calcul universel applique a des points d&#39;une courbe elliptique definie par une quartique, procede cryptographique et composant electronique associes
FR3004042A1 (fr) Procedes de generation et d&#39;utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
EP1639450A1 (fr) Procede de contre-mesure dans un composant electronique
FR2880148A1 (fr) Procede d&#39;exponentiation securisee et compacte pour la cryptographie
EP3729719B1 (fr) Procédé et module électronique de calcul d&#39;une quantité cryptographique, procédé et dispositif électronique de traitement d&#39;un message et programme d&#39;ordinateur associés

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030704

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20050419

18D Application deemed to be withdrawn

Effective date: 20051101