Académique Documents
Professionnel Documents
Culture Documents
1
3. Principe de Kerckhoff
La sécurité du chiffre ne doit pas dépendre de ce qui ne peut pas être facilement changé.
En d’autres termes, aucun secret ne doit résider dans l’algorithme mais plutôt dans la clé. Sans
celle-ci, il doit être impossible de retrouver le texte clair à partir du texte chiffré. Par contre, si
on connaît K, le déchiffrement est immédiat.
Caractéristiques :
– Les clés sont identiques : KE = KD = K,
– La clé doit rester secrète,
4.2 Cryptosystème à clé publique
Caractéristiques :
– Une clé publique PK (symbolisée par la clé verticale),
– Une clé privée secrète SK (symbolisée par la clé horizontale),
– Propriété : La connaissance de PK ne permet pas de déduire SK,
– DSK(EPK(M)) = M,
2
I Confidentialité : lisible uniquement par les personnes autorisées,
I intégrité : être sûr qu’il n’a pas été modifié (intentionnellement ou accidentellement).
I authenticité : être sûr de son origine,
La cryptographie classique
1. chiffrement par substitution monoalphabétique
Chaque lettre est remplacée par une autre lettre ou symbole. Parmi les plus connus, on citera
le chiffre de César, le chiffre affine, ou encore les chiffres désordonnés. Tous ces chiffres sont
sensibles à l’analyse de fréquence d’apparition des lettres (nombre de fois qu’apparait une
même lettre dans un texte).
1.1 Chiffre de César (50 av. J-C)
Son principe est un décalage des lettres de l’alphabet. Dans les formules ci-dessous, p est
l’indice de la lettre de l’aphabet et k le décalage.
Pour le chiffrement, on a la formule
C = E(p) = (p + k) mod 26
Pour le déchiffrement, il viendra
p = D(C) = (C − k) mod 26
Donc p=(p+k-k) mod 26 = p mod 26
Si on connait l’algorithme utilisé (ici César), la cryptanalyse est très facile. En effet, dans le
cas du chiffre de César, seules 25 clés sont possibles.
Cas du chiffrement de César (k=3).
La transposition des caractères est la suivante:
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
Exemple
3
Nous allons voir que le chiffrement de César correspond à une opération mathématique très
simple. Pour cela, rappelons la notion de congruence et l’ensemble Z / 26Z.
Modulo
Soit n > 2 un entier fixé.
Définition 1.
On dit que a est congru à b modulo n, si n divise b - a. On note alors a ≡ b (mod n).
Pour nous n = 26. Ce qui fait que 28 ≡ 2 (mod 26), car 28 - 2 est bien divisible par 26.
De même 85 = 3 . 26 + 7, donc 85 ≡ 7 (mod 26).
On note Z/26Z l’ensemble de tous les éléments de Z modulo 26. Cet ensemble est représenté
par les 26 éléments {0, 1, 2, . . . , 25}. En effet, puisqu’on compte modulo 26 :
26 ≡ 0, 27 ≡ 1, 28 ≡ 2, . . . , 52 ≡ 0, 53 ≡ 1, . . .
et de même -1 ≡ 25, -2 ≡ 24,...
Exemple
(0 + 4) mod 26 = 4, ‘A’ + ‘E’ = ‘E’ (14 + 14) mod 26 = 2 ‘O’ + ‘O’ = ‘C’
(10 – 20) mod 26 = 16 ‘K’ – ‘U’ = ‘Q’ (3 · 7) mod 26 = 21 ‘D’ · ‘H’ = ‘V’
Exercice.
4
L'inverse de a modulo n existe si et seulement si a et n sont premiers entre eux, (c.-à-d.
si PGCD (a, n) = 1). Si cet inverse existe, l'opération de division par a modulo n équivaut
à la multiplication par son inverse.
D'après la définition ci-dessus, u est un inverse de a modulo n s'il existe un entier v tel
que 1-au=nv Ou encore : au+nv=1
D'après le théorème de Bachet-Bézout, ceci a lieu si et seulement si PGCD(a, n) =1, c'est-
à-dire si a et n sont premiers entre eux.
Supposons que l'on veuille chercher l'inverse modulaire u de 3 modulo 11.
u ≡ 31 (mod 11)
Cela revient à calculer u vérifiant
3.u ≡ 1(mod 11)
Dans l'ensemble de Z/11Z, une solution est 4 car
3.4 = 12 ≡ 1(mod 11)
et c'est la seule. Par conséquent, l'inverse de 3 modulo 11 est 4.
5
3. Chiffre affine
On dit qu’une fonction est affine lorsqu’elle est de la forme f(x) =ax+b.
L’idée est d’utiliser comme fonction de chiffrement une fonction affine du type
y = (ax + b) mod 26,
où a et b sont des constantes, et où x et y sont des nombres correspondant aux lettres de
l’alphabet (A=0,B=1,...). On peut remarquer que si a = 1, alors on retrouve le chiffre de César
où b est le décalage (le k du chiffre de César).
Propriété de neutralité : si b = 0, alors "a" est toujours chiffré "A" car il ne subit aucun
décalage.
4. Chiffrement polygraphique
Chiffre de Hill (1929)
Les lettres sont d’abord remplacées par leur rang dans l’alphabet. Les lettres Pk et Pk+1
deviennent Ck et Ck+1
6
Les composantes de cette matrice doivent être des entiers positifs. De plus la matrice doit être
inversible dans Z26. Cependant, sa taille n’est pas fixée à 2. Elle grandira selon le nombre de
lettres à chiffrer simultanément.
Chaque digramme clair (P1 et P2) sera chiffré (C1 et C2) selon :
Pour chiffrer le message "je". Après avoir remplacé les lettres par leur rang dans l’alphabet
(a=1, b=2, etc.), elle obtiendra
Pour déchiffrer, le principe est le même que pour le chiffrement : on prend les lettres deux par
deux, puis on les multiplie par une matrice
Cette matrice doit être l’inverse de matrice de chiffrement (modulo 26). Ordinairement, cet
inverse est
On prend donc cette matrice pour déchiffrer le message "FG". Après avoir remplacé les lettres
par leur rang dans l’alphabet (A=1, B=2, etc.), il obtiendra :
5. Substitutions polyalphabétiques
a- Chiffre de Vigenère (1568)
C’est une amélioration décisive du chiffre de César. Sa force réside dans l’utilisation non pas
d’un, mais de 26 alphabets décalés pour chiffrer un message. Ce chiffre utilise une clef qui
définit le décalage pour chaque lettre du message (A : décalage de 0, B : 1, C : 2, ..., Z : 25).
7
Exemple : chiffrer le texte "CHIFFRE DE VIGENERE" avec la clef "BACHELIER" (cette
clef est éventuellement répétée plusieurs fois pour être aussi longue que le texte clair)
3.4 Transpositions
Exemple :
On a choisi comme clef GRAIN pour chiffrer le message SALUT LES PETITS POTS.
On constate qu’il reste deux cases vides, que l’on peut remplir avec des nulles
8
Chiffrement par blocs
1. On désigne par chiffrement par blocs (block-cipher en anglais), tout système de chiffrement
(symétrique) dans lequel le message clair est découpé en blocs d'une taille fixée, et chacun de
ces blocs est chiffré.
2. La longueur n des blocs et la taille l des clés sont deux caractéristiques des systèmes de
chiffrement par blocs.
On distingue trois catégories de chiffrement par bloc :
Chiffrement par transposition (permutation), Chiffrement par substitution et Chiffrement par
produit (la combinaison des deux).
9
Réseau SPN - Exemple de chiffrement
10
Chiffrements de Feistel.
Un chiffrement de Feistel est un chiffrement itératif par blocs opérant sur des blocs de 2n bits.
La fonction itérée F est définie par :
Exemple
A partir de la table de correspondance suivante, on peut déterminer le résultat du chiffrement
d’un bloc après passage dans une structure de Feistel
Le système de chiffrement par blocs le plus utilisé jusqu’à l’an 2000 est le DES. Il fait partie
de la classe plus générale des chiffrements de Feistel .
Pour le DES, la taille des blocs est de 64 bits (donc 8 octets), et la taille des clés est de 56 bits
(7 octets). Il comporte 16 itérations. C’est un chiffrement de Feistel avec n = 32.
La fonction f est définie par :
11
une augmentation E de Ri−1 pour en faire un bloc de 48 octets, c’est-à-dire que E(Ri−1) est
composé de tous les bits de Ri−1, 16 d’entre eux apparaissant deux fois;
– on calcule E(Ri−1) Ki , et on le découpe en 8 sous-chaînes de 6 bits.
– chacune des sous-chaînes de 6 bits est transformée par une fonction nonlinéaire fixée en une
sous-chaîne de 4 bits.
– les sous-chaînes de 4 bits sont réordonnées suivant une permutation fixée.
12
13
Le chiffrement par bloc AES (Advanced Encryption Standard)
Le Block Cipher Rijndael (proposé par Rijmen et Daemen) a été accepté comme standard de
chiffrement en 1999.
Polynômes binaires
14
Arithmétique des polynômes binaires.
15
16
II. Chiffrement par Clef publique
Exemple :
17
Algorithme d'Euclide étendu pour les polynômes
Exemple :
Chiffrement RSA
Conçu en 1977 par Ron Rivest, Adi Shamir et Léonard Adleman (RSA).
Ce système est basé sur la difficulté de factoriser un nombre qui est produit de 2 nombres
premiers très grands.
18
Exemple :
19
Chapitre 3. La cryptanalyse
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.
Chiffrement par substitution : 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.
HGAHY RAEFT GAGRH DGAGM OEHIY RAAOT ZGAGJ GKFDG AZGSB INNTG
KGRHE NNIRG
On dénombre 12 fois la lettre G et 8 fois la lettre A. Supposons que le langage original du
texte est le français.
2. Sur base de l’analyse de fréquences, il faut ensuite dériver les équations correspondantes.
E, A, S, I, N étant les lettres les plus fréquentes en français, on en déduit les équations
suivantes (en émettant l’hypothèse que le bigramme ES est plus fréquent que EA) :
Cryptanalyse linéaire
C’est une attaque à texte clair connu contre les protocoles de cryptographie dont la confusion
est faible.
Texte clair connu. L’attaquant dispose de un ou plusieurs message(s) clair(s) avec le(s)
message(s) crypté(s) correspondant, tous cryptés avec la même clé. L’attaquant cherche à
retrouver (de l’information sur) la clé.
20
Une idée. Trouver des relations linéaires de dépendance de probabilités exceptionnelles entre
les bits d’entrée et de sortie.
RESULTAT
•La première équation est satisfaite 4 fois sur 8 (1)
•La seconde équation est satisfaite 2 fois sur 8 (2)
•Donc l’équation (1) est donc une meilleure approximation de notre substitution.
Considérons maintenant un algorithme de chiffrement très simple qui prend 3 bit en entrée et
donne 3 bit chiffrés en sortie.
Soit P la donnée en clair de 3 bits et soit le résultat final C chiffré de 3 bits.
21
22
23