FR2849512A1 - 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
FR2849512A1
FR2849512A1 FR0314199A FR0314199A FR2849512A1 FR 2849512 A1 FR2849512 A1 FR 2849512A1 FR 0314199 A FR0314199 A FR 0314199A FR 0314199 A FR0314199 A FR 0314199A FR 2849512 A1 FR2849512 A1 FR 2849512A1
Authority
FR
France
Prior art keywords
carry
bit value
bit
adder
sum
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
Application number
FR0314199A
Other languages
English (en)
Other versions
FR2849512B1 (fr
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 FR2849512A1 publication Critical patent/FR2849512A1/fr
Application granted granted Critical
Publication of FR2849512B1 publication Critical patent/FR2849512B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related 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)

Abstract

Un multiplieur modulaire de Montgomery reçoit dans des registres (110, 130, 120) un multiplicande (A), un modulo (M) et un multiplicateur (B), et comporte un compresseur t-s (170), avec t > 3 et s > 1. En réponse à un signal d'additionneur à propagation de report (ONCPA), le compresseur t-s (170) effectue des additions sur le report C et la somme S, et obtient les résultats finals dans une structure d'additionneur à propagation de report.

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)2, et A < M B = (bn-1 bn-2..b1 bo0)2, et B < M M = (mn-1 mn-2... ml mO0)2, et M est impair.
Réponse: S = (Sn SnS n-2... S S0)2 ABR-1 (mod M) Méthode S:=0 For i: = 0 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 qM) 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-l) 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-1) 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 "s0 OU-EX c0 OU-EX (bi ET a0)", 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-).
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-l) 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 si+, de la somme S et de la valeur de bit ci du report C, pour obtenir un report cAi et une somme sAi.
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+, 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+, de la somme S, la valeur de bit ci du report C, et la valeur de bit ci-, 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 cAi1- 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 cAn-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 "ABR-1" (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 co OU-EX (bi ET ao)", dans laquelle so 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 biA1 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 c-1, 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 cAi-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-1 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-1) 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 à bn-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-1) utilisée dans la boucle "for" de l'Algorithme 1, en résolvant l'équation logique booléenne "s0 OU-EX c0 OU-EX (bi ET ao)". 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 ao 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 qjm0 à 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 augmenté 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 10 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+, 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 cA-1, et du report ci, 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 à "'ABR-1"' (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, 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 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 et une 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 "O". 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+1 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 ci-, est dans le premier état logique "0".
A l'étape S325, la valeur de bit si+1 de S, la valeur de bit ci de C, et la valeur de bit ci-1 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 O à 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 R 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 O à n-1) en résolvant une équation logique 30 booléenne "so OU- EX co OU-EX (bi ET ao)". Ici, s0 est le LSB d'une somme S, co 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, biA 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 (16)

REVENDICATIONS
1. Multiplieur modulaire de Montgomery qui calcule une valeur congrue à "ABR-1" (mod M), dans laquelle A et B sont des nombres à n bits d'entrée, R-1 est un nombre 5 inverse de R en multiplication modulaire "mod M", et M est un modulo, le multiplieur modulaire de Montgomery étant caractérisé en ce qu'il comprend: un registre A (110) stockant une valeur de bit ai (i étant un entier compris dans une plage allant de 0 à n-1) du nombre A, qui est 10 inférieur au modulo M; un registre B (120) stockant une valeur de bit bi du nombre B, qui est inférieur au modulo M; un registre M (130) stockant une valeur de bit mi du modulo M, qui est un nombre impair; un circuit logique de calcul de biA (140) multipliant le nombre A par bi pour 15 obtenir biA; un circuit logique de calcul de qi (140) résolvant une équation logique booléenne "s0 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 a0 est le LSB du 20 nombre A, pour obtenir une valeur de bit qi; un circuit logique de calcul de qiM (160) multipliant M par qi pour obtenir qiM; un compresseur 4-2 (170) effectuant tout d'abord n additions sur le report C, la somme S, le terme biA et le terme qiM, pour obtenir des valeurs 25 intermédiaires, et faisant la somme des valeurs intermédiaires pour obtenir un résultat par un additionneur à propagation de report, en réponse à un signal d'additionneur à propagation de report (ONCPA); un registre S (180) actualisant une valeur de bit si de la somme S et 30 stockant la valeur de bit actualisée; et un registre C (190) actualisant une valeur de bit ci du report C et stockant la valeur de bit actualisée.
2. Multiplieur modulaire de Montgomery selon la revendication 1, caractérisé en ce que le compresseur 4-2 35 comprend: une première unité d'additionneurs complets (171), faisant la somme d'une valeur de bit biai de biA, d'une valeur de bit si+1 de la somme S, et de la valeur de bit ci du report C, pour obtenir un report cAi et une somme sAi; une unité de multiplexeurs (173) fournissant sélectivement en sortie soit une valeur de bit qiMi de qiM, 5 le report cAi_1 et sAi, soit la valeur de bit si+1 de S, la valeur de bit ci du report C, et la valeur de bit ci_1 de C, en réponse au signal d'additionneur à propagation de report (ONCPA); une seconde unité d'additionneurs complets (175) effectuant n additions sur la valeur de bit qimi de 10 qiM, cAi_1 et sAi, pour calculer des valeurs de bit intermédiaires si et ci de S et C, lorsque le signal d'additionneur à propagation de report (ONCPA) est dans un état inactif, et faisant ensuite la somme de la valeur de bit si+1 de S, de la valeur de bit ci de C, et de la valeur 15 de bit ci_1 de C, pour obtenir des résultats finals de la somme S et du report C, lorsque le signal d'additionneur à propagation de report (ONCPA) est dans un état actif.
3. Multiplieur modulaire de Montgomery selon la revendication 1, caractérisé en ce que la structure 20 d'additionneur sans propagation de report est une structure à 4 entrées, 2 sorties, dans laquelle les premières et secondes unités d'additionneurs complets (171, 175) fonctionnent lorsque le signal d'additionneur à propagation de report (ONCPA) est dans un état inactif.
4. Multiplieur modulaire de Montgomery selon la revendication 1, caractérisé en ce que la structure d'additionneur à propagation de report est une structure à 3 entrées, 2 sorties, dans laquelle seule la seconde unité d'additionneurs complets (175) fonctionne lorsque le signal 30 d'additionneur à propagation de report (ONCPA) est dans un état actif.
5. Multiplieur modulaire de Montgomery selon la revendication 2, caractérisé en ce que le LSB du report cAi_1 et le LSB du report ci_1 sont dans un premier état 35 logique.
6. Multiplieur modulaire de Montgomery selon la revendication 2, caractérisé en ce que le bit le plus significatif (MSB) de la somme si+1 est égal au report cAn_1 une impulsion d'horloge avant que le signal d'additionneur à propagation de report (ONCPA) soit activé.
7. Procédé pour effectuer une multiplication modulaire de Montgomery dans un multiplieur modulaire de Montgomery, qui comprend des registres (110, 120, 130, 190, 180) pour stocker des valeurs de bit ai, bi, mi, ci et si 10 (i désignant un entier compris dans la plage 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), dans laquelle A et B sont des nombres à n bits d'entrée, R-1 est un nombre inverse de R en 15 multiplication modulaire "mod M", et M est un modulo, le procédé étant caractérisé en ce qu'il comprend les étapes suivantes: on reçoit le nombre A, le nombre B et le modulo M; on multiple le nombre A par une valeur de bit bi pour obtenir chaque bit de biA; on résout une équation logique 20 booléenne "so OU-EX c0 OU-EX (bi ET a0)", dans laquelle so 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 a0 est le LSB d'un nombre A, pour obtenir une valeur de bit qi (i désignant un entier compris dans la plage 25 allant de 0 à n-l); on multiplie le nombre M par la valeur de bit qi pour obtenir chaque bit de qiM: on effectue n additions sur le report C, la somme S, le terme 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 30 d'additionneur sans propagation de report, en réponse à un signal d'additionneur à propagation de report (ONCPA); et on fait la somme des valeurs intermédiaires pour obtenir les résultats finals de la somme S et du report C dans une structure d'additionneur à propagation de report, en 35 réponse au signal d'additionneur à propagation de report (ONCPA).
8. Procédé selon la revendication 7, caractérisé en ce que le nombre A est inférieur au modulo M.
9. Procédé selon la revendication 7, caractérisé en ce que le nombre B est inférieur au modulo M.
10. Procédé selon la revendication 7, caractérisé en ce que le modulo M est un nombre impair.
11. Procédé selon la revendication 7, caractérisé en ce que les valeurs intermédiaire et finale de S et les valeurs intermédiaire et finale de C sont calculées par les 10 étapes suivantes: on fait la somme d'une valeur de bit biai de biA, d'une valeur de bit si+, de S, et de la valeur de bit ci de C, pour obtenir un report cAi et sAi; on fournit sélectivement en sortie soit une valeur de bit qimi de qiM, cA- 1, et sAi, soit la valeur de bit si+1 de S, la 15 valeur de bit ci de C, et une valeur de bit c-1, de C, en réponse au signal d'additionneur à propagation de report (ONCPA); on effectue n additions sur la valeur de bit qimi de qiM, cA-1, et sAi pour calculer des valeurs de bit intermédiaires si et ci de S et C, lorsque le signal 20 d'additionneur à propagation de report (ONCPA) est dans un état inactif; et on 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 ci-1 de C, pour obtenir des résultats finals de S et C, lorsque le signal d'additionneur à propagation de report 25 (ONCPA) est dans un état actif.
12. Procédé selon la revendication 7 ou 11, dans lequel la structure d'additionneur à propagation de report est une structure à 4 entrées, 2 sorties, dans laquelle les valeurs intermédiaires de S et C sont obtenues à partir de 30 biA et qiM lorsque le signal d'additionneur à propagation de report (ONCPA) est dans un état inactif.
13. Procédé selon la revendication 7 ou 11, caractérisé en ce que la structure d'additionneur à propagation de report est une structure à 3 entrées, 2 sorties, dans laquelle les valeurs finales de S et C sont obtenues à partir des valeurs intermédiaires de S et C lorsque le signal d'additionneur à propagation de report (ONCPA) est dans un état actif.
14. Procédé selon la revendication 11, caractérisé en ce que le bit le moins significatif (LSB) de cAi_1 et le LSB de ci_1 sont dans un premier état logique.
15. Procédé selon la revendication 11, caractérisé en que la valeur du bit le plus significatif (MSB) de si+1 est égale à la valeur de bit cAn_1 une impulsion d'horloge avant que le signal d'additionneur à propagation de report 10 (ONCPA) soit activé.
16. Multiplieur de Montgomery caractérisé en ce qu'il comprend: un registre de multiplicande (A) (110), stockant une valeur de bit ai du nombre A; un registre de modulo (M) (130), stockant une valeur de bit mi du nombre 15 M; un registre de multiplicateur (B) (120), stockant une valeur de bit bi du nombre B; un circuit logique de calcul de biA (140) multipliant le nombre A par une valeur de bit bi pour obtenir chaque bit de biA; un circuit logique de calcul de qi (150) résolvant une équation logique booléenne 20 "sO OU-EX c0 OU-EX (bi ET a0) ", dans laquelle sO 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 a0 est le LSB du nombre A, pour obtenir une valeur de bit qi (i désignant un entier compris dans la plage de 0 à n-l); 25 un circuit logique de calcul de qiM (160) multipliant le modulo M par la valeur de bit qi pour obtenir chaque bit de qiM; et un compresseur t-s, dans lequel t > 3 et s > 1, effectuant n additions 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, et faisant la somme des valeurs intermédiaires pour obtenir des résultats finals de S et C par une structure d'additionneur à propagation de report, en réponse à un 35 signal d'additionneur à propagation de report (ONCPA).
FR0314199A 2002-12-30 2003-12-03 Multiplieur modulaire de montgomery et procede de multiplication correspondant Expired - Fee Related FR2849512B1 (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 (2)

Publication Number Publication Date
FR2849512A1 true FR2849512A1 (fr) 2004-07-02
FR2849512B1 FR2849512B1 (fr) 2007-03-02

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 After (2)

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

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
EP2279512B1 (fr) * 2008-05-07 2019-10-23 Nanocomp Technologies, Inc. Câbles électriques coaxiaux à base de nanotube de carbone et câblage électrique
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
CA2008774C (fr) * 1989-01-30 1999-10-05 Hikaru Morita Methode de multiplication modulaire et systeme connexe de traitement des donnees
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 (3)

* 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 *
ORUP H ED - KNOWLES S ET AL: "Simplifying quotient determination in high-radix modular multiplication", COMPUTER ARITHMETIC, 1995., PROCEEDINGS OF THE 12TH SYMPOSIUM ON BATH, UK 19-21 JULY 1995, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 19 July 1995 (1995-07-19), pages 193 - 199, XP010146635, ISBN: 0-8186-7089-4 *
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
DE10357661A1 (de) 2004-07-15
FR2851348A1 (fr) 2004-08-20
US7412474B2 (en) 2008-08-12
KR100459732B1 (ko) 2004-12-03
FR2867580A1 (fr) 2005-09-16
US20040125948A1 (en) 2004-07-01
FR2867580B1 (fr) 2007-03-30
FR2849512B1 (fr) 2007-03-02
KR20040060445A (ko) 2004-07-06
DE10357661B4 (de) 2009-04-16

Similar Documents

Publication Publication Date Title
Yang et al. A new RSA cryptosystem hardware design based on Montgomery's algorithm
FR2849512A1 (fr) Multiplieur modulaire de montgomery et procede de multiplication correspondant
FR2867579A1 (fr) Multiplieur modulaire de montgomery
FR2788867A1 (fr) Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
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
TWI263402B (en) Reconfigurable fir filter
EP2000904A1 (fr) Procédé de multiplication modulaire de Montgomery masquée et dispositif associé
EP0692762A1 (fr) Circuit logique de multiplication parallèle
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
FR2724741A1 (fr) Circuit electronique de calcul modulaire dans un corps fini
WO2020012104A1 (fr) Circuit de génération de facteurs de rotation pour processeur ntt
EP0947913B1 (fr) Procédé de réalisation amélioré d&#39;une division entière
CN102646033B (zh) 提供了加密和签名功能的rsa算法的实现方法和装置
FR2818765A1 (fr) Multiplicateur modulaire et processeur de cryptage/decryptage utilisant le multiplicateur modulaire
Ghosh et al. A new architecture for FPGA implementation of a MAC unit for digital signal processors using mixed number system
US20030182339A1 (en) Emod a fast modulus calculation for computer systems
Sanu et al. Parallel montgomery multipliers
EP1335277B1 (fr) Opérateur saturant à haute efficacité
CN112230886B (zh) 免除Toom-Cook的处理装置和基于其的模乘获取方法
Arunachalamani et al. High Radix Design for Montgomery Multiplier in FPGA platform
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
Mohan Fast algorithms for implementation of montgomery's modular multiplication technique
Chen et al. A new montgomery modular multiplication algorithm and its VLSI design for RSA cryptosystem
EP4170479A1 (fr) Circuit intégré comprenant un calculateur matériel et procédé de calcul correspondant

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150831