EP1360770A1 - Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente - Google Patents

Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente

Info

Publication number
EP1360770A1
EP1360770A1 EP02702450A EP02702450A EP1360770A1 EP 1360770 A1 EP1360770 A1 EP 1360770A1 EP 02702450 A EP02702450 A EP 02702450A EP 02702450 A EP02702450 A EP 02702450A EP 1360770 A1 EP1360770 A1 EP 1360770A1
Authority
EP
European Patent Office
Prior art keywords
sequence
sets
digits
expressed
digit
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
EP02702450A
Other languages
German (de)
English (en)
Inventor
Marc Joye
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales DIS France 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 EP1360770A1 publication Critical patent/EP1360770A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/04Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two

Definitions

  • the invention relates to a device and a method for representing and exploiting numbers, allowing optimization of their storage and algorithmic processing possibilities.
  • Simple binary coding uses two possible digits, 0 and 1, designated bits,. To express numbers in base 2.
  • a binary word of n bits therefore makes it possible to express 2 n different values (from 0 to 2 n -l inclusive) by as many possible combinations of bit values according to known rules.
  • This binary coding has the advantage of making it possible to establish a direct correspondence between each bit and an electrical signal element with two states, in accordance with digital technology (non-linear electronics).
  • the digits 0 or 1 can be represented respectively by a high level and a low voltage level of the signal element.
  • memories using elementary cells are used, each of which can be selectively positioned in one of these two states 0 or 1. In this way, a memory cell is sufficient to store a bit of a binary number .
  • NAF non-adjacent form
  • the coding of the digits in the NAF form is as follows: 0 ⁇ 00; 1 ⁇ 01; -1 s 11.
  • the NAF form therefore requires twice as much memory to store the same number.
  • the invention proposes a new coding of numbers making it possible to keep the algorithmic advantages of the representation of the numbers in the NAF form, while using substantially the same memory space for the storage of the numbers compared to a simple binary representation.
  • the invention proposes a device for processing digital values, comprising first storage means and transformation means, characterized in that the first storage means comprise at least one correspondence table or equivalent between on the one hand first sets of at least one digit, expressed according to a signed code where each digit can have the value of 0, 1 or -1, and on the other hand second sets of at least one digit, expressed in a simple form where each digit can have the value 0 or 1, and in that the means of transformation include:
  • extraction means for extracting from the correspondence table, for each set of figures resulting from the decomposition, the corresponding set of figures given by the correspondence table,
  • each of the sets thus mapped by said correspondence table have the same number of digits.
  • the first set of mapping table advantageously comprise one or two digits of which one of them, for example the first number is 0.
  • the correspondence table can establish the following correspondences between the first and second sets of digits: first set second set of digits of digits (0.1) (0.1) (0, -1) ⁇ r (1.1) ( 0) (0)
  • the correspondence table can also establish the following correspondences between the first and second sets of digits: first set second set of digits of digits
  • the transformation means can possibly add a digit 0 to the left of the sequence of input digits ⁇ k n , ..., k 2 , ki, k 0 > (ie in front of the number k n ) to form a sequence to be decomposed, the decomposition means identify therein the sets of figures appearing in the first sets of the table, starting from the set located the most on the right (ie- containing the number ko) and ending with the leftmost set (ie containing k n or the number 0 added), ' the compilation means forming a sequence, compiled, formed of simple binary digits, by gathering the second sets corresponding to these first sets, obtained by the extraction means, these second sets being placed according to the same topology as the first corresponding sets of the decomposed sequence.
  • the compilation means can then truncate the possible digit 0 at the head (i.e. on the left) of the compiled sequence before delivering it to the output means.
  • the transformation means can possibly add a digit 0 to the right of the sequence of digits ⁇ k n ,. ' .., k 2 , ki, k 0 > (ie after the number ko) to form a sequence to be decomposed, the decomposition means identify therein the sets of figures appearing in the first sets of the table, starting starting from the leftmost set (ie containing the number k n ) and ending with the most left set right (ie containing ko or the digit 0 added), the compilation means forming a compiled sequence, formed of simple binary digits, by bringing together the second sets corresponding to these first sets, obtained by the extraction means, these second sets being placed according to the same topology as the corresponding sets of the decomposed sequence.
  • the compilation means can then truncate the possible digit 0 at the end (i.e. on the right) of the compiled sequence before delivering it to the output means.
  • the output means can be connected to second storage means intended to store at least one sequence compiled as a sequence in compact coding of a corresponding value expressed in signed binary form.
  • the transformation means are configured to perform a reverse transformation in order to reproduce a value expressed in non-adjacent form from a compiled sequence.
  • the device also has processing means comprising:
  • the transformation means configured to perform a transformation of this sequence into a binary representation signed in non-adjacent form of the value k associated with this compiled sequence, and algorithmic calculation means operating with at least one variable expressed by a binary representation signed in non-adjacent form, provided by the transformation means.
  • the calculation means can be provided for, for example, performing scalar multiplication on an elliptical curve.
  • the transformation means can establish a transformation (R) of a value k expressed in simple binary mode towards a representation in binary mode signed in non-adjacent form (R (k)).
  • the transformation (R) permutes with the set ⁇ NAF (k)
  • the device can further comprise means for creating random numbers expressed in binary mode signed in non-adjacent form, the device having a random number generator of r bits which makes random numbers in binary form simple, these numbers being supplied to means for entering values to be processed, the transformation means establishing a transformation (R) of this number towards a binary mode representation signed in non-adjacent form (R (k)) and transmitted to the output means of the compiled sequence as a binary mode random number signed in non-adjacent form.
  • the device can further comprise algorithmic calculation means operating with at least one random number expressed by a binary representation signed in non-adjacent form, provided by the transformation means.
  • • algorithmic calculation means may be provided for performing cryptographic algorithms.
  • the cryptographic algorithm can be a key exchange algorithm, for example according to the Diffie-Hellman method on elliptic curves, or a data encryption algorithm, for example according to the ElGamal method on elliptic curves, where another digital signature algorithm, for example according to the ECDSA method (from the English Elliptic Curve Digital Signature Algorithm) on elliptic curves.
  • the invention relates to a smart card integrating the above-mentioned device.
  • the invention relates to the use of the above-mentioned device for the processing of digital values in signed binary mode expressed in non-adjacent form and the storage of these values in the form of a compiled sequence obtained by the compilation means.
  • the invention relates to a. process for processing digital values, characterized in that it comprises the steps of:
  • the invention relates to the use of the method in a smart card.
  • the invention relates to the processing of digital values in signed binary mode expressed in non-adjacent form and the storage of these values in the form of a compiled sequence obtained by the compilation step.
  • FIG. 1 is a simplified block diagram of algorithmic calculation means, integrated into a smart card, making it possible to implement the invention
  • FIG. 2 is a block diagram explaining the transformation of numbers from a non-adjacent form into compact coding of the "right-left" type according to the invention
  • - Figure 3 is a block diagram explaining the transformation of numbers from a non-adjacent form into compact coding of the "left-right" type according to the invention
  • - Figure 4 is a block diagram explaining an application of the invention for the exchange of keys in encryption according to the Diffie-Hellman method
  • - Figure 5 is a block diagram of message encryption according to the El Gamal method.
  • 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 comprises frozen data elements, but capable of varying from one recipient to another, and which are therefore stored in a portion of rewritable memory, and a cryptographic algorithm which is stored in a mask ROM memory.
  • This type of memory is preprogrammed during its design, at the level of lithographic masks.
  • the device 1 brings together 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:
  • an electrically reprogrammable memory of the EEPROM 6 type (from the English “electrically erasable programmable • ROM”), and a memory accessible for reading and writing of the RAM 8 type (from the English “random access memory”) or a EEPROM memory.
  • All of these memories 4, 6 and 8, as well as the central unit 2 can be produced on a single chip.
  • 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.
  • One of the functions of the calculation means 1 is to encrypt and decrypt confidential data respectively transmitted - to, and - received ' from, 1' outside.
  • the central unit 2 executes the cryptographic algorithm on the basis of programming data stored in the mask ROM 4 and EEPROM 6 parts.
  • the central processing unit is designed to execute cryptographic algorithms with values expressed in the non-adjacent form
  • Compacting the non-adjacent shapes according to the present invention can express them in a 'form the "compact coding" to be designated.
  • One of the characteristics of this compact coding is the absence of a systematic sign bit in the bits of the numbers thus represented. This results in an economy of storage of these numbers without compromising the efficiency of their algorithmic processing relative to a representation in non-adjacent form (NAF) classic.
  • NAF NAF
  • the compact coding according to the invention takes account of this specificity by carrying out a processing according to a coding table.
  • This example implements a form of compact coding according to the invention called "right” on the left “(or more simply” right-left ") 20 for reasons which will be apparent.
  • a correspondence table which makes it possible to obtain, from one or two digits of the non-adjacent form, corresponding digits of the compact coding.
  • This correspondence table can for example be stored in the mask ROM part 4 of the device 1.
  • Table I correspondence table for compact "right-left” coding.
  • NAF (29) ⁇ 1, 0, 0, -1, 0, 1>
  • the next digit of the NAF representation is -1; this one being non-zero, we consider the next digit (ie 0) and we replace the pair (0, -1) by (1,1) according to the rules of the table.
  • the next digit of the NAF representation is 0 (ie the fifth 0 starting from the right) '; it is replaced according to the table by 0.
  • NAF (29) ⁇ 1, 0, 0, -1, 0, 1> is cut from right to left in the series of blocks (0,1), (0), ' (0, - 1), (0,1), which are transformed by the correspondence table into (0,1),
  • the compact representation of NAF (29) is 0101101.
  • the 0 located at the left end can possibly be truncated to obtain the representation 101101. Thanks to the compact coding of the invention, we again find the coding storage efficiency that we have with a simple binary representation. Indeed, storing a number in its non-adjacent recoded form (ie compact) requires at most one more bit than storing the ' same number in its classic binary form.
  • Decoding is also done from the same conversion table as for coding, but where the inputs and outputs have been swapped, cf. table I.b infra.
  • Table Ib correspondence table for compact "right-left" decoding Digits in the Compact coding sequence
  • the compact coding of NAF (29) is ⁇ 1, 0, 1, 1, 0, 1>. Starting from the right, we scan the first digit (ie the 1 plus the rightmost).
  • Table II correspondence table for compact coding "left-right”.
  • this table makes it possible to delete the negative digits of the NAF form.
  • the compact form "left-right” from the NAF representation is obtained from the . same as to obtain the compact form "right-left", except that the figures of the NAF representation are now scanned from left to right and that table I above is replaced by table II.
  • the last digit scanned in the representation is not zero, we can artificially add a 0 after the decimal point to be able to apply the correspondence table.
  • the figure after the decimal point is zero, it can be ignored.
  • NAF (29) ⁇ 1,0,0, -1,0,1.0>.
  • the first digit is 1 (ie the leftmost).
  • the next digit ie the second digit 0 starting with left) .
  • the correspondence table transforms the pair of digits (1,0) into (1,0).
  • the next digit of the NAF representation is 0.
  • the correspondence table matches it (0).
  • the next digit of the NAF representation is -1; we therefore scan the next digit which is 0.
  • the correspondence table matches the pair (1.1).
  • the next digit of the NAF representation is 1 followed by the decimal point and O.
  • the correspondence table associates with the pair (1,0) the pair (1,0).
  • the compact form "left-right” 100111.0.
  • the figure after the decimal point being zero, it can be ignored and we finally obtain 100111.
  • N 29 with a compact representation "left-right” given by ⁇ 1, 0, 0, 1, 1, 1.0>. (Note the artificial Q after the decimal point), we scan the figures on the left to the right of this representation by applying the rules of the correspondence table to successively obtain the blocks (1,0), (0), (-1,0) and (1,0).
  • This integer when returned in an initial form by hardware (hardware) or software (software) means is in its simple binary representation of a number r of bits.
  • Table III representations of a three-bit number k in its binary form, NAF (k) and R (k). k NAF (k) R (k)
  • the right-left compact coding as described above transforms the binary representations for k ranging from 0 to 7 according to the following table:
  • the invention is' particularly interesting for calculations on elliptic curves where non-adjacent representations are used advantageously.
  • a first example concerns the exchange of keys in the cryptographic domain, according to the Diffie-Hellman method, the main steps of which are recalled in the block diagram of FIG. 4.
  • A sends the value of Y A to B, and B sends the value of Y B to A.
  • Their common key is the key K AB - [x A .x B ] G.
  • A obtains this key by calculating [X A. ] Y B , that is to say its secret x A times the value y B received from B.
  • B calculates [x B ] y A , and reaches the same result.
  • the invention is not limited to elliptical curves.
  • Another example of application of the invention relates to encryption. The goal is then to allow B to send a message to A, with the condition that only A must be able to decipher it. This example will be described under 'encryption according ElGamal, whose main stages are recalled in the block diagram of Figure 5.
  • A has public parameters, namely an elliptical curve E on F q , a point G on a curve, and another point Y A.
  • A also has a secret value x A.
  • B sends Ci and C 2 to A, ie the encrypted text which corresponds to the encrypted message m.
  • A calculates C 2 - [x A ] Cl, where x A is its secret.
  • A will find point M, from which it can find the corresponding message.
  • the compact coding technique according to the invention can be applied, in reverse form, for the treatment of the random number k.
  • the result thus obtained is interpreted as a non-adjacent form of the random number k, from which the calculations are made.
  • This aspect of the invention is also interesting at the level of A, who needs to know his key x A. Ordinarily, one calculates the NAF of this key, this one being used for the algorithms. Again, A can represent its secret key x A by the more compact representation (space saving). It then stores the compact form and not its classic binary representation.
  • Algorithm This is the standard for signatures on curved elliptical.
  • the invention can also be used in many other arithmetic applications, particularly for multiplication or exponentiation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

L'invention utilise une table de correspondance entre d'une part des premiers ensembles d'au moins un chiffre, exprimés selon un code signé où chaque chiffre peut avoir la valeur de 0, 1 ou -1, et d'autre part des seconds ensembles d'au moins un chiffre, exprimés selon une forme simple où chaque chiffre peut avoir la valeur 0 ou 1. A partir de cette table, on effectue une transformation grâce à des moyens comprenant: - des moyens de décomposition pour décomposer ladite séquence de chiffres en ensembles de chiffres figurant dans ladite table de correspondance; - des moyens d'extraction pour extraire à partir de ladite table de correspondance ou equivalent, pour chaque ensemble de chiffres issu de la décomposition, l'ensemble de chiffres correspondant donné par ladite table de correspondance, et- des moyens de compilation pour compiler une séquence de chiffres à partir des ensembles ainsi extraits par les moyens d'extraction, L'invention sert notamment dans divers algorithmes, tels qu'en cryptographie, par exemple pour stocker des valeurs en mode binaire signé sous forme non-adjacente sous forme compacte avec seulement les chiffres 0, 1, et/ou à produire rapidement des nombres aléatoires sous cette forme non-adjacente.

Description

DISPOSITIF ET PROCEDE DE TRAITEMENT DE VALEURS NUMERIQUES, NOTAMMENT SOUS FORME NON-ADJACENTE
L'invention concerne un dispositif et un procédé de représentation et d'exploitation de nombres, autorisant une optimisation de leurs possibilités de stockage et de traitement algorithmique.
En électronique numérique classique, on utilise le codage binaire simple pour exprimer des nombres, ces derniers pouvant correspondre à des valeurs numériques arithmétiques ou à des ' commandes, etc. Le codage binaire simple utilise deux chiffres possibles, 0 et 1, désignés bits, .pour exprimer les nombres en base 2. Un mot binaire de n bits permet donc d'exprimer 2n valeurs différentes (de 0 à 2n-l inclus) par autant de combinaisons possibles de valeurs de bits selon des règles connues. Ce codage binaire a l'avantage de permettre d'établir une correspondance directe entre chaque bit et un élément de signal électrique à deux états, conformément à la technologie numérique (électronique non-linéaire) . Par exemple, les chiffres 0 ou 1 peuvent être représentés respectivement par un niveau haut et un niveau bas de tension de l'élément de signal.
Pour le stockage de nombres, on utilise des mémoires comportant des cellules élémentaires, chacune pouvant être positionnée sélectivement à l'un parmi ces deux états 0 ou 1. De la sorte, une cellule de mémoire suffit pour stocker un bit d'un nombre binaire.
Il existe aussi une façon d'écrire des nombres qui utilise les chiffres 0, 1 et -1, selon la représentation dite de "chiffre binaire signé" (en anglais, "binary signed digit représentation") . Dans cette représentation, un nombre entier k est une séquence de chiffres <... , k2, ki, k0> avec k± e{0,l,-l}. On peut donc écrire k = ∑kι21 pour i = 0 à ∞. Dans ce cas, l'écriture d'un nombre n'est pas forcément unique. Par exemple, l'ensemble {0,1,-1} peut servir pour exprimer le nombre 3 par <1,1> (soit 21+2°) ou par <1,0,-1> (soit 22-2°) . Une forme particulière de chiffre binaire signé est connue sous l'appellation de "forme non-adjacente", que l'on désignera ci-après NAF (de l'anglais "non- adjacent form") . Une représentation NAF a la propriété • suivante: le produit de deux chiffres consécutifs i et ki+i est toujours nul. On a donc la condition : ki . ki+i = 0 , pour tout i ( 1 )
Il a été démontré par Reit iesner ("Binary Artithmetic", Advances in Computers, vol.l, pp.231-308, i960) d'une part. que tout entier a exactement une seule représentation NAF, et d'autre part que la représentation NAF a le poids de Hamming minimal. Dit autrement, pour exprimer une valeur numérique, la forme non-adjacente utilise le plus petit nombre possible de chiffres non-nuls (soit 1 et -1) . Cette propriété est intéressante lorsque les valeurs sont exploitées dans des algorithmes qui font beaucoup appel à des multiplications ou à des additions sur des ensembles notés de façon additive, tels que des algorithmes d'exponentiation rapides, y compris sur des courbes elliptiques, . En effet, plus il y a de chiffres 1 et -1 dans la représentation du nombre à traiter, plus l'algorithme est coûteux en termes de ressources' matériel et de temps d'exécution. On cherche alors les représentations qui contiennent une forte proportion de 0.
Cependant, la représentation des nombres en forme NAF a l'inconvénient de nécessiter deux fois plus de bits, du fait que pour chaque chiffre 0,1,-1, un bit supplémentaire doit être associé pour • indiquer le signe. Ainsi, pour chaque chiffre, on utilise un premier bit pour indiquer le signe, et un second bit pour exprimer la grandeur associée à ce signe. -
Dans un protocole courant, le codage des chiffres dans la forme NAF est le suivant : 0 ≡ 00 ; 1 ≡ 01 ; -1 s 11.
Par rapport au -codage binaire classique (0 et 1 seulement) , la forme NAF nécessite donc deux fois plus de mémoire pour stocker un même nombre.
On a donc deux possibilités lorsque l'on considère un nombre pour traitement en forme NAF :
Ou bien on stocke en mémoire les nombres en forme binaire simple et on ne réalise qu'ultérieurement le codage vers sa forme non-adjacente, afin de bénéficier de ' la forme la plus compacte pour le stockage. Dans ce cas, il est nécessaire de disposer d'un espace mémoire adéquat (par exemple en mémoire figée du type ROM) pour contenir l'algorithme nécessaire au codage en temps réel de la forme non- adjacente. Par ailleurs, l'exécution de l'algorithme de codage vers la forme NAF entraîne un délai indésirable ;
- Ou bien on stocke les nombres directement sous leur forme NAF, celle-ci étant codée au préalable. Dans ce cas, on utilise deux fois plus de mémoire pour stocker chaque nombre.
Au vu de ce qui précède, l'invention propose un nouveau codage de nombres permettant de garder les avantages algorithmiques de la représentation des nombres dans la forme NAF, tout ' en utilisant sensiblement le même espace de mémoire pour le stockage des nombres par rapport à une représentation binaire simple.
Selon un premier aspect, l'invention propose un dispositif de traitement de valeurs numériques, comprenant des premiers moyens de mémorisation et des moyens de transformation, caractérisé en ce que les premiers moyens de mémorisation comportent au moins une table de correspondance ou équivalent entre d'une part des premiers ensembles d'au moins un chiffre, exprimés selon un code signé où chaque chiffre peut avoir la valeur de 0, 1 ou -1, et d'autre part des seconds ensembles d'au moins un chiffre, exprimés selon une forme simple où chaque chiffre peut avoir la valeur 0 ou 1, et en ce que les moyens de transformation comprennent :
- des moyens d'entrée de valeurs à traiter sous forme de séquence de chiffres ;
- des moyens de décomposition pour décomposer la séquence de chiffres en ensembles de chiffres figurant dans la table de correspondance ;
- des moyens d'extraction pour extraire à partir de la table de correspondance, pour chaque ensemble de chiffres issu de la décomposition, l'ensemble de chiffres correspondant donné par la table de correspondance,
- des moyens de compilation pour compiler une séquence de chiffres à partir des ensembles ainsi extraits par les moyens d'extraction, et - des moyens de sortie de la séquence compilée par les moyens de compilation.
Dans un mode de réalisation préféré, chacun des ensembles ainsi mis en correspondance par ladite table de correspondance ont un même nombre de chiffres. De préférence, les moyens de transformation traitent des valeurs k exprimées en mode binaire signé sous forme non-adjacente,- formées d'une séquence de chiffres <... , k2, ki, k0> avec k = ∑jb1, ou b est un symbole quelconque, les ki sont dans l'ensemble {0,1,-1} et satisfont la condition ki. i+i = 0 pour tout i de la séquence .
Par exemple,' on peut avoir b = 2, donnant k = ∑ki2i. Les premiers ensembles de la table de correspondance comprennent avantageusement un ou deux chiffres dont l'un d'eux, par exemple le premier chiffre, est 0.
La table de correspondance peut établir les correspondances suivantes entre les premiers et second ensembles de chiffres : premier ensemble second ensemble de chiffres de chiffres (0,1) (0,1) (0,-1) <r (1,1) (0) (0)
La table de correspondance peut aussi établir les correspondances suivantes entre les premiers et second ensembles de chiffres : premier ensemble second ensemble de chiffres de chiffres
(1,0) ->. (1,0) (-1,0) (1,1) (0) <-> (0) Le dispositif peut être prévu pour accepter en entrée et traiter une valeur k exprimée sous une forme binaire signée, formée d'une séquence de chiffres <... , k2, ki, ko> avec k dans l'ensemble {0, 1, -1} et satisfaisant la condition ki.ki+i = 0, pour tout i de la séquence, les moyens de décomposition produisant à partir de cette valeur au moins un premier ensemble de chiffres de la table de correspondance, les moyens d'extraction obtenant de celle-ci au moins un second ensemble de chiffres correspondant, et les moyens de' compilation formant une séquence à partir du ou des second(s) ensemble(s) ainsi extrait (s).
Dans ce cas, en utilisant la première table de correspondance mentionnée ci-dessus, les moyens de transformation peuvent éventuellement ajouter un chiffre 0 à la gauche de la séquence de chiffres en entrée <kn, ... , k2, ki, k0> (i.e. devant le chiffre kn) pour former une séquence à décomposer, les moyens de décomposition identifient dans celle-ci les ensembles de chiffres figurant dans les premiers ensembles de la table, en commençant à partir de l'ensemble situé le plus à droite (i.e.- contenant le chiffre ko) et en finissant avec l'ensemble le plus à gauche (i.e. contenant kn ou le chiffre 0 ajouté),' les moyens de compilation formant une séquence, compilée, formée de chiffres binaires simples, en rassemblant les seconds ensembles correspondant à ces premiers ensembles, obtenus par les moyens d'extraction, ces seconds ensembles étant placés selon la même topologie que les premiers ensembles correspondants de la séquence décomposée.
Les moyens de compilation peuvent alors tronquer l'éventuel chiffre 0 en tête (i.e. à gauche) de la séquence compilée avant de délivrer celle-ci aux moyens de sortie.
Lorsque l'on met en oeuvre la deuxième table de correspondance ci-dessus, les moyens de transformation peuvent éventuellement ajouter un chiffre 0 à la droite de la séquence de chiffres <kn, . '.. , k2, ki, k0> (i.e. après le chiffre ko) pour former une séquence à décomposer, les moyens de décomposition identifient dans celle-ci les ensembles de chiffres figurant dans les premiers ensembles de la table, en commençant à • partir de l'ensemble situé le plus à gauche (i.e. contenant le chiffre kn) et en finissant avec l'ensemble le plus à droite (i.e. contenant ko ou le chiffre 0 ajouté), les moyens de compilation formant une séquence compilée, formée de chiffres binaires simples, en rassemblant les seconds ensembles correspondant à ces premiers ensembles, obtenus par les moyens d'extraction, ces seconds ensembles étant placés selon la même topologie que les ensembles correspondants de la séquence décomposée.
Les moyens de compilation peuvent alors tronquer l'éventuel chiffre 0 en fin (i.e. à droite) de la séquence compilée avant de délivrer celle-ci aux moyens de sortie.
Les moyens de sortie peuvent être reliés à des deuxièmes moyens de mémorisation destinés à stocker au moins une séquence compilée en tant que séquence en codage compact d'une valeur correspondante exprimée sous forme binaire signée.
Les moyens de transformation sont configurés pour réaliser une transformation inverse afin de reproduire une valeur exprimée en forme non-adjacente à partir d'une séquence compilée.
Dans un mode de réalisation, le dispositif a en outre des moyens dé traitement comprenant :
- des moyens d'accès aux deuxièmes moyens de mémorisation pour fournir aux moyens d'entrée une séquence compilée, les moyens de transformation configurés pour effectuer une transformation de cette séquence en une représentation binaire signée sous forme non- adjacente de la valeur k associée à cette séquence compilée, et des moyens de calcul algorithmiques fonctionnant avec au moins une variable exprimée par une représentation binaire signée sous forme non- adjacente, fournie par les moyens de transformation.
Dans ce cas, les moyens de calcul peuvent être prévus pour, par exemple, réaliser une multiplication scalaire sur une courbe elliptique.
Les moyens de transformation peuvent établir une transformation (R) d'une valeur k exprimée en mode binaire simple vers une représentation en mode binaire signé sous forme non-adjacente (R(k)). Avantageusement,, la transformation (R) permute avec l'ensemble {NAF(k) |k e{0,l}r}, où r est le nombre maximum de chiffres binaires simples pouvant exprimer la valeur k en base 2, et NAF(k) correspond à l'expression de la valeur k en mode binaire signé sous forme non-adjacente.
Le dispositif peut en outre comprendre des moyens de création de nombres aléatoires exprimés en mode binaire signé sous forme non-adjacente, le dispositif ayant un générateur de nombres aléatoires de r bits qui rend des nombres aléatoires sous forme binaire simple, ces nombres étant fournis aux moyens d'entrée de valeurs à traiter, les moyens de transformation établissant une transformation (R) de ce nombre vers une représentation en mode binaire signé sous forme non-adjacente (R(k)) et transmise aux moyens de sortie de la séquence compilée en tant que nombre aléatoire en mode binaire signé sous forme non-adjacente.
Dans ce cas, le dispositif peut comprendre en outre des moyens de calcul algorithmiques fonctionnant avec au moins un nombre aléatoire exprimé par une représentation binaire signée sous forme non-adjacente, fournie par les moyens de transformation.
A titre d'exemple, les moyens de calcul algorithmiques peuvent être prévus pour réaliser des algorithmes cryptographiques. L'algorithme cryptographique peut être un algorithme d'échange de clés, par exemple selon la méthode de Diffie-Hellman sur les courbes elliptiques, ou un algorithme de chiffrement de données, par exemple selon la méthode d'ElGamal sur les courbes elliptiques, où encore un algorithme de signature digitale, par exemple selon la méthode ECDSA (de l'anglais Elliptic Curve Digital Signature Algorithm) sur les courbes elliptiques . Selon un deuxième aspect, l'invention concerne une carte à puce intégrant le dispositif précité.
Selon un troisième aspect, l'invention concerne l'utilisation du dispositif précité pour le traitement de valeurs numériques en mode binaire signé exprimées sous forme non-adjacente et le stockage de ces valeurs sous forme de séquence compilée obtenue par les moyens de compilation.
Selon un quatrième aspect, l'invention concerne un. procédé de traitement de valeurs numériques, caractérisé en ce que qu'il comprend les étapes de :
- établir au moins une table de correspondance entre d'une part des premiers ensembles d'au moins un chiffre, exprimés selon un code binaire signé où chaque chiffre peut avoir la valeur de 0, 1 ou -1, et d'autre part des seconds, ensembles d'au moins un chiffre, exprimés selon une forme binaire simple où chaque chiffre peut avoir la valeur 0 ou 1, et
- réaliser une transformation par les étapes de :
- prendre en entrée de valeurs à traiter sous forme de séquence de chiffres ; décomposer la séquence de chiffres en ensembles de chiffres figurant dans la table de correspondance ; extraire à partir de la table de correspondance, pour chaque ensemble de chiffres issu de la décomposition, l'ensemble de chiffres correspondant donné par la table de correspondance, - compiler une séquence de chiffres à partir des ensembles ainsi extraits, et
- sortir la séquence compilée par les moyens de compilation.
Les caractéristiques optionnelles évoquées plus haut dans le cadre du dispositif s'appliquent mutatis mutandis à ce procédé.
Selon un cinquième aspect, l'invention concerne l'utilisation du procédé dans une carte à puce.
Selon un sixième aspect, l'invention concerne le traitement de valeurs numériques en mode binaire signé exprimées sous forme non-adjacente et le stockage de ces valeurs sous forme de séquence compilée obtenue par l'étape de compilation.
L'invention et les avantages qui en découlent seront mieux compris à la lecture des modes de réalisation préférés, donnés purement à titre d'exemples" non-limitatifs, par référence aux dessins annexés dans lesquels :
- la figure 1 est un schéma bloc simplifié de moyens de calcul algorithmiques, intégrés à une carte à puce, permettant de mette en oeuvre l'invention ;
- la figure 2 est un schéma synoptique expliquant la transformation de nombres d'une forme non-adjacente en codage compact du type "droite-gauche" conformément à 1 ' invention ;
- la figure 3 est un schéma synoptique expliquant la transformation de nombres d'une forme non-adjacente en codage compact du type "gauche-droite" conformément à l'invention ; - la figure 4 est un schéma synoptique expliquant une application de l'invention pour l'échange de clés dans le chiffrement selon la méthode Diffie-Hellman ; et - la figure 5 est un schéma synoptique de chiffrement de message selon la méthode El Gamal .
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 comprend des éléments de données figés, mais susceptibles de varier d'un destinataire à un autre, et qui sont de ce fait stockées dans une portion de mémoire ré-inscriptible, et un algorithme cryptographique qui est stocké dans une mémoire ROM masque. Ce type de mémoire est préprogrammé lors de sa conception, au niveau des masques lithographiques.
Dans l'exemple, le dispositif 1 réunit dans une puce des moyens programmés ' pour l'exécution de calculs (moyens de calcul), composés d'une unité centrale (UC) 2 reliée fonctionnellement à un ensemble de mémoires dont:
- une mémoire accessible en lecture seulement, du type ROM masque 4, aussi connue sous l'appellation ' anglaise "mask read-only memory (mask ROM)",
- 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") ou une mémoire EEPROM.
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. L'une des fonctions des moyens de calcul 1 est de chiffrer et de déchiffrer des données confidentielles respectivement transmises - vers, et - reçues ' de, 1 ' extérieur.
A cette fin, l'unité centrale 2 exécute l'algorithme cryptographique à partir de données de programmation stockées dans les parties ROM masque 4 et EEPROM 6.
Conformément à l'invention, l'unité centrale est prévue pour exécuter des algorithmes cryptographiques avec des valeurs exprimées sous la forme non-adjacente
(NAF) décrite en introduction, mais après une transformation de compactage dont les principes seront maintenant décrits.
Le compactage des formes non-adjacentes conformément à la présente invention permet d'exprimer celles-ci sous une ' forme que l'on désignera de "codage compact". L'une des caractéristiques de ce codage compact est l'absence de bit de signe systématique dans les bits des nombres ainsi représentés. Il en résulte une économie de stockage de ces nombres sans nuire pour autant à l'efficacité de leur traitement algorithmique relativement à une représentation sous forme non- adjacente (NAF) classique.
Le processus de représentation de nombres sous forme de codage compact est réalisé à partir d'un nombre N préalablement exprimé sous forme non- adjacente, que l'on désignera NAF(N).
La représentation NAF(N) du nombre N a donc la forme générale k = ∑ki∑1, avec ki e{ 0,1,-1}, et la condition ki.ki+i = 0, pour tout i (cf. expression (1) supra) .
La méthode de conversion d'un nombre exprimé en binaire simple vers sa forme non-adjacente est connue, 5 notamment par l'article de Reitwiesner cité en introduction.
On remarque que dans la forme NAF(N), du fait que le produit de deux chiffres adjacents est toujours nul, le chiffre 1 est toujours suivi (et précédé) d'un 0, et
1.0 de même le chiffre -1 est toujours suivi (et précédé) d'un 0.
Le codage compact selon l'invention tient compte de cette spécificité en effectuant un traitement selon une table de codage. 15 Ce traitement sera décrit dans le cadre d'un cas concret, en l'occurrence le cas de N = 29, par référence à la figure 2. Cet exemple met en oeuvre une forme de codage compact selon l'invention dit "de droite à gauche" (ou plus simplement "droite-gauche") 20 pour des raisons qui seront apparentes.
A la base du codage compact se trouve une table de correspondance qui permet d'obtenir, à partir d'un ou deux chiffres de la forme non-adjacente, des chiffres correspondants du codage compact. Cette table de 25 correspondance peut être par exemple stockée dans la partie ROM masque 4 du dispositif 1.
Dans le cas du mode de réalisation envisagé pour le codage compact "droite-gauche", la table de correspondance est la suivante (cf. figure 2, section 30 I) .
Tableau I : table de correspondance pour le codage compact "droite-gauche".
Chiffre dans la Forme codage compact séquence NAF "droite-gauche" ( 0 , 1 ) ( 0 , 1 )
( 0 , -1 ) r> ( 1 , 1 )
( 0 ) <r> ( 0 )
Pour réaliser le codage compact droite-gauche d'un nombre en représentation NAF(N), on applique les règles de conversion de cette table, en commençant les opérations par les chiffres situés à droite et en allant vers la gauche de l'expression NAF.
Ainsi, pour l'exemple du nombre 29 (dont la représentation binaire simple est 11101), on obtient d'abord sa forme NAF par exemple selon la méthode de Reitwiesner, , qui donne <1 0 0 -1 0 1> (figure 2 , section II) .
Dans la séquence NAF, on identifie, en scannant tous les chiffres de la représentation de la droite vers la gauche, les occurrences (0,1), (0,-1) et (0) et on les remplace accordément à la table par leurs correspondants en' codage compact (0,1), (1,1) et (0), respectivement. Il est à noter qu'à chaque étape, un ou deux chiffres de la représentation NAF sont traités. Il y a un seul chiffre traité lorsque c'est un 0 et deux chiffres lorsque le premier chiffre est non nul. Dans ce dernier cas, par la propriété de non-adjacence, le deuxième chiffre de la paire de chiffres traités est forcément 0. On passe alors au chiffre suivant de la représentation NAF et on obtient finalement de part en part toute la représentation en codage compact. Il est possible que le dernier chiffre à scanner (balayer) de la représentation NAF est 1 ou -1 ; on ajoute dans ce cas un 0 artificiel devant ce chiffre pour remplacer, suivant la table, la paire (0,1) par (0,1) ou la paire
(0,-1) par (1,1). La représentation compacte finale
' est obtenue en concaténant- les différents codages compacts ainsi obtenus, en respectant l'ordre. Dans le cas où le dernier chiffre (i.e. le chiffre le plus à gauche) de la représentation compacte finale est 0, il peut être ignoré.
Appliqué à l'exemple NAF (29) = <1, 0, 0, -1, 0, 1>, on scanne (balaye) d'abord le premier chiffre à droite (i.e. 1) . Comme celui-ci est non-nul, on scanne le chiffre suivant (i.e. le deuxième chiffre en commençant par la droite, 0) et suivant la table, on remplace la paire (0,1) par (0,1). Le chiffre suivant de la représentation NAF est -1 ; celui-ci étant non-nul, on considère le chiffre suivant (i.e. 0) et on remplace la paire (0,-1) par (1,1) suivant les règles de la table. Le chiffre suivant de la représentation NAF est 0 (i.e. le cinquième 0 en commençant par la droite)' ; on- le remplace suivant la table par 0. Enfin, le chiffre suivant de la représentation NAF est 1 (i.e. le sixième chiffre en commençant par la droite) . Comme expliqué ci-dessus, on ajoute un 0 artificiel devant lui et, suivant la table, on transforme la paire obtenue (0,1) par (0,1). En résumé, NAF(29) = <1, 0, 0, -1, 0, 1> est découpé de la droite vers la gauche en la série de blocs (0,1), (0),' (0,-1), (0,1), lesquels sont transformés par la table de correspondance en (0,1),
(0), (1,1), (0,1). Le codage compact final est alors obtenu en concaténant de la droite vers la gauche ces différents blocs obtenus, en respectant leur ordre. Ainsi, la représentation compacte de NAF (29) est 0101101. En fin de codage, le 0 se trouvant à l'extrémité gauche peut éventuellement être tronqué pour obtenir la représentation 101101. Grâce au codage compact de l'invention, on trouve à nouveau l'efficacité de stockage du codage que l'on a avec une représentation binaire simple. En effet, le stockage d'un nombre dans sa forme non-adjacente recodée (i.e. compacte) nécessite au plus un bit de plus que le stockage du' même nombre sous sa forme binaire classique.
Dans la pratique, ce que l'on stocke pour un nombre est une suite binaire de son codage compact. Par exemple, pour le nombre 29, on stocke la suite binaire 101101 (lire de droite à gauche) . Ce dont on a besoin pour les calculs est la forme non-adjacente du chiffre. Pour ce faire, on procède en sens inverse.
Le décodage se fait également de la même table de conversion que pour le codage, mais où les entrées et sorties ont été permutées, cf. tableau I.b infra.
Tableau Ib : table de correspondance pour le décodage compact "droite-gauche" Chiffres dans la Séquence codage compact
"droite-gauche" Forme NAF
(0,1) (0,1)
(1,1) (0,-1)
(0) (0) Tout comme pour le codage, les chiffres de la représentation sous forme de codage compact "droite- gauche" sont scannés de la droite vers la gauche.
Dans cette séquence de chiffres, on identifie les occurrences (0,1), (1,1) et (0), et on les remplace respectivement, conformément à la table, par (0,1), (0,-1) et (0). En concaténant les blocs ainsi obtenus, on retrouve la représentation sous forme de NAF correspondante. Comme précédemment, si le dernier chiffre scanne de la forme compacte est non nul, on peut ajouter un 0 devant lui pour pouvoir appliquer les règles de la table de correspondance. Enfin, si le dernier chiffre (i.e. le chiffre le plus à gauche) de la forme NAF résultante est nul, il peut être ignoré.
Ainsi, le codage compact de NAF (29) est <1, 0, 1, 1, 0, 1>. En partant de la droite, on scanne le premier chiffre (i.e. le 1 plus le plus à droite).
Comme il est non nul, on scanne le chiffre suivant
(i.e. le deuxième chiffre 0 en commençant par la droite)-. La table de correspondance associe à la paire de chiffres (0,1) la paire de chiffres (0,1). On scanne ensuite le chiffre suivant de la forme compacte
(i.e. le troisième chiffre 1 en commençant par la droite) . Celui-ci étant non nul, on scanne le chiffre suivant (i.e. le quatrième 1 en commençant par la droite) . La table de correspondance associe la paire
(1,1) avec la paire (0,-1) . Le chiffre suivant que l'on scanne dans la représentation compacte est 0 (i.e. le cinquième chiffre 0 en commençant par la droite) .
Celui-ci étant nul, par la table de correspondance, on lui associe (0) . Le chiffre suivant de la représentation compacte est 1 (i.e. le sixième 1 en commençant par la droite) . On ajoute artificiellement un 0 devant lui et, par la table de correspondance, on associe la paire (0,1) à la paire (0,1). Finalement, on obtient la représentation NAF en concaténant, en respectant l'ordre, de la droite vers la gauche les blocs obtenus par la table de correspondance : (0,1),
(0), (0,-1), (0,1) concaténés, donnant <0, 1,0,0, -
1,0, 1>. Le chiffre le plus à gauche étant nul, il peut être tronqué et on retrouve finalement NAF (29) =
<1,0,0,-1,0,1>.
Dans le cas du mode de réalisation envisagé pour le ' codage compact "gauche-droite", la table de correspondance est la suivante (cf. figure 3, section I) .
Tableau II : tableau de correspondance pour le codage compact "gauche-droite" .
Chiffre dans la Forme codage compact séquence NAF "gauche-droite" (1,0) <-» (1,0)
(-1,0) (1,1)
(0) (0) Comme pour le cas du codage "droite-gauche", cette table permet de supprimer les chiffres négatifs de la forme NAF.
Pour réaliser le codage compact "gauche-droite" d'une représentation NAF(N), on applique les règles de conversion de cette table, en commençant les opérations par la portion gauche de l'expression NAF, en se dirigeant vers la droite.
On considérera de nouveau l'exemple du nombre 29, dont la forme NAF selon la méthode de Reitwiesner est <1 0 0 -1 0 1> (figure 3, section II.).
L'obtention de la forme compacte "gauche-droite" à partir de la représentation NAF se fait de la. même façon que pour obtenir la forme compacte "droite- gauche", si ce n'est que les chiffres de la représentation NAF sont maintenant scannés de la gauche vers la droite et que le tableau I supra est remplacé par le tableau II. De plus, si le dernier chiffre scanne de la représentation est non nul, on pourra ajouter de façon artificielle un 0 après le point décimal pour pouvoir appliquer la table de correspondance. Enfin, si dans la représentation compacte donnée en concaténant les différents blocs ainsi obtenus par la table de correspondance, de la gauche vers la droite, le chiffre après le point décimal est nul, il pourra être ignoré.
Avec le 0 artificiel après le point décimal, on a NAF(29) = <1,0,0,-1,0,1.0>. En commençant par la gauche, le premier chiffre est 1 (i.e. le plus à gauche) . Comme il est non nul, on scanne le chiffre suivant (i.e. le deuxième chiffre 0 en commençant par la gauche) . La table de correspondance transforme la paire de chiffres (1,0) en (1,0). Le chiffre suivant de la représentation NAF est 0. La table de correspondance lui fait correspondre (0) . Le chiffre suivant de la représentation NAF est -1 ; on scanne donc le chiffre suivant qui est 0. A la paire (-1,0), la table de correspondance fait correspondre la paire (1,1). Le chiffre suivant de la représentation NAF est 1 suivi du point décimal et de O. La table de correspondance associe à la paire (1,0) la paire (1,0). En concaténant dé la gauche vers la droite les blocs obtenus, on obtient la forme compacte "gauche-droite" 100111.0. Le chiffre après le point décimal étant nul, il peut être ignoré et on obtient finalement 100111. A partir du codage "gauche-droite", on retrouve la forme non-adjacente associée en procédant de façon inverse. Encore sur l'exemple N = 29 avec une représentation compacte "gauche-droite" donnée par <1, 0, 0, 1, 1, 1.0> .(noter le Q artificiel après le point décimal) , on scanne les chiffres de gauche à droite de cette représentation en appliquant les règles de la table de correspondance pour obtenir de façon successive les blocs (1,0), (0), (-1,0) et (1,0).
La concaténation donne <1, 0, 0, -1, 0, 1.0> dont on peut ignorer le 0 qui suit le point décimal, et on retrouve NAF(29) = <1, 0, 0, -1, 0, 1>.
Le codage compact des formes non-adjacentes selon l'invention trouve de nombreuses applications industrielles, dont quelques unes sont évoquées dans ce qui suit.
En cryptographie, il est fréquent de prendre un nombre aléatoire k et de calculer la valeur y = g dans un groupe donné, par exemple le groupe multiplicatif d'un corps fini ou les points d'une courbe elliptique définie sur un corps.
On requiert alors un nombre k aléatoire uniformément distribué, par exemple pour calculer sur une courbe elliptique k fois un point P. Pour tout ce qui concerne des opérations d'exponentiation (ou de multiplication) , il peut être souhaitable que le nombre k soit sous la forme d'un NAF (car il a un nombre minimal ' de chiffres non nuls, et le calcul est alors d'autant plus rapide).
Prenons le cas d'un nombre aléatoire entier k.
Cet entier, lorsqu'il est retourné dans une forme initiale par les moyens matériels (hardware) ou logiciel (software) est dans sa représentation binaire simple d'un nombre r de bits.
Grâce au codage conforme à l'invention, il est possible de produire ce nombre aléatoire k rapidement dans une forme non-adjacente que l'on note R(k), sans avoir à réaliser une conversion selon la méthode de Reitwiesner.
Pour ce faire, on choisit un nombre k dans le domaine {0,1}E, exprimé en forme binaire simple. On applique à la suite de bits de cette séquence binaire la transformation inverse de la transformation droite- gauche (cf. tableau Ib) , soit :
(0,1) → (0,1) ; (1,1) -» (0,-1) ; (0) → (0). Si, lors de cette transformation, le chiffre le plus significatif de la représentation est -1, on étoffe cette représentation avec un ou des 0 jusqu'à la position (r-1) , et on ajoute un 1 à la position r.
L'ensemble de la représentation ainsi obtenue sera désigné par le terme "représentation R" .
A titre d'exemple, supposons que l'on prenne un nombre aléatoire de trois bits. Toutes les possibilités de 0 à 7 de ce groupement de trois bits sont listées dans le tableau III ci-après.
Tableau III: représentations d'un nombre k de trois bits dans sa forme binaire, NAF(k) et R(k) . k NAF(k) R(k)
02 <0> 0 12 <1> 1 102 <1,0> 1,0
H2 <1,0,-1> 1,0,0,-1 1002 <1,0,0> 1,0,0
1012 <1,0,1> 1,0,1 1102 <1,0,-1,0> 1,0,-1,0
1112 <1,0,0,-1> 1,0,-1
Dans la colonne à côté se trouve le NAF de ces nombres, donné par l'algorithme de Reitwiesner, et dans la troisième colonne on applique la transformation de droite à gauche sur ces k.
Le codage compact droite-gauche tel que décrit précédemment transforme les représentations binaires pour k allant de 0 à 7 selon la table suivante:
NAF obtenu en considérant k comme une forme compacte k "droite-gauche" 0 0 1 1
10 1,0
11 -1
100 1,0,0
101 1,0,1 110 -1,0
111 1,0,-1
Parfois, on obtient des NAFs représentant des nombres négatifs (lorsque le chiffre non nul le plus significatif est -1). Dans l'exemple, c'est le cas pour k correspondant à la représentation 11 ou 110. Dans ce cas, on ajoute des 0 jusqu'à la position 3 - 1 = 2. et ensuite on ajoute un 1 en position r = 3. Ainsi, on obtient finalement : NAF obtenu en considérant k comme une forme compacte k "droite-gauche" R(k)
0 0 <0>
1 1 <1> 10 1,0 <1,0>
11 -1 <1,0,0,-1>
100 1,0,0 <1,0,0>
101 1,0,1 <1,0,1> 110 -1,0 <1,0,-1,0> 111 1,0,-1 <1,0,-1>
0
Ceci donnera la représentation que l'on dénommera R.
Il apparaît que la représentation R a la propriété remarquable de permuter l'ensemble {NAF(k)| k e{0,l}r}. Ainsi, on remarque que toutes les valeurs NAF(k) se retrouvent dans R(k) pour la liste du tableau III. Ceci est vrai pour toutes les puissances de k. Donc, si on veut un nombre aléatoire de k bits, quelle que soit la valeur de k, l'application de la transformation R donnera tous les NAF(k), bien que pas forcément dans le même ordre. La démonstration de cette proposition est immédiate pour l'homme du métier et n'est pas l'objet de cet exposé.
Dans l'art antérieur, il était nécessaire de tirer un nombre aléatoire, calculer son NAF, et ensuite utiliser ce NAF pour calculer k.P sur la courbe elliptique, par exemple.
Avec l'invention, on prend un nombre aléatoire k, on réalise sur ce nombre la transformation R, et le résultat de cette transformation, R(k), sert d'emblée de forme non-adjacente NAF d'un nombre k', également aléatoire (soit NAF(k')) utilisable pour réaliser le calcul. (Ce nombre k' peut être le même que k ou différent, en fonction des caractéristiques de la permutation et la valeur de k considérée) . En effet, puisque l'on traite avec des nombres aléatoires uniformément distribués, il est indifférent .que le nombre aléatoire réellement utilisé soit celui (k) désigné à l'origine dans sa forme binaire ou un éventuel autre nombre (k') de l'ensemble qui résulte de la transformation donnant NAF(k') directement à partir de k.
De la sorte, il n'est plus nécessaire de calculer une forme non-adjacente spécifique au nombre aléatoire désigné à l'origine. Ceci permet de gagner de la place en mémoire, puisque l'on n'a pas à stocker l'algorithme de calcul de NAF.
Au niveau sécurité, on ne perd rien puisque les deux ensembles {R(k)} et {NAF(k)} sont égaux pour k dans {0,l}r - la distribution reste donc uniforme.
L'invention est' particulièrement intéressante pour les calculs sur des courbes elliptiques où les représentations non-adjacentes sont utilisées avantageusement.
Dans ce qui suit, il sera donné quelques exemples non-exhaustifs d'applications concrètes du codage compact conforme à la présente invention.
Un premier exemple- concerne l'échange de clés dans le domaine cryptographique, selon le procédé Diffie- Hellman, dont les étapes principales sont rappelées dans le schéma synoptique de la figure 4.
Soit deux interlocuteurs A et B qui ne se connaissent pas. Ils doivent échanger une clé à des fins cryptographiques. On suppose que le canal entre A et B est passif : on peut simplement prendre connaissance de valeurs qui transitent sur ce canal, mais pas les modifier. Tout d'abord, A et B se mettent d'accord sur une courbe elliptique. E sur Fq, et également sur un point G qui appartient à cette courbe.
Dans le protocole, A choisit un nombre aléatoire xA, et calcul le point sur la courbe Ya = [xA]G. De son côté, B choisit un nombre aléatoire xB, et calcul le point sur la courbe YB = [xB]G.
Ensuite, A envoie la valeur de YA à B, et B envoie la valeur de YB à A. Leur clé commune est la clé KAB - [xA.xB]G. A obtient cette clé en calculant [XA.]YB, c'est-à- dire son secret xA fois la valeur yB reçue de B. De manière semblable, B calcul [xB]yA, et parvient au même résultat .
L'avantage de la méthode proposée est que comme on travaille sur des courbes elliptiques, il est intéressant d'avoir des représentations sous sa forme' NAF pour les multiplieurs xA et xB. A et B prennent un nombre aléatoire (donné comme une suite binaire) qui a pour source le matériel ou le logiciel. Ils interprètent ce nombre avec la transformation R et ont directement une forme non-adjacente (NAF) . Autrement dit, le calcul du NAF devient désormais inutile.
On note dans ce contexte que l'invention n'est pas limitée aux courbes elliptiques. Un autre exemple d'application de l'invention concerne le chiffrement. Le but est alors de permettre à B d'envoyer un message à A, avec la condition que seule A doit être capable de le déchiffrer. Cet exemple sera décrit dans le cadre ' du chiffrement selon ElGamal, dont les étapes principales sont rappelées dans le schéma synoptique de la figure 5.
A possède des paramètres publics, à savoir une courbe elliptique E sur Fq, un point G sur une courbe, et un autre point YA. A possède en outre une valeur secrète xA. Le point YA est donné par YA = [xA]G.
B envoie un message m chiffré à A. D'abord il représente le message m comme un point M de la courbe
(M e E) . Il calcule Ci = [k]G, où k est un nombre aléatoire, et C2 = [k]Y + M'- (G étant un paramètre public) . B envoie Ci et C2 à A, soit le texte chiffré qui correspond au message chiffré m.
Pour retrouver ce message, A calcule C2 - [xA]Cl, où xA est son secret. A va retrouver le point M, à partir duquel il peut retrouver le message correspondant..
Ici aussi, on peut appliquer la technique de codage compact selon l'invention, sous forme inverse, pour le traitement du nombre aléatoire k. Le résultat ainsi obtenu est interprété comme une forme non- adjacente du nombre aléatoire k, à partir duquel on - effectue les calculs.
Cet aspect de l'invention est aussi intéressant au niveau de A, qui a besoin de connaître sa clé xA. Ordinairement, on calcul le NAF de cette clé, celui-ci étant utilisé pour les algorithmes. Là aussi, A peut représenter sa clé secrète xA par la représentation plus compacte (gain de place) . Il stocke alors la forme compacte et non pas sa représentation binaire classique.
Pour le calcul de multiples de points sur E, A et B n'ont qu'à considérer l'expansion binaire du multiplicande scalaire comme une représentation donnée par le codage compact. Il ..est à noter que puisque les transformations sont biunivoques, il n'y pas de perte de sécurité. De plus, on peut obtenir une uniformité, si désirée.
On comprend de ce qui précède que le concept de 1 ' invention permet :
- la représentation compacte d'un nombre qui est initialement donné sous sa forme . non-adjacente (NAF) . Dans ce cas, on applique la transformation gauche-droite ou droite-gauche. On a alors une représentation équivalente qui ne prend pas plus de place en mémoire que la représentation binaire classique (et c'est cela que l'on pourra stocker) ;
- la production de nombres aléatoire uniformément distribués dans une forme non-adjacente, en tirant un nombre aléatoire dans une représentation binaire classique, et en .appliquant sur celle-ci une transformation R qui donnera un autre nombre, également aléatoire uniformément distribué, sous forme non- adjacente. L'une des applications avantageuses de l'invention se trouve dans le schéma de signature digitale ECDSA
(de l'anglais Elliptic Curve Digital Signature
Algorithm) . Il s'agit du standard pour les signatures sur les courbes ' elliptiques . L'invention peut être aussi utilisée pour dans de nombreuses' autres applications arithmétiques, notamment pour la multiplication ou l'exponentiation.

Claims

R E V E N D I C A T I O N S
1. Dispositif (1) de traitement de valeurs numériques, comprenant des premiers moyens de mémorisation (4) et des moyens de transformation, caractérisé en ce que lés premiers moyens de mémorisation (4) comportent au moins une table de correspondance ou équivalent entre d'une part des premiers ensembles d'au moins un chiffre, exprimés selon un code signé où chaque chiffre peut avoir la valeur de 0, 1- ou -1, et d'autre part des seconds ensembles d'au moins un chiffre, exprimés selon une forme simple où chaque chiffre peut avoir la valeur 0 ou 1, et en ce que les ' moyens de transformation comprennent :
- des moyens d'entrée de valeurs à traiter sous forme de séquence de chiffres . ; des moyens de décomposition pour décomposer ladite séquence de chiffres en ensembles de chiffres figurant dans ladite table de correspondance ;
- des moyens d'extraction pour extraire à partir de ladite table de correspondance, pour chaque ensemble de chiffres issu de la décomposition, l'ensemble de chiffres correspondant donné par ladite table de correspondance, des moyens de compilation pour compiler une séquence de chiffres à partir des ensembles ainsi extraits par les moyens d'extraction, et
- des moyens de sortie de la séquence compilée par les moyens de compilation.
2. Dispositif selon la revendication 1, caractérisé en ce que chacun des ensembles ainsi mis en correspondance par ladite table de correspondance a un même nombre de chiffres.
3. Dispositif selon la revendication 1 ou 2, caractérisé en ce que les moyens de transformation traitent des valeurs k exprimées en mode signé sous forme non-adjacente, formées d'une séquence de chiffres <... , k2, ki, k0> avec k = ∑kjb1, ou b est un symbole quelconque, les ki sont dans l'ensemble {0,1,-1} et satisfont la condition ki.ki+i = 0 pour tout i de la séquence.
4. Dispositif selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les moyens de transformation traitent des valeurs k exprimées en mode binaire signé sous forme non-adjacente, formées d'une séquence de chiffres <... , k2, ki, ko> avec k = ∑k12i et satisfaisant la condition ki.ki+i = 0, pour tout i de la séquence.
5. Dispositif selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les premiers ensembles de ladite table de correspondance comprennent un ou deux chiffres dont l'un d'eux est le chiffre 0.
6. Dispositif selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite table de correspondance établit les correspondances suivantes entre lesdits premiers et second ensembles de chiffres : premier ensemble second ensemble de chiffres de chiffres
0,1 0,1 0,-1 <-> 1,1 ->
1 . Dispositif selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite table de correspondance établit les correspondances suivantes entre lesdits premiers et second ensembles de chiffres : premier ensemble second ensemble de chiffres de chiffres 1,0 1,0
-1,0 <-> 1,1 0 <-» 0
8. Dispositif selon l'une quelconque des revendications 1 à 7, caractérisé en ce que il est prévu pour accepter en entrée et traiter une valeur k exprimée sous une forme signée, formée d'une séquence de chiffres < ... , k2, ki, k0> avec k± dans l'ensemble {0,1,-1} et satisfaisant la condition ki. i+ι = 0, pour tout i de la séquence, les moyens de décomposition produisant à partir de cette valeur au moins un premier ensemble de chiffres de ladite table de correspondance, les moyens d'extraction obtenant de celle-ci au moins un second ensemble de chiffres correspondant, et les moyens, de compilation formant une séquence à partir du ou des second(s) ensemble(s) ainsi extrait(s).
9. Dispositif selon la revendication 6 ou 8, caractérisé en ce que les moyens de transformation ajoutent un chiffre 0 à la gauche de ladite séquence de chiffres en entrée <kn, ... , k2, ki, k0> (i.e. devant le chiffre kn) pour former une séquence à décomposer, les moyens de décomposition identifient dans celle-ci les ensembles de chiffres figurant dans, les premiers ensembles de la table, en commençant à partir de l'ensemble situé le plus à droite (i.e. contenant le chiffre k0) et en finissant avec l'ensemble le plus à gauche (i.e. contenant le chiffre 0 ajouté), les moyens de compilation formant une séquence compilée, formée de chiffres binaires simples, en rassemblant les seconds ensembles correspondant . à ces premiers ensembles, obtenus par les moyens d'extraction, ces. seconds ensembles étant placés selon la même topologie que les premiers ensembles correspondants de la séquence décomposée .
10. Dispositif selon la revendication 9, caractérisé en ce que les moyens de compilation tronquent le chiffre 0 en tête (i.e. à gauche) de ladite séquence compilée avant de délivrer celle-ci aux moyens de sortie.
11. Dispositif selon la revendication 7 ou 8, caractérisé en ce que les moyens de transformation ajoutent un chiffre 0 à la droite de la séquence de chiffres <kn, ... , k2, ki, k0> (i.e. après le chiffre k0) pour former une séquence' à décomposer, les moyens de décomposition identifient dans celle-ci les ensembles de chiffres figurant dans les premiers ensembles de la table, en commençant à partir de l'ensemble situé le plus à gauche (i.e. contenant le chiffre kn) et en finissant avec l'ensemble le plus à droite (i.e. contenant le chiffre 0 ajouté), les moyens de compilation formant une séquence compilée, formée de chiffres binaires simples, en rassemblant les seconds ensembles correspondant à ces premiers ensembles, obtenus par les moyens d'extraction, ces seconds ensembles étant placés selon la même topologie que les ensembles correspondants de la séquence décomposée.
12. Dispositif selon la revendication " 11, caractérisé en ce que les moyens de compilation tronquent le chiffre 0 en fin (i.e. à' droite) de ladite séquence compilée avant de délivrer celle-ci aux moyens de sortie.
13. Dispositif selon l'une quelconque des revendications 1 à 12, caractérisé en ce que les moyens de sortie - sont reliés à des deuxièmes moyens de mémorisation (8) destinés à stocker au moins une séquence compilée en tant que séquence en codage compact d'une valeur correspondante exprimée sous forme binaire signée.
14. Dispositif selon l'une quelconque -des revendications 1 à 13, caractérisé en ce que les moyens de transformation sont configurés pour réaliser une transformation inverse afin de reproduire une valeur exprimée en forme non-adjacente à partir d'une séquence compilée .
15. Dispositif selon l'une quelconque des revendications 1 à 14, caractérisé en ce qu'il a en outre des moyens de traitement comprenant :
- des moyens d'accès audits deuxièmes moyens de mémorisation (8) pour fournir aux moyens d'entrée une séquence compilée,
- lesdits moyens de transformation configurés pour effectuer une transformation de cette séquence en une représentation binaire signée sous forme non- adjacente de la valeur k associée à cette séquence compilée, et des moyens de calcul algorithmiques fonctionnant avec au moins une variable exprimée par une représentation binaire signée sous forme non- adjacente, fournie par lesdits moyens de transformation.
16. Dispositif selon la revendication 15, caractérisé en ce que les moyens de calcul algorithmique sont prévus pour réaliser des calculs sur des courbes elliptiques, y compris les courbes de type ABC (de l'anglais Anomalous Binary Curves) .
17. Dispositif selon l'une quelconque des revendications 1 à 16, caractérisé en ce les moyens de transformation établissent une transformation (R) d'une valeur k exprimée en mode binaire simple vers une valeur k' exprimée en mode binaire signé sous forme non-adjacente (R(k)).
18. Dispositif selon la revendication 17, caractérisé en ce que ladite transformation (R) permute avec l'ensemble {NAF(k) |k e{0,l}r}, où r est le nombre maximum de chiffres binaires simples pouvant exprimer ladite valeur k, et NAF(k) correspond à l'expression de la valeur k en mode binaire signé sous forme non- adjacente.
19. Dispositif selon la revendication 17 ou 18, caractérisé en ce qu'il comprend en outre des moyens de création de nombres aléatoires exprimés en mode binaire signé sous forme non-adjacente, le dispositif ayant un générateur de nombres aléatoires qui rend des nombres aléatoires sous forme binaire simple, ces nombres étant fournis audits moyens d'entrée de valeurs à traiter, les moyens de transformation établissant une' transformation (R) de ce nombre vers une valeur k' exprimée en mode binaire signé sous forme non-adjacente (R(k)) et transmise aux moyens de sortie de la séquence compilée en tant que nombre aléatoire en mode binaire signé sous forme non-adjacente.
20. Dispositif selon la revendication 19, caractérisé en ce qu'il comprend en outre des moyens de calcul algorithmiques fonctionnant avec au moins un nombre aléatoire exprimé par une représentation binaire signée sous forme non-adjacente.
21. Dispositif selon l'une quelconque des revendications 15 à 20, caractérisé en ce que les moyens de calcul algorithmiques sont prévus pour réaliser des algorithmes cryptographiques.
22. Dispositif selon la revendication 21, caractérisé en ce que l'algorithme cryptographique est un algorithme d'échange de clés, par exemple selon la méthode de Diffie-Hellman sur les courbes ellipti'ques .
23. Dispositif selon la revendication 21, caractérisé en ce que l'algorithme cryptographique est un algorithme de chiffrement de données, par exemple selon la méthode d'ElGamal sur les courbes elliptiques.
24. Dispositif selon la revendication 21, caractérisé en ce que l'algorithme cryptographique est un algorithme de signature digitale, par exemple selon la méthode ECDSA (de l'anglais Elliptic Curve Digital Signature Algorithm) sur les courbes elliptiques.
25. Carte à puce intégrant le dispositif selon l'une quelconque des revendications 1 à 24.
26. Utilisation du dispositif selon l'une quelconque des revendications 1 à 25 pour le traitement de valeurs numériques exprimées sous forme non- adjacente et le stockage de ces valeurs sous forme de séquence compilée obtenue par lesdits moyens de compilation.
27. ' Procédé de traitement de valeurs numériques, caractérisé en ce que qu'il comprend les étapes de :
- établir au moins une table de correspondance entre d'une part des premiers ensembles d'au moins un chiffre, exprimés selon un code signé où chaque chiffre peut avoir la valeur de 0, 1 ou -1, et d'autre part des seconds ensembles d'au moins un chiffre, exprimés selon une forme simple où chaque chiffre peut avoir la valeur 0 ou 1, et - réaliser une transformation par les étapes de :
- prendre en entrée de valeurs à traiter- sous forme de séquence de chiffres ;
- décomposer ladite séquence de chiffres en ensembles de chiffres figurant dans ladite table de correspondance ou équivalent; extraire à partir de ladite table de correspondance, pour chaque ensemble de chiffres issu de la décomposition, l'ensemble de chiffres correspondant donné par ladite table de correspondance, - compiler une séquence de chiffres à partir des ensembles ainsi extraits, et sortir ladite séquence compilée par les moyens de compilation.
28. Procédé selon la revendication 27, caractérisé en ce que chacun des ensembles ainsi mis en correspondance par ladite table de correspondance a un même nombre de chiffres.
29. Procédé selon la revendication 27 ou 28, caractérisé en ce que dans la transformation on traite des valeurs k exprimées en mode signé sous forme non- adjacente, formées d'une séquence de chiffres <... , k2, ki, k0> avec k = ∑kib1, ou b' est un symbole quelconque, les sont dans l'ensemble {0,1,-1} et satisfont la condition ki.k+i = 0 pour tout i de la séquence .
30. Procédé selon l'une quelconque des revendications 27 à 29, caractérisé en ce que dans la transformation on traite les valeurs k exprimées en mode binaire signé sont sous la forme non-adjacente, formées d'une séquence de chiffres <... , k2, ki, ko> avec k = ∑ki2i et satisfaisant la condition k .ki+i = 0, pour tout i de la séquence. '
31. Procédé selon l'une quelconque des revendications 27 à 30, caractérisé en ce que les ' premiers - ensembles de . ladite table de correspondance comprennent un ou deux chiffres dont l'un d'eux est le chiffre 0.
32. Procédé selon l'une quelconque des revendications 27 à 31, caractérisé en ce que ladite table de correspondance établit les ' correspondances suivantes entre lesdits premiers et second, ensembles de chiffres : premier ensemble second ensemble de chiffres de chiffres
0,1 <-> 0,1
0,-1 <-> 1,1
0 <- 0
33. Procédé selon l'une quelconque des revendications 27 à 32, caractérisé en ce que ladite table de correspondance établit les correspondances suivantes entre lesdits premiers et second ensembles de chiffres : premier ensemble second ensemble de chiffres de chiffres
1,0 O 1,0 -1,0 <- 1,1 00 <H> O'
34. Procédé selon l'une quelconque des revendications 27 à 33, caractérisé en ce que il est prévu pour accepter en entrée et traiter une valeur k exprimée sous une forme signée, formée d'une séquence de chiffres <... , k2, ki, k0> avec ki dans l'ensemble {0,1,-1} et satisfaisant la condition ki.ki+i = 0, pour tout i de la séquence, l'étape de décomposition produisant à partir de cette valeur au moins un premier ensemble de chiffres de ladite table de correspondance, les moyens d'extraction obtenant de celle-ci au moins un second ensemble de chiffres correspondant, et les moyens de compilation formant une séquence à partir du ou des second (s) ensemble (s) ainsi extrait (s).
35. Procédé selon la revendication 32 ou 34, caractérisé en ce que l'on ajoute un chiffré 0 à la gauche de ladite ' séquence de chiffres en entrée <kn, ... , k2, i, k0> (i.e. devant le chiffre kn) pour former une séquence à décomposer, l'étape de décomposition comprenant l'étape d'identifier dans celle-ci les ensembles de chiffres figurant dans les premiers ensembles de la table, en commençant à partir de l'ensemble situé le plus à droite (i.e. contenant le chiffre ko) et en finissant avec l'ensemble le plus à gauche (i.e. contenant le chiffre 0 ajouté), l'étape de compilation donnant une séquence compilée, formée de chiffres binaires simples, en rassemblant les seconds ensembles correspondant ' à ces premiers ensembles, obtenus par l'étape d'extraction, ces seconds ensembles étant placés selon la même topologie que les premiers ensembles correspondants de la séquence décomposée.
36. Procédé selon la revendication 35, caractérisé en ce que l'étape de compilation comprend l'étape de tronquer le chiffre 0 en tête (i.e. à gauche) de ' ladite séquence compilée avant de délivrer celle-ci en sortie.
37. Procédé selon revendication 33 ou 34, caractérisé en ce que l'on ajoute un chiffre 0 à la droite de la séquence de chiffres <kn, ... , k2, ki, k0> (i.e. après le chiffre k0) pour former une séquence à décomposer, l'étape de décomposition comprenant l'étape d'identifier dans celle-ci les ensembles de chiffres figurant dans les premiers ensembles de la table, en commençant à partir de l'ensemble situé le plus . à gauche (i.e. contenant le chiffre kn) et en finissant avec l'ensemble le plus à droite (i.e.. contenant le chiffre 0 ajouté), l'étape de compilation donnant une séquence compilée, formée de chiffres binaires simples, en rassemblant les seconds ensembles correspondant à ces premiers ensembles, obtenus par l'étape d'extraction, ces seconds ensembles étant placés selon
. la même topologie que les ensembles correspondants de la séquence décomposée.
38. Procédé selon la revendication 37, caractérisé en ce que l'étape de -compilation comporte
' l'étape de tronquer le chiffre 0 en fin (i.e. à droite) de ladite séquence compilée avant de délivrer celle-ci en sortie.
39. Procédé selon l'une quelconque des revendications 27 à 38, caractérisé en ce que qu'il comprend en outre l'étape de stocker ladite sortie à l'étape de compilation les moyens de sortie sont reliés en tant que séquence en codage compact d'une valeur correspondante exprimée sous forme binaire signée.
40. Procédé selon l'une quelconque des revendications 27 à 39, caractérisé en ce qu'il comprend une série d'étapes de transformation inverse ' afin de reproduire une valeur exprimée en forme non- adjacente à partir d'une séquence compilée.
41. Procédé selon l'une quelconque des revendications 27 à 40, caractérisé en ce qu'il comporte en outre une phase de traitement 'comprenant les étapes de :
- prendre en entrée une séquence compilée, transformer cette séquence en une représentation binaire signée sous forme non-adjacente de la valeur k associée à cette séquence compilée, et
- réaliser un calcul algorithmiques avec au moins une variable exprimée par une représentation binaire signée sous forme non-adjacente, fournie par l'étape de transformation.
42. Procédé selon la revendication 41, caractérisé en ce que l'on réalise des calculs sur des courbes elliptiques, y compris des courbes de typé ABC (de l'anglais Anomalous Binary Curves) .
43. Procédé selon l'une quelconque des revendications 27 à 42, caractérisé en ce l'étape de transformation est réalisée pour établir une transformation (R) d'une valeur k exprimée en mode binaire simple vers une valeur k' exprimée en mode binaire signé sous forme non-adjacente (R(k)).
44. Procédé selon la revendication- 43, caractérisé en ce que ladite transformation (R) perm te avec l'ensemble {NAF(k) |k e{0,l}r}, où r est le nombre maximum de chiffres binaires simples pouvant exprimer ladite valeur k, et NAF(k) correspond à l'expression de la valeur k en mode binaire signé sous forme non- adjacente .
45. Procédé selon la revendication 43 ou 44, caractérisé en ce qu'il comprend en outre une phase de création de nombres aléatoires exprimés en mode binaire signé sous forme non-adjacente, cette phase comprenant ' les étapes de :
- tirage d'un nombre aléatoire sous forme binaire simple, ce nombre étant fourni à l'étape d'entrée de valeurs à traiter, établir par l'étape de transformation une transformation (R) de ce nombre aléatoire k vers une valeur k' exprimée en mode binaire signé sous forme non-adjacente (R(k)), et - transmette en sortie de la séquence compilée- en tant que nombre aléatoire en mode binaire signé sous forme non-adjacente.
'5
46. Procédé selon la revendication 45, caractérisé en ce qu'il comprend en outre une phase de calcul algorithmique avec au moins un nombre aléatoire exprimé par une représentation binaire signée sous forme non-adjacente, fournie par l'étape de 0' transformation.
47. Procédé selon l'une quelconque des revendications 41 à 46, caractérisé en ce que le calcul algorithmique est prévu pour réaliser- des algorithmes 5 cryptographiques.
48. ' Procédé selon la revendication 47, caractérisé en ce que l'algorithme cryptographique est un algorithme d'échange de clés par exemple selon la 0 méthode de Diffie-Hellman sur les courbes elliptiques.
49. Procédé selon la revendication 47, caractérisé en ce que l'algorithme cryptographique est un algorithme de chiffrement de données, par exemple 5 selon la méthode d'ElGamal sur les courbes elliptiques.
50. Procédé selon la revendication 47, caractérisé en ce que l'algorithme cryptographique est un algorithme de signature digitale, par exemple selon 0 la méthode ECDSA (de l'anglais Elliptic Curve Digital Signature Algorithm) sur les courbes elliptiques.
51. Utilisation du procédé selon l'une quelconque des revendications 27 à 50 dans une carte à puce. 5-
52. Utilisation du procédé selon l'une quelconque des revendications 27 à 51 pour le traitement de valeurs numériques en mode binaire signé exprimées sous forme non-adjacente et le stockage de ces valeurs sous forme de séquence compilée obtenue par l'étape de compilation.
EP02702450A 2001-02-09 2002-02-05 Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente Withdrawn EP1360770A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0101789A FR2820905B1 (fr) 2001-02-09 2001-02-09 Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente
FR0101789 2001-02-09
PCT/FR2002/000426 WO2002065645A1 (fr) 2001-02-09 2002-02-05 Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente

Publications (1)

Publication Number Publication Date
EP1360770A1 true EP1360770A1 (fr) 2003-11-12

Family

ID=8859839

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02702450A Withdrawn EP1360770A1 (fr) 2001-02-09 2002-02-05 Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente

Country Status (4)

Country Link
US (1) US7433905B2 (fr)
EP (1) EP1360770A1 (fr)
FR (1) FR2820905B1 (fr)
WO (1) WO2002065645A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005114802A2 (fr) * 2004-05-11 2005-12-01 North Dakota State University Recodage optimal par signature numerique pour cryptographie a courbe elliptique
US20070271326A1 (en) * 2004-09-30 2007-11-22 Zhizhong Li Technical Solution to Written Calculations Engineering of the Digital Engineering Method for Hybrid Numeral Carry System and Carry Line
KR101309797B1 (ko) * 2006-12-01 2013-09-23 삼성전자주식회사 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법
JP5328186B2 (ja) * 2008-03-21 2013-10-30 ルネサスエレクトロニクス株式会社 データ処理システム及びデータ処理方法
JP5225115B2 (ja) * 2009-01-15 2013-07-03 株式会社東芝 Naf変換装置
FR2947404B1 (fr) * 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170371A (en) * 1988-03-31 1992-12-08 Darley Henry M Method and apparatus for rounding in high-speed multipliers
US5570309A (en) * 1993-06-21 1996-10-29 Matsushita Electric Industrial Co., Ltd. Iterative arithmetic processor
US5815420A (en) * 1996-07-31 1998-09-29 Texas Instruments Incorporated Microprocessor arithmetic logic unit using multiple number representations
JP3604518B2 (ja) * 1996-11-01 2004-12-22 株式会社ルネサステクノロジ 除算装置
EP0933695B1 (fr) * 1998-01-28 2006-03-15 Hitachi, Ltd. Carte à puce équipé d'une installation de traitement pour le chiffrage à courbe elliptique

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
FR2820905B1 (fr) 2005-02-18
FR2820905A1 (fr) 2002-08-16
US7433905B2 (en) 2008-10-07
WO2002065645A1 (fr) 2002-08-22
US20040119614A1 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
EP1414182B1 (fr) Masquage de données décomposées dans un système de résidus
EP2946284A1 (fr) Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
EP0346180B1 (fr) Dispositif de communication sécurisée de données
EP1455478B1 (fr) Procédé de cryptage d&#39;un mot comportant N digits
EP3789901A1 (fr) Méthode d&#39;authentification sélective d&#39;un utilisateur de chaine de blocs auprès d&#39;un contrat intelligent
EP1291763A1 (fr) Procédé de brouillage d&#39;un calcul à quantité secrète
EP1166495A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
EP1360770A1 (fr) Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente
FR2703482A1 (fr) Procédé de mise à jour de la taille de l&#39;intervalle dans la méthode du codage arithmétique.
EP1180277B1 (fr) Extraction de cle privee
FR2792141A1 (fr) Procede de securisation d&#39;un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l&#39;ensemble electronique
EP1721246A2 (fr) Procede et dispositif pour accomplir une operation cryptographique
FR2877453A1 (fr) Procede de delegation securisee de calcul d&#39;une application bilineaire
EP1438804B1 (fr) Procede cryptographique a cle publique base sur les groupes de tresses
EP0449716B1 (fr) Dispositif de condensation de données numériques
EP2940922A1 (fr) Cryptosystèmes symétriques avec clé publique basé sur l&#39;utilisation du groupe symétrique
JP2000132096A (ja) スカラー倍算方法およびその装置
EP3840282A1 (fr) Procédé de traitement cryptographique, dispositif électronique et programme d&#39;ordinateur associés
Kunev Extended RSA-M algorithm as a way of increase computational complexity of cryptosystems
CA2359198C (fr) Unite de calcul pour l&#39;execution d&#39;un protocole cryptographique
WO2002001343A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz
EP3346632B1 (fr) Procédé de chiffrement ou de déchiffrement d&#39;un n-uplet de données avec un n-uplet de clés secrètes prédéterminées
CN117675188A (zh) 基于变色龙哈希的可编辑区块链生成方法、系统及介质
WO2024018158A1 (fr) Procédé d&#39;échange d&#39;un secret résistant aux attaques par ordinateur quantique, système informatique et programme d&#39;ordinateur associés
WO2002031646A2 (fr) Representation arithmetique minimale d&#39;un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie

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: 20030909

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

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GEMALTO SA

17Q First examination report despatched

Effective date: 20091123

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20100603