FR2851348A1 - Multiplieur modulaire de montgomery et procede de multiplication correspondant - Google Patents

Multiplieur modulaire de montgomery et procede de multiplication correspondant Download PDF

Info

Publication number
FR2851348A1
FR2851348A1 FR0403488A FR0403488A FR2851348A1 FR 2851348 A1 FR2851348 A1 FR 2851348A1 FR 0403488 A FR0403488 A FR 0403488A FR 0403488 A FR0403488 A FR 0403488A FR 2851348 A1 FR2851348 A1 FR 2851348A1
Authority
FR
France
Prior art keywords
carry
bit
adder
sum
bit value
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.)
Pending
Application number
FR0403488A
Other languages
English (en)
Inventor
Hee Kwan Son
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of FR2851348A1 publication Critical patent/FR2851348A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Description

La présente invention concerne un système
cryptographique à clé publique, et plus particulièrement un multiplieur modulaire du type Montgomery.
Des systèmes cryptographiques sont utilisés dans 5 des communications effectuées au moyen de cartes à microprocesseur, de cartes à circuit intégré, et autres, et ont été développés en passant de systèmes cryptographiques à clé secrète à des systèmes cryptographiques à clé publique. Dans un système cryptographique à clé secrète, 10 deux utilisateurs doivent partager une clé secrète identique pour communiquer l'un avec l'autre. Par conséquent, la gestion de clés et la signature numérique qui sont basées sur un système cryptographique à clé secrète sont difficiles. D'autre part, dans un système 15 cryptographique à clé publique, chaque utilisateur conserve une clé secrète, et tout utilisateur qui connaît la clé publique d'un autre participant peut communiquer avec celui-ci, ce qui facilite un processus pour accomplir commodément des communications secrètes.
Des exemples d'un système cryptographique à clé publique comprennent les suivants: Ron Rivest, Adi Shamir et Len Adleman (RSA), Diffie-Hellman, un algorithme de signature numérique ou DSA (Digital Signature Algorithm), un cryptosystème à courbe elliptique ou ECC (Elliptic Curve 25 Cryptosystem), et autres. Du fait qu'un système cryptographique à clé publique effectue une multiplication modulaire pour accomplir une opération d'exponentiation modulaire, le système doit adopter un multiplieur modulaire.
Un algorithme de multiplication modulaire de Montgomery, connu comme étant l'algorithme de multiplication modulaire le plus efficace, peut être exprimé en pseudo-code sous la forme de l'Algorithme 1 cidessous.
[Algorithme 1] Stimulus: A = (an-1 an-2...a a) a}2, et A < M B = (bn-1 bn2... b1 b0) 2, et B < M M = (mn-1 mn-2... m1 m0)2, et M est impair.
Réponse: S = (Sn Sn-1S n-2 ' Si SO)2 ABR-1 (mod M) Méthode S:=0 For i: = O to n-1 do qi: = so OU-EX (bi ET a0) S: = (S + biA + qiM)/2 endfor Ainsi, dans l'algorithme 1, un terme S (somme) final (dans l'Algorithme 1, le report est exprimé par Sn) qui est calculé dans une boucle "for" est congru à ABR-1 (mod M). Ici, "R-1" est un nombre inverse de R dans la multiplication modulaire "mod M". Lorsque R est égal à 2n, 20 "(R*R-1)mod M" est égal à 1.
L'algorithme de multiplication modulaire de Montgomery effectue seulement des multiplications sur des nombres donnés A, B et M, sans utiliser de divisions, et est plus rapide que d'autres algorithmes. Par conséquent, 25 l'algorithme de multiplication modulaire de Montgomery est largement utilisé dans la réalisation de systèmes cryptographiques à clé publique qui exigent une opération d'exponentiation modulaire.
Des multiplieurs modulaires de Montgomery 30 classiques basés sur un algorithme de multiplication modulaire de Montgomery sont classés comme un multiplieur parallèle, qui utilise un additionneur à propagation de report comme un accumulateur de base, ou comme un multiplieur série, qui utilise un compression 3-2 (3 35 entrées à 2 sorties) (c'est-à-dire un additionneur sans propagation de report constitué d'additionneurs complets) comme un accumulateur de base.
Un additionneur à propagation de report exige un temps de retard de propagation de report sur la base de chaque cycle d'horloge, pour la propagation d'un report à chaque addition de multiples bits. Du fait que 5 l'additionneur à propagation de report ne peut pas augmenter sans limite le temps de retard de propagation de report, la multiplication de nombres représentés par 32 bits est difficile. En d'autres termes, l'additionneur à propagation de report a un produit puissance-retard qui est 10 plus grand que dans un additionneur sans propagation de report. La multiplication d'un nombre à 32 bits par un nombre à 32 bits doit être répétée pour effectuer une multiplication de nombres représentés par 32 bits ou plus.
Du fait qu'un multiplieur série qui utilise un 15 additionneur sans propagation de report utilise un compresseur 3-2 (c'est-à-dire des additionneurs complets), il n'y a pas de problèmes d'un temps de retard de propagation, mais le multiplieur série avec l'additionneur à propagation de report ne peut pas être réalisé aisément 20 par matériel. Le compresseur 3-2 supprime le temps de retard de propagation en effectuant toutes les additions sur chaque bit pour un nombre d'impulsions d'horloge égal au nombre de bits. En d'autres termes, dans un algorithme de multiplication modulaire de Montgomery tel que 25 l'Algorithme 1, il est nécessaire de sommer les quatre mots: report, S, biA et qiM. Cependant, le compresseur 3-2 ne peut recevoir que 3 mots, et par conséquent il apparaît un problème consistant en ce que les deux mots d'entrée principaux biA et qiM doivent être sommés à l'avance. De 30 plus, lorsque le compresseur 3-2 effectue une addition, il doit recevoir: report, S et l'un des quatre mots (c'est-àdire report, S, biA et qjM) et par conséquent, il exige un multiplexeur 4:1 pour sélectionner l'un des quatre mots.
Des modes de réalisation de la présente invention 35 procurent un multiplieur modulaire de Montgomery qui supprime et/ou réduit le temps de retard de propagation en utilisant une structure d'additionneur sans propagation de report (ou CSA pour "Carry Save Adder"), dans laquelle toutes les additions exigées pour chaque bit sont effectuées sur quatre mots (par exemple, report, S, biA et 5 qiM), et des additions dans une structure d'additionneur à propagation de report (ou CPA pour "Carry Propagation Adder") sont effectuées à un étage de sortie, ce qui permet d'obtenir une vitesse de fonctionnement élevée et un produit puissanceretard de faible valeur.
Des modes de réalisation de la présente invention procurent également un procédé de multiplication modulaire de Montgomery dans lequel un temps de retard de propagation est supprimé et/ou réduit en utilisant une structure d'additionneur sans propagation de report (CSA), qui 15 effectue toutes les additions exigées pour chaque bit sur quatre mots (par exemple, report, S, biA et qiM), et effectue des additions dans une structure d'additionneur à propagation de report (CPA) dans un étage de sortie, pour parvenir ainsi à une vitesse de fonctionnement élevée et un 20 produit puissance-retard de faible valeur.
Un autre exemple de mode de réalisation de la présente invention procure un multiplieur modulaire de Montgomery qui calcule une valeur congrue à "ABR'1" (mod M) , dans laquelle A et B sont des nombres d'entrée à n 25 bits, R-1 est un nombre inverse de R en multiplication modulaire "mod M", et M est un modulo. Le multiplieur modulaire de Mongtomery comprend un registre A, un registre B, un registre M, un circuit logique de calcul de biA, un circuit logique de calcul de qi, un circuit logique de calcul de qiM, un 30 compresseur 4-2, un registre S et un registre C. Le registre A stocke une valeur de bit ai (i étant un entier compris dans une plage allant de 0 à n-1) du nombre A, qui est inférieur au modulo M. Le registre B stocke une valeur de bit bi (i étant 35 un entier compris dans une plage allant de 0 à n-1) du nombre B, qui inférieur au modulo M. Le registre M stocke une valeur de bit mi (i étant un entier compris dans une plage allant de 0 à n-l) du modulo M, qui est un nombre impair.
Le circuit logique de calcul de biA multiplie le 5 nombre A par une valeur de bit bi pour obtenir chaque bit de biA.
Le circuit logique de calcul de qi résout une équation logique booléenne "so OU-EX c0 OU-EX (bi ET ao) ", dans laquelle s0 est le bit le moins significatif (LSB) 10 d'une somme S, c0 est le LSB d'un report C, bi est la valeur de bit du nombre B, et ao est le LSB du nombre A, pour obtenir une valeur de bit qi (en désignant par i un entier compris dans la plage de 0 à n-1).
Le circuit logique de calcul de qiM multiplie le 15 modulo M par la valeur de bit qi pour obtenir chaque bit de qiM.
Dans un exemple de mode de réalisation de la présente invention, le compresseur 4-2 effectue tout d'abord n additions sur le report C, la somme S, le terme 20 biA et le terme qiM, pour obtenir des valeurs intermédiaires pour chaque bit de la somme S et du report C dans une structure d'additionneur sans propagation de report, et fait ensuite la somme des valeurs intermédiaires pour obtenir des résultats finals pour S et C dans une 25 structure d'additionneur à propagation de report, en réponse à un signal d'additionneur à propagation de report.
Le registre S actualise une valeur de bit si (i étant un entier compris dans la plage allant de 0 à n-1) de la somme S et stocke la valeur de bit actualisée.
Le registre C actualise une valeur de bit si (i étant un entier compris dans la plage allant de 0 à n-1) du report C et stocke la valeur de bit actualisée.
Dans un exemple de mode de réalisation de la présente invention, le compresseur 4-2 comprend une 35 première unité d'additionneur complet, une unité de multiplexeurs (MUX), et une seconde unité d'additionneur complet. La première unité d'additionneur complet fait la somme d'une valeur de bit biai du terme biA, d'une valeur de bit s1i+ de la somme S et de la valeur de bit ci du report C, pour obtenir un report cAi et une somme sA1.
Dans un exemple de mode de réalisation de la présente invention, l'unité de multiplexeurs fournit sélectivement en sortie soit une valeur de bit qimi du terme qiM, le report cAi-1, et la somme sAi, soit la valeur de bit si+1 de la somme S, la valeur de bit ci du report C 10 et la valeur de bit c-1, du report C, en réponse au signal d'additionneur à propagation de report.
La seconde unité d'additionneur complet effectue n additions sur la valeur de bit qimi du terme qiM, le report cAi-1, et la somme sAi, pour calculer des valeurs de bit 15 intermédiaires si et ci de la somme S et du report C, lorsque le signal d'additionneur à propagation de report est dans un état inactif, et fait ensuite la somme de la valeur de bit si+1 de la somme S, la valeur de bit ci du report C, et la valeur de bit c-1, du report C, pour 20 obtenir des résultats finals de la somme S et du report C, lorsque le signal d'additionneur à propagation de report est dans un état actif.
Dans un exemple de mode de réalisation de la présente invention, la structure d'additionneur sans 25 propagation de report est une structure à 4 entrées, 2 sorties, dans laquelle les première et seconde unités d'additionneur complet fonctionnent lorsque le signal d'additionneur à propagation de report est dans un état inactif.
Dans un exemple de mode de réalisation de la présente invention, la structure d'additionneur à propagation de report est une structure à 3 entrées, 2 sorties, dans laquelle seule la seconde unité d'additionneur complet fonctionne lorsque le signal 35 d'additionneur à propagation de report est dans un état actif.
Le LSB du report cA-1, et le LSB du report c-1, sont dans un premier état logique.
Le bit le plus significatif, ou MSB, de la somme si+, est égal au report cA,-1 une impulsion d'horloge avant 5 que le signal d'additionneur à propagation de report soit activé.
Un autre exemple de mode de réalisation de la présente invention procure un procédé pour accomplir une multiplication modulaire de Montgomery dans un multiplieur 10 modulaire de Montgomery, qui comprend des registres pour stocker des valeurs de bit ai, bi, mi, ci et si (dans lesquelles i désigne un entier compris dans la plage de 0 à n-1) respectivement d'un mot A, un mot B, un modulo M, un report C et une somme S, et calcule une valeur congrue à 15 "ABRP1" (mod M), dans laquelle A et B sont des nombres à n bits d'entrée, R-1 est un nombre inverse de R en multiplication modulaire "mod M", et M est un modulo. Dans le procédé, le nombre A, le nombre B et le modulo M sont reçus. Le nombre A est multiplié par une valeur de bit bi 20 pour obtenir chaque bit de biA. Une équation logique booléenne "so OU-EX c0 OU-EX (bi ET a0)", dans laquelle s0 est le bit le moins significatif (LSB) d'une somme S, c0 est le LSB d'un report C, bi est la valeur de bit du nombre B, et ao est le LSB du nombre A, est obtenue pour obtenir 25 une valeur de bit qi (en désignant par i un entier compris dans la plage de 0 à n-1). Le nombre M est multiplié par la valeur de bit qi pour obtenir chaque bit de qiM. Ensuite, n additions sont effectuées sur le report C, la somme S, le terme biA et le terme qiM, pour obtenir des valeurs 30 intermédiaires pour chaque bit de la somme S et du report C dans une structure d'additionneur sans propagation de report, en réponse à un signal d'additionneur à propagation de report. Les valeurs intermédiaires sont sommées pour obtenir les résultats finals de la somme S et du report C 35 dans une structure d'additionneur à propagation de report, en réponse au signal d'additionneur à propagation de report.
Dans un exemple de mode de réalisation, le nombre A est inférieur au modulo M. Dans un exemple de mode de réalisation, le nombre B est inférieur au modulo M. Dans un exemple de mode de réalisation, le modulo M est un nombre impair.
Dans un exemple de mode de réalisation, les valeurs intermédiaire et finale de la somme S et les valeurs intermédiaire et finale du report C sont calculées de la 10 façon suivante: on fait la somme d'une valeur de bit biAi du terme biA, d'une valeur de bit si+, de la somme S, et de la valeur de bit ci du report C, pour obtenir un report cAi et une somme sAi; on fournit sélectivement en sortie soit une valeur de bit qiMi du terme qiM, le report cAi-1, et la 15 somme sAi, soit la valeur de bit si+, de la somme S, la valeur de bit ci du report C, et une valeur de bit ci1- du report C, en réponse au signal d'additionneur à propagation de report; on effectue n additions sur la valeur de bit qimi du terme qiM, le report cAi-1, et la somme sAi pour 20 calculer des valeurs de bit intermédiaires si et ci de la somme S et du report C, lorsque le signal d'additionneur à propagation de report est dans un état inactif; et fait la somme de la valeur de bit si+, de la somme S, de la valeur de bit ci du report C, et de la valeur de bit c-1, du 25 report C, pour obtenir des résultats finals de la somme S et du report C, lorsque le signal d'additionneur à propagation de report est dans un état actif.
Dans un exemple de mode de réalisation, la structure d'additionneur sans propagation de report est une 30 structure à 4 entrées, 2 sorties, dans laquelle les valeurs intermédiaires de la somme S et du report C sont obtenues à partir de biA et qiM lorsque le signal d'additionneur à propagation de report est dans un état inactif. Cependant, l'additionneur sans propagation de report peut avoir une 35 multiplicité de structures d'entrées et de sorties.
La structure d'additionneur à propagation de report est une structure à 3 entrées, 2 sorties dans laquelle les valeurs finales de la somme S et du report C sont obtenues à partir des valeurs intermédiaires de la somme S et du 5 report C lorsque le signal d'additionneur à propagation de report est dans un état actif. Cependant, l'additionneur à propagation de report peut avoir une multiplicité de structures d'entrées et de sorties.
Le LSB du report cA-1, et le LSB du report c-1, sont 10 dans un premier état logique.
La valeur du MSB de la somme si+, est égale à la valeur de bit cAn-1 une impulsion d'horloge avant que le signal d'additionneur à propagation de report soit activé.
D'autres caractéristiques et avantages de 15 l'invention seront mieux compris à la lecture de la description détaillée qui va suivre d'un mode de réalisation, donné à titre d'exemple non limitatif. La suite de la description se réfère aux dessins annexés, dans lesquels: la figure 1 est un schéma synoptique d'un multiplieur modulaire de Montgomery conforme à un mode de réalisation de la présente invention; la figure 2 est un schéma synoptique plus détaillé du compresseur 4-2 de la figure 1 et de ses circuits 25 périphériques, dans un exemple de mode de réalisation de la présente invention; la figure 3 est un organigramme pour illustrer le fonctionnement du multiplieur modulaire de Montgomery conforme à un mode de réalisation de la présente invention, 30 dans un exemple de mode de réalisation de la présente invention; la figure 4 est un schéma synoptique pour expliquer le fonctionnement d'un additionneur sans propagation de report dans le multiplieur modulaire de Montgomery conforme 35 à un mode de réalisation de la présente invention, dans un exemple de réalisation de la présente invention; et la figure 5 est un schéma synoptique pour expliquer le fonctionnement d'un additionneur à propagation de report dans le multiplieur modulaire de Montgomery conforme à un exemple de mode de réalisation de la présente invention.
En se référant à la figure 1, on note qu'un multiplieur modulaire de Montgomery conforme à un mode de réalisation de la présente invention calcule une valeur congrue à "ABR'1" (mod M) . Ici, A et B sont des nombres à n bits d'entrée, et R-1 est le nombre inverse de R en 10 multiplication modulaire "mod M". Pour réaliser ceci, le multiplieur modulaire de Montgomery comprend un registre A 110, un registre B 120, un registre M 120, un circuit logique de calcul de biA 140, un circuit logique de calcul de qi 150, un circuit logique de calcul de qiM 160, un 15 compresseur 4-2 170, un registre S 180 et un registre C 190.
Le registre A 110 stocke la valeur de bit ai (i désignant un entier compris dans la plage de 0 à n-1) du nombre A, qui est inférieur au modulo M. Le nombre A 20 désigne un mot représentant un nombre à n bits d'entrée, et ai est la valeur de chacun des bits ao à an-, qui constituent le nombre A. Le registre B 120 stocke la valeur de bit bi (i désignant un entier compris dans la plage de 0 à n-l) du 25 nombre B, qui est inférieur au modulo M. Le nombre b désigne un mot représentant un nombre à n bits d'entrée, et bi est la valeur de chacun des bits bo à b.- 1 qui constituent le nombre B. Le registre M 130 stocke la valeur de bit mi (i 30 désignant un entier compris dans la plage de 0 à n-1) du modulo M, qui est un nombre impair. Le modulo M désigne un mot représentant un nombre à n bits d'entrée, et mi est la valeur de chacun des bits mo à mn- 1 qui constituent le modulo M. Le circuit logique de calcul de biA 140 calcule chaque bit de biA en multipliant le nombre A par la valeur de bit bi. Par conséquent, les valeurs des n bits bia0 à bian_1 sont fournies en sortie. A ce moment, du fait que i varie de 0 à n-1 dans la boucle "for" incluse dans l'Algorithme 1, la valeur bi est obtenue à partir de la 5 position du bit le moins significatif (LSB) du registre B 120, qui est décalée d'un bit vers la droite chaque fois qu'un algorithme dans la boucle "for" est accompli, comme représenté sur la figure 1.
Le circuit logique de calcul de qi 150 calcule la 10 valeur qi (i désignant un entier compris dans la plage de 0 à n-l) utilisée dans la boucle "for" de l'Algorithme 1, en résolvant l'équation logique booléenne "so OU-EX c0 OU-EX (bi ET a0)". Ici, s0 est le LSB d'une somme S, c0 est le LSB d'un report C, bi est une valeur de bit du nombre B, et 15 a0 est le LSB du nombre A. A ce moment, du fait que i varie de 0 à n-1 dans la boucle "for" incluse dans l'Algorithme 1, une valeur bi est obtenue partir de la position du LSB du registre B 120, qui est décalée d'un bit vers la droite chaque fois qu'un algorithme dans la boucle "for" est 20 accompli, comme représenté sur la figure 1.
Le circuit logique de calcul de qiM 160 calcule chaque bit de qi en multipliant le modulo M par la valeur de bit qi. Par conséquent, les valeurs des n bits qim0 à qimn_1 sont fournies en sortie. A ce moment, du fait que i 25 varie de 0 à n-1 dans la boucle "for" incluse dans l'Algorithme 1, i augmente d'une unité chaque fois qu'un algorithme dans la boucle "for" est accompli, comme représenté sur la figure 1. Par conséquent, les valeurs des n bits q0 à qn-1 sont fournies en sortie.
Dans un exemple de mode de réalisation de la présente invention, en réponse à un signal d'additionneur à propagation de report ONCPA, le compresseur 4-2, 170, effectue n additions sur les termes C, S, biA et qiM, pour obtenir des valeurs calculées intermédiaires pour chaque 35 bit des termes S et C, dans une structure d'additionneur sans propagation de report. Ensuite, le compresseur 4-2 170 fait la somme des valeurs calculées intermédiaires pour obtenir les résultats finals pour S et C, dans une structure d'additionneur à propagation de report. Lorsque le signal d'additionneur à propagation de report ONCPA est 5 dans un état inactif, c'est-à-dire dans un premier état logique ("0") , des premiers et seconds additionneurs complets fonctionnent en même temps dans la structure d'additionneur sans propagation de report, pour former ainsi une structure à 4 entrées, 2 sorties. Lorsque le signal d'additionneur à propagation de report ONCPA est dans un état actif, c'est-à-dire qu'il est dans un second état logique ("1"), seulement les seconds additionneurs complets fonctionnent dans la structure d'additionneur à propagation de report, en formant ainsi une structure à 3 15 entrées, 2 sorties.
Le registre S 180 actualise et stocke la valeur de bit si de S (i désignant un entier dans la plage allant de 0 à n-1). En d'autres termes, S désigne un mot représentant un nombre à n bits qui est fourni en sortie en tant que 20 somme, et si désigne la valeur de chacun des bits so à Sn1 qui constituent le mot S. Le mot S est actualisé chaque fois qu'une addition est effectuée dans l'additionneur sans propagation de report ou dans l'additionneur à propagation de report inclus dans le compresseur 42 170.
Le registre C 190 actualise et stocke la valeur de bit ci de C (i désignant un entier dans la plage de 0 à n1) . En d'autres termes, C désigne un mot représentant un nombre à n bits qui est fourni en sortie en tant que report, et ci désigne la valeur de chacun des bits c0 à Cn30 1 qui constituent le mot C. Le mot C est actualisé chaque fois qu'une addition est effectuée dans l'additionneur sans propagation de report ou dans l'additionneur à propagation de report inclus dans le compresseur 42 170.
La figure 2 est un schéma synoptique plus détaillé 35 du compresseur 4-2 170 de la figure 1 et de ses circuits périphériques. En se référant à la figure 2, on note que le compresseur 4-2 170 comprend des première et seconde unités d'additionneurs complets 171 et 175 et une unité de multiplexeurs (MUX) 173, qui forment un additionneur avec une structure à 4 entrées, 2 sorties.
Chacun des premiers additionneurs complets de la première unité d'additionneurs complets 171 fait la somme de sa valeur de bit correspondante de biA, de la valeur de bit si+1 de S, et de la valeur de bit ci de C, pour obtenir un report cAi et une somme sAi. La valeur de bit 10 correspondante de biA est biai.
Chacun des multiplexeurs dans l'unité de multiplexeurs 173 fournit sélectivement en sortie soit sa valeur de bit correspondante de qiM, le report cAi_1 et la somme sAi, soit la valeur de bit si+1 de S, la valeur de 15 bit ci de C, et la valeur de bit ci_1 de C, en réponse au signal d'additionneur à propagation de report ONCPA. La valeur de bit correspondante de qiM est qimi.
Lorsque le signal d'additionneur à propagation de report ONCPA est dans un état inactif, c'est-à-dire dans un 20 premier état logique "0", chacun des seconds additionneurs complets de la seconde unité d'additionneurs complets 175 effectue n additions sur la valeur de bit qimi de qiM, le report cAi_1, et la somme sAi, pour calculer des valeurs de bit intermédiaires si et ci de S et de C. Lorsque le signal 25 d'additionneur à propagation de report ONCPA est dans un état actif, c'est-à-dire qu'il est dans un second état logique "1", chacun des seconds additionneurs complets de la seconde unité d'additionneurs complets 175 fait la somme de la valeur de bit si+1 de S, de la valeur de bit ci de C, 30 et de la valeur de bit ci_1 de C, pour obtenir les résultats finals de S et C. Le report cAi_1 désigne le report d'un bit dont la position est inférieure d'un bit à celle du bit du report cAi, qui est fourni en sortie de la première unité 35 d'additionneurs complets 171. La valeur de bit si+1 de S désigne la somme d'un bit dont la position est supérieure d'un bit à celle de la valeur de bit intermédiaire si, qui est fournie en sortie par la seconde unité d'additionneurs complets 175. La valeur de bit c-1, de C désigne le report d'un bit dont la position est inférieure d'un bit à celle 5 de la valeur de bit ci, qui est fournie en sortie par la seconde unité d'additionneurs complets 175.
Comme représenté sur la figure 2, les LSB du report cAi-, et du report c1, sont dans le premier état logique, et le bit le plus significatif (MSB) de la somme si+1 est 10 égal à la valeur de bit cAn-1 une impulsion d'horloge avant que le signal d'additionneur à propagation de report ONCPA soit activé. La valeur de bit cAn-1 est le MSB du report cAi, c'està-dire qu'elle est fournie en sortie de la première unité d'additionneurs complets 171.
On va maintenant décrire en détail, en référence à la figure 3, le fonctionnement du multiplieur modulaire de Montgomery conforme à un mode de réalisation de la présente invention des figures 1 et 2.
Le multiplieur modulaire de Montgomery conforme à 20 un mode de réalisation de la présente invention comprend des registres, qui stockent des valeurs de bit ai, bi, mi, ci et si (i désignant un entier dans la plage allant de 0 à n-1) respectivement d'un mot A, d'un mot B, d'un modulo M, d'un report C et d'une somme S, et calcule une valeur 25 congrue à "ABRP1" (mod M) . Ici, A et B sont des nombres à n bits d'entrée, et R-1 est un nombre inverse de R en multiplication modulaire "mod M".
Dans le fonctionnement du multiplieur modulaire de Montgomery, premièrement, les nombres A et B et le modulo M 30 sont reçus à l'étape S311. A l'étape S313, des registres qui stockent un paramètre i et la somme S sont remis à 0 et initialisés. Les nombres A et B sont inférieurs au modulo M, et M est un nombre impair.
Ensuite, aux étapes S315 à S319, le circuit logique 35 de calcul de qi 150 du multiplieur modulaire de Montgomery obtient une valeur qi (i désignant un entier dans la plage allant de 0 à n-1) utilisée pour la boucle "for" de l'Algorithme 1, en résolvant l'équation logique booléenne "so OU-EX c0 OU-EX (bi ET a0)". Ici, sO est le LSB d'une somme S, c0 est le LSB d'un report C, bi est une valeur de 5 bit du nombre B, et a0 est le LSB du nombre A. De plus, aux étapes S315 à S319, le circuit logique de calcul de biA 140 multiplie le nombre A par la valeur de bit bi pour obtenir chaque bit de biA, et le circuit logique de calcul de qiM 160 calcule chaque bit de qiM en multipliant le modulo M 10 par la valeur de bit qi. De plus, aux étapes S315 à S319, le compresseur 4-2 170 effectue n additions sur C, S, biA et qiM, pour obtenir des valeurs intermédiaires pour chaque bit de S et de C, dans une structure d'additionneur sans propagation de report, qui est formée lorsque le signal 15 d'additionneur à propagation de report ONCPA est dans un état inactif, c'est-à-dire qu'il est dans un premier état logique ("0").
La figure 4 est un schéma synoptique pour expliquer le fonctionnement d'un additionneur sans propagation de 20 report dans le multiplieur modulaire de Montgomery conforme à un mode de réalisation de la présente invention. En se référant aux figures 3 et 4, on note qu'aux étapes S315 à S317 chaque additionneur complet dans l'unité d'additionneurs complets 171 fait la somme de sa valeur de 25 bit correspondante de biA, de la valeur de bit si+1 de S, et de la valeur de bit ci de C, pour obtenir un report cAi etune somme sAi. Chaque second additionneur complet de la seconde unité d'additionneurs complets 175 effectue n additions sur sa valeur de bit correspondante de qiM, de la 30 somme sAi et du report cAi_1, dont la sélection est effectuée par l'unité de multiplexeurs 173, pour calculer ainsi les valeurs intermédiaires si et ci de la somme S et du report C. Comme représenté sur la figure 2, le bit de sortie 35 du report C est appliqué à l'entrée d'un premier additionneur complet correspondant au bit, le bit de sortie de la somme S est appliqué à l'entrée d'un premier additionneur complet correspondant au bit dont la position est inférieure d'un bit à celle du bit de sortie, et une opération de division dans le rapport 1/2 incluse dans la 5 boucle "for" de l'Algorithme 1 est effectuée, à l'étape S315. Le LSB du report cA-1, est dans le premier état logique "0". En d'autres termes, lorsque le signal d'additionneur à propagation de report ONCPA est dans un état inactif, le compresseur 4-2 170 produit la structure 10 d'additionneur sans propagation de report, qui est une structure à 4 entrées, 2 sorties, et calcule les valeurs intermédiaires de S et C en utilisant le terme biA et le terme qiM.
Après que les valeurs intermédiaires de S et C ont 15 été calculées pour chaque bit, le signal d'additionneur à propagation de report ONCPA est activé et passe au second état logique "1", à l'étape S321. Aux étapes S323 à S327, le compresseur 4-2 170 fait la somme des valeurs intermédiaires calculées pour S et C, pour obtenir les 20 valeurs finales de S et C, dans la structure d'additionneur à propagation de report.
La figure 5 est un schéma synoptique pour expliquer le fonctionnement de l'additionneur à propagation de report dans le multiplieur modulaire de Montgomery conforme à un 25 mode de réalisation de la présente invention. En se référant aux figures 3 et 5, on note qu'à l'étape S323, la seconde unité d'additionneurs complets 175 fait la somme de la valeur de bit si+, de S, de la valeur de bit ci de C, et de la valeur de bit c-1, de C, qui sont sélectionnées par 30 l'unité de multiplexeurs 173, pour calculer les résultats finals de S et C. Comme représenté sur la figure 2, le MSB de la somme si+, est égal à la valeur de bit cAn-1 une impulsion d'horloge avant que le signal d'additionneur à propagation de report ONCPA soit activé. Le LSB du report 35 c-1, est dans le premier état logique "0".
A l'étape S325, la valeur de bit si+, de S, la valeur de bit ci de C, et la valeur de bit ci1- de C sont sommées pendant un intervalle de temps (un temps de retard de propagation pour un bit)* (n bits), dans la structure 5 d'additionneur à propagation de report. Le temps de retard de propagation pour un bit comprend le temps de retard de propagation de la seconde unité d'additionneurs complets 175 et le temps de retard de chacun des multiplexeurs 2:1 de l'unité de multiplexeurs 173. En d'autres termes, 10 lorsque le signal d'additionneur à propagation de report ONCPA est dans un état actif, une structure d'additionneur à propagation de report à 3 entrées, 2 sorties est établie, et les valeurs intermédiaire de S et C sont sommées dans la structure à 3 entrées, 2 sorties pour calculer les valeurs 15 finales de S et C. Comme décrit ci-dessus, le multiplieur modulaire de Montgomery conforme à un mode de réalisation de la présente invention comprend des registres qui stockent des valeurs de bit ai, bi, mi, ci et si (i désignant un entier dans la 20 plage allant de 0 à n-1) respectivement d'un mot A, d'un mot B, d'un modulo M, d'un report C et d'une somme S, et calcule une valeur congrue à "ABR'1" (mod M) . Ici, A et B sont des nombres à n bits d'entrée, et R-1 est un nombre inverse de P. en multiplication modulaire "mod M". Le 25 circuit logique de calcul de biA 140 calcule chaque bit de biA en multipliant le nombre A par la valeur de bit bi. A ce moment, le circuit logique de calcul de qi 150 calcule une valeur qi (i désignant un entier compris dans la plage allant de 0 à n-1) en résolvant une équation logique 30 booléenne "so OU- EX c0 OU-EX (bi ET a()". Ici, s0 est le LSB d'une somme S, c0 est le LSB d'un report C, bi est une valeur de bit du nombre B, et ao est le LSB du nombre A. Le circuit logique de calcul de qiM 160 calcule chaque bit de qiM en multipliant le modulo M par la valeur de bit qi. En 35 réponse au signal d'additionneur à propagation de report ONCPA, le compresseur 4-2 170 effectue n additions sur C, S, b1A et qiM, pour obtenir des valeurs calculées intermédiaires pour chaque bit de S et de C, dans une structure d'additionneur sans propagation de report.
Ensuite, le compresseur 4-2 170 fait la somme des valeurs 5 calculées intermédiaires pour obtenir les résultats finals de S et de C dans une structure d'additionneur à propagation de report. Les résultats de S et C sont respectivement émis vers les registres S et C, 180 et 190.
Comme décrit ci-dessus, le multiplieur modulaire de 10 Montgomery conforme à un mode de réalisation de la présente invention élimine un temps de retard de propagation en utilisant une structure d'additionneur sans propagation de report (CSA), dans laquelle toutes les additions nécessaires pour chaque bit sont effectuées en premier sur 15 quatre mots (par exemple C, S, biA et qM), et il effectue ensuite des additions dans une structure d'additionneur à propagation de report (CPA) seulement dans un étage de sortie final. Par conséquent, on obtient une vitesse de fonctionnement élevée et un produit puissance-retard de 20 faible valeur, ce qui améliore les performances d'un algorithme de multiplication modulaire de Montgomery.
Bien que des modes de réalisation de la présente invention aient été décrits en référence à diverses figures, les détails des figures ne doivent pas être 25 interprétés d'une manière qui limite le cadre des modes de réalisation de la présente invention. Par exemple, la figure 1 illustre l'utilisation d'un compresseur 4-2. Le cadre de la présente invention n'est pas limité à un compresseur 4-2, et divers modes de réalisation peuvent 30 utiliser une multiplicité de compresseurs d'entrée et de sortie. De façon similaire, le cadre des modes de réalisation de la présente invention n'est pas limité à trois registres, A, M et B. D'autres registres peuvent être incorporés en combinaison avec une compresseur ayant une 35 multiplicité d'entrées et de sorties. En outre, les bases des exemples des divers modes de réalisation ne sont pas 1 9 limitées à une valeur de base particulière.
Il va de soi que de nombreuses autres modifications peuvent être apportées au dispositif et au procédé décrits et représentés, sans sortir du cadre de l'invention.

Claims (1)

REVENDICATIONS
1. Procédé pour effectuer une multiplication de Montgomery à base 2N, avec N 2 1, caractérisé en ce qu'il 5 comprend les étapes suivantes: on reçoit un multiplicande (A), un modulo (M) et un multiplicateur (B); on effectue une addition sans propagation de report sur au moins quatre grandeurs d'entrée liées au multiplicande, au modulo et au multiplicateur, pour générer un résultat en représentation 10 redondante; et on effectue une addition avec propagation de report pour générer un résultat en représentation normale, en réponse à un signal d'additionneur à propagation de report (ONCPA)
FR0403488A 2002-12-30 2004-04-02 Multiplieur modulaire de montgomery et procede de multiplication correspondant Pending FR2851348A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0087243A KR100459732B1 (ko) 2002-12-30 2002-12-30 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법

Publications (1)

Publication Number Publication Date
FR2851348A1 true FR2851348A1 (fr) 2004-08-20

Family

ID=32501461

Family Applications (3)

Application Number Title Priority Date Filing Date
FR0314199A Expired - Fee Related FR2849512B1 (fr) 2002-12-30 2003-12-03 Multiplieur modulaire de montgomery et procede de multiplication correspondant
FR0403488D Expired - Fee Related FR2867580B1 (fr) 2002-12-30 2004-04-02 Multiplieur modulaire de montgomery et procede de multiplication correspondant
FR0403488A Pending FR2851348A1 (fr) 2002-12-30 2004-04-02 Multiplieur modulaire de montgomery et procede de multiplication correspondant

Family Applications Before (2)

Application Number Title Priority Date Filing Date
FR0314199A Expired - Fee Related FR2849512B1 (fr) 2002-12-30 2003-12-03 Multiplieur modulaire de montgomery et procede de multiplication correspondant
FR0403488D Expired - Fee Related FR2867580B1 (fr) 2002-12-30 2004-04-02 Multiplieur modulaire de montgomery et procede de multiplication correspondant

Country Status (4)

Country Link
US (1) US7412474B2 (fr)
KR (1) KR100459732B1 (fr)
DE (1) DE10357661B4 (fr)
FR (3) FR2849512B1 (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805479B2 (en) * 2006-03-28 2010-09-28 Michael Andrew Moshier Scalable, faster method and apparatus for montgomery multiplication
EP2015171A1 (fr) * 2007-06-29 2009-01-14 Gemplus Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés sans la connaissance de l'exposant public, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
JP5674642B2 (ja) * 2008-05-07 2015-02-25 ナノコンプ テクノロジーズ インコーポレイテッド カーボンナノチューブベースの同軸電気ケーブルおよびワイヤハーネス
KR101128505B1 (ko) * 2008-12-03 2012-03-27 한국전자통신연구원 모듈러 곱셈 연산 방법 및 장치
KR20110105555A (ko) 2010-03-19 2011-09-27 삼성전자주식회사 효율적인 하드웨어 구성을 갖는 몽고메리 승산기
DE102010051853A1 (de) * 2010-11-18 2012-05-24 Giesecke & Devrient Gmbh Verfahren zur Langzahldivision
DE102011100390A1 (de) 2011-05-04 2012-11-08 Giesecke & Devrient Gmbh Beschleunigte kryptographische Berechnung, insbesondere ECC-Berechnung, in Prozessor mit Montgomery-Koprozessor
FR2986925B1 (fr) * 2012-02-15 2014-02-21 Bull Sas Procede et dispositif electronique de generation d'un signal d'horloge variable
CN103577638B (zh) * 2013-10-29 2016-03-16 电子科技大学 一种模乘法器
CN103699358B (zh) * 2013-12-05 2016-11-23 西安交通大学 一种适用于大数的快速模平方运算电路
CN105469510B (zh) * 2014-10-12 2018-01-09 吴思进 可预告延时支付或找回的加密货币钱包
KR101830230B1 (ko) * 2016-12-23 2018-02-21 한국전자통신연구원 모듈러 곱셈 장치 및 방법
CN112068800B (zh) * 2020-08-10 2022-10-25 北京草木芯科技有限公司 阵列压缩器及具有其的大数乘法器
CN113721986B (zh) * 2021-07-23 2024-02-09 浪潮电子信息产业股份有限公司 一种数据压缩方法、装置及电子设备和存储介质
TWI802095B (zh) * 2021-11-22 2023-05-11 財團法人工業技術研究院 模數乘法電路與對應之計算模數乘法之方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2788867A1 (fr) * 1999-01-20 2000-07-28 Toshiba Kk Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
WO2002073450A1 (fr) * 2001-03-14 2002-09-19 Bull S.A. Procede et dispositif pour reduire le temps de calcul d'un produit, d'une multiplication et d'une exponentiation modulaire selon la methode de montgomery

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5073870A (en) * 1989-01-30 1991-12-17 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
FR2726667B1 (fr) 1994-11-08 1997-01-17 Sgs Thomson Microelectronics Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery
KR100267009B1 (ko) * 1997-11-18 2000-09-15 윤종용 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치
DE10107376A1 (de) * 2001-02-16 2002-08-29 Infineon Technologies Ag Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
US6973470B2 (en) * 2001-06-13 2005-12-06 Corrent Corporation Circuit and method for performing multiple modulo mathematic operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2788867A1 (fr) * 1999-01-20 2000-07-28 Toshiba Kk Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
WO2002073450A1 (fr) * 2001-03-14 2002-09-19 Bull S.A. Procede et dispositif pour reduire le temps de calcul d'un produit, d'une multiplication et d'une exponentiation modulaire selon la methode de montgomery

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DRESCHER W ET AL: "VLSI architectures for multiplication in GF(2<m>) for application tailored digital signal processors", VLSI SIGNAL PROCESSING, IX, 1996., YWORKSHOP ON SAN FRANCISCO, CA, USA 30 OCT.-1 NOV. 1996, NEW YORK, NY, USA,IEEE, US, 30 October 1996 (1996-10-30), pages 55 - 64, XP010198998, ISBN: 0-7803-3134-6 *
TAKAGI N ED - KORNERUP P ET AL: "A radix-4 modular multiplication hardware algorithm efficient for iterative modular multiplications", COMPUTER ARITHMETIC, 1991. PROCEEDINGS., 10TH IEEE SYMPOSIUM ON GRENOBLE, FRANCE 26-28 JUNE 1991, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 26 June 1991 (1991-06-26), pages 35 - 42, XP010034049, ISBN: 0-8186-9151-4 *

Also Published As

Publication number Publication date
US7412474B2 (en) 2008-08-12
FR2867580A1 (fr) 2005-09-16
FR2849512A1 (fr) 2004-07-02
DE10357661A1 (de) 2004-07-15
US20040125948A1 (en) 2004-07-01
KR100459732B1 (ko) 2004-12-03
FR2867580B1 (fr) 2007-03-30
DE10357661B4 (de) 2009-04-16
FR2849512B1 (fr) 2007-03-02
KR20040060445A (ko) 2004-07-06

Similar Documents

Publication Publication Date Title
FR2851348A1 (fr) Multiplieur modulaire de montgomery et procede de multiplication correspondant
JP3784156B2 (ja) モジュラ掛け算方法
EP0712071B1 (fr) Procédé de mise en oeuvre de multiplication modulaire selon la méthode de montgomery
FR2867579A1 (fr) Multiplieur modulaire de montgomery
FR2788867A1 (fr) Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
EP0712072A1 (fr) Procédé de mise en oeuvre de réduction modulaire selon la méthode de Montgomery
EP1368747B1 (fr) Procede et dispositif pour reduire le temps de calcul d&#39;un produit, d&#39;une multiplication et d&#39;une exponentiation modulaire selon la methode de montgomery
EP0692762B1 (fr) Circuit logique de multiplication parallèle
JP2004326112A (ja) マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
Gutub et al. Scalable VLSI architecture for GF (p) Montgomery modular inverse computation
WO2020012104A1 (fr) Circuit de génération de facteurs de rotation pour processeur ntt
FR2724741A1 (fr) Circuit electronique de calcul modulaire dans un corps fini
Sakiyama et al. Reconfigurable modular arithmetic logic unit for high-performance public-key cryptosystems
WO1999004332A1 (fr) Calcul d&#39;inverses multiplicateurs a champs composites a des fins de cryptographie de courbes elliptiques
EP0610996B1 (fr) Dispositif pour effectuer une division
Morita A fast modular-multiplication algorithm based on a higher radix
EP0947913B1 (fr) Procédé de réalisation amélioré d&#39;une division entière
McIvor et al. A high-speed, low latency RSA decryption silicon core
Sanu et al. Parallel montgomery multipliers
CN112230886B (zh) 免除Toom-Cook的处理装置和基于其的模乘获取方法
EP1335277B1 (fr) Opérateur saturant à haute efficacité
Wu Elliptic curve GF (p) point multiplier by dual arithmetic cores
FR2859030A1 (fr) Procede de realisation d&#39;une multiplication modulaire et procede de realisation d&#39;une multiplication euclidienne sur des nombres de 2n bits
KR19990086179A (ko) 모듈러 연산장치 및 그 방법
EP1660989A2 (fr) Reduction modulaire pour un procede cryptographique, et coprocesseur pour la realisation d&#39;une telle reduction modulaire