Académique Documents
Professionnel Documents
Culture Documents
2° Année du 2° Cycle
Dr, Oussama ARKI
oussama.arki@g.enp.edu.dz
Chapitre 02: Chiffrement et codage de l'information
Objectifs
-Connaitre les concepts de base liés à la cryptographie
-Apprendre les systèmes de chiffrement classiques
-Apprendre les systèmes de chiffrement à clé secret (bloc, flut)
-Apprendre les modes de chiffrement
ENP 2
Plan
Introduction à la cryptographie
Chiffrement classique
Chiffrement à clef secrète
Chiffrement par block
Chiffrement par flot
Modes de chiffrement
Conclusion
ENP 3
Introduction à la cryptographie
ENP 4
Introduction à la cryptographie
ENP 5
Introduction à la cryptographie
Vocabulaire de base
Cryptologie : Il s’agit d’une science mathématique comportant deux branches : la
cryptographie et la cryptanalyse
Cryptographie : a cryptographie est l’étude des méthodes donnant la possibilité d’envoyer
des données de manière confidentielle sur un support donné.
Chiffrement : le chiffrement consiste à transformer une donnée (texte, message, ...) afin de
la rendre incompréhensible par une personne autre que celui qui a créé le message et celui
qui en est le destinataire.
La fonction permettant de retrouver le texte clair à partir du texte chiffré porte le nom de
déchiffrement.
Texte chiffré : appelé également cryptogramme, le texte chiffré est le résultat de
l’application d’un chiffrement à un texte clair.
ENP 6
Introduction à la cryptographie
ENP 7
Introduction à la cryptographie
ENP 8
Introduction à la cryptographie
ENP 9
Introduction à la cryptographie
ENP 10
Introduction à la cryptographie
En théorie de l’information, Shannon définit deux notions que tout bon cryptosystème doit
posséder : la confusion et la diffusion
Confusion: c’est le fait que la méthode de calcul du message crypté à partir du message
clair doit être suffisamment complexe. C’est-`a-dire qu’il ne doit pas exister de relation
simples entre les bits du message clair et les bits du message crypté.
Diffusion: c’est le fait qu’une différence, même minime, entre deux messages clairs doit
entraîner une très grande différence entre les messages cryptés. Ainsi, chaque bit du
message clair doit contribuer au calcul de chaque bit du message crypte.
ENP 11
Introduction à la cryptographie
ENP 12
Introduction à la cryptographie
Principe de Kerckhoffs.
La sécurité d’un cryptosystème ne doit pas reposer sur le secret de l’algorithme de codage
mais qu’elle doit uniquement reposer sur la clef secrète du cryptosystème qui est un
paramètre facile `a changer, de taille réduite (actuellement de 64 à 2048 bits suivant le
type de code et la sécurité demandée) et donc assez facile à transmettre secrètement.
En d’autres termes, aucun secret ne doit résider dans l’algorithme mais plutôt dans la clé
L’adversaire connait le cryptosystème
ENP 13
Introduction à la cryptographie
ENP 14
Introduction à la cryptographie
ENP 15
Introduction à la cryptographie
Fonction de hachage
Le principe est qu’un message clair de longueur quelconque doit être transformé en un
message de longueur fixe inférieure à celle de départ. Le message réduit portera le nom
de "Haché" ou de "Condensé". L’intérêt est d’utiliser ce condensé comme empreinte
digitale du message original afin que ce dernier soit identifié de manière univoque.
Deux caractéristiques (théoriques) importantes sont les suivantes :
1. Ce sont des fonctions unidirectionnelles :
A partir de H(M) il est impossible de retrouver M.
2. Ce sont des fonctions sans collisions :
A partir de H(M) et M il est impossible de trouver M’=/= M tel que H(M’) =/= H(M).
ENP 16
Introduction à la cryptographie
ENP 17
Introduction à la cryptographie
La force brute : le principe est ici de tester toutes les clés possibles de manière exhaustive.
La limite maximale est donnée par TN avec T représentant la taille de l’alphabet, N est la
taille de la clé.
Exemple: pour une clé de 128 bits, il y a 2128 clés possibles. Cette technique n’est
“efficace” que pour des textes chiffrés avec une clé relativement courte
Analyse de fréquence
Cette analyse repose sur l’obtention d’indices précieux : quelle est la langue utilisée ?
quelle est le thème du texte ?
Il faut toutefois que la taille de K soit inférieure à la taille de C, au risque de ne pas
permettre l’unicité de la solution. Il faut aussi que le texte C soit suffisamment long pour
être représentatif. Et enfin que l’algorithme utilisé soit une substitution simple (mono- ou
polyalphabétique).
ENP 18
Introduction à la cryptographie
ENP 19
Introduction à la cryptographie
ENP 20
Chiffrement classique
ENP 21
Chiffrement classique
ENP 22
Chiffrement classique
ENP 23
Chiffrement classique
Nous utiliserions le chiffrement par décalage (avec un modulo de 26) pour crypter le texte
anglais ordinaire en établissant une correspondance entre les caractères alphabétiques et
les résidus modulo 26 comme suit :
A ↔0,
B ↔ 1,
...,
Z ↔ 25
ENP 24
Chiffrement classique
ENP 25
Chiffrement classique
ENP 26
Chiffrement classique
ENP 27
Chiffrement classique
ENP 28
Chiffrement classique
ENP 29
Chiffrement classique
Remarque:
Une clé pour le chiffrement de substitution consiste simplement en une permutation des
26 caractères alphabétiques. Le nombre de permutations possibles est de 26!, soit plus de
4 * 1026, un très grand nombre. Ainsi, une recherche de clé exhaustive est infaisable, même
pour un ordinateur.
Cependant, nous verrons plus tard qu'un chiffrement de substitution peut facilement être
cryptanalysé par d'autres méthodes(Analyse de fréquences).
ENP 30
Chiffrement classique
Analyse de fréquences
Lorsque la langue de départ et la technique de chiffrement sont connus, on peut exploiter
les régularités du langage par le principe d’analyse de la fréquence d’une lettre. Cette
technique ne fonctionne bien que si le message chiffré est suffisamment long pour avoir
des moyennes significatives.
ENP 31
Chiffrement classique
Analyse de fréquences
ENP 32
Chiffrement classique
ENP 33
Chiffrement classique
Il est également utile de considérer des séquences de deux ou trois lettres consécutives,
appelées respectivement digrammes et trigrammes.
Les 30 diagrammes les plus courants sont (par ordre décroissant) :
TH, HE, IN, ER, AN, RE, ED,ON, ES, ST,
EN, AT, TO, NT, HA, ND,OU, EA, NG, AS,
OR, TI, IS, ET, IT, AR, TE, SE, HI,OF.
Les douze trigrammes les plus courants sont :
THE, ING, AND, HER, ERE, ENT,
THA, NTH,WAS, ETH, FOR, DTH.
ENP 34
Chiffrement classique
Le chiffrement affine(substitution)
Soit P = C = Z26 et soit K = {(a, b) ϵ Z26 x Z26 avec pgcd(a, 26) = 1}.
Pour k = (a, b) ϵ K, on définie
Ek(x) = (ax + b) mod 26
Théoreme:
and le congruence ax ≡ b (mod m) a une solution
Dk(y) = a-1(y-b) mod 26 unique x ϵ Zm pour tout b ϵ Zm SSI pgcd(a,m) = 1.
(x, y ϵ Z26).
ENP 35
Chiffrement classique
ENP 36
Chiffrement classique
ENP 37
Chiffrement classique
Remarque
Puisque les valeurs de a ϵ Z26 telles que pgcd(a, 26) = 1 sont a = 1,3, 5, 7, 9, 11, 15, 17, 19,
21, 23 et 25. Le paramètre b peut être n'importe quel élément de Z26.
Par conséquent, le chiffrement affine a 12 * 26 = 312 clés possibles.
ENP 38
Chiffrement classique
ENP 39
Chiffrement classique
ENP 40
Chiffrement classique
Ce système a pour unique solution a = 6, b = 19 (dans Z26). Mais c'est une clé illégale,
puisque pgcd(a, 26) = 2 > 1. Notre hypothèse doit donc être incorrecte.
Notre prochaine supposition pourrait être que R est le cryptage de e et E est le cryptage de
t. En procédant comme ci-dessus, on obtient a = 13, ce qui est encore une fois illégal
(pgcd(13,26)>1).
Nous essayons donc la possibilité suivante, que R est le cryptage de e et H est le cryptage
de t. Cela donne a = 8, encore une fois impossible(pgcd(8,26)>1).
En continuant, nous supposons que R est le cryptage de e et K est le cryptage de t. Cela
produit a = 3, b = 5, qui est au moins une clé légale(pgcd(3,26)=1).
Il reste à calculer la fonction de déchiffrement correspondant à K = (3, 5), puis à déchiffrer
le texte chiffré pour voir si nous obtenons une chaîne significative d'anglais, ou un non-
sens. Cela confirmera la validité de (3, 5).
ENP 41
Chiffrement classique
On a E(x)=3x+5
Dk(y) = a-1(y-b) mod 26
L’inverse de 3 est 9 donc
DK(y)=9y - 19
Alors le texte chiffré donné se déchiffre pour donner :
algorithms are quite general definitions of arithmetic processes
Donc la clé est bonne
ENP 42
Chiffrement classique
ENP 43
Chiffrement classique
ENP 44
Chiffrement classique
ENP 45
Chiffrement classique
Décryptage:
Pour déchiffrer, on peut utiliser le même mot-clé, mais on le soustrait modulo 26 du texte
chiffré, au lieu de l'ajouter.
Exemple: V=21
21-2 mod 26 = 19 mod 26=19 qui correspond a t
Et ainsi de suite pour les autres lettre du texte chiffré
Remarque
le nombre de mots-clés possibles de longueur m dans un chiffre de Vigenére est de 26m
La grande force du chiffre de Vigenère est que la même lettre sera chiffrée de différentes
manières d’où perte de la fréquence des lettres, ce qui rend inutilisable l’analyse de
fréquence classique
ENP 46
Chiffrement classique
ENP 47
Chiffrement classique
ENP 48
Chiffrement classique
Ensuite, la permutation inverse peut être construite en interchangeant les deux lignes et en
réorganisant les colonnes de sorte que la première ligne soit dans l'ordre croissant.
la permutation π-1 est la suivante:
ENP 49
Chiffrement classique
ENP 50
Chiffrement classique
Le texte chiffré peut être déchiffré de la même manière, en utilisant la permutation inverse
π-1 .
ENP 51
Chiffrement classique
ENP 52
Chiffrement classique
ENP 53
Chiffrement classique
ENP 54
Chiffrement à clef secrète
ENP 55
Chiffrement à clef secrète
ENP 56
Chiffrement à clef secrète
ENP 57
Le chiffrement par blocs
ENP 58
Le chiffrement par blocs
ENP 59
Le chiffrement par blocs
ENP 60
Le chiffrement par blocs
Réalisation :
– Les permutations et les substitutions sont réalisées dans des dispositifs appelés :
✓ Boites-P (P-box) pour les Permutations
✓ Boites-S (S-box) pour les Substitutions
– L’algorithme de cryptage est réalisé par une successions de boîtes-P et de boîtes-S
ENP 61
Le chiffrement par blocs
Ces successions des rondes portent également le nom de réseaux S-P de Shannon.
ENP 62
Le chiffrement par blocs
ENP 63
Le chiffrement par blocs
ENP 64
Le chiffrement par blocs
ENP 65
Le chiffrement par blocs
Exemple
A partir d’une table de correspondance, on peut déterminer le résultat du chiffrement d’un
bloc après passage dans une structure de Feistel
On suppose qu’on a deux fonction(deux itérations) dont chaque fonction utilise un clé
diffèrent, comme suit:
Entrée f1 Sortie Entrée f2 Sortie
00 01 00 11
01 11 01 00
10 10 10 00
11 01
11 01
ENP 66
Le chiffrement par blocs
ENP 67
Le chiffrement par blocs
ENP 68
Le chiffrement par blocs
ENP 69
Le chiffrement par blocs
Particularités
– il possède un haut niveau de sécurité,
– il est complètement spécifié et facile à comprendre,
– la sécurité est indépendante de l’algorithme lui-même,
– il est rendu disponible à tous, par le fait qu’il est public,
– il est adaptable à diverses applications (logicielles et matérielles),
– il est rapide et exportable,
– il repose sur une clé relativement petite, qui sert à la fois au chiffrement et au
déchiffrement,
– il est facile à implémenter.
ENP 70
Le chiffrement par blocs
Algorithme de chiffrement
Le D.E.S. est un cryptosystème agissant par blocs. Cela signifie que D.E.S. ne chiffre pas les
données à la volée quand les caractères arrivent, mais il découpe virtuellement le texte
clair en blocs de 64 bits qu’il code séparément, puis qu’il concatène.
Un bloc de 64 bits du texte clair entre par un coté de l’algorithme et un bloc de 64 bits de
texte chiffré sort de l’autre coté
C’est un algorithme de chiffrement à clef secrète. La clef sert donc à la fois à chiffrer et à
déchiffrer le message. Cette clef a ici une longueur de 64 bits, c’est-à-dire 8 caractères,
mais dont seulement 56 bits sont utilisés
ENP 71
Le chiffrement par blocs
Algorithme de chiffrement
L’entière sécurité de l’algorithme repose sur les clefs puisque l’algorithme est parfaitement
connu de tous.
La clef de 64 bits est utilisée pour générer 16 autres clefs de 48 bits chacune qu’on
utilisera lors de chacune des 16 itérations du D.E.S.. Ces clefs sont les mêmes quel que soit
le bloc qu’on code dans un message.
ENP 72
Le chiffrement par blocs
ENP 73
Le chiffrement par blocs
La permutation initiale
Les 64 bits du bloc d’entrée subissent la permutation suivante:
Cette "matrice" permet d’effectuer des changements internes au bloc (i.e. il n’y a pas
d’apport de données extérieures). Le premier bit sera le bit 58, le second le bit 50, etc.
ENP 74
Le chiffrement par blocs
Le calcul médian: les 64 bits initiaux de données sont divisés en 2 blocs (L et R).
Itérations :
– Li = Ri−1
– Ri = Li−1 ⊕ F(Ri−1,Ki)
– Ki = G(K,i)
Avec
– Ti = LiRi
– Li = t1...t32
– Ri = t33...t64
ENP 75
Le chiffrement par blocs
Fonction F
Le calcul médian s’effectue en 16 itérations. Le détail de la fonction F est donné à la figure.
On traite 2 blocs simultanément : un bloc de 32 bits (données) et un bloc de 48 bits (clés).
Le résultat forme un bloc de 32 bits.
8*6 bits
8*4 bits
ENP 76
Le chiffrement par blocs
Expansion : Les 32 bits sont étendus à 48 bits grâce à une table d’expansion (également
appelée matrice d’extension)
ENP 77
Le chiffrement par blocs
Addition de la sous-clé :
Le résultat de l’expansion est additionné (par une opération ) à la sous-clé Ki
correspondant à l’itération selon la formule :
E(Ri−1) ⊕ Ki = S1S2 . . .S8
Les S1,S2, ...,S8 sont des blocs de 6 bits :
Sj = b1b2b3b4b5b6.
ENP 78
Le chiffrement par blocs
ENP 79
Le chiffrement par blocs
Chaque S-box est une simple table de correspondance de 4 lignes et 16 colonnes. Pour obtenir
la sortie correspondante à une entré de 6bits :
Le premier et le dernier bit sont pris pour obtenir l'indice de la ligne : b1 b6 = n°de ligne
Les 4 bits au milieu sont pris pour obtenir la valeur de la colonne : b2 b3 b4 b5 = n°de colonne
La valeur dans la case est renvoyé en sortie (4 bits)
Exemple:
111111 (6 bits)
n°de ligne=11=3
n°de colonne=1111=15
la cellule pointé est (ligne=3 et colonne=15), donc la valeur de sortie est 13 = 1101 (4 bits)
ENP 80
Le chiffrement par blocs
ENP 81
Le chiffrement par blocs
ENP 82
Le chiffrement par blocs
Permutation finale
Une fois le calcul médian terminé, on pratique la permutation inverse de la permutation
initiale.
Attention toutefois : il s’agit de l’inverse de la permutation initiale, en d’autres termes,
cette table permet de retrouver la position de départ. Ce n’est pas l’inverse de la "matrice"
de départ !
ENP 83
Le chiffrement par blocs
ENP 84
Le chiffrement par blocs
2. Division en sous-clés de 28 bits : le résultat de l’étape précédente (56 bits) est scindé
en deux sous-clés de 28 bits.
ENP 85
Le chiffrement par blocs
3. Rotation de la clé : à chaque itération, chaque sous-clé de 28 bits subit une rotation
d’1 ou 2 bits vers la gauche (une rotation circulaire vers la gauche) selon la table suivant :
Itération Nombre de bits de rotation Itération Nombre de bits de rotation
1 1 9 1
2 1 10 2
3 2 11 2
4 2 12 2
5 2 13 2
6 2 14 2
7 2 15 2
8 2 16 1
ENP 86
Le chiffrement par blocs
4. Réduction : après concaténation des deux sous-clés précédentes, la clé résultante (56
bits) est réduite à une sous-clé de 48 bits sur base de la matrice suivante:
ENP 87
Le chiffrement par blocs
Déchiffrement
Il suffit d’appliquer le même algorithme mais inversé en tenant bien compte du fait que
chaque itération du déchiffrement traite les mêmes paires de blocs utilisés dans le
chiffrement:
Ri−1 = Li
Et
Li−1 = Ri ⊕ f(Li,Ki)
ENP 88
Chiffrement par flux
ENP 89
Chiffrement par flux
Schéma de fonctionnement
ENP 90
Chiffrement par flux
ENP 91
Chiffrement par flux
ENP 92
Chiffrement par flux
Générateur de clés
Le générateur de clés peut être considéré comme une machine à états finis.
Un exemple de ce type de générateur est le FSR (Feedback Shift Register),
ENP 93
Chiffrement par flux
ENP 94
Chiffrement par flux
Schéma de fonctionnement d'un LFSR : le bit de rétroaction est obtenu par XOR sur une
sélection des bits du registre.
ENP 95
Chiffrement par flux
Principe
Un LFSR est un dispositif dérivé du registre à décalage de type SIPO(Serial In - Parallel Out)
dans lequel un ou plusieurs « étages » du registre subissent une transformation pour être
réinjectés en entrée de celui-ci
ENP 96
Chiffrement par flux
ENP 97
Chiffrement par flux
Exemple: des états successifs d'un LFSR à 4 bits avec une connexion des premier, second
et quatrième étages au niveau de la fonction de retour
Au septième top d'horloge l'état du registre est identique à son état initial.
On dit que le LFSR est de période 7.
ENP 98
Chiffrement par flux
ENP 99
Chiffrement par flux
Modèles mathématiques
Conception
ENP 100
Chiffrement par flux
Définitions
Un LFSR peut être défini comme un triplet L = ( Fq , r , ( c1 , c2 , . . . , cr ) ) où Fq est le corps
fini à q éléments (F2), r est le nombre de cellules (bits) du LFSR, les coefficients c1, …, cr
sont des éléments de Fq (donc soit 0 ou bien 1).
Suite engendrée
La suite engendrée par ce LFSR est une suite ( an )n ∈ N vérifiant la relation de récurrence
ou de façon équivalente
ENP 101
Chiffrement par flux
Taille
La taille du LFSR est r le nombre de cellules (bits).
Coefficients de connexion
les coefficients c1, …, cr sont appelés les coefficients de connexion du LFSR.
Fonction de retour ou de rétroaction
La fonction f définie par
ENP 102
Chiffrement par flux
ENP 103
Chiffrement par flux
Polynôme de connexion
Soit un LFSR L défini par le triplet L = ( Fq , r , ( c1 , c2 , . . . , cr ) ), le polynôme de connexion
est
ENP 104
Chiffrement par flux
Périodicité
Puisque la prochaine valeur d'entrée d'un LFSR dépend uniquement des valeurs de certains
étages de celui-ci et que l'état « tout à zéro » ne génère jamais de changement sa
séquence est de période maximale qr − 1 sur Fq où r est la taille du registre,
Une séquence d'un LFSR sur Fq avec une période qr − 1 où r est la taille du registre est
appelé une « m-séquence »
Exemple : Un LFSR L = ( F2 , 7 , ( 1 , 0 , 1 , 1 , 0 , 0 , 1 ) )
ce registre aura une période maximale de 27-1=127
ENP 105
Chiffrement par flux
ENP 106
Chiffrement par flux
RC4
Il s’agit d’un chiffrement par flux créé en 1987 par Ron Rivest1. Diverses analyses ont
démontré que la période du générateur est supérieure à 10100.
Il s’agit probablement du chiffrement par flots le plus utilisé actuellement
Un chiffrement par RC4 est très rapide
Il existe une version allégée du chiffrement RC4, portant le nom de ARC4 (Alleged RC4),
utilisable légalement.
ENP 107
Chiffrement par flux
Fonctionnement du RC4
Cet algorithme fonctionne sur les octets. Ainsi, la clé, de longueur variable, peut avoir une
taille comprise entre 1 et 256 octets (de 8 à 2048 bits). Elle est utilisée pour initialiser un
vecteur S de 256 octets.
ENP 108
Chiffrement par flux
Initialisation
Initialement, les cellules de S reçoivent une valeur égale à leur position ( S[0]=0, S[1]=1, ...)
Un vecteur temporaire de longueur T (de longueur égale à S) est également créé destiné à
recevoir la clé. Si la longueur de la clé K est égale à 256 octets, K est simplement transféré
dans T.
Si K est inférieur à 256 octets, il est recopié dans T jusqu’à atteindre la taille de T.
ENP 109
Chiffrement par flux
ENP 110
Chiffrement par flux
Permutation initiale de S
Le vecteur temporaire T est ensuite utilisé pour produire la permutation initiale de S.
Pour chaque cellule S[i] de S, celle-ci sera échangée avec une autre cellule de S (de l’indice
j) selon un calcul basé sur la valeur comprise dans la cellule T[i] correspondante.
On commence par j=0
j=j + S[i] + T[i] mod 256
ENP 111
Chiffrement par flux
Remarque
Ces deux portions de code portent le nom de KSA (Key Schedule Algorithm).
ENP 112
Chiffrement par flux
Génération du flux
A partir de cet instant, la clé d’entrée n’est plus utilisée.
Pour chaque S[i], on procèdera à un échange avec un autre octet de S, selon un schéma
basé sur la configuration courante de S. Une fois arrivé à S[255], le processus redémarre à
la cellule S[0].
La valeur de k est alors utilisée pour le chiffrement ( avec le prochain octet de texte clair),
ou pour le déchiffrement (avec le prochain octet de texte chiffré) en utilisant le XOR.
ENP 113
Chiffrement par flux
ENP 114
Modes de chiffrement
ENP 115
Modes de chiffrement
ENP 116
Modes de chiffrement
Chiffrement
ENP 117
Modes de chiffrement
Déchiffrement
ENP 118
Modes de chiffrement
ENP 119
Modes de chiffrement
ENP 120
Modes de chiffrement
Chiffrement
ENP 121
Modes de chiffrement
Déchiffrement
ENP 122
Modes de chiffrement
Déchiffrement
L’intérêt est que le déchiffrement ne nécessite pas de calculer Dk en effet:
mi = ci ⊕ Ek(ci−1)
ENP 124