Cours4-5
description
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