EP1328864A2 - Representation arithmetique minimale d'un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie - Google Patents

Representation arithmetique minimale d'un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie

Info

Publication number
EP1328864A2
EP1328864A2 EP01978522A EP01978522A EP1328864A2 EP 1328864 A2 EP1328864 A2 EP 1328864A2 EP 01978522 A EP01978522 A EP 01978522A EP 01978522 A EP01978522 A EP 01978522A EP 1328864 A2 EP1328864 A2 EP 1328864A2
Authority
EP
European Patent Office
Prior art keywords
digits
multiplet
elementary
base
rank
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.)
Withdrawn
Application number
EP01978522A
Other languages
German (de)
English (en)
Inventor
Marc Joye
S-M c/o Eering National Central University YEN
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1328864A2 publication Critical patent/EP1328864A2/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4824Methods 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 using signed-digit representation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3852Calculation with most significant digit first

Definitions

  • the present invention relates to the field of numerical calculation methods, in particular. the data encryption methods implemented by electronic calculation circuits, in which each complex calculation operation as a function of a numerical factor is broken down into elementary calculation operations by calling upon a particular decomposition or arithmetic representation of the factor digital. It is intended in particular that the invention is implemented by implementing an algorithm on a programmable electronic calculation circuit.
  • Programmable electronic calculation circuits such as microprocessors, have instructions corresponding to very simple elementary calculation operations, namely addition and subtraction operations.
  • the advanced calculation circuits also have macro-instructions corresponding to multiplication and division operations which call upon routines in which these operations are broken down into elementary operations, additions and subtractions, performed on a recurring basis.
  • N (t ni, ..., b 2 , b 1 , b 0 ) 2
  • N b h .2 11 + ti. '1 + ... + z ⁇ + b ⁇ .2 + bo with bi being 0 or 1, for any integer i;
  • z 7 (z 2 .z) 2 . z
  • the power factor seven is broken down in the following other way:
  • N ( ⁇ - ⁇ Cn-i ... C 2 , C ⁇ , Co) i 2 with Ci e ⁇ -1; 0; 1 ⁇ for any integer i
  • a number N can have several different representations.
  • numeric factor seven is written at least under the following two representations in signed binary:
  • Non Adjacent Form in English “Non Adjacent Form” and abbreviated as NAF.
  • NAF representation of a number N is defined as the "signed binary" form written as follows:
  • N ( ⁇ n, Cn-l. - .C2, C ⁇ , Co) i2 with c ⁇ e ⁇ -l; 0; l ⁇ for any integer i in which, for all natural integer i,
  • Ci + ic-i 0 (non-adjacency)
  • the author GW Reitwiesner demonstrated that any number has one and only one non-adjacent representation NAF.
  • the numeration in this ternary base ⁇ -1,0,1 ⁇ called "signed binary" can be generalized to higher bases.
  • N pn. 311 + Pn-i- * 1 "1 + ... + ps.r 2 + pi.r + po
  • N (Pi Pn-lr • • • • .P2, Pl, P ⁇ ) -tr
  • each number is represented as a sequence of signed digits, each digit being individually with a sign.
  • N (p- ⁇ , Pn-l, • • •, Pi, • • •, P2, Pl, P ⁇ ) ⁇ r denotes the representation of N in the relative base r, in the form of a series of digits pi signed individually, therefore.
  • each number can have several representations in a "relative base r".
  • N (Pn, R ⁇ -i, • • •, P -., P -., P ⁇ )
  • WE Clark and JJ Liang also described a calculation method making it possible to determine the GNAF representation of a number N in relative base r from the representation of number N in non-relative base r and from the representation of the integer (r + l) N in non-relative basis r, as follows:
  • N (Pn-l, • - •, p2 / Pl, P ⁇ ) r With, for all integer i, Pi e ⁇ 0,1, ..., r-l ⁇
  • N (r n, r n _ ⁇ , ..., r 2, r ⁇ , ro) ⁇ ,:
  • N ( ⁇ -l • • • / P2, Pl, P ⁇ ) r
  • the pre-calculated exponentiation value tables can only be used for left-right exponentiation. This obliges to provide the figures to be treated starting with the most significant figures (high weight) to finish with the least significant figures (low weight), in order to considerably shorten the calculation time of the exponentiation operation.
  • Clark and Liang method provides the digits of the GNAF representation of a number, from right to left, conventionally, while the pre-computed exponentiation value tables process the digits from the left to the right to shorten the calculation time.
  • Clark and Liang method The disadvantage of the Clark and Liang method is therefore that it is not compatible with the use of tables of precalculated values to speed up the calculation time.
  • Another drawback of the Clark and Liang method is that it requires storing or memorizing all of the signed figures of the GNAF representation of a number before carrying out the elementary operations corresponding to each of the signed figures in order to reconstruct the operation. overall by number.
  • the object of the invention is to develop a method for decomposing any integer N in a relative base r and for simply calculating a representation of the number having a weight
  • a main objective of the invention is to obtain a decomposition process making it possible to calculate the figures of the representation in relative base r of the number N from left to right, that is to say from the most significant figures to the figures least significant.
  • a particular objective of the invention is to obtain a decomposition process making it possible to obtain the figures of the representation one by one, by successively determining a figure at each step, starting from the most significant figure towards the least significant figure without the need to store a complete result or an intermediate result of the decomposition.
  • Another objective is to obtain a method for decomposing any integer in a relative base r, whatever the value of the relative base r.
  • a number in a relative base r of any value, a number has a single GNAF representation, but can have several representations having the same minimum arithmetic weight as the GNAF representation.
  • N (Pn-l, P ⁇ , • • • ⁇ P7, P6, P5 > -P4, P3 " -P2.Pl, P ⁇ ) r (PI)
  • M a multiplet, that is to say a substring of at least three whole digits resulting from the division of N:
  • the invention is therefore carried out with a method for decomposing and carrying out, by an electronic circuit, a calculation operation according to a numerical factor expressed in an entire base by a series of whole numbers, with the particularity that it comprises stages consisting of:
  • each elementary multiplet comprising a portion of the series of integers, wherein each 'pair of consecutive digits is a sum value equal to the reduced basis of a unit
  • each elementary multiplet into a modified multiplet comprising a series of signed digits such that the concatenation of the modified multiplets forms a series of signed digits containing a minimum number of non-zero digits and representing the value of the numerical factor in a relative base.
  • each elementary byte comprises, to begin with, a first pair of whole numbers forming a first sum of value different from the base decreased by one, then one or more whole numbers such as each pair of whole numbers neighbors has a sum of value equal to the base minus one and, for
  • all the digits of odd rank have the same value, except the first digit of the elementary multiplet, as well as the last digit if it has an odd rank, and all the digits of even rank have the same value, except the last digit if it has an even rank. It is expected that the transformation of an elementary byte containing an odd number of digits follows the following conditional steps:
  • the digits of odd rank and the digits of even rank are equal respectively to the digits of odd rank and to the digits of even rank of the elementary multiplet, the penultimate digit being determined by one of the following two sub-conditions:
  • the penultimate digit of the modified multiplet is equal to the even rank digits of the elementary multiplet, while,.
  • the penultimate digit of the modified byte is equal to the value of the even-numbered digits of the elementary byte increased by one, while,
  • the penultimate digit of the modified byte is equal to the difference between the even-numbered digits of the elementary multiplet and the base, while,
  • the odd-numbered digits and the even-numbered digits / except the first, antepenultimate, penultimate and last digits of the modified • multiplet corresponding are equal respectively to the digits of odd rank and to the digits of even rank of the elementary byte, the last digits being determined by one of the following two sub-conditions:
  • the odd-numbered digits and the even-numbered digits, except the first, the ante-last, the penultimate and the last digits of the corresponding modified byte are equal respectively, opposite the even rank digits and opposite the odd rank digits of the elementary multiplet, the last digits being determined by one of the following two sub-conditions:
  • the third last and penultimate digit byte 'modified are respectively equal to the difference between the value of even rank digits and the base and to the value of the odd rank digits of the elementary multiplet, while ' that, • if, moreover, the last sum is strictly greater than the base decreased by one, then the ante-penultimate and the, penultimate digits of the modified multiplet are equal, respectively, opposite to the digits of odd rank and l opposite numbers of even rank of the elementary multiplet.
  • all the digits of odd rank have the same value, except the first and the penultimate or the last digit
  • all the digits of even rank have the same value, except the penultimate or the ante-penultimate and the last digit.
  • each changed byte comprises a sequence of digits' signed wherein each pair of consecutive digits is a sum of absolute value equal to unity or decreased based on a unit or base.
  • steps of - transformation of elementary byte into modified byte are carried out from the most significant figures to the least significant figures.
  • an electronic calculation circuit implements such a method for decomposing and performing a calculation operation.
  • FIG. 1 shows an algorithm for recoding a number in GSF representation in relative base r operating from left to right, that is to say from the most significant figure to the least significant figure
  • FIG. 2 represents an algorithm for recoding a number in GSF representation into "signed binary" operating from left to right, and
  • FIG. 3 shows an exponentiation calculation algorithm using such a GSF representation in relative base r of a number.
  • the inventors have determined formulas for transforming each individual byte from the cutting of the expression of the number N in base r whole, respecting the proposal previous in modified byte constituting part of the series of numbers signed arithmetic minimum weight representative the number N in the relative base r.
  • the transformation steps and formulas are detailed below.
  • the invention is achieved by implementing a method comprising a first step consisting in cutting the series of whole numbers into elementary bytes, each elementary byte comprising a part of the series of whole numbers constituting the expression of the numerical factor N in base not relative r.
  • (c, d) k represents a sequence of k pairs of digits in relative base r: c, d, c, d, ..., c, d with k> 0.
  • b + d ⁇ r-1, c + d r-1, and d + e ⁇ r-1.
  • the last digit (e) is such that the sum of it, with the preceding digit (d) is different from the base minus one (e + d ⁇ r-1).
  • the last pair of digits (c, e) is such that the sum of these two digits is different from the base minus one unit (c + e ⁇ r-1) .
  • IF [*, ⁇ , c> k , d, *], if bd ⁇ rl and ed ⁇ rl,
  • IF [*, (- c, -d> k , dr, *], if b + d> rl and e + d ⁇ rl,
  • IF [*, (- c, -d>, - ⁇ , *], if b + d> rl and e + d> rl.
  • the value of the first and last digits of a modified byte is determined by the subsequent concatenation of the modified bytes one after the other with an overlap, so that the first and last unspecified digits of a modified byte are replaced by the last determined digit of the previous multiplet and by the first determined digit of the following multiplet.
  • the series of digits of the expression of the numerical factor N in base Four is broken down into elementary bytes.
  • each byte however includes the pair of initial digits of sum different from three, as well as the pair of final digits of sum other than three.
  • Each multiplet therefore has a pair of initial digits identical to the pair of final digits of the previous multiplet, as well as a pair of final digits identical to the pair of initial digits of the next multiplet.
  • the decomposition of the number N into elementary bytes in integer base Quatre- is as follows:
  • N (0,0,3,0,1,2,1,2,3,0,3,1,1,2,1,2.0) 4
  • the elementary bytes M 4 , M 2 and M 1 are type I bytes, with an odd number of digits. While the elementary bytes M 3 and M 0 correspond to type II bytes, with an even number of digits.
  • N (0.3,0,1,2,2, -1,0, -3,0, -3,1,2,1,2) +.
  • the elementary multiplet (b, d, (c, d) k , e) contains an odd number of digits and if the first sum is strictly less than the base minus one unit (b + d ⁇ r- 1) and, moreover, if the last sum is strictly lower than the base decreased by one unit (e + d ⁇ r-1), then, in the corresponding modified multiplet (*, ⁇ d, c) k , d , *), the digits of odd rank and the digits of even rank, except the first and the last digits, are equal respectively to the digits of odd rank (c) and the digits of even rank (d) of the elementary multiplet (* , ⁇ d, c) k , d, *).
  • the penultimate digit (d + 1) being equal to the value of the digits of even rank (d) of the elementary multiplet (*, ⁇ d, c) k , d, *) increased by one.
  • first, penultimate and fifth digits are equal respectively opposite (-d) of even rank digits and opposite (-c) of - odd rank digits of elementary multiplet (b, d, (c, d), e), the penultimate digit being equal to the difference (dr) between the even rank digits (d) of the elementary multiplet (*, ⁇ d, c), d, *) and the base (r).
  • the elementary multiplet (b, d, (c, d) k , e) contains an odd number of digits and if the first sum is strictly greater than the base minus one unit (b + d> r- 1) and, moreover, if the last sum is strictly greater than the base decreased by one unit (e + d> r-1), then in the corresponding modified multiplet (*, (- c, -d) k , -c, *), odd-numbered digits (-d) and even-numbered digits (-c), except the first and last digits are equal to the opposite of even-numbered digits (d) and opposite the odd-numbered digits (c) of the elementary multiplet (b, d; ⁇ c, d> k , e).
  • the elementary multiplet (b, d, (c, d), c, e) contains an even number of digits and if the first sum is strictly less than the base minus one unit (b + d ⁇ r -1) and, moreover, if the last sum is strictly less than the base decreased by one unit (e + c ⁇ r-1), then, in the corresponding modified multiplet (*, ⁇ d, c), d , c, *), the odd rank digits (c) and the even rank digits (d), except the first and the last digits, are equal to the odd rank digits (c) and the even rank digits, respectively (d) of the elementary multiplet (b, d, (c, d) k , c, e).
  • the elementary multiplet (b, d, (c, d) k , c, e) contains an even number of digits and if the first sum is strictly less than the base minus one (b + d ⁇ r-1) and, moreover, if the last sum is strictly greater than the base decreased by one unit (e + c> r-1), then, in the corresponding modified multiplet (*, (d, c), d + l, -d, *), the digits of odd rank (c) and the digits of even rank (d), except the first, the ante-penultimate, the penultimate and the uppermost digits, are equal respectively to the odd-ranking digits (c) and the even-ranking digits (d) of the elementary multiplet (b, d, (c, d), c, e) , the ante-penultimate and the penultimate digit of the modified byte (*, (d, c),
  • the result of the transformation is thus obtained immediately digit by digit without unoccupied calculation cycle.
  • This aspect is essential for cryptography calculation applications using smart cards, that is to say memory cards, logic integrated circuit or simple microprocessor.
  • the encryption algorithms implement a large number of complex operations, preferably exponentiations as well as scalar multiplications or multiplications on elliptical curves, which implement large numbers. It is common for example in cryptography, to treat numbers of more than three hundred digits and an exponentiation or a scalar multiplication on an elliptic curve with such numerical factors would mobilize a considerable number of calculation cycles and a significant memory clutter.
  • the microprocessors as well as the memory of the smart cards by their reduced dimensions have a limited capacity.
  • the primary advantage of the invention is therefore to provide a method for decomposing a numerical factor into a relative base r, making it possible not only to obtain a representation of minimum arithmetic weight, which corresponds to the lowest number of elementary operations of calculation, but also to obtain this representation by operating the most significant figures towards the least significant figures without mobilizing memory and especially by allowing compatibility with the tables of pre-calculated values of exponentiation or multiplication, in particular on the elliptic curves .
  • transformation formulas described above can be implemented in the form of an electronic calculation circuit. logic, by assembling logic gates operating on the states of each digit of an elementary byte.
  • the transformation steps provided for according to the invention are implemented in the form of transcoding algorithms making it possible, from a number expressed in integer base r, to provide the GSF representation of the number in relative base r of weight minimal arithmetic.
  • the first listing extracted from a computer program corresponds to an algorithm for recoding a number (-T m -i, ..., no) r expressed in non-relative basis r, providing the GSF representation of the number (n ' m , nVi / .n ' 0 ) ⁇ r in a relative base r of any value.
  • the algorithm operates advantageously according to the invention, from the most significant digit to the least significant digit, therefore from left to right.
  • This algorithm can advantageously be simplified in the particular case of binary as can be seen on reading the following algorithm.
  • the second listing extracted from computer program thus corresponds to an algorithm of. recoding of a number (r- m -i ...., n 0 ) 2 expressed in binary (base not relative 2), providing the .GSF representation of the number (n, n ⁇ , •. •, n ' 0 ) - 2 in "signed binary" (relative base 2).
  • the binary algorithm also operates, advantageously from the most significant bit to the least significant bit, therefore from left to right, conventionally.
  • the third listing extracted from computer program corresponds to an exponentiation calculation algorithm operating in relative base r.
  • the algorithm is designed to perform elementary calculations for the GSF representation base relative numerical factor r N decomposed according to 'the method of the invention.
  • This calculation algorithm performs exponentiation by operating from left to right.
  • the applications of the invention are not limited to exponentiation, but also include the multiplication of whole numbers, or scalar multiplication on elliptic curves, by way of example.
  • n_ 2 ⁇ - 0, ⁇ ⁇ - 0 for i from m down to 0 do case n ⁇ + ni_ ! ⁇ r - 1: ⁇ i_ ⁇ ⁇ - 0, ⁇ ⁇ - ni-i
  • INPUT (r - ⁇ , ..., no) 2 (Binary representation)
  • OUTPUT (n ' m , nV ⁇ , ..., n' 0 ) -2 (Binary GSF representation)

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)
  • Error Detection And Correction (AREA)

Abstract

L'invention concerne un procédé pour décomposer et effectuer par un circuit électronique, une opération de calcul en fonction d'un facteur numérique (N) exprimé dans une base entière (r) par une série de chiffres entiers (pn-1,...,,p2,p1,p0). L'invention prévoit des étapes consistant à :- découper la série de chiffres entiers en multiplets élémentaires, chaque multiplet élémentaire (MJ) comprenant une partie de la série de chiffres entiers (mji+1,mji,...,mj0), dans laquelle chaque paire de chiffres successifs (mi,mi-1) a une somme de valeur égale à la base diminuée d'une unité (mi+mi1 = r-1), et- transformer chaque multiplet élémentaire (Mj) en un multiplet modifié (Sj) comprenant une suite de chiffres signés (sji,sji-1,...,sj1) tels que la concaténation des multiplets modifiés forme une série de chiffres signés contenant un nombre minimum de chiffres non nuls et représentant la valeur du facteur numérique (N) dans une base relative ({-(r-1),...,-1,0,1,...,r-1}).Selon le mode de réalisation préféré de l'invention, • pour un multiplet élémentaire contenant un nombre impair de chiffres entiers, et s'écrivant sous la forme suivante : M1 = [b,d,(c,d)k,e] (type I)la transformation suit l'une des formules conditionnelles : S1 =[*, (d,c)k , d ,*], si b+d<r-1 et e+d<r-1, S1 = [*, (d,c)k ,d+1,*], si b+d<r-1 et e+d>r-1, (1) S1 =[*,(-c,-d)k,d-r,*], si b+d>r-1 et e+d<r-1, S1 =[*,(-c,-d)k,-d ,*], si b+d>r-1 et e+d>r-1.; pour un multiplet élémentaire contenant un nombre pair de chiffres entiers, et s'écrivant sous la forme suivante : M2 = [b,d,(c,d)k,c,e] (type II)la transformation suit l'une des formules conditionnelles : S2 = [*, (d,c)k , d , c,*], si b+d<r-1 et e+c<r-1, S2 =[*, (d,c)k ,d+1,-d,*], si b+d<r-1 et e+c>r-1,(2) S2 = [*,(-c,-d)k,d-r, c,*], si b+d>r-1 et e+c<r-1, S2 =[*,(-c,-d)k,-c ,-d,*], si b+d>r-1 et e+c>r-1.

Description

REERE---1-NTATI -W A-fŒ-Cï-METIOjϋE -S-mEMAI-E
D 'UN NOMBRE N EN BASE RELATIVE R
POUR DECCMPOSER DES 0--ERATIO S DE C-AI-CUL
NOTM-MENT EN CRY--TX-X--RAPHIE
ARRIERE ELAN DE L ' -C- IVENTIO
1. Dcmaine Techr-ique
La présente invention concerne le domaine des procédés de calcul numérique, en particulier . les procédés de cryptage de données mis en oeuvre par des circuits de calcul électronique, dans lesquels chaque opération de calcul complexe en fonction d'un facteur numérique est décomposée en opérations de calculs élémentaires en faisant appel à une décomposition ou une représentation arithmétique particulière du facteur numérique. Il est prévu notamment que l'invention est mise en oeuvre en implémentant un algorithme sur un circuit de calcul électronique programmable.
2. Etat de la Technique Antérieure
Les circuits de calcul électronique programmables, tels que les microprocesseurs disposent d'instructions correspondant à des opérations de calculs élémentaires très simples, à savoir les opérations d'addition et de soustraction.
Pour effectuer des opérations de calcul plus complexes, les circuits de calcul évolués disposent aussi de macro-instructions correspondant à des opérations de multiplication et de division qui font appel à des routines dans lesquelles ces opérations sont décomposées en opérations élémentaires, d'additions et de soustractions, effectuées de façon récurrente.
Pour effectuer des opérations encore plus complexes, telle qu'une exponentiation, il faut programmer une décomposition de l'opération de calcul en suite d'opérations de multiplication.
La décomposition de ces instructions de calcul complexe en suite récurrente d'opérations élémentaires mobilise un nombre élevé de cycles de calcul ce qui représente un temps d'exécution prolongé. Pour réduire le temps de calcul correspondant à une opération
' complexe, notamment une opération d'exponentiation ou une multiplication, on connaît des procédés consistant à utiliser la représentation binaire du facteur numérique (i.e. l'exposant ou le multiplicateur) . Dans la suite, nous utiliserons la notation multiplicative.
Par exemple, le calcul de A puissance N à partir de la représentation binaire de N peut s'effectuer de la façon suivante : Soit la représentation binaire de N :
N= ( t n-i, ... ,b2,b1,b0)2
Correspondant à la décomposition binaire de N :
N = bh.211 + t-i. '1 + ... + zΛ + bχ.2 + bo avec bi valant 0 ou 1, pour tout entier i ;
ors l'opération d'exponentiation AN :
N b-, 2nbh_12n_1 bz 4 bx 2 bo A = (A ) X (A ) X ... X (A ) X (A ) X A
N 1---.2 ---n-! 2 bn-,2 2 -^ 2 bo
A =(...(( (A ) X A ) x A... ) X ... x A ) x A
se décompose en opérations d'élévation au carré et de multiplication (en anglais "Square and Multiply ethod") .
Pour donner un exemple numérique, considérons l'opération z7. La représentation binaire de sept est :
(7)I0 = (1,1,1)2 Ou encore : N = 7 = 1.4 + 1.2 + 1
L'opération d'élévation à la puissance sept se décompose alors comme suit : z7 = (z2.z)2 . z Ceci correspond à quatre opérations élémentaires consistant en deux élévations au carré et deux multiplications. On remarque qu'à un bit de valeur un, il y a deux opérations à effectuer (élévation au carré et multiplication par z) et qu'à chaque bit de valeur nulle, il n'y a qu'une seule opération élémentaire à effectuer (élévation au carré) , ce qui économise un cycle de calcul et réduit le temps d'exécution.
De ce fait, on établit statistiquement qu'une opération exponentiation, en fonction d'un nombre N codé en binaire" sur m bits nécessite en moyenne un nombre de multiplications élémentaires égal à : nccribre d'opérations primaires : m . 3/2
On connaît une alternative intéressante à ce procédé qui consiste à recourir à une autre représentation arithmétique du nombre dite en "binaire signé" et à associer à chaque "bit signé"
(c'est-à-dire -1,0 ou 1) une opération primaire d'élévation au carré, de multiplication ou de multiplication par l'inverse.
Ainsi, en reprenant l'exemple précédent d'opération z7, le facteur de puissance sept se décompose de l'autre façon suivante:
N = 7 = 8 - 1 Ce qui correspond à la représentation en "binaire signé" suivante :
N = (1,0,0,-1)^ L'opération d'élévation à la puissance sept se décompose alors d'une autre manière, comme suit :
27 = ((z2)2)2 x z"1 Ce qui représente quatre opérations élémentaires consistant en trois élévations au carré et une multiplication par l'inverse de z.
Statistiquement, on établit qu'une exponentiation en fonction d'un nombre N codé en "binaire signé" sur m "bits signés" nécessite en moyenne un nombre de multiplications . élémentaires égal à : nombre d'opérations primai res : m . 4/3 Ainsi la décomposition du facteur numérique N en "binaire signé" permet en moyenne un gain d'opération de calcul et de temps d'environ 11%. Le "binaire signé" est une forme arithmétique inhabituelle qui correspond simplement à une décomposition binaire du nombre N avec des "bits signés" de valeur -1, 0, 1 comme suit :
N Cn .2" + C-n-i^11"1 + + QJ.4 + Ci.2 + CQ
Cette décomposition en "binaire signé" correspond à la représentation suivante :
N= (Ç-^Cn-i...C2,Cι,Co)i2 avec Ci e {-1;0;1} pour tout entier i
Dans ce système de numération en "binaire signé", un nombre N peut avoir plusieurs représentations différentes.
- Par exemple, le facteur numérique sept s'écrit au moins sous lés deux représentations en binaire signé suivantes :
N = 7 = 4 + 2 + l= (0,1,1,1)^. N = 7 = 8 - 1 ≈ (1,0,0,-1)42.
Or les diverses représentations d'un nombre N peuvent contenir des chiffres non nuls en nombre différent.
Parmi toutes les représentations d'un nombre, celle qui contient le nombre πάn-L-mum de chiffres non nuls, dite "représentation de poids ~ arithmétique minimal" est particulièrement intéressante, puisque c'est celle qui implique le moins de calculs pour effectuer l'opération globale en fonction de ce nombre.
Dans le domaine du calcul, on connaît parfaitement bien une représentation en "binaire signé" de poids arithmétique minimal, appelée Forme Non Adjacente (en anglais "Non Adjacent Form") et notée en abrégé NAF.
La représentation NAF d'un nombre N est définie comme la forme "binaire signée" s'écrivant comme suit :
N = (Çn,Cn-l. - .C2,Cι,Co)i2 avec c± e{-l;0;l} pour tout entier i dans laquelle, pour tout entier naturel i,
Ci+i.c-i = 0 (non-adjacence) Dans un article intitulé "Binary Arithmetic" paru en 1960 dans la revue "Advances in Computers" N°l, pages 231 à 308, l'auteur G.W. Reitwiesner a démontré que tout nombre a une et une seule représentation non-adjacente NAF. Par ailleurs, la numération dans cette base ternaire {-1,0,1} dite "binaire signée" peut être généralisée à des bases plus élevées .
Ainsi, de façon générale, tout nombre N peut être décomposé sous une forme suivante : N = pn. 311 + Pn-i- *1"1 + ... + ps.r2 + pi.r + po
Et noté :
N = (Pi Pn-lr • • • .P2,Pl,Pθ)-tr
Dans laquelle, pour tout i, pi est un entier relatif, i e ]-r;r[. Soit P± e {-(r-1), -(r-2), ..., -1, 0, 1, ...., r-2, r-1}
Dans la présente, une telle décomposition est appelée "représentation du nombre N en base relative r".
Par "base relative" on entend donc la base d'un système de numération dans lequel chaque nombre ' est représenté comme une suite de chiffres signés, chaque chiffre étant doté individuellement d'un signe.
Il est entendu que dans la présente, la notation suivante :
N = (p-ι,Pn-l, • • • ,Pi, • • • ,P2,Pl,Pθ)±r désigne la représentation de N dans la base relative r, sous forme de série de chiffres pi signés individuellement, donc.
Contrairement aux systèmes de numération habituels, comme dans la base deux, la base décimale, ou la base hexadécimale, chaque nombre peut avoir plusieurs représentations dans une "base relative r".
De façon analogue à la représentation NAF en "binaire signé" (ou base relative deux) , on connaît en base relative r, une représentation de poids arithmétique minimum, représentation appelée forme non-adjacente généralisée (en anglais "Generalized Non Adjacent Form") et notée en abrégé GNAF. Dans un article intitulé "On Arithmetic Weight for a General
Radix Représentation of Integers" paru en 1973 dans la revue
"IEEE Transactions on Information Theory", Volume IT-19, Pages
823 à 826, les auteurs W.E. Clark et J.J. Liang ont démontré que la représentation GNAF, respecte la propriété suivante :
N = (Pn, Rα-i, • • • ,P-.,P-.,Pθ)
avec pour tout entier naturel i, Ipi+ιpj < r, et si Pi+i-Pi < 0, alors |pi+J > IpJ
On peut vérifier que dans la base relative deux, cette propriété de GNAF est équivalente à la propriété des NAF.
W.E. Clark. et J.J. Liang ont aussi démontré que chaque nombre a une et une seule GNAF dans une "base relative r".
W.E. Clark et J.J. Liang ont décrit également un procédé de calcul permettant de déterminer la représentation GNAF d'un nombre N en base relative r à partir de la représentation du nombre N en base non relative r et de la représentation de l'entier (r+l)N en base non relative r, comme suit :
Soit la représentation en base non relative r de N :
N= (Pn-l, • - • ,p2/Pl,Pθ)r Avec, pour tout entier i, Pi e {0,1, ... ,r-l}
Et soit la représentation en base non relative r de (r+l)N :
(r+1) .N = (9^1,0^,0^-1, ... ,q2,qι,qo)r
Alors, la représentation GNAF en base relative' r de N :
N = (rn, rn_ι, ... ,r2,rι,ro)±,:
Est telle que pour tout entier i, rA = qi+i - pi+ι Ce procédé connu de Clark et Liang demande donc de calculer la représentation en base non relative r de (r+l)N, ce qui est effectué en additionnant les représentations de N et de r.N en base non relative r, comme suit :
N= ( α-l • • • /P2,Pl,Pθ)r
+ r.N = (Pn-l,Pn-2 • • • ,Pl/Pθ,0 )r
(r+1) .N = (qπ-n, qn ,-&-!, ... ,q2,qι,qo)r
Cette addition s'effectue classiquement du chiffre le moins significatif pO vers les chiffres les plus significatifs
Ainsi pour trouver la représentation GNAF d'un nombre N en base relative r, selon le procédé connu de Clark et Liang, il faut calculer la représentation en base non relative r de (r+l)N depuis le chiffre le moins significatif q0 jusqu'au chiffre le plus significatif qn+i et effectuer chaque soustraction qi+i - pi+1 pour déterminer la valeur signée r±.
Pour les opérations d'exponentiation, on utilise couramment des tables de valeurs précalculées, pour accélérer le calcul.
Les tables de valeur précalculées d'exponentiation sont uniquement utilisables pour une exponentiation gauche-droite. Ceci oblige à fournir les chiffres à traiter en commençant par les chiffres les plus significatifs (poids fort) pour finir par les chiffres les moins significatifs (poids faible) , afin de raccourcir considérablement le temps de calcul de l'opération d' exponentiation.
Le problème est donc que le procédé de Clark et Liang fournit les chiffres de la représentation GNAF d'un nombre, de la droite vers la gauche, conventionnellement, alors que les tables de valeur précalculées d'exponentiation traitent les chiffres de la gauche vers la droite pour raccourcir le temps de calcul.
L'inconvénient du procédé de Clark et Liang est donc de ne pas être compatible avec l'utilisation de tables de valeurs précalculées pour accélérer le temps de calcul. Un autre inconvénient du procédé de Clark et Liang est de nécessiter le stockage ou la mémorisation de l'ensemble des chiffres signés de la représentation GNAF d'un nombre avant d'effectuer les opérations élémentaires correspondant à chacun des chiffres signés pour reconstituer l'opération globale en fonction du nombre.
EXPOSE SOMMAIRE DE L'INVENTION
L'objet de l'invention est de mettre au point un procédé pour décomposer tout nombre entier N dans une base relative r et pour calculer simplement une représentation du nombre ayant un poids
' arithmétique minimal afin de décomposer une opération de calcul en fonction du nombre N en opérations élémentaires.
Un objectif principal de l'invention est d'obtenir un procédé de décomposition permettant de calculer les chiffres de la représentation en base relative r du nombre N de gauche à droite, c'est-à-dire des chiffres les plus significatifs vers les chiffres les moins significatifs.
Un objectif particulier de l'invention est d'obtenir un procédé de décomposition permettant d'obtenir les chiffres de la représentation un par un, en déterminant successivement un chiffre à chaque étape, en partant du chiffre le plus significatif vers le chiffre le moins significatif sans avoir besoin de stocker de résultat complet ou de résultat intermédiaire de la décomposition. Un autre objectif est d'obtenir un procédé pour décomposer tout nombre entier dans une base relative r, quelle que soit la valeur de la base relative r.
Les Inventeurs ont relevé que dans une base relative r de valeur quelconque, un nombre a une seule représentation GNAF, mais peut avoir plusieurs représentations ayant le même poids arithmétique minimal que le représentation GNAF.
Par exemple en "base relative 2" ou "binaire signé", le facteur numérique trente-huit a deux représentations de poids arithmétique minimal : La forme non-adjacente : N = (38)ι0 = (1,0,1,0, -1,0)±2
Une autre représentation minimale : N = (38)i0 = (1,0,0,1, 1,0)-a De façon plus surprenante encore, les Inventeurs . ont relevé et démontré que dans l'expression d'un nombre N en base entière r, il existe des suites de' chiffres entiers,' appelées sous- chaînes ou multiplets, telles que la valeur de la suite de chiffres signés correspondant à la représentation en base relative r de poids arithmétique minimal est entièrement déterminée par la valeur des chiffres entiers de la sous-chaîne du nombre N.
Ainsi, de telles suites de chiffres correspondent à la proposition formulée dans les expressions qui suivent.
Soit l'expression de N dans une base entière r :
N= (Pn-l, Pα, • • • ΛP7,P6,P5>-P4,P3»-P2.Pl,Pθ)r (PI)
Considérons M un multiplet, c'est-à-dire une sous-chaîne d'au moins trois chiffres entiers issus du découpage de N :
M = (πii+ι,ι-ii, ... ,mo)r (P2)
Avec i entier naturel supérieur ou égal à 1. Et dans lequel : π-o + 1 ≠ r - 1 (P3)
Hk + ι -+ι = r - 1 pour 0 < k < i (P4) πii + mi+ι ≠ r - 1 (P5)
Considérons également le multiplet ou sous-chaine S correspondant à la représentation GNAF de M et contenant les chiffres signés de même rang que les chiffres du multiplet M comme suit :
S — (Si+ι,Si, ... ,S2,Sι,So)±c (P6)
Alors tous les chiffres signés s±, . . . , s2, si contenus dans ce multiplet S issu de la représentation GNAF en base relative r, sont entièrement déterminés.
La démonstration mathématique de cette proposition n'est pas l'objet de la présente. Succintement, l'invention prévoit alors de découper la série, de chiffres représentant le nombre en multiplets élémentaires suivant les règles de cette proposition P1-P5, puis de transformer chacun de ces multiplets suivant une formule de transformation particulière choisie parmi plusieurs formules d'après des conditions numériques sur les chiffres du multiplet.
L'invention est donc réalisée avec un procédé pour décomposer et effectuer par un circuit- électronique, une opération de calcul en fonction d'un facteur numérique exprimé dans une base entière par une série de chiffres entiers, avec la particularité qu'il comporte des étapes consistant à :
- découper la série de chiffres entiers en multiplets élémentaires, chaque multiplet élémentaire comprenant une partie de la série de chiffres entiers, dans laquelle chaque ' paire de chiffres successifs a une somme de valeur égale à la base diminuée d'une unité, et
- transformer chaque multiplet élémentaire en un multiplet modifié comprenant une suite de chiffres signés tels que la concaténation des multiplets modifiés forme une série de chiffres signés contenant un nombre minimum de chiffres non nuls et représentant la valeur du facteur numérique dans une base relative.
Selon un mode de réalisation préféré, chaque multiplet élémentaire comprend, pour commencer, une première paire de chiffres entiers formant une première somme de valeur différente de la base diminuée d'une unité, puis un ou plusieurs chiffres entiers tels que chaque paire de chiffres entiers voisins a une somme de valeur égale à la base diminuée d'une unité et, pour
finir, une dernière paire de chiffres entiers formant une dernière somme de valeur différente de la base diminuée d'une unité.
De préférence, dans chaque multiplet élémentaire, tous les chiffres de rang impair ont la même valeur, sauf le premier chiffre du multiplet élémentaire, ainsi que l'ultième chiffre s'il a un rang impair, et tous les chiffres de rang pair ont la même valeur, sauf l'ultième chiffre s'il a un rang pair. Il est prévu que la transformation d'un multiplet élémentaire contenant un nombre impair de chiffres suit les étapes conditionnelles suivantes :
- si la première somme est strictement inférieure à la base d-Lminuée d'une unité, alors, dans le multiplet modifié correspondant, les chiffres de rang impair et les chiffres de rang pair, sauf le premier, le pénultième et l'ultième chiffres, sont égaux respectivement aux chiffres de rang impair et aux chiffres de rang pair du multiplet élémentaire, le pénultième chiffre étant déterminé par l'une des deux sous- conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité, alors le pénultième chiffre du multiplet modifié est égal aux chiffres de rang pair du multiplet élémentaire, alors que, .
• si, en outre, la dernière somme est strictement supérieure à la base diminuée d'une unité, alors le pénultième chiffre du multiplet modifié est égal à la valeur des chiffres de rang pair du multiplet élémentaire augmentée d'une unité, tandis que,
- si la première somme est strictement supérieure à la base
diminuée d'une unité, alors les chiffres de rang impair et les chiffres de rang pair, sauf le premier, le pénultième et
l'ultième chiffres du multiplet modifié correspondant sont égaux respectivement à l'opposé des chiffres de rang pair et à l'opposé des chiffres de rang impair du multiplet élémentaire, le pénultième chiffre étant déterminé par l'une des deux sous- conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité, alors le pénultième chiffre du multiplet modifié est égal à la différence entre les chiffres de rang pair du multiplet élémentaire et la base, alors que,
• si, en outre, la dernière somme est ' strictement supérieure à la base diminuée d'une unité, alors le pénultième chiffre du multiplet modifié est égal à l'opposé des chiffres de rang impair du multiplet élémentaire. Il est prévu que la transformation d'un multiplet élémentaire contenant un nombre pair de chiffres suit les étapes conditionnelles suivantes :
- si la première somme est strictement inférieure à la base, diminuée d'une unité, alors les chiffres de rang impair et les chiffres de rang pair/ sauf le premier, l'antépénultième, le pénultième et l'ultième chiffres du multiplet modifié correspondant sont égaux respectivement aux chiffres de rang impair et aux chiffres de rang pair du multiplet élémentaire, les derniers chiffres étant déterminés par l'une des deux sous- conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité alors l'antépénultième et le pénultième chiffres du multiplet modifié sont égaux respectivement aux chiffres de rang pair et aux chiffres de rang impair du multiplet élémentaire, alors que,
• si, en outre, la dernière somme est strictement supérieure à la base diminuée d'une unité, alors l'antépénultième et le pénultième chiffres du multiplet modifié sont égaux respectivement à la valeur des chiffres de rang pair augmentée d'une unité et à l'opposé des chiffres de rang pair du multiplet élémentaire, tandis que,
- si la première somme est strictement supérieure à la base diminuée d'une unité, alors les chiffres de rang impair et les chiffres de rang pair, sauf le premier, l'antépénultième, le pénultième et l'ultième chiffres du multiplet modifié correspondant sont égaux respectivement, à l'opposé des chiffres de rang pair et à l'opposé des chiffres de rang impair du multiplet élémentaire, les derniers chiffres étant déterminés par l'une des deux sous-conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité, alors l'antépénultième et le pénultième chiffres du multiplet ' modifié sont égaux respectivement à la différence entre la valeur des chiffres de rang pair et la base et à la valeur des chiffres de rang impair du multiplet élémentaire, alors' que, • si, en outre, la dernière somme est strictement supérieure à la base diminuée d'une unité, alors l'antépénultième et le, pénultième chiffres du multiplet modifié sont égaux, respectivement, à l'opposé des chiffres de rang impair et à l'opposé des chiffres de rang pair du multiplet élémentaire. Ainsi, dans chaque multiplet modifié, tous les chiffres de rang impair ont la même valeur, sauf le premier et le pénultième ou l'ultième chiffres, et tous les chiffres de rang pair ont la même valeur, sauf le pénultième ou l'antépénultième et l'ultième chiffres.
De plus, chaque multiplet modifié comprend une suite de chiffres ' signés dans laquelle chaque paire de chiffres successifs a une somme de valeur absolue égale à l'unité ou à la base diminuée d'une unité ou à la base. De façon avantageuse, les étapes de - transformation de multiplet élémentaire en multiplet modifié sont effectuées depuis les chiffres les plus significatifs vers les chiffres les moins significatifs.
Pour finir, il est prévu qu'on effectue la transformation de tous les multiplets élémentaires en multiplets modifiés, puis on effectue la concaténation des multiplets modifiés, en chaînant les suites de chiffres signés des multiplets modifiés les unes à la- suite des autres, en omettant le premier et le dernier chiffres non précisés de chaque multiplet modifié. Enfin, il est prévu qu'on effectue les opérations élémentaires de calcul correspondant à chaque chiffre de chaque multiplet modifié pour recomposer l'opération de calcul en fonction du facteur numérique.
Dans une application, il est prévu avantageusement qu'un circuit de calcul électronique met en oeuvre un tel procédé pour décomposer et effectuer une opération de calcul. BREVE DESCRIPTION DES DESSINS
D'autres objectifs, caractéristiques et avantages de l'invention apparaîtront à la lecture de l'exposé du mode de réalisation ci-après, fait à titre d'exemple non limitatif, à la lumière des annexes et des dessins joints sur lesquels :
- la figure 1 représente un algorithme de recodage d'un nombre en représentation GSF en base relative r opérant de gauche à droite, c'est-à-dire du chiffre de poids fort vers le chiffre de poids faible ; - la figure 2 représente un algorithme de recodage d'un nombre en représentation GSF en "binaire signé" opérant de gauche à droite, et
- la figure 3 représente un algorithme de calcul d'exponentiation faisant appel à une telle représentation GSF en base relative r d'un nombre.
EXPOSE DETATT.T,F. DU METT.T.KUR M3DE DE R---ALISATION DE L'--NVENTION
Dans la suite de la présente, on appelle multiplet élémentaire toute suite de chiffres entiers non-signés
(mi+ι,m.i, ... ,mo)r contenant une partie de la série de chiffres entiers (pn-i, ... ,Pι,Pβ, 5,Pir 3, 2,PirPo)r exprimant le nombre N dans la base entière r.
Dans la suite de la présente, on appelle "multiplet modifié" la suite de chiffres signés (*,Sj., , si, *) correspondant à la transformation du multiplet élémentaire et constituant une partie de la représentation arithmétique minimale du nombre N en base relative r.
Le symbole * signifie que la valeur du chiffre n'est pas précisée.
Les Inventeurs ont déterminé des formules permettant de transformer chaque multiplet élémentaire issu du découpage de l'expression du nombre N en base entière r, respectant la proposition ' précédente, en multiplet modifié constituant une partie de la série de chiffres signés de poids arithmétique minimal représentant le nombre N dans la base relative r. Les étapes et les formules de transformation sont détaillées ci-après. Ainsi, l'invention est réalisée en mettant en oeuvre un procédé comportant une première étape consistant à découper la série de chiffres entiers en multiplets élémentaires, chaque multiplet élémentaire comprenant une partie de la série de chiffres entiers constituant l'expression du facteur numérique N en base non relative r.
D'après les propositions précédentes (P3,P4 et P5) , il a été établi que tous les multiplets élémentaires appartiennent à l'un des deux types suivants :
pτ-Tϋ l K TYPE DE MULTIPLET E-I--S-M---STAIRE A NOMBRE IMPAIR DE CTIEERES
Ml = [b,d,<c,d>k,e] (Type I)
Dans lequel (c,d)k représente une suite de k paires de chiffres en base relative r : c,d, c,d, ... , c,d avec k > 0. Avec b + d ≠ r-1, c + d = r-1, et d + e ≠ r-1.
SECOND TYPE DE MϋLTIELET E---E-M-ÏNTAIRE A NOMBRE PAIR DE CHIEERES
M2 = [b,d,<c,d>k,c,e] (Type II)
Avec b + d ≠ r-1, c + d = r-1, et c + e ≠ r-1.
On distingue donc des multiplets élémentaires de Type I qui contiennent un nombre impair de chiffres et des multiplets élémentaires de Type II qui contiennent un nombre pair de chiffres. Selon le mode de procédé de l'invention chaque multiplet élémentaire comprend donc, pour commencer, une première paire de chiffres (b,d) formant une première somme de valeur différente de la base diminuée d'une unité (b+d ≠ r-1), puis éventuellement une ou plusieurs paires de chiffres ((c,d)k) tels que chaque paire de chiffres adjacents (c,d) a une somme de valeur égale à la base diminuée d'une unité (c+d=r-l) et, pour finir, un dernier chiffre (e) ou une dernière paire de chiffres (c,e) .
Dans le cas d'un multiplet élémentaire de type I, le dernier chiffre (e) est tel que la somme de celui-ci, avec le chiffre précédent (d) est différente de la base diminuée d'une unité (e+d≠r-1) . Dans le cas d'un multiplet élémentaire de type II, la dernière paire de chiffres (c,e) est telle que la somme de ces deux chiffres est différente de la base diminuée d'une unité (c+e≠r-1) .
Par ailleurs, on pourra artificiellement ajouter des zéros au début et à la fin de la représentation du nombre N en base non relative r, afin que le découpage en multiplets élémentaires soit toujours possible.
La transformation d'un multiplet élémentaire de type I, contenant alors un nombre impair de chiffres non-signés, est obtenue d'après les formules conditionnelles suivantes :
SI = [*, < ,c>k , d ,*], si bd<r-l et ed<r-l,
SI = [*, <d,c>k ,d+l,*], si bd<r-l et e+d>r-l, (1)
SI = [*,(-c,-d>k,d-r,*], si b+d>r-l et e+d<r-l,
. SI = [*,(-c,-d>,-σ ,*], si b+d>r-l et e+d>r-l.
Pour un multiplet élémentaire de type II, contenant donc un nombre pair de chiffres, la transformation s'effectue suivant l'une des formules conditionnelles suivantes :
S2 = {*, <d,c>k , d , c,*] , si b+d<r-l et e+c<r-l,
S2 = [*, <d,c>k ,d+l,-d,*], si b+d<r-l et e+Or-1, (2)
S2 = [*,<-c,-d)k,d-r, c,*] , si b+d>r-l et e+c<r-l,
_, S2 = [*,<-c,-d>k,-c ,-d,*], si bd>r-l et e+c>r-l.
Dans les formules précédentes de transformation en multiplets modifiés SI ou S2, les étoiles désignent des chiffres dont la valeur n'est pas précisée. Par la suite, les multiplets modifiés sont appelés formes étoiles généralisées (en anglais "Generalized Star Form") notés en abrégé GSF.
La valeur du premier et du dernier chiffres d'un multiplet modifié est déterminée par la concaténation ultérieure des multiplets modifiés les uns à la suite des autres avec un recouvrement, de sorte que le premier et le dernier chiffres non précisés d'un multiplet modifié sont remplacés par le dernier chiffre déterminé du multiplet précédent et par le premier chiffre déterminé du multiplet suivant. A titre d'exemple numérique, considérons la représentation en base Quatre du nombre Deux cent huit millions soixante trois mille huit cent quarante six qui s'écrit sous la forme décimale suivante :
N = (208 063 846)10
L'expression de ce facteur numérique N dans la base entière Quatre est la suivante :
N = (30121230311212)4
D'après les explications précédentes, on décompose la série de chiffres de l'expression du facteur numérique N en base Quatre en multiplets élémentaires. La série de chiffre du nombre N en base Quatre est donc démembrée en blocs de chiffres, en coupant la série à chaque fois qu'une paire de chiffre a une somme ' différente de trois (r-l=3) . Suivant le mode de réalisation préféré, chaque multiplet inclut cependant la paire de chiffres initiaux de somme différente de trois,, ainsi que la paire de chiffres finaux de somme différente de trois. Chaque multiplet a donc une paire de chiffres initiaux identique à la paire de chiffres finaux du multiplet précédent, ainsi qu'une paire de chiffres finaux identique à la paire de chiffres initiaux du multiplet suivant. On peut inscrire par commodité des zéros artificiels au-devant et à la fin de l'expression du nombre N en base Quatre pour avoir des chiffres terminaux de somme différente de trois. La décomposition du nombre N en multiplets élémentaires en base entière Quatre- est la suivante :
N = (0,0,3,0,1,2,1,2,3,0,3,1,1,2,1,2.0)4
M1 = (0,0,3,0,1)
M3 = (0,1,2,1,2,3) îf = (2,3,0,3,1)
M1 = (3,1,1) IM? = (1,1,2,1,2.0)
On reconnaît que les multiplets élémentaires M4, M2 et M1 sont des multiplets de type I, à nombre impair de chiffres. Tandis que les multiplets élémentaires M3 et M0 correspondent à des multiplets de type II, à nombre pair de chiffres.
D'après les formules de transformation (1) et (2) précédentes, on détermine donc les multiplets modifiés S4-S° de type Si et S2 correspondants aux multiplets élémentaires M4-M0, que voici :
s4 = (*, .0,3,0, r *) s3 = (* , .1,2, . 2 , .-i, r) s2 = (* , . 0,- -3,0, *) s1 » (* , -3, *) s0 = <* , ,1,2, r i , r2. • *)
N = (0,3,0,1,2,2,-1,0,-3,0,-3,1,2,1,2)+.
Ainsi, par concaténation des multiplets modifiés' S4-S°, en faisant abstraction de chaque chiffre initial et de chaque chiffre final non précisés (*) , on obtient la représentation GSF de poids arithmétique minimal en base relative quatre du nombre Deux cent huit millions soixante trois mil huit cent quarante six (N=(208 063 846)10, soit N = (3,0,1,2,2,-1, 0,-3, 0,-3, 1,2,1,2)±4). D'après les formules précédentes de transformation, il apparait que le procédé selon l'invention peut se mettre en oeuvre sous forme d'une suite de huit étapes conditionnelles qui s'imbriquent les unes dans les autres ou d'étapes indépendantes qui se succèdent comme suit :
— A. Si le multiplet élémentaire (b,d,(c,d)k, e) contient un nombre impair de chiffres et si la première somme est strictement inférieure à la base diminuée d'une unité (b+d < r- 1) et, en outre, si la dernière somme est strictement inférieure à la base diminuée d'une unité (e+d < r-1) , alors, dans le multiplet modifié correspondant (*,<d, c)k,d,*) , les chiffres de rang impair et les chiffres de rang pair, sauf le premier et l'ultième chiffres, sont égaux respectivement aux chiffres de rang impair (c) et aux chiffres de rang pair (d) du multiplet élémentaire (*,<d, c)k,d,*) .
- B. Si le multiplet élémentaire (b,d,(c,d),e) contient un nombre impair de chiffres et si la première somme est strictement inférieure à- la base diminuée d'une unité
(b+d < r-1) , et en outre, si la dernière somme est strictement supérieure à la base diminuée d'une unité (e+d > r-1), dans le multiplet modifié correspondant (*,(d, c)k,d+l,*) , les chiffres de rang impair et les chiffres de rang pair, sauf le premier, le pénultième et l'ultième chiffres, sont égaux respectivement aux chiffres de rang impair (c) et aux chiffres de rang pair (d) du multiplet élémentaire. (b,d,(c, d), e) , le pénultième chiffre (d+1) étant égal à la valeur des chiffres de rang pair (d) du multiplet élémentaire (*,<d, c)k,d, *) augmentée d'une unité.
- C. Si le multiplet élémentaire (b,d,(c,d)k,e) contient un nombre impair de chiffres et si • la première somme est strictement supérieure à la base diminuée d'une unité (b+d > r-1) et, en outre, si la dernière somme est strictement inférieure à la base diminuée d'une unité (e+d < r-1), alors dans le multiplet modifié correspondant (*,(-c,-d),d-r,*) , les chiffres de rang impair et les chiffres de rang pair, sauf le . premier, le pénultième et l'ultième chiffres sont égaux respectivement à l'opposé (-d) des chiffres de rang pair et à l'opposé (-c) des - chiffres de- rang impair du multiplet élémentaire (b,d,(c,d), e) , le pénultième chiffre étant égal à la différence (d-r) entre les chiffres de rang pair (d) du multiplet élémentaire (*,<d, c),d, *) et la base (r) .
- D. Si le multiplet élémentaire (b,d,(c,d)k, e) contient un nombre impair de chiffres et si la première somme est strictement supérieure à la base diminuée d'une unité (b+d > r-1) et, en outre, si la dernière somme est strictement supérieure à la base diminuée d'une unité (e+d > r-1), alors dans le multiplet modifié correspondant (*,(-c, -d)k, -c,*) , les chiffres de rang impair (-d) et les chiffres de rang pair (-c) , sauf le premier et l'ultième chiffres sont égaux respectivement à l'opposé des chiffres de rang pair (d) et à l'opposé des chiffres de rang impair (c) du multiplet élémentaire (b,d;<c,d>k,e).
- E. Si le multiplet élémentaire (b, d,(c,d), c,e) contient un nombre pair de chiffres et si la première somme est strictement inférieure à la base diminuée d'une unité (b+d < r-1) et, en outre, si la dernière somme est strictement inférieure à la base diminuée d'une unité (e+c < r-1), alors, dans le multiplet modifié correspondant (*,<d, c),d, c,*) , les chiffres de rang impair (c) et les chiffres de rang pair (d) , sauf le premier et l'ultième chiffres, sont égaux respectivement aux chiffres de rang impair (c) et aux chiffres de rang pair (d) du multiplet élémentaire (b,d,(c,d)k, c, e) .
- F. Si le multiplet élémentaire (b,d,(c,d)k, c,e) contient un nombre pair de chiffres et si la première somme est strictement inférieure à la base diminuée d'une unité (b+d < r-1) et, en outre, si la dernière somme est strictement supérieure à la base diminuée d'une unité (e+c > r-1), alors, dans le multiplet modifié correspondant (*,(d, c),d+l,-d, *) , les chiffres de rang impair (c) et les chiffres de rang pair (d) , sauf le premier, l'antépénultième, le pénultième et l'ultième chiffres, sont égaux respectivement aux chiffres de rang impair (c) et aux chiffres de rang pair (d) du multiplet élémentaire (b,d,(c,d), c, e) , l'antépénultième et le pénultième chiffres du multiplet modifié (*,(d, c), d+l,-d, *) étant égaux respectivement à la valeur (d+1) des- chiffres de rang pair (d) augmentée d'une unité et à 1-' opposé (-d) des chiffres de rang pair (d) du multiplet élémentaire (b,d,(c,d), c,e) .
- G. Si le multiplet' élémentaire (b,d,(c,d)k, c, e) contient un nombre pair de chiffres et si la première somme est strictement supérieure à la base diminuée d'une unité (b+d > r-1) , et, en outre, si la dernière somme est strictement inférieure à la base diminuée d'une unité (e+c < r-1), alors, dans le multiplet modifié correspondant (*,(-c, -d)k,d-r,c,*) , les chiffres de rang impair (-d) et les chiffres de rang pair (-c) , sauf le premier, l'antépénultième, le pénultième et l'ultième chiffres, sont égaux respectivement, à l'opposé (-d) des chiffres de rang pair (d) et à l'opposé (-c) des chiffres de rang impair (c) du multiplet élémentaire (b,d,(c,d)k, c,e) , l'antépénultième et le pénultième chiffres étant égaux respectivement à la différence
(d-r) entre la valeur des chiffres de rang pair (d) et la base
(r) et à la valeur (c) des chiffres de rang impair (c) du multiplet élémentaire (b,d,(c,d}, c,e) .
- H. Si le multiplet élémentaire (b,d,(c, d),c,e) contient un nombre pair de chiffres et si la première somme est strictement supérieure à la base diminuée d'une unité (b+d > r-1) , et, en outre, si la dernière somme est strictement supérieure à la base diminuée d'une unité (e+c > r-1), alors, dans le multiplet modifié correspondant (*,(-c, -d)k, -c, -d,*) , les chiffres de rang impair (-d) et les chiffres de rang pair (-c) , sauf le premier et l'ultième chiffres, sont égaux respectivement, à l'opposé
(-d) des chiffres de rang pair (d) et à l'opposé (-c) des chiffres de rang impair (c) du multiplet élémentaire (b,d,(c,d>k,c,e). Il apparaît clairement à la lecture des formules de calcul de transformation précédentes, que les conditions s'excluent les unes les autres et par conséquent, que tout multiplet élémentaire a pour image un et un seul multiplet modifié. ' En outre, il apparaît que les chiffres du multiplet modifié peuvent être obtenus un par un à partir des chiffres du multiplet élémentaire en procédant successivement de la gauche vers la droite, c'est-à-dire des chiffres de poids fort vers les chiffres de poids faible. Ainsi, dans toutes les formules (1) et (2) , la première condition à vérifier :
• soit b + d < r - 1,
• soit b + d > r - 1, porte sur les premiers chiffres b et d du multiplet élémentaire et détermine la valeur des premiers chiffres du multiplet modifié soit [*,<d, c)k, ... ] , soit [*,<-c, -d>, ... ] .
Quant à la seconde condition à vérifier qui est : * pour un multiplet élémentaire de type I :
• soit e + d < r - 1, • soit e + d > r - 1, ou respectivement, pour un multiplet élémentaire M de type II :
• soit e + c < r - 1,
• soit e + c > r - 1, elle porte sur les deux derniers chiffres d et e (ou respectivement c et e) du multiplet élémentaire M et se combine à la première condition pour déterminer la valeur des derniers chiffres du multiplet modifié, ce qui aboutit à l'éventail de huit cas :
[ ,d,*] ou [...,d+l,*] ou [...,d-r,*] ou [ — ,-c,*] ou [...,d,c,*] ou [...,d+l,-d, *] ou [... ,d-r, c,*] ou [... ,-c, -d, *] , suivant les deux conditions et la parité du nombre de chiffres dans le multiplet élémentaire.
Cette caractéristique est particulièrement avantageuse, car elle permet de calculer en ligne, chiffre par chiffre (en anglais "on-line, digit by digit") , la représentation GSF de poids arithmétique minimal du nombre N en base relative r. AVANTAGES ET POSSIBILITES D'APPLICATIONS INDUSTBTBrr.ES
De façon avantageuse, le résultat de la transformation s'obtient ainsi immédiatement chiffre par chiffre sans cycle de calcul inoccupé. Le calcul des chiffres de chaque multiplet modifié de gauche
- à droite évite aussi avantageusement la nécessité de stocker tout ou partie du multiplet modifié lors des calculs.
Cet aspect est essentiel pour des applications de calcul de cryptographie mettant en oeuvre des cartes à puces, c'est-à-dire des cartes à mémoire, à circuit intégré logique ou à microprocesseur simple.
En effet, les algorithmes de cryptage mettent en oeuvre un grand nombre d'opérations complexes, préférentiellement des exponentiations ainsi que des multiplications ou des multiplications scalaires sur des courbes elliptiques, qui mettent en oeuvre des nombres de grande taille. Il est courant par exemple en cryptographie, de traiter des nombres de plus de trois cents chiffres et une exponentiation ou une multiplication scalaire sur une courbe elliptique avec de tels facteurs numériques mobiliserait un nombre considérable de cyles de calcul et un encombrement de mémoire important. Or les microprocesseurs ainsi que la mémoire des cartes à puces, de par leur dimensions réduites ont une capacité limitée.
L'avantage primordial de l'invention est donc de fournir un procédé de décomposition d'un facteur numérique en base relative r, permettant d'obtenir non seulement une représentation de poids arithmétique minimal, qui correspond au plus faible nombre d'opérations élémentaires de calcul, mais aussi d'obtenir cette représentation en opérant des chiffres de poids fort vers les chiffres de poids faible sans mobiliser de mémoire et surtout en permettant la compatibilité avec les tables de valeurs précalculées d'exponentiation ou de multiplication, notamment sur les courbes elliptiques.
Les formules de transformation décrites précédemment peuvent être mises en oeuvre sous forme de circuit électronique de calcul logique, en assemblant des portes logiques opérant sur les états de chaque chiffre d'un multiplet élémentaire.
Le développement d'un tel circuit logique mettant en oeuvre les formules de transformation selon l'invention est à la portée de l'homme de métier et ne sera pas détaillé plus amplement dans la présente.
De préférence, les étapes de transformation prévue selon l'invention sont mises en oeuvre sous forme d'algorithmes de transcodage permettant, à partir d'un nombre exprimé en base entière r, de fournir la représentation GSF du nombre en base relative r de poids arithmétique minimal.
Sur les planches annexes, figurent trois courts extraits de programme d'ordinateur pour mettre en oeuvre le procédé selon l'invention. Chaque extrait de programme est présenté successivement, sous forme de texte libre de listage rédigé en français, sous forme de listage rédigé en langage de programmation courant ainsi que sous forme d'organigramme, leur compréhension étant à la portée de l'homme de métier.
Le premier listage extrait de programme d'ordinateur correspond à un algorithme de recodage d'un nombre (-Tm-i, ... ,no)r exprimé en base non relative r, fournissant la représentation GSF du nombre (n'm,nVi/ .n'0)±r dans une base relative r de valeur quelconque. L'algorithme opère avantageusement selon l'invention, du chiffre le plus significatif vers le chiffre le moins significatif, donc de gauche à droite.
Cet algorithme peut se simplifier avantageusement dans le cas particulier du binaire comme on peut le constater à la lecture de l'algorithme qui suit.
Le deuxième listage extrait de programme d'ordinateur correspond ainsi à un algorithme de. recodage d'un nombre (r-m-i.... ,n0)2 exprimé en binaire (base non relative 2), fournissant la représentation .GSF du nombre (n ,n ι, • . • ,n'0)--2 en "binaire signé" (base relative 2). L'algorithme binaire opère aussi, avantageusement du bit de poids fort vers le bit de poids faible, donc de gauche à droite, conventionnellement. Le troisième listage extrait de programme d'ordinateur correspond à un algorithme de calcul d'exponentiation opérant en base relative r. L'algorithme est donc destiné à effectuer les calculs élémentaires correspondant à la représentation GSF en base relative r de facteur numérique N décomposé suivant' le procédé selon l'invention.
Cet algorithme de calcul effectue l'exponentiation en opérant de gauche à droite.
Les applications de l'invention ne se limitent pas à l'exponentiation, mais incluent aussi la multiplication de nombres entiers, ou la multiplication scalaire sur les courbes elliptiques, à titre exemplatif.
D'autres applications, ' variantes et améliorations pourront être mises en oeuvre par l'homme du métier sans sortir du cadre de la présente invention, l'objet de la protection étant défini par les revendications ci-après.
ANNEXE A
ENTREE: (nm_ι, ... ,n0) r (représentation en base non relative r) SORTIE: (n'm,n'm_ι, ... ,n'0)+r (représentation GSF en base relative r)
βm <r- 0 ; nm <- 0 ; n_ι<- 0 ; n_2<- 0 , τ <r- 0
Pour i décroissant de m à 0 Faire Cas ni + ni-l < - 1 : β _x - 0, τ - ni_ι
n +ni_ι=(r - 1) : βi_ι<- *j 1 Si βi = βi sinon
ni + ni-i' > r: βi-i - 1, τ - m-i
Fin Cas n'i - -rβi + n± + βi-i Fin Faire
1. Algorithme de recodage GSF en base r opérant de gaucihe à droite
ENTREE: (r i, ... ,n0)2 (représentation en binaire)
SORTIE: — ,n'o)±2 (représentation GSF en "binaire signé") βm <r- 0; nm <- 0; n_ι - 0; n_2 <r- 0 Pour i décroissant de m à 0, faire
βi-i <-
Fin Faire
2. Algorithme de recodage GSF en binaire opérant de gauche à droite
ENTREE : k = (km, ... ,ko)±r,g SORTIE : y = gk
y - g
Pour i décroissant de m-1 à 0 Faire y <- yr ki y - y . g
Fin Faire 3. Algorithme d'exponentiation en base relative opérant de gauche à droite
ANNEXE B
INPUT : (nm_ι, ... ,n0) r (radix-r représentation)
OUTPUT : (n'm,n'm_ ]_, ... ,n'Qr (radix-r GSF représentation)
βm <- 0/ nm - 0/ n_1 <- 0; n_2 <- 0, τ <- 0 for i from m down to 0 do case n± + ni_!< r - 1: βi_ι <- 0, τ <- ni-i
0 if βi = 1, ή±-i = (r - 1 - τ)
ni+ni_1=(r - 1) : βi_ι <- *) 1 if βi = βi otherwise
n + n -! > r: βj_ι - 1, τ - n±_ι- endcase
1. Left-to-right radix-r GSF recx-ding -- gorithm
INPUT: (r -ι,...,no)2 (Binary représentation) OUTPUT: (n'm,nVι, ...,n'0)-2 (Binary GSF représentation)
βm <- 0; nm <- 0; n_ι - 0; n_2 <- 0 for i from m down to 0 do
>i-l -
n'i - -rβi + n± + βi-l
2. Left-to-right b-uiary GSF r--M--oding algorithm
INPUT : k = (km, ... ,k0)±r,g OUTPUT : y = g k y - g • for i from m - 1 down to 0 do y <- y ki y <- y • g
od 3. Left-to-right Modified exponentiation algorithm

Claims

R-j-VEtTOICATIONS
1. . Procédé pour décomposer et effectuer par un circuit électronique, une opération de calcul en fonction d'un facteur numérique (N) exprimé dans une base entière (r) par une série de chiffres entiers (pn-i, • • • /•P7/-P6/-P5CP CP3ΛP2.-PI/-PO) , caractérisé en ce qu'il comporte des étapes consistant à :
- découper la série de chiffres entiers en multiplets élémentaires
(M; ... ;M°) , chaque multiplet élémentaire (Mj) comprenant une partie de la série de chiffres entiers (mji+ι,mji, — ,mj 0) , dans laquelle chaque paire de chiffres successifs (m.i,m.-ι) a une somme de valeur égale à la base diminuée d'une unité (m.+m.i-ι = r-1), et
- transformer chaque multiplet élémentaire (P) en un multiplet modifié (S3) comprenant une suite de chiffres signés
(s^i, s i, ... ,s ) tels que la concaténation- des multiplets modifiés
(S S0) forme une série de chiffres signés (si, ... ,skι, sk_1i, ... ,s_ 1ι, ... , s°i, ... , s°ι) contenant un nombre minimum de chiffres non nuls et représentant la valeur du facteur numérique (N) dans une base relative ({-(r-1) , ...,-1,0,1, ...,r-l}) .
2. Procédé selon la revendication précédente, dans lequel chaque multiplet élémentaire (mDi+ι,mi,m.:,i-.i/ ... ^^πo) comprend, pour commencer, une première paire de chiffres entiers' (b,d). formant une première somme de valeur différente de la base diminuée d'une unité
(b+d ≠ r-1), puis un ou plusieurs chiffres entiers ((c,d)k) tels que chaque paire de chiffres entiers voisins (c,d) a une somme de valeur égale à la base diminuée d'une unité (c+d=r-l) et, pour finir, une dernière paire de chiffres entiers (d, e) (c,e) formant une dernière somme de valeur différente de la base diminuée d'une unité (d+e ≠ r-1)
(c+e ≠ r-1) .
3. Procédé selon la revendication précédente, dans lequel, dans chaque multiplet élémentaire (b,d,(c,d)k,e) (b,d,(c,d)k, c,e) , tous les chiffres de rang impair ont la même valeur (c) , sauf le premier chiffre (b) du multiplet élémentaire, ainsi que l'ultième chiffre (e) s'il a un rang impair, et tous les chiffres de rang pair ont la même valeur (d) , sauf l'ultième chiffre (e) s'il a un rang pair.
4. Procédé selon la revendication 2 ou 3, dans lequel la transformation d'un multiplet élémentaire (b,d,(c,d)k,e) contenant un nombre impair de chiffres suit les étapes conditionnelles suivantes :
- si la première somme est strictement inférieure à la base diminuée d'une unité (b+d<r-l) , alors, dans le multiplet modifié correspondant
(*,<d, c),*, *) , les chiffres de rang impair et les chiffres de rang pair, sauf le premier, le pénultième et l'ultième chiffres, sont égaux respectivement aux chiffres de rang impair et aux chiffres de rang pair du multiplet élémentaire, le pénultième chiffre étant déterminé par l'une des deux sous-conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité (e+d<r-l) , alors le pénultième chiffre
(d) du multiplet modifié (*,(d, c)k,d,*) est égal aux chiffres de rang pair (d) du multiplet élémentaire (b,(d,c)k,d,e) , alors que, • si, en outre, la dernière somme est strictement supérieure. à la base diminuée d'une unité (e+d > r-1), alors le pénultième chiffre (d+1) du multiplet modifié (*,(d, c)k,d+l,*) est égal à la valeur des chiffres de rang pair (d) du multiplet élémentaire (b,(d, c),d,e) augmentée d'une unité, tandis que, - si la première somme est strictement supérieure à la base diminuée d'une unité (b+d > r-1), alors les chiffres de rang impair et les chiffres de rang pair, sauf le premier, le pénultième et l'ultième chiffres du ' multiplet modifié correspondant (*,{-c,-d)k,*,*) sont égaux respectivement à l'opposé des chiffres de rang pair et à l'opposé des chiffres de rang impair du multiplet élémentaire, le pénultième chiffre étant déterminé par l'une des deux sous- conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée, d'une unité (e+d<r-l) , alors le pénultième chiffre (d-r) du multiplet modifié (*,(-c,-d)k,d-r,*) est égal à la différence (d-r) entre les chiffres de rang pair (d) du multiplet élémentaire (*,(d, c)k,d,*) et la base (r) , alors que,
• si, en outre, la dernière somme est strictement supérieure à la base diminuée d'une unité (e+d > r-1), alors le pénultième chiffre (-c) du multiplet modifié (*,(-c, -d)k, -c, *) est égal à l'opposé des chiffres de rang impair (c) du multiplet élémentaire (b,<d,c),d,e).
5. Procédé selon l'une des revendications précédentes, dans lequel la transformation d'un multiplet élémentaire (b,d,(c,d), c,e) contenant un nombre pair de chiffres suit les étapes conditionnelles suivantes : - si la première somme est strictement inférieure à la base, diminuée d'une unité (b+d<r-l) , alors les chiffres de rang impair et les chiffres de rang pair, sauf le premier, l'antépénultième, le pénultième et l'ultième chiffres du multiplet modifié correspondant
(*,(d, c)k, *,*,*) sont égaux respectivement aux chiffres de rang impair et aux chiffres de rang pair du multiplet élémentaire, les derniers
. chiffres étant déterminés par l'une des deux sous-conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité (e+c<r-l) alors l'antépénultième et le pénultième chiffres du multiplet modifié (*,(d, c),d, c,*) sont égaux respectivement aux chiffres de rang pair (d) et aux chiffres de rang impair (c) du multiplet élémentaire (b,d,(c, d), c,e) , alors que,
• si, en outre, la dernière somme est strictement supérieure à la base diminuée d'une unité (e+c > r-1), alors l'antépénultième et le pénultième chiffres du multiplet modifié (*,(d,c),d+l,-d,*) sont égaux respectivement à la valeur des chiffres de rang pair augmentée d'une unité (d+1) et à l'opposé des chiffres de rang pair (-d) du multiplet élémentaire (b,d,(c,d), c,e) , tandis que, - si la première somme est strictement supérieure à la base diminuée d'une unité (b+d > r-1), alors les chiffres de rang impair et les chiffres de rang pair, sauf le premier, l'antépénultième, le pénultième et l'ultième chiffres du multiplet modifié correspondant
(*,(-c, -d)k, *,*,*) sont, égaux respectivement, à l'opposé (-d) des chiffres de rang pair et à l'opposé (-c) des chiffres de rang impair du multiplet élémentaire (b,d,(c,d)k, c,e) , les derniers chiffres étant déterminés par l'une des deux sous-conditions suivantes :
• si, en outre, la dernière somme est strictement inférieure à la base diminuée d'une unité (e+c<r-l) , alors l'antépénultième et le pénultième chiffres du multiplet modifié (*,(-c, -d),d-r,c,*) sont égaux respectivement à la différence entre la valeur des chiffres de rang pair et la base (d-r) et à la valeur des chiffres de rang impair (c) du multiplet élémentaire (b,d,(c,d), c,e) , alors que, • si, en outre, la dernière somme est strictement supérieure à la base diminuée d'une, unité (e+c > r-1), alors l'antépénultième et le pénultième chiffres du multiplet modifié (*,(-c,-d)k, -c,-d,*) sont égaux, respectivement, à l'opposé (-c) des chiffres de rang impair et à l'opposé (-d) des chiffres de rang pair du multiplet élémentaire (b,d,(c,d)k,c,e) .
6. Procédé selon l'une des revendications précédentes, dans lequel, pour un multiplet élémentaire de type I, contenant un nombre impair de chiffres entiers, et s'écrivant sous la forme suivante :
Ml'= [b,d,(c,d>,e] (type I) avec k entier et b,d, c, e, entiers inférieurs à la base (r) tels que b+d ≠ r-1, c+d = r-1 et e+d ≠ r-1, la transformation suit l'une des formules conditionnelles suivantes : SI = [*, <d,c> , d ,*], si b+d<r-l et e+d<r-l,
SI = [*, <d,c>k ,d+l,*], si b+d<r-l et e+d>r-l, (1)
SI = [*,<-c,-d)k,d-r,*], si b+d>r-l et e+d<r-l,
51 = [*,<-c,-d>,-d ,*], si b+d>r-l et e+d>r-l.
7. Procédé selon l'une des revendications précédentes, dans lequel, pour un multiplet élémentaire de type II, contenant un nombre pair de chiffres entiers, et s'écrivant sous la forme suivante :
M2 = [b,d,(c,d>k,c,e] (type II) avec k entier et b,d, c,e, entiers inférieurs à la base (r) tels que b+d ≠ r-1, c+d = r-1 et e+d ≠ r-1, la transformation suit l'une des formules conditionnelles suivantes :
52 = [*, <d,c) , d , c,*], si b+d<r-l et e+c<r-l, S2 = [*, <d,c) ,d+l,-d,*], si b+d<r-l et e+c>r-l, (2) S2 = [*,<-c,-d),d-r, c,*], si b+d>r-l et e+c<r-l, L S2 = [*,<-c,-d),-c ,-d,*], si b+d>r-l et e+c>r-l.
8. Procédé selon l'une des revendications précédentes, dans lequel, dans chaque multiplet modifié (*,<d, c)k,*,*) (*,(-c, -d)k, *,*,*) , tous les chiffres de rang impair ont la même valeur (c) (-d) , sauf le premier et le pénultième ou l'ultième chiffres, et tous les chiffres de rang pair ont la même valeur (d) (-c) , sauf le pénultième ou l'antépénultième et l'ultième chiffres.
9. Procédé selon l'une des revendications précédentes, dans lequel chaque multiplet modifié (S3) comprend une suite de chiffres signés (s3i,sji_ι. - • • . sjι) dans laquelle chaque paire de chiffres successifs (Si, Si_ι) a une somme de valeur absolue égale à l'unité ou à la base diminuée d'une unité ou à la base (|s+Si_ι| e {l,r-l,r}) .
10. Procédé selon l'une des revendications précédentes, dans lequel les étapes de transformation de multiplet élémentaire (M3) en multiplet odifié (S3) sont effectuées depuis les chiffres les plus significatifs vers les chiffres les moins significatifs.
11. Procédé selon l'une des revendications précédentes, dans lequel on effectue la transformation de tous les multiplets élémentaires ... , sjι, *) , puis on effectue la concaténation des multiplets modifiés, en chaînant les suites de chiffres signés des multiplets modifiés les unes à la suite des autres, en omettant le premier et le dernier chiffres non précisés (*) de chaque multiplet modifié (*,s , ... ,sjι, *) .
12. Procédé selon l'une des revendications précédentes, dans lequel on effectue les opérations élémentaires de calcul correspondant à chaque chiffre non nul de chaque multiplet modifié pour recomposer l'opération de calcul en fonction du facteur numérique (N) .
13. Circuit de calcul électronique caractérisé en ce qu'il met en oeuvre un procédé pour décomposer et effectuer une opération de calcul selon l'une des revendications précédentes.
EP01978522A 2000-10-11 2001-10-10 Representation arithmetique minimale d'un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie Withdrawn EP1328864A2 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0013349 2000-10-11
FR0013349A FR2815146B1 (fr) 2000-10-11 2000-10-11 Representation arithmetique minimale d'un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie
PCT/FR2001/003122 WO2002031646A2 (fr) 2000-10-11 2001-10-10 Representation arithmetique minimale d'un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie

Publications (1)

Publication Number Publication Date
EP1328864A2 true EP1328864A2 (fr) 2003-07-23

Family

ID=8855478

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01978522A Withdrawn EP1328864A2 (fr) 2000-10-11 2001-10-10 Representation arithmetique minimale d'un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie

Country Status (5)

Country Link
US (1) US20040162868A1 (fr)
EP (1) EP1328864A2 (fr)
AU (1) AU2002210629A1 (fr)
FR (1) FR2815146B1 (fr)
WO (1) WO2002031646A2 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2169535A1 (fr) * 2008-09-22 2010-03-31 Thomson Licensing Procédé, appareil et support de programme informatique pour le recodage régulier d'un entier positif

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430669A (en) * 1993-12-03 1995-07-04 United Microelectronics Corp. Apparatus for finding the square root of a number
JP3421933B2 (ja) * 1994-10-31 2003-06-30 弘之 河▲崎▼ 演算処理装置及び電子計算機

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0231646A3 *

Also Published As

Publication number Publication date
WO2002031646A2 (fr) 2002-04-18
FR2815146B1 (fr) 2004-05-28
FR2815146A1 (fr) 2002-04-12
AU2002210629A1 (en) 2002-04-22
WO2002031646A3 (fr) 2002-06-13
US20040162868A1 (en) 2004-08-19

Similar Documents

Publication Publication Date Title
EP0204603B1 (fr) Circuit de calcul rapide de la transformée en cosinus, directe ou inverse, d&#39;un signal discret
Mahler Introduction to p-adic numbers and their functions
FR2788867A1 (fr) Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
RU2698764C2 (ru) Электронное вычислительное устройство для выполнения замаскированных арифметических действий
EP0712072A1 (fr) Procédé de mise en oeuvre de réduction modulaire selon la méthode de Montgomery
Adamchik et al. π: A 2000-year search changes direction
FR2853424A1 (fr) Architecture de multiplicateurs polynomial et naturel combines
EP0437876B1 (fr) Multiplieur série programmable
FR2722590A1 (fr) Circuit logique de multiplication parallele
EP0110767B1 (fr) Multiplieur binaire rapide
JP7540501B2 (ja) 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム
FR2604270A1 (fr) Additionneur binaire comportant un operande fixe, et multiplieur binaire parallele-serie comprenant un tel additionneur
EP1328864A2 (fr) Representation arithmetique minimale d&#39;un nombre n en base relative r pour decomposer des operations de calcul notamment en cryptographie
FR2593948A1 (fr) Dispositif de transformee en cosinus d&#39;un signal numerique echantillonne
DE102006025713B4 (de) Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
FR2796736A1 (fr) Procede pour effectuer une multiplication avec accumulation dans un corps de galois
WO2002065645A1 (fr) Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente
EP0341097B1 (fr) Additionneur de type récursif pour calculer la somme de deux opérandes
EP0375054B1 (fr) Circuit intégré neuromimétique avec des moyens d&#39;apprentissage
FR2585150A1 (fr) Multiplieur pour la multiplication de deux nombres complexes
FR2811168A1 (fr) Procede de conversion de la representation binaire d&#39;un nombre dans une representation binaire signee
FR2771525A1 (fr) Procede de production d&#39;un parametre de correction d&#39;erreur associe a la mise en oeuvre d&#39;operation modulaire selon la methode de montgomery
EP0329545B1 (fr) Dispositif pour le calcul des bits de parité d&#39;une somme de deux nombres
EP4535161A1 (fr) Procédé et circuit électronique de multiplication
EP4095827B1 (fr) Système de calcul de racine carrée sécurisé, système de normalisation sécurisé, procédés associés, dispositif de calcul sécurisé et programme

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: 20030512

AK Designated contracting states

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: 20040811

17Q First examination report despatched

Effective date: 20040811

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20080409