Audit et Sécurité Informatique
Chap 3: Cryptographie et Cryptanalyse
Rhouma Rhouma
https://sites.google.com/site/rhoouma
Ecole superieure d’Economie Numerique
3ème année Licence
1 / 91
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
2 / 91
Plan
Cryptographie et Cryptanalyse
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
3 / 91
Types de classification
Cryptographie et Cryptanalyse
On peut classifier les alg de cryptage selon :
Le nb de clés utilisés :
Une seul clé cryptosystème à clé privée (symétrique)
2 clés ou cryptosystème à clé publique (asymétrique)
type d’opération utilisée :
substitution
transposition
produit des deux
la façon dont le plaintext est traité
block
stream (flux)
4 / 91
Cryptage symétrique
Cryptographie et Cryptanalyse
Aussi connu comme cryptage conventionnel ou cryptage à clé
secrète.
c’était le seul type de cryptage jusqu’à invention du cryptage
asymétrique ds les années 70.
reste comme même le cryptage le plus répandu des deux
5 / 91
Terminologie basique
Cryptographie et Cryptanalyse
Plaintext : le message original
Ciphertext : le message chiffré
chiffrement ou cryptage : le processus de conversion du plaintext
vers le ciphertext
déchiffrement ou décryptage : le processus de conversion du
ciphertext vers le plaintext
cryptographie : l’étude des méthodes de cryptage (science des
messages secrets)
cryptanalyse : l’étude des techniques pour casser les algorithmes
de chiffrement
Cryptologie : la cryptographie et la cryptanalyse
6 / 91
Modèle simplifié du cryptage symétrique
Cryptographie et Cryptanalyse
7 / 91
Modèle du cryptage symétrique
Cryptographie et Cryptanalyse
8 / 91
Cryptanalyse
Cryptographie et Cryptanalyse
Son objectif est de retrouver la clé secrète pas simplement le
plaintext
brute force attack (attaque à force brute) :
essayer toutes les combinaisons (sur une ciphertext pour le
déchiffrer) de la clé jusqu’à trouver la bonne
En moyenne, il faut essayer au moins la moitié des clés disponibles
pour arriver à casser un cryptosystème.
cryptanalytic attack : plus intelligente, exploite une connaissance
sur l’algorithme et la manière dont le plaintext est traité.
9 / 91
Protocole d’attaque cryptographique general
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
10 / 91
Known-plaintext attack(KPA)
Chosen-plaintext attack(CPA)
Chosen-ciphertext attack(CCA)
Protocole d’attaque cryptographique general
Collecte d’informations : faiblesses théoriques
Observation ou action :Étape "on-line" connecté à la cible.
Ciphertext-only attack(COA)
11 / 91
Chosen-plaintext attack(CPA)
Chosen-ciphertext attack(CCA)
Protocole d’attaque cryptographique general
Collecte d’informations : faiblesses théoriques
Observation ou action :Étape "on-line" connecté à la cible.
Ciphertext-only attack(COA)
Known-plaintext attack(KPA)
11 / 91
Chosen-ciphertext attack(CCA)
Protocole d’attaque cryptographique general
Collecte d’informations : faiblesses théoriques
Observation ou action :Étape "on-line" connecté à la cible.
Ciphertext-only attack(COA)
Known-plaintext attack(KPA)
Chosen-plaintext attack(CPA)
11 / 91
Protocole d’attaque cryptographique general
Collecte d’informations : faiblesses théoriques
Observation ou action :Étape "on-line" connecté à la cible.
Ciphertext-only attack(COA)
Known-plaintext attack(KPA)
Chosen-plaintext attack(CPA)
Chosen-ciphertext attack(CCA)
11 / 91
Protocole d’attaque cryptographique general
Collecte d’informations : faiblesses physiques
Attaques par canal auxiliaire : Side Channel Attack
Mesure du temps de cryptage/décryptage : étude du temps mis
pour effectuer certaines opérations
Fuites électromagnétiques : émet des rayonnements qui varient
selon les opérations effectuées
Analyse du Comportement du processeur lors du calcul : bruit
acoustique
Analyse de la consommation d’énergie : Une consommation accrue
indique un calcul important et peut donner des renseignements sur
la clé
12 / 91
Exploitation : Estimation de la clé et Déchiffrement de tous les
cryptogrammes.
Protocole d’attaque cryptographique general
Analyse, déduction et exploitation
Étape "off-line" : Analyse & Déduction
Attaque à force brute : essayer toutes les clés possibles pour
retrouver un texte en clair à partir du cryptogramme
Attaque statistique : Estimer la fréquence d’apparition des lettres
dans un texte
Attaque algébrique : trouver des représentations équivalentes du
cryptosystème, exploiter des linéarités existantes.
Cryptanalyse linéaire : approximation linéaire de l’algorithme de
chiffrement, augmenter le nombre de couples pour améliorer
l’approximation.
Cryptanalyse différentielle : étudier la manière dont les différences
entre les entrées affectent les différences de leurs sorties pour
découvrir des vulnérabilités.
13 / 91
Protocole d’attaque cryptographique general
Analyse, déduction et exploitation
Étape "off-line" : Analyse & Déduction
Attaque à force brute : essayer toutes les clés possibles pour
retrouver un texte en clair à partir du cryptogramme
Attaque statistique : Estimer la fréquence d’apparition des lettres
dans un texte
Attaque algébrique : trouver des représentations équivalentes du
cryptosystème, exploiter des linéarités existantes.
Cryptanalyse linéaire : approximation linéaire de l’algorithme de
chiffrement, augmenter le nombre de couples pour améliorer
l’approximation.
Cryptanalyse différentielle : étudier la manière dont les différences
entre les entrées affectent les différences de leurs sorties pour
découvrir des vulnérabilités.
Exploitation : Estimation de la clé et Déchiffrement de tous les
cryptogrammes.
13 / 91
Protocole d’attaque cryptographique general
exemple brute force attack
14 / 91
Plan
Algorithmes de substitution
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
Publicité
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
15 / 91
Cesar
Algorithmes de substitution
Consiste à remplacer les lettres du plaintext par d’autres lettres ou
symboles ou bits.
le plus connu est l’alg de Cesar : remplacer chaque lettre par celle
qui la suit apres trois positions ds l’alphabet
L’alphabet est enroulé de sorte que la lettre qui suit Z est A
ex :
plain : meet me after the toga party
cipher : PHHW PH DIWHU WKH WRJD SDUWB
16 / 91
Cesar
Algorithmes de substitution
On peut définir la transformation de Cesar comme :
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
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
l’alg peut etre exprimé comme :
c = E(3, p) = (p + 3)mod 26
le decalage peut etre généralisé à n’importe quel nombre k :
c = E(k , p) = (p + k )mod 26
si k ∈ [1, 25], alors le déchiffrement est :
p = D(k , c) = (c − k )mod 26
17 / 91
Algorithmes de substitution
Brute force attack
sur Cesar :
essayer toute les
26 combinaisons
18 / 91
Plan
Monoalphabetic Cipher
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
19 / 91
Monoalphabetic Cipher
Monoalphabetic Cipher
consiste a remplacer chaque lettre arbitrairement (pas simple
décalage)
la clé est de longueur 26 :
Plain : 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
Cipher : D K V Q F I B J W P E S C X H T M Y A U O L R G Z N
exemple :
Plaintext : if we wish to replace letters
Ciphertext : WI RF RWAJ UH YFTSDVF SFUUFYA
20 / 91
Sécurité du crypto monoalphabetique
Monoalphabetic Cipher
On a un total de 26! = 4 × 1026 clés possibles
mais on peut le casser par analyse de fréquence : Al-Kindy
le langage humain est très redondant
ex ds le msg "th lrd s m shphrd shll nt wnt" les lettres de cette
façon ne sont pas ordinaire en anglais
En anglais la lettre "E" est la plus utilisée, suivie par :
"T,R,N,I,O,A,S"
les lettres comme "Z,J,K,Q,X" sont rares en utilisation.
il ya des doublets ou des triplets qui sont plus répondu que
d’autres.
21 / 91
fréquences des lettres en anglais
Monoalphabetic Cipher
22 / 91
Exemple Cryptanalyse
Monoalphabetic Cipher
etant donné un ciphertext :
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXU
DBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSV
PQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPF UPZHMDJUDTMOHMQ
On compte la fréquence de chaque lettre ds le ciphertext
On peut deviner que P et Z sont e et t
On peut deviner que ZW est th et donc ZWP est the
la séquence ZWSZ est remplacé par th*t, on peut deviner que S est a
on continu avec la technique essai-erreur-essai, on trouve le plaintext :
"it was disclosed yesterday that several informal but direct contacts have been made with
political representatives of the viet cong in moscow"
23 / 91
Plan
Algorithme Playfair
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
24 / 91
Playfair
Algorithme Playfair
L’alg le plus connu qui crypte plusieurs lettres en même temps
traite les diagrammes (2 lettres) comme unité et la converti en
diagramme ciphertext.
basé sur une matrice 5 × 5 utilisant un mot clé
inventé par le Britannique Sir Charles Wheatstone en 1854
utilisé par l’armée Britannique en W.W.I et par l’USA et ses alliés
durant la guerre W.W.II
25 / 91
Matrice de Playfair
Algorithme Playfair
copier les lettres du mots clé dans la matrice (sans duplication)
completer le reste de la matrice par les lettres manquantes
les lettres I et J sont traités comme une seule lettre
ex : en utulisant le mot clé MONARCHY
26 / 91
Cryptage de Playfair
Algorithme Playfair
opérer sur des diagrammes de lettres (2 lettres) à chaque fois
cas particulier : si diagramme de même lettres, séparer par des
lettres spéciales ex : x. par exemple : balloon est traité comme ba
lx lo on
Si plaintext ds la même ligne : remplacer par les lettres de droite.
Ex1 pq est remplacé par qs. Ex2 ar est remplacé par RM.
Si plaintext ds la même colonne : remplacer par les lettres
en-dessous. ex mu est remplacé par CM
sinon, remplacer par lettre en même ligne qu’elle et même
colonne que l’autre lettre du plaintext. ex hs est remplacé par BP.
ex2 ea devient IM ou JM
27 / 91
Sécurité de Playfair
Algorithme Playfair
Sécurité amélioré puisque il ya en tout 26 × 26 = 676 diagrammes
on a besoin d’une analyse fréquentielle sur 676 unité et non plus
sur 26 comme le monoalphabetique
donc l’alphabet du ciphertext est aussi énorme
il peut être cassé si on connaît une centaine de
plaintext/ciphertext
28 / 91
fréquence des lettres
Algorithme Playfair
29 / 91
Plan
Algorithmes poly-alphabetiques
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
30 / 91
Polyalphabetic Ciphers
Algorithmes poly-alphabetiques
Alg de substitution poly-alphabetique
améliore la sécurité en combinant plusieurs alg
mono-alphabetiques
rende la cryptanalyse plus difficile avec augmentation d’alphabets
et une distribution fréquentielle plus platte
utilise une clé pour choisir quel alphabet mono-alphabetique à
utiliser pour chaque lettre du plaintext
répéter du début si la fin de la clé est atteinte
31 / 91
Vigenère
Algorithmes poly-alphabetiques
l’alg poly-alphabetique le plus simple : algs de Cesar muliples
la clé est constitué de caractères K = k1k2 . . . kd
la ième lettre de la clé spécifie le ième alg de Cesar à utiliser
repeter des le debut chaque d lettres du plaintext
32 / 91
Exemple Vigenère
Algorithmes poly-alphabetiques
écrire le plaintext
écrire la clé et la répéter sur la longueur du plaintext
utiliser chaque lettre de la clé comme clé de Cesar
Publicité
chiffrer chaque lettre indépendamment des autres
ex : clé = deceptive
33 / 91
Autokey cipher
Algorithmes poly-alphabetiques
voulant une clé aussi longue que le message
vigenère propose l’autokey
clé est préfixé au message pour générer une nouvelle clé
connaissant la clé basique, on peut déchiffrer les premières lettres
peut etre cassé par analyse fréquentielle
ex : clé : deceptive
34 / 91
Vernam cipher
Algorithmes poly-alphabetiques
utilise une clé aussi longue que le plaintext
inventé par un ingénieur AT&T Gilbert Vernam en 1918
35 / 91
One time Pad
Algorithmes poly-alphabetiques
Amélioration de Vernam proposé par l’officier de l’armée, Joseph
Mauborgne
Utiliser une clé aléatoire qui est aussi longue que le message de
sorte que la clé n’a pas besoin d’être répétée
La Clé est utilisée pour chiffrer et déchiffrer un seul message, puis
elle est jeté
Chaque nouveau message nécessite une nouvelle clé de la
même longueur que le nouveau message
Ce cryptosystème est incassable
problèmes dans la production et la distribution sécurisée de la clé
Non pratique : reste utilisé ds les communications top-secrets et
très coûteuses (teleph rouge entre Moscow et Washington)
36 / 91
Les algorithmes de transposition
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
37 / 91
Les algorithmes de transposition
Transposition
Transposition= permutation
Chiffrer le message en réarrangeant l’ordre des lettres du plaintext
le plaintext et le ciphertext ont même occurence (fréquence) des
lettres
38 / 91
Les algorithmes de transposition
Fail hence cipher
La transposition la plus simple
plaintext est écrit en séquences de diagonales
on le lit ligne par ligne
pour chiffrer le message "meet me after the toga party" avec "Rail
hence" de profondeur(nb de lignes) 2 :
ciphertext est : MEMATRHTGPRYETEFETEOAAT
39 / 91
Les algorithmes de transposition
Raw Transposition Cipher
Transposition plus complexe
écrire le plaintext sous forme de rectangle, ligne par ligne
ciphertext : lire le message colonne par colonne, mais permuter
l’ordre des colonnes
l’ordre de la lecture des colonnes est donc la clé
40 / 91
Les algorithmes de transposition
Product ciphers
Les algorithmes de substitutions ou transposition ne sont pas sécurisés
à cause de l’analyse fréquentielle
donc envisager d’utiliser plusieurs alg à la suite pour rendre la
cryptanalyse plus difficile.
exemple répéter la permutation du texte précédent avec la même clé (ou
même avec une autre clé) :
on peut voir l’effet de la double permutation comme ceci :
avant permutation :
après la première permutation :
après la deuxième permutation :
41 / 91
C’est le concept des algorithmes de cryptage moderne
Algorithmes de cryptage Moderne
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
42 / 91
Algorithmes de cryptage Moderne
Algorithmes de chiffrement par bloc, et par flux
en anglais : block ciphers et stream ciphers
block ciphers traitent le plaintext bloc par bloc, chcun est
chiffré/déchiffré (ex : DES et AES)
stream ciphers traitent le plaintext bit par bit (ou octect par octect)
lors de cryptage/decryptge (ex : viginère, vernam)
majorité des algorithmes modernes sont des blocks ciphers
43 / 91
Algorithmes de cryptage Moderne
44 / 91
Algorithmes de cryptage Moderne
Stream ciphers
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
45 / 91
Algorithmes de cryptage Moderne
Stream ciphers
Stream cipher : Vernam cipher
utilise une clé aussi longue que le plaintext
inventé par un ingénieur AT&T Gilbert Vernam en 1918
46 / 91
Algorithmes de cryptage Moderne
Stream ciphers
One time Pad
Amélioration de Vernam proposé par l’officier de l’armée, Joseph
Mauborgne
Utiliser une clé aléatoire qui est aussi longue que le message de
sorte que la clé n’a pas besoin d’être répétée
La Clé est utilisée pour chiffrer et déchiffrer un seul message, puis
elle est jeté
Chaque nouveau message nécessite une nouvelle clé de la
même longueur que le nouveau message
Ce cryptosystème est incassable
problèmes dans la production et la distribution sécurisée de la clé
Non pratique : reste utilisé ds les communications top-secrets et
très coûteuses (teleph rouge entre Moscow et Washington)
47 / 91
Algorithmes de cryptage Moderne
Block ciphers
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
48 / 91
Algorithmes de cryptage Moderne
Block ciphers
fonctions réversibles et irréversibles
Un alg à chiffrement par bloc prend n bits du plaintext et le
transforme en n bits de ciphertext
il y a 2n combinaisons possibles de plaintext
le Cryptage doit être reversible
chaque bloc du plaintext produit un bloc du ciphertext diffèrent
(bijectivité)
il ya 2n transformations possibles
49 / 91
Algorithmes de cryptage Moderne
Block ciphers
modèle d’un block cipher
50 / 91
Algorithmes de cryptage Moderne
Block ciphers
les tables du bloc cipher exemple
51 / 91
Algorithmes de cryptage Moderne
Block ciphers
Claude Shannon et les alg de substitution-permutation
Shannon a introduit l’idée des réseaux de
substitution-permutation (S-P) en 1949
c’est la base de tout les alg de cryptage moderne
les réseaux S-P sont basés sur deux critère :
Publicité
substitution (S-box)
Permutation(P-box)
Ceci fourni les critères de confusion et de diffusion du plaintext et
de la clé sur le ciphertext
52 / 91
Algorithmes de cryptage Moderne
Block ciphers
Confusion et diffusion
Deux termes introduits par Shanon qui constituent les critères de
base d’un algorithme de cryptage
Son but était de concevoir des cryptosystèmes qui résistent
l’analyse statistique
confusion : Rend la relation entre le ciphertext et la clé aussi
complexe que possible (apparence aléatoire)
diffusion : Chaque bit du plaintext affecte tous les bits du
ciphertext (avalanche)
53 / 91
Plan
Exemple : DES
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
54 / 91
Plan
Exemple : DES
Structure et fonctionnement
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
55 / 91
DES
Exemple : DES
Structure et fonctionnement
Data Encryption standard (DES) est le standard de cryptage
recommandé par NIST (National Institute of Standards and
Technologies) en 1977.
l’alg de cryptage le plus utilisé jusqu’à 2001 (l’arrivée de AES par
NIST aussi)
L’alg de DES est appelé DEA (Data Encryption Algorithm)
Le plaintext est chiffré en 64-bit blocs en utilisant une clé de taille
56 bit
l’alg transforme un bloc de 64-bit du plaintext à un bloc de 64-bit
du ciphertext
Les mêmes étapes, avec la même clé, conduisent au décryptage
56 / 91
DES
Exemple : DES
Structure et fonctionnement
57 / 91
Initial permutation (IP) de DES
Exemple : DES
Structure et fonctionnement
ex : A la sortie de IP :
ds la pos 1 =⇒ entrée 58 ;
ds la pos 2 =⇒ entrée 50 ;
ds la pos 64 =⇒ entrée 7
A la sortie de IP−1 :
1 est lu depuis la pos 58
2 est lu depuis la pos 50
64 est lu depuis la pos 7
58 / 91
Structure d’une ronde DES
Exemple : DES
Structure et fonctionnement
59 / 91
Structure d’une ronde DES
Exemple : DES
Structure et fonctionnement
Deux moitiés L et R de taille 32-bits chacune
Structure de Feistel est comme suit :
Li = Ri−1
Ri = Li−1 ⊕ F (Ri−1, Ki )
F prend la moitié R de 32-bit et la clé intermédiaire de 48-bit et
fait comme suit :
Expansion de R à 48-bits en utilisant la permutation E
L’ajouter à la clé intermédiaire par XOR
La faire passer à travers 8 S-box pour avoir le résultat de 32-bits
Finalement la permuter en utilisant une permutation P
60 / 91
Les fonction de permutation E et P
Exemple : DES
Structure et fonctionnement
61 / 91
Structure d’une ronde DES : F(R,K)
Exemple : DES
Structure et fonctionnement
62 / 91
Les 8 S-box
Exemple : DES
Structure et fonctionnement
chaque S-box transforme 6-bits à 4-bits
Pour chaque entrée de chaque S-box :
les bits 1 et 6 (bits extérieurs) sélectionne une ligne parmi 4.
les bits 2-5 (bits intérieurs) sont substitués par la sortie
correspondante ds la ligne choisie
le résultat est 8 lots de 4-bit : ça fait 32-bits en tout
la sélection de la ligne dépend du plaintext et de la clé
exemple 48 bits –> 32 bits : S(18 09 12 3d 11 17 38 39) =
5fd25e03
Sbox1 : 0x18 : 011000 –> ligne n˚0 et colonne n˚ 12 : 5 = 0x5
Sbox2 : 0x09 : 001001 –> ligne n˚1 et colonne n˚ 4 colonne : 15=0xf
Sbox8 : 0x39 : 111001 –> ligne n˚3 et colonne n˚ 12 : 3 = 0x3
63 / 91
Les 8 S-box : (1-4)
Exemple : DES
Structure et fonctionnement
64 / 91
Les 8 S-box : (5-8)
Exemple : DES
Structure et fonctionnement
65 / 91
DES Key schedule
Exemple : DES
Structure et fonctionnement
Key schedule : préparation des clés intermédiaires (des 16
rondes) à partir de la clé originale de 56-bits
Permutation initiale de la clé (PC1) qui sélectionne 56-bits (parmi
64) en 2 moitiés de 28-bits
16 stages qui consistent à :
"Rotation circulaire à gauche" de chaque moitié de 1 ou 2 bits en
fonction de la fonction de rotation K
sélectionner 24 bits de chaque moitié et la permuter par (PC2) pour
être l’entrée de la fonction F.
66 / 91
DES Key schedule
Exemple : DES
Structure et fonctionnement
67 / 91
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
Plan
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
68 / 91
Sécurité de DES
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
taille de l’espace clé 256 = 7.2 × 1016
une machine à 109 déchiffrement/s peut le casser en 1.125 année
une machine à 1013 déchiffrement/s peut le casser en 1 heure
l’AES-128 avec la même vitesse, la machine reste 5.3 × 1017
années
plusieurs attaques sur DES :
differential cryptanalysis
linear cryptanalysis
related key attack
Le besoin de trouver une alternative de DES devient nécessaire
69 / 91
Cryptage multiple avec DES
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
DES est devenu vulnérable à la brute force attack
Alternative : crypter plusieurs fois avec des clés différentes
Options :
Double DES : n’est pas très performant
Triple DES (3DES) avec deux clés : brute force 2112
Triple DES avec trois clés : brute force 2168
70 / 91
Double encryption
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
clé de taille 2 × 56 = 112
espace clé de 2112.
il faut donc essayer en moyenne 2111 pour le casser en brute force
attaque plus intelligente : Meet-in-the-middle attack
71 / 91
Publicité
Meet-in-the-middle attack
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
Double cryptage DES : C = E(K2, E(K1, P))
soit X = E(K1, P) = D(K2, C)
supposons que l’adversaire connaît 2 paires P/C : (Pa, Ca) et
(Pb, Cb)
chiffrer Pa en utilisant toutes les possibilités 256 de la clé K1 pour
avoir les possibilités de X
Enregistrer les valeurs possibles de X ds un tableau avec leurs clés
correspondantes K1
Déchiffrer Ca en utilisant toutes les possibilités 256 de la clé K2
Pour chaque résultat du décryptage, vérifier avec les valeurs du
tableau
S’il y a correspondance, Prenez les valeurs correspondantes de K1
et K2. Et vérifier si Cb = E(K2, E(K1, Pb)), alors accepter les clés.
Avec deux paires de P/C, la probabilité de succès est 1
Cette attaque est de complexité 2 × 256 qui est très inférieur à
complexité brute force attack 2112
72 / 91
Cryptage Triple
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
2 clés : 112 bits
3 clés : 168 bits
Pourquoi E-D-E ? Pour être compatible avec DES simple :
C = E(K1, D(K1, E(K1, P)))
3DES a été adopté par plusieurs application internet : PGP,
S/MIME
73 / 91
AES
Exemple : DES
Amélioration sur DES jusqu’à utilisation d’AES
Advanced encryption standard est le nouveau alg de cryptage
adopté par NIST crée en 2001 (Rijandael)
Taille block : 128-bit (possibilité d’autres tailles)
taille clé : 128, 192, 256 bits
rondes : 10, 12, 14 dépend de la clé
XOR avec clés intermédiaires, Substitutions avec des S-box,
mixage avec l’arithmétique du corps de Galois
Largement utilisé dans les communications sécurisés en réseaux
Considéré comme sécurisée jusqu’à ce moment.
74 / 91
Plan
Modes de cryptage par bloc
1 Cryptographie et Cryptanalyse
2 Protocole d’attaque cryptographique general
3 Algorithmes de substitution
4 Monoalphabetic Cipher
5 Algorithme Playfair
6 Algorithmes poly-alphabetiques
7
Les algorithmes de transposition
8 Algorithmes de cryptage Moderne
Stream ciphers
Block ciphers
9 Exemple : DES
Structure et fonctionnement
Amélioration sur DES jusqu’à utilisation d’AES
10 Modes de cryptage par bloc
75 / 91
Modes de cryptage par bloc
Modes de cryptage par bloc
NIST SP 800-38A definiti 5 modes de cryptages
ECB : Electronic codebook Book Mode
CBC : cipher block chaining Mode
CFB : cipher FeedBack Mode
OFB : Output FeedBack Mode
CTR : Counter Mode
il y a ceux qui sont orientés bloc et ceux qui sont orienté flux
Ceci est pour couvrir une large variété d’application ds la vie réelle
ces modes peuvent être appliqués sur n’importe quel algorithme
de bloc
76 / 91
ECB
Modes de cryptage par bloc
Le plaintext est divisé en blocs qui seront cryptés
chaque block constitue une valeur qui sera substitué par cryptage
comme un dictionnaire, d’où le nom (dictionnaire=codebook)
Chaque bloc est crypté indépendamment des autres blocs :
Ci = EK (Pi )
Application : transmission sécurisée de messages courts
77 / 91
ECB
Modes de cryptage par bloc
78 / 91
Avantages et limitations de ECB
Modes de cryptage par bloc
Les répétitions dans le plaintext sont montrés aussi dans le
ciphertext (peu de confusion)
Non efficace pour les images : trop de redondance, trop de
répétitions donc image peut rester visible après cryptage
La faiblesse est dans l’indépendance dans le cryptage des
différents blocs
Utilisation principale est le cryptage de plaintext très court
Image originale
Image cryptée (AES) en mode ECB
79 / 91
CBC
Modes de cryptage par bloc
Le plaintext est divisé en blocs
ces blocs seront liés durant le cryptage
chaque bloc du ciphertext est lié avec le bloc du plaintext
correspondant et les bloc ciphertext précédents
utilise un vecteur d’initialisation pour commencer le cryptage :
Ci = EK (Pi XOR Ci−1)
C−1 = IV
Application : Le cryptage de données en vrac (de grande
redondance) ; Authentification (CMAC)
80 / 91
CBC
Modes de cryptage par bloc
81 / 91
Avantages et limitations de CBC
Modes de cryptage par bloc
chaque bloc du ciphertext dépend de tous les blocs qui le
précèdent
n’importe quel changement affecte tous les blocs du ciphertext qui
le suivent
CBC a besoin d’un IV pour l’initialisation :
l’IV doit être connu de l’émetteur et récepteur
S’il est transmis en clair, un adversaire peut changer les bits du
premier bloc et changer IV pour compenser ce changement.
Donc IV doit être soit fixe
soit envoyé crypté en mode ECB avant de traiter le plaintext
82 / 91
Les modes de cryptage en bloc orientés flux
Modes de cryptage par bloc
Les modes de bloc chiffre tout le bloc
dans certaines application, on pourra avoir besoin d’operer sur
des tailles plus petites
application dans le cryptage du flux multimédia (temps réel)
convertir les alg de bloc en alg de flux
CFB
OFB
CTR
l’idée est d’utiliser les alg de blocs sous forme de générateur de
séquences pseudo-aléatoires
83 / 91
CFB
Modes de cryptage par bloc
Le message est traité comme un flux de bits
le message est ajouté à la sortie du l’alg de bloc
le résultat est retourné (feed-back) à l’étage précédent (d’où le
nom)
le standard permet plusieurs tailles de blocs (1 ; 8 ; 64 ; 128 ; etc)
pour être feed-back
notés CFB-1, CFB-8, CFB-64, CFB-128
le cryptage est comme suit :
Ci = Pi XOR EK (Ci−1)
C−1 = IV
Applications : cryptage du flux (temps réel), Authetification
84 / 91
CFB
Modes de cryptage par bloc
85 / 91
Avantages et limitations de CFB
Modes de cryptage par bloc
CFB est approprié si les données arrivent en bits ou octets
approprié pour le mode en flux
Noter que dans le cryptage et le décryptage, les deux opèrent
avec le bloc de chiffrement EK
l’erreur (s’il y en a) peut se propager dans plusieurs blocs après le
bloc erroné
86 / 91
OFB
Modes de cryptage par bloc
Le message est traité comme flux de bits
la sortie du cryptage est ajouté au message
la sortie est ensuite retourné (Output feed-back) à l’entrée de
l’étage suivant (d’où le nom)
le feedback est indépendant du message (plaintext)
il peut être calculé auparavant
Oi = EK (Oi−1)
Ci = Pi XOR Oi
O−1 = IV
Utilisation : Cryptage de flux dans un canal bruité
87 / 91
OFB
Modes de cryptage par bloc
88 / 91
Avantages et Limitations de OFB
Modes de cryptage par bloc
OFB a besoin d’un IV qui doit être unique pour chaque utilisation
si l’IV est réutilisé, l’adversaire peut retrouver les sorties
Les erreurs ne se propagent pas
émetteur et récepteur doivent être en synchronisation
89 / 91
CTR
Modes de cryptage par bloc
un nouveau mode similaire à OFB mais chiffre un compteur au
lieu de la sortie
doit avoir une clé différente et une valeur de compteur différente
pour chaque message
Oi = EK (i)
Ci = Pi XOR Oi
Utilisation : Cryptage dans les réseaux haut débit
90 / 91
CTR
Modes de cryptage par bloc
91 / 91
<...