SlideShare une entreprise Scribd logo
1  sur  130
Télécharger pour lire hors ligne
SÉCURITÉ DES
RÉSEAUX
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
Objectif
Présentation des problèmes et des solutions liés à
la sécurité de l’Information dans les
Réseaux
Cryptologie
Protocoles
Architectures
Programme
• Cryptologie
– Cryptologie « traditionnelle »
– Cryptologie « contemporaine »
– Cryptologie « futuriste »
• Protocoles
– Authentification
– Intégrité
• Non falsification
• Non répudiation
– Signatures électroniques
– Certification
– Notarisation
Master Informatique Sécurité des Réseaux 1
© Richard G. Terrat
Janvier 2009
Définitions
• Cryptologie
– La science du secret
– Composée de
• Cryptographie écriture du secret
• Cryptanalyse analyse du secret
– Etymologie
• « crypto » : caché
• « logos » : science
• « graphie » : écriture
• « analyse » : décomposition
Cryptologie « traditionnelle »
• Caractéristiques
– Scientifique et artistique
– Cryptage de textes en langage naturel
– Cryptographie et cryptanalyse « manuelles »
– Clefs privées
– Cryptage symétrique
– Cryptage basé sur la confusion et la diffusion
– Confidentialité basée sur l’indépendance probabiliste entre
message émis et message reçu
• Formalisation
– Théorie probabiliste de l’information : Shannon
Master Informatique Sécurité des Réseaux 2
© Richard G. Terrat
Janvier 2009
Cryptologie « contemporaine »
• Caractéristiques
– Purement mathématique
– Cryptage de toute source symbolique
– Cryptographie et cryptanalyse informatiques
– Clefs publiques
– Cryptage asymétrique
– Confidentialité basée sur les fonctions à sens unique à trappes
– Authentifications facilitées
• Formalisation
– Théorie de l’information basée sur la complexité : Kolmogorov
Cryptologie « futuriste »
• Caractéristiques
– Cryptage utilisant la physique quantique
– Secret basée sur la lecture destructrice du message
– Coût très élevé de la transmission
– Cryptanalyse utilisant l’informatique quantique
• Formalisation
– Physique quantique
Master Informatique Sécurité des Réseaux 3
© Richard G. Terrat
Janvier 2009
Protocoles
• Authentifications
– Emetteur Récepteur Message
• Intégrité
– Non falsification émetteur
– Non répudiation récepteur
 signatures électroniques
• Certification
• Notarisation
Cryptanalyse Activités
• Décrypter un message sans la clef
 espionnage
• Trouver la clef de cryptage ou de décryptage
• Falsifier un message
• Falsifier une identité (émetteur ou récepteur)
• Falsifier une communication
 man in the middle
Master Informatique Sécurité des Réseaux 4
© Richard G. Terrat
Janvier 2009
Cryptanalyse Niveaux
• Le cryptanalyste dispose de
– un (ou plusieurs) message(s) crypté(s)
– un (ou plusieurs) couple(s) de message(s) en clair &
crypté(s)
– La possibilité de choisir des messages et de les crypter
textes choisis
Bibliographie scientifique
• Codage, cryptologie et applications - Bruno Martin - Presses
Polytechniques et Universitaires Romandes - 2004
• Malicious Cryptography - Adam L. Young - Wiley Publishing Inc.,
Indianapolis, Indiana - 2004
• Cryptographie Appliquée - Bruce Schneier - International Thomson
Publishing France - 1997
• Cryptographie : Théorie et Pratique - Douglas Stinson - International
Thomson Publishing France - 1996
• Cryptography and secure communications - Man Young Rhee - Mc
Graw Hill - 1994
• Cryptologie contemporaine - Gilles Brassard - Masson - 1993
• Compression et cryptage en informatique - Xavier Marsault - Hermes -
1992
Master Informatique Sécurité des Réseaux 5
© Richard G. Terrat
Janvier 2009
Bibliographie généraliste
Historique
• La science du secret - Jacques Stern - Editions Odile Jacob - 1998
• Histoire des codes secrets - Simon Sigh - JC Lattes - 1998
Pratique
• Sécurité informatique - Laurent Bloch, Christophe Wolfhugel -
Eyrolles - 2007
• Tableaux de bord de la sécurité réseau - Cédric Llorens, Laurent
Levier, Denis Valois - Eyrolles - 2006
Sommaire
I. Cryptologie traditionnelle p. 7
II. Cryptologie contemporaine p. 57
III.Cryptologie futuriste p. 95
Master Informatique Sécurité des Réseaux 6
© Richard G. Terrat
Janvier 2009
I
CRYPTOLOGIE
traditionnelle
Sommaire
1. Les fondements p. 9
2. Confusion & Diffusion p. 21
3. Cryptages composés p. 39
Master Informatique Sécurité des Réseaux 7
© Richard G. Terrat
Janvier 2009
Master Informatique Sécurité des Réseaux 8
© Richard G. Terrat
Janvier 2009
I. 1
Les fondements
1. Modèle
2. Entropies
3. Confidentialité parfaite
4. Distance d’unicité
Sommaire
Master Informatique Sécurité des Réseaux 9
© Richard G. Terrat
Janvier 2009
1. Modèle
Ek Dk’
yx x
Cryptanalyse
passiveactive
Cryptographie
Gestion des clés
texte
en clair
texte
en clair
(en)cryptage
clé k
Cryptogramme décryptage
clé k’
Système cryptographique
• <P, C, K ; E, D>
– P, C, K ensembles finis
– E : P x K → C
– D : C x K → P
• Notations
– x ∈ P y ∈ C k, k’ ∈ K
– y = E (x,k) x = D (y,k’)
– k’ = f(k) k = f-1(k’) f bijective
Master Informatique Sécurité des Réseaux 10
© Richard G. Terrat
Janvier 2009
x
y
k
k’
y = E (x,k)
x = D (y,kʼ)
kʼ = f(k)
k = f-1(kʼ)
Propriétés
- D (E(x,k),k’) = x
- E(x1,k1) = E(x2,k2) ⇒
(k1=k2 ⇒ x1=x2)
P
C K
Propriétés
• pour E et D connus
– y est déterminé par x et k
– x est déterminé par y et k’
en général k est indépendant de x
on souhaite que y soit indépendant de x
Master Informatique Sécurité des Réseaux 11
© Richard G. Terrat
Janvier 2009
2. Entropies
• Entropies brutes
– H(P) entropie de P
– H(C) entropie de C
– H(K) entropie de K
• Entropies conditionnelles
– H(C/K,P) = 0 C déterminé par P et K
– H(P/K,C) = 0 P déterminé par C et K
– H(K,P) = H(K) + H(P) K et P indépendants
Propriétés
H(K/C) = H(K) + H(P) - H(C)
• Preuve
Rappel H(X,Y) = H(Y,X) = H(Y/X) + H(X)
H(K,P,C) = H(C/K,P) + H(K,P) = H(K) + H(P)
H(K,P,C) = H(P/K,C) + H(K,C) = H(K,C)
H(K/C) = H(K,C) - H(C) = H(K) + H(P) - H(C)
Master Informatique Sécurité des Réseaux 12
© Richard G. Terrat
Janvier 2009
3. Confidentialité parfaite
• <P, C, K ; E, D >
confidentialité parfaite :
P et C indépendants : H(P/C) = H(P) :
∀x∈P ∀y∈C p(x/y) = p(x)
• C(k) = {E (x,k), x∈P} ensemble des textes
cryptés avec k
p(y) = p(k)• p(Dk (y))
{k|y!C(k)}
"
p(y /x) = p(k)
{k|x= Dk (y)}
!
p(x /y) =
p(x) • p(y /x)
p(y)
Confidentialité parfaite
∀ x ∈ P ∀ y ∈ C
p(y/x) = p(y)
∀ x ∈ P ∀ y ∈ C
p(x/y) = p(x)
⇒
Master Informatique Sécurité des Réseaux 13
© Richard G. Terrat
Janvier 2009
Théorème 1
• <P, C, K ; E, D > assure une confidentialité parfaite ⇒
H(K) ≥ H(P)
• Preuve
H(P/C) = H(P,C) - H(C)
H(P,C) = H(K,P,C) - H(K/P,C)
H(P/C) ≤ H(K,P,C) - H(C) = H(P,K,C) - H(C) =
H(P/K,C) + H(K,C) - H(C) = H(K,C) - H(C) =
H(K/C) ≤ H(K)
H(P/C) = H(P) hypothèse de confidentialité parfaite
H(P) ≤ H(K)
Théorème 2
• <P, C, K ; E, D > assure une confidentialité parfaite ⇒
|K| ≥ |C|
• Preuve
∀ y ∈ C p(y) > 0 sinon on retire y de C
confidentialité parfaite ⇒
∀ x ∈ P ∀ y ∈ C p(y/x) = p(y) > 0
 à tout message en clair on peut faire correspondre tout
cryptogramme possible
∀ x ∈ P ∀ y ∈ C ∃ k ∈ K y = E (x,k)
Master Informatique Sécurité des Réseaux 14
© Richard G. Terrat
Janvier 2009
∀ x ∈ P ∀ y1, y2 ∈ C ∀ k1, k2 ∈ K
y1 = E (x, k1) y2 = E (x, k2)
y1 ≠ y2 ⇒ k1 ≠ k2 E est une fonction
 pour chaque texte en clair x, tous les cryptogrammes y
doivent être différents, donc toutes les clefs doivent être
distinctes
 il est possible que y = E(x, k1) = E(x, k2) k1 ≠ k2
 un même texte en clair peut être crypté avec 2 clefs différentes
et donner le même cryptogramme
 il doit y avoir au moins autant de clefs que de
cryptogrammes
⇒ |K| ≥ |C|
C Q F D
Théorème 3
• <P, C, K ; E, D > |K|=|C|=|P|
assure une confidentialité parfaite ⇔
– k n’est utilisée qu’une seule fois
– ∀k∈K p(k) = 1/|K|
– ∀x∈P, ∀y∈C, ∃ k unique, Ek(x) = y
• Preuve …
Master Informatique Sécurité des Réseaux 15
© Richard G. Terrat
Janvier 2009
• Hypothèse : confidentialité parfaite
|C| = | {E (x,k) | x ∈ P k ∈ K } | ≤ |K|
 il existe au moins une clef k qui crypte un x en un y
|C| = |K| ⇒ | {E (x,k) | x ∈ P k ∈ K } | = |K|
Il y a autant de clefs que de cryptogrammes
 Il n’existe qu’une seule clef k qui crypte un x en un y
Soit |K| = n , P = { xi | 1 ≤ i ≤ n } , y ∈ C et
ki | E (xi, ki) = y
 On appelle ki la clef qui crypte xi en y
p (xi /y) =
p (y /xi ) . p (xi )
p(y)
=
p (ki) . p (xi)
p(y)
p (xi /y) = p (xi)
 toutes les clefs de cryptage ont la même probabilité
p (ki) = p (y)
confidentialité parfaite
p (ki) = 1 / |K|
C Q F D
Master Informatique Sécurité des Réseaux 16
© Richard G. Terrat
Janvier 2009
• Réciproque
p (y) = p(k) p(D(y,k)) =
{k y!C(k)}
" p(k) p(D(y,k)) = p(k)
{k y!C(k)}
" =
1
K
p (y /x) = p (k) =
1
K
p (x /y) =
p (y /x) . p(x)
p(y)
= p(x)
une seule clef k utilisée
avec la probabilité 1 / |K|
C Q F D
4. Distance d’unicité
• Entropie d’un langage
– P vocabulaire
– L ⊆ P* langage sur P
– Exemplelangue anglaise
• H(P2) ≈ 3,9 bits
• H(L) ≈ 1,25 bits
H(L) = lim n!"
# !##
H(Pn
)
n
Master Informatique Sécurité des Réseaux 17
© Richard G. Terrat
Janvier 2009
• Redondance d’un langage
– Exemple L = langue anglaise
• V = {a, b, … z} |P| = 26
• H(L) ≈ 1,25 bits
• R(L) = 1 - 1,25/log226 ≈ 1 - 1,25/5 ≈ 0,75
– Expérience de Claude Shannon
• Compréhension d’un texte en retirant aléatoirement 75% des
lettres !
R(L) =1!
H(L)
log2 P
Distance d’unicité
• Théorème de Shannon
U est la plus petite valeur de n, nombre de lettres de y∈C,
telle que la clef k pour laquelle il existe x∈ P, y = E
(x,k) soit unique
U =
H(K)
R(L)log2 P
=
H(K)
log2 P ! H(L)
Master Informatique Sécurité des Réseaux 18
© Richard G. Terrat
Janvier 2009
y ! Cn
K (y) = k ! K " x ! Pn
E(x,k) = y{ }
Sn = p(y) (K(y) !1
y"C n
# ) = p(y) K(y) ! p(y)
y"C n
#
y"C n
# = p(y) K(y) ! 1
y"C n
#
H(K /Cn
) = H(K) + H(Pn
) ! H(Cn
)
H(Pn
) ! n HL = n (1" RL ) log2 P
H(Cn
) ! n log2 C
H(K /Cn
) ! H(K) " n RL log2 P
K (y) : ensemble des clefs k décryptant
y sur un texte x de longueur n
|K(y)| - 1 : nombre de clefs « parasites » Sn : nombre moyen de clefs parasites
propriété de tout
système cryptographique
définition de la redondance
si n suffisamment grand
|C| = |P|
Preuve
H(K /Cn
) = p(y) H(K /y)
y!C n
"
! p(y) log2 K(y)
y"C n
#
! log2 p(y) K(y)
y"C n
#
= log2(Sn +1)
log2(Sn +1) ! H(K /Cn
) ! H(K) " n RL log2 P
Sn !
K
P
nRL
" 1
équivoque sur K sachant Cn
propriété de l’équivoque
inégalité de Jensen
propriété de Sn
établi précédemment
 nombre moyen de clefs parasites
quand les clefs sont équiprobables
Master Informatique Sécurité des Réseaux 19
© Richard G. Terrat
Janvier 2009
n0 !
log2 K
RL log2 P
n0 est la plus petite valeur de n telle que
Le nombre moyen de clefs parasites est nul
Exemple
log2(Sn +1) ! H(K /Cn
) ! H(K) " n RL log2 P
n RL log2 P ! H(K) " log2(Sn +1)
n0 !
H(K)
RL log2 P
dans le cas où les clefs sont équiprobables
Pour un cryptogramme de 25 lettres, en moyenne, un seul cryptage est possible
|P| = 26 |K| = 26! R(L) = 0,75 U = log226! / 0,75 . 4,7 ≈ 25
cryptage dʼun mot en langue anglaise par substitution mono-alphabétique
en supposant toutes les clefs équiprobables
Master Informatique Sécurité des Réseaux 20
© Richard G. Terrat
Janvier 2009
I. 2
Confusion & Diffusion
Sommaire
1. Cryptages par substitution
confusion
2. Cryptages par transpositions et
permutations
diffusion
3. Autres cryptages
Master Informatique Sécurité des Réseaux 21
© Richard G. Terrat
Janvier 2009
1. Cryptages par substitution
1.1 Cryptages mono-alphabétiques
1.2 Cryptages poly-alphabétiques
 Dans tout ce qui suit on suppose k’ = k sauf stipulation contraire
1.1 Cryptages monoalphabétiques
1.1.1 Cryptages « naïfs »
1.1.2 Cryptages additifs
1.1.3 Cryptages par généraux par substitution
1.1.4 Cryptages affines
1.1.5 Cryptanalyse
Master Informatique Sécurité des Réseaux 22
© Richard G. Terrat
Janvier 2009
1.1.1 Cryptages « naïfs »
• Cryptage de Polybe
P = {a,b, … z}
 les 25 lettres de l’alphabet latin (i et j identiques)
C = {1,2,3,4,5}2
 suite de 2 chiffres de 1 à 5
K = Ø
 pas de clef
E : P → C
D : C → P D = E-1
Polybe
(-205 -126)
1.1.2 Cryptages additifs
• Cryptage de César
– Principe
P = C = K = {a,b, … z} = Z26
∀ x ∈ P ∀ y ∈ C ∀ k,k’ ∈ K k = k’
Ek(x) = x + k mod 26 décalage de k lettres
Dk(y) = y - k mod 26 décalage inverse
 Jules César n’utilisait que la clef k = 3 !
Jules César
(-100 -44)
Master Informatique Sécurité des Réseaux 23
© Richard G. Terrat
Janvier 2009
Exemple
x = message 12-4-18-18-0-6-4
k = 3
y = phvvdjh 15-7-21-21-3-9-7
1.1.3 Cryptages généraux par
substitution
• Principe
P = C = {a,b, … z} = Z26
K = ∏ : Z26 → Z26
 ensemble des fonctions bijectives (permutations)
∀ x ∈ P ∀ y ∈ C ∀ π,π’ ∈ ∏ π’ = π-1
Eπ(x) = π (x)
Dπ’(y) = π’ (x)
 Il y a 26! clefs possibles considérable !
Master Informatique Sécurité des Réseaux 24
© Richard G. Terrat
Janvier 2009
Exemple
x = message 12-4-18-18-0-6-4
k = z y x … c b a
y = nvhhztv 13-21-7-7-25-19-21
1.1.4 Cryptages affines
• Principe
P = C = {a,b, … z} = Z26
K = {(a,b) ∈ Z26
2 | pgcd (a,26)=1 }
∀ x ∈ P ∀ y ∈ C ∀ (a,b) ∈ K
Ek(x) = a x + b mod 26
Dk(y) = (y-b)/a mod 26
 pour a=1, le cryptage est additif
 Ek doit être injective ⇒ pgcd (a,26) = 1
 Zp pour p premier est un corps ⇒
∀ a ∈ Zp pgcd (a,p) = 1
Master Informatique Sécurité des Réseaux 25
© Richard G. Terrat
Janvier 2009
Exemple
x = message 12-4-18-18-0-6-4
k = (7, 3)
y = 7x + 3 mod 26
y = jfzzdtf 9-5-25-25-3-19-5
 Pour décrypter :
x = (y-3)/7 mod 26 = (y-3) 7-1 mod 26
7-1 mod 26 = 15 (7.15 = 105 = 1 mod 26 )
x = 15 (y-3) mod 26 = 15y - 45 mod 26 =
15y - 19 mod 26
1.1.5 Cryptanalyse
• Analyse des fréquences
Al-Kindi philosophe, mathématicien, astronome, médecin,
musicologue et … linguiste, auteur de 290 livres
 Manuscrit sur le déchiffrement des messages cryptographiques
(découvert en 1987 dans les archives ottomanes d’Istambul)
– Principe
• La fréquence des lettres reste invariante entre
le texte en clair et le cryptogramme
• On classe les lettres du cryptogramme
selon leur fréquence
• On établit une corrélation des lettres les plus
fréquentes avec une table de fréquence type du langage à crypter
‫ﻭﺏﺃ‬ ‫ﻑﺱﻭﻱ‬ ‫ﺏﻭﻕﻉﻱ‬ ‫ﻥﺏﺍ‬ ‫ﻕﺍﺡﺱﺇ‬ ‫ﻱﺩﻥﻙﻝﺍ‬
Abu Yusuf Ya’qub ibn Is-haq ibn as-Sabbah
ibn Oòmran ibn Ismaïl Al-Kindi
(801-873)
Master Informatique Sécurité des Réseaux 26
© Richard G. Terrat
Janvier 2009
1.2 Cryptages polyalphabétiques
1.2.1 Cryptages par blocs
1.2.2 Cryptage matriciel
1.2.3 Cryptage à confidentialité parfaite
1.2.4 Cryptanalyse
1.2.1 Cryptages par blocs
• Origines XVième siècle
• Principe
P = C = K = {a,b, … z} m = Z26
m
 cryptage par blocs de m lettres avec une
clef alphabétique de longueur m
∀ (x1, x2, … xm) ∈ P ∀ (y1, y2, … ym) ∈ C
∀ (k1, k2, … km) ∈ K
Ek (x1, x2, … xm ) = (x1+k1, x2+k2, … xm+km)
Dk (y1, y2, … ym ) = (y1-k1, y2-k2, … ym-km)
 cryptage additif par blocs
 + & - sont définis mod 26
Leon Batista Alberti
(1404 - 1472)
Jean Trithème
(1462 - 1516)
Giovanni Battista
Della Porta
(1535 - 1615)
Blaise de Vigenère
(1523 - 1596)
Master Informatique Sécurité des Réseaux 27
© Richard G. Terrat
Janvier 2009
Exemple
x = message 12-4-18-18-0-6-4
k = cle 2-11-4
y = opwulkg 14-15-22-20-11-10-6
 des lettres identiques de x donnent des lettres
différentes de y
 l’analyse des fréquences brutes est inapplicable
 du fil à retordre pour le cryptanalyste
1.2.2 Cryptage matriciel
• Principe
P = C = {a,b, … z} m = Z26
m
K = {M (m,m) | M matrice inversible dans Z26}
∀ x = (x1, x2, … xm) ∈ P ∀ y = (y1, y2, … ym) ∈ C
∀ k = (k1, k2, … kn) ∈ K
Ek (x) = x . k
Dk (y) = y . k-1
Lester S. Hill
(1891-1961)
Master Informatique Sécurité des Réseaux 28
© Richard G. Terrat
Janvier 2009
Exemple
k =
11 8
3 7
!
"
#
$
%
&
x = et = 4 19( )
y = 4 19( ) •
11 8
3 7
!
"
#
$
%
& = 23 9( )
k!1
=
7 18
23 11
"
#
$
%
&
' k • k!1
=
1 0
0 1
"
#
$
%
&
'
x = 23 9( ) •
7 18
23 11
!
"
#
$
%
& = 4 19( )
1.2.3 Cryptage à confidentialité
parfaite
• Principe
P = C = K = {0, 1}n = Z2
n
∀ x = (x1, x2, … xn) ∈ P ∀ y = (y1, y2, … yn) ∈ C
∀ k = (k1, k2, … kn) ∈ K
Ek (x) = x ⊕ k
Dk (y) = y ⊕ k = x ⊕ k ⊕ k = x
 cryptage du téléphone rouge (Washington - Moscou)
confidentialité parfaite pour une clef jetable aussi longue que
le message
Gilbert Vernam
(1890-1960)
Master Informatique Sécurité des Réseaux 29
© Richard G. Terrat
Janvier 2009
Exemple
x = message code telex (Emile Baudot)
11100 00001 00101 00101 00011 11010 00001
k = richard
01010 00110 01110 10100 00011 01010 01001
y = pujz-t©
10110 00111 01011 10001 00000 10000 01000
1.2.4 Cryptanalyse
• Historique
– Les cryptages monoalphabétiques ont résisté à la
cryptanalyse pendant près de 10 siècles (de Jules César
à Al Kindi)
– Il a fallu attendre 5 siècles pour que les nouveaux
cryptages polyalphabétiques prennent le relais
– Il faudra encore 4 siècles pour les cryptanalystes en
viennent à bout grâce à deux techniques
Le test de Kasisky souvent attribué à Babbage
Le test de Friedman
Master Informatique Sécurité des Réseaux 30
© Richard G. Terrat
Janvier 2009
• Idée
 un cryptage polyalphabétique est équivalent à m cryptages
monoalphabétiques avec une répétition périodique de période m
– Recherche de la longueur de la clef m
• recherche de séquences identiques de longueur 3 dans le
cryptogramme
 les séquences identiques de longueur 2 ont une probabilité trop forte
d’apparaître au hasard
• distances de ces séquences : d1, d2, …
• m divise pgcd (d1, d2, …) estimation
– Cryptanalyse des m cryptages monoalphabétiques
Charles Babbage
(1791-1871)
Le test de Kasisky 1863
Le test de Friedman 1920
• Idée
– P = C = {a, b,…z} = {a1, a2,…a26 }
– Indice de coïncidence d’un texte x : Ic (x)
• probabilité que 2 caractères de x (de longueur n) soient égaux
nombre de choix possibles de 2 caractères quelconques dans x
nombre de caractères ai dans x
nombre de choix possibles de 2 caractères ai dans x
Wolfe Frederick Friedman
(1891-1969)
C2
n
C2
ni
ni
Ic (x) =
C2
ni
i=1
26
!
C2
n
=
ni (ni "1)
i=1
26
!
n(n "1)
Master Informatique Sécurité des Réseaux 31
© Richard G. Terrat
Janvier 2009
• Indice de coïncidence d’un langage
pi probabilité de ai issue
de la table des fréquences
– exemples français 0,074
anglais 0,065
• Indice de coïncidence d’une chaîne de caractère
aléatoire
Ic (L) ! pi
2
i=1
26
"
Ic (t) =
1
26
! 0,038
n = |y| longueur du cryptogramme y
– estimation de la longueur de la clef m
 test de Kasiski
– partition du cryptogramme en sous-chaînes y1, y2, … de
longueur n/m
 colonnes d’un tableau en écrivant y en lignes de m lettres
– calcul de Ic (yi)
Méthode de cryptanalyse
Master Informatique Sécurité des Réseaux 32
© Richard G. Terrat
Janvier 2009
2. Cryptages par
transpositions et permutations
2.1 La scytale spartiate
2.2 Cryptage par transposition
2.3 Cryptage par permutation
2.4 Cryptages mixtes
2.5 Cryptanalyse
2.1 La scytale spartiate
• La scytale σκυτάλη (bâton)
– Principe
P = C = {a, b, …z }n = Z26
n
K =N
∀ x ∈ P ∀ y ∈ C ∀ k ∈ K
Ek (xij) = xji j ∈ [1..k]
Dk (yij) = yji i ∈ [1..k]
 le texte en clair est écrit en lignes de k colonnes
 le cryptogramme est relevé en colonnes
 ce cryptage est utilisé par Jules Verne dans voyage au centre de la
terre
(environ -500)
Master Informatique Sécurité des Réseaux 33
© Richard G. Terrat
Janvier 2009
2.2 Cryptage par transposition
• Exemple
x = ceci.est.un.message.
k = 4
y =
c e c i
. e s t
. u n .
m e s s
a g e .c..ma eeueg csnse it.s.
2.3 Cryptage par permutation
• Principe
P = C = {a, b, …z }n = Z26
n
K = ∏ : {1..n} → {1..n}
 ensemble des fonctions bijectives (permutations)
∀ x ∈ P ∀ y ∈ C ∀ π,π’ ∈ ∏ π’ = π-1
Eπ (x1, x2, …xn ) = (x π(1), xπ(2), …xπ(n) )
Dπ’ (y1, y2, …yn ) = (yπ’(1), yπ’(2), …yπ’(n) )
 équivalent à un cryptage de Hill avec une matrice K
(n,n) telle que ki,j = 1 si i = π(j)
= 0 sinon
Master Informatique Sécurité des Réseaux 34
© Richard G. Terrat
Janvier 2009
Exemple
x = c e c i . e s t . u n . m e s s a g e .
k = (4, 2, 1, 3)
y = i e c c t e . s . u . n s e m s . g a e
2.4 Cryptages mixtes
• Principe
P = C = {a, b, …z }n = Z26
n
K = {a, b, …z }m = Z26
m
 le texte clef k définit une permutation π et sa longueur m
définit une transposition
∀ x ∈ P ∀ y ∈ C ∀ k ∈ K
Ek (xij) = x(πj)i j ∈ [1..m]
Dk (yij) = yj(π’i) i ∈ [1..m] π’ = π-1
Giovanni Battista
Della Porta
(1535 - 1615)
Master Informatique Sécurité des Réseaux 35
© Richard G. Terrat
Janvier 2009
Transposition suivi de permutation
x = c e c i . e s t . u n . m e s s a g e .
k = s o i r
π(k) = (4, 2, 1, 3) m(k) = 4
1. transposition
2. permutation
y = i t . s . e e u e g c . . m a c s n s e
c e c i
. e s t
. u n .
m e s s
a g e .
s o i r
Permutation suivi de transposition
x = c e c i . e s t . u n . m e s s a g e .
k = s o i r
π(k) = (4, 2, 1, 3) m(k) = 4
1. Permutation
y1 = i e c c t e . s . u . n s e m s . g a e
2. transposition
y = i t . s . e e u e g c . . m a c s n s e
i e c c
t e . s
. u . n
s e m s
. g a e
Master Informatique Sécurité des Réseaux 36
© Richard G. Terrat
Janvier 2009
Propriétés
– Le cryptage par transposition T est idempotent
– Le cryptage par permutation P est idempotent
– Les cryptages P et T sont commutatifs
– Donc : le cryptage P x T est idempotent
 en fait une transposition est une permutation particulière
2.5 Cryptanalyse
• Principe
– Retrouver la permutation par « recollement »
– Analyse de la distribution des bi-grammes, tri-
grammes,…n-grammes
Master Informatique Sécurité des Réseaux 37
© Richard G. Terrat
Janvier 2009
3. Autres cryptages
• Il y en a des centaines
– Code Da Vinci
– Code Playfair
– Code Pigpen (l’enclos des cochons)
– Code « la Bible » (Michael Drosnin)
– Code ADFGVX
– et bien d’autres encore …
Master Informatique Sécurité des Réseaux 38
© Richard G. Terrat
Janvier 2009
I. 3
Cryptages composés
Sommaire
1. Composition de systèmes cryptographiques
2. Cryptages par blocs et en chaîne
3. Cryptage de Feistel
4. Réalisation de cryptages
Master Informatique Sécurité des Réseaux 39
© Richard G. Terrat
Janvier 2009
1. Composition de systèmes
cryptographiques
• Idée (Shannon) : sur-crypter
crypter un cryptogramme
• Systèmes endomorphiques C = P
S1 = < P, K1 ; E1 , D1 >
S2 = < P, K2 ; E2 , D2 >
• Composition de systèmes endomorphiques
S = S1 x S2 = < P, K ; E, D >
K = K1 x K2 K1 et K2 indépendants
E = E2 o E1 z = E2 (E1 (x, k1 ), k2 ) x, z ∈ P
D = D1 o D2 x = D1 (D2 (z, k’2 ), k’1 ) ki, k’i ∈ Ki
Propriétés
– Associativité (S1 x S2) x S3 = S1 x ( S2 x S3 )
 toute composition endomorphique est associative
– Commutativité S1 x S2 = S2 x S1
 toute composition endomorphique n’est pas
commutative
– Idempotence S2 = S
 beaucoup de compositions endomorphiques sont
idempotentes
Master Informatique Sécurité des Réseaux 40
© Richard G. Terrat
Janvier 2009
Itérations
– Sn est une itération de S
 si S idempotent, Sn n’a aucun intérêt
 Exemples : substitutions, permutations
 si S n’est pas idempotent Sn offre plus de sécurité que S
 Exemple : DES
• Propriété
S1 et S2 idempotents et commutent ⇒ S1 x S2 idempotent
Preuve
(S1 x S2 ) x (S1 x S2 ) = S1 x ( S2 x S1 ) x S2 =
S1 x ( S1 x S2 ) x S2 = (S1 x S1 ) x (S2 x S2 ) = S1 x S2
2. Cryptages par blocs et en
chaîne
2.1 Cryptages par blocs
2.2 Cryptages en chaîne
Master Informatique Sécurité des Réseaux 41
© Richard G. Terrat
Janvier 2009
2.1 Cryptage par blocs
u = x1 x2 … ∈ P*
v = y1 y2… ∈ C*
yi = E (xi, k )
 les mots successifs d’un même texte sont cryptés
de la même façon
cryptanalyse facilitée
E
u v
k
2.2 Cryptage en chaîne
zi = fi (k, x1, x2, …xi-1 )
yi = E (xi, zi)
 on construit une suite de clefs de cryptage zi à partie de la clef
initiale k et de la suite des messages en clair précédemment cryptés
E
f
x
y
z
k
Master Informatique Sécurité des Réseaux 42
© Richard G. Terrat
Janvier 2009
Système cryptographique en chaîne
< P, C, K, L ; F, E, D >
P, C, K : définitions habituelles
L : alphabet de séquence de clefs
F = (f1, f2, …) générateur de séquence
fi : K x Pi-1 → L
E : P x L → C
D : C x L → P
Exemple
P = C = K = L = Z26
z1 = k zi = fi (xi-1) i > 1
∀ x ∈ P ∀ y ∈ C ∀ p,q ∈ K
E (xi, zi ) = xi + zi mod 26
D (yi, zi) = yi + zi mod 26
Master Informatique Sécurité des Réseaux 43
© Richard G. Terrat
Janvier 2009
3. Cryptage de Feistel
• Principe
P = C = {0, 1 }n
K = {0, 1 }m
E : P x C x K → P x C
E (x, y, k) = (y, f (y, k) ⊕ x )
f est une fonction de composition de substitutions et
permutations
E utilise un y ∈ C et fournit un x ∈ P
Le cryptage de Feistel est donc défini de façon itérative
Horst Feistel
(1915-1990)
Réalisation
x ∈ P texte en clair de départ
x = (L, R ) texte x scindé en 2
k = (k1, k2,…kr) calcul de clefs de ronde
L0 = L R0 = R cryptogramme initial
pour i = 1, 2,…r : rondes d’itération
(Li, Ri) = (Ri-1, f (Ri-1, ki ) ⊕ Li-1 )
yi = (Li, Ri ) cryptogramme i
yL = Rr cryptogramme final
yR = Lr
Master Informatique Sécurité des Réseaux 44
© Richard G. Terrat
Janvier 2009
Construction d’une ronde
Li-1 Ri-1
ki
Li Ri
f
+
(Li, Ri) = (Ri-1, f (Ri-1, ki ) ⊕ Li-1 )
Décryptage
Ri Li
ki
Ri-1 Li-1
f
+
(Ri-1, Li-1) = (Li, f (Li, ki ) ⊕ Ri )
même circuit mais permutation de R & L
Master Informatique Sécurité des Réseaux 45
© Richard G. Terrat
Janvier 2009
Principe de la fonction f
substitutionspermutations
P
c
o
d
e
u
r
d
é
c
o
d
e
u
r
Construction d’un étage
E
S1 S2 S3 S8
P
Ri-1
ki
f(Ri-1, ki)
expansionf
Master Informatique Sécurité des Réseaux 46
© Richard G. Terrat
Janvier 2009
Modes d’utilisation
– ECB Electronic Codebook Mode
 cryptage par blocs
– CBC Block Chaining Mode
 cryptage en chaîne
– CFB Cipher Feedback Mode
 clef modifiée par le cryptogramme
– OFB Output Feedback Mode
 clef modifiée par la sortie
CBC Encryptage
IV = y0
x1
y1
xi
yi
Ek Ek
yi = Ek (xi ⊕ yi-1)
Master Informatique Sécurité des Réseaux 47
© Richard G. Terrat
Janvier 2009
CBC Décryptage
IV = y0
x1
y1
xi
yi
Dk Dk
Dk (yi ) = xi ⊕ yi-1
xi = Dk (yi ) ⊕ yi-1
yi = Ek (xi ⊕ yi-1)
CFB Encryptage
IV = y0
x1
y1
xi
yi
Ek Ek
yi = xi ⊕ Ek (yi-1)
Master Informatique Sécurité des Réseaux 48
© Richard G. Terrat
Janvier 2009
CFB Décryptage
IV = y0
x1
y1
xi
yi
Dk Dk
xi = Ek (yi-1) ⊕ yi
Dk = Ek ⇒ xi = Dk (yi-1) ⊕ yi
yi = xi ⊕ Ek (yi-1)
OFB Encryptage
IV = y0
x1
y1
xi
yi
Ek Ek
yi = Ek
i (y0) ⊕ xi
Master Informatique Sécurité des Réseaux 49
© Richard G. Terrat
Janvier 2009
OFB Décryptage
IV = y0
x1
y1
xi
yi
Dk Dk
Dk = Ek ⇒ xi = Dk
i (y0) ⊕ yi
yi = Ek
i (y0) ⊕ xi
Cryptanalyse
– force brute
• essais systématique de toutes les clefs
– cryptogrammes uniquement
• pas de solutions connues
– couples de messages en clair et cryptogrammes
• cryptanalyse différentielle
– Biham et Shamir (1991)
• cryptanalyse linéaire
– Matsui (1994)
Eli Biham
Adi Shamir
Master Informatique Sécurité des Réseaux 50
© Richard G. Terrat
Janvier 2009
4. Réalisations de cryptages
4.1 DES
4.2 IDEA
4.3 AES
4.1 DES
• Data Encryption Standard
– développé par IBM en 1970
– normalisé par le NBS en 1977
– basé sur le cryptage de Feistel
– texte en clair et cryptogramme de 64 bits
– composé de 19 étages
• 17 itérations (rondes)
• 2 transpositions
– clefs de 56 bits
• expansion de la clef pour les « rondes »
Master Informatique Sécurité des Réseaux 51
© Richard G. Terrat
Janvier 2009
Cryptage
T
it1
it2
it16
Échange G↔D
T-1
transposition
Itérations de Feistel
transposition inverse
expansion
64 bits
64 bits
clef
56bits
…
…
…
…
…
…
…
…
…
…
…
…
…
…
……………
lsbmsb
↑
Décryptage
T
it1
it2
it16
Échange G↔D
T-1
transposition
Itérations de Feistel
transposition inverse
expansion
64 bits
64 bits
clef
56bits
…
…
…
…
…
…
…
…
…
…
…
…
…
…
……………
msblsb
↓
Master Informatique Sécurité des Réseaux 52
© Richard G. Terrat
Janvier 2009
Triple DES
• Faiblesse de la clef de 56 bits
• Compatibilité avec le DES
DES1 DES2 DES3
clef de 168 bits
→ ← →clef k de 56 bits
k k k
4.2 IDEA
• International Data Encryption Standard
– Issu de PES Xueja Lai & James Massey
Proposed Encryption Standard 1990
– Censé résister à la cryptanalyse différentielle (faiblesse
du DES)
– Utilisé pour
• PGP Pretty Good Privacy
• openSSL Secure Socket Level
Master Informatique Sécurité des Réseaux 53
© Richard G. Terrat
Janvier 2009
Principe
– Cryptage par blocs de 64 bits
– Clefs de 128 bits
– Cryptage itératif en 8 « rondes »
– Utilisation d’opérations simples à câbler
• addition modulo 2 ⊕
• addition modulo 16
• produit modulo 216 + 1 
+
Une « ronde »
+

+
+ +



+ +
+ +
+
+
x1 x2 x3 x4
y1 y2 y3 y4
k1 k2 k3 k4
k5
k6
Master Informatique Sécurité des Réseaux 54
© Richard G. Terrat
Janvier 2009
Cryptage
it1
it2
it8
+ + 
k1 k2 k3 k4
4 x 16 bits
4 x 16 bits
…………………………
4.3 AES
• Advanced Encryption Standard
– Appel d’offres lancé par le NIST en 1997
• National Institute of Standards and Technology
pour remplacer le DES et résister aux
cryptanalyse différentielle
cryptanalyse linéaire
– Choix d’AES le 2 Octobre 2000
– Auteurs Daemen & Rijndael
Master Informatique Sécurité des Réseaux 55
© Richard G. Terrat
Janvier 2009
Principe
• Cryptage de blocs de 32 bits
– Opérations définies au niveau de l’octet
• octet : élément du corps de Galois F28
• F28 : polynômes dans F2 modulo 1+x+x3+x4+x8
• mot : polynôme à coefficients dans F28
• mot de 32 bits : polynôme modulo x4+1
• Produit défini modulo x4+1 par a(x) tel que
p(x) = a(x) mod (x4+1) inversible
Master Informatique Sécurité des Réseaux 56
© Richard G. Terrat
Janvier 2009
II
CRYPTOLOGIE
« contemporaine »
Sommaire
1. Les fondements p. 59
2. Les protocoles simples p. 77
Master Informatique Sécurité des Réseaux 57
© Richard G. Terrat
Janvier 2009
Master Informatique Sécurité des Réseaux 58
© Richard G. Terrat
Janvier 2009
II. 1
Les fondements
Sommaire
1. Transmission de clefs
2. Confidentialité calculatoire
3. RSA
Master Informatique Sécurité des Réseaux 59
© Richard G. Terrat
Janvier 2009
1. Transmission de clefs
1.1 Les « puzzles » de Ralph Merkle
1.2 Le protocole de Diffie-Hellman
1.3 Les clefs collectives
1.1 Les « puzzles » de Ralph Merkle
– première idée de transmission publique
– rien n’est caché à l’observateur
 l’espionnage est rendu difficile grâce à la complexité
– Ralph C. Merkle
• étudiant en physique à l’université de Berkeley (CA) en 1974
• élève de Lance Hoffman en cryptologie
• devoir de fin d’année : communications privées par des canaux
peu sûrs
 obtient une mauvaise note due à l’incompréhension de
Lance Hoffman
 Pionnier de la cryptographie à clef publique
Ralph C. Merkle
(1952)
Master Informatique Sécurité des Réseaux 60
© Richard G. Terrat
Janvier 2009
Le protocole
• Le puzzle en clair
– Alice envoie à Bob un million de puzzles tous différents,
non ordonnés par leur numéro et cryptés chacun avec une
clef différente de 20 bits non transmise
– Bob cryptanalyse un puzzle pris au hasard puis
envoie à Alice le numéro de ce puzzle en clair
– La clef transmise est celle contenue dans ce puzzle
 Eve espionne le dialogue entre Alice et Bob !
000…000 n° du puzzle clef à transmettre « remplissage »
128 bits à zéro
20 bits
Cryptanalyse
• Méthode
• par recherche exhaustive de la clef de 20 bits
• la clef est trouvée quand on obtient les 128 zéros de
tête du puzzle en clair
• il faut tester 220 (≈ 106 ) clefs possibles
• pour 100µs par clef → ≈ 1 minute par puzzle
– Bob cryptanalyse un seul puzzle
… ce qui lui prend environ 1 minute
– Eve doit cryptanalyser 106 puzzles
… ce qui lui prend environ …1 an !
Master Informatique Sécurité des Réseaux 61
© Richard G. Terrat
Janvier 2009
1.2 Le Protocole de Diffie-Hellman
• Principe 1976
– Alice et Bob se transmettent publiquement 2
nombres a et p tels que
• p est un nombre premier
• a est premier avec p
– Alice choisit un nombre secret x
puis transmet à Bob ax = ax mod p
– Bob choisit un nombre secret y
puis transmet à Alice ay = ay mod p
– Alice calcule ay
x mod p
– Bob calcule ax
y mod p
 la clef transmise est k = ay
x mod p = ax
y mod p
Whitfield Diffie
(1944)
Martin Hellman
(1946)
AliceAlice réseau public BobBob
x a, p y
ax mod p ay mod p
ay mod p ax mod p
(ay mod p)x mod p (ax mod p)y mod p
= =
ayx mod p axy mod p
clef transmise
EveEve
Master Informatique Sécurité des Réseaux 62
© Richard G. Terrat
Janvier 2009
Propriété
(ay mod p)x mod p = (ay mod p)x mod p
– la fonction
z = ax mod p est difficilement inversible
x = loga z mod p est appelée logarithme discret
elle est difficilement calculable
– Eve ne « voit » que ax mod p (et ay mod p)
 elle ne peut calculer ni x ni y
 elle ne peut calculer la clef
Attaque du « (wo)man in the middle »
AliceAlice BobBob
x w z y
ax mod p ay mod p
ax mod p ay mod p
aw mod p az mod p
aw mod p az mod p
axw mod p ayz mod p
awx mod p azy mod p
EveEve
Master Informatique Sécurité des Réseaux 63
© Richard G. Terrat
Janvier 2009
1.3 Clefs collectives
• Sécuriser un accès par plusieurs clefs détenues
par des personnes différentes
• Protocole de Adi Shamir 1978
– k clef maîtresse ouvrant l’accès
 personne ne possède k
– n nombre de personnes nécessaires
pour obtenir l’accès
– construction d’un polynôme de degré n-1
y = p(x) = an-1 xn-1 + an-2 xn-2 + … a2 x2 + a x + k
– distribution de clefs partielles
ki = (xi, yi) yi = p(xi)
 couples de points du graphe de y = p(x)
Adi Shamir
Propriétés
• n points déterminent les n coefficients d’un
polynôme de degré n-1
– résolution d’un système de n équations à n inconnues
– n clefs partielles ki permettent de déterminer la clef
maîtresse k
• raffinement du protocole
– certaines personnes peuvent posséder plusieurs clefs
partielles
– hiérarchie de clefs hiérarchie de confiance
Master Informatique Sécurité des Réseaux 64
© Richard G. Terrat
Janvier 2009
2. Confidentialité calculatoire
2.1 Confidentialités parfaite et calculatoire
2.2 Fonctions à sens unique
2.3 Fonctions à sens unique avec brèche secrète
2.1 Confidentialités parfaite et
calculatoire
• Confidentialité parfaite
– difficile à mettre en œuvre
• clef jetable
• contraintes sur la distribution probabiliste des clefs
– en général pas indispensable
• Confidentialité calculatoire
– la cryptanalyse est difficile au sens de la complexité
algorithmique
Master Informatique Sécurité des Réseaux 65
© Richard G. Terrat
Janvier 2009
2.2 Fonctions à sens unique
• Définition
– mathématiquement inversibles
– mais la fonction inverse est difficile à calculer
cette difficulté est souvent une conjecture
cf. second principe de la thermodynamique
– l’inversion devient facile par la connaissance
d’un secret (ou brèche)
 fonction à brèche secrète trapdoor function
Exemple 1 x → ax mod p
Exponentiation de a modulo p bijective
p premier a primitif modulo p
– L’inverse est le logarithme discret mod n
P
NP
x
loga y mod p
ax mod p
y
Master Informatique Sécurité des Réseaux 66
© Richard G. Terrat
Janvier 2009
Exemple 2 p, q → p x q
Produit de deux nombres premiers p, q
– L’inverse est la factorisation d’un nombre
P
NP
p, q
p x q
n
Exemple 3 x → x a mod n
– Elévation à la puissance a mod n
ce n’est pas l’exponentiation !
– L’inverse est la racine aième modulo n
P
?
x
a√ y mod n
xa mod n
y
Master Informatique Sécurité des Réseaux 67
© Richard G. Terrat
Janvier 2009
2.3 Fonctions à sens unique avec
brèche secrète
Calcul de x = a√ y mod n
où y = xa mod n
x = y1/a mod n = ya-1
mod n
on pose b = a-1
x = yb mod n = (xa mod n)b mod n
= xab mod n
 Il faut trouver b tel que xab mod n = x
Retour vers le passé …
Le 18 Octobre 1640 Pierre Simon de Fermat écrit à son ami et
confident Bernard Frénicle de Bessy :
si p est premier alors ap - a est divisible par p
donc (ap -a) mod p = 0
Mais … il ne donne aucune preuve !
 cette propriété était connue en Chine pour a = 2
 elle a été démontrée en 1683 par Leibniz
si a est premier avec p ap-1 mod p = 1
ou encore ∀a ∈ NN ap mod p = a mod p
 cette propriété est appelée « le petit théorème de Fermat »
Pierre Simon de Fermat
(1601 - 1665)
Gottfried Wilhelm Leibniz
(1646 - 1716)
Master Informatique Sécurité des Réseaux 68
© Richard G. Terrat
Janvier 2009
Un siècle plus tard …
En 1740 Leonhard Euler (re)démontre le petit théorème
de Fermat
En 1760 il donne 2 généralisations
soit Zn* = { x ∈ Zn | pgcd (x,n) = 1 } et ϕ (n) = |Zn*|
 ϕ (n) est le nombre de nombres premiers avec n et < n
 ϕ (n) est appelé totient ou indicatrice d’Euler
1ère généralisation ∀ k ∈ Z
si a est premier avec n ak.ϕ(n) mod n = 1
2ème généralisation∀ k ∈ Z
si n = p x q , p et q premiers et si 0 ≤ a < n
akϕ(n) + 1 mod n = a
Leonhard Euler
(1707 - 1783)
Vers la brèche secrète …
G1 : ∀ k ∈ Z, pgcd (a, n) = 1 ⇒
ak.ϕ(n) mod n = 1 n’impose pas a < n
G2 : ∀ k ∈ Z, n = p x q , p et q premiers et
0 ≤ a < n ⇒ ak.ϕ(n) + 1 mod n = a
n’impose pas pgcd (a, n) = 1
G1 ⊄ G2 et G2 ⊄ G1
Master Informatique Sécurité des Réseaux 69
© Richard G. Terrat
Janvier 2009
Retour au présent
Trouver b tel que xab mod n = x
Il suffit que ab soit multiple de ϕ(n) + 1
a.b = k.ϕ(n) + 1 ⇒ a.b mod ϕ(n) = 1
⇒ b = a-1 mod ϕ(n)
 ϕ(n) va servir de brèche secrète
 ϕ(n) permet de calculer b en temps polynomial par
l’algorithme d’Euclide étendu
 conjectures :
 ϕ(n) nécessite de connaître la factorisation de n
 la factorisation de n = p x q est difficile
La brèche de la fonction y → a√ y mod n
P
NP
x, a, n
x = a√ y mod n
xa mod n = y
y, a,
n = p x q
P
brèche
secrète
n
Master Informatique Sécurité des Réseaux 70
© Richard G. Terrat
Janvier 2009
Cryptographie utilisant une fonction à
brèche secrète
P
NP
x
y
P
+
brèche
secrète
• Propriétés tout est public sauf la brèche
la brèche ne circule jamais sur le réseau
contrairement à une clef privée
3. Cryptographie RSA
Ronald Rivest, Adi Shamir, Leonard Adleman
Master Informatique Sécurité des Réseaux 71
© Richard G. Terrat
Janvier 2009
3.1 Principes
3.2 Mise en œuvre
3.3 Choix des facteurs premiers
3.4 Tests de primalité
3.5 Choix des clefs
3.6 Cryptage & décryptage
3.7 Cryptanalyse
3.1 Principes
Cryptage endomorphe C = P = {0, 1}n
n = p x q p et q premiers
∀ x ∈ P ∀ y ∈ C ∀ e, d ∈ Zn
En,e : P → C y = xe mod n
Dn,d : C → P x = yd mod n
avec d.e mod ϕ(n) = 1
 n et e sont publics et (n,e) est la clef publique
 p et q sont secrets
 ϕ(n) est la brèche secrète et d la clef secrète
Master Informatique Sécurité des Réseaux 72
© Richard G. Terrat
Janvier 2009
3.2 Mise en œuvre
Détenteur du secret
• choisit 2 nombres premiers p et q de grande taille (au moins
300 bits)
• calcule n = p x q et ϕ(n) = (p-1) x (q-1)
• choisit e premier avec ϕ(n)
• calcule d = e-1 mod ϕ(n)
• publie n et e
• garde secret d (issu de ϕ(n))
 Rappel d ne circule jamais sur le réseau
aucun passage de clef n’est nécessaire
3.3 Choix des facteurs premiers
grands nombres premiers
– Densité des nombres premiers inférieurs à n
• π (n) ≈ 1 / ln(n) exemple : π (2500) ≈ 350
 pour des nombres de 500 bits, environ 1/350 sont premiers
– Choix au hasard puis test de primalité
• test de Fermat
– choisir au hasard a
– si an-1 mod n = 1 n est premier ou pseudo-premier
– ρ(n) densité des nombres pseudo-premiers inférieurs à n
– ρ(n) / π(n) → 0 quand n → ∞ théorème de Pomerance
– Exemples de nombres pseudo- premiers : les nombres de
Carmichael
 le test de Fermat n’est pas assez sûr
Master Informatique Sécurité des Réseaux 73
© Richard G. Terrat
Janvier 2009
3.4 Tests de primalité
• test de Solovay-Strassen
– choisir au hasard a
– test positif ssi a(n-1)/2 mod n = J (a/n)
 J est le symbole de Jacobi
– si n est composé la probabilité du test est < 1/2
 répétition du test pour différentes valeurs de a
• test déterministe en temps polynomial
Agrawal, Kayal et Saxena sept. 2004
www.math.princeton.edu/~annals/issues/2004/Sept2004/Agrawal.pdf
– Construction déterministe
• n = 1 + p1
λ1 + p2
λ2 + … pk
λk pi premiers λi ∈ N  {0}
• n premier ssi ∃ a ∈ Zn* a(n-1) mod n = 1 et ∀ p premier et p | (n-1)
a(n-1)p mod n ≠ 1
3.5 Choix des clefs
• Choix de e
– premier avec ϕ(n)
– test par l’algorithme d’Euclide
• Calcul de d = e-1 mod ϕ(n)
– Algorithme d’Euclide étendu polynomial
Master Informatique Sécurité des Réseaux 74
© Richard G. Terrat
Janvier 2009
3.6 Cryptage & décryptage
• Emetteur du cryptogramme
– Calcul de y = xe mod n polynomial
• Récepteur du cryptogramme
– Calcul de x = yd mod n idem
 simplifications possibles en conservant
p, q, d mod (p-1), d mod (q-1), q-1 mod p et
en utilisant le théorème des restes chinois
3.7 Cryptanalyse
– Tous les niveaux sont équivalents
 possibilité d’attaque par texte choisi
– Conjectures équivalentes
• les facteurs premiers de n ne peuvent être calculés en temps
polynomial
• ϕ(n) ne peut être calculé en temps polynomial
– Recherche de x connaissant y
• calcul de x = e√y mod n
• conjecture : x ne peut être calculé qu’avec d
– Recherche de d connaissant e
• calcul de d = e-1 mod ϕ(n)
• conjecture : d ne peut être calculé sans ϕ(n)
Master Informatique Sécurité des Réseaux 75
© Richard G. Terrat
Janvier 2009
Master Informatique Sécurité des Réseaux 76
© Richard G. Terrat
Janvier 2009
II. 2
Les protocoles simples
Sommaire
1. Authentification
2. Signature électronique
3. Certification
Master Informatique Sécurité des Réseaux 77
© Richard G. Terrat
Janvier 2009
1. Authentification
1.1 Principe
1.2 Par clef publique
1.3 Sans apport d’information
1.1 Principe
Virginie veut Vérifier
le secret de Paul
Paul peut Prouver
qu’il possède un
secret sans le révéler
… que Eve
Espionne
par un
dialogue…
Master Informatique Sécurité des Réseaux 78
© Richard G. Terrat
Janvier 2009
1.2 Par clef publique
Notations kx : clef publique de x
k’x : clef privée de x
kp
choix d’un défi x
y = Ekp
(x)
z = Dk’p
(y)
z
vérification z = x
1.3 Sans apport d’information
• La grotte secrète
A
B
C D
1. Virginie se place au point A
2. Paul entre dans la grotte
jusqu’au point C ou D
3. Virginie va au point B et
demande à Paul de sortir
soit de C soit de D
4. Si Paul ne peut s’exécuter
c’est qu’il n’a pas la clef
Paul prétend pouvoir ouvrir
la porte entre C et D mais
ne veut pas le montrer
Virginie veut vérifier ce que lui
dit Paul
Master Informatique Sécurité des Réseaux 79
© Richard G. Terrat
Janvier 2009
La grotte secrète : le « bluff »
Paul peut sortir du bon côté sans avoir la clef
si tous les choix sont équiprobables, Paul peut « bluffer »
Virginie avec p = 1/2
Virginie répète le test n fois
 la porte se referme automatiquement après chaque
test
Un usurpateur peut « bluffer » Virginie avec p = 1/2n
 n = 20 ⇒ p = 1/220 ≈ 10-6
Exemple : co-isomorphisme de graphes
G1 = < S ; R1 > G2 = < S ; R2 >
G1 ≡ G2 ssi
∃ π : S → S | (u,v) ∈ R1 ⇔ (π(u), π(v)) ∈ R2
 exemple
1
2 4 1
3 4 3
2
G1
G2π(G1,G2) = (3, 1, 4, 2)
≡
Master Informatique Sécurité des Réseaux 80
© Richard G. Terrat
Janvier 2009
Complexité
π( G1, G2 ) G1 ≡ G2
P
NP
Le protocole
construit π (H, Gi )
G1 & G2
construit π (G1, G2)
H
choisit j ∈ {1, 2 }
équiprobablement j
construit π (H, Gj )
π (H, Gj)
vérifie π (H, Gj )
publie garde secret
π (G1, G2)
Master Informatique Sécurité des Réseaux 81
© Richard G. Terrat
Janvier 2009
Le « bluff »
• Paul peut toujours construire π (H, Gj)
si j = i π (H, Gj ) = π (H, Gi)
 pas d’utilisation du secret
si j ≠ i π (H, Gj ) = π (H, Gi ) ° π (Gi, Gj )
 utilisation du secret nécessaire
• Un usurpateur peut « bluffer » Virginie, donc
construire π (H, Gj), si j = i
• Preuve itérée n fois ⇒ probabilité d’usurpation =
1/2n
Apport d’information
• Eve peut intercepter la suite des triplets
< Hk , jk, πk (Hk, Gjk
) >
• Mais ces triplets peuvent être construits par
n’importe qui
Preuve
G1 et G2 sont publics
H peut être construit avec π, j et Gj
 Les triplets n’apportent aucune information à Eve
Master Informatique Sécurité des Réseaux 82
© Richard G. Terrat
Janvier 2009
2. Signature électronique
2.1 Objectifs et Principe
2.2 Mécanisme
2.3 Formalisation
2.4 Inversion des clefs
2.5 Signature d’un message public
2.6 Signature d’un message secret
2.7 Falsification et Répudiation
2.8 Hachage
2.9 Signatures non reproductibles
2.1 Objectifs et Principe
• Objectifs : empêcher
– Falsification
– Répudiation
– Usurpation
• Principe
– Attacher à un message une information
• Indissociable du message
• Authentifiant son émetteur
• Assurant l’intégrité du message
• Vérifiable publiquement
• Non reproductible
Master Informatique Sécurité des Réseaux 83
© Richard G. Terrat
Janvier 2009
2.2 Mécanisme
– fonction de signature s = sig (k, x)
– prédicat public de vérification
ver (k, x, s) ⇔ s = sig (k, x)
x s
sigk
verk
2.3 Formalisation
< P, K, A ; S ; V >
P textes en clair
K clefs de signature
A signatures
S : P x K → A fonction de signature
V : P x K x A → { vrai, faux } vérification
Master Informatique Sécurité des Réseaux 84
© Richard G. Terrat
Janvier 2009
2.4 Inversion des clefs
• En-cryptages et Dé-cryptages inversibles
k : clef publique k’ : clef secrète
Dk’ (Ek (M)) = Dk (Ek’ (M)) = M
– Exemple : RSA E = D
2.5 Signature d’un message public
Alice
clef secrète k’a
Bob
public
ka
x, s y = Dka
(s)message : x
vérification
verka
(x, s) =
(x = y )
signature
s = sigka
(x) = Ek’a
(x)
Master Informatique Sécurité des Réseaux 85
© Richard G. Terrat
Janvier 2009
2.6 Signature d’un message secret
Alice
clef secrète k’a
Bob
clef secrète k’b
public
ka kb
y = Ekb
(s)
y s = Dk’b
(y)
signature
s = sigka
(x) = Ek’a
(x) vérification
verka
(x, s) =
(x = Dka
(s) )
message : x
2.7 Falsification et Répudiation
• Eve ne peut décrypter y
 seul Bob possède k’b
• Bob ne peut falsifier x
• Alice ne peut répudier x
• Eve ne peut signer x
 seule Alice peut produire Ek’a
(x)
• Cas d’un message secret
– La signature n’est pas publique
Master Informatique Sécurité des Réseaux 86
© Richard G. Terrat
Janvier 2009
2.8 Hachage
• Fonction de hachage cryptographique
P textes en clair
Z empreintes
h : P → Z fonction de hachage
z = h (x)empreinte de z
h : {0, 1}* → {0, 1}n
 z : longueur fixe
 h n’est pas injective
 h-1 n’existe pas
 attaque des anniversaires possible
Signature d’un message public
Alice
clef secrète k’a
Bob
public
h, ka
empreinte : z = h (x)
x, s z = Dka
(s)
signature
s = sigka
(x) = Ek’a
(z)
vérification
verka
(x, s) =
(z = h(x) )
message : x
Master Informatique Sécurité des Réseaux 87
© Richard G. Terrat
Janvier 2009
Falsification et répudiation
• x n’est pas secret
• vérification publique
 D, ka, h sont publics
• Falsification par Bob
Recherche d’un x’ tel que h(x’) = h(x)
collision faible
• Répudiation par Alice
Fabrication de x, x’ tels que h(x’) = h(x)
collision forte
• Eve ne peut signer x
 seule Alice peut produire Ek’a
(x)
Construction de la fonction de hachage
– h : {0, 1}* → {0, 1}n
– on utilise souvent une fonction
g : {0, 1}m → {0, 1}n m > n
– on calcule n pour rendre difficile l’attaque des
anniversaires
Master Informatique Sécurité des Réseaux 88
© Richard G. Terrat
Janvier 2009
Construction par cryptage
P = C = K = {0, 1}n
E : P x K → C
g : {0, 1}n x {0, 1}n → {0, 1}n
exemples
g (x, k) = e (x, k) ⊕ x
g (x, k) = e (x, k) ⊕ x ⊕ k
g (x, k) = e (x ⊕ k, k ) ⊕ x
g (x, k) = e (x ⊕ k, k ) ⊕ x ⊕ k
Construction de Merkle
g : {0, 1}m → {0, 1}n r = m - n > 1
x ∈ {0, 1}* l = |x|
u = 0i x |u| mod r = 0
 x est complété avec des « 0 » en tête
y = 0j l |y| mod (r-1) = 0
 l est complété avec des « 0 » en tête
y = t1 t2 … |ti| = r-1
 y est découpé en blocs de longueur r-1
Master Informatique Sécurité des Réseaux 89
© Richard G. Terrat
Janvier 2009
v = 1 w1 1 w2 …
« 1 » est ajouté devant chaque bloc
w = u 0r v
 w est composé de t blocs de longueur r
H est construite inductivement
H0 = 0n
Hi = g (Hi-1 wi) 1 ≤ i ≤ t
h = Ht
Propriétés et exemple
• propriété
g résiste aux collisions ⇒ h résiste aux collisions
• exemple
r = 4 x = 11101 l = 101
u = 0001 1101
v = 1101
w = 0001 1101 0000 1101 t = 4
h = g ( g ( g ( g (0n 0001)1101)0000)1101)
Master Informatique Sécurité des Réseaux 90
© Richard G. Terrat
Janvier 2009
Taille de l’empreinte
P : textes en clair |P| = m
Z : empreintes |Z| = n
h : P → Z fonction de hachage
théorème des anniversaires
m > 2n/2 ⇒ pr ( ∃ x, x’ ∈ P x ≠ x’ h(x) = h(x’) ) > 1/2
exemples
n = 40 ⇒ m > 220 220 µs ≈ 1s
n = 128 ⇒ m > 264 264 µs ≈ 500 000 ans
n = 160 ⇒ m > 280 280 µs ≈ 2 AU
Autres constructions
• Basées sur la construction de Merkle
MD5 Message-Digest Algorithm (n = 128 bits )
SHA Secure Hash Algorithm (n = 160 bits)
• Basées sur la construction de Elgamal
DSS Digital Signature Standard
DSA Digital Signature Algorithm
issues de l’algorithme de signature dû à
Taher Elgamal, basé sur le logarithme discret
‫ﺭﻩﺍﻁ‬ ‫ﻝﻡﺝﻝﺍ‬
Taher Elgamal
(1955)
Master Informatique Sécurité des Réseaux 91
© Richard G. Terrat
Janvier 2009
2.9 Signature non reproductible
• Objectif : éviter le re-jeu
• Méthode : introduction d’un « nonce » (number
once) dans la signature
– exemple : compteur, date
N : ensemble des nonces
S : P x K x N → A fonction de signature
V : P x K x N x A → {vrai, faux } vérification
3. Certification
3.1 Objectif et Principe
3.2 Contenu d’un certificat
3.3 Utilisations
Master Informatique Sécurité des Réseaux 92
© Richard G. Terrat
Janvier 2009
3.1 Objectif et Principe
• Objectif
– Association clef publique - identité
– Publication sécurisée de la clef publique
– Contre l’attaque du « man in the middle »
• Principe
– Tiers de confiance
• centralisés : autorités de certification CA
• distribués : chaînes de confiance PGP
3.2 Contenu d’un certificat
– Contenu minimum en clair A, kA, n
• A : identité de A nom, adresse IP, domaine, etc …
• kA : clef publique de A
• Nonce
– Informations complémentaires
• Date de limite de validité
• Type de cryptage utilisant la clef
• Etc …
– Signature du tiers de confiance
Master Informatique Sécurité des Réseaux 93
© Richard G. Terrat
Janvier 2009
3.3 Utilisations
– Enregistrement de la clef publique
– Vérification de l’identité du détenteur d’un secret
– Distribution de clefs de session
 généralement privées
Master Informatique Sécurité des Réseaux 94
© Richard G. Terrat
Janvier 2009
III
CRYPTOLOGIE
futuriste
Sommaire
1. Fondements
2. Cryptographie quantique
3. Cryptanalyse quantique
Master Informatique Sécurité des Réseaux 95
© Richard G. Terrat
Janvier 2009
1. Fondements
1.1 L ’impasse épistémologique
1.2 La théorie de quanta
1.3 Les fondateurs
1.4 Citations
1.5 Bibliographie
1.1 L’impasse épistémologique
« La physique est définitivement constituée dans ses
concepts fondamentaux. Tout ce qu’elle peut
désormais apporter, c’est la détermination précise de
quelques décimales supplémentaires. Il y a bien deux
petits problèmes : celui du résultat négatif de
l’expérience de Michelson et Morley et celui du corps
noir, mais ils seront rapidement résolus et n’altèrent
en rien notre confiance. »
Lord Kelvin 1892
William Thomson
Lord Kelvin
(1824-1907)
Master Informatique Sécurité des Réseaux 96
© Richard G. Terrat
Janvier 2009
Théorie de la relativité
• Expérience de Michelson et Morley
– Le vent d’éther n’existe pas (le Vième élément)
 la mécanique de Newton : additivité des vitesses
est incompatible avec la propagation des ondes
électromagnétiques de Maxwell : constance de la
vitesse de la lumière
 théorie de la relativité : Einstein
 abandon des repères absolus d’espace et de temps
pour décrire les lois physiques
 seules restent invariantes les constantes
cosmologiques
Physique quantique
• Rayonnement du corps noir
– L’énergie émise est discontinue
 théorie des «quanta»
 aucune grandeur physique n’a de mesure
continue
 toute mesure apporte une quantité d’information
bornée
 l’état d’un système ne peut être connu que par
sa mesure
ceci constitue « l’interprétation de Copenhague »
Master Informatique Sécurité des Réseaux 97
© Richard G. Terrat
Janvier 2009
1.3 Les fondateurs
Thomas Young
(1773-1829)
Heinrich Rudolf Hertz
(1857-1894)
Max Planck
(1858-1947)
Paul Langevin
(1872-1946)
Albert Einstein
(1879-1955)
Niels Bohr
(1885-1962)
Edwing Schrödinger
(1887-1961)
Holly Compton
(1892-1962)
Wolfgang Pauli
(1900-1958)
Enrico Fermi
(1901-1954)
Werner Heisenberg
(1901-1976)
Paul Dirac
(1902-1984)
Louis de Broglie
(1892-1987)
Richard Feynman
(1918-1988)
1.4 Citations
« Le but de la physique n'est pas de découvrir ce qu'est la nature,
mais ce qu'on peut dire sur elle »
Niels Bohr
« Quiconque peut contempler la mécanique quantique sans avoir
le vertige, n’y a rien compris »
Niels Bohr
« Si quelqu’un prétend avoir compris la théorie quantique, c’est la
preuve qu’il n’y a rien compris »
Richard Feynman
Niels Bohr
(1885-1962)
Richard Feynman
(1918-1988)
Master Informatique Sécurité des Réseaux 98
© Richard G. Terrat
Janvier 2009
1.5 Bibliographie
• Initiation à la mécanique quantique - Elie Belorizky - Dunod - Avril 2000
• Introduction à la mécanique quantique - Jean Hladik, Michel Chrysos - Dunod
- Avril 2000
• Alice au pays des quanta - Robert Gilmore - Le Pommier - Mai 2000
• Introduction a l'information quantique - Michel Le Bellac - Belin - Sept. 2005
• Leçons sur l'informatique - Richard Feynman - Odile Jacob - Sept. 2006
• Mes premiers pas en mécanique quantique - Christos Gougoussis, Nicolas
Poilvert - Ellipse - Janvier 2007
• Leçons sur la physique - Richard Feynman - Odile Jacob - Oct. 2007
• Vous voulez rire, Monsieur Feynmann ! - Odile Jacob - Oct. 2007
• Vous y comprenez quelque chose Monsieur Feynmann ? - Odile Jacob - Oct.
2007
2. Cryptographie quantique
2.1 Une expérience surprenante
2.2 Le protocole BB84
2.3 La cryptanalyse
Master Informatique Sécurité des Réseaux 99
© Richard G. Terrat
Janvier 2009
2.1 Une expérience surprenante
Explication
L’état de la polarisation est défini par un vecteur dans un
espace à 2 dimensions
|Ψ> = a|x> + b|y> notation de Dirac
où
x et y sont les vecteurs de base
si α est l’angle de polarisation
a = cos α
b = sin α
a2 + b2 = 1 α
Ψ
x
y
a
b
Master Informatique Sécurité des Réseaux 100
© Richard G. Terrat
Janvier 2009
Propriétés quantiques
Un photon de polarisation α rencontrant un filtre d’angle 0
dans le repère <x, y>
est transmis avec la probabilité p = cos2α
est absorbé avec la probabilité q = sin2α
soit pour
α = 0 ⇒ p = 1
α = π/2 ⇒ p = 0
α = ± π/4 ⇒ p = 1/2
ET si p > 0 il ressort du filtre avec la polarisation … 0 !
 On ne peut donc pas savoir quelle était la polarisation du
photon avant son passage dans le filtre !
Exemples
Master Informatique Sécurité des Réseaux 101
© Richard G. Terrat
Janvier 2009
2.2 Le protocole BB84
Gilles Brassard (1955)
Principe
Alice code un message par des photons polarisés
en utilisant aléatoirement l’un des jeux de filtres
ou
Exemple :
0 codé ou
1 codé ou
Bob décode le message en utilisant aléatoirement un filtre
ou
Charles Bennett (1943)
Transmission de clef
1. Alice envoie à Bob un message codé selon le principe
précédent
2. Bob décode le message en posant aléatoirement des
filtres et
3. Alice transmet à Bob ses choix de filtres en clair
4. Bob transmet à Alice ses bons choix en clair
 Alice et Bob considèrent la suite de bits correctement
décodés par Bob comme clef
 La clef peut être utilisée comme choix de jeux de filtres
entre Alice et Bob : par exemple 0 = 1 =
Master Informatique Sécurité des Réseaux 102
© Richard G. Terrat
Janvier 2009
Notations simplifiées
• Filtres
Dans ce qui suit + et ×
représenteront
pour Alice les jeux
pour Bob les filtres
• Polarisations
seront utilisées pour
Exemple
message 1 0 1 1 0 0 1 1 0 0 1 1
polarisation + + × + × × × + × + + ×
émission
filtres + × + + × × + + × + × ×
réception 1 0 0 1 0 0 1 1 0 0 0 1
validation + + × + × × × + × + + ×
confirmation V F F V V V F V V V F V
clef transmise
AliceBobAliceBob
1
3
4
Master Informatique Sécurité des Réseaux 103
© Richard G. Terrat
Janvier 2009
Remarques
• Les phases 3 et 4 peuvent être interverties
dans ce cas Bob indique ses choix de filtres à Alice qui valide les
bons choix (ceux qu’elle a fait)
• Les transmissions des phases 3 et 4 peuvent se faire sur un
canal non quantique ou sur le même canal en convenant à
l’avance d’un jeu de polarisation : + ou ×
Caractéristiques physiques
• Le comportement quantique des photons
nécessite
– une très faible quantité de photons par bit transmis donc
– une très faible énergie donc
– un faible rapport signal/bruit donc
– une forte sensibilité aux pertes et erreurs de
transmission
 Nécessité d’un codage redondant (ex : CRC)
– détecteur / correcteur d’erreurs
Master Informatique Sécurité des Réseaux 104
© Richard G. Terrat
Janvier 2009
Ajout de redondance
La redondance ne peut porter sur tout le message transmis par
Alice mais uniquement sur les bits validés en commun
 Elle doit donc être fabriquée et transmise après la phase de validation
 Elle va s’avérer inefficace en cas d’interception du message par Eve
 Elle doit être transmise en clair et va donc apporter de l’information à
Eve !
Mesure quantique
• La mesure destructive de la polarisation a pour
conséquences
– l’impossibilité de répéteurs, routeurs, commutateurs
 transmission de point à point uniquement
– la modification du message transmis en cas d’interception :
 en moyenne 1/4 des bits seront altérés (50% de mauvais choix de
filtres par Eve et 50% de mauvaises mesures par ces filtres)
 l’introduction de la redondance est inefficace pour la détection
d’intrusion
Master Informatique Sécurité des Réseaux 105
© Richard G. Terrat
Janvier 2009
2.3 Cryptanalyse
• Il n’y a pas de cryptanalyse passive !
 toute intrusion pour capter un message le modifie !
 cette modification est aléatoire et ne peut donc être
utilisée pour :
falsifier un message
effectuer une attaque « man in the middle »
 la seule parade possible est de procéder à une détection
d’intrusion et de recommencer tout le protocole
 la transmission peut être éternellement compromise si
l’intrusion est permanente
Détection d’intrusion
• Protocole simple
– Alice et Bob vont tester une partie aléatoire des bits du
message validé en transmettant en clair leur position et
leur valeur sur un canal non nécessairement quantique
– s’il y a concordance
• ces bits sont retirés du message transmis car Eve a pu en
prendre connaissance
• le message ainsi amputé est validé
– sinon
• Alice et Bob supputent une intrusion
• ils abandonnent le message transmis
Master Informatique Sécurité des Réseaux 106
© Richard G. Terrat
Janvier 2009
Conjectures
• Impossibilité de « cloner » un photon
– Eve pourrait prendre une copie du message transmis puis appliquer
ensuite les bons filtres transmis par Alice et Bob
• Impossibilité de « capter » une partie des photons
– Chaque bit est en fait émis par plusieurs photons de même
polarisation
– Eve pourrait alors en capter certains et laisser passer les autres donc
avoir une copie du message
– Cette impossibilité est assurée par le fait qu’Eve ne possède pas de
détecteur plus sensible que celui de Bob
3. Cryptanalyse quantique
3.1 L’ordinateur quantique
3.2 Les algorithmes quantiques
3.3 La complexité quantique
Master Informatique Sécurité des Réseaux 107
© Richard G. Terrat
Janvier 2009
3.1 L’ordinateur quantique
• Le bit quantique ou q-bit
– tout élément physique quantique décrit par une fonction
dans un espace à 2 dimensions
|Ψ> = a|0> + b|1>
où 0 et 1 sont les vecteurs de base
et a2 + b2 = 1
• a2 est la probabilité d’observer |Ψ> = |0>
• b2 est la probabilité d’observer |Ψ> = |1>
– tant que l’élément n’est pas observé, a et b sont
inconnus
Interprétations
• la méconnaissance de |Ψ> peut être interprétée comme
– un état aléatoire avec la distribution p|0> = a2 et p|1> = b2
– une « superposition » de 2 états observables contenant l’état |0>
dans la proportion a2 et l’état |1> dans la proportion b2
– un ensemble de 2 univers où l’état est déterminé pour chacun
d’eux : dans l’univers 1 |Ψ> = |0> et dans l’univers 2 |Ψ> = |1>
• ou selon l’interprétation de Copenhague
– une incertitude due à l’absence d’observation
– cette incertitude peut être évaluée par la mesure de Shannon
• I (|Ψ> ) = - a2 log2 a2 - b2 log2 b2
• elle a comme valeur maximum pour a2 = b2 = 1/2 … 1 bit !
Master Informatique Sécurité des Réseaux 108
© Richard G. Terrat
Janvier 2009
Les composants « classiques »
– on sait que toute fonction booléenne peut être réalisée à
l’aide du seul composant ¬∧ (NAND) défini par
¬∧ (0,0) = ¬∧ (0,1) = ¬∧ (1,0) = 1 et ¬∧ (1,1) = 0
– par exemple
¬a = ¬∧(a,1) a∧b = ¬ (¬∧ (a,b)) a∨b = ¬∧(¬a, ¬b)
– mais il ne peut être utilisé comme composant quantique
• il n’agit pas sur des q-bits
• une fonction quantique doit être mathématiquement réversible
c’est à dire que f (f (x)) = x
Les composants quantiques
• CNOT Controlled Not
cnot (a, b) = (a, a⊕b)
 réversible car cnot (a, a⊕b) = (a, b)
– propriété : cnot (a, 0) = (a, a) cnot (a, 1) = (a, ¬ a)
• Toffoli
tof (a, b, c) = (a, b, c⊕(a∧b))
 réversible car tof (a, b, c⊕(a∧b)) = (a, b, c)
– propriété : tof (a, b, 1) = (a, b, ¬∧(a,b))
Tomasso Toffoli
(1943)
Master Informatique Sécurité des Réseaux 109
© Richard G. Terrat
Janvier 2009
La transformation de Hadamard
• Permet la « mise en état quantique »
H |0> = 2-2 (|0> + |1>)
H |1> = 2-2 (|0> - |1>)
– Propriété
la mesure de |Ψ> = H |0> donne
|0> avec la probabilité 1/2
|1> avec la probabilité 1/2
Jacques Salomon
Hadamard
(1865-1963)
3.2 Les algorithmes quantiques
• Parallélisme
– une fonction f sur un q-bit (ou un ensemble de q-bits) agit sur l’état
|Ψ> donc sur |0> en même temps que sur |1> donc
• a priori, pour un problème donné, le calcul de f sera plus rapide par un
algorithme quantique que par un algorithme classique mais
• il n’est possible d’observer le résultat de f que pour un et un état d’un
q-bit
• le parallélisme du calcul ne permet donc pas d’observer les résultats
de f pour plusieurs valeurs des données
– peu de problèmes admettent donc des algorithmes quantiques
Master Informatique Sécurité des Réseaux 110
© Richard G. Terrat
Janvier 2009
Algorithme de Deutsch
• Calcul de f(0) = f(1)
– algorithme classique complexité 2*C
• calcul de f (0) complexité C
• calcul de f (1) complexité C
• calcul de f (0) = f(1)
– algorithme quantique complexité C
• calcul de f (|Ψ> = 2-2 |0> + 2-2 |1>)
• mesure de f(0) = f(1)
 il n’y a pas à mesurer f(|0>) ET f(|1>)
David Deutsch
(1953)
Algorithme de Grover
• Recherche d’un élément dans un tableau
x tel que y = T(x) T: tableau [1:N]
– algorithme classique
• parcours du tableau T complexité N/2 en moyenne
– algorithme quantique
• utilisation d’un registre de n q-bits pour stocker T
• construction de f(x) de domaine {0, 1, … 2n-1} telle que
f(x) = 0 si x≠ y et f(x) = 1 si x = y
complexité N1/2
Lov Kumar Grover
(1961)
Master Informatique Sécurité des Réseaux 111
© Richard G. Terrat
Janvier 2009
Factorisation de n = p × q
– algorithmes classiques
• complexité inconnue ⊆ NP
• algorithmes exponentiels
 on sait que si a < n et pgcd (a,n) = 1
f : x → ax mod n est périodique de période r et
p = pgcd (ar/2 - 1, n) q = pgcd (ar/2 + 1, n)
en effet ar - 1 = (ar/2 - 1) (ar/2 + 1) mod n = 0 si r = φ (n)
 calculer p et q revient donc à trouver la période de x → ax mod n
Algorithme de Shor
– recherche la période r d’une fonction f : x → ax
 la mesure de r nécessite le calcul de f mais pas la
mesure du résultat de ce calcul (cf. algorithme de
Deutsch)
 r peut être calculé en temps polynomial par des
fonctions quantiques
 Donc la factorisation de n = p × q est de complexité P
sur un ordinateur quantique
Peter Shor
(1959)
Master Informatique Sécurité des Réseaux 112
© Richard G. Terrat
Janvier 2009
3.3 la complexité quantique
• Constatations
– le calcul quantique est plus rapide que le calcul classique à cause
du parallélisme mais
– la mesure des résultats d’une fonction quantique ne permet pas
d’obtenir toutes les valeurs de cette fonction
– il existe des algorithmes quantiques polynomiaux pour résoudre
des problèmes dont on ne connaît pas d’algorithme classique
polynomial (factorisation)
– on ne connaît aucun problème NP admettant un algorithme
quantique polynomial
 l’algorithmique quantique ne donne actuellement aucune
information sur la conjecture P = NP
Conjecture
• BQP : Bounded error, Quantum Polynomial time
– classe des problèmes quantiques polynomiaux
• BPP : Bounded error, Probabilistic Polynomial time
– classe des problèmes probabilistes polynomiaux
• P : Polynomial time
– classe des problèmes polynomiaux
• NP : Non deterministic Polynomial time
– classe des problèmes non deterministes polynomiaux
on sait que P ⊆ BPP ⊆ NP
et que P ⊆ BPP ⊆ BQP
mais BQP ? NP
Master Informatique Sécurité des Réseaux 113
© Richard G. Terrat
Janvier 2009
Master Informatique Sécurité des Réseaux 114
© Richard G. Terrat
Janvier 2009
Sécurité des Réseaux
TD & Annales d’examens
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
TD N°1
Systèmes cryptographiques
Exercice 1
On considère le système cryptographique suivant
P = {a, b} avec la distribution p (a) = 1/4 p (b) = 3/4
K = {k1, k2, k3} avec la distribution p (k1) = 1/2 p (k2) = p (k3) = 1/4
C = {1, 2, 3, 4}
E a b
k1 1 2
k2 2 3
k3 3 4
Calculer
H(P) H(C) H(K) H(K/C) H(P/C)
Ce système assure-t-il une confidentialité parfaite ?
Exercice 2
Mêmes questions avec
P = {a, b, c} avec la distribution p (a) = 1/2 p (b) = 1/3 p(c) = 1/6
K = {k1, k2, k3} avec la distribution uniforme
C = {1, 2, 3, 4}
E a b c
k1 1 2 3
k2 2 3 4
k3 3 4 1
Master Informatique Sécurité des Réseaux 1
© Richard G. Terrat
Janvier 2009
TD N°2
Complexité « concrète »
Un cryptanalyste amateur, programmeur hors pair, mais peu au fait des problèmes de
complexité, décide de s’attaquer au cryptage par substitution monoalphabétique, pour
l’alphabet latin de 26 lettres, en essayant systématiquement toutes les clefs possibles. Le
programme qu’il a écrit et l’ordinateur qu’il utilise pour ce faire permettent de tester 1
million de clefs par seconde !
Calculer le temps qu’il lui faudra pour tester toutes les clefs possibles, en exprimant
ce temps en unités AU (âge de l’univers, estimé à 15 milliards d’années).
Ce même amateur veut étendre sa méthode aux clefs binaires de longueur n.
A la même vitesse de 1 million de tests pas seconde, quelle est la valeur maximum de n
pour tester toutes les clefs possibles en 1 AU ?
Simplifications dans Z26
Peut-on déduire de ab = ac mod 26 que b = c ?
Donner des exemples et interpéter
Equations du premier degré dans Z26
Quel est l’ensemble des solutions des équations suivantes ?
7x = 3 mod 26 4x = 3 mod 26 ax = b mod 26
Fonctions affines dans Z26
Les fonctions suivantes sont-elles injectives ?
y = 7x + 3 mod 26 y = 4x + 3 mod 26 y = ax + b mod 26
L’ensemble Z*26
On définit l’ensemble des Z*26 constitué des entiers modulo 26 auquel on a retiré tous
les nombres non premiers avec 26.
Quel est le cardinal de cet ensemble ?
On munit cet ensemble des lois habituelles + modulo 26 et x modulo 26
Cette structure est elle :
un groupe pour la loi + ? si oui est-il abélien ?
un groupe pour la loi x ? si oui est-il abélien ?
un corps pour les lois + et x ?
Master Informatique Sécurité des Réseaux 2
© Richard G. Terrat
Janvier 2009
TD N°3
Cryptanalyse d’un cryptage monoalphabétique multiplicatif
Définition
P = C = {a, b, …z } = Z26
K = { k ∈ Z26 | pgcd (k,26) = 1 }
∀ x ∈ P ∀ k ∈ K ∀ y ∈ C
Ek(x) = k.x mod 26
Dk(y) = k-1
.y mod 26
Cryptogramme v ∈ C* = rawfejbanareqssqbdawkrskwk
Le texte x est en français
Procéder ainsi :
1. Faire différentes hypothèses sur le cryptage de la lettre e
2. Pour chacune de ces hypothèses résoudre l’équation y = k.x mod 26
3. Pour chaque valeur de k trouvée, chercher la valeur de u ∈ P*
dont v est le
cryptogramme
Master Informatique Sécurité des Réseaux 3
© Richard G. Terrat
Janvier 2009
TD N°4
Arithmétique modulo n Calcul d’un inverse
On sait qu’un élément x ∈ Zn est inversible ssi pgcd (x,n) = 1
Pour calculer x-1
mod n, on peut utiliser la table de multiplication Etienne Bezout
dans Zn, mais il y a mieux. (1730-1783)
x-1
mod n peut être calculé par l’algorithme d’Euclide étendu.
Rappel : algorithme d’Euclide (Euclide ≈ -300) calcul du pgcd (x, n) x < n
on construit la suite ri-2 = qi-1 ri-1 + ri 0 < ri < ri-1 i >1
avec r0 = n r1 = x
cette suite converge avec rm-1 = qm rm (rm+1 = 0)
on montre que ∀i 1 ≤ i ≤ m pgcd (ri-1, ri) = pgcd (n, x)
donc pgcd (x, n) = pgdc (n, x) = rm
Algorithme d’Euclide étendu (Bezout ≈ 1760) calcul de x-1
mod n pgcd (x, n) = 1
on construit la suite tj = tj-2 – qj-1 tj-1 mod r0
avec t0 = 0 t1 = 1
cette suite converge avec tm+1 = 0
Montrer que ∀j 0 ≤ j ≤ m rj = tj r1 mod r0
En déduire que x-1
mod n = tm
Calculer 28-1
mod 75 37-1
mod 108
Ecrire l’algorithme d’Euclide étendu
Master Informatique Sécurité des Réseaux 4
© Richard G. Terrat
Janvier 2009
Algèbre modulo n Congruences linéaires
秦九韶
On cherche à résoudre le système de n équations d’inconnue x Ch’in Chiu-Shao
(1202 - 1261)
∀i 1 ≤ i ≤ n x = ai mod mi où ∀i, j i≠j pgcd (mi, mj) = 1
Théorème des restes chinois (Ch’in Chiu-Shao – 1247)
il existe une et une seule solution modulo M = mi
i=1
n
!
On définit la fonction π : ZM → Zm1 x Zm2 x … Zmn par
Π (x) = (x mod m1, x mod m2, … x mod mn)
Calculer π (x) ∀ x ∈ ZM pour n = 2, m1 = 5, m2 = 3
On définit Mi = M / mi et yi = Mi
-1
mod mi
Montrer l’existence de Mi et yi
On définit la fonction ρ : Zm1 x Zm2 x … Zmn → ZM par
X = ! (a1, a2, !an ) = ai Mi yi mod M
i=1
n
"
Montrer que ∀i 1 ≤ i ≤ n X = ai mod mi
En déduire que X est une solution
Montrer que π est bijective et que ρ = π-1
En déduire que X est l’unique solution
Résoudre le système
x = 5 mod 7 = 3 mod 11 = 10 mod 13
Ecrire l’algorithme de la solution du problème des restes chinois
Master Informatique Sécurité des Réseaux 5
© Richard G. Terrat
Janvier 2009
TD N°5
Arithmétique modulo n
Montrer que (a+b) mod n = ((a mod n) + (b mod n)) mod n
(a*b) mod n = ((a mod n) * (b mod n)) mod n
(ax
mod n) mod n = (a mod n)x
mod n
(a*(b+c)) mod n = ((a*b) mod n + (a*c) mod n) mod n
(ax
mod n)y
mod n = (ay
mod n)x
mod n = axy
mod n
Exponentiation modulo n
x = x0 20
+ x121
+ x222
+ …xk2k
xi ∈ {0,1} écriture de x en binaire
Montrer que ax
modn = a2i
modn
{i xi =1}
!
Avec a2i
modn = (a2i!1
modn)2
modn
Calculer 1773
mod 133 1772
mod133
Nombres primitifs
p premier
a est primitif mod p ssi a → ax
| 0 ≤ x ≤ p-2 bijective dans Zp* Zp* = Zp  {0}
En déduire y → loga y est définie ssi a est primitif
Montrer que 2, 6, 7, 11 sont primitifs modulo 13
et que 1, 3, 4, 5, 8, 9, 10, 12 ne le sont pas
Master Informatique Sécurité des Réseaux 6
© Richard G. Terrat
Janvier 2009
TD N°6
Montrer par un exemple qu’on peut avoir a mod n ≠ 0 et b mod n ≠ 0 et a.b mod n = 0
Lemme de Gauss
Montrer que ∀ a, b, n ∈ Z a.b mod n = 0 et pgcd (a,n) = 1 ⇒ b mod n = 0
Le petit théorème de Pierre Simon de Fermat (1640)
Soit p premier , a ∈ Z et pgcd (a, p) = 1
Montrer que ∀ m ∈ Zp m.a mod p ≠ 0
En déduire ∀ m, n ∈ Zp m.a mod p = n.a mod p ⇒ m = n
Puis {a mod p, 2a mod p, …(p-1)a mod p} = {1, 2, … p-1}
Et a . 2a . …(p-1)a mod p = (p-1)! mod p
Démontrer que ap-1
mod p = 1
Calculer directement 2421
mod 13
Les généralisations de Leonhard Euler (1760)
Soit Zn* = {x ∈ Zn | pgcd (x,n) = 1 } |Zn*| = ϕ (n) k ∈ Z
Montrer que si n = p.q p et q premiers ϕ (n) = (p-1).(q-1)
G1 Soit a ∈ Z et pgcd (a, n) = 1
Démontrer que ak.ϕ(n)
mod n = 1
Calculer 168
mod 15 et 169
mod 15
En déduire que ak.ϕ(n)
mod n = 1 ⇒ ak.ϕ(n)+1
mod n = a est faux
G2 Soit n = p.q p et q premiers et a ∈ Zn
Démontrer que ak.ϕ(n)+1
mod n = a
Calculer 39
mod 15 et 38
mod 15
En déduire que ak.ϕ(n)+1
mod n = a ⇒ ak.ϕ(n)
mod n = 1 est faux
Master Informatique Sécurité des Réseaux 7
© Richard G. Terrat
Janvier 2009
TD N°7
Théorème des anniversaires
Calculer la probabilité pour que parmi n individus au moins deux aient leur fête
d’anniversaire le même jour de l’année.
Calculer la plus petite valeur de n pour que cette probabilité dépasse 1/2
Indications
On ne tiendra pas compte du 29 Février
On utilisera les propriétés : ∀x ∈ ℜ 1+x ≤ ex
et x ≈ 0⇒ 1+x ≈ ex
Calcul de la clef maîtresse d’un ensemble de clefs partielles
Une clef maîtresse k est répartie entre plusieurs individus
n est le nombre d’individus possédant chacun une clef partielle ki pour 1 ≤ i ≤ n
t ≤ n est le nombre de clefs partielles nécessaires pour déterminer la clef maîtresse
P est un polynôme de degré t-1 à coefficients entiers inconnus aj pour 0 ≤ j ≤ t-1
ki = P(i) mod p
a0 = k est la clef maîtresse
p est un nombre premier tel que p > n et p > k p > ai
Calculer k pour
n = 12 t = 3 p = 13 k1 = 4 k5 = 9 k6 = 12
Master Informatique Sécurité des Réseaux 8
© Richard G. Terrat
Janvier 2009
Université Montpellier II UMINP351
UFR des Sciences Février 2007
Master Informatique Durée 2 heures
Sécurité des Réseaux Tous documents autorisés
CRYPTOLOGIE
1. Systèmes cryptographiques
On considère le système cryptographique suivant
P = {a, b, c} avec la distribution p (a) = 1/2 p (b) = 1/3 p (c) = 1/6
K = {k1, k2, k3} avec la distribution uniforme
C = {1, 2, 3, 4}
E est défini par
E a b c
k1 1 2 3
k2 2 3 4
k3 3 4 1
Calculer
H(P) H(C) H(K) H(K/C) H(P/C)
2. Cryptage de Hill
Rechercher la clef d’un cryptage de Hill sachant que :
1. on connaît un texte et clair : FRIDAY et son cryptogramme : PQCFKU
2. la dimension de la matrice de cryptage est : 2 x 2
Indication :
l’inverse d’une matrice A =
a11 a12
a21 a22
!
"#
$
%& !inversible!dans!Z26 !est!A'1
= (det A)'1
a22 'a12
'a21 a11
!
"#
$
%& !
où det A = a11 a22 – a12 a21
3. Cryptographie RSA
Montrer que si ϕ(n) est connu, il est possible de factoriser n
Comment ?
Master Informatique Sécurité des Réseaux 9
© Richard G. Terrat
Janvier 2009
4. Cryptanalyse RSA
Alice commet l’imprudence de dialoguer avec Bob et Bernard en utilisant comme
clefs de cryptage les clefs publiques RSA suivantes :
pour Bob (17, 143)
pour Bernard (19, 143)
et en envoyant le même message x = 123 crypté pour chacun d’eux
La perverse Eve, interceptant les 2 cryptogrammes, et sachant qu’il s’agit du même
message en clair x , peut elle trouver ce message x sans connaître les clefs secrètes de Bob et
de Bernard et sans factoriser n = 143 ?
Indication :
17 et 19 étant premiers entre eux, il est facile de calculer, par la formule de Bezout,
les 2 nombres u et v tels que 17.u + 19.v = 1 mod 26 ; on vérifiera ici que u = 9 et v = -8
Peut-on généraliser cette cryptanalyse à des clefs réelles RSA de plusieurs centaines
de bits ? Dans quelles conditions et comment ?
Master Informatique Sécurité des Réseaux 10
© Richard G. Terrat
Janvier 2009
Université Montpellier II Sécurité des Réseaux
UFR des Sciences Avril 2008
Master Informatique Tous documents autorisés
N.B Afin d’assurer l’équité entre les participants, aucun appareil de calcul n’est autorisé
1. Calcul de la clef maîtresse d’un ensemble de clefs partielles
Une clef maîtresse k est répartie entre plusieurs individus
n est le nombre d’individus possédant chacun une clef partielle ki pour 1 ≤ i ≤ n
t ≤ n est le nombre de clefs partielles nécessaires pour déterminer la clef maîtresse
P est un polynôme de degré t-1 à coefficients entiers inconnus aj pour 0 ≤ j ≤ t-1
ki = P(i) mod p
a0 = k est la clef maîtresse
p est un nombre premier tel que p > n et p > k p > ai
Question
Calculer k pour
n = 12 t = 3 p = 13 k1 = 4 k5 = 9 k6 = 12
2. Cryptographie RSA
Alice et Bob ayant détecté les pervers agissements d’Eve relatés au partiel, décident de
changer leur cryptage et optent pour un cryptage RSA.
Alice construit ses clefs publiques et secrètes ainsi :
elle choisit comme clef secrète (25, 133), ce qui lui permet d’utiliser le bon vieux code
ASCII, puis en déduit sa clef publique (13, 133) qu’elle transmet en clair à Bob.
Question
2.1 Vérifier que ces clefs sont cohérentes
À l’aide de sa clef secrète, Alice envoie la lettre I à Bob (code ASCII : 73 en décimal) comme
« challenge » pour son authentification.
Questions
2.2 Que reçoit Bob ? (valeur en décimal)
2.3 Faites le calcul de Bob pour retrouver le message d’Alice
2.4 Comment Eve pourrait-elle trouver la clef secrète d’Alice ?
Master Informatique Sécurité des Réseaux 11
© Richard G. Terrat
Janvier 2009
3. Protocoles
On considère un système cryptographique à clef publique. Lorsque Alice veut envoyer un
message secret à Bob, elle le crypte avec la clef publique de Bob et envoie en même temps à
Bob un certificat qu’elle a elle-même fabriqué, contenant sa propre clef publique. Pour
acquitter le message reçu, Bob renvoie le message à Alice, après l’avoir décrypté, puis ré-
encrypté avec la clef publique qu’Alice lui a transmise dans son certificat.
Questions
3.1 Expliquer comment Eve, pouvant espionner activement le réseau -(wo)man in
the middle-, peut intercepter le message en clair.
3.2 En déduire le rôle des autorités de certification
3.3 Comment éviter l’acte répréhensible d’Eve sans passer par l’intermédiaire d’une
autorité de certification ?
4. Cryptographie quantique
La séquence suivante est échangée entre Alice et Bob pour transmettre une clef privée :
Phase 1 Alice → Bob
Phase 2 Bob → Alice
Phase 3 Alice → Bob
Sachant que
Alice a choisi le codage suivant en phase 1
0 : avec filtre ; avec filtre
1 : avec filtre ; avec filtre
Alice et Bob ont convenu du filtre pour les phases 2 et 3 avec la signification
phase 2 : choix de ; : choix de
phase 3 : confirmation ; : rejet
Questions
4.1 Quelle séquence Alice a-t-elle envoyé à Bob en phase 3 ?
4.2 Quelle est en binaire la valeur de la clef transmise ?
Master Informatique Sécurité des Réseaux 12
© Richard G. Terrat
Janvier 2009

Contenu connexe

Plus de RichardTerrat1

Le planimetre d'Amsler
Le planimetre d'AmslerLe planimetre d'Amsler
Le planimetre d'AmslerRichardTerrat1
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...RichardTerrat1
 
Systèmes de Gestion des Fichiers
Systèmes de Gestion des FichiersSystèmes de Gestion des Fichiers
Systèmes de Gestion des FichiersRichardTerrat1
 
La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...RichardTerrat1
 
L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2RichardTerrat1
 
Ingénierie des protocoles
Ingénierie des protocolesIngénierie des protocoles
Ingénierie des protocolesRichardTerrat1
 
Épistemologie de l'informatique
Épistemologie de l'informatiqueÉpistemologie de l'informatique
Épistemologie de l'informatiqueRichardTerrat1
 
Mathématiques pour l'informatique
Mathématiques pour l'informatiqueMathématiques pour l'informatique
Mathématiques pour l'informatiqueRichardTerrat1
 
Histoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculHistoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculRichardTerrat1
 
Informatique des sons et de la musique
Informatique des sons et de la musiqueInformatique des sons et de la musique
Informatique des sons et de la musiqueRichardTerrat1
 

Plus de RichardTerrat1 (17)

Le planimetre d'Amsler
Le planimetre d'AmslerLe planimetre d'Amsler
Le planimetre d'Amsler
 
Regle a-calcul
Regle a-calculRegle a-calcul
Regle a-calcul
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
 
Processus
ProcessusProcessus
Processus
 
Systèmes de Gestion des Fichiers
Systèmes de Gestion des FichiersSystèmes de Gestion des Fichiers
Systèmes de Gestion des Fichiers
 
Systemes
SystemesSystemes
Systemes
 
Exclusion mutuelle
Exclusion mutuelleExclusion mutuelle
Exclusion mutuelle
 
Publications
PublicationsPublications
Publications
 
Le pendule
Le penduleLe pendule
Le pendule
 
La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...
 
Steganographie
SteganographieSteganographie
Steganographie
 
L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2
 
Ingénierie des protocoles
Ingénierie des protocolesIngénierie des protocoles
Ingénierie des protocoles
 
Épistemologie de l'informatique
Épistemologie de l'informatiqueÉpistemologie de l'informatique
Épistemologie de l'informatique
 
Mathématiques pour l'informatique
Mathématiques pour l'informatiqueMathématiques pour l'informatique
Mathématiques pour l'informatique
 
Histoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculHistoire des ordinateurs et du calcul
Histoire des ordinateurs et du calcul
 
Informatique des sons et de la musique
Informatique des sons et de la musiqueInformatique des sons et de la musique
Informatique des sons et de la musique
 

Sécurité des réseaux informatiques

  • 1. SÉCURITÉ DES RÉSEAUX Université Montpellier II Faculté des Sciences Département Informatique Master Richard G. TERRAT
  • 2.
  • 3. Objectif Présentation des problèmes et des solutions liés à la sécurité de l’Information dans les Réseaux Cryptologie Protocoles Architectures Programme • Cryptologie – Cryptologie « traditionnelle » – Cryptologie « contemporaine » – Cryptologie « futuriste » • Protocoles – Authentification – Intégrité • Non falsification • Non répudiation – Signatures électroniques – Certification – Notarisation Master Informatique Sécurité des Réseaux 1 © Richard G. Terrat Janvier 2009
  • 4. Définitions • Cryptologie – La science du secret – Composée de • Cryptographie écriture du secret • Cryptanalyse analyse du secret – Etymologie • « crypto » : caché • « logos » : science • « graphie » : écriture • « analyse » : décomposition Cryptologie « traditionnelle » • Caractéristiques – Scientifique et artistique – Cryptage de textes en langage naturel – Cryptographie et cryptanalyse « manuelles » – Clefs privées – Cryptage symétrique – Cryptage basé sur la confusion et la diffusion – Confidentialité basée sur l’indépendance probabiliste entre message émis et message reçu • Formalisation – Théorie probabiliste de l’information : Shannon Master Informatique Sécurité des Réseaux 2 © Richard G. Terrat Janvier 2009
  • 5. Cryptologie « contemporaine » • Caractéristiques – Purement mathématique – Cryptage de toute source symbolique – Cryptographie et cryptanalyse informatiques – Clefs publiques – Cryptage asymétrique – Confidentialité basée sur les fonctions à sens unique à trappes – Authentifications facilitées • Formalisation – Théorie de l’information basée sur la complexité : Kolmogorov Cryptologie « futuriste » • Caractéristiques – Cryptage utilisant la physique quantique – Secret basée sur la lecture destructrice du message – Coût très élevé de la transmission – Cryptanalyse utilisant l’informatique quantique • Formalisation – Physique quantique Master Informatique Sécurité des Réseaux 3 © Richard G. Terrat Janvier 2009
  • 6. Protocoles • Authentifications – Emetteur Récepteur Message • Intégrité – Non falsification émetteur – Non répudiation récepteur  signatures électroniques • Certification • Notarisation Cryptanalyse Activités • Décrypter un message sans la clef  espionnage • Trouver la clef de cryptage ou de décryptage • Falsifier un message • Falsifier une identité (émetteur ou récepteur) • Falsifier une communication  man in the middle Master Informatique Sécurité des Réseaux 4 © Richard G. Terrat Janvier 2009
  • 7. Cryptanalyse Niveaux • Le cryptanalyste dispose de – un (ou plusieurs) message(s) crypté(s) – un (ou plusieurs) couple(s) de message(s) en clair & crypté(s) – La possibilité de choisir des messages et de les crypter textes choisis Bibliographie scientifique • Codage, cryptologie et applications - Bruno Martin - Presses Polytechniques et Universitaires Romandes - 2004 • Malicious Cryptography - Adam L. Young - Wiley Publishing Inc., Indianapolis, Indiana - 2004 • Cryptographie Appliquée - Bruce Schneier - International Thomson Publishing France - 1997 • Cryptographie : Théorie et Pratique - Douglas Stinson - International Thomson Publishing France - 1996 • Cryptography and secure communications - Man Young Rhee - Mc Graw Hill - 1994 • Cryptologie contemporaine - Gilles Brassard - Masson - 1993 • Compression et cryptage en informatique - Xavier Marsault - Hermes - 1992 Master Informatique Sécurité des Réseaux 5 © Richard G. Terrat Janvier 2009
  • 8. Bibliographie généraliste Historique • La science du secret - Jacques Stern - Editions Odile Jacob - 1998 • Histoire des codes secrets - Simon Sigh - JC Lattes - 1998 Pratique • Sécurité informatique - Laurent Bloch, Christophe Wolfhugel - Eyrolles - 2007 • Tableaux de bord de la sécurité réseau - Cédric Llorens, Laurent Levier, Denis Valois - Eyrolles - 2006 Sommaire I. Cryptologie traditionnelle p. 7 II. Cryptologie contemporaine p. 57 III.Cryptologie futuriste p. 95 Master Informatique Sécurité des Réseaux 6 © Richard G. Terrat Janvier 2009
  • 9. I CRYPTOLOGIE traditionnelle Sommaire 1. Les fondements p. 9 2. Confusion & Diffusion p. 21 3. Cryptages composés p. 39 Master Informatique Sécurité des Réseaux 7 © Richard G. Terrat Janvier 2009
  • 10. Master Informatique Sécurité des Réseaux 8 © Richard G. Terrat Janvier 2009
  • 11. I. 1 Les fondements 1. Modèle 2. Entropies 3. Confidentialité parfaite 4. Distance d’unicité Sommaire Master Informatique Sécurité des Réseaux 9 © Richard G. Terrat Janvier 2009
  • 12. 1. Modèle Ek Dk’ yx x Cryptanalyse passiveactive Cryptographie Gestion des clés texte en clair texte en clair (en)cryptage clé k Cryptogramme décryptage clé k’ Système cryptographique • <P, C, K ; E, D> – P, C, K ensembles finis – E : P x K → C – D : C x K → P • Notations – x ∈ P y ∈ C k, k’ ∈ K – y = E (x,k) x = D (y,k’) – k’ = f(k) k = f-1(k’) f bijective Master Informatique Sécurité des Réseaux 10 © Richard G. Terrat Janvier 2009
  • 13. x y k k’ y = E (x,k) x = D (y,kʼ) kʼ = f(k) k = f-1(kʼ) Propriétés - D (E(x,k),k’) = x - E(x1,k1) = E(x2,k2) ⇒ (k1=k2 ⇒ x1=x2) P C K Propriétés • pour E et D connus – y est déterminé par x et k – x est déterminé par y et k’ en général k est indépendant de x on souhaite que y soit indépendant de x Master Informatique Sécurité des Réseaux 11 © Richard G. Terrat Janvier 2009
  • 14. 2. Entropies • Entropies brutes – H(P) entropie de P – H(C) entropie de C – H(K) entropie de K • Entropies conditionnelles – H(C/K,P) = 0 C déterminé par P et K – H(P/K,C) = 0 P déterminé par C et K – H(K,P) = H(K) + H(P) K et P indépendants Propriétés H(K/C) = H(K) + H(P) - H(C) • Preuve Rappel H(X,Y) = H(Y,X) = H(Y/X) + H(X) H(K,P,C) = H(C/K,P) + H(K,P) = H(K) + H(P) H(K,P,C) = H(P/K,C) + H(K,C) = H(K,C) H(K/C) = H(K,C) - H(C) = H(K) + H(P) - H(C) Master Informatique Sécurité des Réseaux 12 © Richard G. Terrat Janvier 2009
  • 15. 3. Confidentialité parfaite • <P, C, K ; E, D > confidentialité parfaite : P et C indépendants : H(P/C) = H(P) : ∀x∈P ∀y∈C p(x/y) = p(x) • C(k) = {E (x,k), x∈P} ensemble des textes cryptés avec k p(y) = p(k)• p(Dk (y)) {k|y!C(k)} " p(y /x) = p(k) {k|x= Dk (y)} ! p(x /y) = p(x) • p(y /x) p(y) Confidentialité parfaite ∀ x ∈ P ∀ y ∈ C p(y/x) = p(y) ∀ x ∈ P ∀ y ∈ C p(x/y) = p(x) ⇒ Master Informatique Sécurité des Réseaux 13 © Richard G. Terrat Janvier 2009
  • 16. Théorème 1 • <P, C, K ; E, D > assure une confidentialité parfaite ⇒ H(K) ≥ H(P) • Preuve H(P/C) = H(P,C) - H(C) H(P,C) = H(K,P,C) - H(K/P,C) H(P/C) ≤ H(K,P,C) - H(C) = H(P,K,C) - H(C) = H(P/K,C) + H(K,C) - H(C) = H(K,C) - H(C) = H(K/C) ≤ H(K) H(P/C) = H(P) hypothèse de confidentialité parfaite H(P) ≤ H(K) Théorème 2 • <P, C, K ; E, D > assure une confidentialité parfaite ⇒ |K| ≥ |C| • Preuve ∀ y ∈ C p(y) > 0 sinon on retire y de C confidentialité parfaite ⇒ ∀ x ∈ P ∀ y ∈ C p(y/x) = p(y) > 0  à tout message en clair on peut faire correspondre tout cryptogramme possible ∀ x ∈ P ∀ y ∈ C ∃ k ∈ K y = E (x,k) Master Informatique Sécurité des Réseaux 14 © Richard G. Terrat Janvier 2009
  • 17. ∀ x ∈ P ∀ y1, y2 ∈ C ∀ k1, k2 ∈ K y1 = E (x, k1) y2 = E (x, k2) y1 ≠ y2 ⇒ k1 ≠ k2 E est une fonction  pour chaque texte en clair x, tous les cryptogrammes y doivent être différents, donc toutes les clefs doivent être distinctes  il est possible que y = E(x, k1) = E(x, k2) k1 ≠ k2  un même texte en clair peut être crypté avec 2 clefs différentes et donner le même cryptogramme  il doit y avoir au moins autant de clefs que de cryptogrammes ⇒ |K| ≥ |C| C Q F D Théorème 3 • <P, C, K ; E, D > |K|=|C|=|P| assure une confidentialité parfaite ⇔ – k n’est utilisée qu’une seule fois – ∀k∈K p(k) = 1/|K| – ∀x∈P, ∀y∈C, ∃ k unique, Ek(x) = y • Preuve … Master Informatique Sécurité des Réseaux 15 © Richard G. Terrat Janvier 2009
  • 18. • Hypothèse : confidentialité parfaite |C| = | {E (x,k) | x ∈ P k ∈ K } | ≤ |K|  il existe au moins une clef k qui crypte un x en un y |C| = |K| ⇒ | {E (x,k) | x ∈ P k ∈ K } | = |K| Il y a autant de clefs que de cryptogrammes  Il n’existe qu’une seule clef k qui crypte un x en un y Soit |K| = n , P = { xi | 1 ≤ i ≤ n } , y ∈ C et ki | E (xi, ki) = y  On appelle ki la clef qui crypte xi en y p (xi /y) = p (y /xi ) . p (xi ) p(y) = p (ki) . p (xi) p(y) p (xi /y) = p (xi)  toutes les clefs de cryptage ont la même probabilité p (ki) = p (y) confidentialité parfaite p (ki) = 1 / |K| C Q F D Master Informatique Sécurité des Réseaux 16 © Richard G. Terrat Janvier 2009
  • 19. • Réciproque p (y) = p(k) p(D(y,k)) = {k y!C(k)} " p(k) p(D(y,k)) = p(k) {k y!C(k)} " = 1 K p (y /x) = p (k) = 1 K p (x /y) = p (y /x) . p(x) p(y) = p(x) une seule clef k utilisée avec la probabilité 1 / |K| C Q F D 4. Distance d’unicité • Entropie d’un langage – P vocabulaire – L ⊆ P* langage sur P – Exemplelangue anglaise • H(P2) ≈ 3,9 bits • H(L) ≈ 1,25 bits H(L) = lim n!" # !## H(Pn ) n Master Informatique Sécurité des Réseaux 17 © Richard G. Terrat Janvier 2009
  • 20. • Redondance d’un langage – Exemple L = langue anglaise • V = {a, b, … z} |P| = 26 • H(L) ≈ 1,25 bits • R(L) = 1 - 1,25/log226 ≈ 1 - 1,25/5 ≈ 0,75 – Expérience de Claude Shannon • Compréhension d’un texte en retirant aléatoirement 75% des lettres ! R(L) =1! H(L) log2 P Distance d’unicité • Théorème de Shannon U est la plus petite valeur de n, nombre de lettres de y∈C, telle que la clef k pour laquelle il existe x∈ P, y = E (x,k) soit unique U = H(K) R(L)log2 P = H(K) log2 P ! H(L) Master Informatique Sécurité des Réseaux 18 © Richard G. Terrat Janvier 2009
  • 21. y ! Cn K (y) = k ! K " x ! Pn E(x,k) = y{ } Sn = p(y) (K(y) !1 y"C n # ) = p(y) K(y) ! p(y) y"C n # y"C n # = p(y) K(y) ! 1 y"C n # H(K /Cn ) = H(K) + H(Pn ) ! H(Cn ) H(Pn ) ! n HL = n (1" RL ) log2 P H(Cn ) ! n log2 C H(K /Cn ) ! H(K) " n RL log2 P K (y) : ensemble des clefs k décryptant y sur un texte x de longueur n |K(y)| - 1 : nombre de clefs « parasites » Sn : nombre moyen de clefs parasites propriété de tout système cryptographique définition de la redondance si n suffisamment grand |C| = |P| Preuve H(K /Cn ) = p(y) H(K /y) y!C n " ! p(y) log2 K(y) y"C n # ! log2 p(y) K(y) y"C n # = log2(Sn +1) log2(Sn +1) ! H(K /Cn ) ! H(K) " n RL log2 P Sn ! K P nRL " 1 équivoque sur K sachant Cn propriété de l’équivoque inégalité de Jensen propriété de Sn établi précédemment  nombre moyen de clefs parasites quand les clefs sont équiprobables Master Informatique Sécurité des Réseaux 19 © Richard G. Terrat Janvier 2009
  • 22. n0 ! log2 K RL log2 P n0 est la plus petite valeur de n telle que Le nombre moyen de clefs parasites est nul Exemple log2(Sn +1) ! H(K /Cn ) ! H(K) " n RL log2 P n RL log2 P ! H(K) " log2(Sn +1) n0 ! H(K) RL log2 P dans le cas où les clefs sont équiprobables Pour un cryptogramme de 25 lettres, en moyenne, un seul cryptage est possible |P| = 26 |K| = 26! R(L) = 0,75 U = log226! / 0,75 . 4,7 ≈ 25 cryptage dʼun mot en langue anglaise par substitution mono-alphabétique en supposant toutes les clefs équiprobables Master Informatique Sécurité des Réseaux 20 © Richard G. Terrat Janvier 2009
  • 23. I. 2 Confusion & Diffusion Sommaire 1. Cryptages par substitution confusion 2. Cryptages par transpositions et permutations diffusion 3. Autres cryptages Master Informatique Sécurité des Réseaux 21 © Richard G. Terrat Janvier 2009
  • 24. 1. Cryptages par substitution 1.1 Cryptages mono-alphabétiques 1.2 Cryptages poly-alphabétiques  Dans tout ce qui suit on suppose k’ = k sauf stipulation contraire 1.1 Cryptages monoalphabétiques 1.1.1 Cryptages « naïfs » 1.1.2 Cryptages additifs 1.1.3 Cryptages par généraux par substitution 1.1.4 Cryptages affines 1.1.5 Cryptanalyse Master Informatique Sécurité des Réseaux 22 © Richard G. Terrat Janvier 2009
  • 25. 1.1.1 Cryptages « naïfs » • Cryptage de Polybe P = {a,b, … z}  les 25 lettres de l’alphabet latin (i et j identiques) C = {1,2,3,4,5}2  suite de 2 chiffres de 1 à 5 K = Ø  pas de clef E : P → C D : C → P D = E-1 Polybe (-205 -126) 1.1.2 Cryptages additifs • Cryptage de César – Principe P = C = K = {a,b, … z} = Z26 ∀ x ∈ P ∀ y ∈ C ∀ k,k’ ∈ K k = k’ Ek(x) = x + k mod 26 décalage de k lettres Dk(y) = y - k mod 26 décalage inverse  Jules César n’utilisait que la clef k = 3 ! Jules César (-100 -44) Master Informatique Sécurité des Réseaux 23 © Richard G. Terrat Janvier 2009
  • 26. Exemple x = message 12-4-18-18-0-6-4 k = 3 y = phvvdjh 15-7-21-21-3-9-7 1.1.3 Cryptages généraux par substitution • Principe P = C = {a,b, … z} = Z26 K = ∏ : Z26 → Z26  ensemble des fonctions bijectives (permutations) ∀ x ∈ P ∀ y ∈ C ∀ π,π’ ∈ ∏ π’ = π-1 Eπ(x) = π (x) Dπ’(y) = π’ (x)  Il y a 26! clefs possibles considérable ! Master Informatique Sécurité des Réseaux 24 © Richard G. Terrat Janvier 2009
  • 27. Exemple x = message 12-4-18-18-0-6-4 k = z y x … c b a y = nvhhztv 13-21-7-7-25-19-21 1.1.4 Cryptages affines • Principe P = C = {a,b, … z} = Z26 K = {(a,b) ∈ Z26 2 | pgcd (a,26)=1 } ∀ x ∈ P ∀ y ∈ C ∀ (a,b) ∈ K Ek(x) = a x + b mod 26 Dk(y) = (y-b)/a mod 26  pour a=1, le cryptage est additif  Ek doit être injective ⇒ pgcd (a,26) = 1  Zp pour p premier est un corps ⇒ ∀ a ∈ Zp pgcd (a,p) = 1 Master Informatique Sécurité des Réseaux 25 © Richard G. Terrat Janvier 2009
  • 28. Exemple x = message 12-4-18-18-0-6-4 k = (7, 3) y = 7x + 3 mod 26 y = jfzzdtf 9-5-25-25-3-19-5  Pour décrypter : x = (y-3)/7 mod 26 = (y-3) 7-1 mod 26 7-1 mod 26 = 15 (7.15 = 105 = 1 mod 26 ) x = 15 (y-3) mod 26 = 15y - 45 mod 26 = 15y - 19 mod 26 1.1.5 Cryptanalyse • Analyse des fréquences Al-Kindi philosophe, mathématicien, astronome, médecin, musicologue et … linguiste, auteur de 290 livres  Manuscrit sur le déchiffrement des messages cryptographiques (découvert en 1987 dans les archives ottomanes d’Istambul) – Principe • La fréquence des lettres reste invariante entre le texte en clair et le cryptogramme • On classe les lettres du cryptogramme selon leur fréquence • On établit une corrélation des lettres les plus fréquentes avec une table de fréquence type du langage à crypter ‫ﻭﺏﺃ‬ ‫ﻑﺱﻭﻱ‬ ‫ﺏﻭﻕﻉﻱ‬ ‫ﻥﺏﺍ‬ ‫ﻕﺍﺡﺱﺇ‬ ‫ﻱﺩﻥﻙﻝﺍ‬ Abu Yusuf Ya’qub ibn Is-haq ibn as-Sabbah ibn Oòmran ibn Ismaïl Al-Kindi (801-873) Master Informatique Sécurité des Réseaux 26 © Richard G. Terrat Janvier 2009
  • 29. 1.2 Cryptages polyalphabétiques 1.2.1 Cryptages par blocs 1.2.2 Cryptage matriciel 1.2.3 Cryptage à confidentialité parfaite 1.2.4 Cryptanalyse 1.2.1 Cryptages par blocs • Origines XVième siècle • Principe P = C = K = {a,b, … z} m = Z26 m  cryptage par blocs de m lettres avec une clef alphabétique de longueur m ∀ (x1, x2, … xm) ∈ P ∀ (y1, y2, … ym) ∈ C ∀ (k1, k2, … km) ∈ K Ek (x1, x2, … xm ) = (x1+k1, x2+k2, … xm+km) Dk (y1, y2, … ym ) = (y1-k1, y2-k2, … ym-km)  cryptage additif par blocs  + & - sont définis mod 26 Leon Batista Alberti (1404 - 1472) Jean Trithème (1462 - 1516) Giovanni Battista Della Porta (1535 - 1615) Blaise de Vigenère (1523 - 1596) Master Informatique Sécurité des Réseaux 27 © Richard G. Terrat Janvier 2009
  • 30. Exemple x = message 12-4-18-18-0-6-4 k = cle 2-11-4 y = opwulkg 14-15-22-20-11-10-6  des lettres identiques de x donnent des lettres différentes de y  l’analyse des fréquences brutes est inapplicable  du fil à retordre pour le cryptanalyste 1.2.2 Cryptage matriciel • Principe P = C = {a,b, … z} m = Z26 m K = {M (m,m) | M matrice inversible dans Z26} ∀ x = (x1, x2, … xm) ∈ P ∀ y = (y1, y2, … ym) ∈ C ∀ k = (k1, k2, … kn) ∈ K Ek (x) = x . k Dk (y) = y . k-1 Lester S. Hill (1891-1961) Master Informatique Sécurité des Réseaux 28 © Richard G. Terrat Janvier 2009
  • 31. Exemple k = 11 8 3 7 ! " # $ % & x = et = 4 19( ) y = 4 19( ) • 11 8 3 7 ! " # $ % & = 23 9( ) k!1 = 7 18 23 11 " # $ % & ' k • k!1 = 1 0 0 1 " # $ % & ' x = 23 9( ) • 7 18 23 11 ! " # $ % & = 4 19( ) 1.2.3 Cryptage à confidentialité parfaite • Principe P = C = K = {0, 1}n = Z2 n ∀ x = (x1, x2, … xn) ∈ P ∀ y = (y1, y2, … yn) ∈ C ∀ k = (k1, k2, … kn) ∈ K Ek (x) = x ⊕ k Dk (y) = y ⊕ k = x ⊕ k ⊕ k = x  cryptage du téléphone rouge (Washington - Moscou) confidentialité parfaite pour une clef jetable aussi longue que le message Gilbert Vernam (1890-1960) Master Informatique Sécurité des Réseaux 29 © Richard G. Terrat Janvier 2009
  • 32. Exemple x = message code telex (Emile Baudot) 11100 00001 00101 00101 00011 11010 00001 k = richard 01010 00110 01110 10100 00011 01010 01001 y = pujz-t© 10110 00111 01011 10001 00000 10000 01000 1.2.4 Cryptanalyse • Historique – Les cryptages monoalphabétiques ont résisté à la cryptanalyse pendant près de 10 siècles (de Jules César à Al Kindi) – Il a fallu attendre 5 siècles pour que les nouveaux cryptages polyalphabétiques prennent le relais – Il faudra encore 4 siècles pour les cryptanalystes en viennent à bout grâce à deux techniques Le test de Kasisky souvent attribué à Babbage Le test de Friedman Master Informatique Sécurité des Réseaux 30 © Richard G. Terrat Janvier 2009
  • 33. • Idée  un cryptage polyalphabétique est équivalent à m cryptages monoalphabétiques avec une répétition périodique de période m – Recherche de la longueur de la clef m • recherche de séquences identiques de longueur 3 dans le cryptogramme  les séquences identiques de longueur 2 ont une probabilité trop forte d’apparaître au hasard • distances de ces séquences : d1, d2, … • m divise pgcd (d1, d2, …) estimation – Cryptanalyse des m cryptages monoalphabétiques Charles Babbage (1791-1871) Le test de Kasisky 1863 Le test de Friedman 1920 • Idée – P = C = {a, b,…z} = {a1, a2,…a26 } – Indice de coïncidence d’un texte x : Ic (x) • probabilité que 2 caractères de x (de longueur n) soient égaux nombre de choix possibles de 2 caractères quelconques dans x nombre de caractères ai dans x nombre de choix possibles de 2 caractères ai dans x Wolfe Frederick Friedman (1891-1969) C2 n C2 ni ni Ic (x) = C2 ni i=1 26 ! C2 n = ni (ni "1) i=1 26 ! n(n "1) Master Informatique Sécurité des Réseaux 31 © Richard G. Terrat Janvier 2009
  • 34. • Indice de coïncidence d’un langage pi probabilité de ai issue de la table des fréquences – exemples français 0,074 anglais 0,065 • Indice de coïncidence d’une chaîne de caractère aléatoire Ic (L) ! pi 2 i=1 26 " Ic (t) = 1 26 ! 0,038 n = |y| longueur du cryptogramme y – estimation de la longueur de la clef m  test de Kasiski – partition du cryptogramme en sous-chaînes y1, y2, … de longueur n/m  colonnes d’un tableau en écrivant y en lignes de m lettres – calcul de Ic (yi) Méthode de cryptanalyse Master Informatique Sécurité des Réseaux 32 © Richard G. Terrat Janvier 2009
  • 35. 2. Cryptages par transpositions et permutations 2.1 La scytale spartiate 2.2 Cryptage par transposition 2.3 Cryptage par permutation 2.4 Cryptages mixtes 2.5 Cryptanalyse 2.1 La scytale spartiate • La scytale σκυτάλη (bâton) – Principe P = C = {a, b, …z }n = Z26 n K =N ∀ x ∈ P ∀ y ∈ C ∀ k ∈ K Ek (xij) = xji j ∈ [1..k] Dk (yij) = yji i ∈ [1..k]  le texte en clair est écrit en lignes de k colonnes  le cryptogramme est relevé en colonnes  ce cryptage est utilisé par Jules Verne dans voyage au centre de la terre (environ -500) Master Informatique Sécurité des Réseaux 33 © Richard G. Terrat Janvier 2009
  • 36. 2.2 Cryptage par transposition • Exemple x = ceci.est.un.message. k = 4 y = c e c i . e s t . u n . m e s s a g e .c..ma eeueg csnse it.s. 2.3 Cryptage par permutation • Principe P = C = {a, b, …z }n = Z26 n K = ∏ : {1..n} → {1..n}  ensemble des fonctions bijectives (permutations) ∀ x ∈ P ∀ y ∈ C ∀ π,π’ ∈ ∏ π’ = π-1 Eπ (x1, x2, …xn ) = (x π(1), xπ(2), …xπ(n) ) Dπ’ (y1, y2, …yn ) = (yπ’(1), yπ’(2), …yπ’(n) )  équivalent à un cryptage de Hill avec une matrice K (n,n) telle que ki,j = 1 si i = π(j) = 0 sinon Master Informatique Sécurité des Réseaux 34 © Richard G. Terrat Janvier 2009
  • 37. Exemple x = c e c i . e s t . u n . m e s s a g e . k = (4, 2, 1, 3) y = i e c c t e . s . u . n s e m s . g a e 2.4 Cryptages mixtes • Principe P = C = {a, b, …z }n = Z26 n K = {a, b, …z }m = Z26 m  le texte clef k définit une permutation π et sa longueur m définit une transposition ∀ x ∈ P ∀ y ∈ C ∀ k ∈ K Ek (xij) = x(πj)i j ∈ [1..m] Dk (yij) = yj(π’i) i ∈ [1..m] π’ = π-1 Giovanni Battista Della Porta (1535 - 1615) Master Informatique Sécurité des Réseaux 35 © Richard G. Terrat Janvier 2009
  • 38. Transposition suivi de permutation x = c e c i . e s t . u n . m e s s a g e . k = s o i r π(k) = (4, 2, 1, 3) m(k) = 4 1. transposition 2. permutation y = i t . s . e e u e g c . . m a c s n s e c e c i . e s t . u n . m e s s a g e . s o i r Permutation suivi de transposition x = c e c i . e s t . u n . m e s s a g e . k = s o i r π(k) = (4, 2, 1, 3) m(k) = 4 1. Permutation y1 = i e c c t e . s . u . n s e m s . g a e 2. transposition y = i t . s . e e u e g c . . m a c s n s e i e c c t e . s . u . n s e m s . g a e Master Informatique Sécurité des Réseaux 36 © Richard G. Terrat Janvier 2009
  • 39. Propriétés – Le cryptage par transposition T est idempotent – Le cryptage par permutation P est idempotent – Les cryptages P et T sont commutatifs – Donc : le cryptage P x T est idempotent  en fait une transposition est une permutation particulière 2.5 Cryptanalyse • Principe – Retrouver la permutation par « recollement » – Analyse de la distribution des bi-grammes, tri- grammes,…n-grammes Master Informatique Sécurité des Réseaux 37 © Richard G. Terrat Janvier 2009
  • 40. 3. Autres cryptages • Il y en a des centaines – Code Da Vinci – Code Playfair – Code Pigpen (l’enclos des cochons) – Code « la Bible » (Michael Drosnin) – Code ADFGVX – et bien d’autres encore … Master Informatique Sécurité des Réseaux 38 © Richard G. Terrat Janvier 2009
  • 41. I. 3 Cryptages composés Sommaire 1. Composition de systèmes cryptographiques 2. Cryptages par blocs et en chaîne 3. Cryptage de Feistel 4. Réalisation de cryptages Master Informatique Sécurité des Réseaux 39 © Richard G. Terrat Janvier 2009
  • 42. 1. Composition de systèmes cryptographiques • Idée (Shannon) : sur-crypter crypter un cryptogramme • Systèmes endomorphiques C = P S1 = < P, K1 ; E1 , D1 > S2 = < P, K2 ; E2 , D2 > • Composition de systèmes endomorphiques S = S1 x S2 = < P, K ; E, D > K = K1 x K2 K1 et K2 indépendants E = E2 o E1 z = E2 (E1 (x, k1 ), k2 ) x, z ∈ P D = D1 o D2 x = D1 (D2 (z, k’2 ), k’1 ) ki, k’i ∈ Ki Propriétés – Associativité (S1 x S2) x S3 = S1 x ( S2 x S3 )  toute composition endomorphique est associative – Commutativité S1 x S2 = S2 x S1  toute composition endomorphique n’est pas commutative – Idempotence S2 = S  beaucoup de compositions endomorphiques sont idempotentes Master Informatique Sécurité des Réseaux 40 © Richard G. Terrat Janvier 2009
  • 43. Itérations – Sn est une itération de S  si S idempotent, Sn n’a aucun intérêt  Exemples : substitutions, permutations  si S n’est pas idempotent Sn offre plus de sécurité que S  Exemple : DES • Propriété S1 et S2 idempotents et commutent ⇒ S1 x S2 idempotent Preuve (S1 x S2 ) x (S1 x S2 ) = S1 x ( S2 x S1 ) x S2 = S1 x ( S1 x S2 ) x S2 = (S1 x S1 ) x (S2 x S2 ) = S1 x S2 2. Cryptages par blocs et en chaîne 2.1 Cryptages par blocs 2.2 Cryptages en chaîne Master Informatique Sécurité des Réseaux 41 © Richard G. Terrat Janvier 2009
  • 44. 2.1 Cryptage par blocs u = x1 x2 … ∈ P* v = y1 y2… ∈ C* yi = E (xi, k )  les mots successifs d’un même texte sont cryptés de la même façon cryptanalyse facilitée E u v k 2.2 Cryptage en chaîne zi = fi (k, x1, x2, …xi-1 ) yi = E (xi, zi)  on construit une suite de clefs de cryptage zi à partie de la clef initiale k et de la suite des messages en clair précédemment cryptés E f x y z k Master Informatique Sécurité des Réseaux 42 © Richard G. Terrat Janvier 2009
  • 45. Système cryptographique en chaîne < P, C, K, L ; F, E, D > P, C, K : définitions habituelles L : alphabet de séquence de clefs F = (f1, f2, …) générateur de séquence fi : K x Pi-1 → L E : P x L → C D : C x L → P Exemple P = C = K = L = Z26 z1 = k zi = fi (xi-1) i > 1 ∀ x ∈ P ∀ y ∈ C ∀ p,q ∈ K E (xi, zi ) = xi + zi mod 26 D (yi, zi) = yi + zi mod 26 Master Informatique Sécurité des Réseaux 43 © Richard G. Terrat Janvier 2009
  • 46. 3. Cryptage de Feistel • Principe P = C = {0, 1 }n K = {0, 1 }m E : P x C x K → P x C E (x, y, k) = (y, f (y, k) ⊕ x ) f est une fonction de composition de substitutions et permutations E utilise un y ∈ C et fournit un x ∈ P Le cryptage de Feistel est donc défini de façon itérative Horst Feistel (1915-1990) Réalisation x ∈ P texte en clair de départ x = (L, R ) texte x scindé en 2 k = (k1, k2,…kr) calcul de clefs de ronde L0 = L R0 = R cryptogramme initial pour i = 1, 2,…r : rondes d’itération (Li, Ri) = (Ri-1, f (Ri-1, ki ) ⊕ Li-1 ) yi = (Li, Ri ) cryptogramme i yL = Rr cryptogramme final yR = Lr Master Informatique Sécurité des Réseaux 44 © Richard G. Terrat Janvier 2009
  • 47. Construction d’une ronde Li-1 Ri-1 ki Li Ri f + (Li, Ri) = (Ri-1, f (Ri-1, ki ) ⊕ Li-1 ) Décryptage Ri Li ki Ri-1 Li-1 f + (Ri-1, Li-1) = (Li, f (Li, ki ) ⊕ Ri ) même circuit mais permutation de R & L Master Informatique Sécurité des Réseaux 45 © Richard G. Terrat Janvier 2009
  • 48. Principe de la fonction f substitutionspermutations P c o d e u r d é c o d e u r Construction d’un étage E S1 S2 S3 S8 P Ri-1 ki f(Ri-1, ki) expansionf Master Informatique Sécurité des Réseaux 46 © Richard G. Terrat Janvier 2009
  • 49. Modes d’utilisation – ECB Electronic Codebook Mode  cryptage par blocs – CBC Block Chaining Mode  cryptage en chaîne – CFB Cipher Feedback Mode  clef modifiée par le cryptogramme – OFB Output Feedback Mode  clef modifiée par la sortie CBC Encryptage IV = y0 x1 y1 xi yi Ek Ek yi = Ek (xi ⊕ yi-1) Master Informatique Sécurité des Réseaux 47 © Richard G. Terrat Janvier 2009
  • 50. CBC Décryptage IV = y0 x1 y1 xi yi Dk Dk Dk (yi ) = xi ⊕ yi-1 xi = Dk (yi ) ⊕ yi-1 yi = Ek (xi ⊕ yi-1) CFB Encryptage IV = y0 x1 y1 xi yi Ek Ek yi = xi ⊕ Ek (yi-1) Master Informatique Sécurité des Réseaux 48 © Richard G. Terrat Janvier 2009
  • 51. CFB Décryptage IV = y0 x1 y1 xi yi Dk Dk xi = Ek (yi-1) ⊕ yi Dk = Ek ⇒ xi = Dk (yi-1) ⊕ yi yi = xi ⊕ Ek (yi-1) OFB Encryptage IV = y0 x1 y1 xi yi Ek Ek yi = Ek i (y0) ⊕ xi Master Informatique Sécurité des Réseaux 49 © Richard G. Terrat Janvier 2009
  • 52. OFB Décryptage IV = y0 x1 y1 xi yi Dk Dk Dk = Ek ⇒ xi = Dk i (y0) ⊕ yi yi = Ek i (y0) ⊕ xi Cryptanalyse – force brute • essais systématique de toutes les clefs – cryptogrammes uniquement • pas de solutions connues – couples de messages en clair et cryptogrammes • cryptanalyse différentielle – Biham et Shamir (1991) • cryptanalyse linéaire – Matsui (1994) Eli Biham Adi Shamir Master Informatique Sécurité des Réseaux 50 © Richard G. Terrat Janvier 2009
  • 53. 4. Réalisations de cryptages 4.1 DES 4.2 IDEA 4.3 AES 4.1 DES • Data Encryption Standard – développé par IBM en 1970 – normalisé par le NBS en 1977 – basé sur le cryptage de Feistel – texte en clair et cryptogramme de 64 bits – composé de 19 étages • 17 itérations (rondes) • 2 transpositions – clefs de 56 bits • expansion de la clef pour les « rondes » Master Informatique Sécurité des Réseaux 51 © Richard G. Terrat Janvier 2009
  • 54. Cryptage T it1 it2 it16 Échange G↔D T-1 transposition Itérations de Feistel transposition inverse expansion 64 bits 64 bits clef 56bits … … … … … … … … … … … … … … …………… lsbmsb ↑ Décryptage T it1 it2 it16 Échange G↔D T-1 transposition Itérations de Feistel transposition inverse expansion 64 bits 64 bits clef 56bits … … … … … … … … … … … … … … …………… msblsb ↓ Master Informatique Sécurité des Réseaux 52 © Richard G. Terrat Janvier 2009
  • 55. Triple DES • Faiblesse de la clef de 56 bits • Compatibilité avec le DES DES1 DES2 DES3 clef de 168 bits → ← →clef k de 56 bits k k k 4.2 IDEA • International Data Encryption Standard – Issu de PES Xueja Lai & James Massey Proposed Encryption Standard 1990 – Censé résister à la cryptanalyse différentielle (faiblesse du DES) – Utilisé pour • PGP Pretty Good Privacy • openSSL Secure Socket Level Master Informatique Sécurité des Réseaux 53 © Richard G. Terrat Janvier 2009
  • 56. Principe – Cryptage par blocs de 64 bits – Clefs de 128 bits – Cryptage itératif en 8 « rondes » – Utilisation d’opérations simples à câbler • addition modulo 2 ⊕ • addition modulo 16 • produit modulo 216 + 1  + Une « ronde » +  + + +    + + + + + + x1 x2 x3 x4 y1 y2 y3 y4 k1 k2 k3 k4 k5 k6 Master Informatique Sécurité des Réseaux 54 © Richard G. Terrat Janvier 2009
  • 57. Cryptage it1 it2 it8 + +  k1 k2 k3 k4 4 x 16 bits 4 x 16 bits ………………………… 4.3 AES • Advanced Encryption Standard – Appel d’offres lancé par le NIST en 1997 • National Institute of Standards and Technology pour remplacer le DES et résister aux cryptanalyse différentielle cryptanalyse linéaire – Choix d’AES le 2 Octobre 2000 – Auteurs Daemen & Rijndael Master Informatique Sécurité des Réseaux 55 © Richard G. Terrat Janvier 2009
  • 58. Principe • Cryptage de blocs de 32 bits – Opérations définies au niveau de l’octet • octet : élément du corps de Galois F28 • F28 : polynômes dans F2 modulo 1+x+x3+x4+x8 • mot : polynôme à coefficients dans F28 • mot de 32 bits : polynôme modulo x4+1 • Produit défini modulo x4+1 par a(x) tel que p(x) = a(x) mod (x4+1) inversible Master Informatique Sécurité des Réseaux 56 © Richard G. Terrat Janvier 2009
  • 59. II CRYPTOLOGIE « contemporaine » Sommaire 1. Les fondements p. 59 2. Les protocoles simples p. 77 Master Informatique Sécurité des Réseaux 57 © Richard G. Terrat Janvier 2009
  • 60. Master Informatique Sécurité des Réseaux 58 © Richard G. Terrat Janvier 2009
  • 61. II. 1 Les fondements Sommaire 1. Transmission de clefs 2. Confidentialité calculatoire 3. RSA Master Informatique Sécurité des Réseaux 59 © Richard G. Terrat Janvier 2009
  • 62. 1. Transmission de clefs 1.1 Les « puzzles » de Ralph Merkle 1.2 Le protocole de Diffie-Hellman 1.3 Les clefs collectives 1.1 Les « puzzles » de Ralph Merkle – première idée de transmission publique – rien n’est caché à l’observateur  l’espionnage est rendu difficile grâce à la complexité – Ralph C. Merkle • étudiant en physique à l’université de Berkeley (CA) en 1974 • élève de Lance Hoffman en cryptologie • devoir de fin d’année : communications privées par des canaux peu sûrs  obtient une mauvaise note due à l’incompréhension de Lance Hoffman  Pionnier de la cryptographie à clef publique Ralph C. Merkle (1952) Master Informatique Sécurité des Réseaux 60 © Richard G. Terrat Janvier 2009
  • 63. Le protocole • Le puzzle en clair – Alice envoie à Bob un million de puzzles tous différents, non ordonnés par leur numéro et cryptés chacun avec une clef différente de 20 bits non transmise – Bob cryptanalyse un puzzle pris au hasard puis envoie à Alice le numéro de ce puzzle en clair – La clef transmise est celle contenue dans ce puzzle  Eve espionne le dialogue entre Alice et Bob ! 000…000 n° du puzzle clef à transmettre « remplissage » 128 bits à zéro 20 bits Cryptanalyse • Méthode • par recherche exhaustive de la clef de 20 bits • la clef est trouvée quand on obtient les 128 zéros de tête du puzzle en clair • il faut tester 220 (≈ 106 ) clefs possibles • pour 100µs par clef → ≈ 1 minute par puzzle – Bob cryptanalyse un seul puzzle … ce qui lui prend environ 1 minute – Eve doit cryptanalyser 106 puzzles … ce qui lui prend environ …1 an ! Master Informatique Sécurité des Réseaux 61 © Richard G. Terrat Janvier 2009
  • 64. 1.2 Le Protocole de Diffie-Hellman • Principe 1976 – Alice et Bob se transmettent publiquement 2 nombres a et p tels que • p est un nombre premier • a est premier avec p – Alice choisit un nombre secret x puis transmet à Bob ax = ax mod p – Bob choisit un nombre secret y puis transmet à Alice ay = ay mod p – Alice calcule ay x mod p – Bob calcule ax y mod p  la clef transmise est k = ay x mod p = ax y mod p Whitfield Diffie (1944) Martin Hellman (1946) AliceAlice réseau public BobBob x a, p y ax mod p ay mod p ay mod p ax mod p (ay mod p)x mod p (ax mod p)y mod p = = ayx mod p axy mod p clef transmise EveEve Master Informatique Sécurité des Réseaux 62 © Richard G. Terrat Janvier 2009
  • 65. Propriété (ay mod p)x mod p = (ay mod p)x mod p – la fonction z = ax mod p est difficilement inversible x = loga z mod p est appelée logarithme discret elle est difficilement calculable – Eve ne « voit » que ax mod p (et ay mod p)  elle ne peut calculer ni x ni y  elle ne peut calculer la clef Attaque du « (wo)man in the middle » AliceAlice BobBob x w z y ax mod p ay mod p ax mod p ay mod p aw mod p az mod p aw mod p az mod p axw mod p ayz mod p awx mod p azy mod p EveEve Master Informatique Sécurité des Réseaux 63 © Richard G. Terrat Janvier 2009
  • 66. 1.3 Clefs collectives • Sécuriser un accès par plusieurs clefs détenues par des personnes différentes • Protocole de Adi Shamir 1978 – k clef maîtresse ouvrant l’accès  personne ne possède k – n nombre de personnes nécessaires pour obtenir l’accès – construction d’un polynôme de degré n-1 y = p(x) = an-1 xn-1 + an-2 xn-2 + … a2 x2 + a x + k – distribution de clefs partielles ki = (xi, yi) yi = p(xi)  couples de points du graphe de y = p(x) Adi Shamir Propriétés • n points déterminent les n coefficients d’un polynôme de degré n-1 – résolution d’un système de n équations à n inconnues – n clefs partielles ki permettent de déterminer la clef maîtresse k • raffinement du protocole – certaines personnes peuvent posséder plusieurs clefs partielles – hiérarchie de clefs hiérarchie de confiance Master Informatique Sécurité des Réseaux 64 © Richard G. Terrat Janvier 2009
  • 67. 2. Confidentialité calculatoire 2.1 Confidentialités parfaite et calculatoire 2.2 Fonctions à sens unique 2.3 Fonctions à sens unique avec brèche secrète 2.1 Confidentialités parfaite et calculatoire • Confidentialité parfaite – difficile à mettre en œuvre • clef jetable • contraintes sur la distribution probabiliste des clefs – en général pas indispensable • Confidentialité calculatoire – la cryptanalyse est difficile au sens de la complexité algorithmique Master Informatique Sécurité des Réseaux 65 © Richard G. Terrat Janvier 2009
  • 68. 2.2 Fonctions à sens unique • Définition – mathématiquement inversibles – mais la fonction inverse est difficile à calculer cette difficulté est souvent une conjecture cf. second principe de la thermodynamique – l’inversion devient facile par la connaissance d’un secret (ou brèche)  fonction à brèche secrète trapdoor function Exemple 1 x → ax mod p Exponentiation de a modulo p bijective p premier a primitif modulo p – L’inverse est le logarithme discret mod n P NP x loga y mod p ax mod p y Master Informatique Sécurité des Réseaux 66 © Richard G. Terrat Janvier 2009
  • 69. Exemple 2 p, q → p x q Produit de deux nombres premiers p, q – L’inverse est la factorisation d’un nombre P NP p, q p x q n Exemple 3 x → x a mod n – Elévation à la puissance a mod n ce n’est pas l’exponentiation ! – L’inverse est la racine aième modulo n P ? x a√ y mod n xa mod n y Master Informatique Sécurité des Réseaux 67 © Richard G. Terrat Janvier 2009
  • 70. 2.3 Fonctions à sens unique avec brèche secrète Calcul de x = a√ y mod n où y = xa mod n x = y1/a mod n = ya-1 mod n on pose b = a-1 x = yb mod n = (xa mod n)b mod n = xab mod n  Il faut trouver b tel que xab mod n = x Retour vers le passé … Le 18 Octobre 1640 Pierre Simon de Fermat écrit à son ami et confident Bernard Frénicle de Bessy : si p est premier alors ap - a est divisible par p donc (ap -a) mod p = 0 Mais … il ne donne aucune preuve !  cette propriété était connue en Chine pour a = 2  elle a été démontrée en 1683 par Leibniz si a est premier avec p ap-1 mod p = 1 ou encore ∀a ∈ NN ap mod p = a mod p  cette propriété est appelée « le petit théorème de Fermat » Pierre Simon de Fermat (1601 - 1665) Gottfried Wilhelm Leibniz (1646 - 1716) Master Informatique Sécurité des Réseaux 68 © Richard G. Terrat Janvier 2009
  • 71. Un siècle plus tard … En 1740 Leonhard Euler (re)démontre le petit théorème de Fermat En 1760 il donne 2 généralisations soit Zn* = { x ∈ Zn | pgcd (x,n) = 1 } et ϕ (n) = |Zn*|  ϕ (n) est le nombre de nombres premiers avec n et < n  ϕ (n) est appelé totient ou indicatrice d’Euler 1ère généralisation ∀ k ∈ Z si a est premier avec n ak.ϕ(n) mod n = 1 2ème généralisation∀ k ∈ Z si n = p x q , p et q premiers et si 0 ≤ a < n akϕ(n) + 1 mod n = a Leonhard Euler (1707 - 1783) Vers la brèche secrète … G1 : ∀ k ∈ Z, pgcd (a, n) = 1 ⇒ ak.ϕ(n) mod n = 1 n’impose pas a < n G2 : ∀ k ∈ Z, n = p x q , p et q premiers et 0 ≤ a < n ⇒ ak.ϕ(n) + 1 mod n = a n’impose pas pgcd (a, n) = 1 G1 ⊄ G2 et G2 ⊄ G1 Master Informatique Sécurité des Réseaux 69 © Richard G. Terrat Janvier 2009
  • 72. Retour au présent Trouver b tel que xab mod n = x Il suffit que ab soit multiple de ϕ(n) + 1 a.b = k.ϕ(n) + 1 ⇒ a.b mod ϕ(n) = 1 ⇒ b = a-1 mod ϕ(n)  ϕ(n) va servir de brèche secrète  ϕ(n) permet de calculer b en temps polynomial par l’algorithme d’Euclide étendu  conjectures :  ϕ(n) nécessite de connaître la factorisation de n  la factorisation de n = p x q est difficile La brèche de la fonction y → a√ y mod n P NP x, a, n x = a√ y mod n xa mod n = y y, a, n = p x q P brèche secrète n Master Informatique Sécurité des Réseaux 70 © Richard G. Terrat Janvier 2009
  • 73. Cryptographie utilisant une fonction à brèche secrète P NP x y P + brèche secrète • Propriétés tout est public sauf la brèche la brèche ne circule jamais sur le réseau contrairement à une clef privée 3. Cryptographie RSA Ronald Rivest, Adi Shamir, Leonard Adleman Master Informatique Sécurité des Réseaux 71 © Richard G. Terrat Janvier 2009
  • 74. 3.1 Principes 3.2 Mise en œuvre 3.3 Choix des facteurs premiers 3.4 Tests de primalité 3.5 Choix des clefs 3.6 Cryptage & décryptage 3.7 Cryptanalyse 3.1 Principes Cryptage endomorphe C = P = {0, 1}n n = p x q p et q premiers ∀ x ∈ P ∀ y ∈ C ∀ e, d ∈ Zn En,e : P → C y = xe mod n Dn,d : C → P x = yd mod n avec d.e mod ϕ(n) = 1  n et e sont publics et (n,e) est la clef publique  p et q sont secrets  ϕ(n) est la brèche secrète et d la clef secrète Master Informatique Sécurité des Réseaux 72 © Richard G. Terrat Janvier 2009
  • 75. 3.2 Mise en œuvre Détenteur du secret • choisit 2 nombres premiers p et q de grande taille (au moins 300 bits) • calcule n = p x q et ϕ(n) = (p-1) x (q-1) • choisit e premier avec ϕ(n) • calcule d = e-1 mod ϕ(n) • publie n et e • garde secret d (issu de ϕ(n))  Rappel d ne circule jamais sur le réseau aucun passage de clef n’est nécessaire 3.3 Choix des facteurs premiers grands nombres premiers – Densité des nombres premiers inférieurs à n • π (n) ≈ 1 / ln(n) exemple : π (2500) ≈ 350  pour des nombres de 500 bits, environ 1/350 sont premiers – Choix au hasard puis test de primalité • test de Fermat – choisir au hasard a – si an-1 mod n = 1 n est premier ou pseudo-premier – ρ(n) densité des nombres pseudo-premiers inférieurs à n – ρ(n) / π(n) → 0 quand n → ∞ théorème de Pomerance – Exemples de nombres pseudo- premiers : les nombres de Carmichael  le test de Fermat n’est pas assez sûr Master Informatique Sécurité des Réseaux 73 © Richard G. Terrat Janvier 2009
  • 76. 3.4 Tests de primalité • test de Solovay-Strassen – choisir au hasard a – test positif ssi a(n-1)/2 mod n = J (a/n)  J est le symbole de Jacobi – si n est composé la probabilité du test est < 1/2  répétition du test pour différentes valeurs de a • test déterministe en temps polynomial Agrawal, Kayal et Saxena sept. 2004 www.math.princeton.edu/~annals/issues/2004/Sept2004/Agrawal.pdf – Construction déterministe • n = 1 + p1 λ1 + p2 λ2 + … pk λk pi premiers λi ∈ N {0} • n premier ssi ∃ a ∈ Zn* a(n-1) mod n = 1 et ∀ p premier et p | (n-1) a(n-1)p mod n ≠ 1 3.5 Choix des clefs • Choix de e – premier avec ϕ(n) – test par l’algorithme d’Euclide • Calcul de d = e-1 mod ϕ(n) – Algorithme d’Euclide étendu polynomial Master Informatique Sécurité des Réseaux 74 © Richard G. Terrat Janvier 2009
  • 77. 3.6 Cryptage & décryptage • Emetteur du cryptogramme – Calcul de y = xe mod n polynomial • Récepteur du cryptogramme – Calcul de x = yd mod n idem  simplifications possibles en conservant p, q, d mod (p-1), d mod (q-1), q-1 mod p et en utilisant le théorème des restes chinois 3.7 Cryptanalyse – Tous les niveaux sont équivalents  possibilité d’attaque par texte choisi – Conjectures équivalentes • les facteurs premiers de n ne peuvent être calculés en temps polynomial • ϕ(n) ne peut être calculé en temps polynomial – Recherche de x connaissant y • calcul de x = e√y mod n • conjecture : x ne peut être calculé qu’avec d – Recherche de d connaissant e • calcul de d = e-1 mod ϕ(n) • conjecture : d ne peut être calculé sans ϕ(n) Master Informatique Sécurité des Réseaux 75 © Richard G. Terrat Janvier 2009
  • 78. Master Informatique Sécurité des Réseaux 76 © Richard G. Terrat Janvier 2009
  • 79. II. 2 Les protocoles simples Sommaire 1. Authentification 2. Signature électronique 3. Certification Master Informatique Sécurité des Réseaux 77 © Richard G. Terrat Janvier 2009
  • 80. 1. Authentification 1.1 Principe 1.2 Par clef publique 1.3 Sans apport d’information 1.1 Principe Virginie veut Vérifier le secret de Paul Paul peut Prouver qu’il possède un secret sans le révéler … que Eve Espionne par un dialogue… Master Informatique Sécurité des Réseaux 78 © Richard G. Terrat Janvier 2009
  • 81. 1.2 Par clef publique Notations kx : clef publique de x k’x : clef privée de x kp choix d’un défi x y = Ekp (x) z = Dk’p (y) z vérification z = x 1.3 Sans apport d’information • La grotte secrète A B C D 1. Virginie se place au point A 2. Paul entre dans la grotte jusqu’au point C ou D 3. Virginie va au point B et demande à Paul de sortir soit de C soit de D 4. Si Paul ne peut s’exécuter c’est qu’il n’a pas la clef Paul prétend pouvoir ouvrir la porte entre C et D mais ne veut pas le montrer Virginie veut vérifier ce que lui dit Paul Master Informatique Sécurité des Réseaux 79 © Richard G. Terrat Janvier 2009
  • 82. La grotte secrète : le « bluff » Paul peut sortir du bon côté sans avoir la clef si tous les choix sont équiprobables, Paul peut « bluffer » Virginie avec p = 1/2 Virginie répète le test n fois  la porte se referme automatiquement après chaque test Un usurpateur peut « bluffer » Virginie avec p = 1/2n  n = 20 ⇒ p = 1/220 ≈ 10-6 Exemple : co-isomorphisme de graphes G1 = < S ; R1 > G2 = < S ; R2 > G1 ≡ G2 ssi ∃ π : S → S | (u,v) ∈ R1 ⇔ (π(u), π(v)) ∈ R2  exemple 1 2 4 1 3 4 3 2 G1 G2π(G1,G2) = (3, 1, 4, 2) ≡ Master Informatique Sécurité des Réseaux 80 © Richard G. Terrat Janvier 2009
  • 83. Complexité π( G1, G2 ) G1 ≡ G2 P NP Le protocole construit π (H, Gi ) G1 & G2 construit π (G1, G2) H choisit j ∈ {1, 2 } équiprobablement j construit π (H, Gj ) π (H, Gj) vérifie π (H, Gj ) publie garde secret π (G1, G2) Master Informatique Sécurité des Réseaux 81 © Richard G. Terrat Janvier 2009
  • 84. Le « bluff » • Paul peut toujours construire π (H, Gj) si j = i π (H, Gj ) = π (H, Gi)  pas d’utilisation du secret si j ≠ i π (H, Gj ) = π (H, Gi ) ° π (Gi, Gj )  utilisation du secret nécessaire • Un usurpateur peut « bluffer » Virginie, donc construire π (H, Gj), si j = i • Preuve itérée n fois ⇒ probabilité d’usurpation = 1/2n Apport d’information • Eve peut intercepter la suite des triplets < Hk , jk, πk (Hk, Gjk ) > • Mais ces triplets peuvent être construits par n’importe qui Preuve G1 et G2 sont publics H peut être construit avec π, j et Gj  Les triplets n’apportent aucune information à Eve Master Informatique Sécurité des Réseaux 82 © Richard G. Terrat Janvier 2009
  • 85. 2. Signature électronique 2.1 Objectifs et Principe 2.2 Mécanisme 2.3 Formalisation 2.4 Inversion des clefs 2.5 Signature d’un message public 2.6 Signature d’un message secret 2.7 Falsification et Répudiation 2.8 Hachage 2.9 Signatures non reproductibles 2.1 Objectifs et Principe • Objectifs : empêcher – Falsification – Répudiation – Usurpation • Principe – Attacher à un message une information • Indissociable du message • Authentifiant son émetteur • Assurant l’intégrité du message • Vérifiable publiquement • Non reproductible Master Informatique Sécurité des Réseaux 83 © Richard G. Terrat Janvier 2009
  • 86. 2.2 Mécanisme – fonction de signature s = sig (k, x) – prédicat public de vérification ver (k, x, s) ⇔ s = sig (k, x) x s sigk verk 2.3 Formalisation < P, K, A ; S ; V > P textes en clair K clefs de signature A signatures S : P x K → A fonction de signature V : P x K x A → { vrai, faux } vérification Master Informatique Sécurité des Réseaux 84 © Richard G. Terrat Janvier 2009
  • 87. 2.4 Inversion des clefs • En-cryptages et Dé-cryptages inversibles k : clef publique k’ : clef secrète Dk’ (Ek (M)) = Dk (Ek’ (M)) = M – Exemple : RSA E = D 2.5 Signature d’un message public Alice clef secrète k’a Bob public ka x, s y = Dka (s)message : x vérification verka (x, s) = (x = y ) signature s = sigka (x) = Ek’a (x) Master Informatique Sécurité des Réseaux 85 © Richard G. Terrat Janvier 2009
  • 88. 2.6 Signature d’un message secret Alice clef secrète k’a Bob clef secrète k’b public ka kb y = Ekb (s) y s = Dk’b (y) signature s = sigka (x) = Ek’a (x) vérification verka (x, s) = (x = Dka (s) ) message : x 2.7 Falsification et Répudiation • Eve ne peut décrypter y  seul Bob possède k’b • Bob ne peut falsifier x • Alice ne peut répudier x • Eve ne peut signer x  seule Alice peut produire Ek’a (x) • Cas d’un message secret – La signature n’est pas publique Master Informatique Sécurité des Réseaux 86 © Richard G. Terrat Janvier 2009
  • 89. 2.8 Hachage • Fonction de hachage cryptographique P textes en clair Z empreintes h : P → Z fonction de hachage z = h (x)empreinte de z h : {0, 1}* → {0, 1}n  z : longueur fixe  h n’est pas injective  h-1 n’existe pas  attaque des anniversaires possible Signature d’un message public Alice clef secrète k’a Bob public h, ka empreinte : z = h (x) x, s z = Dka (s) signature s = sigka (x) = Ek’a (z) vérification verka (x, s) = (z = h(x) ) message : x Master Informatique Sécurité des Réseaux 87 © Richard G. Terrat Janvier 2009
  • 90. Falsification et répudiation • x n’est pas secret • vérification publique  D, ka, h sont publics • Falsification par Bob Recherche d’un x’ tel que h(x’) = h(x) collision faible • Répudiation par Alice Fabrication de x, x’ tels que h(x’) = h(x) collision forte • Eve ne peut signer x  seule Alice peut produire Ek’a (x) Construction de la fonction de hachage – h : {0, 1}* → {0, 1}n – on utilise souvent une fonction g : {0, 1}m → {0, 1}n m > n – on calcule n pour rendre difficile l’attaque des anniversaires Master Informatique Sécurité des Réseaux 88 © Richard G. Terrat Janvier 2009
  • 91. Construction par cryptage P = C = K = {0, 1}n E : P x K → C g : {0, 1}n x {0, 1}n → {0, 1}n exemples g (x, k) = e (x, k) ⊕ x g (x, k) = e (x, k) ⊕ x ⊕ k g (x, k) = e (x ⊕ k, k ) ⊕ x g (x, k) = e (x ⊕ k, k ) ⊕ x ⊕ k Construction de Merkle g : {0, 1}m → {0, 1}n r = m - n > 1 x ∈ {0, 1}* l = |x| u = 0i x |u| mod r = 0  x est complété avec des « 0 » en tête y = 0j l |y| mod (r-1) = 0  l est complété avec des « 0 » en tête y = t1 t2 … |ti| = r-1  y est découpé en blocs de longueur r-1 Master Informatique Sécurité des Réseaux 89 © Richard G. Terrat Janvier 2009
  • 92. v = 1 w1 1 w2 … « 1 » est ajouté devant chaque bloc w = u 0r v  w est composé de t blocs de longueur r H est construite inductivement H0 = 0n Hi = g (Hi-1 wi) 1 ≤ i ≤ t h = Ht Propriétés et exemple • propriété g résiste aux collisions ⇒ h résiste aux collisions • exemple r = 4 x = 11101 l = 101 u = 0001 1101 v = 1101 w = 0001 1101 0000 1101 t = 4 h = g ( g ( g ( g (0n 0001)1101)0000)1101) Master Informatique Sécurité des Réseaux 90 © Richard G. Terrat Janvier 2009
  • 93. Taille de l’empreinte P : textes en clair |P| = m Z : empreintes |Z| = n h : P → Z fonction de hachage théorème des anniversaires m > 2n/2 ⇒ pr ( ∃ x, x’ ∈ P x ≠ x’ h(x) = h(x’) ) > 1/2 exemples n = 40 ⇒ m > 220 220 µs ≈ 1s n = 128 ⇒ m > 264 264 µs ≈ 500 000 ans n = 160 ⇒ m > 280 280 µs ≈ 2 AU Autres constructions • Basées sur la construction de Merkle MD5 Message-Digest Algorithm (n = 128 bits ) SHA Secure Hash Algorithm (n = 160 bits) • Basées sur la construction de Elgamal DSS Digital Signature Standard DSA Digital Signature Algorithm issues de l’algorithme de signature dû à Taher Elgamal, basé sur le logarithme discret ‫ﺭﻩﺍﻁ‬ ‫ﻝﻡﺝﻝﺍ‬ Taher Elgamal (1955) Master Informatique Sécurité des Réseaux 91 © Richard G. Terrat Janvier 2009
  • 94. 2.9 Signature non reproductible • Objectif : éviter le re-jeu • Méthode : introduction d’un « nonce » (number once) dans la signature – exemple : compteur, date N : ensemble des nonces S : P x K x N → A fonction de signature V : P x K x N x A → {vrai, faux } vérification 3. Certification 3.1 Objectif et Principe 3.2 Contenu d’un certificat 3.3 Utilisations Master Informatique Sécurité des Réseaux 92 © Richard G. Terrat Janvier 2009
  • 95. 3.1 Objectif et Principe • Objectif – Association clef publique - identité – Publication sécurisée de la clef publique – Contre l’attaque du « man in the middle » • Principe – Tiers de confiance • centralisés : autorités de certification CA • distribués : chaînes de confiance PGP 3.2 Contenu d’un certificat – Contenu minimum en clair A, kA, n • A : identité de A nom, adresse IP, domaine, etc … • kA : clef publique de A • Nonce – Informations complémentaires • Date de limite de validité • Type de cryptage utilisant la clef • Etc … – Signature du tiers de confiance Master Informatique Sécurité des Réseaux 93 © Richard G. Terrat Janvier 2009
  • 96. 3.3 Utilisations – Enregistrement de la clef publique – Vérification de l’identité du détenteur d’un secret – Distribution de clefs de session  généralement privées Master Informatique Sécurité des Réseaux 94 © Richard G. Terrat Janvier 2009
  • 97. III CRYPTOLOGIE futuriste Sommaire 1. Fondements 2. Cryptographie quantique 3. Cryptanalyse quantique Master Informatique Sécurité des Réseaux 95 © Richard G. Terrat Janvier 2009
  • 98. 1. Fondements 1.1 L ’impasse épistémologique 1.2 La théorie de quanta 1.3 Les fondateurs 1.4 Citations 1.5 Bibliographie 1.1 L’impasse épistémologique « La physique est définitivement constituée dans ses concepts fondamentaux. Tout ce qu’elle peut désormais apporter, c’est la détermination précise de quelques décimales supplémentaires. Il y a bien deux petits problèmes : celui du résultat négatif de l’expérience de Michelson et Morley et celui du corps noir, mais ils seront rapidement résolus et n’altèrent en rien notre confiance. » Lord Kelvin 1892 William Thomson Lord Kelvin (1824-1907) Master Informatique Sécurité des Réseaux 96 © Richard G. Terrat Janvier 2009
  • 99. Théorie de la relativité • Expérience de Michelson et Morley – Le vent d’éther n’existe pas (le Vième élément)  la mécanique de Newton : additivité des vitesses est incompatible avec la propagation des ondes électromagnétiques de Maxwell : constance de la vitesse de la lumière  théorie de la relativité : Einstein  abandon des repères absolus d’espace et de temps pour décrire les lois physiques  seules restent invariantes les constantes cosmologiques Physique quantique • Rayonnement du corps noir – L’énergie émise est discontinue  théorie des «quanta»  aucune grandeur physique n’a de mesure continue  toute mesure apporte une quantité d’information bornée  l’état d’un système ne peut être connu que par sa mesure ceci constitue « l’interprétation de Copenhague » Master Informatique Sécurité des Réseaux 97 © Richard G. Terrat Janvier 2009
  • 100. 1.3 Les fondateurs Thomas Young (1773-1829) Heinrich Rudolf Hertz (1857-1894) Max Planck (1858-1947) Paul Langevin (1872-1946) Albert Einstein (1879-1955) Niels Bohr (1885-1962) Edwing Schrödinger (1887-1961) Holly Compton (1892-1962) Wolfgang Pauli (1900-1958) Enrico Fermi (1901-1954) Werner Heisenberg (1901-1976) Paul Dirac (1902-1984) Louis de Broglie (1892-1987) Richard Feynman (1918-1988) 1.4 Citations « Le but de la physique n'est pas de découvrir ce qu'est la nature, mais ce qu'on peut dire sur elle » Niels Bohr « Quiconque peut contempler la mécanique quantique sans avoir le vertige, n’y a rien compris » Niels Bohr « Si quelqu’un prétend avoir compris la théorie quantique, c’est la preuve qu’il n’y a rien compris » Richard Feynman Niels Bohr (1885-1962) Richard Feynman (1918-1988) Master Informatique Sécurité des Réseaux 98 © Richard G. Terrat Janvier 2009
  • 101. 1.5 Bibliographie • Initiation à la mécanique quantique - Elie Belorizky - Dunod - Avril 2000 • Introduction à la mécanique quantique - Jean Hladik, Michel Chrysos - Dunod - Avril 2000 • Alice au pays des quanta - Robert Gilmore - Le Pommier - Mai 2000 • Introduction a l'information quantique - Michel Le Bellac - Belin - Sept. 2005 • Leçons sur l'informatique - Richard Feynman - Odile Jacob - Sept. 2006 • Mes premiers pas en mécanique quantique - Christos Gougoussis, Nicolas Poilvert - Ellipse - Janvier 2007 • Leçons sur la physique - Richard Feynman - Odile Jacob - Oct. 2007 • Vous voulez rire, Monsieur Feynmann ! - Odile Jacob - Oct. 2007 • Vous y comprenez quelque chose Monsieur Feynmann ? - Odile Jacob - Oct. 2007 2. Cryptographie quantique 2.1 Une expérience surprenante 2.2 Le protocole BB84 2.3 La cryptanalyse Master Informatique Sécurité des Réseaux 99 © Richard G. Terrat Janvier 2009
  • 102. 2.1 Une expérience surprenante Explication L’état de la polarisation est défini par un vecteur dans un espace à 2 dimensions |Ψ> = a|x> + b|y> notation de Dirac où x et y sont les vecteurs de base si α est l’angle de polarisation a = cos α b = sin α a2 + b2 = 1 α Ψ x y a b Master Informatique Sécurité des Réseaux 100 © Richard G. Terrat Janvier 2009
  • 103. Propriétés quantiques Un photon de polarisation α rencontrant un filtre d’angle 0 dans le repère <x, y> est transmis avec la probabilité p = cos2α est absorbé avec la probabilité q = sin2α soit pour α = 0 ⇒ p = 1 α = π/2 ⇒ p = 0 α = ± π/4 ⇒ p = 1/2 ET si p > 0 il ressort du filtre avec la polarisation … 0 !  On ne peut donc pas savoir quelle était la polarisation du photon avant son passage dans le filtre ! Exemples Master Informatique Sécurité des Réseaux 101 © Richard G. Terrat Janvier 2009
  • 104. 2.2 Le protocole BB84 Gilles Brassard (1955) Principe Alice code un message par des photons polarisés en utilisant aléatoirement l’un des jeux de filtres ou Exemple : 0 codé ou 1 codé ou Bob décode le message en utilisant aléatoirement un filtre ou Charles Bennett (1943) Transmission de clef 1. Alice envoie à Bob un message codé selon le principe précédent 2. Bob décode le message en posant aléatoirement des filtres et 3. Alice transmet à Bob ses choix de filtres en clair 4. Bob transmet à Alice ses bons choix en clair  Alice et Bob considèrent la suite de bits correctement décodés par Bob comme clef  La clef peut être utilisée comme choix de jeux de filtres entre Alice et Bob : par exemple 0 = 1 = Master Informatique Sécurité des Réseaux 102 © Richard G. Terrat Janvier 2009
  • 105. Notations simplifiées • Filtres Dans ce qui suit + et × représenteront pour Alice les jeux pour Bob les filtres • Polarisations seront utilisées pour Exemple message 1 0 1 1 0 0 1 1 0 0 1 1 polarisation + + × + × × × + × + + × émission filtres + × + + × × + + × + × × réception 1 0 0 1 0 0 1 1 0 0 0 1 validation + + × + × × × + × + + × confirmation V F F V V V F V V V F V clef transmise AliceBobAliceBob 1 3 4 Master Informatique Sécurité des Réseaux 103 © Richard G. Terrat Janvier 2009
  • 106. Remarques • Les phases 3 et 4 peuvent être interverties dans ce cas Bob indique ses choix de filtres à Alice qui valide les bons choix (ceux qu’elle a fait) • Les transmissions des phases 3 et 4 peuvent se faire sur un canal non quantique ou sur le même canal en convenant à l’avance d’un jeu de polarisation : + ou × Caractéristiques physiques • Le comportement quantique des photons nécessite – une très faible quantité de photons par bit transmis donc – une très faible énergie donc – un faible rapport signal/bruit donc – une forte sensibilité aux pertes et erreurs de transmission  Nécessité d’un codage redondant (ex : CRC) – détecteur / correcteur d’erreurs Master Informatique Sécurité des Réseaux 104 © Richard G. Terrat Janvier 2009
  • 107. Ajout de redondance La redondance ne peut porter sur tout le message transmis par Alice mais uniquement sur les bits validés en commun  Elle doit donc être fabriquée et transmise après la phase de validation  Elle va s’avérer inefficace en cas d’interception du message par Eve  Elle doit être transmise en clair et va donc apporter de l’information à Eve ! Mesure quantique • La mesure destructive de la polarisation a pour conséquences – l’impossibilité de répéteurs, routeurs, commutateurs  transmission de point à point uniquement – la modification du message transmis en cas d’interception :  en moyenne 1/4 des bits seront altérés (50% de mauvais choix de filtres par Eve et 50% de mauvaises mesures par ces filtres)  l’introduction de la redondance est inefficace pour la détection d’intrusion Master Informatique Sécurité des Réseaux 105 © Richard G. Terrat Janvier 2009
  • 108. 2.3 Cryptanalyse • Il n’y a pas de cryptanalyse passive !  toute intrusion pour capter un message le modifie !  cette modification est aléatoire et ne peut donc être utilisée pour : falsifier un message effectuer une attaque « man in the middle »  la seule parade possible est de procéder à une détection d’intrusion et de recommencer tout le protocole  la transmission peut être éternellement compromise si l’intrusion est permanente Détection d’intrusion • Protocole simple – Alice et Bob vont tester une partie aléatoire des bits du message validé en transmettant en clair leur position et leur valeur sur un canal non nécessairement quantique – s’il y a concordance • ces bits sont retirés du message transmis car Eve a pu en prendre connaissance • le message ainsi amputé est validé – sinon • Alice et Bob supputent une intrusion • ils abandonnent le message transmis Master Informatique Sécurité des Réseaux 106 © Richard G. Terrat Janvier 2009
  • 109. Conjectures • Impossibilité de « cloner » un photon – Eve pourrait prendre une copie du message transmis puis appliquer ensuite les bons filtres transmis par Alice et Bob • Impossibilité de « capter » une partie des photons – Chaque bit est en fait émis par plusieurs photons de même polarisation – Eve pourrait alors en capter certains et laisser passer les autres donc avoir une copie du message – Cette impossibilité est assurée par le fait qu’Eve ne possède pas de détecteur plus sensible que celui de Bob 3. Cryptanalyse quantique 3.1 L’ordinateur quantique 3.2 Les algorithmes quantiques 3.3 La complexité quantique Master Informatique Sécurité des Réseaux 107 © Richard G. Terrat Janvier 2009
  • 110. 3.1 L’ordinateur quantique • Le bit quantique ou q-bit – tout élément physique quantique décrit par une fonction dans un espace à 2 dimensions |Ψ> = a|0> + b|1> où 0 et 1 sont les vecteurs de base et a2 + b2 = 1 • a2 est la probabilité d’observer |Ψ> = |0> • b2 est la probabilité d’observer |Ψ> = |1> – tant que l’élément n’est pas observé, a et b sont inconnus Interprétations • la méconnaissance de |Ψ> peut être interprétée comme – un état aléatoire avec la distribution p|0> = a2 et p|1> = b2 – une « superposition » de 2 états observables contenant l’état |0> dans la proportion a2 et l’état |1> dans la proportion b2 – un ensemble de 2 univers où l’état est déterminé pour chacun d’eux : dans l’univers 1 |Ψ> = |0> et dans l’univers 2 |Ψ> = |1> • ou selon l’interprétation de Copenhague – une incertitude due à l’absence d’observation – cette incertitude peut être évaluée par la mesure de Shannon • I (|Ψ> ) = - a2 log2 a2 - b2 log2 b2 • elle a comme valeur maximum pour a2 = b2 = 1/2 … 1 bit ! Master Informatique Sécurité des Réseaux 108 © Richard G. Terrat Janvier 2009
  • 111. Les composants « classiques » – on sait que toute fonction booléenne peut être réalisée à l’aide du seul composant ¬∧ (NAND) défini par ¬∧ (0,0) = ¬∧ (0,1) = ¬∧ (1,0) = 1 et ¬∧ (1,1) = 0 – par exemple ¬a = ¬∧(a,1) a∧b = ¬ (¬∧ (a,b)) a∨b = ¬∧(¬a, ¬b) – mais il ne peut être utilisé comme composant quantique • il n’agit pas sur des q-bits • une fonction quantique doit être mathématiquement réversible c’est à dire que f (f (x)) = x Les composants quantiques • CNOT Controlled Not cnot (a, b) = (a, a⊕b)  réversible car cnot (a, a⊕b) = (a, b) – propriété : cnot (a, 0) = (a, a) cnot (a, 1) = (a, ¬ a) • Toffoli tof (a, b, c) = (a, b, c⊕(a∧b))  réversible car tof (a, b, c⊕(a∧b)) = (a, b, c) – propriété : tof (a, b, 1) = (a, b, ¬∧(a,b)) Tomasso Toffoli (1943) Master Informatique Sécurité des Réseaux 109 © Richard G. Terrat Janvier 2009
  • 112. La transformation de Hadamard • Permet la « mise en état quantique » H |0> = 2-2 (|0> + |1>) H |1> = 2-2 (|0> - |1>) – Propriété la mesure de |Ψ> = H |0> donne |0> avec la probabilité 1/2 |1> avec la probabilité 1/2 Jacques Salomon Hadamard (1865-1963) 3.2 Les algorithmes quantiques • Parallélisme – une fonction f sur un q-bit (ou un ensemble de q-bits) agit sur l’état |Ψ> donc sur |0> en même temps que sur |1> donc • a priori, pour un problème donné, le calcul de f sera plus rapide par un algorithme quantique que par un algorithme classique mais • il n’est possible d’observer le résultat de f que pour un et un état d’un q-bit • le parallélisme du calcul ne permet donc pas d’observer les résultats de f pour plusieurs valeurs des données – peu de problèmes admettent donc des algorithmes quantiques Master Informatique Sécurité des Réseaux 110 © Richard G. Terrat Janvier 2009
  • 113. Algorithme de Deutsch • Calcul de f(0) = f(1) – algorithme classique complexité 2*C • calcul de f (0) complexité C • calcul de f (1) complexité C • calcul de f (0) = f(1) – algorithme quantique complexité C • calcul de f (|Ψ> = 2-2 |0> + 2-2 |1>) • mesure de f(0) = f(1)  il n’y a pas à mesurer f(|0>) ET f(|1>) David Deutsch (1953) Algorithme de Grover • Recherche d’un élément dans un tableau x tel que y = T(x) T: tableau [1:N] – algorithme classique • parcours du tableau T complexité N/2 en moyenne – algorithme quantique • utilisation d’un registre de n q-bits pour stocker T • construction de f(x) de domaine {0, 1, … 2n-1} telle que f(x) = 0 si x≠ y et f(x) = 1 si x = y complexité N1/2 Lov Kumar Grover (1961) Master Informatique Sécurité des Réseaux 111 © Richard G. Terrat Janvier 2009
  • 114. Factorisation de n = p × q – algorithmes classiques • complexité inconnue ⊆ NP • algorithmes exponentiels  on sait que si a < n et pgcd (a,n) = 1 f : x → ax mod n est périodique de période r et p = pgcd (ar/2 - 1, n) q = pgcd (ar/2 + 1, n) en effet ar - 1 = (ar/2 - 1) (ar/2 + 1) mod n = 0 si r = φ (n)  calculer p et q revient donc à trouver la période de x → ax mod n Algorithme de Shor – recherche la période r d’une fonction f : x → ax  la mesure de r nécessite le calcul de f mais pas la mesure du résultat de ce calcul (cf. algorithme de Deutsch)  r peut être calculé en temps polynomial par des fonctions quantiques  Donc la factorisation de n = p × q est de complexité P sur un ordinateur quantique Peter Shor (1959) Master Informatique Sécurité des Réseaux 112 © Richard G. Terrat Janvier 2009
  • 115. 3.3 la complexité quantique • Constatations – le calcul quantique est plus rapide que le calcul classique à cause du parallélisme mais – la mesure des résultats d’une fonction quantique ne permet pas d’obtenir toutes les valeurs de cette fonction – il existe des algorithmes quantiques polynomiaux pour résoudre des problèmes dont on ne connaît pas d’algorithme classique polynomial (factorisation) – on ne connaît aucun problème NP admettant un algorithme quantique polynomial  l’algorithmique quantique ne donne actuellement aucune information sur la conjecture P = NP Conjecture • BQP : Bounded error, Quantum Polynomial time – classe des problèmes quantiques polynomiaux • BPP : Bounded error, Probabilistic Polynomial time – classe des problèmes probabilistes polynomiaux • P : Polynomial time – classe des problèmes polynomiaux • NP : Non deterministic Polynomial time – classe des problèmes non deterministes polynomiaux on sait que P ⊆ BPP ⊆ NP et que P ⊆ BPP ⊆ BQP mais BQP ? NP Master Informatique Sécurité des Réseaux 113 © Richard G. Terrat Janvier 2009
  • 116. Master Informatique Sécurité des Réseaux 114 © Richard G. Terrat Janvier 2009
  • 117. Sécurité des Réseaux TD & Annales d’examens Université Montpellier II Faculté des Sciences Département Informatique Master Richard G. TERRAT
  • 118.
  • 119. TD N°1 Systèmes cryptographiques Exercice 1 On considère le système cryptographique suivant P = {a, b} avec la distribution p (a) = 1/4 p (b) = 3/4 K = {k1, k2, k3} avec la distribution p (k1) = 1/2 p (k2) = p (k3) = 1/4 C = {1, 2, 3, 4} E a b k1 1 2 k2 2 3 k3 3 4 Calculer H(P) H(C) H(K) H(K/C) H(P/C) Ce système assure-t-il une confidentialité parfaite ? Exercice 2 Mêmes questions avec P = {a, b, c} avec la distribution p (a) = 1/2 p (b) = 1/3 p(c) = 1/6 K = {k1, k2, k3} avec la distribution uniforme C = {1, 2, 3, 4} E a b c k1 1 2 3 k2 2 3 4 k3 3 4 1 Master Informatique Sécurité des Réseaux 1 © Richard G. Terrat Janvier 2009
  • 120. TD N°2 Complexité « concrète » Un cryptanalyste amateur, programmeur hors pair, mais peu au fait des problèmes de complexité, décide de s’attaquer au cryptage par substitution monoalphabétique, pour l’alphabet latin de 26 lettres, en essayant systématiquement toutes les clefs possibles. Le programme qu’il a écrit et l’ordinateur qu’il utilise pour ce faire permettent de tester 1 million de clefs par seconde ! Calculer le temps qu’il lui faudra pour tester toutes les clefs possibles, en exprimant ce temps en unités AU (âge de l’univers, estimé à 15 milliards d’années). Ce même amateur veut étendre sa méthode aux clefs binaires de longueur n. A la même vitesse de 1 million de tests pas seconde, quelle est la valeur maximum de n pour tester toutes les clefs possibles en 1 AU ? Simplifications dans Z26 Peut-on déduire de ab = ac mod 26 que b = c ? Donner des exemples et interpéter Equations du premier degré dans Z26 Quel est l’ensemble des solutions des équations suivantes ? 7x = 3 mod 26 4x = 3 mod 26 ax = b mod 26 Fonctions affines dans Z26 Les fonctions suivantes sont-elles injectives ? y = 7x + 3 mod 26 y = 4x + 3 mod 26 y = ax + b mod 26 L’ensemble Z*26 On définit l’ensemble des Z*26 constitué des entiers modulo 26 auquel on a retiré tous les nombres non premiers avec 26. Quel est le cardinal de cet ensemble ? On munit cet ensemble des lois habituelles + modulo 26 et x modulo 26 Cette structure est elle : un groupe pour la loi + ? si oui est-il abélien ? un groupe pour la loi x ? si oui est-il abélien ? un corps pour les lois + et x ? Master Informatique Sécurité des Réseaux 2 © Richard G. Terrat Janvier 2009
  • 121. TD N°3 Cryptanalyse d’un cryptage monoalphabétique multiplicatif Définition P = C = {a, b, …z } = Z26 K = { k ∈ Z26 | pgcd (k,26) = 1 } ∀ x ∈ P ∀ k ∈ K ∀ y ∈ C Ek(x) = k.x mod 26 Dk(y) = k-1 .y mod 26 Cryptogramme v ∈ C* = rawfejbanareqssqbdawkrskwk Le texte x est en français Procéder ainsi : 1. Faire différentes hypothèses sur le cryptage de la lettre e 2. Pour chacune de ces hypothèses résoudre l’équation y = k.x mod 26 3. Pour chaque valeur de k trouvée, chercher la valeur de u ∈ P* dont v est le cryptogramme Master Informatique Sécurité des Réseaux 3 © Richard G. Terrat Janvier 2009
  • 122. TD N°4 Arithmétique modulo n Calcul d’un inverse On sait qu’un élément x ∈ Zn est inversible ssi pgcd (x,n) = 1 Pour calculer x-1 mod n, on peut utiliser la table de multiplication Etienne Bezout dans Zn, mais il y a mieux. (1730-1783) x-1 mod n peut être calculé par l’algorithme d’Euclide étendu. Rappel : algorithme d’Euclide (Euclide ≈ -300) calcul du pgcd (x, n) x < n on construit la suite ri-2 = qi-1 ri-1 + ri 0 < ri < ri-1 i >1 avec r0 = n r1 = x cette suite converge avec rm-1 = qm rm (rm+1 = 0) on montre que ∀i 1 ≤ i ≤ m pgcd (ri-1, ri) = pgcd (n, x) donc pgcd (x, n) = pgdc (n, x) = rm Algorithme d’Euclide étendu (Bezout ≈ 1760) calcul de x-1 mod n pgcd (x, n) = 1 on construit la suite tj = tj-2 – qj-1 tj-1 mod r0 avec t0 = 0 t1 = 1 cette suite converge avec tm+1 = 0 Montrer que ∀j 0 ≤ j ≤ m rj = tj r1 mod r0 En déduire que x-1 mod n = tm Calculer 28-1 mod 75 37-1 mod 108 Ecrire l’algorithme d’Euclide étendu Master Informatique Sécurité des Réseaux 4 © Richard G. Terrat Janvier 2009
  • 123. Algèbre modulo n Congruences linéaires 秦九韶 On cherche à résoudre le système de n équations d’inconnue x Ch’in Chiu-Shao (1202 - 1261) ∀i 1 ≤ i ≤ n x = ai mod mi où ∀i, j i≠j pgcd (mi, mj) = 1 Théorème des restes chinois (Ch’in Chiu-Shao – 1247) il existe une et une seule solution modulo M = mi i=1 n ! On définit la fonction π : ZM → Zm1 x Zm2 x … Zmn par Π (x) = (x mod m1, x mod m2, … x mod mn) Calculer π (x) ∀ x ∈ ZM pour n = 2, m1 = 5, m2 = 3 On définit Mi = M / mi et yi = Mi -1 mod mi Montrer l’existence de Mi et yi On définit la fonction ρ : Zm1 x Zm2 x … Zmn → ZM par X = ! (a1, a2, !an ) = ai Mi yi mod M i=1 n " Montrer que ∀i 1 ≤ i ≤ n X = ai mod mi En déduire que X est une solution Montrer que π est bijective et que ρ = π-1 En déduire que X est l’unique solution Résoudre le système x = 5 mod 7 = 3 mod 11 = 10 mod 13 Ecrire l’algorithme de la solution du problème des restes chinois Master Informatique Sécurité des Réseaux 5 © Richard G. Terrat Janvier 2009
  • 124. TD N°5 Arithmétique modulo n Montrer que (a+b) mod n = ((a mod n) + (b mod n)) mod n (a*b) mod n = ((a mod n) * (b mod n)) mod n (ax mod n) mod n = (a mod n)x mod n (a*(b+c)) mod n = ((a*b) mod n + (a*c) mod n) mod n (ax mod n)y mod n = (ay mod n)x mod n = axy mod n Exponentiation modulo n x = x0 20 + x121 + x222 + …xk2k xi ∈ {0,1} écriture de x en binaire Montrer que ax modn = a2i modn {i xi =1} ! Avec a2i modn = (a2i!1 modn)2 modn Calculer 1773 mod 133 1772 mod133 Nombres primitifs p premier a est primitif mod p ssi a → ax | 0 ≤ x ≤ p-2 bijective dans Zp* Zp* = Zp {0} En déduire y → loga y est définie ssi a est primitif Montrer que 2, 6, 7, 11 sont primitifs modulo 13 et que 1, 3, 4, 5, 8, 9, 10, 12 ne le sont pas Master Informatique Sécurité des Réseaux 6 © Richard G. Terrat Janvier 2009
  • 125. TD N°6 Montrer par un exemple qu’on peut avoir a mod n ≠ 0 et b mod n ≠ 0 et a.b mod n = 0 Lemme de Gauss Montrer que ∀ a, b, n ∈ Z a.b mod n = 0 et pgcd (a,n) = 1 ⇒ b mod n = 0 Le petit théorème de Pierre Simon de Fermat (1640) Soit p premier , a ∈ Z et pgcd (a, p) = 1 Montrer que ∀ m ∈ Zp m.a mod p ≠ 0 En déduire ∀ m, n ∈ Zp m.a mod p = n.a mod p ⇒ m = n Puis {a mod p, 2a mod p, …(p-1)a mod p} = {1, 2, … p-1} Et a . 2a . …(p-1)a mod p = (p-1)! mod p Démontrer que ap-1 mod p = 1 Calculer directement 2421 mod 13 Les généralisations de Leonhard Euler (1760) Soit Zn* = {x ∈ Zn | pgcd (x,n) = 1 } |Zn*| = ϕ (n) k ∈ Z Montrer que si n = p.q p et q premiers ϕ (n) = (p-1).(q-1) G1 Soit a ∈ Z et pgcd (a, n) = 1 Démontrer que ak.ϕ(n) mod n = 1 Calculer 168 mod 15 et 169 mod 15 En déduire que ak.ϕ(n) mod n = 1 ⇒ ak.ϕ(n)+1 mod n = a est faux G2 Soit n = p.q p et q premiers et a ∈ Zn Démontrer que ak.ϕ(n)+1 mod n = a Calculer 39 mod 15 et 38 mod 15 En déduire que ak.ϕ(n)+1 mod n = a ⇒ ak.ϕ(n) mod n = 1 est faux Master Informatique Sécurité des Réseaux 7 © Richard G. Terrat Janvier 2009
  • 126. TD N°7 Théorème des anniversaires Calculer la probabilité pour que parmi n individus au moins deux aient leur fête d’anniversaire le même jour de l’année. Calculer la plus petite valeur de n pour que cette probabilité dépasse 1/2 Indications On ne tiendra pas compte du 29 Février On utilisera les propriétés : ∀x ∈ ℜ 1+x ≤ ex et x ≈ 0⇒ 1+x ≈ ex Calcul de la clef maîtresse d’un ensemble de clefs partielles Une clef maîtresse k est répartie entre plusieurs individus n est le nombre d’individus possédant chacun une clef partielle ki pour 1 ≤ i ≤ n t ≤ n est le nombre de clefs partielles nécessaires pour déterminer la clef maîtresse P est un polynôme de degré t-1 à coefficients entiers inconnus aj pour 0 ≤ j ≤ t-1 ki = P(i) mod p a0 = k est la clef maîtresse p est un nombre premier tel que p > n et p > k p > ai Calculer k pour n = 12 t = 3 p = 13 k1 = 4 k5 = 9 k6 = 12 Master Informatique Sécurité des Réseaux 8 © Richard G. Terrat Janvier 2009
  • 127. Université Montpellier II UMINP351 UFR des Sciences Février 2007 Master Informatique Durée 2 heures Sécurité des Réseaux Tous documents autorisés CRYPTOLOGIE 1. Systèmes cryptographiques On considère le système cryptographique suivant P = {a, b, c} avec la distribution p (a) = 1/2 p (b) = 1/3 p (c) = 1/6 K = {k1, k2, k3} avec la distribution uniforme C = {1, 2, 3, 4} E est défini par E a b c k1 1 2 3 k2 2 3 4 k3 3 4 1 Calculer H(P) H(C) H(K) H(K/C) H(P/C) 2. Cryptage de Hill Rechercher la clef d’un cryptage de Hill sachant que : 1. on connaît un texte et clair : FRIDAY et son cryptogramme : PQCFKU 2. la dimension de la matrice de cryptage est : 2 x 2 Indication : l’inverse d’une matrice A = a11 a12 a21 a22 ! "# $ %& !inversible!dans!Z26 !est!A'1 = (det A)'1 a22 'a12 'a21 a11 ! "# $ %& ! où det A = a11 a22 – a12 a21 3. Cryptographie RSA Montrer que si ϕ(n) est connu, il est possible de factoriser n Comment ? Master Informatique Sécurité des Réseaux 9 © Richard G. Terrat Janvier 2009
  • 128. 4. Cryptanalyse RSA Alice commet l’imprudence de dialoguer avec Bob et Bernard en utilisant comme clefs de cryptage les clefs publiques RSA suivantes : pour Bob (17, 143) pour Bernard (19, 143) et en envoyant le même message x = 123 crypté pour chacun d’eux La perverse Eve, interceptant les 2 cryptogrammes, et sachant qu’il s’agit du même message en clair x , peut elle trouver ce message x sans connaître les clefs secrètes de Bob et de Bernard et sans factoriser n = 143 ? Indication : 17 et 19 étant premiers entre eux, il est facile de calculer, par la formule de Bezout, les 2 nombres u et v tels que 17.u + 19.v = 1 mod 26 ; on vérifiera ici que u = 9 et v = -8 Peut-on généraliser cette cryptanalyse à des clefs réelles RSA de plusieurs centaines de bits ? Dans quelles conditions et comment ? Master Informatique Sécurité des Réseaux 10 © Richard G. Terrat Janvier 2009
  • 129. Université Montpellier II Sécurité des Réseaux UFR des Sciences Avril 2008 Master Informatique Tous documents autorisés N.B Afin d’assurer l’équité entre les participants, aucun appareil de calcul n’est autorisé 1. Calcul de la clef maîtresse d’un ensemble de clefs partielles Une clef maîtresse k est répartie entre plusieurs individus n est le nombre d’individus possédant chacun une clef partielle ki pour 1 ≤ i ≤ n t ≤ n est le nombre de clefs partielles nécessaires pour déterminer la clef maîtresse P est un polynôme de degré t-1 à coefficients entiers inconnus aj pour 0 ≤ j ≤ t-1 ki = P(i) mod p a0 = k est la clef maîtresse p est un nombre premier tel que p > n et p > k p > ai Question Calculer k pour n = 12 t = 3 p = 13 k1 = 4 k5 = 9 k6 = 12 2. Cryptographie RSA Alice et Bob ayant détecté les pervers agissements d’Eve relatés au partiel, décident de changer leur cryptage et optent pour un cryptage RSA. Alice construit ses clefs publiques et secrètes ainsi : elle choisit comme clef secrète (25, 133), ce qui lui permet d’utiliser le bon vieux code ASCII, puis en déduit sa clef publique (13, 133) qu’elle transmet en clair à Bob. Question 2.1 Vérifier que ces clefs sont cohérentes À l’aide de sa clef secrète, Alice envoie la lettre I à Bob (code ASCII : 73 en décimal) comme « challenge » pour son authentification. Questions 2.2 Que reçoit Bob ? (valeur en décimal) 2.3 Faites le calcul de Bob pour retrouver le message d’Alice 2.4 Comment Eve pourrait-elle trouver la clef secrète d’Alice ? Master Informatique Sécurité des Réseaux 11 © Richard G. Terrat Janvier 2009
  • 130. 3. Protocoles On considère un système cryptographique à clef publique. Lorsque Alice veut envoyer un message secret à Bob, elle le crypte avec la clef publique de Bob et envoie en même temps à Bob un certificat qu’elle a elle-même fabriqué, contenant sa propre clef publique. Pour acquitter le message reçu, Bob renvoie le message à Alice, après l’avoir décrypté, puis ré- encrypté avec la clef publique qu’Alice lui a transmise dans son certificat. Questions 3.1 Expliquer comment Eve, pouvant espionner activement le réseau -(wo)man in the middle-, peut intercepter le message en clair. 3.2 En déduire le rôle des autorités de certification 3.3 Comment éviter l’acte répréhensible d’Eve sans passer par l’intermédiaire d’une autorité de certification ? 4. Cryptographie quantique La séquence suivante est échangée entre Alice et Bob pour transmettre une clef privée : Phase 1 Alice → Bob Phase 2 Bob → Alice Phase 3 Alice → Bob Sachant que Alice a choisi le codage suivant en phase 1 0 : avec filtre ; avec filtre 1 : avec filtre ; avec filtre Alice et Bob ont convenu du filtre pour les phases 2 et 3 avec la signification phase 2 : choix de ; : choix de phase 3 : confirmation ; : rejet Questions 4.1 Quelle séquence Alice a-t-elle envoyé à Bob en phase 3 ? 4.2 Quelle est en binaire la valeur de la clef transmise ? Master Informatique Sécurité des Réseaux 12 © Richard G. Terrat Janvier 2009