Vous êtes sur la page 1sur 39

Pour chiffr un message M par RSA avec une cl priv (e,n) on doit calculer: C=Me mod n Ce qui est

une exponentiation modulaire. Le calcul de Me est trs couteux en temps de calcul car lexposant e doit tre sur 1024 bits pour assur une scurit maximale

La solution est lutilisation dun algorithme dexponentiation modulaire qui va simplifier cette opration.

On peut reprsenter lexposant e en binaire (base 2) Sur k bits alors : e = (ek-1 ek-2 e1 e0)2 pour tout 0 i k-1, ei ={0,1}. Donc C=Me = (ek-1 ek-2 e1 e0) mod n

Entre : M,e,n Sortie : C = Me (mod n) 1. Si ek-1 = 1 alors C = M Sinon C=1 2. Pour i = k-2 jusqu 0 faire 2a. C = C . C (mod N) 2b. Si ei = 1 alors C = C . M (mod N) 3. Retourner C

Cette mthode ncessite Pour un exposant e sur k-bits, avec ek-1 = 1 (Etape 2a) : k-1 Multiplications (Etape 2b) : elle dpend aux bits ei 1 de e. Ce qui signifie que le nombre maximale des multiplications quon peut avoir est: (k-1)+(k-1) = 2(k-1) multiplications

Avec la mthode binaire on peut rduire le nombre de multiplications ncessaires pour lexponentiation de (e-1) jusqu 2(k-1) si touts les bits de e sont 1.

MUX C2 MM

1 0

C*M
MM

On peut dire que la mthode m-aires est une mthode binaire amlior le m est un puissance de 2 donc on peut reprsent e dans la base m partir de son criture en binaire en faisant s blocs de r bits o sr = k, tell que k reprsente le nombre de bits de e . Le principe de la mthode m-aire est que lon doit dabord calculer les Mw pour w = 2,3,,m-1 que lon va stocker car on devra les utiliser continuellement pour les multiplications.

Entre : M,e,n, m=2r Sortie : C = Me (mod n) 1. Calculer et stocker Mw (mod N) pour tout w= 2,3,,m-1 2. Dcomposer e en s mot de r bits Fi 3. C = MFs-1 (mod n) 4. Pour i = s-2 0 4a. C = Cm (mod n) 4b. si Fi 0 alors C = C . MFi (mod N) 5. Retourner C

Pour la mthode m-aire quelconque avec m = 2r Le nombre de pr-calculs effectu est de : m-2 = 2r -2 Le nombre de carrs (Etape 4a) est de : ((k-1)/r).r si touts les bits de fi sont 1 Le nombre de multiplication (Etape 4b) est de : ( (k-1)/r au maximum Donc en gnral la mthode m-aire requiert en moyenne: (k-1)/r .r carrs+ 2r -2 + (k-1)/r multiplications. = (k-1)/r .(r +1) + 2r -2

Cm Fi=?0 e r C*Mfi

Mfs-1

Mf0

C r carres MM(C,C)

Cm

m= 32=25 => r= 5
Pour un exposant e =2451 =(100110010011)

K=12 S=3 les multiplications ncessaires sont donc

2 =(00010 01100 10011)

(k-1)/r .(r +1) + 2r -2 =3.6+30=48 multiplications qui est trs infrieur 2451

Les multiplication doit tre excut en srie donc on doit implmenter une multiplication modulaire ddie cet algorithme

le calcul de lexponentiation modulaire nest autre quun calcul itratif de la multiplication modulaire. La multiplication modulaire consiste effectuer la multiplication de deux nombre A et B et de prendre le reste S obtenu de la division du produit (A*B) par un troisime nombre M, appel modulo cette opration est donne par lexpression suivante S=(A*B)mod M

Dune manire gnrale, lexcution de la multiplication modulaire ncessite deux phases, une phase de multiplication suivit dune phase de rduction (division).

On peut classs les algorithmes du la multiplication modulaire en deux catgories : Les algorithmes intgrs : sont des algorithmes qui intgrent la rduction la multiplication ellemme. Ex : Lalgorithme de Taylor avec mmorisation Les algorithmes rduction : sont des algorithmes qui dcomposent la multiplication modulaire en une multiplication suivie dune rduction modulaire. Ex : lalgorithme de Montgomery

entre : a, b, M avec 0 a, b < M donne : M avec (M)*M = 1 mod R,R=n >M sortie : S tel que S =( A*B*R-1) mod M avec R*R-1 = 1 mod M dbut C <=a*b q <=C*M mod R S<=(C + q*M)/R Si S M alors S<= S M fin

Lapplication de Montgomery nous conduit dterminer un quotient q tel que (C) soit divisible par R(constante de Montgomery). le rsultat S=(C*R-1)mod M une opration supplmentaire doit tre effectue afin de supprimer le facteur R-1 on multiple le rsultat de Montgomery par R2mod M

Dans le RSA, les cl de dchiffrement sont gnralement de lordre de 1024 bits, cependant, quand la surface dimplmentation est limite, lexcution de la multiplication modulaire de montgomery et les calculs de ses rsultats intermdiaires se trouve impossible. En effet, afin de faciliter limplmentation de la MMM, des modifications ont t apportes sur son algorithme original. Celles-ci ont abouties des variantes qui peuvent tre implmente suivant un mode parallle ou sriel.

Lide dentrelacer la multiplication la rduction modulaire est base essentiellement sur la reprsentation du multiplieur A selon le schma dHorner. A un entier reprsent en base par
A=
=0

La rcriture de la multiplication de Montgomery suivant le schma dHorner est donne comme suit
1 =0

S= ((

)*B* -n)

mod M

S=(((a0*B*-1)mod M)+((a1*B*-1)mod M)+..+((an-1*B* -1)mod M))

On remarque que la multiplication modulaire de Montgomery peut tre calcule en utilisent la formule de rcurrence suivante :
S0=0
Si+1=(Si+(ai*B))* -1mod M ou i=0n-1

A chaque itration un produit partiel est gnr, puis ajout au rsultat prcdant. Le tout est multipli par le facteur -1 ,le rsultat obtenu est rduit au modulo M.

Entres : A=

1 =0

, B=

1 =0

i , M=

=0

, avec 0 A, B < M

Donnes : m=-m0-1mod , Rn avec =2k, et gcd(M,2k)=1

Variables : si= Sortie: S= Debut S0=0

=0

, qi = (A*B*R-1) mod M

1 =0

Pour i de 0 n-1 faire Qi =((Si ,0+(ai*b0))*m)mod Si+1 =(Si +(ai*B)+(qi*M))/ FIN POUR SI Sn<M alors S<= Sn SI NON S=Sn-M FIN Retourne S

La dtermination de qi est justifie par le fait que Si+(ai*B)+(qi*M) est divisible par . Celui-ci est calcul chaque itration, en considrant uniquement la partie basse (poids faible de la taille) Si,0+(ai*b0))*m La soustraction finale est ncessaire pour assurer que le rsultat de la multiplication de Montgomery soit strictement inferieur M. dans ce qui suit nous allons prsenter une autre variante de la multiplication modulaire de Montgomery qui supprime la soustraction final

Llimination de linstruction conditionnelle lie la soustraction finale est intressante, on obtient un gain matriel, mais aussi le faite de ne plus avoir de soustraction conditionnelle, ceci nous permet dexcuter lalgorithme de Montgomery en temps constant quelque soit les donnes en entres.

Entres : A=

=0

, B=

=0

i , M=

=0

, avec 0 A, B < M

Donnes : m=-m0-1 mod , avec =2k, et gcd (m,2k)=1 , R=2()+ avec k2 Variables : si=
1 =0

, qi

Sortie: s=

=0

, = (A*B*R-1) mod M

Debut S0=0 Pour i de 0 n faire qi =((Si ,0+(ai*b0))*m)mod Si+1 =(Si +(ai*B)+(qi*M))/ Fin pour Retourne S

1.

2.

3.

Dans cet algorithme il est clair que les oprandes A et B doivent tre reprsents sur (n+1) chiffres. Puisque ces dernires sont inferieures (2*M). Le constant R de Montgomery doit satisfaire la condition R2n*k+2. Pour que la sortie S de lalgorithme soit inferieure (2*M), il est ncessaire deffectuer (n+1) itrations.

Cet architecteur base sur un rseau systolique. Le rseau en question est constitu par une matrice de cellules lmentaires identiques. Limplmentation de ce type de rseau sur les circuits FPGA trouve une adaptation particulire, tant donn que ces circuits sont aussi constitus par une matrice de CLB. Le calcul de lexpression Si+1=Si+(ai*B)+(qi*M) peut tre effectu par une slection on utilisant uniquement les bit ai et qi.

Entres : A, B, M, M+B Donnes : m=-m0-1mod , Rn avec =2k, et gcd(m,2k)=1 Variables : sij , carry, Xi Sortie : S Debut S0=0 Pour i de 0 n faire Qi=Si,0 xor (ai and b0) Pour j de 0 n faire Select ai , qi 0,0 : xi=0 0,1 : xi=mj 1,0 : xi=bj 1,1 :xi=mi+bj Si+1 j=(Si,j xor xi xor carryj) Carryj+1=(Si,j and xi)OR(Si,j and carryj)or(xi and carryj) FIN POUR FIN POUR FIN Retourne

Vous aimerez peut-être aussi