Cryptographie `a cl´e publique RSA El Gamalbmartin/4-CS.pdf · 2013. 1. 24. · Cryptographie `a...

66
Cryptographie ` a cl´ e publique RSA El Gamal Cryptographie ` a cl´ e publique Bruno MARTIN, Universit´ e de Nice - Sophia Antipolis Bruno MARTIN, Universit´ e de Nice - Sophia Antipolis Cryptographie ` a cl´ e publique 1

Transcript of Cryptographie `a cl´e publique RSA El Gamalbmartin/4-CS.pdf · 2013. 1. 24. · Cryptographie `a...

  • Cryptographie à clé publiqueRSA

    El Gamal

    Cryptographie à clé publique

    Bruno MARTIN,Université de Nice - Sophia Antipolis

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 1

  • Cryptographie à clé publiqueRSA

    El Gamal

    Cryptographie à clé publique

    Invention de Diffie et Hellman [4] ; première phrase prophétique est

    Nous sommes aujourd’hui à l’aube d’une révolution encryptographie.

    Idée géniale : asymétrique ; chiffrement 6= du déchiffrement.chiffrement par clé publique.

    déchiffrement avec clé privée.

    Utile pour la distribution des clés : on les publie dans un annuaire ;plus besoin de valises blindées !Le principe de Kerckhoff (1883) est d’autant plus d’actualité

    La sécurité d’un chiffre ne doit pas dépendre du secret del’algorithme mais seulement du secret de la clé.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 2

  • Cryptographie à clé publiqueRSA

    El Gamal

    Fonction à sens unique

    Soit M et C deux ensembles et f : M → C . Soit f (M) l’image del’ensemble M par f . La fonction f est à sens unique si

    pour tout x de M, il est facile de calculer f (x)(autrement dit, f peut être calculée en temps polynomial) et

    il est difficile de trouver, pour la plupart des y ∈ f (M) unx ∈ M tel que f (x) = y (en d’autres termes ce dernierproblème doit être «difficile» [6, 9, 2]).

    S’il est difficile de trouver, pour la plupart des y ∈ f (M) un x ∈ Mtel que f (x) = y , déchiffrer aussi difficile que cryptanalyser !Ajouter une autre notion pour rendre possible le déchiffrement etla cryptanalyse aussi difficile que possible.

    → Notion de trappe.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 3

  • Cryptographie à clé publiqueRSA

    El Gamal

    Fonction à sens unique à trappe

    Une fonction à sens unique f : M → C est à trappe si le calculdans le sens inverse est aussi efficace si on dispose d’uneinformation secrète -la trappe-.La trappe permet de construire une fonction g telle que g ◦ f = Id .Ainsi, il est facile de calculer l’image par f de n’importe quelleentrée et calculatoirement impossible d’inverser f sans connâıtre g .La construction des couples (f , g) doit être facile. En outre, lapublication de f ne doit rien révéler sur g .C’est là qu’on retrouve formalisée l’idée d’utiliser deux algorithmesdifférents, un pour chiffrer f et un pour déchiffrer g .

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 4

  • Cryptographie à clé publiqueRSA

    El Gamal

    Définition PKC

    Définition

    Un chiffre à clé publique est un triplet PPT Π =(Gen, Enc, Dec)tq

    Gen :1n → (pk, sk) resp. clé publique et privée tq|pk| ≈ |sk | ≈ n.Enc : c ← Encpk(m) où m ∈ M(pk)Dec : m := Decsk(c) (déterministe)

    On demande que Decsk(Encpk(m)) = m pour tous les m ∈ M ettoutes les clés (pk, sk) produites par Gen.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 5

  • Cryptographie à clé publiqueRSA

    El Gamal

    Formalisation OW

    Définition (OW)

    f : {0, 1}? → {0, 1}? est à sens unique si :il existe un algo en temps polynomial pour calculer f (x)

    pour tout adversaire A PPT, il existe negl . tq :

    Pr [InvertA, f (n)] ≤ negl(n)

    InvertA, f (n) formalise l’attaque contre f OW :

    1 mu← {0, 1}n ; c := f (m)

    2 A reçoit 1n et c et renvoie m′

    3 A réussit (i.e. renvoie 1) ssi f (m′) = c

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 6

  • Cryptographie à clé publiqueRSA

    El Gamal

    Sécurité calculatoire

    Cryptanalyste déploie plus d’efforts de calcul pour retrouver le clairà partir du cryptogramme que la durée de vie du clair, d’où lesdéfis pour casser des clés (voirhttp://www.rsa.com:80/rsalabs/node.asp?id=2092),jusqu’à 2007 et la factorisation de RSA-640.The effort took approximately 30 2.2GHz-Opteron-CPU yearsaccording to the submitters, over five months of calendar time.(This is about half the effort for RSA-200, the 663-bit number thatthe team factored in 2004.)Factorisation d’un entier RSA de 1020 bits en 2007 en 11 mois ; cfhttp://actualites.epfl.ch/presseinfo-com?id=439

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 7

    http://www.rsa.com:80/rsalabs/node.asp?id=2092http://actualites.epfl.ch/presseinfo-com?id=439

  • Cryptographie à clé publiqueRSA

    El Gamal

    Sécurité calculatoire : exemple factorisation

    Donné n = pq

    trouver p (et q).

    Année log2(]Op.) log2(n)

    < 2000 64 768< 2010 80 1024< 2020 112 2048< 2030 128 3072

    NB : 280 opérations correspond à 260ans.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 8

  • Cryptographie à clé publiqueRSA

    El Gamal

    Sécurité prouvée : preuves par réduction

    Hypothèse : le problème algorithmique Π est difficile (pas algopoly. sauf...) avec Π=RSA, DLP, DDH, CDH,...

    Réduction :

    si un adversaire A PPT casse le chiffrealors on peut utiliser A pour résoudre Π en temps poly.

    résultat de sécurité : il n’existe pas d’adversaire poly.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 9

  • Cryptographie à clé publiqueRSA

    El Gamal

    Expérience IND-CPA : PubKCPAA,Π

    1 Gen(1n) produit (pk, sk)

    2 l’adversaire A reçoit pk et un accès à (l’oracle) Enck(.). Aretourne m0,m1 ∈ M(pk) de même long.

    3 b ← {0, 1} ; calculer c ← Encpk(mb) et envoyer c à A : le défichiffré

    4 A a toujours accès à Enck(.). et retourne un bit b′

    5 A réussit l’expérience (i.e. renvoie 1) ssi b = b′

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 10

  • Cryptographie à clé publiqueRSA

    El Gamal

    Expérience IND-EAV : PubKEAVA,Π

    1 Gen(1n) produit (pk, sk)

    2 l’adversaire A reçoit pk et un accès à (l’oracle) Enck(.). Aretourne m0,m1 ∈ M(pk) de même long.

    3 b ← {0, 1} ; calculer c ← Encpk(mb) et envoyer c à A : le défichiffré

    4 A a toujours accès à Enck(.). et retourne un bit b′

    5 A réussit l’expérience (i.e. renvoie 1) ssi b = b′

    qui est équivalente à PubKCPAA,Π

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 11

  • Cryptographie à clé publiqueRSA

    El Gamal

    Définition de la sécurité

    Définition

    Π est IND-CPA si, pour tout adversaire A PPT, il existe negl(.) tq :

    Pr(PubKCPAA,Π = 1) ≤1

    2+ negl(n)

    Observons que l’oracle de chiffrement n’est pas nécessaire, donc siΠ IND-EAV, alors Π IND-CPA.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 12

  • Cryptographie à clé publiqueRSA

    El Gamal

    Le premier système à clé publique

    Inventé en 1978 par Rivest Shamir et Adleman.Les 3 auteurs cherchaient à montrer que le concept de clé publiqueétait contradictoire.Après beaucoup d’efforts, ils sont finalement parvenus au résultatinverse et ont été récompensés du Turing Award en 2002 !www.acm.org/awards/turing citations/rivest-shamir-adleman.

    html

    A peu près au même moment, Hellman et un étudiant Merkleproposent un autre système à clé publique.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 13

    www.acm.org/awards/turing_citations/rivest-shamir-adleman.htmlwww.acm.org/awards/turing_citations/rivest-shamir-adleman.html

  • Cryptographie à clé publiqueRSA

    El Gamal

    Merkle Hellman–Présentation

    Un problème est calculatoirement difficile s’il n’existe pas d’algo.déterministe de résolution de ce problème en temps poly.Les problèmes NP -complets [5] sont de bons candidats.Merkle et Hellman on choisi le problème SSP :

    Problème

    DonnéesUn n-uplet d’entiers A = (a1, . . . , an) distincts et un entier k.QuestionExiste-t-il un sous-ensemble de A dont la somme est égale à k ?

    Exemple :Pour A = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523) etk = 3231, 3231 = 129 + 473 + 903 + 561 + 1165 est solution.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 14

  • Cryptographie à clé publiqueRSA

    El Gamal

    Recherche d’une solution

    Trouver une solution : tester la somme de chaque sous-ensemblede A et identifier ceux qui somment à k.Ici, 210 sous-ensembles.Si cette valeur n’est pas suffisante, que peut-on dire d’un n-upletde plusieurs centaines d’entiers ? Par exemple, pour n = 300 surune machine qui effectue un million d’opérations par seconde, ilfaudrait 6, 4.1076 années de temps de calcul !Remarque de Merkle Hellman pour convaincre de la sûreté de leursystème.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 15

  • Cryptographie à clé publiqueRSA

    El Gamal

    Fonction à sens unique f

    ∀x ∈ N, 0 ≤ x ≤ 2n − 1, représentation binaire sur n bits Bxf (x) : produit scalaire entre A de dim. n et Bx de dim. n :f (x) = 〈A,Bx〉. Ainsi,

    f (1) = f (0 . . . 01) = anf (2) = f (0 . . . 10) = an−1f (3) = f (0 . . . 11) = an + an−1

    ...

    Par exemple,f (364) = f (0101101100) = 129 + 473 + 903 + 561 + 1165 = 3231.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 16

  • Cryptographie à clé publiqueRSA

    El Gamal

    Principe du fonctionnement

    On applique f sur des blocs de n bits correspondants à une suitede bits du texte clair. Par exemple si on code a par 1 = 00001. . . zpar 26 = 11010 on aurait sur le texte sauna and health :

    sa un a an d he al th(2942 3584 903 3326 215 2817 2629 819)

    qui représente le cryptogramme.Trouver x avec la seule connaissance de f (x), est aussi dur que derésoudre le problème du sac à dos, calculatoirement difficile.f bon candidat de fonction à sens unique si n entier assez grand.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 17

  • Cryptographie à clé publiqueRSA

    El Gamal

    Transformation en fonction à trappe

    Sans trappe, déchiffrer = résoudre une instance de SSP !Problèmes de sac à dos faciles.Cas si les éléments de A forment une suite super-croissante [3] :

    ∀j , 1 < j ≤ n,j−1∑i=1

    ai < aj

    Solution : parcourir A du plus grand élément vers le plus petit :étant donné k, on teste si k ≥ an.

    Si k < an, an pas dans solution ; passer à l’élément an−1.

    Si k ≥ an, an est dans solution ; tester si k1 = k − an ≥ an−1...Algo. termine quand on atteint a1. Il montre aussi que pour tout kle problème du sac à dos a au plus une solution.Maintenant, en publiant A, déchiffrer sera aussi facile pour ledestinataire que pour un cryptanalyste !Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 18

  • Cryptographie à clé publiqueRSA

    El Gamal

    Perturbation

    Choisir m >∑n

    i=1 ai grand comparé aux ai ; le module.Choisir t premier avec m i.e. t.q. gcd(t,m) = 1 ; le multiplicateur.garantit l’existence de t−1 mod m.Calculer bi ≡ ai × t mod m pour tout i , 1 ≤ i ≤ n → nouveaun-uplet B : clé publique.Exemple : A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)m = 1590, t = 43on obtient t−1 = 37 mod m

    B = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523)

    Les entiers t, t−1 et m constituent l’information secrète (la trappe).On chiffre comme avant : chiffrer p de n bits = calculer〈B, p〉 = c ′.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 19

  • Cryptographie à clé publiqueRSA

    El Gamal

    Déchiffrer

    Le destinataire connâıt t, t−1 et m et sait retrouver A depuis B.Reçu c ′ ∈ N, calcul t−1c ′ ≡ c mod m et résout SSP sur A et c .La solution définit une suite unique p de n bits qui est aussi un blocdu clair car toute solution p′ du problème sur B et c ′ égale à p :

    c ≡ t−1c ′ ≡ t−1〈B, p′〉 ≡ t−1t〈A, p′〉 ≡ 〈A, p′〉 mod m

    Observons que 〈A, p′〉 < m car m >∑n

    i=1 ai , ce qui implique quela congruence ci-dessus se simplifie en c = 〈A, p′〉. Comme leproblème défini par A et c ne peut avoir plusieurs solutions, on anécessairement p = p′.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 20

  • Cryptographie à clé publiqueRSA

    El Gamal

    Exemple

    Déchiffrons (2942, 3584, 903, 3326, 215, 2817, 2629, 819). Multiplierpar t−1 = 37 mod m = 1590 : (734, 638, 21, 632, 4, 879, 283, 93).Déchiffrons 734 avec A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701).734 > 701, le bit 10 de p sera 1 ; recommencer avec 734-701=3333 > 21, le bit 6 de p sera 1 et on recommence avec 33-21=1212 > 11, le bit 7 de p sera 1 et on recommence avec 12-11=11 = 1, le bit 10 de p sera 1 et on a finiDonc p = 10011 00001 qui correspond au bloc de deux lettres sa.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 21

  • Cryptographie à clé publiqueRSA

    El Gamal

    Cryptanalyses frustueuses

    1978, Herlestam «Critical remarks on some public-keycryptosystems» : 1 bit du chiffré peut être révélé.1979, Shamir a proposé dans un article à STOC unecryptanalyse du système basé sur le sac à dos dans certainescirconstances qui est décrite dans [9].

    Finalement, Shamir et Zippel ont trouvé des failles dans latransformation qui permet de reconstruire la suitesuper-croissante à partir de la suite normale.

    En 1982, Adleman a réussi une attaque sur le système du sacà dos en utilisant un Apple II [1].

    Finalement, une attaque élégante a été proposée en 1990par [8] en utilisant l’algorithme LLL.

    Pour plus de détails, voir [7] .

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 22

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    RSA

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 23

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Le chiffre de Rivest Shamir et Adleman (1978)

    Repose sur la difficulté calculatoire de factoriser un nombre et surla difficulté calculatoire de dire si un nombre est premier.Par exemple, 1829 est-il premier ?Non : on vous donne 31 et 59, on vérifie en les multipliant que 1829 est leur produit, mais les trouver est beaucoup

    plus difficile. Surtout qu’on ne connait pas a priori le nombre de facteurs premiers de 1829.

    Ou bien, 7919 est-il composé ?Non, mais le certificat de primalité est plus «difficile» à exhiber.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 24

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Rappels mathématiques

    Indicatrice d’Euler d’un entier n notée ϕ(n) : nombre d’entierscompris entre 1 et n premiers avec n. On a ϕ(1) = 1 et pour ppremier, ϕ(p) = p − 1.

    ϕ(n) = card{j ∈ {1, . . . , n} : gcd(j , n) = 1}

    Calcul : décomposer n =∏

    p|n,p premier pαp alors,

    ϕ(n) =∏

    p|n,ppremier(pαp − pαp−1) = n

    ∏p|n(1−

    1p ).

    Exemple

    ϕ(12) = (4− 2)(3− 1) = 12(1− 12)(1−13) = 4

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 25

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Petit théorème de Fermat - Euler

    On utilise le théorème d’Euler :

    Théorème (Fermat-Euler)

    mϕ(n) ≡ 1 mod n si gcd(m, n) = 1

    qui généralise le petit théorème de Fermat :Pour p premier, tout entier m vérifie :

    mp ≡ m mod p

    et si p 6 |m,mp−1 ≡ 1 mod p

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 26

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Théorème Chinois des restes

    Théorème

    Soit n1, . . . , nk et x1, . . . , xk entiers tq pour toute paire (i , j), on a

    xi ≡ xj mod gcd(ni , nj)

    Il existe x ∈ N tq x ≡ xi mod ni pour 1 ≤ i ≤ k. De plus, x estunique modulo le ppcm de n1, . . . , nk .

    Corollaire

    Soit n1, . . . , nk premiers 2 à 2. Alors, pour tout entier xi , il existeun unique entier x modulo

    ∏ni tq

    x ≡ xi mod ni 1 ≤ i ≤ k

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 27

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Algorithme de calcul

    Input : xi , ni 1 ≤ i ≤ nn =

    ∏ki=1 ni

    for i = 1 à k docalculer n/nigcd(n/ni , ni ) == si

    nni

    + tini = 1ci = xi si rem ni

    end forOutput :

    ∑ki=1 ci

    nni

    i 1 2 3xi 2 3 2ni 3 5 7 n = 105nni

    35 21 15

    gcd −1.35 1.21 1.1512.3 −4.5 −2.27

    sixi −2 3 2rem −2 3 2ci

    nni

    −70 63 30 x = 23

    Qiu JiuShao : combien l’armée de Han Xing a-t-elle de soldats si,rangés en 3 colonnes, il en reste 2, par 5 colonnes, il en reste 3 etpar 7 colonnes, il en reste 2 ?

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 28

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Les carrés modulaires

    On veut décider le problème :

    Instance : p > 2 premier et a un entierQuestion : Existe-t-il x ∈ Z?p t.q. x2 ≡ a mod p ?

    Si a est un carré (b2 ≡ a mod p), a possède 2 racines carrées ±b.Trouver les carrés = calcul de x2 mod p pour 1 ≤ x ≤ (p − 1)/2 ;les autres entiers de [[(p − 1)/2) + 1, (p − 1)]] sont leurs opposés.Les carrés de Z?p sont appelés résidus quadratiques modulo p.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 29

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Symbole de Legendre

    On le note(

    ap

    )pour p premier :

    (ap

    )=

    0 si p|a+1 si a est un carré−1 sinonThéorème(

    ap

    )= a

    p−12 mod p

    Preuve : si p | a, les deux membres de la congruence sont nuls.On suppose que p 6 |a. Par Fermat, dans Zp,

    (a

    p−12

    )2= 1 donc

    ap−1

    2 = ±1. Si g est un générateur de Z?p tel que a = g j . Alors, aest un résidu quadratique ssi j est pair. Et donc a

    (p−1)2 = g j

    (p−1)2

    vaut 1 ssi j(p − 1)/2 est divisible par p − 1. Ainsi le membre droitet le membre gauche de la congruence valent ±1 dans Zp etchacun vaut +1 ssi j est pair.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 30

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Propriétés

    Le symbole de Legendre satisfait les propriétés suivantes :

    1

    (abp

    )=

    (ap

    )(bp

    )2

    (−1p

    )= (−1)

    p−12 autrement dit, -1 est un carré modulo p si

    p ≡ 1 mod 4 et n’est pas un carré modulo p si p ≡ 3 mod 4

    3

    (2p

    )= (−1)

    p2−18 autrement dit, 2 est un carré modulo p si

    p ≡ ±1 mod 8 et n’est pas un carré modulo p si p ≡ ±3mod 8.

    4

    (ab2

    p

    )=

    (ap

    )si b et p sont premiers entre eux

    5 loi de réciprocité quadratique :(qp

    )= (−1)

    (p−1)(q−1)4

    (pq

    )=

    −(

    pq

    )si p et q ≡ 3 mod 4(

    pq

    )sinon

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 31

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Calcul du symbole de Legendre(

    ap

    )si a est pair (et réduit modulo p), a = 2αa′ avec a′ impair et on

    utilise la multiplicativité du symbole de Legendre :(

    2p

    )α(a′

    p

    ).

    Deux cas :

    a′ non premier et a′ =∏k

    1 qαii . Alors

    (a′

    p

    )=

    (q1p

    )α1· · ·

    (qkp

    )αka′ premier et on applique la loi de réciprocité quadratique

    Exemple

    7411 est-il un carré modulo 9283 ? Calculons(

    74119283

    ).

    Les 2 entiers sont premiers et congrus à 3 modulo 4. Loi de réciprocité :(74119283

    )= −

    (92837411

    )= −

    (18727411

    ). 1872 = 24.32.13, et -

    (18727411

    )=-

    (13

    7411

    ).

    Par une nouvelle application de la loi de réciprocité , -(

    741113

    )=-

    (113

    )=-1

    et donc 7411 n’est pas un carré modulo 9238.

    Inconvénient : calcul de Legendre est difficile ; il faut factoriser le«numérateur».Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 32

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Symbole de Jacobi

    Le symbole de Jacobi étend celui de Legendre comme suit :

    Definition

    Etant donnés m et n premiers entre eux, m impair,(nm

    )=

    (np1

    )α1. . .

    (npk

    )αkpour m =

    ∏ki=1 p

    αii et

    (npi

    )le symbole de Legendre.

    Il vérifie la plupart des propriétés du symbole de Legendre sauf :(mn

    )6≡ m

    n−12 mod n en général ;(

    mn

    )= 1 6⇔ m est un carré modulo n.

    Par exemple,(

    215

    )=

    (23

    )(25

    )= (−1)(−1) = 1

    mais 6 ∃x ∈ N t.q. x2 ≡ 2 mod 15.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 33

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Calcul du symbole de Jacobi

    Soit à calculer(

    nm

    )m et n premiers entre eux, m impair

    si n > m,(

    nm

    )=

    (n mod m

    m

    );

    si n est pair, n = 2αn′ et(

    nm

    )=

    (2m

    )α(n′m

    )si n est impair et n < m,

    (nm

    )=

    (mn

    )(−1)

    n−12

    m−12

    Petites valeurs de particulières :(1n

    )= +1

    (4n

    )= +1

    Exemple(2643

    )=

    (243

    )(1343

    )= −

    (1343

    )= −

    (4313

    )= −

    (413

    )= −1

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 34

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Factorisation et primalité : Crible d’Eratosthène

    Problème

    Instance : Un entier nQuestion : n est-il premier ?

    Problème algorithmique par excellence. Très étudié.Nombreux critères permettant de vérifier si un entier est premier.On divise n par tous les entiers impairs compris entre 3 et b

    √nc.

    méthode connue depuis l’antiquité et efficace pour n < 1012.Crible d’Eratosthène en O(

    √n). Pas polynomial ! Complexité en

    temps n’est pas polynôme en la longueur de l’entrée, en log(n).Il est pseudo polynomial.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 35

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Test de Lucas

    Théorème

    n est premier ssi ∃g ∈ Z?n tel que gn−1 ≡ 1 mod n et gn−1

    p 6≡ 1 mod npour tout p facteur premier de n − 1.

    Preuve [10] pour n premier, g primitif modulo n remplit la condition.Réciproquement, si un tel g existe, alors l’ordre de g dans Z?n estforcément n − 1. Or, tout élément de Z?n est d’ordre un diviseur de ϕ(n) ;comme ϕ(n) ≤ n − 1, on a ϕ(n) = n − 1, équivalent à n premier.

    Définition

    Soit a ∈ Z et n ∈ N tq gcd(a, n) = 1, l’ordre multiplicatif de a mod nest le plus petit entier naturel k tq ak ≡ 1 mod n (ou que ak − 1|n).

    On en déduit le test de primalité de Lucas. Il permet de construire un

    algorithme non-déterministe en temps polynomial. Primalité ∈NP .Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 36

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Et le complémentaire de Primalité ?

    La reconnaissance des nombres composés est dans NP ; construire p.e.un algorithme de type deviner/vérifier pour leur factorisation.Plus précisément, on considère le problème FACTM des facteurs majorés.

    Problème

    Instance : Un entier n et un nombre M ≤ n.Question : Existe-t-il un diviseur de n inférieur à M ?

    La difficulté de factoriser équivaut à la difficulté de résoudre FACTM.En effet, si FACTM∈ P, n se factorise en temps poly. par dichotomie : oncherche s’il y a un facteur de n dans l’intervalle [1,

    √n] en résolvant

    FACTM avec M = b√

    nc ; s’il n’y en a pas, n est premier. S’il y en a, oncherche si n a un facteur dans [1,

    √n/2], sinon on cherche s’il a un

    facteur dans l’intervalle [√

    n/2,√

    n] etc. En conséquence,

    Théorème (Pratt)

    Primalité∈ NP ∩ co-NP .Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 37

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Primes ∈ P, Agrawal, Kayal et Saxena (2002)

    A partir de l’identité :

    si gcd(a, p) = 1, [(x − a)p ≡ (xp − a) mod p ⇔ p premier]

    AKS ont construit un algo. dét. de test de primalité.Donné p premier, choisir P(x) = x − a et vérifier l’équation.Coûteux en temps dans le pire des cas !Amélioration : évaluer la congruence modulo x r − 1 pour unpremier r bien choisi (dans l’anneau Fp[x ]/x r − 1). Une itérationde l’algorithme sera alors

    (x − a)p ≡ (xp − a) mod (x r − 1, p)

    Et de vérifier cette nouvelle congruence pour un petit nombre devaleurs de a (de l’ordre de O(

    √r log p)).

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 38

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Preuve de l’identité

    si gcd(a, p) = 1, [(x − a)p ≡ (xp − a) mod p ⇔ p premier]

    Si p premier, p |(pr

    )= p(p−1)!r !(p−r)! pour 1 ≤ r ≤ p − 1 et

    (x − a)p ≡ (xp − ap) mod p ≡ xp − a mod p par Fermat-Euler.Réciproquement, supposons p composé. Alors il existe q premierdiviseur de p et soit qk la plus grande puissance de q qui divise p.

    qk ne divise pas(pq

    )= p!q!(p−q)! =

    qkα(p−1)!q(q−1)!(p−q)! et q

    k est premier

    avec ap−q. Le coefficient de xq dans le développement de (x − a)pn’est pas nul alors qu’il l’est dans le membre droit de l’identité, unecontradiction.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 39

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Entrée : un entier n > 1Si n est de la forme ab, b > 1 alors n est COMPOSE fsir ← 2Tantque r < n faire

    Si gcd(n, r) 6= 1 alors n est COMPOSE fsiSi r est premier ≥ 2 alors

    soit q le plus grand facteur premier de r − 1 ;Si (q ≥ 4

    √r log n) et (n

    r−1q 6= 1 mod r) alors ARRET ;

    fsir ← r + 1

    ftqPour a← 1 jusqu’à 2

    √r log n faire

    Si (x − a)n 6≡ (xn − a) mod (x r − 1, n) alors n est COMPOSE fsifpourn est PREMIER

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 40

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Exponentiation modulaire pour calculer ab mod n

    Soit 〈bk , bk−1, . . . b0〉 la rep. binaire de b =∑k

    i=0 bi2i .

    Algorithme

    Exponentiation modulaire (a, b, n)c ← 0 ; d ← 1 ;Soit 〈bk , bk−1, . . . b0〉 la représentation binaire de bPour i ← k jusqu’à 0 pas -1 faire

    c ← 2.c ; d ← (d .d) mod n ;si bi = 1 alors

    c ← c + 1 ; d ← (d .a) mod n ;fsi

    fpourrenvoie d

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 41

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    A la main

    1773 mod 133. 73 = 〈1001001〉

    i bi 172i 172

    imod 133 valeur

    0 1 17 17 mod 133 171 0 172 289 mod 133 232 0 232 529 mod 133 130

    3 1 1302 16900 mod 133 94 0 92 81 mod 133 815 0 812 6561 mod 133 44

    6 1 442 1936 mod 133 74

    et 1773 mod 133 = 17.1723.172

    6= 17.9.74 mod 133 = 17.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 42

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Chiffrement RSA

    1 choisir p et q premiers assez grands -de l’ordre de 10100

    2 fixer n = pq et publier n

    3 calculer ϕ(n) = (p − 1)(q − 1)4 choisir et publier e/ gcd(e, ϕ(n)) = 1 (clé publique, encipher)

    5 calculer d tq d .e ≡ 1 mod ϕ(n) (clé privée, decipher)

    Chiffrer : E : M 7→ Me mod n.Déchiffrer : D : C 7→ Cd mod n (d est la trappe).Implémentations : logicielles, matérielles et même mixtes.Sur des cartes dédiées, RSA environ 1000 fois plus lent que DES.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 43

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Preuve de RSA

    Avec ed ≡ 1 mod ϕ(n),Med ≡ Mkϕ(n)+1 mod nPar Euler, Mϕ(p) ≡ 1 mod p ⇒ Mp−1 ≡ 1 mod p sigcd(M, p) = 1Et comme (p − 1)|ϕ(n),Mkϕ(n)+1 ≡ M mod p(trivialement vrai si M ≡ 0 mod p)De même pour q :Mkϕ(n)+1 ≡ M mod q(trivialement vrai si M ≡ 0 mod q)On a : Med ≡ M mod (pq)

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 44

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Exemple

    A et B utilisent RSA avec n = 133. La clé publique de A est 37.

    1 quelle est sa clé privée ?

    2 si le crypto reçu par A est 17, retrouver le clair. (Les messagessont compris entre 0 et n − 1).

    Clé privée de A ? Factoriser n en produit de 2 premiers ; ontrouve n = 133 = 7× 19. ϕ(133) = 6.18 = 108.Les premiers nombres premiers sont 1, 3, 5, 7, 11, 13, 17, 19 . . .Avec e = 37, d ≡ e−1 mod ϕ(n). Euclide (37, 108) donne lescoefs de Bezout (−35, 12). D’où d = −35 = 108− 35 = 73 mod 108.Cryptanalyse de A = 17, il suffit de calculer 1773 mod 133 = 17

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 45

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Textbook RSA

    Gen(1τ ) construit p, q premiers tq |p| = |q| ≈ 12c3

    τ3 et donnePK=(e, n) et SK=(p, q, n, e, d) (c petite constante ≈ 81).Encpk(m) pour m ∈ {0, 1}

    ? découpe m en |m|/(|n| − 1) blocsde |n| − 1 bits en on applique le chiffre à chaque miDECsk(c) déchiffre bloc par bloc les ci

    Hypothèse (hypothèse RSA)

    Calcul infaisable : pour un τ assez grand, le calcul de m sur l’entrée

    ((e, n), c) avec RSA défini comme précédemment et mU← Z?n.

    Correspond à la définition de OW. Retour def. OW

    1valeur de c fixée par algo. de factorisationBruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 46

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Attaque sur les paramètres

    Cycles : Fred observe c = me mod n ; il essaye de trouver ν t.q.

    ceν ≡ c mod n⇔ eν ≡ 1 mod ϕ(n)

    Ce qui permet de trouver m ≡ ceν−1 mod nEn effet ce

    ν ≡ c mod n⇔ ceν−1 ≡ 1 mod n et, par le théorèmed’Euler, on a eν − 1 ≡ 0 mod ϕ(n)⇔ eν ≡ 1 mod ϕ(n). Commec = me mod n et de ≡ 1 mod ϕ(n), on peut prendre d = eν−1pour déchiffrer.

    Exemple

    Publics : e et n, 17 et 143. Eve intercepte c = 19 et calcule

    i 2 3 4

    cei

    84 28 19

    Il ne lui reste plus qu’à «lire» m pour i = 3, soit 28.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 47

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Low exponent attacks

    On n’a pas toujours besoin de factoriser n

    dans le cas ou le clair m est chiffré par des PK(e, n1), (e, n2), (e, n3) . . . avec un même e.

    c1 = me mod n1, c2 = m

    e mod n2, c3 = me mod n3

    possible de retrouver m à partir des chiffrés

    des implémentations de RSA utilisent e = 3 (pe ssl)

    Eve peut retrouver m ainsi en supposant les ni premiers 2 à 2(sinon Eve pourrait factoriser l’un des ni ). Par le Th. Chinois desrestes, Eve calcule c = m3 mod n1n2n3. Comme m < n1, n2, n3,m < n1n2n3 d’où c = m

    3 qui devient une équation sur N. m peutêtre retrouvé en calculant la racine cubique de c .

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 48

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Si le module n est commun à tous les utilisateurs

    On distribue un message commun à deux utilisateurs. m est envoyéaux deux utilisateurs de paramètres publics respectifs (e1, n) et(e2, n) qui vérifient gcd(e1, e2) = 1.Fred intercepte me1 et me2 . Il ne lui reste plus qu’à calculer avecEuclide étendu u, v ∈ N tq ue1 + ve2 = 1 le clair :

    (me1)u(me2)v ≡ m mod n

    Exemple

    le module partagé est 143 et les exposants de chiffrement respectifssont e1 = 17 et e2 = 19. On distribue m = 123 en envoyant12317 = 106 au premier utilisateur et 12319 = 72 au second. Fredcalcule alors les coefficients de Bezout du pgcd(17, 19) = (9,−8)et retrouve m = 106972−8 mod 143 = 123.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 49

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    L’attaque de l’homme du milieu (”man in the middle”)

    Porte sur la communication des clés.

    Bob (client) demande ses paramètres publics à Alice (serveur)

    Alice envoie (eS , nS) à Bob

    Melchior intercepte (eS , nS) et envoie ses paramètres (eM , nM)

    Bob chiffre en utilisant à son insu (eM , nM) et envoie c

    Melchior intercepte le message c et le déchiffre en secret

    Melchior rechiffre secret avec (eS , nS) et le transmet àAlice. . .

    Serveur ClientMelchioreS,nS eM,nM Serveur

    ClienteS,nS eM,nM

    secreteM mod nMsecreteS mod nS

    Ah ! si Bob avait pu s’assurer que les données venaient d’Alice.Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 50

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Attaque à ϕ(n) connu

    Connâıtre (n, ϕ(n)) revient à connâıtre la factorisation de n [6].

    En effet, en posant :

    {n = pqϕ(n) = (p − 1)(q − 1) et q =

    np :

    ϕ(n)− (p − 1)(

    n

    p− 1

    )= 0⇔ p2 + p (ϕ(n)− n − 1) + n = 0

    équation du second degré de solutions p et q.Calcul de ϕ(n) aussi difficile que la factorisation de n.

    Exemple

    Connus n = p.q = 133 et ϕ(n) = 108. On pose

    ϕ(n)− (p − 1)(

    np − 1

    )= 0⇔ p2 + p (ϕ(n)− n − 1) + n = 0

    Soit p2 + p(108− 133− 1) + 133 = 0⇔ p2 − 26.p + 133 = 0 dediscriminant ∆ = (−26)2 − (4.133) = 144 = 122 et de solutionsp = 26±122 = {19, 7}.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 51

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Sûreté calculatoire

    RSA est aussi sûr que la factorisation de n est difficile.Complexité de quelques «bons» algorithmes de factorisation :

    crible quadratique O(e((1+o(1))√

    log n log log n))

    courbes elliptiques O(e((1+o(1))√

    2 log p log log p))

    crible algébrique O(e((1,92+o(1))(log n)1/3(log log n)2/3))

    (p : plus petit facteur premier de n).

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 52

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Sécurité sémantique

    Pour qu’un chiffre à clé publique soit sémantiquement sûr(IND-CPA), il faut que l’adversaire (avec une puissancecalculatoire limitée) soit incapable d’obtenir des informationssignificatives sur le clair à partir de la donnée du du chiffré et de laclé publique. La sécurité sémantique ne considère que le cas d’unadversaire « passif » qui observe les chiffrés.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 53

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Insécurité prouvée de RSA

    RSA n’est pas sémantiquement sûr

    Encpk(m) révèle des informations sur m !

    il suffit de connaitre le symbole de Jacobi de m :(me

    n

    )=

    (me

    p

    )(me

    q

    )=

    (mp

    )(mq

    )=

    (mn

    )vient du fait que le chiffrement par RSA est déterministe !

    pourquoi un chiffrement déterministe empèche-t’il la sécuritésémantique ?

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 54

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Distinguabilité

    contredire IND-CPA : Ciphertext Distinguishability Pb (CDP)

    chiffre sémantiquement sur si CDP est infaisable

    (attaquant peut avoir à sa disposition un dictionnaireclair/chiffrés et choisir le défi parmi eux.)

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 55

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Un autre problème difficle

    (DLP) de y en base g :DLP problème de logarithme discretInstance : g , y ∈ G , groupe finiQuestion : trouver x tel que g x ≡ y dans Gou, pour p un grand nombre premier, g un générateur de G = Z?p,g x ≡ y mod p et x = logg (y) mod p.Plus généralement, tout élément y ∈ G possède un logarithmediscret en base g si et seulement si G est cyclique de générateur g .

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 56

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Exemple

    Soit G = Z?7 un groupe cyclique. Pour le logarithme en base 2,seuls 1, 2 et 4 possèdent un logarithme discret. En base g=3, onobtient le tableau suivant :

    nombre y 1 2 3 4 5 6logarithme 6 2 1 4 5 3

    Par exemple pour nombre = 1 et log = 6. Cela signifie quelog3 1 = 6, ce qu’on vérifie par 3

    6 mod 7 = 1.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 57

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Calcul du logarithme discret

    Facile de calculer le logarithme discret de groupes de faiblecardinalité, opération très difficile quand le cardinal de G crôıt.Algo de calcul du logarithme discret : Shanks s’applique à toutgroupe fini G .Complexité en temps O(

    √|G | log |G |) et O(

    √|G |) en espace.

    Idée : construire deux listes de puissances de g :

    une liste de petits pas {g i : i = 0..d√

    ne − 1} avec n = |G |

    une liste de pas de géant{

    y(g−d

    √nej

    ): j = 0..d

    √ne

    }.

    Puis trouver un terme commun aux 2 listes. Ainsi,

    g i0 = y(g−j0d√

    ne) et m = i0 + j0d√

    ne

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 58

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Exemple

    On travaille dans Z×113 =< 3 > d’ordre n = 112 ;√

    n = r = 11. Oncherche le logarithme discret de y = 57 en base g = 3 :Liste (non ordonnée) des petits pas, forme (exposant, valeur) :

    B = {(0, 1), (1, 3), (2, 9), (3, 27), (4, 81),(5, 17), (6, 51), (7, 40), (8, 7), (9, 21), (10, 63)}

    Liste (non ordonnée) des pas de géant, forme (exposant, valeur) :

    L = {(0, 57), (1, 29), (2, 100), (3, 37), (4, 112), (5, 55), (6, 26),(7, 39), (8, 2), (9, 3), (10, 61), (11, 35)}

    3 est commun aux petits pas et aux grands pas, il a été engendrépour i0 = 1 dans la liste B et pour j0 = 9 dans la liste L. Lelogarithme discret que l’on cherchait est x = i0 + r .j0 = 100.Vérification : on calcule g x mod 113 = 57.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 59

  • Cryptographie à clé publiqueRSA

    El Gamal

    RappelsFactorisation, primalitéFonctionnement

    Shanks

    Algorithme :Entrée : n le cardinal de G ,g et y ∈ GSortie : logarithme discret de y en base g dans G . r := d

    √ne

    Construire la liste B := {g i : i = 0..d√

    ne − 1}Construire la liste L := {y(g−d

    √nej) : j = 0..d

    √ne}

    Trier les listes B et L selon un ordre sur les g i et les g−rj .Trouver i0 et j0 tel que : g

    i0 = yg−rj0 .RETURN(i0 + j0r).Preuve :Pour r = d

    √ne, on a :

    Construction des listes : r + 1 + r opérations de groupes : O(r)Tri des listes : O(r log(r))

    Recherche d’un même élément dans deux listes triées : O(log(r)) �

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 60

  • Cryptographie à clé publiqueRSA

    El Gamal

    El Gamal

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 61

  • Cryptographie à clé publiqueRSA

    El Gamal

    Le chiffre d’El Gamal

    Repose sur le problème du logarithme discret.

    1 choisir p premier t.q. DLP est dur dans Zp?

    2 choisir α ∈ Zp? un élément primitif3 choisir 2 ≤ a < p − 1, la clé privée4 calculer β ≡ αa mod p5 clé publique : p, α, β.

    Chiffrer : E : (x , k) 7→ (y1 = αk mod p, y2 = xβk mod p)pour k aléatoire secret de Zp−1Déchiffrer : (y1, y2) 7→ y2(y1a)−1 mod p

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 62

  • Cryptographie à clé publiqueRSA

    El Gamal

    Fonctionnement

    E : (x , k) 7→ (y1 = αk mod p, y2 = xβk mod p)

    k aléatoire secret de Zp−1.Clair est «masqué» en multipliant par βk et donne y2.Valeur de αk transmise comme partie du chiffré comme y1.Bob, connait le clé privée a, calcule βk à partir de αk . Commeβ = αa, il suffit de calculer (αk)a = βk . Il ne reste plus qu’àmultiplier y2 par l’inverse de β

    k mod p pour retrouver x .Observons que le crypto est deux fois plus long que le clair.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 63

  • Cryptographie à clé publiqueRSA

    El Gamal

    Exemple

    Soit p = 2579, α = 2, a = 765. Alice commence par le calcul deβ = 2765 mod 2579 = 949.Elle veut transmettre x = 1299 à Bob.Elle choisit k ∈ Zp−1 = 853 et calcule :

    y1 = 2853 mod 2579 = 435 y2 = 1299.(949)

    853 mod 2579 = 2396

    Bob reçoit (435, 2396) et connait a = 765. Il calcule (y1)a

    mod p = 435765 mod 2579 = 2424 et en cherche l’inversemod p par Euclide étendu : (2424, 2579) =−599.2424 + 563.2579 = 1⇔ (βk)−1 = −599 = 1980.Puis il calcule 2396.1980 mod 2579 = 1299.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 64

  • Cryptographie à clé publiqueRSA

    El Gamal

    L.M. Adleman.

    On breaking the iterated Merkle-Hellman public-key cryptosystem.In Springer Verlag, editor, CRYPTO’82, LNCS, pages 303–304, 1982.

    G. Brassard.

    Cryptologie contemporaine.Logique, mathématiques, informatique. Masson, 1993.

    T.H. Cormen, C.E. Leiserson, and R.L. Rivest.

    Introduction to algorithms.MIT Press, 1989.

    W. Diffie and M.E. Hellman.

    New directions in cryptography.IEEE Trans. on Inform. Theory, 22(6) :644–654, 1976.

    M.R. Garey and D.S. Johnson.

    Computers and intractability.Freeman, 1979.

    N. Koblitz.

    A course in number theory and cryptography.Graduate texts in mathematics. Springer Verlag, 1987.

    B. Martin.

    Codage, cryptologie et applications.Presses Polytechniques et Universitaires Romandes, 2004.

    A. M. Odlyzko.

    The rise and fall of knapsack cryptosystems.In C. Pomerance, editor, Cryptology and Computational Number Theory, volume 42 of Proc. Symp. Appl.Math., pages 75–88, 1990.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 64

  • Cryptographie à clé publiqueRSA

    El Gamal

    A. Salomaa.

    Public Key Cryptography.EATCS monographs. Springer Verlag, 1990.

    G. Zémor.

    Cours de cryptographie.Cassini, 2000.

    Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptographie à clé publique 64

    Cryptographie à clé publiqueRSARappelsFactorisation, primalitéFonctionnement

    El Gamal