Académique Documents
Professionnel Documents
Culture Documents
& %
' $
Cryptologie
Science du chiffre
But : assurer la confidentialité des communications en présence
d’adversaires [1].
Slide 2
Cryptologie = cryptographie + cryptanalyse
Cryptographie : Cryptanalyse :
– à clé secrète (depuis l’antiquité) – à cryptogramme connu
– à clé publique (depuis 1976) – à clairs/cryptogrammes connus
& %
1
' $
Complexité
& %
' $
& %
2
' $
& %
3
' $
Complexité en temps
f (n) ≤ p(n)
& %
' $
Classes de complexité
4
' $
Transformation polynomiale
Slide 9 2. f (x) ∈ L2 ⇔ x ∈ L1 .
Lemme 2 Si L1 ∝ L2 et L2 ∝ L3 , alors L1 ∝ L3 .
& %
' $
Prouver la NP -complétude de Π
5
' $
& %
' $
& %
6
' $
Merkle Hellman–Présentation
Merkle Hellman–Présentation
Slide 14 Dans ce cas, résoudre le problème est (trop) facile. Il faut perturber le sac à
dos supercroissant de telle sorte que le n-uplet résultant ressemble à un
problème du sac à dos arbitraire en utilisant une multiplication modulaire.
n
On choisit un entier m > i=1 ai et un entier t premier avec m pour disposer
de t−1 modulo m.
On calcule bi ≡ ai × t mod m pour tout i, 1 ≤ i ≤ n et obtient un nouveau
n-uplet B : la clé publique.
Exemple : A = (12, 14, 27, 55, 120), m = 250, t = 61 et t−1 = 41.
B = (232, 104, 147, 105, 70).
& %
7
' $
Déchiffrer
Slide 15 La solution définit une suite unique p de n bits. Il s’agit aussi d’un bloc du clair
car toute solution p du problème pour B et c est égale à p :
& %
' $
Slide 16 Tout réseau (entier) possède une base, i.e. une famille libre b = (b1 , . . . , br ),
tel que le réseau L est l’ensemble des combinaisons linéaires entières de
vecteurs de b. Réciproquement, soit une base de r vecteurs de Zn
b = (b1 , . . . , br ) avec r ≤ n. L’ensemble des C.L. entières de ces r vecteurs
est un S.G. discret de Zn , donc un réseau noté L(b) :
r
L(b) = bi xi : x1 , . . . , xr ∈ Z
i=1
8
' $
On dit que b est Lovász-réduite si ses vecteurs sont relativement courts :
Définition 4 Soit L ⊆ Rn un réseau de base réduite (b1 , . . . , bn )
1. pour tout vecteur w non nul de L, ||b1 || ≤ 2(n−1)/2 ||w||
2. plus généralement, pour tout ensemble (a1 , . . . , at ) de vecteurs
linéairement indépendants de L,
& %
' $
Utilité
9
' $
Résolution de SSP
Un des vecteur trouvé par LLL est court (au sens de Lovász). Il faut donc
calculer une base réduite de V et vérifier si la base réduite contient un
vecteur qui et une solution au problème SSP.
& %
' $
Conclusion
& %
10
Cryptanalyse de Merke-Hellman (Odlyzko-LLL)
B. Martin
31/1/2002
> restart;
on construit le 5-uplet de base
> a:=[12,14,27,55,120];
a := [ 12, 14, 27, 55, 120 ]
> s:=0;
s := 0
> for i from 1 to 5 do s:=s+a[i] od;
s := 12
s := 26
s := 53
s := 108
s := 228
>
on calcule la somme des éléments et on choisit le module plus grand que la somme (228)
> m:=250;
m := 250
t est le multiplicateur
> t:=61;
t := 61
on calcule l'inverse de t par euclide étendu
> igcdex(t,m,'u','v');print(u,v);
1
41, -10
u est l'inverse de t, fixé à 31.
> b:=map(x->t*x mod m,a);
b := [ 232, 104, 147, 105, 70 ]
>
> readlib(lattice);
proc() ... end
on construit un sac à dos arbitraire :
> lattice([[1,0,0,0,0,-b[1]],[0,1,0,0,0,-b[2]],[0,0,1,0,0,-b[3]],[
0,0,0,1,0,-b[4]],[0,0,0,0,1,-b[5]],[0,0,0,0,0,+b[1]+b[3]]],'inte
ger');
[ [ 1, 0, 1, 0, 0, 0 ], [ 0, -1, 0, 1, 0, -1 ], [ -2, -1, 2, -1, 0, 0 ], [ 0, 1, 0, 1, -3, 1 ], [ -1, 0, 2, 1, 3, 2 ],
[ 0, 3, 0, 0, 1, -3 ] ]
le premier vecteur ligne est solution.
> lattice([[1,0,0,0,0,-b[1]],[0,1,0,0,0,-b[2]],[0,0,1,0,0,-b[3]],[
0,0,0,1,0,-b[4]],[0,0,0,0,1,-b[5]],[0,0,0,0,0,+b[1]+b[2]]],'inte
ger');
[ [ 1, 1, 0, 0, 0, 0 ], [ 0, -1, 0, 1, 0, -1 ], [ 0, 0, 3, -1, 0, 0 ], [ -1, 0, 0, 1, -3, 1 ], [ -1, 0, 1, 2, 3, 1 ],
[ -2, 2, -1, 0, 1, -3 ] ]
>
Page 1
11
' $
Problèmes co-NP
& %
' $
Le problème de la primalité
I NSTANCE : Un entier n
Q UESTION : n est-il premier ?
Slide 22
Il s’agit d’un problème algorithmique par excellence. Il a beaucoup été étudié
et est encore loin d’être résolu.
Il existe un grand nombre de critères permettant de vérifier si un entier est
premier.
√
Remarque : Le crible d’Eratosthene en O( n) n’est pas polynomial. En effet,
sa complexité en temps n’est pas polynomiale en la longueur de l’entrée, qui
est logn. Il est appelé pseudo polynomial.
& %
12
' $
Le test de Lucas
n−1
Théorème 3 n est premier ssi ∃g ∈ tel que g n−1 ≡ 1( mod n) et g p ≡ 1( mod n)
pour tout p facteur premier de n − 1.
si n = 2 alors accepte ;
si n = 1 ou n > 2 est pair alors rejette ;
si n > 2 est impair alors choisir x, 1 < x < n ;
Slide 24 vérifier si xn−1 ≡ 1( mod n) ;
k
deviner une factorisation de n − 1, 1 pi ;
k
vérifier si n − 1 = 1 pi ;
pour 1 ≤ i ≤ k faire
n−1
vérifier si pi est premier et x pi ≡ 1( mod n) ;
fpour
accepte si aucun test n’est faux.
& %
13
' $
Et le complémentaire de Primalité ?
Quelques rappels
Indicatrice d’Euler
On appelle indicatrice d’Euler d’un entier n et on note ϕ(n) le nombre
d’entiers compris entre 1 et n qui sont premiers avec n [7].
1
ϕ(n) = (pαp − pαp −1 ) = n (1 − )
p
p|n,p premier p|n
14
' $
Théorème de Fermat-Euler
Slide 27
qui généralise le petit théorème de Fermat :
mp−1 ≡ 1 mod p
& %
' $
Présentation de RSA
15
' $
& %
' $
Références
[1] A. Beutelspacher. Cryptology. The American Mathematical Society, 1994.
[2] G. Brassard. A note on complexity and cryptography. IEEE Trans. on Inform. Theory, IT-25 :232–233, 1979.
[3] A.M. Cohen, H. Cuypers, and H. Sterk. Some tapas of computer algebra. Springer, 1999.
[4] S. Cook. The P versus NP problem. Clay Mathematics Institute.
[5] W. Diffie and M.E. Hellman. New directions in cryptography. IEEE Trans. on Inform. Theory, 22(6) :644–654, 1976.
[6] M.R. Garey and D.S. Johnson. Computers and intractability. Freeman, 1979.
[7] N. Koblitz. A course in number theory and cryptography. Graduate texts in mathematics. Springer Verlag, 1987.
[8] R. Merkle and M. Hellman. Hiding information and signatures in trapdoor knapsacks. IEEE Transactions on Information Theory, IT-24 :525–530, 1978.
[9] 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.
Slide 30 [10] R.L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and public key cryptosystems. Comm. of the ACM, 21(2) :120–126,
1978.
[11] G. Zémor. Cours de cryptographie. Cassini, 2000.
& %
16