Cours4-5

22
Cryptographie à clé publique Pierre-Alain Fouque vendredi 12 septembre 14 Diffie-Hellman Papier historique «New Directions in Cryptography» Opération difficile: inversion du chiffrement (fonction à sens unique à trappe) Résolvent le problème de l’échange de clé vendredi 12 septembre 14 Problème Diffie-Hellman Soit G un groupe cyclique: tous les éléments s’écrivent de la forme g x pour x=0 à n-1 Problème du logarithme discret (DLog): étant donné y, trouver x tel que y=g x ? Meilleur algorithme: complexité O(n 1/2 ) Problème Diffie-Hellman (DH): étant donné g x et g y , calculer g xy ? Problèmes équivalents sur une courbe elliptique vendredi 12 septembre 14 Rivest-Shamir-Adleman RSA: premier système de chiffrement à clé publique résout aussi le problème de la signature numérique (RSA=fonction à sens unique est une permutation) Sécurité = un problème algorithmique difficile factorisation des nombres de la forme produit de 2 grands nombres premiers inverser la fonction f(x)=x e mod N vendredi 12 septembre 14

description

Finish

Transcript of Cours4-5

  • Cryptographie cl

    publique

    Pierre-Alain Fouque

    vendredi 12 septembre 14

    Diffie-H

    ellman

    Papier historique N

    ew D

    irections in Cryptography

    O

    pration difficile: inversion du chiffrement (fonction

    sens unique trappe)

    R

    solvent le problme de lchange de cl

    vendredi 12 septembre 14

    Problme D

    iffie-Hellm

    an

    Soit G un groupe cyclique: tous les lm

    ents scrivent de la form

    e gx pour x=

    0 n-1

    Problm

    e du logarithme discret (D

    Log): tant donn y, trouver x tel que y=

    gx ?

    M

    eilleur algorithme: com

    plexit O(n

    1/2)

    Problm

    e Diffie-H

    ellman (D

    H): tant donn g

    x et g

    y, calculer gxy ?

    Problm

    es quivalents sur une courbe elliptique

    vendredi 12 septembre 14

    Rivest-Sham

    ir-Adlem

    an

    R

    SA: prem

    ier systme de chiffrem

    ent cl publique

    rsout aussi le problm

    e de la signature numrique

    (RSA

    =fonction sens unique est une perm

    utation)

    Scurit =

    un problme algorithm

    ique difficile

    factorisation des nom

    bres de la forme produit de

    2 grands nombres prem

    iers

    inverser la fonction f(x)=

    xe m

    od N

    vendredi 12 septembre 14

  • Calcul m

    odulaire

    G

    roupe de lhorloge

    Z

    12 ={0,1,2,3,...,11}

    2+

    5=7

    9+

    5=14=

    12+2=

    2 mod 12

    01

    2345

    67

    8 9 10 11

    vendredi 12 septembre 14

    Addition dans Z

    7

    Z

    7 ={0,1,2,3,4,5,6}

    2+

    3=5

    4+

    5=9=

    7+2=

    2 mod 7

    +0

    12

    34

    56

    00

    12

    34

    56

    11

    23

    45

    60

    22

    34

    56

    01

    33

    45

    60

    12

    44

    56

    01

    23

    55

    60

    12

    34

    66

    01

    23

    45

    vendredi 12 septembre 14

    Soustraction dans Z7

    5-2=

    3

    2-5=

    -3=(-3)+

    7=4 m

    od 7

    -0

    12

    34

    56

    00

    65

    43

    21

    11

    06

    54

    32

    22

    10

    65

    43

    33

    21

    06

    54

    44

    32

    10

    65

    55

    43

    21

    06

    66

    54

    32

    10

    vendredi 12 septembre 14M

    ultiplication dans Z7

    a

    b=a+

    a+...+

    a=b+

    b+...+

    b

    3

    5=5+

    5+5=

    10+5=

    3+5=

    8=7+

    1=1 m

    od 7

    3

    5=15=

    (27)+

    1=1 m

    od 7

    6

    4=24=

    (37)+

    3=3 m

    od 7

    a foisb fois

    vendredi 12 septembre 14

  • Multiplication dans Z

    7

    3

    5=(2

    7)+1=

    1 mod 7

    6

    4=(3

    7)+3=

    3 mod 7

    x0

    12

    34

    56

    00

    00

    00

    00

    10

    12

    34

    56

    20

    24

    61

    35

    30

    36

    25

    14

    40

    41

    52

    63

    50

    53

    16

    42

    60

    65

    43

    21

    vendredi 12 septembre 14M

    ultiplication dans Z6

    x0

    12

    34

    56

    00

    00

    00

    00

    10

    12

    34

    56

    20

    24

    61

    35

    30

    36

    25

    14

    40

    41

    52

    63

    50

    53

    16

    42

    60

    65

    43

    21

    x0

    12

    34

    5

    00

    00

    00

    0

    10

    12

    34

    5

    20

    24

    02

    4

    30

    30

    30

    3

    40

    42

    04

    2

    50

    54

    32

    1

    vendredi 12 septembre 14

    Multiplication dans Z

    6

    x0

    12

    34

    56

    00

    00

    00

    00

    10

    12

    34

    56

    20

    24

    61

    35

    30

    36

    25

    14

    40

    41

    52

    63

    50

    53

    16

    42

    60

    65

    43

    21

    x0

    12

    34

    5

    00

    00

    00

    0

    10

    12

    34

    5

    20

    24

    02

    4

    30

    30

    30

    3

    40

    42

    04

    2

    50

    54

    32

    1

    vendredi 12 septembre 14

    Exponentiation modulaire

    a

    b=a

    a...

    a

    4

    5=4

    44

    44=

    1616

    4=2

    24=

    2 mod 7

    5

    6=5

    55

    55

    5=4

    44=

    164=

    24=

    8=1 m

    od 7

    b fois

    vendredi 12 septembre 14

  • Inverse modulaire

    Inverse de a m

    od N

    (not 1/a mod N

    ou a

    -1 mod N

    ) = b tel

    que ab=

    1 mod N

    3

    -1=5 m

    od 7

    5

    -1=3 m

    od 7

    6

    -1=6 m

    od 7

    2

    -1=4 m

    od 7

    x0

    12

    34

    56

    00

    00

    00

    00

    10

    12

    34

    56

    20

    24

    61

    35

    30

    36

    25

    14

    40

    41

    52

    63

    50

    53

    16

    42

    60

    65

    43

    21

    vendredi 12 septembre 14

    Inverse modulaire

    5

    -1=5 m

    od 6

    2

    -1=??? m

    od 6 =>

    non dfini

    Seuls 1 et 5 sont inversibles m

    odulo 6

    x0

    12

    34

    5

    00

    00

    00

    0

    10

    12

    34

    5

    20

    24

    02

    4

    30

    30

    30

    3

    40

    42

    04

    2

    50

    54

    32

    1

    vendredi 12 septembre 14

    Division m

    odulaire

    D

    iviser a par b revient multiplier a par linverse de

    b: a/b=a

    b-1 m

    od n

    2/3=

    23

    -1=2

    5=3 m

    od 7 (33=

    2 mod 7)

    5 / 4 m

    od 6 nest pas dfini car 4 nest pas inversible

    vendredi 12 septembre 14

    En rsum

    Z

    N ={0,1,2,...,N

    -1} (groupe dhorloge)

    O

    prations daddition, de soustraction, de m

    ultiplication

    O

    pration dexponentiation

    Parfois, opration dinversion

    cas particulier fondam

    ental: si p est premier,

    Zp *=

    {1,2,...,p-1} est constitu dlments tous

    inversibles

    vendredi 12 septembre 14

  • Arithm

    tique modulaire

    But: effectuer tous les calculs m

    odulo un entier N

    R

    gle: tout entier x est remplac par le reste de la

    division entire de x par N

    D

    finition de lanneau ZN :

    lm

    ents: entiers de 0 N-1

    O

    prations: addition, soustraction, multiplication,

    exponentiation, et ... parfois, inversion

    vendredi 12 septembre 14

    Exponentiation

    But: calculer x

    a=x.x.x...x (a fois)

    A

    lgorithme lm

    entaire: a-1 multiplications

    ... m

    ais on peut faire mieux x

    16=(((x

    2) 2) 2) 2

    soit 4 m

    ultiplications (carrs) au lieu de 15

    vendredi 12 septembre 14

    Exponentiation binaire

    a=i=

    0 k-1ai

    2i, a

    i {0,1}

    vendredi 12 septembre 14

    Exponentiation binaire

    vendredi 12 septembre 14

  • Exponentiation binaire

    But: calculer xa

    y=1, P=

    x tant que a!=

    0 faire si a est im

    pair, y=y.P

    a=a/2 (division entire)

    P=P

    2

    retourner y

    vendredi 12 septembre 14

    Exponentiation binaire

    But: calculer xa

    y=1, P=

    x tant que a!=

    0 faire si a est im

    pair, y=y.P

    a=a/2 (division entire)

    P=P

    2

    retourner y

    vendredi 12 septembre 14

    Com

    plexit du calcul xa

    C

    ombien de fois peut-on diviser a par 2 ?

    si a=

    2k, k+

    1 fois (=log

    2 (a))

    en gnral, de lordre de log

    2 (a)

    chaque tape, on fait 1 ou 2 m

    ultiplications (1,5 en m

    oyenne)

    La com

    plexit du calcul est donc de lordre de 1,5.log

    2 (a) multiplications

    vendredi 12 septembre 14

    Exponentiation modulaire

    But: calculer x

    a mod N

    N

    e surtout pas calculer xa puis rduire

    modulo N

    !

    Exem

    ple: 171234567890=

    1 mod 16 calcul

    imm

    diat bien que 171234567890 soit

    impossible calculer...

    Ide: effectuer les rductions m

    odulaires ds que possible

    vendredi 12 septembre 14

  • Exponentiation binaire But: calculer x

    a mod N

    y=1, P=

    x mod N

    tant que a!=0 faire

    si a est impair, y=

    y.P mod N

    a=a/2 (division entire)

    P=P

    2 mod N

    retourner y Rem

    arque: on ne manipule aucun entier >

    N2

    vendredi 12 septembre 14

    Exponentiation binaire

    Calcul de x

    a mod N

    |a|=

    1024 bits =>

    1536 multiplication m

    odulaires

    a=

    3=>

    2 multiplications m

    odulaires

    a=

    216+1=

    > 16 m

    ultiplications modulaires

    C

    omplexit dune m

    ultiplication mod N

    =

    > environ |N

    | 2 oprations bit bit

    Exponentiation m

    odulaire: environ |N| 3 oprations

    (taille module x2 =

    > tem

    ps de calcul x8)

    vendredi 12 septembre 14

    PGC

    D

    Plus G

    rand Com

    mun D

    iviseur

    PG

    CD

    (30,42)=PG

    CD

    (56,6

    7)=6

    PG

    CD

    (11,17)=1

    PG

    CD

    (22,35)=PG

    CD

    (112,7

    5)=1

    A

    lgorithme (rcursif):

    PG

    CD

    (a,0)=a pour tout a

    PG

    CD

    (a,b)=PG

    CD

    (b,a mod b)

    vendredi 12 septembre 14A

    lgorithme dEuclide

    Entre: a et b

    Sortie: d tel que d=

    PGC

    D(a,b)

    x=

    a, y=b

    Tant que y>

    0

    r=

    x-qy (division euclidienne de x par y)

    x=

    y

    y=

    r

    return x

    vendredi 12 septembre 14

  • Inversion mod N

    X

    est inversible modulo N

    ssi il existe Y tel

    que X.Y

    =1 m

    od N

    Exem

    ple: 8.7=1 m

    od 55

    Seuls les entiers prem

    iers avec N sont

    inversibles (Bzout)

    C

    alcul dinverse: Euclide tendu appliqu X

    et N: X

    .u+N

    .v=1 donc X

    .u=1 m

    od N

    X-1=

    u mod N

    vendredi 12 septembre 14

    Algorithm

    e dEuclide tendu

    Entre: a et b dau plus l-bit

    Sortie: d=

    pgcd(a,b),u,v tels que d=a.u+

    b.v

    x

    =(a,1,0), y

    =(b,0,1)

    Tant que y

    1 >0 faire

    r=

    x-qy

    (q=quotient euclidienne x

    1 par y

    1 )

    x=y

    puis y=r

    Calcul du pgcd si on ne regarde que x1et y1

    vendredi 12 septembre 14

    Com

    plexit (O(l 3) O

    (l 2))

    tout instant: x1 =

    ax2 +

    bx3 et y

    1 =ay

    2 +by

    3

    |y

    1 | dcrot (y1 reste de la division de x

    1 par y1 )

    y

    1 =0 (donc le program

    me sarrte)

    pgcd(x

    1 ,y1 )=

    pgcd(y1 ,x

    1 -qy1 )

    O

    (l 2) division euclidienne et O(l) itrations

    (z

    0 ,z1 ,...,z

    i ) valeurs prises par y1 (suite dcroissante)

    z

    0 0 (sauf dbut) puis Fibonacci

    vendredi 12 septembre 14

    Calcul dinverse m

    odulaire

    Calculer a

    -1 mod b: au+

    bv=1

    au=1 m

    od b

    Inverse de 22 m

    od 3 (a=22, b=

    35)

    itrationx

    yq

    0(22,1,0)

    (35,0,1)0

    1(35,0,1)

    (22,1,0)1

    2(22,1,0)

    (13,-1,1)1

    3(13,-1,1)

    (9,2,-1)1

    4(9,2,-1)

    (4,-3,2)2

    5(4,-3,2)

    (1,8,-5)4

    6(1,8,-5)

    (0,-35,22)

    1=22x8-5x35

    vendredi 12 septembre 14

  • ZN *

    O

    n note ZN * lensem

    ble des entiers de ZN

    inversibles modulo N

    Si N

    est premier, Z

    N *={1,2,...,N

    -1}

    Z

    N * = entiers de 1 N

    -1 premiers avec N

    Indicatrice dEuler: Phi(N

    )=C

    ard(ZN *) si

    N=

    p1 e1.p

    2 e2....pk ek,

    Phi(N)=

    p1 e1-1(p

    1 -1)....pk ek-1(p

    k -1)

    vendredi 12 septembre 14

    Calcul de Phi(N

    )

    ZN * entiers de 1 N

    -1 premiers avec N

    Phi(p.q)=

    pq-(q-1)-(p-1)-1=(p-1).(q-1)

    0pq

    2p3p

    4p5p

    6ppq

    2q3q

    4q

    vendredi 12 septembre 14

    Thorm

    e dEuler

    ZN *

    vendredi 12 septembre 14

    Thorm

    e dEuler

    vendredi 12 septembre 14

    ioioHighlight

  • Thorm

    e dEulerQ

    uelque soit xZN *, g

    o=1 m

    od N, o=

    Card(Z

    N *)Q

    uelque soit k, ga+

    ko=g

    a mod N

    xa

    Les exposants vivent m

    odulo phi(N)

    Les lments vivent

    modulo N

    vendredi 12 septembre 14

    Cas p prem

    ier

    Petit thorm

    e de Fermat: Si N

    =p prem

    ier, on a x

    p-1=1 m

    od p pour tout x!=0 m

    od p

    Z

    p*={1,2,...,p-1} et phi(p)=

    p-1

    Z

    p* est un groupe cyclique ={1,g,g

    2,...,gp-2}

    avec phi(p-1) gnrateurs g

    ord(x

    a mod p)=

    ord(x)/pgcd(a,p-1)

    vendredi 12 septembre 14

    Anneau et corps

    Si n nest pas prem

    ier, on note Zn

    lensemble des entiers entre 0 et n-1, m

    uni des oprations daddition m

    odulo n et de m

    ultiplication mod n, cest un anneau

    A

    utre anneau: Z

    Si n=

    p premier, alors Z

    p est un corps: cest--dire que cest un anneau et pour tout lm

    ent non nul, il existe un inverse m

    odulaire

    A

    utres corps: Q, R

    , C

    vendredi 12 septembre 14

    Thorm

    e des restes chinois

    T

    h: Soit m,n deux entiers tels que pgcd(m

    ,n)=1

    f:(Z

    mn)

    (Zm

    )x(Zn) f(x)=

    (x mod m

    , x mod n) est

    un isomorphism

    e danneau

    phi(m

    n)=phi(m

    )xphi(n)

    f -1(a,b)=

    an(n-1 m

    od m) +

    bm(m

    -1 mod n) m

    od mn

    vendredi 12 septembre 14

  • Exemple

    R

    soudre dans Z35 : x m

    od 5=3 et x m

    od 7=4

    f -1(3,4)=

    (3x7x(7-1 m

    od 5)+4x5x(5

    -1 mod 7)) m

    od 35

    1=

    (-2)x7+3x5, donc 5

    -1 mod 7=

    3 et 7-1 m

    od 5=3

    f -1(3,4)=

    (3x7x3+4x5x3) m

    od 35=123 m

    od 35=18

    A

    pplication: calculer rapidement 2

    23 mod 35

    2

    23 mod 5=

    23 m

    od 5=3

    2

    23 mod 7=

    25 m

    od 7=4

    f -1(3,4)=

    18

    vendredi 12 septembre 14R

    sidus quadratiques

    D

    f: x est un rsidu quadratique mod N

    est un carr m

    odulo N ssi il existe y tel que x=

    y2 m

    od N

    Soit p un nom

    bre premier im

    pair

    xZ

    p* est un rsidu quadratique ssi xp-1/2=

    1 mod p

    il y a (p-1)/2 rsidus quadratiques dans Z

    p*

    si p=

    3 mod 4, tout rsidu quadratique x a deux

    racines carres x(p+

    1)/4 mod p et -x

    (p+1)/4

    vendredi 12 septembre 14

    Gnration de

    nombres prem

    iers

    Problm

    e de primalit: savoir si un entier x est

    un nombre prem

    ier ou non

    C

    e problme a t prouv dans la classe de

    complexit P en 2003 (A

    grawal, K

    ayal, Saxena)

    C

    onstruire un test de primalit plus efficace

    vendredi 12 septembre 14A

    lgorithme de division par

    essai (Trial division)

    Entre: un entier n

    Sortie: listes des facteurs prem

    iers de n

    C

    omplexit:

    n oprations arithmtiques

    b=

    n, x=n, i=

    2

    T

    Q (x>

    1 et ib) faire:

    T

    Q (i divise x) affiche i, x=

    x/i, b=

    x

    i=

    i+1

    si x>

    1, affiche xvendredi 12 septem

    bre 14

  • Tests de primalits

    Test de Ferm

    at: pour tout b>0, b

    p-1=1 m

    od p

    Problm

    es: complexit grande et il existe des

    nombres de C

    armichael, non prem

    ier, qui vrifie ce test

    Test de Solovay-Strassen: pour tout b>

    0, b

    p-1/2=sym

    bole Legendre de x par rapport p

    Trs bien, m

    ais moins efficace que M

    iller-Rabin

    vendredi 12 septembre 14Test de M

    iller-Rabin

    Entre: N

    entier de n bits et k un entier

    Sortie: pseudo-prim

    alit de N

    C

    omplexit: O

    (kn3)

    Si N

    =2, return prem

    ier

    Si N

    pair, return compos

    N

    =2

    st+1 avec t im

    pair

    Pendant k itrations, faire

    Prendre ala 0