Cryptographie symétrique

publicité
MGR850 – Automne 2014
Cryptographie symétrique
École de technologie supérieure (ÉTS)
Département de génie électrique
1
Plan
•
•
•
•
•
•
Introduction
Histoire
Concepts de base
Cryptographie classique
Cryptographie moderne
Conclusion
2
Introduction
Cryptologie
• La cryptologie est la science des messages
secrets et des codes chiffrés utilisés
traditionnellement par les militaires et les
gouvernements.
• Depuis l’avènement des transactions
électroniques, la cryptologie c’est démocratisée.
– Banques
– Internet
– …
3
Introduction
Objectif de la cryptographie
• Développer des procédés permettant à
deux personnes de communiquer tout en
protégeant leurs messages.
– Préserver la confidentialité des messages.
– Vérifier l’intégrité des messages.
4
Histoire
Environ 1900
avant J.-C.
Un égyptien a employé des hiéroglyphes non conformes à la langue.
487 avant J.C. (La cité
de Sparte)
Les grecs emploient un dispositif appelé la "scytale" - un bâton autour
duquel une bande longue et mince de cuir était enveloppée et sur
laquelle on écrivait le message. Le cuir était ensuite porté comme
une ceinture par le messager. Le destinataire avait un bâton identique
permettant d'enrouler le cuir afin de déchiffrer le message.
Environ 150
avant J.-C.
L'historien grec Polybe (env. 200-125 av. J.-C.) invente le carré de
Polybe, dont s'inspireront plus tard bien des cryptosystèmes.
Source: http://www.apprendre-en-ligne.net/crypto/histoire/index.html
5
Histoire
• Tatouage sur la tête rasée d'un esclave. Secret caché par
les cheveux repoussés!
60-50
Jules César employait une substitution simple avec l'alphabet
avant J.-C. normal (il s'agissait simplement de décaler les lettres de
l'alphabet d'une quantité fixe) dans les communications du
gouvernement. César écrivait aussi parfois en remplaçant les
lettres latines par les lettres grecques.
9e siècle
Abu Yusuf Ya'qub ibn Is-haq ibn as-Sabbah Oòmran ibn
Ismaïl al-Kindi rédige le plus ancien texte connu décrivant la
technique de cryptanalyse appelée analyse des fréquences.
Source: http://www.apprendre-en-ligne.net/crypto/histoire/index.html
6
Concepts de base
Texte en clair
•
Chiffrement
Cryptogramme
Déchiffrement
Texte en clair
Texte en clair (Plaintext):
–
–
–
•
Données à protéger: message, information, plan de
bataille, décision, programme, …
Différents langages: langues naturelles, langage de
programmation, code binaire, …
immédiatement intelligible
Chiffrement (Encryption):
–
–
Transformation: Processus, opération, ou algorithme
générant un cryptogramme à partir du texte en clair
Complexe et basé sur une clé secrète
7
Concepts de base
Texte en clair
•
Chiffrement
Cryptogramme
Déchiffrement
Texte en clair
Cryptogramme (Ciphertext):
–
–
•
Inintelligible pour une personne ne possédant pas la
clé de déchiffrement
Assure la confidentialité des données
Déchiffrement (Decryption):
–
–
Transformation: Processus, opération, ou algorithme
générant un texte en clair à partir du cryptogramme
Complexe et basé sur une clé secrète
8
Concepts de base
Cryptologie
• Cryptographie:
– Principes, méthodes et outils permettant le
chiffrement et le déchiffrement des données
– Objectifs : assurer la confidentialité et l’intégrité
• Cryptanalyse:
– Principes, méthodes et outils permettant de
découvrir le maximum d’informations secrètes
appartenant au domaine de la cryptographie
– Clés, textes en clair, langues utilisées, algorithmes
de chiffrement, …
9
Concepts de base
Cryptanalyse
•
Mode passif:
–
–
•
Écoute des communications (messages échangés).
Bases de données cumulées avec le temps
Traitement « hors ligne »: artillerie lourde
d’algorithmes + vaste armée de pirates
Mode actif:
–
Participation aux échanges: suppression, insertion,
usurpation, … protocoles cryptographiques.
10
Cryptographie symétrique
Cryptographie à clé secrète
• Chiffrement et déchiffrement de données en se
basant sur une clé secrète partagée entre les
parties impliquées dans l’échange de données
• Cryptanalyse:
• Sans connaissance préalable de la clé, le
cryptogramme est « indéchiffrable »
• MAIS si le nombre de clés possibles est modeste!
…
• L’algorithme de chiffrement doit être « robuste »
11
Crypto classique
• Transposition
–
–
–
–
Construire des anagrammes en changeant l'ordre
des lettres.
Connue depuis l'Antiquité (scytale des Spartes)
L'ordonnancement des lettres doit suivre un
système rigoureux sur lequel d'expéditeur et
l'envoyeur se sont préalablement entendus
Exemple :
• Permutation avec clé (2, 4, 1, 3)
• Cryptanalyse possible:
TEST
ETTS
– Analyse des fréquences de lettres => langue utilisée
– Test des permutations possibles
12
Crypto classique
• Algorithme de Jules César (1/3)
– Consiste simplement à décaler les lettres de l'alphabet
de quelques crans vers la droite ou la gauche
– Exemple: Clé= 3 (D) => décalage de 3 positions
– Code(A)=0, Code(B) =1, …, Code(Z)=25
– Voir la démo sur Cryptool
13
Crypto classique
• Algorithme de Jules César (2/3)
Clé= 321 (D)
(B) => décalage de 213 positions
(C)
Texte en clair
Cryptogramme
This is a secret
information!
Vjku
Uijtlv
ku
jt bdctfdsfu
ugetgv
Wklv
vhfuhw
kphqtocvkqp!
jogpsnbujpo!
lqirupdwlrq!
y = (x + n) modulo 26
n=3
Adapté de: Introductory example: Caesar cipher. CrypTool Team, novembre 2010
14
Crypto classique
• Algorithme de Jules César (3/3)
– Cryptanalyse
• Nombre de clés possibles: 25
• Très facile de retrouver le texte en clair à partir du
cryptogramme!
– Exemple d’un cryptogramme:
• Quel est le texte en clair correspondant au
cryptogramme?
• Quelle est la clé utilisée pour le chiffrement?
GERF SNPVYR QR ERGEBHIRE YR GRKGR RA
PYNVE N CNEGVE QH PELCGBTENZZR
15
Crypto classique
Substitution monoalphabétique (1/4)
• Clé: permutation des 26 lettres de l’alphabet
• Exemple d’une clé:
a b c d e f g h i j k l m n o p q r s t u v w x y z
l f g i w y d x e b s n t c q u h z v r m k j a o p
• Nombre de clés possibles: 26! -1 =
403291461126605635583999999
• Et si l’alphabet de la clé n’est pas limité aux 26 lettres?
a b c d e f g h i j k l m n o p q r s t u v w x y z
t ? g ! w y d & e [ s ) l c / u h ] $ z m * < = o >
• Le nombre de clés possibles? Cryptanalyse?
16
Crypto classique
Substitution monoalphabétique (2/4)
• Cryptanalyse
– L’algorithme de chiffrement associe à toutes les
occurrences d’une lettre donnée, `A’ par exemple, la
même lettre, `M’ par exemple:
• "A PARTIR DE LA" => "M *M***** ** *M"
– L’analyse des fréquences des lettres dans le
cryptogramme peut révéler le texte en clair!
– Les statistiques sont toujours utiles
17
Crypto classique
Substitution monoalphabétique (3/4)
• Cryptanalyse: Langue Française
E
17.76
O
5.34
B
0.80
S
8.23
D
3.60
H
0.64
A
7.68
C
3.32
X
0.54
N
7.61
P
3.24
Y
0.21
T
7.30
M
2.72
J
0.19
I
7.23
Q
1.34
Z
0.07
R
6.81
V
1.27
K
0.00
U
6.05
G
1.10
W
0.00
L
5.89
F
1.06
Fréquences des lettres
18
Crypto classique
Substitution monoalphabétique (4/4)
• Cryptanalyse: Langue Française
ES
305
TE
163
OU
118
EC
100
EU
89
EP
82
LE
246
SE
155
AI
117
TI
98
UR
88
ND
80
EN
242
ET
143
EM
113
CE
98
CO
87
NS
79
DE
215
EL
141
IT
112
ED
96
AR
86
PA
78
RE
209
QU
134
ME
104
IE
94
TR
86
US
76
NT
197
AN
30
IS
103
RA
92
UE
85
SA
75
ON
164
NE
124
LA
101
IN
90
TA
85
SS
73
ER
163
SS
73
M
M
20
AA
3
EE
66
RR
17
UU
3
LL
66
PP
16
II
2
TT
29
FF
10
GG
1
NN
24
CC
8
Fréquences des bigrammes sur 10 000 bigrammes
19
Crypto classique
Substitution polyalphabétique-Vigenère (1/4)
• Additionner une lettre du texte en clair à une lettre de la
clé
clair
• Matrice de chiffrement
Vigenère (chiffré = clair + clé)
Clé
20
Crypto classique
Substitution polyalphabétique-Vigenère (2/4)
• Clé secrète
• Algorithme de chiffrement
clé
clair
chiffre
f = ( t + m) mod 26
5 = ( 19 +12) mod 26
• Voir la démo sur Cryptool
21
Crypto classique
Substitution polyalphabétique-Vigenère (3/4)
• Cryptanalyse
– L’algorithme de chiffrement N’associe PAS à toutes les
occurrences d’une lettre donnée, `A’ par exemple, la
même lettre:
• "A PARTIR DE LA" => "M *K***** ** *S"
– L’analyse des fréquences des lettres dans le
cryptogramme n’est plus utile? 
– Cependant, les statistiques sont toujours utiles 
• Comment?
22
Crypto classique
Substitution polyalphabétique-Vigenère (4/4)
• Cryptanalyse
– Pour une clé de taille 3:
• les lettres du texte en clair qui sont aux positions: 0, 3, 6, .. Sont
chiffrées de la même façon: même décalage.
• les lettres du texte en clair qui sont aux positions: 1, 4, 7, .. Sont
chiffrées de la même façon: même décalage.
• les lettres du texte en clair qui sont aux positions: 2, 5, 8, .. Sont
chiffrées de la même façon: même décalage.
– Les statistiques peuvent être utilisées sur les lettres qui
sont chiffrées de la même façon
23
Crypto classique
Algorithme de Nihilist (1/4)
•
•
•
•
Surchiffrement
1ère clé secrète: EXAMPLE
Matrice de chiffrement: 5 X 5
Construction de la matrice
24
Crypto classique
Algorithme de Nihilist (2/4)
• Construction de la matrice (suite)
25
Crypto classique
Algorithme de Nihilist (3/4)
• Construction de la matrice (suite)
• Cas particulier: I & J ont le même code!
26
Crypto classique
Algorithme de Nihilist (4/4)
• 2ème clé secrète: NEXT
• Texte en clair:
• Chiffrement: addition
• Voir la démo sur Cryptool
• Cryptanalyse? À méditer
27
Crypto classique
• Faiblesses des systèmes classiques:
– Taille de la clé
– Réutilisation de la clé
• Principes de la solution (Masque Jetable ou Onetime pad):
– Les caractères composant la clé doivent être choisis de
façon totalement aléatoire.
– Une nouvelle clé pour chaque message à chiffrer
– La taille de la clé est égale à la taille du message
C  M K
• MAIS comment échanger les clés?
• Confidentialité des messages vs confidentialité des clés
28
Crypto moderne
Principes de Kerckhoffs 1883
• Séparation algorithme / clé:
– Chiffrement de César:
•
•
•
Algorithme: "Décalage d’une lettre de X
positions"
Clé: "La valeur de X"
Principe de Kerckhoff: "Le secret réside dans la
clé et non pas dans l'algorithme"
29
Crypto moderne
Principe de Shannon / Vernam (1945)
• Masque jetable:
– Théoriquement-complètement incassable,
– Très peu pratique : téléphone rouge
• Clés transportées par valise diplomatique
• Nouvelle clé pour chaque nouvelle communication
31
Crypto moderne
Principes de Shannon (1945)
•
Confusion et diffusion
–
Relation aussi complexe que possible entre M, C, K
•
•
•
•
La confusion cache les relations entre le texte clair et le texte
chiffré pour éviter les attaques par analyse statistique.
•
•
•
M : message
C : cryptogramme
K : clé
un changement d’un seul bit dans le texte clair doit affecter un
grand nombre de bits (tous) du texte chiffré.
Effet avalanche: petite modification, grand impact
La diffusion disperse la redondance du texte clair dans le texte
chiffré, par exemple deux lettres doublées ne doivent pas
rester côte à côte après cryptage.
32
Crypto moderne
• En 1976, l’agence de normalisation américaine
développait un algorithme de chiffrement qui a été
grandement utilisé depuis:
– DES (Data Encryption Standard)
• En 2002, l’agence de normalisation américaine
récidivait avec un nouvel algorithme:
– AES (Advanced Encryption Standard)
35
Crypto moderne
• DES - Data Encryption Standard
– Crypto à clés secrètes
– En 1979, le premier ATMs (automatic teller
machines) a exploité le chiffrement DES pour les
PINs.
– Basé sur un schéma de Feistel
– Utilisée pour
• Chiffrement
• Authentification
– Règle Importante:
• Une clé pour chaque fonctionnalité.
– Il est à la base d’autres crypto systèmes plus récents
comme IDEA, FEAL, CAST, RC5, BLOW-FISH.
36
Crypto moderne
• Chiffrement DES - Algorithme
Texte - 64 bits
Clé - 56 bits
Algorithme DES
Cryptogramme - 64 bits
37
Crypto moderne
Chiffrement par bloc
• ECB : Electronic Code Book
– Chiffrement
– Déchiffrement
38
Crypto moderne
Chiffrement par bloc
• CBC : Cipher Block Chaining
– Chiffrement
– Déchiffrement
39
Crypto moderne
• Authentification DES - Algorithme
Texte – sans restriction
Clé - 56 bits
Algorithme DES
Code d’authentification – 32 bits
40
Chamseddine Talhi, ÉTS
Crypto moderne
• DES vulnérable aux attaques par force brute.
• Triple DES !!!
– Pour chaque bloc de 64 bits de message, trois
itérations:
• Clé de 112 bits (K1K2) :
– Chiffrer avec K1,
– Déchiffrer avec K2,
– Chiffrer avec K1
• Clé de 168 bits (K1K2K3) :
– Chiffrer avec K1,
– Déchiffrer avec K2,
– Chiffrer avec K3
41
Chamseddine Talhi, ÉTS
Crypto moderne
64 bits
Chiffrer
Triple DES
Déchiffrer
Source: http://fr.wikipedia.org/wiki/Triple_DES
Chiffrer
64 bits
42
Crypto moderne
• AES : Advanced Encryption Standard
• Crypto à clés secrètes
• Candidat retenu en 2002: Rijndael:
• Trois versions:
– Chiffrement de blocs de 128 bits avec une clé de 128 bits
• 10 itérations
– Chiffrement de blocs de 192 bits avec une clé de 192 bits
• 12 itérations
– Chiffrement de blocs de 256 bits avec une clé de 256 bits
• 14 itérations
• Voir démo sur CrypTool
43
Problème des clés secrètes
•
•
•
•
•
2 personnes => 1 clé
n personnes => n * (n-1)/2 clés
100 personnes => 4,950 clés
1,000personnes => 499,500 clés
Pour chaque 10 personnes en
plus on a besoin de 100 clés en
plus!
Adapté de: http://www.cryptool-online.org/
44
Conclusion
•
•
•
•
•
La cryptographie est essentielle pour assurer la
confidentialité et l’intégrité des données
Complexité n’est pas toujours synonyme de
robustesse
La confidentialité des clés est le maillon faible de
la cryptographie symétrique
L’algorithme adopté est déjà entre les mains de
l’ennemi.
Problèmes:
–
–
Nombre de clé: Une nouvelle clé pour chaque paire de
personnes
Confidentialité des clés: Échange des clés
45
Téléchargement