Méthodes de cryptographie

download Méthodes de cryptographie

of 34

Transcript of Méthodes de cryptographie

  • 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.