EP1362284A1 - Methode pour multiplier deux nombres binaires - Google Patents
Methode pour multiplier deux nombres binairesInfo
- Publication number
- EP1362284A1 EP1362284A1 EP02703685A EP02703685A EP1362284A1 EP 1362284 A1 EP1362284 A1 EP 1362284A1 EP 02703685 A EP02703685 A EP 02703685A EP 02703685 A EP02703685 A EP 02703685A EP 1362284 A1 EP1362284 A1 EP 1362284A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- operand
- bits
- variable
- constant
- left shift
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
Definitions
- the present invention relates to a method for multiplying two binary numbers.
- Multiplication is an arithmetic operation performed by digital processors by means of elementary operations such as shifting or adding.
- the complexity of a multiplication can be assessed by estimating the quantity of elementary operations to perform to reach the result. It depends directly on the size of the two numbers to be multiplied.
- the present invention thus relates to a multiplication method having reduced complexity.
- a method for calculating the product of a first and a second binary number, the first number resulting from the concatenation of a first constant A and a first variable X of u bits, all the bits of the first constant A being equal to 1, the second number comprising s bits, method according to which this product results from a sequence of operations of which the most complex is a multiplication of u bits by s bits.
- the method comprises the following operations: - a first left shift operation of (u + l) bits of the second number to obtain a first operand,
- the third operand is obtained by means of the following operations: - a fourth left shift operation of (v + m) bits of the first variable X to obtain a fourth operand,
- the method comprises the following operations:
- the method comprises the following operations :
- the second operand results from the following operations: - a fourth left shift operation of (u + l) bits of the second variable Y to obtain a fourth operand,
- the second constant B being equal to the first constant A
- the number v of bits of the second variable Y being equal to the number u of bits of the first variable X
- the second operand results from the following operations: - a fourth operation of adding the first variable X and second Y to obtain a fourth operand
- the method comprises the following operations: - a first operation for defining a first operand whose value is 2exp (2 (u + D) - 2exp (2u + l + 1) + 2exp (2u) .a second left shift operation of (u + l + 1) bits of the first variable X to obtain a second operand,
- the invention also relates to a device comprising means for implementing the above method. It advantageously applies to cryptography, in particular to the encryption of a signature.
- FIG. 1 a representation of the two binary numbers
- the first number F can be analyzed as the concatenation of a first constant A and a first variable X.
- the constant A has I bits all equal to 1 and the variable X has a length of u bits.
- the invention has an advantage when the value of I is greater than 1, although it also applies otherwise.
- the product P is therefore analyzed as the sum of three operands.
- the first operand which is worth 2exp (u + l) .S is obtained by practicing a left shift on the second number S of (u + l) bits and, naturally, by forcing at 0 the (u + l) bits of weight low of the shifted number.
- the second operand which is worth 2expu.S is obtained by practicing a left shift of u bits and a sign inversion.
- the third operand is obtained by multiplying the first variable X by the second number S, using any known method.
- the invention thus makes it possible to replace a multiplication of (u + l) bits by s bits with a set of operations comprising two shifts, a sign inversion, two additions and a multiplication of u bits by s bits.
- the advantage provided by the invention is all the more significant the larger I is.
- the second number S can also be analyzed as the concatenation of a constant B and a variable Y.
- the third operand XS is analyzed also as the sum of three operands, the fourth operand which is worth 2exp (v + m) .X which is obtained by practicing a left shift on the first variable X of (v + m) bits, the fifth operand which is worth - 2expv .X which is obtained by practicing a left shift of v bits and a sign inversion and the sixth operand which is obtained by multiplying the first X and second Y variables.
- the most complex operation is a multiplication of u bits by v bits.
- the invention takes advantage of the fact that the second constant B is equal to the first constant A and that the size v of the second variable Y is identical to the size u of the first variable X.
- the product P s' then writes:
- the product P is here obtained by means of the following four operations.
- a first operand is obtained by adding the first variable X and the second number S.
- a second operand is obtained by left shift of (u + l) bits of the first operand.
- a third operand is obtained by left shift of u bits and inversion of sign of the first operand.
- a fourth operand is obtained by multiplying the first X and second Y variables. Finally, product F is obtained by adding these four operands.
- the invention also considers that the first F, respectively the second number S, result from the concatenation of a first constant A and a first variable X, respectively of a second constant B and a second variable Y.
- the product P is also presented here as the sum of three operands.
- the first operand which is worth A.B.2exp (u + v) is easily defined as any binary number expressed by a series of coefficients each corresponding to a power of 2.
- the second operand is worth (A.2exp_u.Y + B.2expv.X) and the third operand is obtained by multiplying the first X and second Y variables.
- the second operand is calculated directly from the expression 2e ⁇ p_ (u + l) .Y - 2e ⁇ pu.Y + 2e ⁇ p_ (v + m) .X - 2expv.X
- the two numbers F and S are equal, which amounts to saying that the multiplication becomes an elevation squared of the first number F.
- the product P also appears here as the sum of four operands.
- the first operand that appears in square brackets in equation [3] above is a simple binary number.
- the second operand is obtained by a left shift of (u + l + 1) bits of the variable X.
- the third operand is obtained by a left shift of (u + 1) bits of this variable X.
- the fourth operand is therefore obtained by squaring the variable X.
- the invention presented above thus makes it possible to reduce the size of the numbers which must be multiplied when calculating a product. It can be used on any numbers, in which case it is first necessary to identify the first constant A by searching for a series of bits at 1 at the head of the first number. It can also be used when this constant A is known a priori.
- PKCS # 1 notably defines the signature G of a message m within the framework of the encryption algorithm known under the name of RSA (from the name of its authors Ron RIVEST, Adi SHAMIR and
- F A
- h (m) G Fexpd modn This is an operation known as modular exponentiation.
- A is a constant of which all the bits, often several hundred, are worth 1.
- P is a parameter with a size of approximately 10 bytes.
- h (m) represents a hash function of the message m, of a fixed length, typically 20 bytes.
- the number F is the concatenation of a constant A and a variable X of value P
- h (m) comprising k bits.
- the term d is an exponent.
- the term n is the module according to which the signature G is calculated, it is equal to the product of two large numbers first.
- the terms d and n define what is known as the public key used for encryption.
- the signature G and the index i are respectively initialized at 1 and 0.
- the bit dj is equal to 1
- a step of multiplication of the signature G by the F number is performed.
- the signature G now taking the value of the result of this operation.
- this number F now taking the value of the result of this last operation.
- the index i is then incremented by one and a second test is performed on the value of this index. If this is equal to k, the process is ended, while otherwise, the process is continued by resuming the first test.
- the invention further relates to a device for implementing the multiplication method.
- This device a processor comprising known elements such as, accumulator, shift register, adder, multiplier will therefore not be more detailed.
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)
- Complex Calculations (AREA)
Abstract
L'invention présente une méthode pour calculer le produit d'un premier (F) et d'un second (S) nombre binaire, le premier nombre (F) résultant de la concaténation d'une première constante A et d'une première variable X de u bits, tous les bits de la première constante A étant égaux à 1, le deuxième nombre comportant s bits; le produit résulte d'une suite d'opérations dont la plus complexe est une multiplication de u bits par s bits. L'invention vise également un dispositif comprenant des moyens pour mettre en oeuvre cette méthode. Elle s'applique avantageusement à la cryptographie.
Description
Méthode pour multiplier deux nombres binaires La présente invention concerne une méthode pour multiplier deux nombres binaires.
La multiplication est une opération arithmétique réalisée par les processeurs numériques au moyen d'opérations élémentaires telles que le décalage ou l'addition. La complexité d'une multiplication peut s'évaluer en estimant la quantité d'opérations élémentaires à effectuer pour parvenir au résultat. Elle dépend directement de la taille des deux nombres à multiplier.
Ainsi, lorsqu'il s'agit de grands nombres, cette complexité affecte tant la puissance de calcul requise que le temps nécessaire à l'obtention du résultat.
La présente invention a ainsi pour objet une méthode de multiplication présentant une complexité réduite.
Selon l'invention, une méthode est prévue pour calculer le produit d'un premier et d'un second nombre binaire, le premier nombre résultant de la concaténation d'une première constante A et d'une première variable X de u bits, tous les bits de la première constante A étant égaux à 1 , le deuxième nombre comportant s bits, méthode suivant laquelle ce produit résulte d'une suite d'opérations dont la plus complexe est une multiplication de u bits par s bits. En diminuant la taille des nombres à multiplier, quitte à devoir réaliser des opérations additionnelles, on diminue sensiblement la quantité d'opérations élémentaires à réaliser pour obtenir le produit.
Selon une première option, la première constante A comportant I bits, la méthode comprend les opérations suivantes : - une première opération de décalage gauche de (u+l) bits du second nombre pour obtenir un premier opérande,
- une deuxième opération de décalage gauche du u bits et d'inversion de signe du second nombre pour obtenir un deuxième opérande,
- une troisième opération de multiplication de la première variable X par le second nombre pour obtenir un troisième opérande,
- le produit résultant de la somme des premier, deuxième et troisième opérandes.
Avantageusement, lorsque le second nombre résulte de la concaténation d'une deuxième constante B dont les m bits valent 1 et d'une deuxième variable Y de v bits, le troisième opérande est obtenu au moyen des opérations suivantes :
- une quatrième opération de décalage gauche de (v+m) bits de la première variable X pour obtenir un quatrième opérande,
- une cinquième opération de décalage gauche de v bits et d'inversion de signe de la première variable X pour obtenir un cinquième opérande,
5 - une sixième opération de multiplication des première X et seconde Y variables pour obtenir un sixième opérande,
- le troisième opérande résultant de la somme des quatrième, cinquième et sixième opérandes.
Selon une deuxième option, la première constante A comportant I bits, le 0 second nombre résultant de la concaténation de la première constante A et d'une deuxième variable Y de u bits, la méthode comprend les opérations suivantes :
- une première opération d'addition de la première variable X et du second nombre pour obtenir un premier opérande, 5 - une deuxième opération de décalage gauche de (u+l) bits du premier opérande pour obtenir un deuxième opérande,
- une troisième opération de décalage gauche de u bits et d'inversion de signe du premier opérande pour obtenir un troisième opérande,
- une quatrième opération de multiplication de la première variable X par la o seconde variable Y pour obtenir un quatrième opérande,
- le produit résultant de la somme des deuxième, troisième et quatrième opérandes.
Selon une troisième option, la première constante A comportant I bits, le second nombre résultant de la concaténation d'une deuxième constante B dont 5 les m bits valent 1 et d'une deuxième variable Y de v bits, la méthode comprend les opérations suivantes :
- une première opération de définition d'une premier opérande dont la valeur est 2exp(u+v+l+m) - 2exp(u+v+l) - 2exp(u+v+m) + 2exp(u+v),
- une deuxième opération pour calculer un deuxième opérande valant 0 (A.Y + B.X),
- une troisième opération de multiplication de la première variable X par la seconde variable Y pour obtenir un troisième opérande,
- le produit résultant de la somme des premier, deuxième et troisième opérandes. De préférence, le deuxième opérande résulte des opérations suivantes :
- une quatrième opération de décalage gauche de (u+l) bits de la deuxième variable Y pour obtenir un quatrième opérande,
- une cinquième opération de décalage gauche de u bits et d'inversion de signe de la deuxième variable Y pour obtenir un cinquième opérande, - une sixième opération de décalage gauche de (v+m) bits de la première variable X pour obtenir un sixième opérande,
- une septième opération de décalage gauche de v bits et d'inversion de signe de la première variable X pour obtenir un septième opérande,
- le deuxième opérande résultant de la somme des quatrième, cinquième, sixième et septième opérandes.
Ou bien alors, la deuxième constante B étant égale à la première constante A, le nombre v de bits de la deuxième variable Y étant égal au nombre u de bits de la première variable X, le deuxième opérande résulte des opérations suivantes : - une quatrième opération d'addition des première X et deuxième Y variables pour obtenir un quatrième opérande,
- une cinquième opération de décalage gauche de (u+l) bits du quatrième opérande pour obtenir un cinquième opérande,
- une sixième opération de décalage gauche de u bits et d'inversion de signe du quatrième opérande pour obtenir un sixième opérande,
- le deuxième opérande résultant de la somme des cinquième et sixième opérandes.
Selon une quatrième option, les premier et second nombres étant égaux, la méthode comprend les opérations suivantes : - une première opération de définition d'un premier opérande dont la valeur est 2exp(2(u+D) - 2exp(2u+l+1 ) + 2exp(2u). une deuxième opération de décalage gauche de (u+l+1 ) bits de la première variable X pour obtenir un deuxième opérande,
- une troisième opération de décalage gauche de (u+1 ) bits et d'inversion de signe de la première variable X pour obtenir un troisième opérande,
- une quatrième opération d'élévation au carré de la première variable X pour obtenir un quatrième opérande,
- le produit résultant de la somme des premier, deuxième, troisième et quatrième opérandes. L'invention vise également un dispositif comprenant des moyens pour mettre en œuvre la méthode ci-dessus.
Elle s'applique avantageusement à la cryptographie, notamment au chiffrement d'une signature.
La présente invention apparaîtra maintenant avec plus de détails dans le cadre de la description qui suit d'exemples de réalisation donnés à titre illustratif en se référant aux figures annexées qui représentent :
- la figure 1 , une représentation des deux nombres binaires, et
- la figure 2, un organigramme d'un procédé de chiffrement.
Il convient, en premier lieu, de préciser que toutes les opérations décrites sont réalisées modulo n où n a une valeur prédéterminée. Il ne s'agit pas là d'une réelle limitation car toute latitude est permise pour le choix de cette valeur. D'autre part, pratiquement, les registres des processeurs ont une taille limitée, si bien que la plupart des opérations sont pratiquées modulo cette taille.
En référence à la figure 1 , le premier nombre F peut s'analyser comme la concaténation d'une première constante A et d'une première variable X. La constante A comporte I bits tous égaux à 1 et la variable X a une longueur de u bits. L'invention présente un avantage lorsque la valeur de I est supérieure à 1 , bien qu'elle s'applique également dans le cas contraire.
En notant aexpb a élevé à la puissance b, la constante A vaut : A = 2eχpl - 1 Le premier nombre F s'exprime ainsi :
F = A.2eχpu + X
Le produit P du premier nombre F et du second nombre S de s bits devient : P = F.S
P = (2expu.(2expl - 1) + X).S
P = 2exp(u+H.S - 2eχρu.S + X.S [1]
Le produit P s'analyse donc comme la somme de trois opérandes. Le premier opérande qui vaut 2exp(u+l).S s'obtient en pratiquant un décalage gauche sur le second nombre S de (u+l) bits et, naturellement, en forçant à 0 les (u+l) bits de poids faible du nombre décalé.
Le deuxième opérande qui vaut 2expu.S s'obtient en pratiquant un décalage gauche de u bits et une inversion de signe.
Le troisième opérande s'obtient en faisant la multiplication de la première variable X par le second nombre S, ceci au moyen d'une quelconque méthode connue.
L'invention permet ainsi de substituer à une multiplication de (u+l) bits par s bits un ensemble d'opérations comprenant deux décalages, une inversion de signe, deux additions et une multiplication de u bits par s bits.
L'avantage procuré par l'invention est d'autant plus sensible que I est grand.
Le deuxième nombre S peut également s'analyser comme la concaténation d'une constante B et d'une variable Y. La constante B comporte m bits égaux à 1 et la variable Y a une longueur de v bits, le second nombre s'écrivant donc : S = 2expv.(2expm - 1 ) + Y
Le troisième opérande de l'équation [1] devient : X.S = (2expv.(2expm - 1 ) + Y).X X.S = 2eχp(v+m).X - 2expv.X + X.Y Le troisième opérande X.S s'analyse aussi comme la somme de trois opérandes, le quatrième opérande qui vaut 2exp(v+m).X qui s'obtient en pratiquant un décalage gauche sur la première variable X de (v+m) bits, le cinquième opérande qui vaut - 2expv.X qui s'obtient en pratiquant un décalage gauche de v bits et une inversion de signe et le sixième opérande qui s'obtient en multipliant les première X et seconde Y variables. Dans ce cas, l'opération la plus complexe est une multiplication de u bits par v bits.
Selon une première variante, l'invention tire avantage du fait que la deuxième constante B est égale à la première constante A et que la taille v de la deuxième variable Y est identique à la taille u de première variable X. Le produit P s'écrit alors :
P = (A.2eχpu + X).S
P = A.2expu.S + (A.2eχpu + Y).S
P = A.2expu.S + A.2exp_u.X + X.Y [2] P = A.2eχpu.(S + X) + X.Y
P = 2exp_(u+l).(S + X)- 2expu.(S + X) + X.Y
Le produit P est ici obtenu au moyen des quatre opérations suivantes.
Un premier opérande est obtenu en additionnant la première variable X et de deuxième nombre S. Un deuxième opérande est obtenu par décalage gauche de (u+l) bits du premier opérande. Un troisième opérande est obtenu par décalage gauche de u bits et inversion de signe du premier opérande. Un
quatrième opérande est obtenu par multiplication des première X et seconde Y variables. Finalement, le produit F est obtenu par addition de ces quatre opérandes.
Selon une autre variante, l'invention considère encore que le premier F, respectivement le second nombre S, résultent de la concaténation d'une première constante A et d'une première variable X, respectivement d'une seconde constante B et d'une seconde variable Y.
En reprenant les mêmes notations, le produit P s'écrit alors : P = (A.2eχpu + X B.2expv + Y) P = A. B.2exp_(u+v) + A.2expu.Y + B.2expv.X + X.Y
Le produit P se présente ici également comme la somme de trois opérandes.
Le premier opérande qui vaut A.B.2exp(u+v) se définit facilement comme tout nombre binaire exprimé par une suite de coefficients correspondant chacun à une puissance de 2.
Le deuxième opérande vaut (A.2exp_u.Y + B.2expv.X) et le troisième opérande est obtenu en multipliant les première X et seconde Y variables.
Selon une première option le deuxième opérande est calculé directement à partir de l'expression 2eχp_(u+l).Y - 2eχpu.Y + 2eχp_(v+m).X - 2expv.X
Il faut ainsi procéder à un décalage gauche de (u+l) bits de la seconde variable Y, à un décalage gauche de u bits et à une inversion de signe de cette variable Y, à un décalage gauche de (v+m) bits de la première variable X, à un décalage gauche de v bits et une inversion de signe de cette variable X et, finalement, additionner les résultats des quatre opérations ci-dessus.
Selon une deuxième option, lorsque les deux constantes A et B sont égales et lorsque les tailles u et v des deux variables sont identiques, le deuxième opérande s'écrit alors : 2eχp(u+l).(X + Y) - 2expu.(X + Y).
On commence ici par faire la somme des deux variables X et Y, on applique un décalage gauche de (u+l) bits à cette somme, on applique un décalage gauche de u bits et une inversion de signe à cette somme pour finalement additionner les résultats des deux opérations précédentes.
Selon encore une autre variante de l'invention, les deux nombres F et S sont égaux, ce qui revient à dire que la multiplication devient une élévation au carré du premier nombre F.
F = A.2expu + X F = 2exp_(u+l) - 2eχpu + X P = (2exp_(u+l) - 2expu + X)eχp2 P = [2eχp_(2(u+l) - 2exp(2u+l+1 ) + 2eχp2u)l + 2exp(u+l+1 ).X - 2exp(u+1 ).X + Xeχp2 [3]
Le produit P apparaît ici aussi comme la somme de quatre opérandes. Le premier opérande qui figure entre crochets dans l'équation [3] ci- dessus est un simple nombre binaire.
Le deuxième opérande est obtenu par un décalage gauche de (u+l+1 ) bits de la variable X. Le troisième opérande est obtenu par un décalage gauche de (u+1 ) bits de cette variable X. Le quatrième opérande est donc obtenu par élévation au carré de la variable X.
L'invention présentée ci-dessus permet ainsi de réduire la taille des nombres qui doivent être multipliés lors du calcul d'un produit. Elle peut être utilisée sur des nombres quelconques, auquel cas il convient tout d'abord d'identifier la première constante A en recherchant une suite de bits à 1 en tête du premier nombre. Elle peut également être employée lorsque cette constante A est connue à priori.
Elle sera préférentiel lement exploitée dans les domaines traitant de grands nombres. Il en est ainsi de la cryptographie.
A titre d'exemple, on se réfère à la norme PKCS#1 qui définit notamment la signature G d'un message m dans le cadre de l'algorithme de chiffrement connu sou le nom de RSA (du nom de ses auteurs Ron RIVEST, Adi SHAMIR et
Léonard ADLEMAN). En notant | l'opérateur de concaténation et mod l'opérateur modulo :
F = A|P|h(m) G = Fexpd modn Il s'agit d'une opération connue sous le nom d'exponentiation modulaire. Le terme A est une constante dont tous les bits, souvent plusieurs centaines, valent 1. Le terme P est un paramètre d'une taille de 10 octets environ. Le terme h(m) représente une fonction de hachage du message m, d'une longueur fixe, typiquement 20 octets.
Il apparaît que le nombre F est la concaténation d'une constante A et d'une variable X de valeur P|h(m) comportant k bits. Le terme d est un exposant. Le terme n est le module selon lequel la signature G est calculée, il est égal au produit de deux grands nombres
premiers. Les termes d et n définissent ce qu'il est convenu d'appeler la clé publique utilisée pour le chiffrement.
En référence à la figure 2, un procédé de calcul de la signature G est maintenant décrit en considérant que le bit d, est le ième bit de l'exposant d, i variant donc de 0 à (k-1 ). Ce procédé est connu sous la terminologie anglo- saxonne "Square and Multiply".
Au cours d'une première étape, la signature G et l'indice i sont respectivement initialisés à 1 et 0. A la suite d'un premier test, si le bit dj vaut 1 , une étape de multiplication de la signature G par le nombre F est réalisée. La signature G prenant maintenant la valeur du résultat de cette opération. Ensuite, quelle que soit la valeur de ce bit d„ une étape d'élévation au carré du nombre F est réalisée, ce nombre F prenant maintenant la valeur du résultat de cette dernière opération.
L'indice i est alors incrémenté d'une unité et un second test est pratiqué sur la valeur de cet indice. Si celui-ci est égal à k, le procédé est terminé, tandis que dans le cas contraire, le procédé est poursuivi en reprenant le premier test.
Il apparaît ainsi que la méthode de multiplication décrite plus haut peut être avantageusement appliquée à l'étape de multiplication et à l'étape d'élévation au carré du procédé ci-dessus. L'invention concerne de plus un dispositif pour la mise en œuvre de la méthode de multiplication. Ce dispositif, un processeur comportant des éléments connus tels que, accumulateur, registre à décalage, additionneur, multiplieur ne sera par conséquent pas plus détaillé.
Les exemples de réalisation de l'invention présentés ci-dessus ont été choisis pour leur caractère concret. Il ne serait cependant pas possible de répertorier de manière exhaustive tous les modes de réalisation que recouvre cette invention. En particulier, toute étape ou tout moyen décrit peut-être remplacé par une étape ou un moyen équivalent sans sortir du cadre de la présente invention.
Claims
REVENDICATIONS
1 ) Procédé cryptographique utilisant une méthode pour calculer le produit d'un premier (F) et d'un second (S) nombre binaire dans un composant électronique comprenant un processeur, ledit premier nombre (F) résultant de la concaténation d'une première constante A et d'une première variable X de u bits, tous les bits de ladite première constante A étant égaux à 1 , ledit deuxième nombre comportant s bits, procédé caractérisé en ce que ledit produit résulte d'une suite d'opérations dont la plus complexe est une multiplication de u bits par s bits. 2) Procédé cryptographique selon la revendication 1 caractérisé en ce que, ladite première constante A comportant I bits, la méthode mathématique comprend les opérations suivantes
- une première opération de décalage gauche de (u+l) bits dudit second nombre (S) pour obtenir un premier opérande, - une deuxième opération de décalage gauche du u bits et d'inversion de signe dudit second nombre (S) pour obtenir un deuxième opérande,
- une troisième opération de multiplication de ladite première variable X par ledit second nombre (S) pour obtenir un troisième opérande,
- ledit produit résultant de la somme desdits premier, deuxième et troisième opérandes.
3) Procédé cryptographique selon la revendication 2 caractérisé en ce que, ledit second nombre (S) résultant de la concaténation d'une deuxième constante B dont les m bits valent 1 et d'une deuxième variable Y de v bits, ledit troisième opérande est obtenu au moyen des opérations suivantes - une quatrième opération de décalage gauche de (v+m) bits de ladite première variable X pour obtenir un quatrième opérande,
- une cinquième opération de décalage gauche de v bits et d'inversion de signe de ladite première variable X pour obtenir un cinquième opérande,
- une sixième opération de multiplication desdites première X et seconde Y variables pour obtenir un sixième opérande,
- ledit troisième opérande résultant de la somme desdits quatrième, cinquième et sixième opérandes.
4) Procédé cryptographique selon la revendication 1 caractérisé en ce que, ladite première constante A comportant I bits, ledit second nombre (S) résultant
de la concaténation de ladite première constante A et d'une deuxième variable Y de u bits, elle comprend les opérations suivantes
- une première opération d'addition de ladite première variable X et dudit second nombre (S) pour obtenir un premier opérande, - une deuxième opération de décalage gauche de (u+l) bits dudit premier opérande pour obtenir un deuxième opérande,
- une troisième opération de décalage gauche de u bits et d'inversion de signe dudit premier opérande pour obtenir un troisième opérande,
- une quatrième opération de multiplication de ladite première variable X par ladite seconde variable Y pour obtenir un quatrième opérande,
- ledit produit résultant de la somme desdits deuxième, troisième et quatrième opérandes.
5) Procédé cryptographique selon la revendication 1 caractérisé en ce que, ladite première constante A comportant I bits, ledit second nombre (S) résultant de la concaténation d'une deuxième constante B dont les m bits valent 1 et d'une deuxième variable Y de v bits, elle comprend les opérations suivantes
- une première opération de définition d'un premier opérande dont la valeur est 2exe(u+v+l+m) - 2ex (u+v+l) - 2eχp(u+v+m) + 2exp(u+v),
- une deuxième opération pour calculer un deuxième opérande valant (A. Y + B. X),
- une troisième opération de multiplication de ladite première variable X par ladite seconde variable Y pour obtenir un troisième opérande,
- ledit produit résultant de la somme desdits premier, deuxième et troisième opérandes. 6) Procédé cryptographique selon la revendication 5, caractérisé en ce que ledit deuxième opérande résulte des opérations suivantes
- une quatrième opération de décalage gauche de (u+l) bits de ladite deuxième variable Y pour obtenir un quatrième opérande,
- une cinquième opération de décalage gauche de u bits et d'inversion de signe de ladite deuxième variable Y pour obtenir un cinquième opérande,
- une sixième opération de décalage gauche de (v+m) bits de ladite première variable X pour obtenir un sixième opérande,
- une septième opération de décalage gauche de v bits et d'inversion de signe de ladite première variable X pour obtenir un septième opérande,
- ledit deuxième opérande résultant de la somme desdits quatrième, cinquième, sixième et septième opérandes.
7) Procédé cryptographique selon la revendication 5 caractérisé en ce que, ladite deuxième constante B étant égale à ladite première constante A, le nombre v de bits de la deuxième variable Y étant égal au nombre u de bits de la première variable X, ledit deuxième opérande résulte des opérations suivantes
- une quatrième opération d'addition desdites première X et deuxième Y variables pour obtenir un quatrième opérande,
- une cinquième opération de décalage gauche de (u+l) bits dudit quatrième opérande pour obtenir un cinquième opérande,
- une sixième opération de décalage gauche de u bits et d'inversion de signe dudit quatrième opérande pour obtenir un sixième opérande,
- ledit deuxième opérande résultant de la somme desdits cinquième et sixième opérandes. 8) Procédé cryptographique selon la revendication 1 caractérisé en ce que, lesdits premier (F) et second (S) nombres étant égaux, la méthode mathématique comprend les opérations suivantes
- une première opération de définition d'un premier opérande dont la valeur est tex (2(u+l)) - 2eex (2u+1+1 ) + 2exp(2u), - une deuxième opération de décalage gauche de (u+1+1 ) bits de ladite première variable X pour obtenir un deuxième opérande,
- une troisième opération de décalage gauche de (u+1 ) bits et d'inversion de signe de ladite première variable X pour obtenir un troisième opérande,
- une quatrième opération d'élévation au carré de ladite première variable X pour obtenir un quatrième opérande,
- ledit produit résultant de la somme desdits premier, deuxième, troisième et quatrième opérandes.
9) Procédé cryptographique selon l'une quelconque des revendications 1 à 8 appliqué au chiffrement d'une signature.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0101835A FR2820851B1 (fr) | 2001-02-12 | 2001-02-12 | Methode pour multiplier deux nombres entiers |
| FR0101835 | 2001-02-12 | ||
| PCT/FR2002/000495 WO2002065271A1 (fr) | 2001-02-12 | 2002-02-08 | Méthode pour multiplier deux nombres binaires |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1362284A1 true EP1362284A1 (fr) | 2003-11-19 |
Family
ID=8859871
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP02703685A Ceased EP1362284A1 (fr) | 2001-02-12 | 2002-02-08 | Methode pour multiplier deux nombres binaires |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20040143618A1 (fr) |
| EP (1) | EP1362284A1 (fr) |
| FR (1) | FR2820851B1 (fr) |
| WO (1) | WO2002065271A1 (fr) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3116411A (en) * | 1959-06-15 | 1963-12-31 | Control Data Corp | Binary multiplication system utilizing a zero mode and a one mode |
| US3159739A (en) * | 1961-01-24 | 1964-12-01 | Honeywell Inc | Fast multiply apparatus |
| US6430589B1 (en) * | 1997-06-20 | 2002-08-06 | Hynix Semiconductor, Inc. | Single precision array processor |
| US6275841B1 (en) * | 1997-12-11 | 2001-08-14 | Intrinsity, Inc. | 1-of-4 multiplier |
-
2001
- 2001-02-12 FR FR0101835A patent/FR2820851B1/fr not_active Expired - Fee Related
-
2002
- 2002-02-08 EP EP02703685A patent/EP1362284A1/fr not_active Ceased
- 2002-02-08 US US10/467,718 patent/US20040143618A1/en not_active Abandoned
- 2002-02-08 WO PCT/FR2002/000495 patent/WO2002065271A1/fr not_active Ceased
Non-Patent Citations (1)
| Title |
|---|
| See references of WO02065271A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2002065271A1 (fr) | 2002-08-22 |
| US20040143618A1 (en) | 2004-07-22 |
| FR2820851B1 (fr) | 2003-05-30 |
| FR2820851A1 (fr) | 2002-08-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1414182B1 (fr) | Masquage de données décomposées dans un système de résidus | |
| EP2296086B1 (fr) | Protection d'une génération de nombres premiers contre des attaques par canaux cachés | |
| EP2791784A1 (fr) | Procede de generation de nombres premiers prouves adapte aux cartes a puce | |
| FR2822260A1 (fr) | Procedes et dispositifs pour accelerer le temps de calcul d'un produit de montgomery d'un multiplication et d'une exponentiation modulaire | |
| FR2895609A1 (fr) | Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee | |
| FR3095709A1 (fr) | Procédé et système de masquage pour la cryptographie | |
| US7120660B2 (en) | Method of and apparatus for modular multiplication | |
| EP2284690A2 (fr) | Brouillage d'un calcul effectué selon un algorithme RSA-CRT | |
| EP2012214A1 (fr) | Procédé et dispositif de génération numérique d'une fréquence | |
| EP1362284A1 (fr) | Methode pour multiplier deux nombres binaires | |
| FR2838210A1 (fr) | Procede cryptographique protege contre les attaques de type a canal cache | |
| EP0237382A1 (fr) | Dispositif de transformée en cosinus d'un signal numérique échantilloné | |
| EP0778518B1 (fr) | Procédé de production d'un paramètre J0 associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery | |
| EP3451316B1 (fr) | Dispositif de réduction modulaire | |
| FR2897964A1 (fr) | Procede de calcul numerique incluant la division euclidienne | |
| WO2004002058A2 (fr) | Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede | |
| WO2006070092A1 (fr) | Procede de traitement de donnees et dispositif associe | |
| EP1715410B1 (fr) | Protection d'un calcul effectué par un circuit intégré | |
| WO2006030107A1 (fr) | Procede de traitement de donnees, entite electronique et carte a microcircuit, notamment pour dechiffrer ou signer un message de façon securisee | |
| CA2359198C (fr) | Unite de calcul pour l'execution d'un protocole cryptographique | |
| WO2006067057A1 (fr) | Procede d'exponentiation securisee et compacte pour la cryptographie | |
| EP2045957B1 (fr) | Calcul de preuve d'appartenance d'un secret à un intervalle, mettant en oeuvre und décomposition binaire | |
| FR3166774A1 (fr) | Réduction modulaire d’opérations cryptographiques | |
| EP1335277A1 (fr) | Opérateur saturant à haute efficacité | |
| FR2818407A1 (fr) | Procede et appareil pour calculer une reciproque |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20030912 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
| AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
| 17Q | First examination report despatched |
Effective date: 20041025 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
| 18R | Application refused |
Effective date: 20050818 |