Vous êtes sur la page 1sur 124

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Ecole Nationale Polytechnique

Chapitre 02: Chiffrement et codage de


l'information

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

La cryptographie utilise des concepts issus de nombreux domaines (Informatique,


Mathématiques, Electronique).
Différence entre chiffrement et codage
Les opérations de chiffrement et du codage font partie de la théorie de l’information. La
différence essentielle réside dans la volonté de protéger les informations et d’empêcher
des tierces personnes d’accéder aux données dans le cas du chiffrement
Le codage : consiste à transformer de l’information (des données) vers un ensemble de
mots. Chacun de ces mots est constitué de symboles, sans la volonté de dissimuler, par
exemple le codage binaire par 0 et 1
Le chiffrement : travaille sur des composants plus élémentaires du message, les lettres ou
les bits, sans s’intéresser à la signification du contenu, avec la volonté de dissimuler
(objectif du module)

ENP 4
Introduction à la cryptographie

Exemple: Code ASCII


L'American Standard Code for Information Interchange (Code américain normalisé pour
l'échange d'information), plus connu sous l'acronyme ASCII , est une norme informatique
de codage de caractères apparue dans les années 1960.
Principe
L'ASCII définit 128 caractères numérotés de 0 à 127 et codés en binaire de 0000000 à
1111111. Sept bits suffisent donc. Toutefois, les ordinateurs travaillant presque tous sur un
multiple de huit bits (un octet) depuis les années 1970, chaque caractère d'un texte en
ASCII est souvent stocké dans un octet dont le 8e bit est 0
ASCII suffit pour représenter les textes en anglais, mais il est trop limité pour les autres
langues, dont le français et ses lettres accentuées

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

Clef : Il s’agit du paramètre impliqué et autorisant des opérations de chiffrement et/ou


déchiffrement. Dans le cas d’un algorithme symétrique, la clef est identique lors des deux
opérations. Dans le cas d’algorithmes asymétriques, elle diffère pour les deux opérations.
Cryptanalyse : Opposée à la cryptographie, elle a pour but de retrouver le texte clair à
partir de textes chiffrés en déterminant les failles des algorithmes utilisés.
Cryptosystème : Il est défini comme l’ensemble des clés possibles (espace de clés), des
textes clairs et chiffrés possibles associés à un algorithme donné.
L’algorithme est en réalité un triplet d’algorithmes :
– l’un générant les clés K,
– un autre pour chiffrer M, et
– un troisième pour déchiffrer C.

ENP 7
Introduction à la cryptographie

Vocabulaire de base: schéma

ENP 8
Introduction à la cryptographie

Formalisation mathématique : cryptosystème ( Cryptosystem )


Un cryptosystème est un quintuple (P, C, K, Ɛ, D), où les conditions suivantes sont
satisfaites :
1. P est un ensemble fini de textes clairs possibles ;
2. C est un ensemble fini de textes chiffrés possibles ;
3. K, l'espace de clés, est un ensemble fini de clés possibles ;
4. Pour chaque k ϵ K, il existe une règle de chiffrement EK ϵ Ɛ et une règle de
déchiffrement correspondante DK ϵ D.
EK : P → C et DK : C → P sont des fonctions telles que DK(EK(x)) = x pour chaque élément
de texte en clair x ϵ P

ENP 9
Introduction à la cryptographie

En cryptographie, la propriété de base est : M = Dk(Ek(M)) où


– M représente le texte clair,
– C est le texte chiffré,
– K est la clé (dans le cas d’un algorithme à clé symétrique), kE et kD dans le cas
d’algorithmes asymétriques,
– Ek(x) est la fonction de chiffrement, doit être une fonction injective (c'est-à-dire un-à-un)
– Dk(x) est la fonction de déchiffrement.
Ainsi, avec un algorithme à clef symétrique,
M = Dk(C) si C = Ek(M)
Si P = C, il s'ensuit que chaque fonction de chiffrement est une permutation

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

La publication des algorithmes


Selon l’endroit où réside le secret, on peut parler d’algorithme secret ou d’algorithme
publié
 Algorithme secret
– La cryptanalyse, souvent basée sur le secret de la clé, doit ici en plus retrouver l’entièreté
de l’algorithme (mécanisme de récupération).
– Souvent, de tels algorithmes sont utilisés par un plus petit nombre d’utilisateurs.
 Algorithme public
– Puisque l’algorithme est publié, tout le monde a le droit de l’explorer
– Tout le monde utilise la même version publique ce qui permet une standardisation
générale(Internet).

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

Les principaux système cryptographiques


Cryptosystème à clé symétrique
– Les clés sont identiques : KE = KD = K,
– La clé doit rester secrète,
– Au niveau de la génération des clés, elle est choisie aléatoirement dans l’espace des clés,
– Ces algorithmes sont basés sur des opérations de transposition et de substitution des bits
du texte clair en fonction de la clé,
– L’avantage principal de ce mode de chiffrement est sa rapidité,
– Le principal désavantage réside dans la distribution des clés En effet, pour un système à N
utilisateurs, il y aura N.(N − 1)/2 paires de clés.

ENP 14
Introduction à la cryptographie

Cryptosystème à clé publique


– Une clé publique PK
– Une clé privée secrète SK
– Propriété : La connaissance de PK ne permet pas de déduire SK
DSK(EPk(M)) = M,
-Chaque utilisateur possède une paire (SK, PK) et tous les transferts de message ont lieu
avec ces clés.
– La distribution des clés est grandement facilitée car l’échange de clés secrètes n’est plus
nécessaire. Chaque utilisateur conserve sa clé secrète sans jamais la divulguer. Seule la clé
publique devra être distribuée.

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

Les 4 attaques cryptanalytiques


1. Attaque sur le texte chiffré uniquement (ciphertext-only attack):
– Le cryptanalyste dispose du texte chiffré de plusieurs messages, tous ayant été chiffrés
avec le même algorithme.
Objectif : retrouver le plus grand nombre de messages clairs possibles, ou mieux encore
retrouver la ou les clefs qui ont été utilisées.
A partir d’un texte chiffré, on recherche le texte clair et/ou la clé. On procède par analyse
de fréquence des lettres utilisées dans le texte chiffré. Cette technique ne fonctionne que
pour la plupart des chiffrements classiques basiques, les seuls permettant l’utilisation de
l’analyse de fréquence. On peut aussi également procéder par force brute pour briser de
tels chiffrements.

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

2. Attaque à texte clair connu (known-plaintext attack en anglais) :


le cryptanalyste possède des messages ou des parties de messages en clair ainsi que les
versions chiffrées. La cryptanalyse linéaire fait partie de cette catégorie.
3. Attaque à texte clair choisi (chosen-plaintext attack en anglais) :
Le cryptanalyste a non seulement accès aux textes chiffres et aux textes clairs
correspondants, mais de plus il peut choisir les textes en clair qui donneront plus
d'informations sur la clef. La cryptanalyse différentielle est un exemple d'attaque à texte
clair choisi.
4. Attaque à texte chiffré choisi (chosen-ciphertext attack en anglais) :
le cryptanalyste possède des messages chiffrés et demande la version en clair de certains
de ces messages pour mener l'attaque.

ENP 19
Introduction à la cryptographie

Différentes notions de sécurité d’un cryptosystème.


• La sécurité inconditionnelle: qui ne préjuge pas de la puissance de calcul du
cryptanalyste qui peut être illimitée.
• La sécurité calculatoire: qui repose sur l’impossibilité de faire en un temps raisonnable
les calculs nécessaires pour décrypter un message(la théorie de la complexité).
• La sécurité prouvée: qui réduit la sécurité du cryptosystème à un problème bien connu
répute difficile, par exemple on pourrait prouver un théorème disant qu’un système
cryptographique donné est sûr si un entier donné n ne peut être factorisé.
• La confidentialité parfaite: qualité des codes pour lesquels un couple (message clair,
message chiffré) ne donne aucune information sur la clef.

ENP 20
Chiffrement classique

– Cryptographie traditionnelle (classique)


✓ algorithmes relativement simples
✓ clés longues pour assurer la sécurité
– Cryptographie moderne
✓ algorithmes très complexes
✓ clés relativement courtes

ENP 21
Chiffrement classique

Deux méthodes de chiffrement ont dominé les débuts de la cryptographie :


Le chiffrement par transposition: agit sur le message en déplaçant ses lettres, i.e. par une
permutation sur les positions des lettres du message.
Le chiffrement par substitution: agit sur chaque lettre du message par une permutation.
 La substitution monoalphabétique: consiste à remplacer chaque lettre du
message par une autre lettre de l'alphabet
 La substitution polyalphabétique: consiste à utiliser une suite de chiffres
monoalphabétique réutilisée périodiquement

ENP 22
Chiffrement classique

Chiffrement par décalage(substitution)


Soit P = C = K = Z26. pour 0 ≤k ≤ 25, on definie
EK(x) = (x + k) mod 26
et
DK(y) = (y - k) mod 26
Tel que (x, y ϵ Z26).
Remarque : si k=3 le chiffrement par décalage est appelé le chiffrement de Caesar

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

Exemple: soit K = 11 et que le texte en clair: wewillmeetatmidnight


Nous convertissons d'abord le texte en clair en une séquence d'entiers :

Ensuite, nous ajoutons 11 à chaque valeur, en réduisant modulo 26 :

Enfin, nous convertissons la séquence d'entiers en caractères alphabétiques, obtenant le


texte chiffré : HPHTWWXPPELEXTOYTRSE.
Remarque: Dans l'exemple ci-dessus, nous utilisons des lettres majuscules pour le texte
chiffré et des lettres minuscules pour le texte en clair?

ENP 25
Chiffrement classique

Cryptanalyse de chiffrement par décalage:


Nous observons que le chiffrement par décalage (modulo 26) n'est pas sécurisé, car il peut
être cryptanalysé par la méthode évidente de la recherche de clé exhaustive.
Comme il n'y a que 26 clés possibles, il est facile d'essayer toutes les règles de
déchiffrement possibles DK jusqu'à ce qu'une chaîne de texte en clair «significative » soit
obtenue.
Remarque important:
Une condition nécessaire pour qu'un système cryptographique soit sécurisé est qu'une
recherche de clé exhaustive soit irréalisable ; c'est-à-dire que l'espace de clé doit être très
grand (cependant un grand espace de clés n'est pas suffisant pour garantir la sécurité).

ENP 26
Chiffrement classique

Exemple: supposant qu’on a le texte chiffré suivant


JBCRCLQRWCRVNBJENBWRWN
on essaie successivement les clés de décryptage k=0,k=1, etc. On obtient :
jbcrclqrwcrvnbjenbwrwn ewxmxglmrxmqiweziwrmri
iabqbkpqvbqumaidmavqvm dvwlwfklqwlphvdyhvqlqh
hzapajopuaptlzhclzupul cuvkvejkpvkogucxgupkpg
gyzozinotzoskygbkytotk btujudijoujnftbwftojof
Fxynyhmnsynrjxfajxsnsj Astitchintimesavesnine : pour k=9
À ce stade, nous avons déterminé que le texte en clair est la phrase «a stitch in time saves
nine», et nous pouvons nous arrêter. La clé est K = 9.

ENP 27
Chiffrement classique

Le chiffrement par substitution


Soit P = C = Z26. K est constitué de toutes les permutations possibles des 26 symboles 0, 1, .
. . , 25. Pour chaque permutation π ϵ K, on définie:
Eπ(x) = π(x),
Et
Dπ(y) = π-1(y),
où π-1 est la permutation inverse de π.

ENP 28
Chiffrement classique

Exemple: Voici un exemple de permutation « aléatoire »(cryptage)


Donc,
Eπ(a) = X, Eπ(b) = N, etc

The decryption function is the inverse permutation(décryptage)


Donc,
Dπ(A) = d, Dπ(B) = r, etc

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

Probabilités d'occurrence des 26 lettres (anglais)


1. E, ayant une probabilité d'environ 0,120
2. T, A,O, I, N, S, H, R, chacun ayant une probabilité
comprise entre 0,06 et 0,09
3. D, L, chacun ayant une probabilité d'environ 0,04
4. C,U,M,W, F, G,Y, P, B, chacun ayant une probabilité
comprise entre 0,015 et 0,028
5. V, K, J, X,Q, Z, chacun ayant une probabilité
inférieure à 0,01.

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

Exemple: suposant que K = (7, 3). Donc la fonction de cryptage:


Ek(x) = 7x + 3 mod 26
Pour la fonction de décryptage
Dk(y)=7-1(y-3) mod 26
On applique l’Algo d’Euclide à 26 et 7 pour trouver la relation de Bézout entre eux
26=3*7+5
7=1*5+2
5=2*2+1 donc 1=5-2*2=5-2*(7-1*5)=5-2*7+2*5=3*5-2*7=3*(26-3*7)-2*7
1=3*26-9*7-2*7=3*26-11*7 avec dans Z26 3*26=0 alors -11*7=1
Donc l’inverse de 7 est -11 donc l'inverse de 7 est 15
Alors : Dk(y)=15(y-3) mod 26

ENP 36
Chiffrement classique

Cryptage de la chaine: abc (a=0 , b=1 et c=2)


EK(x) = 7x + 3 mod 26
Ek(0)=7*0+3 mod 26 =3 mod 26 = 3
Ek(1)=7*1+3 mod 26 =10 mod 26 = 10 Donc abc chiffrée par DKR
Ek(2)=7*2+3 mod 26 =17 mod 26 = 17
Décryptage de la chaine: DKR
Dk(y)=15(y-3) mod 26
Dk(3)=15(3-3) mod 26 =0 mod 26 = 0 donc le a
Dk(10)=15(10-3) mod 26 =15*7 mod 26 = 105 mod 26 = 1 c’est le b
Dk(3)=15(17-3) mod 26 =210 mod 26 = 2 c’est le c

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

Cryptanalyse du chiffre affine


Supposons qu’on a intercepté le texte chiffré montré dans l'exemple suivant :
FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHHRH
L'analyse de fréquence de ce texte chiffré est donnée par le tableau suivant:

ENP 39
Chiffrement classique

Les caractères de texte chiffré les plus fréquents sont :


R (8 occurrences), D (7 occurrences), E, H, K (5 occurrences
chacun) et F, S, V (4 occurrences chacun).
Comme première supposition, nous pourrions supposer que R
est le cryptage de e et D est le cryptage de t, puisque e et t
sont (respectivement) les deux lettres les plus courantes.
Exprimé numériquement, nous avons EK(4) = 17 et EK(19) = 3.
Rappelons que EK(x) = ax + b, où a et b sont des inconnues. On
obtient donc deux équations linéaires à deux inconnues :
4a + b = 17
19a + b = 3.

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

Chiffrement de Vigenére (substitution polyalphabétique)


Soit m un entier positif et P = C = K = (Z26)m.
pour un clé K =(k1, k2, . . . , km), on definie
EK(x1, x2, . . . , xm) = (x1 + k1, x2 + k2, . . . , xm + km)
et
DK(y1, y2, . . . , ym) = (y1 -k1, y2 -k2, . . . , ym -km),
où toutes les opérations sont effectuées dans Z26.
Remarque :
(Z26)m veut dire que la taille du texte en clair, la clé et le texte chiffré=m

ENP 43
Chiffrement classique

Sa force réside dans l’utilisation non pas d’un,


mais de 26 alphabets décalés pour chiffrer un
message. On parle du carré de Vigenère.
Ce chiffre utilise une clef qui définit le
décalage pour chaque lettre du message (A :
décalage de 0 cran, B : 1 cran, C : 2 crans, ..., Z :
25 crans).
Pour utiliser le chiffrement de Vigenère, on a
recours au Carré de Vigenère

ENP 44
Chiffrement classique

Exemple: Supposons m = 6 et le mot-clé est CIPHER. Cela correspond à l'équivalent


numérique K = (2, 8, 15, 7, 4, 17). Supposons que le texte en clair soit la chaîne
thiscryptosystemisnotsecure
Nous convertissons le texte en clair en modulo 26, le écrivons par groupes de six, puis «
ajoutons » le mot-clé modulo 26, comme suit :
Donc le texte chiffré est :
VPXZGIAXIVWPUBTTMJPWIZITWZT

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

Le chiffrement par permutation(transposition)


L'idée d'un chiffrement de permutation est de garder les caractères en clair inchangés,
mais de modifier leurs positions en les réorganisant à l'aide d'une permutation.
Une permutation d'un ensemble fini X est une fonction bijective π : X → X. En d'autres
termes, la fonction π est un-à-un (injective) et (surjective).
Il s'ensuit que, pour tout x ϵ X, il existe un unique élément x’ ϵ X tel que
π (x’) = x.
Ceci nous permet de définir la permutation inverse, π-1 : X → X par la règle
π-1(x) = x’ SSI π (x’) = x.
Alors π-1 est aussi une permutation de X.

ENP 47
Chiffrement classique

Le chiffrement par permutation


Soit m un entier positif. Soit P = C = (Z26)m et soit K constitué de toutes les permutations de
{1, . . . ,m}.
Pour une clé (c'est-à-dire une permutation) π , on définit
eπ (x1, . . . , xm) = (xπ(1), . . . , xπ (m))
Et
dπ (y1, . . . , ym) = (y π-1(1) , . . . , y π-1(m) )
où π-1, est la permutation inverse de π .

ENP 48
Chiffrement classique

Exemple: Supposons m = 6 et la clé est la permutation suivante π :

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

Maintenant, supposons que l'on nous donne le texte en clair


shesellsseashellsbytheseashore
Nous partitionnons d'abord le texte en clair en groupes de six lettres :
shesel | lsseas | hellsb | ythese | ashore
Maintenant, chaque groupe de six lettres est réarrangé selon la permutation π, ce qui
donne ce qui suit :

EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS


Le texte chiffré est donc :
EESLSHSALSESLSHBLEHSYEETHRAEOS

ENP 50
Chiffrement classique

Le texte chiffré peut être déchiffré de la même manière, en utilisant la permutation inverse
π-1 .

EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS


Apres π-1
shesel | lsseas | hellsb | ythese | ashore

ENP 51
Chiffrement classique

Chiffrement par flux


Dans les cryptosystèmes que nous avons étudiés jusqu'à présent, les éléments de texte en
clair successifs sont chiffrés à l'aide de la même clé, K. C'est-à-dire que la chaîne de texte
chiffré y est obtenue comme suit :
y = y1y2 ,,,,, = eK(x1)eK(x2),,,,,.
Un cryptosystème de ce type sont souvent appelé chiffrement par bloc.
Une approche alternative consiste à utiliser ce qu'on appelle le chiffrement par flux. L'idée
de base est de générer un flux de clés z = z1z2,,, et de l'utiliser pour chiffrer une chaîne de
texte en clair x = x1x2,,,selon la règle
y = y1y2,,,= ez1 (x1)ez2 (x2),,,,.

ENP 52
Chiffrement classique

Chiffre de Vernam (One Time Pad - 1917)


Le masque jetable est défini comme un chiffre de Vigenère avec la caractéristique que la
clef de chiffrement a la même longueur que le message clair.
Pour utiliser ce chiffrement, il faut respecter plusieurs propriétés :
– choisir une clef aussi longue que le texte à chiffrer,
– utiliser une clef formée d’une suite de caractères aléatoires,
– protéger votre clef, Clair M A S Q U E J E T A B L E
– ne jamais réutiliser une clef. Clé X C A A T E L P R V G Z C
Décalage 23 2 0 0 19 4 11 15 17 21 6 25 2
Chiffré J C S Q N I U T K V H K G

ENP 53
Chiffrement classique

Exemple illustrant l’inviolabilité :


Soit le texte chiffré : cuskqxwmfwituk
Soit le masque jetable possible : bgfbcdfbfdecdg
Résultat : BONJOURLATERRE
Soit un autre masque jetable : quauwtedbdisjg
Résultat : MASQUESJETABLE
Il est donc impossible de déterminer le bon masque !
Le système du masque jetable, avec les précautions indiquées, est absolument inviolable si
l’on ne connaît pas la clef. Il est couramment utilisé de nos jours par les États. En effet,
ceux-ci peuvent communiquer les clefs à leurs ambassades de manière sûre via la valise
diplomatique.

ENP 54
Chiffrement à clef secrète

La cryptographie symétrique, également dite à clé secrète (par opposition à la


cryptographie asymétrique), est la plus ancienne forme de chiffrement. Elle permet à la
fois de chiffrer et de déchiffrer des messages à l'aide d'un même mot clé.
Clé et sécurité
L'un des concepts fondamentaux de la cryptographie symétrique est la clé. Une clé est une
donnée qui (traitée par un algorithme) permet de chiffrer et de déchiffrer un message.
Avantages :
 Chiffrement rapide, voire très rapide en implantation matérielle.
 Clés plutôt courtes : 128 - 256 bits (à comparer avec RSA : 1024 - 2048 bits).
Inconvénient majeur : partage d’un secret (la clé commune K), ce qui est toujours délicat à
gérer.

ENP 55
Chiffrement à clef secrète

Principe du chiffrement à clef secrète

ENP 56
Chiffrement à clef secrète

Il existe deux types de cryptage symétrique:


 chiffrement par block
l’opération de chiffrement s’effectue sur des blocs de texte clair (ex : le DES avec des blocs
de 64 bits). les données à chiffrer sont découpées en blocs de taille fixe (typiquement 64
ou 128 bits). Les blocs sont chiffrés séparément et ensuite combinés selon un mode
opératoire
 chiffrement par flot
l’opération de chiffrement s’opère sur chaque élément du texte clair (byte, bits). On chiffre
un bit/caractère à la fois. La structure d’un chiffrement par Stream repose sur un
générateur de clés qui produit une séquence de clés k1, k2, ..., ki.

ENP 57
Le chiffrement par blocs

Le chiffrement par blocs


L’idée générale du chiffrement par blocs est la suivante :
1. Remplacer les caractères par un code binaire (ex: ASCII).
2. Découper cette chaîne en blocs (de N bits).
3. Chiffrer un bloc en l’additionnant bit par bit à une clef(ex: Ou exclusif).
4. Déplacer certains bits à l’intérieur du bloc (permutation).
5. Recommencer un certain nombre de fois les opérations précédentes (tours).
6. Passer au bloc suivant et retourner au point 3 jusqu’à ce que tout le message soit chiffré.

ENP 58
Le chiffrement par blocs

Architecture d’un chiffrement à d tours

ENP 59
Le chiffrement par blocs

On distingue trois catégories de chiffrement par bloc :


– Chiffrement par substitution : Les substitutions consistent à remplacer des symboles ou
des groupes de symboles par d’autres symboles ou groupes de symboles dans le but de
créer de la confusion.
– Chiffrement par transposition : Les transpositions consistent à mélanger les symboles ou
les groupes de symboles d’un message clair suivant des règles prédéfinies pour créer de la
diffusion. Ces règles sont déterminées par la clé de chiffrement. Une suite de
transpositions forme une permutation.
– Chiffrement par produit : C’est la combinaison des deux. La plupart des algorithmes à
clés symétriques utilisent le chiffrement par produit. On dit qu’un « round » est complété
lorsque les deux transformations ont été faites une fois (substitution et transposition).

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

Les structures de Feistel


Cette structure fut décrite en 1973 (par Feistel, employé chez IBM). La plupart des
chiffrements de la fin du XXè siècle sont basés sur cette structure. Elle découle des réseaux
S-P de Shannon. Il adapte la structure de Shannon afin de la rendre inversible ce qui
permet de réutiliser le matériel de chiffrement pour déchiffrer un message. La seule
modification s’opère dans la manière dont la clé est utilisée.

ENP 63
Le chiffrement par blocs

Dans une construction de Feistel


-le bloc d’entrée d’un round est séparé en deux parties.
-La fonction de chiffrement est appliquée sur la première
partie du bloc
-L’opération binaire OU-Exclusif() est appliquée sur la partie
sortante de la fonction et la deuxième partie.
Ensuite les deux parties sont permutées et le prochain round
commence.

ENP 64
Le chiffrement par blocs

L’avantage est que la fonction de chiffrement et la fonction de déchiffrement sont


identiques. Ainsi la fonction n’a pas à être inversible, c’est la structure qui l’est.

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

Exécution d’un schéma de Feistel

ENP 67
Le chiffrement par blocs

Choix des paramètres


La réalisation d’un tel réseau dépend des choix effectués pour les paramètres suivants :
– Taille du bloc : si elle augmente, la sécurité augmente également
– Taille de clé : si elle augmente, la sécurité aussi
– Nombre de cycle : plus il y en a, plus la sécurité est renforcée
– Algorithme de génération des sous-clés : plus il est complexe, plus la compréhension est
rendue difficile.

ENP 68
Le chiffrement par blocs

Data Encryption Standard (D.E.S)


Le D.E.S. (Data Encryption Standard, c’est-à-dire Standard de Chiffrement de Données) est
un standard mondial depuis la fin des années 1970.
Le DES comporte plusieurs avantages qui en ont fait l’algorithme de chiffrement
symétrique standard pendant longtemps, jusqu’il y a quelques années

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

Algorithme principal du DES


L’algorithme repose principalement sur 3
étapes, en plus de la gestion spécifique de la
clé :
1. Permutation initiale
2. Calcul médian (16 fois) : application d’un
algorithme complexe appliqué en fonction de
la clé
3. Permutation finale

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

Transformations par S-Boxes : Chaque bloc Sj constitue ensuite l’entrée de l’opération de


substitution réalisée sur la base des S-Box.

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

Les 8 S-Box du DES

ENP 81
Le chiffrement par blocs

Transformations par P-Box (permutation du calcul médian) :


L’opération de permutation est réalisée sur le résultat de la substitution des S-box et est
basée sur la table suivante (Matrice de permutation du calcul médian)

Le résultat de cette dernière permutation est noté F(Ri−1,Ki).

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

Algorithme du calcul de la clé G(K, n)


La clé est constituée de 64 bits dont 56 sont utilisés dans l’algorithme. Les 8 autres peuvent
être utilisés pour la détection d’erreurs où chacun de ces bits sera utilisé comme bit de
parité des 7 groupes de 8 bits. Ainsi, le nombre total de clés est de 256.

ENP 84
Le chiffrement par blocs

Dérivation des sous-clés


La clé initiale est de 64 bits. Le calcul des sous clés a lieu en 4 étapes :
1. Réduction à 56 bits : les bits de parité sont enlevés(ceux situés en position 8,16,. . .
,64). On procède ensuite à une permutation semblable à celle de la figure suivante.

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:

Le résultat de cette réduction est la sous-clé Ki additionnée avec E(Ri−1).

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

Les chiffrements à flot


On génère à partir de la clé une suite chiffrante pseudo-aléatoire de même longueur que
les données. On combine cette suite, par exemple avec un XOR bit-à-bit, avec les données
à chiffer.
Des données pseudo-aléatoires, appelées flux de clé (keystream), sont générées et
combinées (le plus souvent avec un XOR) aux données en clair pour produire les données
chiffrées.

ENP 89
Chiffrement par flux

Schéma de fonctionnement

ENP 90
Chiffrement par flux

Le générateur pseudo-aléatoire doit être de bonne qualité. Idéalement :


1. chaque bit de sortie vaut 0 ou 1 avec une probabilité 1/2
2. aucun bit de sortie n’est corrélé avec les précédents ou les suivants,
3. la période du générateur est suffisamment longue.
Problème : ces trois conditions sont extrêmement difficiles à satisfaire en pratique.

ENP 91
Chiffrement par flux

La sécurité du chiffrement dépend de la qualité du générateur : si ki = 0 pour tout i, M=C.


Mais si la séquence des clés ki est infinie et complètement aléatoire, on obtient un One-
Time-Pad. En pratique, on se situe entre les deux, c’est-à-dire une séquence pseudo-
aléatoire.

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

Un registre à décalage à rétroaction linéaire, ou LFSR ( linear feedback shift register),


Est un dispositif électronique ou logiciel qui produit une suite de bits qui peut être vue
comme une suite récurrente linéaire sur le corps fini F2 à 2 éléments (0 et 1).
Dans le cas particulier d'une suite de 0 et de 1, c'est un registre à décalage avec
rétroaction linéaire, ce qui signifie que le bit entrant est le résultat d'un OU exclusif (ou
XOR) entre plusieurs bits du registre, cette opération étant également l'addition sur le
corps fini F2. Ces dispositifs sont simples, peu coûteux et efficaces.
La suite récurrente produite par un LFSR est nécessairement périodique à partir d'un
certain rang.
Les LFSR sont utilisés en cryptographie pour engendrer des suites de nombres pseudo-
aléatoires. La fonction de rétroaction est alors choisie de façon à obtenir une période la
plus grande possible.

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.

Les bits de sortie du LFSR constituent la suite pseudo-aléatoire.


La qualité du générateur est définie par sa période de retour, c’est-à-dire la période
après laquelle la même série d’output est répétée

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

Longueur d’un LSFR


Il est dit de longueur « r » lorsqu'il est composé de r éléments appelés « étages » ou
«cellules » ou bien des «bits», le contenu de l'ensemble de ces éléments à un moment «t
» est l'état du LFSR à ce moment.
À chaque top d'horloge le contenu d'un étage est transféré au suivant et le premier est
rempli par le résultat d'une fonction linéaire qui prend en compte l'état d'un ou de
plusieurs étages,

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

Exemple: LFSR à 4 bits

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

Avec x1,x2,…..,xr sont les valeurs de cellules LFSR


La fonction f est appelée fonction de retour ou de rétroaction du LFSR.
Quand q=2, F2 est le corps des booléens et f est une fonction booléenne (linéaire).

ENP 102
Chiffrement par flux

Polynôme de rétroaction (Feedback polynomial)


Soit un LFSR défini par le triplet L = ( Fq , r , ( c1 , c2 , . . . , cr ) )
Son polynôme de rétroaction, appelé aussi polynôme caractéristique, est

Exemple : Un LFSR L = ( F2 , 7 , ( 1 , 0 , 1 , 1 , 0 , 0 , 1 ) ) aura comme polynôme de


rétroaction

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

Exemple : Un LFSR L = ( F2 , 7 , ( 1 , 0 , 1 , 1 , 0 , 0 , 1 ) ) aura comme polynôme de


connexion

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

Sécurité des LFSR


Pour assurer une meilleure sécurité, on doit respecter 3 caractéristiques :
– La période doit être la plus longue possible.
– Le flux de sortie doit être le plus aléatoire possible.
– La clé K servant d’initialisation doit être la plus longue possible (au moins 128 bits) et
rester secrète.
Une attaque très commune porte le nom d’attaque par corrélation. Le principe est de
trouver un LFSR dont la sortie est corrélée avec la sortie des LFSR utilisés.

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

On peut également le représenter algorithmiquement comme suit :

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

On peut représenter la permutation initiale de S par un algorithme :

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

A nouveau, on peut illustrer algorithmiquement la méthode (on parle de PRGA pour


Pseudo-Random Generation Algorithm) :

ENP 114
Modes de chiffrement

Jusqu’à présent, on ne s’est préoccupé que du chiffrement d’un bloc.


Cependant un message à chiffrer comporte généralement plusieurs blocs.
Un mode opératoire est un algorithme, reposant sur un algorithme de chiffrement par bloc
(DES, AES,...), permettant de chiffrer des données de taille arbitraire.
L’idée naïve, consistant à chiffrer chaque bloc indépendamment (mode Electronic
Codebook - ECB)
Plusieurs modes ont été proposés(5).

ENP 115
Modes de chiffrement

Mode Electronic Codebook (ECB)


C’est le mode le plus simple.
Le message, M, est découpé en blocs , (mi)i≥1, et chaque bloc est crypté séparément par
ci = E(mi)

ENP 116
Modes de chiffrement

Chiffrement

Chaque bloc est (dé)chiffré indépendamment des autres blocs.


Avantage : le (dé)chiffrement est parallélisable.
Inconvénient majeur : deux blocs en clair identiques seront chiffrés de manière identique.
Fortement déconseillé pour les applications cryptographiques.

ENP 117
Modes de chiffrement

Déchiffrement

Le déchiffrement, en ce qui concerne le mode opératoire, est identique au chiffrement


Rappel : A⊕A=0 ; A⊕0=A, A⊕B= B⊕A
Chiffrement : M⊕K=C , Déchiffrement: C⊕K=M⊕K⊕K=M⊕0=M

ENP 118
Modes de chiffrement

Mode Cipher Block Chaining (CBC)


Le message, M, est découpé en blocs , (mi)i≥1, et chaque bloc est crypté de la manière
suivante:
On commence par choisir un bloc initial c0 (VI ; vecteur d’Init).
Chaque bloc clair mi est d’abord modifié en faisant un XOR de ce bloc avec le bloc crypté
précédent, ci−1 puis on crypte le résultat obtenu par XOR avec la clef
c1 = Ek(m1 ⊕ c0)
c2 = Ek(m2 ⊕ c1)
...
...
ci = Ek(mi ⊕ ci−1)

ENP 119
Modes de chiffrement

Le vecteur d’initialisation (IV)


Le bloc initial c0 peut être choisi de l’une des manières suivantes:
1. On généré c0 aléatoirement et on le transmet en clair avec le message
2. On généré c0 aléatoirement et on le transmet de manière confidentielle
3. On utilise un c0 fixe qui fait partie des constantes du cryptosystème
4. On utilise un c0 fixe qui fait partie de la clé secrète du cryptosystème

ENP 120
Modes de chiffrement

Chiffrement

ENP 121
Modes de chiffrement

Déchiffrement

Le déchiffrement nécessite de connaitre la fonction inverse de la fonction de codage


Dk = Ek−1 pour décrypter: mi = ci−1 ⊕ Dk(ci)
mi = ci−1 ⊕ Dk(ci)=ci−1 ⊕ Dk(Ek(mi ⊕ ci−1))= ci−1 ⊕ mi ⊕ ci−1 = mi

ENP 122
Modes de chiffrement

Le mode CFB, Cipher FeedBack


Le principe est le même que celui du mode CBC. Le message, M, est découpé en blocs ,
(mi)i≥1, et chaque bloc est crypté de la manière suivante:
On commence par choisir un bloc initial m0, choisi suivant les mêmes principes que le
blocs c0 en mode CBC.
Chaque bloc clair mi est XORé avec le crypté du bloc de sortie précédent, ci−1, suivant le
schéma:
c0 = Ek(m0)
c1 = m1 ⊕ Ek(c0)
c2 = m2 ⊕ Ek(c1)
……
ci = mi ⊕ Ek(ci−1)
ENP 123
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

Vous aimerez peut-être aussi