méthodes de cryptographie
TRANSCRIPT
-
8/6/2019 Mthodes de cryptographie
1/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
1
Mthodes de cryptographie
Par
Mohamed NAIMI
2010-2011
-
8/6/2019 Mthodes de cryptographie
2/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
2
1. Arithmtique
1.1 Introduction
Larithmtique ou exactement la thorie des nombres a t depuis longtemps considre parles mathmatiques pures comme un domaine la fois fascinant et sans grand intrt.
Aujourdhui, la thorie des nombres est largement utilise, notamment dans le domaine de lacommunication et la transmission des informations.
La transmission des messages entres ordinateurs ncessite la confidentialit et
lauthentification do le cryptage (chiffrement) et le dcryptage (dchiffrement) des
messages transmis.
On distinguera deux types de cryptage : le cryptage clef prive et celui clef publique ces
deux modes de cryptage seront prsents dans la suite.
Dans cette partie nous rappelons des notions fondamentales de larithmtique des nombres.
1.2 Dfinitions et notations
1.2.1 DivisibilitOn note lensemble des entiers naturels par N={0, 1, 2, } et lensemble des entiers relatifs
par Z={, -1, 0, 1, }.
Dfinition : On dit quun entier a diviseb et que lon note par a|b sil existe un entier k telque b=k.a.
On dit que b est un multiple de a et, a un diviseur de b.Remarque : Tout entier divise 0.On appelle diviseurs dun entier tous les entiers qui le divisent.
Exemple : Les diviseurs de 18 sont : {- 1, -2, -3, -6, -9, -18, 1, 2, 3, 6, 9, 18}
1.2.2 Proprits : si a | b alorsP1 : a | (b + a)
P2 : a | (b a)P3 : a | (m.b + n.a) o m et n sont des entiers relatifs.
1.2.3 Division euclidienneSoit a et b deux entiers naturels, b tant non nul.
Il existe un unique couple (q , r) dentiers tels que : 0 r b .a b q r avec 0 r b On dit que a est le dividende, b est le diviseur, q est le quotient et r le reste dans la division
euclidienne de a par b.
1.2.4 Plus Grand Commun DiviseurDfinition : Si a et b sont deux entiers relatifs non tous les deux nuls, lensemble desdiviseurs communs a et b admet un plus grand lment. On lappelle le plus Grand Commun
Diviseur de a et b et on le note PGCD(a , b).
Exemple : PGCD (-24 , 18) = 6
Euclide est le premier donner un algorithme qui dtermine le PGCD de deux entiers a et b.
( , ) ( , ) .PGCD a b PGCD a b a b
Proprits
Soit a et b deux entiers relatifs non tous les deux nuls :P1 : PGCD(a , b)=PGCD(b, a mod b)
P2 : Si 0 b a PGCD(a,b)=PGCD(r,b) o r est le reste de la division euclidienne de a par b.P3 : Si b est un diviseur de positif de a, alors PGCD(a , b)=b
-
8/6/2019 Mthodes de cryptographie
3/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
3
Algorithme PGCD( a, b)
Dbut
Si (a mod b =0) Alors Retourner (b)
Sinon PGCD (b , a mod b)
Fsi
Fin
Exemple
Le calcul du pgcd des entiers 473 et 123 par lalgorithme dEuclide :
473 = 123 3 + 104
123 = 104 1 + 19
104 = 19 5 + 9
19 = 9 2 + 1
On obtient PGCD(473 , 123) = 1
P1 : Soit a et b deux entiers relatifs non nuls les deux nuls et d un entier naturel :d=PGCD(a , b) si et seulement si a=d .a et b=d.b avec a et b entiers premiers entre eux.
P2 : Soit a et b deux entiers suprieurs ou gaux 2.a et b sont dits premiers entre eux si PGCD(a , b) =1.
1.2.5 Plus Petit Commun MultipleSoit a et b deux entiers relatifs non nuls. Lensemble des multiples communs strictement
positifs de a e b admet un plus petit lment m, not PPCM(a , b) appel Plus Petit CommunMultiple de a et b.
Comment obtenir le PPCM de deux entiers a et b ?
On dcompose les entiers a et b en facteurs premiers.On effectue le produit des nombre premier de a et b de plus grande puissance.
Exemple
Le PPCM (435 , 132)
435 = 3 * 5 * 29
132 = 2 * 2 * 3 * 11 = 22
* 3 * 11PPCM(435 , 132) = 22 * 3 * 5 * 11 * 29
Proprit
Si a et b sont deux entiers naturels non nuls, alors ( , ) ( , ) .PGCD a b PPCM a b a b
1.2.6 Nombres premiers entre euxDeux entiers (a > 1) et( b > 1) sont dits premiers entre eux si leur PGCD(a , b) = 1.
Les nombres a et b ne sont pas ncessairement premiers.
Exemple 6 et 11 sont premiers entre eux
1.2.7 CongruenceDfinition Soient a et b deux entiers.
On dit que a et b sont congrus modulo n (n > 1) si n divise (a-b), que lon note : a b (mod n).
Quel lon not par (mod n) et (c d (mod n)a b (mod n)a b Propritssi (mod n) et (c d (mod n)a b alors
-
8/6/2019 Mthodes de cryptographie
4/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
4
P1 : (mod n)a c b d P2 : . . (mod n)a c b d
P3 : (mod n)p pa b Exponentiation modulaire
Soit1 0
( ,...., )k
p p p
une reprsentation binaire du nombre p.
int Exp(int a , int p[] , int n){int c=1;
for(i=k-1 ; i>0 ; i--){c=(c*c)% n ;if (p[i]==1) c=c*a ;
}return(c) ;
}
1.2.8 Thorme de BezoutSoient a et b deux entiers relatifs non nuls.
Thorme a et b sont premiers entre eux, si et seulement si, il existe deux entiers x et y telsque a.x + b.y = 1 appele aussi quation diphantienne.
Lalgorithme dEuclide permet aussi de calculer les coefficients de Bezout de a et b (on
lappelle algorithme dEuclide tendu). Rappelons que si d est le PGCD(a,b), il existe desentiers x et y tels que a.x + b.y = 1. Il suffit de remonter les calculs, en exprimant le
PGCD(a,b) en fonction des autres nombres depuis la dernire quation jusqu la premire.
Exemple
Soit rsoudre lquation 71x + 19 y = 1
71 et 19 sont premiers entre eux, il existe, donc, lquation possde une solution.
71 19 3 14
19 14 1 5
14 5 2 4
5 4 1 1
On remonte depuis la dernire quation.1 5 4 1
1 5 (14 5 2) 3 5 141 3 (19 14) 14 3 19 4 14
1 3 19 4 (71 19 3) 4 71 15 19
Par identification on obtient x = - 4 et y = 15
Algorithme dEuclide tendu
void Euclide_Etendue (int a, int b, int *x, int *y, int *d) {int q, r, s, t, tmp;*x = 1;
*y = 0;s = 0;t = 1;
while (b > 0) {
-
8/6/2019 Mthodes de cryptographie
5/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
5
q = a / b;r = a % b;a = b;b = r;tmp = s;s = *x - q * s;
*x = tmp;tmp = t;t = *y - q * t;*y = tmp;
}*d=a;
}
1.2.9 Thorme de GaussThorme Soit a et b deux entiers non nuls.
Si a divise b.c et si a est premier avec b alors a divise c.
1.2.10 Petit thorme de FermatThorme Si p est entier premier et a un entier naturel non divisible par p, alors ap-1-1 estdivisible par p.
ap-11 ( p)
Remarque : 1 2 2 1( )( )n n n n n na b a b a a b ab b
1.2.11 Thorme dEulerOn note par ( )n le nombre dlments ayant un inverse modulo n (c'est--dire le nombre
dlments premiers avec n).
La fonction ( )n est appele fonction indicatrice dEuler.
Exemple : (15) 8 c'est--dire {1, 2, 4, 7, 8, 11, 13, 14}Si n est premier alors ( )n = n-1
Thorme dEuler Si a est premier avec n alors : ( ) 1( )na n Remarque : le petit thorme de Fermat est une consquence (cas particulier) de ce thorme.
1.2.12 Thorme de WilsonSi n est un entier naturel (p-1) !-1(n) si et seulement si n est premier.
Dmonstration :
Si n est premier alors (n-1) ! -1(n)Si n est non premier, il admet au moins un diviseur d tel que 1< d
-
8/6/2019 Mthodes de cryptographie
6/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
6
Si k = 2 on a n = 4 et (n-1) = 6 2(4)
Si k > 2 on a n-1=2k et k < k+1, on est certain que le double de k se trouve
dans la liste.
En conclusion, si n nest pas premier (n-1) ! ne peut pas tre congru -1(n).
1.2.13 Rsolution de congruence linaire axThorme : Soit deux entiers a et n tel que PGCD(a , n)=1 et b Z.Lquation ( )ax b n admet une unique solution 1 1 ( )a ax a b n c'est--dire 1 ( )x a b n
Exemple
Rsoudre lquation 3 4(7)x Facilement, on remarque que 5 3 5 4(7)x c'est--dire15 20(7)x ou 6(7)x
1.2.14 Le reste chinoisLe thorme du reste chinois traite la rsolution de systmes de congruences. Ce thorme est
utilis en thorie des nombres.Ce thorme a t publi en 1247 par le mathmaticien chinois Qin Jiushao, est un rsultat
concernant les systmes de congruences.
Thorme du reste chinois
Soient des entiers 1 2, , , kn n n deux deux premiers entre eux, alors pour tous entiers:
1 2, , , ka a a , il existe un unique entier1
mod ni k
i
i
x n
et tel que
1 1
2 2
( )
( )
...
( )n n
x a n
x a n
x a n
Une solution de x peut dtermine comme suit :
La preuve permettant de construire une solution de ce systme, celle-ci est fournie ci-dessous
:
On dtermine 1 2 ... kM n n n
Posonsi
i
MM
m pour i = 1, 2, ..., k. On a donc pgcd(M i, mi) = 1 et on peut ainsi trouver
d'aprs l'identit de Bezout deux entiers ui et vi tel que Miui + mivi = 1.On a alors : u1M1r1 + u2M2r2 + ... + ukMkrk ri(mod mi) pour i = 1, 2, ..., k
Par consquent le nombre x = u1M1r1 + u2M2r2 + ... + ukMkrk est solution du systme. De plus
si y est une autre solution de celui-ci, alors mi divise x - y pour chaque i = 1, 2, ..., k. Ainsi x -
y est divisible par M. Le systme admet donc une seule solution modulo M. Autrement dit, les
solutions du systme sont de la forme x = u1M1r1 + u2M2r2 + ... + ukMkrk+ nM avec n entier.
Exemple historique:
Une bande de 17 pirates s'est empare d'un butin compos de pices d'or d'gale valeur. Ils
dcident de se les partager galement et de donner le reste au cuisinier chinois. Celui-ci
recevrait trois pices. Mais les pirates se querellent et six d'entre eux sont tus. Le cuisinier
-
8/6/2019 Mthodes de cryptographie
7/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
7
recevrait alors 4 pices. Survient alors un naufrage et seuls 6 pirates, le cuisinier et le trsor
sont sauvs et le partage laisserait 5 pices d'or ce dernier. Quelle est alors la fortune
minimale que peut esprer ce dernier s'il dcide d'empoisonner le reste des pirates ?
Solution
3 (mod 17)s'agit de trouver x positif vrifiant le systme 4 (mod 11)
5 (mod 6)
xIl x
x
D'aprs le thorme des restes chinois (puisque 17, 11 et 6 sont premiers entre eux deux
deux), les solutions sont de la forme : x = u11163 + u21764 + u317115 +
n17116
ou encore x = 198u1 + 408u2 + 935 u3 + 1122n.
Il reste trouver les ui :
On a par division euclidienne :66 = 317 + 15
17 = 115 + 215 = 72 + 1
On en dduit que 1 = 15 - 72 et puisque 2 = 17 - 115, on a 1 = 15 - 7(17 - 115) c'est--dire1 = 815 - 717.
Mais 15 = 66 - 317 d'o 1 = 8(66 - 317) - 717. On obtient pour finir 1 = 866 - 3117 et
u1 = 8.
De la mme manire, on trouve u2 = 4 et u3 = 1.Donc x = 1988 + 4084 + 935 + 1122n = 4151 + 1122n.
4151 est donc une solution possible pour notre cuisinier, mais ce n'est pas la plus petite. Il
suffit d'effectuer la division de 4151 par 1122 pour trouver comme reste 785 qui est le nombreminimal de pices que peut obtenir le cuisinier.
-
8/6/2019 Mthodes de cryptographie
8/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
8
2. La Cryptographie
2.1 IntroductionUn algorithme de cryptographie est une fonction mathmatique utilise pour chiffrer (crypter)
et dchiffrer (dcrypter) un message.La qualit de la fonction mathmatique de cryptage rside dans sa rsistance toute attaque
essayant de trouver la clef qui permet de dchiffrer le message.
2.2 Historique de la cryptographiePolybe, crivain et historien Grec (env 200-125 av. J.C.) , est lorigine du premier procd
de chiffrement par substitution. Cest un systme bas sur un carr de 25 cases, chaque case
contient une lettre alphabtique. On peut ltendre pour reprsenter les chiffres.Les algorithmes cryptographiques se divisent en deux classes : les algorithmes cl secrte
(dits symtriques) et les algorithmes cl publiques (dits asymtriques).
2.3 Algorithme cls secrtesDans les algorithmes cl prive, la cl de chiffrement, est identique la cl de
dchiffrement. Cette cl, unique, doit donc tre garde secrte par son propritaire.
L'inconvnient vident de ce systme, est que l'envoyeur et le destinataire du message doivent
avoir convenu de la cl avant l'envoi du message. Ils doivent donc disposer d'un canal sr,
pour s'changer des cls. Ceci pose problme sur Internet o il n'y a pas de canaux srs. Un
exemple d'un tel algorithme est le trs fameux DES (Data Encryption System).
Cest un systme symtrique qui offre une seule cl pour le chiffrement et le dchiffrement.Cette cl doit rester secrte.Les deux entits communicantes se mettent daccord sur la cl utiliser.
Problme pos par ce systme :
P1 : Les cls doivent tre distribues secrtement. Cest difficile de raliser cette opration par
voie de communication.
P2 : Si la cl est pirate, les messages changs ne sont plus confidentiels.
2.4 Cryptage et dcryptage affine2.4.1 CryptagePour ce cryptage on utilise une fonction affine modulaire : y = ax + b (n)Le cryptage se fait de manire aise, en appliquant la formule avec x reprsentant le code de
linformation crypter :
Exemple 1 Soit la fonction affine y = 5x + 12 (26)
On considre les codes des caractres alphabtiques ci-dessous :
0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2
1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
On souhaite crypter le mot ALGO avec
A a pour code 0 x=5 0 12(26) 12(26) 12 A sera code en M.L a pour code 11, x=5 11 12(26) 67(26) 15 L sera code en P.
-
8/6/2019 Mthodes de cryptographie
9/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
9
G a pour code 6, 6 5 12(26)=42(26)=16x G sera code en Q.O a pour code 14, x= 5 14 12(26) 82(26) 4 , O sera code en E.Le mot ALGO sera donc cod en MPQE.
2.4.2 DcryptageLe dcryptage ou dcodage se fait de la manire suivante on cherche calculer g(y) telle que
x=g(y)(26).
On pend la fonction affine ci-dessus : y = 5x + 12 (26)On cherche rsoudre lquation 5x 26y = 1 cette quation a au moins une solution
daprs le Thorme de BEZOUT (car 5 et 26 sont premiers entre eux).
26 5 5 1
26 1 5 5 1
On cherche rsoudre le systme dquations5 26 1
5 5 26 1 1
x y
on trouve
5( 5) 26( 1) 0 ou 5( 5) 26( 1)x y x y 5 et 26 sont premiers entre eux daprs leThorme de GAUSS on : x+5 = 26k ou x = 26k-5 et y +1 = 5k ou y=5k-1
On sait que x est compris , on prend k=1 car cest la seule valeur qui vrifie x.
26 5 21x On multiplie les membres de lquation affine y=5x+12(26) on
obtient : 21 (26 21) 21 12(26)y x ou 21 252(26)y x 21 18(26) ou x=21y+8(26)x y cest la fonction de dcodage.
Supposons que lon souhaite dcrypter le message MPQE on obtient :
M a pour code 12, donc 21 12 8(26) =260(26)=0x le code 0 correspond A.P a pour code 15, donc 21 15 8(26) =223(26)=11x le code 11 correspond L.
Q a pour code 12, donc 21 16 8(26) =344(26)=6x le code 6 correspond G.E a pour code 4, donc 21 4 8(26) =92(26)=14x le code 14 correspond O.
Nous retrouvons le mot ALGO.
Exemple 2 On considre lquation (E) : 11x 26y = 1 o x et y dsignent deux nombresrelatifs.
1. Vrifier que le coupe (-7 ; -3) est solution de le (E).2. Rsoudre alors lquation (E).3. En dduire chaque lettre de lalphabet un nombre entier comme lindique le tableau
ci-dessous :A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
On code les caractres alphabtiques par la fonction affine : y=11x + 8 (26) donc y sera
le code du caractre x.
4. Coder le caractre W5. Le but de cette question est de dterminer la fonction de dcodage (Dcryptage) .Montrer que tous nombres entiers relatifs x et j , on a :11x j (26) quivalent x 19j (26)
En dduire un procd de dcodage.
Dcoder la lettre W.
-
8/6/2019 Mthodes de cryptographie
10/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
10
Solution :
1. On remplace dans lquation 11x 26y = 1 (x par -7 et y par -3) on obtient :
11 ( 7) 26 ( 3) 77 78 1 donc le couple (-7 ; -3) est une solution de lquation (E).2.
3.
4. Le code de lettre W est 22 donc il sera code par 11 8(26)y x c'est--dire par :11 22 8(26) 250(26) 16 ce qui correspond au caractre Q.Donc W sera cod en Q.
5.5.1 Soit x et j deux entiers tels que : 11x j (26)En multipliant les deux membres de lquation 11x j (26) par 19 on obtient :19 (11 ) 19 (26)x j donc 209 19 (26)x j ou 19 (26)x j .5.2
5.3 la fonction 19( 8)(26)x y ou 19 152(26)x y ou 19 22(26)x y ou19 4(26)x y cest la fonction de dcodage.La lettre W pour code 22 donc 19 22 4(26) 6x ce qui correspond aucaractre G.
-
8/6/2019 Mthodes de cryptographie
11/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
11
2.5 Algorithme cl publique
Plusieurs algorithmes asymtriques cl publique existent. Le plus connu est lalgorithme
RSA (prsent par Rivest, Shamiret Adleman). Cet algorithme est trs utilis, par exempledans la navigation dans des sites scuriss et pour chiffrer les messages changs travers les
rseaux informatiques.
L'algorithme se distingue des autres par sa simplicit dimplmentation et de mise en oeuvre.
Il est bas sur les grands nombres premiers.
En effet, la factorisation des entiers de plusieurs centaines de chiffres ncessite un nombre
immensurable des annes de calculs, mme sur les ordinateurs les plus puissants et avec les
algorithmes les plus sophistiqus.
2.5.1 Algorithme RSACryptage du message m
Etape 1 : Gnration de 2 nombres premiers p et qEtape 2 : Calculer n = (p-1).(q-1)
Etape 3 : Choisir un entier e premier avec nEtape 4 : Calculer d tel que 1= e.d mod n
Lmetteur rend publique le couple (e , n), et garde secret le couple (d , n).
Pour chiffrer un message: c = m^e mod n
Pour dcchiffrer un message: m = c^d mod n
m = message en clair (dchiffr)
c = message encrypt (chiffr)(e,n) constitue la cl publique(d,n) constitue la cl priven est le produit de 2 nombres premiers^ est l'opration de mise la puissance (a^b : a puissance b)mod est l'opration de modulo (reste de la division entire)
Crer une paire de cls
C'est trs simple, mais il ne faut pas choisir n'importe comment e,d et n. Et le calcul de ces
trois nombres est tout de mme dlicat.
Voici comment procder:
Emetteur Rcepteur
Texte
source
Texte
sourcecryptage Dcryptage
-
8/6/2019 Mthodes de cryptographie
12/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
12
1. Prendre deux nombres premiers p et q (de taille peu prs gale). Calculer n = pq.2. Prendre un nombre e qui n'a aucun facteur en commun avec (p-1)(q-1).3. Calculer d tel que ed mod (p-1)(q-1) = 1
Le couple (e,n) constitue la cl publique et (d,n) est la cl prive.
ExempleOn Commence par crer deux cls:
Prenons 2 nombres premiers au hasard: p = 7, q =11
On calcule n = pq = 7 * 11 =77
On doit choisir e au hasard tel que e est premier avec(p-1)(q-1):(p-1)(q-1) = 60
On prend un entier e premier avec 60, on choisit e = 11On dtermine d tel que 11*d mod 77 = 1
On trouve d = 37Lmetteur dispose de cls e et d ncessaires :
La cl publique est (e , n) = (11 , 1073)La cl prive est (d , n) = (37 , 1073)
On utilisera le code ASCII pour coder les caractres.
Soit le message m= 'DEMAIN 9H GRANDE PLACE BRUXELLES' crypter.Le message cod en ASCII donne :
M = 68697365737832 3948204752417868698076656769668285886976766983Ensuite, on dcoupe le message en blocs de taille infrieure n., on va donc dcouper notre
message en blocs de 3 chiffres:
(on peut complter avec des zros)
-
8/6/2019 Mthodes de cryptographie
13/34
-
8/6/2019 Mthodes de cryptographie
14/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
14
P.G.P.
Si vous voulez encrypter vos fichiers, je vous recommande l'excellent logiciel PGP (Pretty
Good Privacy) ou gpg (GNU Privacy Guard).
D'autres algorithmes, d'autres programmes...
Il existe d'autres algorithmes asymtriques, dont l'ECC (Elliptic Curve Cryptosystems,
Encryptage par Courbe Elliptique). Ce systme est bas sur une courbe paramtrique qui
passe par un certain nombre de points de coordonnes entires. Ce n'est pas encore trs
dvelopp, mais il est prometteur.
Il existe galement la mthode Diffie-Hellman, de plus en plus prfre RSA. (Diffie-Hellman avait rapidement t adopt par la communaut open source quand RSA n'tait pas
encore dans le domaine public).
Problme : Alice et Bob souhaitent se mettre daccord sur une clef pour chiffrer les messages
changs. Nous sommes en prsence de canaux de communication non scuriss, c'est--dire
une autre personne peut accder aux messages crypts.
Mthode
Alice et Bob choisissent un groupe et un gnrateur g .
Alice choisit un nombre a et calcule ga(p) il transmet Bob a , g , et g
a(p)
Bob choisit un nombre b et calcule gb(p) quil transmet Alice.
Alice calcule (gb(p)
a) (p) , et Bob calcule (g
a(p))
a(p).
Pour les autres personnes autres que Alice et Bon cest difficile de dterminer a et b (cest le
problme du logarithme discret).
Alice Bob
a , g , p
A=ga (p) g , p, A
b, g , p
B=g
b
(p)
BK=Ba(p) K=Ab (p)
-
8/6/2019 Mthodes de cryptographie
15/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
15
2.5.2 Application du thorme du reste chinois la cryptographie RSA
Gnration des cls
1)
Choisir deux nombres premiers trs grands p et q.2) Calculer ( ) ( 1) ( 1)N p q 3) Choisir deux entiers dp et dq tels que PGCD(dp , p-1 )=1 et PGCD(dq , q-1)=14) Calculer d dp ( p-1) et d dq ( q-1)5) Calculer ed-1 ( ( )N )
La cl publique est (N , e) et la cl prive est (dp , dq)
Exemple : Calculer les cls publique et prive des nombres premiers 7 et 11.
On effectue les tapes ci-dessous :
1) Calculer 7 11 77N et ( ) ( 1) ( 1) 60N p q 2) On choisit : dp = 5 (PGCD(dp , p-1)=PGCD(5 , 6)=1 et
dq = 3 (PGCD(dq , q-1)=PGCD(3 , 10)=1.
3) On ne peut pas appliquer le thorme chinois car PGCD(6 , 10) 1 . Mais on peuteffectuer des transformation afin dobtenir un systme de congruences.
1
2
1 62( )
5(6) 1 4(6) 2(3)2 2
3(10) 1 2(10) 1(5)1 101( )2 2
p
p p
q q q
d
d d x
d d xd
1
2
2(3)
1(5)
xon le rsout par le Thorme chinois
x
3 5 15M 115
53
M et 215
35
M
1 1
2 2
5 1(3) 2
3 1(5) 2
y y
y y
Donc, on obtient 2 5 2 1 3 2 26(15) 11(15)x et 2 1 23d x
4) On dtermine e tel que 1( ( )) 1(60) on trouve e=47e d N Exemple Soit M=5 est le message transmettre
Cryptage : C=Me
(N) = 55
(77)=3
Dcryptage: M=Mp(p) =Cd(p) et M=Mq(q) =Cd(q)
-
8/6/2019 Mthodes de cryptographie
16/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
16
2.5.3 Rsidus et non rsidus quadratiques
La notion du rsidu qudratique apparat dans un mmoire d'Euler de 1754-1755Dfinition un entier a est dit rsidus quadratique modulo n si et seulemnt si a est un carr
dans /n , sinon il est dit non rsidu quadratique.
Notation
0 si q divise q
1 si p est un rsidu quadratique de q
1 si p n'est pas un rsidu quadratique de q
p
q
Exemple Les entiers qui sont rsidus quadratiques modulo 17 sont :2 21 (16) 1(17) 2 2
2 (15) 4(17) 2 23 (14) 9(17) 2 24 (13) 1(17) 2 25 (12) 8(17) 2 26 (11) 2(17) 2 27 (10) 15(17) 2 28 (9) 13(17)
Ainsi, les nombres {0 , 1 , 2 , 4 , 8 , 9 , 13 , 15 } sont des rsidus quadratiques modulo 17 et
les nombres {3 , 5 , 6 , 7 , 10 , 11 , 12 , 14 , 16 } ne le sont pas.
Le calcul des rsidus quadratiques utilisant une table est trs simple ; mais il devientfastidieux lorsque n devient trs grand.Legendre propose une mthode simple base sur la loi de la rciprocit quadratique initie
par Euler en 1783 et par Legendre en 1785 et dont la dmonstration fut acheve par Gauss en
1801. Depuis plusieurs dmonstrations ont t tablies.
Proposition 1 soit p et q deux nombres premiers impairs et distincts, alors1 1)
( )( )2 2( 1)
p qp q
q p
do la loi de rciprocit quadratique
( 1)( 1)(
4( 1)p q
q p
p q
Proposition 2 (forme alternative) soit p et q deux nombres premiers distincts et impairs, alors
( ) si p 1(4) ou q 1(4)
( ) si p q 3(4)
p
qp
pq
q
2 1
82
( 1)p
p
=
1 si 1(8) ou 7(8)
1 si 3(8) ou 5(8)
p p
p p
. .a b a bn n n
Remarque1 0
1 et 0p p
-
8/6/2019 Mthodes de cryptographie
17/34
-
8/6/2019 Mthodes de cryptographie
18/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
18
2.5.4 Logarithme discretSoit G un groupe cyclique de cardinal n que lon note multiplicativement. On appelle g un
-
8/6/2019 Mthodes de cryptographie
19/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
19
Le systme de signature El GamalEl Gamal a propos un systme de signature o Alice souhaite signer un document, de telle
sorte que Bob puisse vrifier sa signature. Ils se mettenet daccord sur le groupe G et g, ainsi
quune fonction de G dans /n . Soit M le message transmettre que lon prend commeun lment de [0n-1]. Alice dispose dune cl secrte x et publie sa cl publique ces y=g
x.
La signature de M qulle produit est un couple (a , b), o et ba G , tels que:( )m a b
g y a
.Pour calculer a et b, Alice commence par choisir un entier k premier avec n, et calcule a=gk.
Elle doit ensuite trouver b tel que :( )m a b
g y a
1
( ) ( )
( ( ))( )
kb x a m n
b k m x a n
La vrification de la signature est simple. Bob doit simplement sassurer que ( )m a bg y a .( )m a bg y a et ba G
2.5.4.2 Algorithme de Pohlig-Hellman pour le calcul du Logarithme discret
Exemple Soit un nombre premier p=8101, un gnrateur de groupe 8101 est a=6
Dterminer x telle que : 7531(8101)xa p=8101 et p-1=8100=2
23
45
2.
On devra rsoudre le systme2
2
4
3
2
5
(2 )
(3 )
(5 )
x x
x x
x x
Calcul de x2.
x2 est entier modulo 4, nous avons x2=C0 + C1(2). On dtermine les coefficients comme suit.
2 0 1(2) 1 0(2) 1x C C 0
1 1)(
40502 207531 7531 1 donc C =1
p pC
a
On divise 7531 par 0C
a pour obtenir : 17531( ) 7531(6751) 8006( )a p
1
1 1( ) ( )
20254 418006 8006 1 donc C =0
p pC
a
Donc 2 0 1(2) 1 0(2) 1x C C Calcul de x3.x3 est entier modulo 81, nous avons x3=C0 + C1(3)+ C2 (9)+ C3 (27), on dtermine les
coefficients comme suit.( 1)
3 2217
p
a
, donc C0=2.
On divise 7531 par 0c
a pour obtenir 27531( ) 6735( )a p ,
1
1 1
1
2 2
1
3 3
(4) 1
(81) 64
(25) 24
y M
y M
y M
( 1)
96735 1p
,
donc C1=0.
On divise 6735 par 13ca , on obtient 06735( ) 6735( )a p ,( 1)
276735 2217
p
, donc C2=2.
On divise 6735 par 29ca , on obtient 186735( ) 6992( )a p ,( 1)
816992 5883p
, donc C3=1.Finalement, x3=2+0(3)+2(9)+1(27)= 47
Calcul de x5x5 est entier modulo 25, nous avons x5=C0 + C1(5) on dtermine les coefficients comme suit.
Nous calculons :( 1) 2( 1) 3( 1) 4( 1)
5 5 5 53547, 356, 7077 5221p p p p
a a a et a
.
-
8/6/2019 Mthodes de cryptographie
20/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
20
1
57531 5221p
, donc C0= 4.
On divise 7531 par 0c
a pour obtenir : 47531( ) 7613( )a p ,( 1)
257613 356
p
, donc C1=2.Finalement, x5=4 + 2(5))= 14.
Le calcul de x peut se faire par la mthode du reste Chinois.
1(4)
47(81)
14(25)
x
x
x
4 81 25 8100M
1
2
3
81002025
4
8100100
81
8100324
25
M
M
M
On dtermine 1 2 3, ety y y
1
1 1
1
2 2
1
3 3
(4) 1
(81) 64
(25) 24
y M
y M
y M
Donc x=1(2025) + 47(100)(64) + 14(324)(24) 6689(8100)
-
8/6/2019 Mthodes de cryptographie
21/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
21
2.5.4.3 Rsolution du logarithme discret par lalgorithme de bb pas de gantLe problme du logarithme discret peut tre dcrit comme suit :
Soit trouver le plus petit entier x (sil existe) telle que ( )xa b n o , ,a b n .
Shank a propos un algorithme appel pas de bb pas de gant qui consiste trouver lavaleur de x en deux tapes.
1) La premire tape dite pas de bb consiste construite une liste S forme des couples :1{( ,0), ( ,1),..., ( , 1)( )}sS b ba ba s n avec ns
2) La deuxime tape dite pas de gant construit une liste T forme des couples :22 3{( ,1), ( , 2), ( ,3)..., ( , )( )}s s s sT a a a a s n
3) Les deux listes S et T sont tries par ordre croissant sur la premire composante.
On cherche les deux premiers lments gaux sur les deux listes.
Soit r tsya a ces deux lments, la solution est dfinie par x = ts-r.
Exemple Soit rsoudre 7 14(23)x
On a 23 4s , on dtermine les deux listes S et T.S={(14 , 0) , (6 , 1) , (19, 2) , (18 , 3)} on trie la liste S selon la premire composante :
S={(6 , 1) , (14 , 0) , (18,3) , (19 , 2)}T={(9 , 1) , (12 , 2) , (16 , 3) , (6 , 4)} on trie la liste T selon la premire composante :
T={(6 , 4) , (9 , 1) , (12 , 2) , (16 , 3)}Les deux composantes gales sont : (6 , 1) et (6 , 4)
Donc, la solution est : 4 4 1 15x
Remarque : lorsque n est grand, le stockage des valeurs des listes S et T prend beaucoup de
place mmoire.
Algorithme de Shank /* Programme en C de Rsolution de a^x=y(n) */#include
#include
#include
#include
#include
#define N 1000
typedef __int64 Tab[N][4];
__int64 PuissanceModulaire(__int64 a, unsigned __int64 x, __int64 n){
__int64 pm=1, r = 1;
while(x > 0){
if((x % 2) == 1){
r=(r*a)%n; }
a=(a*a)%n;
x=x/2; pm=r;
printf("%I64u ",r);
}
printf("\n");
return (pm);
}
void Sort(Tab A, int inf , __int64 n){
int i,j,k;
__int64 x;
for(i=inf; i
-
8/6/2019 Mthodes de cryptographie
22/34
-
8/6/2019 Mthodes de cryptographie
23/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
23
2.5.4.3 Rsolution de lquation quadratique modulaireDans cette partie, nous nous intressons la rsolution de lquation quadratique par la
mthode de Shank.
Considrons lquation quadratique modulaire : 2 0( )ax bx c p o p est un nombrepremier impair et a et p sont premiers entre eux.
2 0( )ax bx c p 24 ( ) 0( )a ax bx c p
2 24 4 4 0( )a x abx ac p 2 2 2 24 4 4 ( 4 ) ( 4 )( )a x abx ac b ac b ac p 2 2 2 24 4 4 4 ( 4 )( )a x abx b ac ac b ac p 2 2 2 24 4 ( 4 )( )a x abx b b ac p est quivalente 2 2(2 ) ( 4 )( )ax b b ac p
On pose (2 ) et d=(b-4ac)y ax b do 2 ( )y d p
La rsolution de cette quation peut se faire en utilisant la loi de rciprocit quadratique.
Proposition (Shank) Soit y une solution de lquation 2 ( )y d p soit n et k deux entiers
tels que 1 2 .np k o n 1 et k un entier impair, q un non rsidu quadratique modulo p,alors y peut tre dtermine par la mthode ci-dessous :
1) Etape 11.1 2 2 13(2 )2 ( )u p 1.2 ( )kr d p 1.3Chercher i tel que 2 1( )ir p
2) Etape 2Si i=0 Alors les solutions sont : ( )x t p Sinon
1(2 ) ( )n ik
u q p
( )t t u p 2 ( )r r u p
Aller Etape 1.
Fsi
Exemple 1 Soit rsoudre 2 7(13)y on a d=7 et p=1321 12 2 3p on obtient n=2 et k=3
On calcule les rsidus quadratiques :2 21 12 1(13) 2 22 11 4(13) 2 23 10 9(13) 2 24 9 3(13) 2 25 8 12(13) 2 26 7 10(13)
Les rsidus quadratique sont {1, 3 , 4 , 9 , 10 , 12} et les non rsidus quadratiques sont {2, 5,6 , 7, 8, 11}
On prend q=2.
-
8/6/2019 Mthodes de cryptographie
24/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
24
( 1)
2 ( )k
t d p
( )kr d p i 1(2 ) ( )
n iku q p
1 27 (13) 10 37 (13) 5 i=0 5(13)
i=1 12(13)
i=2 1 (13)
u=2
2
Plusieurs auteurs ont amlior lalgorithme de Shank afin de rduire le nombre de
multiplications.
2.5.4.4 Algorithmes de Primalit
Algorithme de factorisation Rho de PollardIntroduction
Le but dun algorithme de factorisation est de trouver un facteur (premier) en un minimum detemps. Appelons n un nombre compos que nous souhaitons factoriser. Le plus simple des
algorithmes consiste simplement essayer de diviser n par tous les premiers en commenantpar 2, jusqu`a ce que lon obtienne la factorisation complte. Cette solution trial division
nest pas trs efficace, notamment si n possde uniquement de grands facteurs premiers.
Cette mthode est facilement implmentable mais nest pas utilisable pour de grands entiers n,
sa complexit tant exponentielle. Nous nallons donc pas nous intresser la thorie de cette
mthode. Par contre elle sera implmente afin de comparer les rsultats ceux obtenus avec
la mthode Rho de Pollard prsente en 1975.
Cest un algorithme heuristique, cest--dire que nous avons une grande probabilit de trouver
un facteur, mais mme si nous savons que n nest pas premier, il y a aussi une chance pour
que lalgorithme choue, cest--dire que lalgorithme ne se termine jamais.Nous allons exposer brivement chacune des tapes de lalgorithme, avant de revenir plus endtails sur leurs proprits algbriques et la complexit de cet algorithme.
AlgorithmeSoit x0 = 0
1. Dterminer xk partir de xk-1 o :2
1( 1) mod nk kx x 2. Dterminer x2k partir de x2k-2 o :
2 2
2 2 2((( 1) mod n) 1) mod nk kx x
3. Dterminer d=PGCD(x2k - xk , n)Si d 1 Alors d est un facteur premierSinon k=k+1
Fsi
Implmentation en C
#include
long PGCD(long a, long b){
if (a % b == 0) return(b);
else return PGCD(b , a%b);
}
long RhoPollard(long n){
long a=2 , b=2;
long d;
-
8/6/2019 Mthodes de cryptographie
25/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
25
do
{
a=(((a*a) + 1) % n);
b=(((b*b) + 1) % n);
b=((b*b) + 1) % n;
d=PGCD(a-b,n);
printf("d= %d \n",d);if ((d > 1) && (d
-
8/6/2019 Mthodes de cryptographie
26/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
26
2.6 Les courbes elliptiques
Introduction
En cryptographie, les courbes elliptiques, des objets mathmatiques, peuvent tre utilisespour des oprations asymtriques comme des changes de cls sur un canal non scuris ou
un chiffrement asymtrique, on parle alors de cryptographie sur les courbes elliptiques ou
ECC (de l'acronyme anglaisElliptic curve cryptography). L'usage des courbes elliptiques encryptographie a t suggr, de manire indpendante, par Neal Koblitz et Victor Miller en
1985.
La rsistance d'un systme fond sur les courbes elliptiques repose sur la difficult de la
rsolution du logarithme discret, en un temps raisonnable, dans le groupe correspondant la
courbe elliptique. Les dveloppements thoriques sur les courbes tant relativement rcents,
la cryptographie sur courbe elliptique n'est pas trs connue et souffre d'un grand nombre debrevets qui empchent son dveloppement.
Alice et Bob se mettent d'accord (publiquement) sur une courbe elliptique E(a,b,p), c'est--
dire qu'ils choisissent une courbe elliptique 2 3( ) ( )( )y p x ax b p . Ils se mettent aussid'accord, publiquement, sur un point P situ sur la courbe.
Secrtement, Alice choisit un entier dA, et Bob un entier d . Alice envoie Bob le point
dAP, et Bob envoie Alice dBP. Chacun de leur ct, ils sont capables de calculer
dA.(dBP) = (dA.dB)P qui est un point de la courbe, et constitue leur clef secrte commune.
Si Eve a espionn leurs changes, elle connat E(a, b, p), P, dAP , dBP. Pour pouvoir calculer
dA.dBP, il faut pouvoir calculer dA connaissant P et dAP. C'est ce que l'on appelle rsoudre le
logarithme discret sur une courbe elliptique. Or, actuellement, si les nombres sontsuffisamment grands, on ne connat pas de mthode efficace pour rsoudre ce problme en un
temps raisonnable.
On appelle courbe elliptique sur R, toute courbe plane dquation 2 3y x ax b o
lexpression 3 2(4 27 )a b appele discriminant est non nul. On ajoute la courbe un
point linfini qui sera reprsent par .
PQ
P+Q
-
8/6/2019 Mthodes de cryptographie
27/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
27
Prenons deux points deux points distincts de la courbe elliptique, on trace une droite passant
les deux points, deux cas peuvent se produire :
1) la droite coupe la courbe en un troisime point, le symtrique de ce point par rapport laxe des abscisses est P+Q.
2) la droite ne coupe la courbe elliptique quen points P et Q ceci nest possible que si ladroite (PQ) est parallle laxe des ordonnes. On dfinit alors P+Q= (point
linfini)
Les coordonnes du point P+Q sont dfinies partir des coordonnes des points P et Q
(PQ) comme suit :2
2 13 1 2
2 1
2
2 13 1 1 3
2 1
( )
( )
y yx x x
x x
y yy y x x
x x
Rgles daddition
1. O + O = O
2. 1 1 1 1( , ) O ( , )x y x y
3. 1 1 1 1( , ) ( , )x y x y 4.
1 2 1 1 2 2 3 3
2
3 1 2
3 1 3 1
12 1 2 1
( , ) + ( , )=( , )
( )( )
( ( ) )( )
k=( - ).( ) (p)
Si x x x y x y x y
x k x x p
y k x x y p
y y x x
5. si x1 = x2
1 1 1 2 2 1 1 3 3
2
3 1
3 1 3 1
2
1
1
0 ( , ) + ( , )=2( , ) =( , )
( 2 )( )
( ( ) )( )
(3 +a)k= (p)
2
Si y x y x y x y x y
x k x p
y k x x y p
x
y
Exemple Soit la courbe elliptique dquation 2 3 15 9y x x et un point de la courbeP = (1 , 5), calculer 2P.La tangente au point P est :
2 23 1 15 161,16
2 2(5) 10
x as
y
2 2' 2 (1,16) 2(1) 0,56x s x ' ( ') 5 1,6(1 0,56) 4,3y y s x x
Donc, 2P = (0,56 , -4,3).
-
8/6/2019 Mthodes de cryptographie
28/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
28
Exercice Soit la courbe elliptique dquation 2 3177 sur Fy x x
2 3
177 sur Fy x x Calculer P+Q si P=(2 , 0) et Q=(1 , 3)
Calculer 2P si P=(1 , 3)
Multiplication d'un point par un nombre entier
On remplace la multiplication par une srie d'additions. Prenons un exemple. Soit la courbey
2mod 11 = (x
3+ x + 2) mod 11.
Calculons dP, avec d=3 et P=(4, 2). On peut vrifier que le point P appartient bien la courbe
elliptique.
On peut remplacer 3P par P + P + P. Calculons d'abord P + P.
D'aprs la rgle 5, P + P = (4, 2) + (4, 2) = (8, 4) = 2P.
D'aprs la rgle 4, 2P + P = (8, 4) + (4, 2) = (2, 10) = 3P.
Algorithme de calcul de kP sur une courbe elliptique
1- Ecrire k sous forme binaire :1 2 1 0
...m m
k b b b b
2- c03- Pour im-1 0 Faire
c2cSi bi=1 Alors cc+P Fsi
Fait
Exemple : Soit calculer 79PK=79=1001111
c0b6=1 c2c+P {c=P}b5=0 c2c {c=2P}b4=0 c2c {c=2(2P)= 4P}b3=1 c2c+P {c= P+2(2(2P))=9P}b2=1 c2c+P {c= P+2(P+2(2(2P)))=19P}b1=1 c2c+P {c=P+2( P+2(P+2(2(2P))))=39P}b0=1 c2c+P {c=P+2(2( P+2(P+2(2(2P)))))=79P}
Thorme de HasseSi E est une courbe elliptique dfinie sur un corps finie Fp alors
p+1- 2 #E(Fp) p+1+2 o #E(Fp) indique le nombre de points dans E(Fp)
Exemple 1 : On considre la courbe elleptique E : 2 3 1y x x sur le corps F5.Les points de la courbe sont :
{ (0 , 1) , (0 , 4) , (2, 1) , (2 , 4) , (3 , 1) , (3 , 4) , (4 , 2) , (4 , 3) , O}
Exemple 2 : Soit la courbe elliptique 2 3: 3 8(13)E y x x , et deux points P=(9,7) etQ(1,8).
Pour calculer P+Q, on dtermine :
2 1
2 1
8 7 1 18
1 9 8 5
y y
x x
1 1 7 8.9 65 0y x
-
8/6/2019 Mthodes de cryptographie
29/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
29
2
3 1 2
3 3
64 9 1 54 2
( ) 8.2 16 10
x x x
y x
P+Q=(9 , 7) + (1 , 8) = (2,10)
Pour calculer P+P = 2P, on dtermine :2 2
1
1
3 3.9 3 246 12 2.7 14
x ay
1 1 7 1.9 2 11y x 2
3 1 2
3 3
1 9 9 17 9
( ) 1.9 11 20 6
x x x
y x
+ O (1,5) (1,8) (2,3) (2,10) (9,6) (9,7) (12,2) (12,11)
O O (1,5) (1,8) (2,3) (2,10) (9,6) (9,7) (12,2) (12,11)
(1, 5) (1,5) (2,10) O (1,8) (9,7) (2,3) (12,12) (12,11) (9,6)
(1, 8) (1,8) O (2,3) (9,6) (1,5) (12,11) (2,10) (9,7) (12,2)
(2,3) (2,3) (1,8) (9,6) (12,11) O (12,2) (1,5) (2,10) (9,7)(2,10) (2,10) (9,7) (1,5) O (12,2) (1,8) (12,11) (9,6) (2,3)
(9, 6) (9,6) (2,3) (12,11) (12,2) (1,8) (9,7) O (1,5) (2,10)
(9, 7) (9,7) (12,2) (2,10) (1,5) (12,11) O (9,6) (2,3) (1,8)
(12, 2) (12,2) (12,11) (9,7) (2,10) (9,6) (1,5) (2,3) (1,8) O
(12,11) (12,11) (9,6) (12,2) (9,7) (2,3) (2,10) (1,8) O (1,5)
E(F13)={(1,5),(1,8) , (2 , 3) , (2 ,10) , (9, 6) , (9 , 7), (12,12), (12, 11) , O}
-
8/6/2019 Mthodes de cryptographie
30/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
30
2.5.2 Protocoles dchange de cls de Diffie-HellmannAlice et Bob souhaitent avoir une cl secrte et, qui sont les seuls la connatre. On suppose
que les canaux de communication ne garantissent aucune scurit de confidentialit.
Le protocole de Diffie-Hellmann permet deffectuer cet change dans ces conditions.
1- Alice et Bob choisissent une courbe elliptique dfinie sur un corps fini Fq tel que le
logarithme discret soit difficile rsoudre, et un point P de cette courbe.2- Alice choisit un entier secret a, calcule Ca=aP et lenvoie Bob.3-Bob choisit un entier secret b et calcule Cp=bP et lenvoie Alice.
4- Alice calcule aCp=abP5- Bob calcule bCa=baP
2.5.3 Factorisation par courbes elliptiques
L'ide de cet algorithme est due Lenstra. On suppose que l'on doit factoriser un entier n(donn). On note p un diviseur premier de n (que l'on ne connat pas!).
Etape 1 : choix d'une courbe elliptique. On choisit a et b tel que 4a3+27b2 soitpremier avec n. Si en les prenant au hasard ce n'est pas le cas, c'est encore mieux car
pgcd(4a3+27b
2,n) donne un diviseur strict de n. Remarquons que, puisque 4a
3+27b
2est
premier avec n, il est premier avec p et est inversible dans Z/pZ. L'quation
y2=x3+ax+b dfinit une courbe elliptique sur Z/pZ, que nous noterons E(a,b,p)(signalons que, puisqu'on ne connat pas p, on ne connat pas cette courbe elliptique).
Etape 2 : choix d'un point sur la courbe elliptique. On trouve deux entiers x et ytels que y
2=x
3+ax+b. En particulier, P(x,y) est un point de la courbe elliptique
E(a,b,p).
Etape 3 : choix d'un entier auxiliaire. On choisit k un entier pas trs grand, mais quiest produit de petits facteurs premiers des exposants dj levs. Etape 4 : calcul sur les courbes elliptiques. On calcule les coordonnes du point kP,
en utilisant les formules classiques, les calculs s'effectuant modulo n. Ces calculs font
intervenir des divisions, et ceci n'est pas toujours possible modulo n : il faut que le
dnominateur d soit premier avec n. Mais ce qu'on espre, c'est que ce n'est pas le cas!
En effet, si d n'est pas premier avec n, pgcd(d,n) donne un diviseur premier de n. Si on
a pu mener les calculs jusqu'au bout, on recommence l'tape 1, en changeant de
courbe elliptique.
Exemple
Soit factoriser le nombre N=4453. La courbe elliptique choisie est : 2 3 3 (4453)y x x etun point P=(1, 2) sur cette courbe.
Essayons de calculer 6P.
On commence par calculer 2P.
La tangente la courbe elliptique au point P=(1 , 2) est2(3 3) 3
2228(4453)2 2
x
y
Le pgcd(2,4453)=1, donc 2 est inversible modulo 4453 et 12 2227(4453)
On calcule les coordonnes de 2P=(x , y) o2' 2 3340(4453)
y'=s(x-x')-y 1669(4453)
x s x
Calculons 3P = P + 2P. La pente de la tangente est :
-
8/6/2019 Mthodes de cryptographie
31/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
31
1669 2 1667746(4453)
3340 1 3339
En effet, le pgcd(3339 , 4453)=1, donc 3339 est inversible modulo 4453.13339 1483(4453)
2'' 2 ' 1003(4453)
y''=s(x'-x'')-y' 610(4453)
x s x
Enfin, calculons 6P=3P+3P. Nous remarquons que le dnominateur de la pente est 1220, or le
pgcd (1220 , 4453) = 61, donc 1220 nest pas inversible modulo 4453.Cest ce que nous recherchons, donc nous avons trouv un facteur 61 de 4453.
En effet, on a : 4453 61 73 .
Application au protocole dchange de Diffie-Hellman.
On choisit un groupe E(Fp) et un point P dordre n.
Fonction qui calcule linverse de a modulo n.
int modInverse(int a, int n) {
int i = n, v = 0, d = 1;
int t,x;
while (a>0) {t = i/a;
x = a;
a = i % x;
i = x;
x = d;
d = v - t*x;
v = x;
}
v =v%n;
if (v
-
8/6/2019 Mthodes de cryptographie
32/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
32
Formules mathmatiques
1
0
1
1
ni ni
i
xx
x
1
( 1)
2
i n
i
n ni
1
1
( 1) 1
i n
i
n
i i n
2
1
( 1)(2 1)
6
i n
i
n n ni
2 23
1
( 1)
4
i n
i
n ni
20 (1 )
i
i
x
ix x
1
21
(1 ( ( 1) 1))pour q 1
(1 )
ni ni
i
x n xi x
q
1
( 2)2
2 2
i n
i ni
i n
!lim 1
2 ( )n n
n
nn
e
formule de Stirling que lon peut crire ! 2 ( )n
nn n
e
ln( !) .ln( )n n n n ln( !) .ln( )n n n n ( )
log( )
b
Ln aa
Ln b o Ln est le logarithme nprien.
lim 0 a > 0!
n
n
a
n
-
8/6/2019 Mthodes de cryptographie
33/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
33
REFERENCES
Lewis and Denenberg , Data Structures and Their Algorithms, , Harper Collins, 1991, pp 243-251.Sleator and Tarjan , "Self-adjusting Binary Search Trees", , JACM Volume 32, No 3, July 1985, pp652-686.
Mark Weiss , Data Structure and Algorithm Analysis, , Benjamin Cummins, 1992, pp 119-130.Derick Wood , Data Structures, Algorithms, and Performance, , Addison-Wesley, 1993, pp 367-375A. V. Aho, J. E. Hopcroft, and J. D. Ullman. Data Structures and Algorithms. Addison-Wesley,
1983.
R. Bellman. , On a routing problem , Quarterly of Applied Mathematics, 16(1):87-90, 1958.G. Brassard. , P. Bratley, Algorithmique: conception et analyse, Masson 1987.T. Cormen, C. Leiserson, and R. Rivest. Introduction to Algorithms. McGraw-Hill, 1990.
E. Dijkstra. A note on two problems in connexion with graphs. , Numerische Mathematik,1:269-271,1959.L. R. Ford and D. R. Fulkerson., Flows in networks. , Princeton University Press, 1962.
R. Graham and P. Hell. On the history of the minimum spanning tree problem. Annals of the Historyof Computing, 7(1):43-57, 1985.
L.S. Hill, Cryptography in an Algebraic Alphabet, The American Mathematical Monthly, Vol. 36N6 (1929) pp. 306-312.
J. B. Kruskal. , On the shortest spanning subtree of a graph and the traveling salesman problem. InProceedings of the American Mathematical Sofiety, volume 7, pages 48-50, 1956.
D. Khl, Design patterns for the implementation of graph algorithms. Master's thesis, TechnischeUniversitt Berlin, July 1996.
V. Kumar, A. Grama, A. Gupta and G. Karypis, Introduction to Parallel Computing, Design and
Analysis of Algorithms, The B.C. Publishing Compagny, Inc, (1994).R. Prim, Shortest connection networks and some generalizations. Bell System Technical Journal,36:1389-1401, 1957.Y. Saad, Iterative Methods for Sparse Minear System. PWS Publishing Company, 1996.R. E. Tarjan, Data Structures and Network Algorithms. Society for Industrial and AppliedMathematics, 1983.
Seymour Parter, The use of linear graphs in Gauss elimination. SIAM Review, 1961 3:119-130.D. Matula, G. Marble, and J. Isaacson , Graph coloring algorithms in Graph Theory and Computing,
Academic Press, pp.104-122, 1972.
L. R. Ford and D. R. Fulkerson, Maximal flow through a network, Can. Journal of Mathematics1956 pp.399-404
A. V. Karzanov, Determining the maximal flow in a network by the method of preflows. Sov. Math.
Dokl. 1974Ravindra K. Ahuja and Thomas L. Magnanti and James B. Orlin, Network Flows: Theory,
Algorithms, and Applications, Prentice Hall, 1993.
Robert E. Tarjan, Depth first search and linear graph algorithms, SIAM Journal on Computing,1(2):146-160, 1972
Scott Fortin, The Graph Isomorphism Problem, TR 96-20, Dept. of Computer Science, University ofAlberta (1996)
Edward Moore, The shortest path through a maze, International Symposium on the Theory ofSwitching (1959), Harvard University Press
E. Nuutila, Efficient transitive closure computation in large digraphs, PhD Thesis, Helsinki Universityof Technology, 1995. Acta Polytechnica Scandinavica, Mathematics and Computing in Engineering
Series, No. 74.A. Goralcikova and V. Koubek, A reduct and closure algorithm for graphs, In Mathematical
Foundations of Computer Science, volume 74 of Lecture Notes in Computer Science, pages 301-307.
Springer-Verlag, 1979
-
8/6/2019 Mthodes de cryptographie
34/34
Mthodes de Cryptographie M. NAIMI Universit de Cergy-Pontoise
Klaus Simon, An Improved Algorithm for Transitive Closure on Acyclic Digraphs, Theoretical
Computer Science 58 Automata, Languages and Programming, 376-386, 1986
P. Purdom A Transitive Closure Algorithm BIT, 10, 1970, pp. 76-94.E. Horowitz, S. Shani Fundamentals of Data Structures, Pittman, 1977.D.E. Knuth The Art of Computer Programming, Vols. 1 to 3, Addison-Wesley, Massachusetts, 1973.R.L. Kruse Data Structures and Program Design, Prentice-Hall, Englewood Cliffs, 1984.J.P. Tremblay, P.G. Sorenson, An Introduction to Data Structures with Applications, Second
Edition, McGraw-Hill, 1984.G. Brassard and P. Bratley Fundamentals of Algorithms, Prentice Hall, 1996.M. A. Weiss Data Structure and Algorithm Analysis in C, Addison Wesley, 1997.L. Miller, Riemmanns hypothesis and tests for primality, Journal of Computer and System Sciences,Vol.13, n3, (1976), pp.300-317.
M.O. Rabin, Probabilistic algorithm for testing primality, Journal of Number Theory, Vol.2, (1980),pp. 128-138.
H.W. Lenstra, Factoring integers with elliptic curves. Annals of Mathematics, Vol.126, (1987),pp.649-673.
J.M. Pollard, A Monte Carlo method for factorization, BIT, Vol. 15, (1975), pp.331-334.J.W.J. Williams, Algorithm 232 (Heapsort), Communication of the ACM, Vol.7, (1964), pp.347-348.
M. Naimi , Introduction la Programmation, Edition Herms (1994) pages 244
G.R. Perrin, Structures de Donnes, Polycopi Universit de Franche-Comt, (1979).C. 350 B.C.E. Euclid author of the most successful mathematics book Elements and proposed hisGCD (Greatest Common Divisor) algorithm
C. 780-C. 850 Abu Jafar Mohammed ibn Musa al-Khwarizmi composed the oldest works on
arithmetic and algebra, the very name algorism derived from his surname.S. Pohlig and M. Hellman, ``An Improved Algorithm for Computing Logarithms over GF(p) and itsCryptographic Significance,'' IEEE Trans. Info. Th.,24(1978), 106-110.