FR 2820905 A1 20020816 FR 0101789 A 20010209 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 à 2li-1 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 representation"). Dans cette représentation, un nombre entier k est une séquence de chiffres avec kil {0, 1,-1}. On peut donc écrire k = Ekpour i = 0 à oo. Dans ce cas, l'écriture d'un nombre n'est pas forcément unique. Par exemple, l'ensemble {0, 1,-li peut servir pour exprimer le nombre 3 par (soit 2'+20) ou par (soit 22-20). 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"nonadjacent form"). Une représentation NAF a la propriété suivante : le produit de deux chiffres consécutifs ki et k, est toujours nul. On a donc la condition : kl. kl+l = 0, pour tout i............... (1) Il a été démontré par Reitwiesner ("Binary Artithmetic", Advances in Computers, vol. 1, pp. 231-308, 1960) 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 s 00 ; 1 01 ; -1 = li. 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 nonadjacente. 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 avec k = Eklbl ou b est un symbole quelconque, les ki sont dans l'ensemble {0, 1,-li et satisfont la condition ki. ki, = 0 pour tout i de la séquence. Par exemple, on peut avoir b = 2, donnant k = D2i 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) zu (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) avec ki dans l'ensemble {0, 1,-il et satisfaisant la condition ki. kil = 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 k..., k2, ki, ko > (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 ka) 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 (i. e. après le chiffre ka) 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 de 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 nonadjacente 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 nonadjacente, 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 {O, 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, ou 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 à l'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, l'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 nonadjacente (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 nonadjacente, que l'on désignera NAF (N). La représentation NAF (N) du nombre N a donc la forme générale k = Lki2i, avec ki E {0, l,-l}, et la condition k1. ki+l = 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, 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 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. 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") 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 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 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) (1, 1) (0) (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 (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) = , 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) = 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) zu (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 scanné 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 . 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, l) à 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 . Le chiffre le plus à gauche étant nul, il peut être tronqué et on retrouve finalement NAF (29) = . 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) 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 (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"droitegauche", 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 scanné 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) = . 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 de 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 (noter le 0 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 dont on peut ignorer le 0 qui suit le point décimal, et on retrouve NAF (29) = . 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 = gk 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&commat;llr, exprimé en forme binaire simple. On applique à la suite de bits de cette séquence binaire la transformation inverse de la transformation droitegauche (cf. tableau Ib), soit : (O, 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) 0 :, 0 12 1 102 1, 0 112 1, 0, 0,-1 1002 1, 0, 0 1012 1, 0, 1 1102 1, 0,-1, 0 1112 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 1 1 10 1, 0 11-1 100 1,0, 0 101 1,0, 1 110-1,0 111 1, 0,-1 B 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) l k E {O, 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, 1)'-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é DiffieHellman, 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 = [xjG. De son côté, B choisit un nombre aléatoire xB, et calcul le point sur la courbe YB = [x, g] G. Ensuite, A envoie la valeur de YA à B, et B envoie la valeur de Y, à A. Leur clé commune est la clé Kas = [XA. xjG. A obtient cette clé en calculant [XA. Y,, c'est-àdire son secret x, fois la valeur YB reçue de B. De manière semblable, B calcul []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 Xg. 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 Cl = [k] G, où k est un nombre aléatoire, et C2 = [k] YA + M (G étant un paramètre public). B envoie Cl et C2 à A, soit le texte chiffré qui correspond au message chiffré m. Pour retrouver ce message, A calcule C,- CI, 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 nonadjacente 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 l'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 nonadjacente. 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. REVENDICATIONS 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 les 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 avec k = #k1b1, ou b est un symbole quelconque, les ki sont dans l'ensemble {0, 1, -1} et satisfont la condition ki. ki+1 = 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 avec k = Ek, 21 et satisfaisant la condition k1. ki+l = 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 o X o 7. 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 zu 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 avec k1 dans l'ensemble {0, 1, - il et satisfaisant la condition kl. ki+l = 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 (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 ka) 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. il. 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 k..., k2, k, ko > (i. e. après le chiffre ka) 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 nonadjacente 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 nonadjacente, 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) Ik E {O, 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 nonadjacente. 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 elliptiques. 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 nonadjacente 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 nonadjacente, formées d'une séquence de chiffres avec k = Ekibi ou b est un symbole quelconque, les ki sont dans l'ensemble {0, 1,-l et satisfont la condition ki. ki+1 = 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 avec k = D 2'eut satisfaisant la condition ki. ki+l = 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 X O 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 1, 0 - 1, 0 35. Procédé selon la revendication 32 ou 34, caractérisé en ce que l'on ajoute un chiffre 0 à la gauche de ladite séquence de chiffres en entrée (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 ka) 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 (i. e. après le chiffre ko) 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 ka) 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 nonadjacente à 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 type ABC (de l'anglais Anomalous Binary Curves). 1 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) permute avec l'ensemble {NAF (k))k{0,l}}, 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 nonadjacente. 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. 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 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 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 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 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 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. 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.