FR2820905A1 - 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 Download PDFInfo
- Publication number
- FR2820905A1 FR2820905A1 FR0101789A FR0101789A FR2820905A1 FR 2820905 A1 FR2820905 A1 FR 2820905A1 FR 0101789 A FR0101789 A FR 0101789A FR 0101789 A FR0101789 A FR 0101789A FR 2820905 A1 FR2820905 A1 FR 2820905A1
- Authority
- FR
- France
- Prior art keywords
- sequence
- digits
- sets
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/02—Conversion 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/04—Conversion 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
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 équivalent, 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
<Desc/Clms Page number 1>
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.
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 < ..., k2, k, ko > avec kil {0, 1,-1}.
séquence de chiffres < ..., k2, k, ko > avec kil {0, 1,-1}.
On peut donc écrire k = Ekpour i = 0 à oo.
<Desc/Clms Page number 2>
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 < 1, 1 > (soit 2'+20) ou par < 1, 0,-1 > (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).
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
<Desc/Clms Page number 3>
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.
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,
<Desc/Clms Page number 4>
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, kl, ko > avec k = Eklbl ou b est un symbole quelconque, les ki sont dans l'ensemble {0, 1,-li et
<Desc/Clms Page number 5>
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.
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) < (1, 0) (-1, 0) (1, 1) (0) zu (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, kl, ko > 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
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) zu (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, kl, ko > 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
<Desc/Clms Page number 6>
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 < k..., k, k, ka > (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 à
peuvent éventuellement ajouter un chiffre 0 à la droite de la séquence de chiffres < k..., k, k, ka > (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 à
<Desc/Clms Page number 7>
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.
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
<Desc/Clms Page number 8>
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.
<Desc/Clms Page number 9>
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 ;
<Desc/Clms Page number 10>
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 ;
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 ;
<Desc/Clms Page number 11>
- 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 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.
<Desc/Clms Page number 12>
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
<Desc/Clms Page number 13>
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"
<Desc/Clms Page number 14>
(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 < 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 à
<Desc/Clms Page number 15>
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.
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
<Desc/Clms Page number 16>
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.
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 < 1,0, 1,1, 0,1 > . En partant de la droite, on scanne le
<Desc/Clms Page number 17>
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 < 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
<Desc/Clms Page number 18>
séquence NAF"gauche-droite" (1, 0) < (1, 0) (-1, 0) B (1, 1) (0) B (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"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) = < 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
<Desc/Clms Page number 19>
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 < 1, 0, 0, 1,1, 1.0 > (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 < 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 = gk dans un groupe donné, par exemple le groupe multiplicatif
<Desc/Clms Page number 20>
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@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
<Desc/Clms Page number 21>
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 > 0 12 < 1 > 1 102 < 1, 0 > 1, 0 112 < 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
<Desc/Clms Page number 22>
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 > B Ceci donnera la représentation que l'on dénommera R.
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 > 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
<Desc/Clms Page number 23>
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
<Desc/Clms Page number 24>
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.
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
<Desc/Clms Page number 25>
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.
(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.
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
<Desc/Clms Page number 26>
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.
Claims (45)
- 2. Dispositif selon la revendication 1, caractérisé en ce que chacun des ensembles ainsi mis en<Desc/Clms Page number 28>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, ko > 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 < ..., k2, k1, ka > 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 chiffres0,1 # 0,10, -1 # 1,1<Desc/Clms Page number 29>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 chiffres1,0 1, 0 -1, 0 zu 1,1 0 # 08. 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, kl, ka > 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 < k..., k2,k1,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<Desc/Clms Page number 30>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 dechiffres 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.<Desc/Clms Page number 31>
- 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<Desc/Clms Page number 32>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<Desc/Clms Page number 33>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.<Desc/Clms Page number 34>
- 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.<Desc/Clms Page number 35>
- 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 < ..., k2,k1,k0 > 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 < ..., k2, kl'ka > 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<Desc/Clms Page number 36>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 chiffres1,0 1, 0- 1, 0 < 1, 1 0 e 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, kl, ka avec ki dans l'ensemble {0, 1, -1} et satisfaisant la condition ki.kl+1 = 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 chiffre 0 à lagauche de ladite séquence de chiffres en entrée < k..., k2, kl, ko > (i. e. devant le chiffre kn) pour former une séquence à décomposer, l'étape de décomposition<Desc/Clms Page number 37>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 lechiffre 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 < k..., k2, kl, ko > (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 lechiffre 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<Desc/Clms Page number 38>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.<Desc/Clms Page number 39>
- 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
- 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 unevaleur k'exprimée en mode binaire signé sous forme non-adjacente (R (k)), et<Desc/Clms Page number 40>- 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.<Desc/Clms Page number 41>
- 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.
Priority Applications (4)
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 |
US10/467,514 US7433905B2 (en) | 2001-02-09 | 2002-02-05 | Device and method for processing digital values in particular in non-adjacent form |
EP02702450A EP1360770A1 (fr) | 2001-02-09 | 2002-02-05 | Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente |
PCT/FR2002/000426 WO2002065645A1 (fr) | 2001-02-09 | 2002-02-05 | Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente |
Applications Claiming Priority (1)
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2820905A1 true FR2820905A1 (fr) | 2002-08-16 |
FR2820905B1 FR2820905B1 (fr) | 2005-02-18 |
Family
ID=8859839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0101789A Expired - Fee Related FR2820905B1 (fr) | 2001-02-09 | 2001-02-09 | 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)
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 |
WO2006034649A2 (fr) * | 2004-09-30 | 2006-04-06 | Zhizhong Li | Proposition technique d'ingenierie de calcul manuel et procede d'ingenierie a echelle numerique et a de ligne de report |
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907499A (en) * | 1996-11-01 | 1999-05-25 | Mitsubishi Denki Kabushiki Kaisha | Hardware implemented divider for binary numbers using a redundant binary representation |
EP0933695A2 (fr) * | 1998-01-28 | 1999-08-04 | Hitachi, Ltd. | Carte à puce équipé d'une installation de traitement pour le chiffrage à courbe elliptique |
Family Cites Families (3)
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 |
-
2001
- 2001-02-09 FR FR0101789A patent/FR2820905B1/fr not_active Expired - Fee Related
-
2002
- 2002-02-05 WO PCT/FR2002/000426 patent/WO2002065645A1/fr not_active Application Discontinuation
- 2002-02-05 EP EP02702450A patent/EP1360770A1/fr not_active Withdrawn
- 2002-02-05 US US10/467,514 patent/US7433905B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907499A (en) * | 1996-11-01 | 1999-05-25 | Mitsubishi Denki Kabushiki Kaisha | Hardware implemented divider for binary numbers using a redundant binary representation |
EP0933695A2 (fr) * | 1998-01-28 | 1999-08-04 | Hitachi, Ltd. | Carte à puce équipé d'une installation de traitement pour le chiffrage à courbe elliptique |
Non-Patent Citations (5)
Title |
---|
CHIN-LONG WEY HAIYAN WANG CHENG-PING WANG: "A self-timed redundant-binary number to binary number converter for digital arithmetic processors", COMPUTER DESIGN: VLSI IN COMPUTERS AND PROCESSORS, 1995. ICCD '95. PROCEEDINGS., 1995 IEEE INTERNATIONAL CONFERENCE ON AUSTIN, TX, USA 2-4 OCT. 1995, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 2 October 1995 (1995-10-02), pages 386 - 391, XP010197339, ISBN: 0-8186-7165-3 * |
HERRFELD A ET AL: "Conversion of redundant binary into two's complement representations", ELECTRONICS LETTERS, IEE STEVENAGE, GB, vol. 31, no. 14, 6 July 1995 (1995-07-06), pages 1132 - 1133, XP006003048, ISSN: 0013-5194 * |
JOYE J ET AL: "Optimal Left-to-Right Binary Signed-Digit Recoding", IEEE TRANSACTIONS ON ELECTRONIC COMPUTERS, IEEE INC. NEW YORK, US, vol. 49, no. 7, July 2000 (2000-07-01), pages 740 - 748, XP002172431 * |
KOYAMA K ET AL: "SPEEDING UP ELLIPTIC CRYPTOSYSTEMS BY USING A SIGNED BINARY WINDOW METHOD", ADVANCES IN CRYPTOLOGY - ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE, PROCEEDINGS, SPRINGER-VERLAG, XX, vol. 40, 1993, pages 345 - 357, XP000866363 * |
SRINIVAS ET AL: "High-speed VLSI arithmetic processor architectures using hybrid number representation", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN - VLSI IN COMPUTERS AND PROCESSORS. CAMBRIDGE, MA., OCT. 14 - 16, 1991, LOS ALAMITOS, IEEE. COMP. SOC. PRESS, US, 14 October 1991 (1991-10-14), pages 564 - 571, XP010025278, ISBN: 0-8186-2270-9 * |
Also Published As
Publication number | Publication date |
---|---|
US20040119614A1 (en) | 2004-06-24 |
EP1360770A1 (fr) | 2003-11-12 |
US7433905B2 (en) | 2008-10-07 |
FR2820905B1 (fr) | 2005-02-18 |
WO2002065645A1 (fr) | 2002-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8520854B2 (en) | Sharing a secret using polynomials over polynomials | |
JP2022537531A (ja) | プライベート情報検索に応用される準同型暗号化方法 | |
Gabr et al. | Image encryption through ca, chaos and lucas sequence based s-box | |
JP4783382B2 (ja) | モンゴメリ法用乗算剰余計算装置 | |
EP2005290B1 (fr) | Procede et dispositif pour engendrer une suite pseudo-aleatoire | |
EP1455478B1 (fr) | Procédé de cryptage d'un mot comportant N digits | |
CN105721156A (zh) | 用于模幂加密方案的通用编码函数 | |
FR2820905A1 (fr) | Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente | |
Hematpour et al. | Presence of dynamics of quantum dots in the digital signature using DNA alphabet and chaotic S-box | |
JPH09204296A (ja) | べき乗剰余演算方法及び装置 | |
EP1180277B1 (fr) | Extraction de cle privee | |
Dawson et al. | An enhanced RSA algorithm using Gaussian interpolation formula | |
JP3797808B2 (ja) | スカラー倍算方法およびその装置 | |
EP2940922B1 (fr) | Cryptosystèmes symétriques avec clé publique basé sur l'utilisation du groupe symétrique | |
EP3840282A1 (fr) | Procédé de traitement cryptographique, dispositif électronique et programme d'ordinateur associés | |
FR2831738A1 (fr) | Procede cryptographique a cle publique base sur les groupes de tresses | |
Kunev | Extended RSA-M algorithm as a way of increase computational complexity of cryptosystems | |
Liu et al. | Relaxed Functional Bootstrapping: A New Perspective on BGV/BFV Bootstrapping | |
FR3102271A1 (fr) | Procede de generation d'une cle publique, procede de construction d'un secret partage et entite electronique associee | |
CN115378570B (zh) | 具有短密文的全同态加密方法 | |
ALIYU | ENHANCED ENCRYPTION USING NEXT NEAREST PRIME KEY GENERATION ALGORITHM | |
CA2359198C (fr) | Unite de calcul pour l'execution d'un protocole cryptographique | |
WO2024018158A1 (fr) | Procédé d'échange d'un secret résistant aux attaques par ordinateur quantique, système informatique et programme d'ordinateur associés | |
WO2002001792A1 (fr) | Procedes cryptographiques a cle publique bases sur la difficulte de trouver les valeurs propres d'un endomorphisme d'un module sur un anneau ou une algebre quelconque | |
JP2003084667A (ja) | 同一基底に対する複数の冪乗剰余演算を行う方法と装置並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20091030 |