Vous êtes sur la page 1sur 33

ISTDI

CRYPTOGRAPHIE

Objectifs
● Comprendre les mécanismes et protocoles cryptographie
● Protocoles d’échanges de clés symétrique et asymétrique
● Mettre en service un système de cryptage
32h

Sommaire:

Chap 1: Principes généraux de cryptographie


Chap 2 : Quelques protocoles de chiffrement
Chap 3 : Cryptographie et IPsec
TP : Décryptage de clé de session : Cas du WiFi

1
Chap 1: Principes Généraux de cryptographie

1.1 Définitions
La cryptographie est la science qui étudie les principes, méthodes et techniques
mathématiques pour réaliser la sécurité de l'information
Elle permet de stocker des informations sensibles ou de les transmettre à travers des
réseaux non sûrs (comme Internet) de telle sorte qu'elles ne peuvent être lues par personne à
l'exception du destinataire convenu.
 Chiffrement : transformation à l'aide d'une clé de chiffrement d'un message en clair
en un message incompréhensible si on ne dispose pas d'une clé de déchiffrement
 Chiffre : anciennement code secret, par extension l'algorithme utilisé pour le
chiffrement
 Cryptogramme : message chiffré ;
 Cryptosystème : système constitué d'un algorithme cryptographique ainsi que toutes
les clés possibles et tous les protocoles qui le font fonctionner
 Décrypter : retrouver le message clair correspondant à un message chiffré sans
posséder la clé de déchiffrement
 Cryptographie : science visant à créer des cryptogrammes, c'est-à-dire à chiffrer
 Cryptanalyse : science analysant les cryptogrammes en vue de les décrypter
 Cryptologie : science regroupant la cryptographie et la cryptanalyse.

La sécurité d'un système de chiffrement doit reposer sur le secret de la clé de


chiffrement et non sur celui de l'algorithme.
Le principe de Kerkhoff suppose en effet que l'ennemi (ou la personne qui veut
connaître le message chiffré) connaît l’algorithme utilisé

1.2 Systèmes cryptographiques


Un "système cryptographique" est composé de :
 Un ensemble fini P appelé "l'espace des textes clairs"
 Un ensemble fini C appelé "l'espace des textes chiffrés"
 Un ensemble fini K appelé "l'espace de clés"

Pour chaque clé k  K, nous cherchons une fonction de chiffrement:

ek : P → C (1)
2
et une fonction de déchiffrement:

dk : C → P (2)

tel que: dk o ek = IdP (3)

Autrement dit, ces deux fonctions doivent être injectives!


Pour arriver à ce résultat, deux types de techniques cryptographiques se distinguent
Il existe deux types de techniques cryptographiques, englobant toutes les méthodes de
cryptage modernes
 Cryptographie symétrique ou à clé secrète
 Cryptographie asymétrique ou à clé publique

1.3 Cryptographie symétrique ou à clé secrète


Un chiffrement symétrique désigne un système où la clé utilisée dans l'opération de
chiffrement est aussi celle utilisée dans l'opération de déchiffrement. Dans ce cas, lors d'un
échange sécurisé (supposé), les deux parties de la correspondance doivent partager un secret :
la clé utilisée ou "clé de session".

Fig. Principe de cryptographie symétrique

Un chiffrement symétrique est défini par 3 algorithmes :


 Un algorithme de génération des clés, K (l) = k : à partir des paramètres de sécurité, il
produit une clé aléatoire de l bits

 Un algorithme de chiffrement, εk (m)= c : chiffré par la clé k d’un message m

 Un algorithme de déchiffrement, Dk (c)= m : utilise la clé k pour retrouver m à partir


de c

3
Base théorique de cryptographie symétrique
 Soit un message M sous forme binaire à transmettre entre des personnes A (créateur et
expéditeur du message M) et B (lecteur et destinataire). Nous engendrons une grande
quantité de bits "réellement aléatoires" qui forment une clé secrète K de même taille
que le message à transmettre
 Cette clé sera transmise à B par un canal supposé sûr... Un laps de temps donnée après
la transmission de cette clé, A va encoder son message en C en effectuant l'opération:
C=K*M
où * est un opérateur qui doit satisfaire à une loi de groupe sur un ensemble fini
L'intérêt en informatique est d'utiliser la loi de groupe XOR (aussi nommée OU
EXCLUSIF)
 Finalement, l'expéditeur A transmet la version cryptée C de son message par une voie
pas nécessairement sécurisée. B retrouve le message original M en utilisant l'opération
inverse (*)-1 de * (l'opérateur XOR est son propre inverse) Ainsi B va effectuer
l'opération suivante:
M=C  K
 Sous réserve que la clé K ait bien été engendrée de façon totalement aléatoire, un
intercepteur n'obtient aucune information sur le message clair M s'il intercepte C.
En effet, dans ces conditions, on ne peut établir aucune corrélation entre M et C sans la
connaissance de K.
 Cependant, chaque étape du chiffrement est possible source d'erreur. En effet, la clé K
peut avoir été mal élaborée. La moindre déviation statistique sur K par rapport à du
"vrai" aléatoire fourni des informations sur les messages clair M à partir de sa version
cryptée. C'est la raison pour laquelle les bits de K ne doivent servir qu'une seule fois.
 Effectivement, supposons qu'une même clé ait servit à chiffrer les messages de langue
française M1 et M2 et qu'une personne malveillante arrive à intercepter les deux
messages correspondants cryptés C1 et C2.
A partir de C1 et C2, l'intercepteur peut facilement obtenir des informations sur M1
et M2 du fait des particularités des langues. En effet, puisque:

C1 = M1  K et C2 = M2  K
Alors l'intercepteur connaît un résultat simple qui fait intervenir M1 et M2 sans la
clé K.
C1  C2 = M1  M2
4
Car : K  K=0
Or, si M1 et M2 sont dans la même langue, on saura en général, grâce aux
redondances des langues (par exemple la lettre "e" apparait très souvent dans la
langue française), retrouver à partir de M1  M2 chacun des deux messages (le
travail est quand même laborieux).
 Le problème principal de cette technique est donc la création d'une clé aussi aléatoire
que possible. Pour palier à cela, les mathématiciens font passer la clé par une série de
fonctions imbriquées, dont le résultat, après un grand nombre d'itérations, devient
"pseudo aléatoire".
 Construire une itération pseudo aléatoire est une chose, construire une bijection
pseudo aléatoire en est cependant une autre. En effet, il faut pouvoir décrypter le
message par la suite, c'est pourquoi l'on a absolument besoin d'un système bijectif (qui
a tout élément d'arrivée - message crypté - fait correspondre un unique élément de
départ - message décrypté - et inversement).
Schéma de Feistel
 Dans les années 1950, un mathématicien (Feistel) a montré qu'une fonction pseudo
aléatoire se transforme, par une méthode simple, en bijection. Aujourd'hui, la
"méthode de Feistel" est la plus utilisée dans les chiffrements à clé secrète et est
aussi à la base du D.E.S. (Data Encryption System)
 Le message initial à chiffrer à une taille de 2n bits. On sépare le message M en deux
blocs, L et R de longueurs égales

f est appelée fonction de confusion, elle n’est pas une bijection.


On ne doit évidemment pas s'arrêter là puisque la partie droite du message, R0, n'a pas été
chiffrée, elle est simplement passée à gauche. On peut réitérer n fois le processus, on
obtient un schéma à n étapes.

5
Fig. Schéma de Feistel à n=16 étapes

Exemple:

 Nous allons chiffrer par la méthode de Feistel à deux étapes un message constitué de
quatre bits. Ce qui vient à construire une bijection de quatre bits vers quatre bits à
partir de deux fonctions f1, f2 de deux bits vers deux bits. Les fonctions f1, f2
possèdent en entrée à la fois le message à chiffrer et la clé secrète. Nous considérerons
que pour une certaine clé entrée, ces fonctions sont les suivantes:

Notons que ni f1, ni f2 ne sont des bijections : Ex : f1(00) = f1(11) = 00 ; f2(01) = f2(10) = 00
6
A titre d'exemple, chiffrons le message 1101. G désigne la moitié gauche du message à chiffrer,
D la moitié droite :

Le résultat est 0010.


Si nous calculons l'image des 14 autres messages possibles, nous vérifierions qu'il y ait une
correspondance univoque (unique) entre chaque message et son image par le schéma de Feistel:
nous avons construit une bijection à partir de deux fonctions qui n'en sont pas.
La plupart des algorithmes à chiffrement à clé secrète utilisés actuellement dans le monde
civil sont des schémas de Feistel. En particulier, l'algorithme D.E.S. (Data Encryption
System) qui est un schéma de Feistel à 16 étapes comme représenté plus haut et l'algorithme
Triple DES (TDES) qui est un schéma de Feistal à 48 étapes

Le DES

o Entrée : bloc de 64 bits


o Sortie : bloc de 64 bits
o Clé : 64 bits dont 56 sont utilisés (le dernier bit de chaque octet = bit de parité)
o Algorithme entièrement symétrique
o Nombre de tours : 16 tours
La fonction de confusion (f), qui agit sur les blocs de 32 bits, mélange les bits selon les
processus suivant (à droite sur la figure). D'abord, elle transforme le bloc de 32 bits en un bloc
de 48 bits par duplication de certains bits (expansion). Ensuite, elle ajoute à ce bloc, une sous-
clé de 48 bits (clé de tour) extraite de la clé secrète de 56 bits puis elle transforme chaque
ensemble de 6 bits en 4 bits par des transformations locales (transformation S). On aboutit à
un bloc de 32 bits que l'on mélange enfin suivant une permutation fixe.

7
Fig. Principe du DES

1.4 Cryptographie asymétrique ou à clé publique


Définition
Un chiffrement asymétrique désigne un système de chiffrement où la clé utilisée pour le
chiffrement diffère de celle utilisée pour le déchiffrement. Le seul échange qu'il y a entre les
membres du groupe, est la clé publique, qui permet à chacun des membres d'adapter son
chiffrement (ou cryptage) en fonction de la clé privée des autres membres.
Les PKCS (Public-Key Cryptography Standards), ou standards de cryptographie à clé
publique, sont un ensemble de spécifications conçues par les laboratoires RSA en Californie.
La société RSA Security est spécialisée dans les solutions de sécurité cryptographiques

8
Protocoles d’échange de clés
Toute utilisation de clé de chiffrement symétrique nécessite que les deux correspondants se
partagent cette clé, c'est-à dire la connaissent avant l'échange.
Ceci est un problème si la communication de cette clé s'effectue par l'intermédiaire d'un
medium non sécurisé, « en clair » comme l’internet.
Afin de pallier à cet inconvénient, on utilise un protocole d’échange de clés privées
basée sur un mécanisme de chiffrement asymétrique pour la seule phase d'échange de
la clé privée de session, et l'on utilise cette dernière pour tout le reste de l'échange

Il existe 2 types de protocoles d’échange de clés:


 Les protocoles qui supposent la connaissance de la clé publique d’une des 2 entités
(ex. RSA utilisé par SSL)
 Les protocoles qui ne supposent aucune connaissance préalable d’informations entre
les 2 entités (ex. Diffie-Hellman)

1.4.1 Protocole d’échange de clés: ex. DH (Diffie-Hellman)


 W. Diffie et M. Hellmann ont été les premiers à proposer publiquement une fonction à
sens unique pour résoudre le problème de la mise en accord sur un secret commun.
une fonction à sens unique donne un résultat facilement, mais l'opération inverse est
très difficile.
 Trouver de telles fonctions dans le monde mathématique semblait fort ardu aux
mathématiciens. Comment imaginer une fonction qui soit à sens unique pour tout le
monde, excepté pour son créateur qui peut l'inverser grâce à la connaissance d'une
information particulière.
 Ainsi, L'idée de base consiste à calculer des valeurs du type :
9
  a mod  p 
 Les mathématiciens appellent ce genre d'opérations une "exponentation modulaire".
Pour un tel calcul, nous élevons un nombre  à la puissance a, puis nous divisons le
résultat par un grand nombre premier p et nous conservons finalement le reste de cette
division (opération modulo p).
 L'opération inverse est un problème redoutable : même si nous connaissons les valeurs

numériques de  , de p et de  a mod  p  , il est extrêmement difficile en pratique de


retrouver le bon nombre a.
Exemple schématique
ALICE Réseau Publique (Internet) BERNARD
On choisit un nombre arbitraire commun : p=419 et un nombre aléatoire commun
inferieur à p :   7 . On suppose que ces 2 valeurs sont secrètes
Alice choisit un nombre Bernard choisit un nombre
aléatoire secret : a=178 aléatoire secret : b=344
k a   a mod  p   208 kb   b mod  p   49

k a  208 k a  208

kb  49 kb  49

K  kb  mod  p   107 K  k a  mod  p   107


a b

Echange de données chiffrées avec K

Fig. Exemple d’échange des clés par le protocole DH

o Alice et Bernard on calculé le même secret commun: K=107. On se sert de K pour


chiffrer les données échangées (dans la pratique, on utilise des nombres beaucoup plus
grands).
o L'espion n'est supposé pouvoir intervenir qu'après l'échange du choix commun de p et
α

Fig. protocole d’échange de clés DH

10
1.4.2 Protocole d’échange de clés: ex. RSA (Rivest, Shamir, Adleman)

Fig. protocole d’échange de clés RSA


Fabrication des clés par RSA

Rappel

Ф(n) : Fonction indicatrice d’Euler = nombre de nombre premier avec n.


 Si n premier : Ф (n) = n-1
 Ф (pq) = Ф (p) Ф (q) si p et q premier
 Le problème difficile sur lequel repose RSA : la factorisation
Il est très difficile de trouver p et q / n = p.q en ne connaissant que n

Principe
Alice fabrique sa clé
 n=pq avec p et q deux grands nombres premiers
 e premier avec Ф (n) = (p-1)(q-1) et d tel que : ed = 1 mod (p-1)(q-1)
 Rend publique (n,e)
Bob veut envoyer un message m à Alice :

 Bob calcule : c = me mod n


 Bob transmet c à Alice
 Alice déchiffre c en calculant : cd = med mod n = m1 mod n
Questions :

1) L’utilisateur A choisit les facteurs premiers p = 11 et q = 23. Trouvez n, e et d


2) Utilisant les valeurs de n et e trouvées précédemment, chiffrez le message m = 165
noté c.

11
3) Utilisant les valeurs de n, d et e trouvées précédemment, déterminez à partir du
message c précédent le message m.
Solution
1) L’utilisateur A choisit les facteurs premiers p = 11 et q = 23. Trouvez n, e et d
Puisque les deux nombres 11 et 23 sont premiers entre eux, alors n est calculé par le
produit n = p q = 11*23 =253
Il faut choisir un entier e le plus petit tel que :
1 < e < Φ(253) = (p-1)(q-1) = (11-1)(23-1) = 220 et PGCD(e, (p-1)(q-1)) =1
d’où, on peut choisir e =3, car PGCD (3, 220) = 1.
e=3
L’entier d est calculé avec les conditions suivantes :
1 < d < (p-1)(q-1) et de =1 mod (p-1)(q-1), on en déduit
d = 147
Donc la clé publique de A est Kp = (e, n) et sa clé privée est Kpr = (d, n)
2) Utilisant les valeurs de n et e trouvées précédemment, chiffrez le message m = 165
noté c.
c = me mod n = 1653 mod 253 =110
3) Utilisant les valeurs de n, d et e trouvées précédemment, déterminez à partir du
message c précédent le message m.
m = cd mod n = 110147 mod 253 =165

Calcul de ak mod n

L'algorithme suivant est utilisé pour le calcul de x=me mod n et m=xd mod n, qui servent à
crypter et décrypter le message. En effet, lorsque les valeurs de e et de d sont élevées, le
calcul ne peut se faire facilement en calculant la puissance puis le modulo.

Cet algorithme appelé repeated square and multiply algorithm permet simplement et
rapidement d'effectuer un tel calcul en utilisant l'écriture binaire de l'exposant. Sa complexité
est proportionnelle au logarithme de l'exposant (nombre de chiffre).

Principe de l'algorithme pour le calcul de ak mod n

On exprime k en numération binaire. Par exemple, si k s'écrit 10011010 (k=154), on a :


k=2+8+16+128 et alors ak=a2.a8.a16.a128
La suite a1, a2, a4, a8, a16, a32, a64, a128 est obtenue par élévation au carré successives.

12
Pour le calcul de ak, il suffit de prendre chacun des chiffres binaires de l'exposant k en partant
de droite et d'effectuer les opérations (au départ, p=1) :
 si le chiffre binaire vaut 1, donner à p la nouvelle valeur p*a modulo n
 donner à la nouvelle valeur a2 modulo n
Le résultat est alors donné par la dernière valeur prise par p.

Exemples de calcul

Comment, par exemple calculer le 4137 mod 527 (= 113) qui intervient dans l'exemple de
cryptage avec cet algorithme ?
a = 41
k = 37 s'écrit, en binaire, 100101
n=527

p=1 au départ.

on lit les bits de droite à gauche :

le premier chiffre binaire vaut 1 donc :


p devient égal à p*a mod n = 1*41 mod 527 = 41
a devient égal à a2 mod 527 = 412 mod 527 = 1681 mod 527 = 100

le second chiffre binaire vaut 0 donc :


p inchangé
a devient égal à a2 mod 527 = 1002 mod 527 = 10000 mod 527 = 514

le 3ème chiffre binaire vaut 1 donc :


p devient égal à p*a mod n = 41*514 mod 527 = 521
a devient égal à a2 mod 527 = 5142 mod 527 = 169

le 4ème chiffre binaire vaut 0 donc :


p reste égal à 521
a devient égal à a2 mod 527 = 1692 mod 527 = 103

le 5ème chiffre binaire vaut 0 donc :


p = 521
a devient égal à a2 mod 527 = 1032 mod 527 = 69

le 6ème chiffre binaire vaut 1 donc :


p devient égal à p*a mod n = 521*69 mod 527 = 113

p=113 est le résultat du calcul cherché.

13
1.5 Algorithmes de chiffrement
Les algorithmes de chiffrement peuvent être classés selon 2 critères :
o Symétrique / Asymétrique (type de clés)
o En continu / par bloc (format des données traitées)

a) Les algorithmes de chiffrement en continu (stream cipher)


- Agissent sur un bit à la fois
- Rapides et robustes aux erreurs de communications
Le plus courant : RC4–Rivest Cipher 4 (longueur de clé variable, 128 bits)
b) Les algorithmes de chiffrement par blocs (block cipher)
Opèrent sur le texte en claire par blocs (généralement de 64 bits ou 8 octets)
o 4 modes opératoires: (manière de traiter les blocs de texte clairs et chiffrés au sein
d'un algorithme de chiffrement par bloc)
- ECB (Electronic Codebook Mode), Dictionnaire de codes

- CBC (Cipher-Block Chaining Mode), Enchaînement des blocs

14
- CFB (Cipher Feedback), Chiffrement à rétroaction

- OFB (Output Feedback), Chiffrement à rétroaction de sortie

o Plus lents et requièrent plus de ressource


o Plus robustes aux attaques
 DES (clés de 56 bits codée sur 64)
 3DES (3 clés distinctes de 112 ou 168 bits)
 IDEA (128 bits), International Data Encryption Algorithm
 Blowfish (longueur de clé variable, 128 bits jusqu’à 448 bits)
 AES (longueur de clé variable: 128, 192, 256 bits)

Cas du mode opératoire CBC (Cipher Block Chaining)

Un vecteur d'initialisation (en anglais initialization vector ou IV) est un bloc de bits combiné avec le
premier bloc de données lors d'une opération de chiffrement.
o Il est utilisé dans le cadre des modes d'opération d'un algorithme de chiffrement
symétrique par blocs ou pour un chiffrement par flux comme RC4.
o Dans certains cryptosystèmes, le vecteur est généré de manière aléatoire puis transmis
en clair avec le reste du message.
o Il ne doit jamais être réemployé avec la même clé.

15
c) Les algorithmes de chiffrement symétrique
Les algorithmes de chiffrement symétrique se fondent sur une clé unique pour chiffrer
et déchiffrer un message.
Basée sur 2 approches :
- Substitution
- Permutation
Avantages :
- Les algorithmes symétriques sont beaucoup plus rapides que les
algorithmes asymétriques
- Longueur réduite des clés (128 – 256 bits)
Inconvénients :
- la distribution de la clé doit être confidentielle (Problème dans Internet !).
- Si un grand nombre de personnes désirent communiquer ensemble, le
nombre de clés augmente de façon importante (une pour chaque couple de
communicants).
- pour n partenaires, il faut (n*(n-1))/2 clés
- Service de non répudiation non assuré
Exemples :
DES (Data Encryption Standard), 3DES, AES (Advanced Encryption Standard),
RC4 (Rivest Cipher 4), RC5, Kerberos, Blowfish, IDEA (International Data
Encryption Algorithm)

Fig. chiffrement symétrique


d) Les algorithmes de chiffrement asymétrique
Un algorithme de chiffrement asymétrique est une fonction cryptographique de codage
à clé secrète dont la clé de chiffrement est différente de la clé de déchiffrement (cette
dernière pouvant être difficilement calculée à partir de la clé de chiffrement).
o On a une paire de clé (privé et publique) appelé aussi bi-clé
o La clé publique servant au chiffrement des messages peut être distribuée.
o Seul le détenteur de la clé de déchiffrement (clé privée) peut alors
déchiffrer un message chiffré avec la clé publique correspondante, ce qui
assure la confidentialité des échanges
o Cependant les algorithmes asymétriques sont plus lents que les
algorithmes symétriques et sont donc utilisés en général pour chiffrer des
données de taille réduite telles que des signatures numériques ou d'autres
clés (les clés de session).

16
o On a donc Authentification ; Intégrité ; Partage d’un secret à travers un
canal non sécurisé (Internet)
Exemples d’algorithmes de chiffrement asymétrique:

o RSA (Riverst-Shamir-Adleman)
o DSA (Digital Signature Algorithm)
o ElGamal,

Fig. chiffrement asymétrique

1. 6 Fonctions de Hachage
o Une fonction de hachage est une fonction qui, à partir d'une donnée fournie en
entrée, calcule une empreinte servant à identifier rapidement (bien
qu'incomplètement) la donnée initiale.
o Les fonctions de hachage sont utilisées en informatique et en cryptographie.

Fig. Exemple de fonction de hachage appliquée sur 3 entrées distinctes.

o Une fonction de hachage doit éviter autant que possible les collisions (états
dans lesquels des données différentes ont une empreinte identique) :
o dans le cas des tables de hachage, ou de traitements automatisés, les collisions
empêchent la différenciation des données ou, au mieux, ralentissent le
processus.

17
o En cryptographie les contraintes sont plus exigeantes et la taille des empreintes
est généralement bien plus longue que celle des données initiales ; un mot de
passe dépasse rarement une longueur de 8 caractères, mais son empreinte peut
atteindre une longueur de plus de 100 caractères
o Selon l'emploi de la fonction de hachage, il est souhaitable qu'un infime
changement de la donnée en entrée (inversion d'un seul bit, par exemple)
entraine une perturbation importante de l'empreinte correspondante
o Un mot de passe ne doit pas être stocké en clair sur une machine pour des
raisons de sécurité. Seul le résultat du hachage du mot de passe est donc
stocké. Pour identifier un utilisateur, l'ordinateur compare l'empreinte du mot
de passe d'origine (stocké) avec l'empreinte du mot de passe demandé
o Les algorithmes SHA-1 (Secure Hash Algorithm 1 : 160 bits) et MD5
(Message-Digest algorithm 5, 128 bits, plus ancien et moins sûr) sont des
fonctions de hachage utilisées fréquemment. Le SHA-2 (SHA-256, SHA-384
ou SHA-512 bits au choix) est d'ores et déjà prêt s'il faut abandonner aussi le
SHA-1.

1. 7 L’authentification
1.7.1 Définition
 L'authentification pour un système informatique est un processus permettant au
système de s'assurer de la légitimité de la demande d'accès faite par une entité (être
humain ou un autre système...) afin d'autoriser l'accès de cette entité à des ressources
du système (systèmes, réseaux, applications…)
 Exemples : Utiliser un mot de passe afin d’accéder à votre boîte aux lettres
électronique ; Saisir votre nom, votre adresse, ainsi que vos coordonnées bancaires
lorsque vous effectuez un achat en ligne

1.7.2 Authentification Kerberos


o Kerberos est un protocole d'authentification réseau qui repose sur un
mécanisme de clés secrètes (chiffrement symétrique) et l'utilisation de tickets,
et non de mots de passe en clair
o Créé au Massachusetts Institute of Technology, il porte le nom grec de
Cerbère, gardien des Enfers (Κέρϐερος).

18
Principe
Dans un réseau simple utilisant Kerberos, on distingue plusieurs entités :
- le client (C), a sa propre clé secrète Kc
- le serveur (S), dispose aussi d'une clé secrète Ks
- le service d'émission de tickets (TGS pour Ticket-Granting Service), a une clé
secrète KTGS et connaît la clé secrète Ks du serveur
- le centre de distribution de clés (KDC pour Key Distribution Center), connaît
les clés secrètes Kc et KTGS
Le client C veut accéder à un service proposé par le serveur S.

1- La première étape pour le client consiste à s'identifier auprès du centre de


distribution de clés (KDC).

 Le client a une clé secrète Kc, celle-ci est également connue par le serveur
de distribution. Le client envoie son nom au serveur de distribution et lui
indique le TGS qui l'intéresse.
 Après vérification sur l'identité du client (cette partie dépend des
implémentations, certains serveurs utilisent des mots de passe à usage
unique), le serveur de distribution lui envoie alors un ticket TTGS. Ce ticket
autorise le client à faire des requêtes auprès du TGS.

19
 Ce ticket TTGS est chiffré par le serveur de distribution avec la clé du TGS
(KTGS) Il contient notamment des informations sur le client mais également
la clé utilisée pour établir la communication entre le client et le TGS. Cette
clé de session, nous la noterons KC-TGS. Le client reçoit également cette clé
de session KC-TGS, elle a toutefois été chiffrée avec la clé secrète Kc du
client.
 À ce stade, le client possède un ticket TTGS (qu'il ne peut pas déchiffrer) et
une clé KC-TGS

2- La deuxième étape est l'envoi par le client d'une demande de ticket auprès du TGS.
 Cette requête contient un identifiant (des informations sur le client ainsi que la
date d'émission) chiffré avec la clé de session KC-TGS (qui est trouvée par le
client en déchiffrant les informations reçues depuis le serveur de distribution
avec sa clé secrète). Le client envoie aussi le ticket qui lui avait été transmis
par le serveur de distribution.

 Le TGS reçoit alors son ticket et il peut le déchiffrer avec sa clé secrète .
Il récupère le contenu du ticket (la clé de session) et peut ainsi déchiffrer
l'identifiant que lui a envoyé le client et vérifier l'authenticité des requêtes.
 Le TGS peut alors émettre un ticket d'accès au serveur. Ce ticket est chiffré
grâce à la clé secrète du serveur Ks. Le TGS envoie aussi la clé de session KC-S
chiffrée à l'aide de la clé KC-TGS au client pour les communications entre le
serveur final et le client.

3- La troisième étape est le dialogue entre le client et le serveur.


 Le client reçoit le ticket pour accéder au serveur ainsi que l'information chiffrée
contenant la clé de session KC-S entre lui et le serveur.
 Il déchiffre cette dernière grâce à la clé KC-TGS. Il génère un nouvel identifiant
qu'il chiffre avec KC-S et qu'il envoie au serveur accompagné du ticket.
 Le serveur vérifie que le ticket est valide (il le déchiffre avec sa clé secrète Ks)
et autorise l'accès au service si tout est correct.

20
Chap 2: Quelques protocoles de chiffrement

2.1 Chiffrement affine


Le chiffre affine est une méthode de cryptographie basée sur un chiffrement par substitution.
Il s'agit d'un code simple à appréhender mais aussi un des plus faciles à casser.
Principe: Chiffrement
On commence par remplacer chaque lettre par son rang dans l'alphabet en commençant au
rang 0 (certaines variantes commencent au rang 1) :

Deux entiers a et b sont choisis comme clef. Chaque lettre claire est d'abord remplacée par
son équivalent numérique x puis chiffrée par le calcul du reste de la division euclidienne par

26 de l'expression affine (soit ).


Ainsi pour chiffrer le mot CODE grâce au chiffre affine de clef (17,3), il faut d'abord le
transcrire en série de nombres
C O D E → 2 ; 14 ; 3 ; 4
appliquer ensuite la fonction affine
2 ; 14 ; 3 ; 4 → 37 ; 241 ; 54 ; 71
prendre les restes dans la division par 26
37 ; 241 ; 54 ; 71 → 11 ; 7 ; 2 ; 19
puis retranscrire en lettres
11 ; 7 ; 2 ; 19 → L H C T
Note : Si le coefficient a vaut 1, alors le codage affine correspond au chiffre de César

Déchiffrement
Pour déchiffrer le message, il faut être capable de trouver l'antécédent de y par l'application
qui, à un entier x compris entre 0 et 25, associe le reste de ax + b dans la division par 26. Il est
facile d'ôter b mais il n'est pas toujours réalisable de simplifier par a. La simplification ne peut
s'effectuer que s'il existe un entier a' tel que aa' a pour reste 1 dans la division par 26. C'est-à-
dire s'il existe un entier k tel que ou encore

21
Le théorème de Bachet-Bézout affirme que l'on ne peut trouver k et a' que lorsque a est
premier avec 26. La clef de code doit donc être un couple d'entiers (a, b) dans lequel a est
premier avec 26.
C'est le cas, dans l'exemple choisi, l'entier a' est 23. Pour déchiffrer le message, il faut donc
ôter b= 3 à chaque nombre, les multiplier par a’=23 puis en chercher les restes dans la
division par 26
L H C T → 11 ; 7 ; 2 ; 19
11 ; 7 ; 2 ; 19 → 8 ; 4 ; -1 ; 16
8 ; 4 ; -1 ; 16 → 184 ; 92 ; -23 ; 368
184 ; 92 ; -23 ; 368 - > 2 ; 14 ; 3 ; 4
2 ; 14 ; 3 ; 4 - > C O D E

Cryptanalyse

Il n'existe que 12 entiers compris entre 0 et 26 et premiers avec 26 (1, 3, 5, 7, 9, 11, 15, 17,
19, 21, 23 et 25). Il n'existe donc que clés de chiffrement possible. Si l'on
sait qu'un code affine a été utilisé, on peut casser le code par force brute en essayant les 312
clés.
À la lumière du principe de Kerckhoffs, ce manque de variété rend ce système très peu
sécurisé.

2.2 Chiffrement par décalage


En cryptographie, le chiffrement par décalage, aussi connu comme le chiffre de César, est
une méthode de chiffrement très simple utilisée par Jules César dans ses correspondances
secrètes

Fig. chiffre de César

 Le chiffre de César fonctionne par décalage des lettres de l'alphabet. Par exemple dans
l'image ci-dessus, il y a une distance de 3 caractères, donc B devient E dans le texte
codé.
 Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original par une
lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet. Pour les

22
dernières lettres (dans le cas d'un décalage à droite), on reprend au début. Par exemple
avec un décalage de 3 vers la droite, A est remplacé par D, B devient E, et ainsi
jusqu'à W qui devient Z, puis X devient A etc.
 Il s'agit d'une permutation circulaire de l'alphabet. La longueur du décalage, 3 dans
l'exemple évoqué, constitue la clé du chiffrement qu'il suffit de transmettre au
destinataire — s'il sait déjà qu'il s'agit d'un chiffrement de César — pour que celui-ci
puisse déchiffrer le message.

2.3 Chiffrement par transposition ou par permutation


Un chiffrement par transposition ou chiffrement par permutation est un chiffre qui
consiste à changer l'ordre des lettres, donc à construire des anagrammes. Cette méthode est
connue depuis l'Antiquité, Le chiffrement par transposition demande de découper le texte
clair en blocs de taille identique; la même permutation est alors utilisée sur chacun des blocs
Le nombre de permutations possibles d'une longueur donnée, qui est la factorielle de cette
longueur, augmente donc rapidement avec celle-ci. Par exemple un mot de trois lettres ne peut
être permuté que dans 6 (=3!) positions différentes. Ainsi "col" ne peut se transformer qu'en
"col", "clo", "ocl", "olc", "lco" ou "loc". Lorsque le nombre de lettres croît, le nombre
d'arrangements augmente rapidement et il devient plus difficile de retrouver le texte original
sans connaître la permutation, et sans aucune connaissance sur le texte clair

2.4 Chiffrement de Vernam ou masque jetable

Le masque jetable, également appelé chiffre de Vernam, est un algorithme de cryptographie en


décalage circulaire inventé par Gilbert Vernam en 1917 et perfectionné par Joseph Mauborgne, qui
rajouta la notion de clé aléatoire. Cependant, . Bien que simple, facile et rapide, tant pour le codage
que pour le décodage, ce chiffrement est le seul qui soit théoriquement impossible à casser, même s'il
présente d'importantes difficultés de mise en œuvre pratique.
Principe
Le chiffrement par la méthode du masque jetable consiste à combiner le message en clair avec
une clé présentant les caractéristiques très particulières suivantes :
 La clé doit être une suite de caractères au moins aussi longue que le message à chiffrer.
 Les caractères composant la clé doivent être choisis de façon totalement aléatoire.
 Chaque clé, ou « masque », ne doit être utilisée qu'une seule fois (d'où le nom de masque
jetable).
L'argument théorique est le suivant, dans son principe : si on ne connaît que le
texte chiffré, et que toutes les clés sont équiprobables alors tous les textes clairs
sont possibles et avec la même probabilité puisqu'il y a bijection, une fois le chiffré

23
fixé, entre clés et textes clairs. Même une attaque par force brute aidée par la
connaissance des caractéristiques statistiques du langage utilisé ne donnera aucune
information.
Ce type d'impossibilité, appelé sécurité sémantique, ne repose pas sur la difficulté
du calcul, comme c'est le cas avec les autres systèmes de chiffrement en usage.
Autrement dit, le système du masque jetable est inconditionnellement sûr.

Supposons que la clé aléatoire retenue, ou « masque », soit : WMCKL


Cette clé est choisie à l'avance entre les deux personnes souhaitant communiquer. Elle n'est
connue que d'eux.
On veut chiffrer le message « HELLO ». Pour cela, on attribue un nombre à chaque lettre,
par exemple le rang dans l'alphabet, de 0 à 25. Ensuite on additionne la valeur de chaque lettre
avec la valeur correspondante dans le masque ; enfin si le résultat est supérieur à 25 on
soustrait 26 (calcul dit « modulo 26 ») :
7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message
+ 22 (W) 12 (M) 2 (C) 10 (K) 11 (L) masque
= 29 16 13 21 25 masque + message
= 3 (D) 16 (Q) 13 (N) 21 (V) 25 (Z) masque + message modulo 26
Le texte reçu par le destinataire est « DQNVZ ».
Le déchiffrement s'effectue de manière similaire, sauf que l'on soustrait le masque au texte
chiffré au lieu de l'additionner. Ici encore on ajoute éventuellement 26 au résultat pour obtenir
des nombres compris entre 0 et 25 :
3 (D) 16 (Q) 13 (N) 21 (V) 25 (Z) message chiffré
- 22 (W) 12 (M) 2 (C) 10 (K) 11 (L) masque
= -19 4 11 11 14 message chiffré - masque
= 7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message chiffré - masque modulo
26

On retrouve bien le message initial « HELLO ».

2.5 Chiffrement de Hill


En cryptographie symétrique, le chiffre de Hill est un modèle simple d'extension du
chiffrement affine à un bloc. Ce système étudié par Lester S. Hill, utilise les propriétés de
l'arithmétique modulaire et des matrices.
Il s'agit de chiffrer le message en substituant les lettres du message, non plus lettre à lettre,
mais par groupe de lettres. Il permet ainsi de rendre plus difficile le cassage du code par
observation des fréquences.
Lester S. Hill a aussi conçu une machine capable de réaliser mécaniquement un tel codage

24
Principe :
Chaque caractère est d'abord codé par un nombre compris entre 0 et n -1 (son rang dans
l'alphabet diminué de 1). Les caractères sont alors regroupés par blocs de p caractères formant
un certain nombre de vecteurs

. Les nombres étant compris entre 0 et n - 1, on peut les

considérer comme des éléments de et X est alors un élément de .

On construit alors une matrice p × p d'éléments de : A. Le bloc X est alors chiffré par
le bloc Y = AX, le produit s'effectuant modulo n.
Pour déchiffrer le message, il s'agit d'inverser la matrice A. Cela peut se faire si le déterminant
de cette matrice est premier avec n.

En effet, si Det(A) est premier avec n, il existe un élément k de tel que

Ceci est une conséquence directe du théorème de Bachet-


Bézout

Le produit de A et de sa comatrice transposée tCom(A) donne . Si l'on appelle B la

matrice ktcom(A). On aura . Soit encore


.

Exemple
On imagine dans cette section que chaque lettre est codée par son rang dans l'alphabet
diminué de 1 et que le chiffrement s'effectue par bloc de 2 lettres. Ici n= 26 et p = 2.
Et l'on cherche à chiffrer le message suivant : TEXTEACRYPTER en utilisant une matrice A
dont le déterminant est premier avec 26.
Pour construire cette matrice, il suffit de choisir trois entiers (a, b, c ) au hasard mais tel que a
soit premier avec 26, le dernier terme d doit être choisi tel que ad - bc soit premier avec 26.
Pour la suite on prendra

dont le déterminant est 21. Comme 21 est premier avec 26, il possède un inverse dans

qui est 5 car


Puis on code le message
TEXTEACRYPTER→ 19 ; 4 ; 23 ; 19 ; 4 ; 0 ; 2 ; 17 ; 24 ; 15 ; 19 ; 4 ; 17 ; 0
On regroupe les lettres par paires créant ainsi 7 vecteurs de dimension deux, la dernière paire
est complétée arbitrairement

On multiplie ensuite ces vecteurs par la matrice A en travaillant sur des congruences modulo
26
25
etc.
On obtient alors 7 vecteurs soit 14 lettres
(25 ; 0) (8;19) ; (12 ; 24) ;(13 ; 15) ; (17 ; 9) ; (25 ; 0) ; (25 ; 24)
ZAITMYNPRJZAZ

26
Chap 3: Cryptographie IPsec

3.1 Les faiblesses de l’IP


 Originellement IP est le principal protocole d'interconnexion des machines
informatiques.
 Les spécifications d'IP étaient axées essentiellement sur la robustesse (routage
dynamique, par exemple) et non sur la sécurité (ni la fiabilité).
 Ainsi actuellement le protocole IP est sujet à de nombreux problèmes de sécurité dont
nous décrirons quelques exemples.
 IP étant utilisé aussi bien pour les communications par l'Internet qu'au sein des réseaux
d'entreprises, ces problèmes peuvent avoir de larges répercussions.
3.1.1 L'écoute des paquets
 Sur IP, les données transportées sont contenues en clair dans les paquets, il est donc
possible si on peut accéder aux paquets IP qu'échangent deux machines, de
connaître toutes les informations échangées entre ces deux machines.
 Il existe des outils pour accéder aux paquets en cours de transmission ("sniffer")
comme, par exemple :
Ethereal /Wireshark qui permet de visualiser les paquets et leur contenu. Il est
capable de réassembler le message TCP d'origine à partir des paquets IP.
- Dsniff qui peut récupérer des mots de passe sur le réseau, est capable de clore
n'importe quelle connexion TCP. Dsniff implémente aussi une attaque dit "de
l'homme au milieu" (man-in-the-middle) sur SSH qui permet notamment de
modifier les paquets lors du transit sans que les deux machines communicantes
puissent le savoir.
 Lorsque deux ordinateurs de deux réseaux différents communiquent les paquets
peuvent par exemple transiter successivement sur le réseau de l'entreprise puis sur
celui du fournisseur d'accès Internet (FAI) puis sur la dorsale de l'Internet
(backbone) puis sur le FAI de l'autre réseau puis sur le réseaux de la machine
destinatrice.
Chaque routeur, ou chaque brin intermédiaire, sont autant de points où il est
possible, pour quelqu'un malintentionné, d'écouter les communications.
3.1.2 L'usurpation d'adresse
 Un autre problème d'IP est le contrôle des adresses sources. Les routeurs ne vérifient
pas l'adresse source des paquets qui transitent.

27
 Une machine pirate peut donc émettre des paquets IP ayant comme source l'adresse
d'une autre machine, le paquet arrivera bien à destination et le destinataire ne pourra
pas identifier la véritable source.
 Dans le cadre d'UDP ou d'ICMP cela peut poser des problèmes importants car des
notifications peuvent être faites (ICMP Redirect par exemple).
 Beaucoup des causes de déni de service (DoS) sont dues à ce problème d'usurpation
d'adresse, une ou des personnes malintentionnées bombardent une cible avec des
paquets dont l'adresse source est fausse. La machine cible ne peut pas déceler qui
attaque et donc remédier à l'attaque.

3.2 Les attentes


Aux vues de ces faiblesses, on peut définir de nouveaux besoins auxquels doit
répondre IP :
a) Confidentialité des données et protection partielle contre l'analyse du trafic
La capture des paquets ne doit pas permettre de savoir quelles sont les
informations échangées. Seules les machines réceptrices et émettrices doivent
pouvoir accéder à l'information.
b) Authentification des données et contrôle d'accès continu
Le récepteur doit être capable de vérifier si les données reçues proviennent bien
de l'émetteur supposé.
c) Intégrité
Le récepteur doit être capable de vérifier si les données n'ont pas été modifiées
lors de la transmission.
d) Protection contre le rejeu
Une personne qui intercepte un message d'une communication sécurisée entre
deux machines ne pourra pas retransmettre ce message sans que cela soit détecté.

3.3 Le protocole IPsec


 Pour implémenter les fonctionnalités de confidentialité, d'authentification et
d'intégrité, le protocole IPsec ("IP security protocol") a été spécifié.
 L'IETF (Internet Engineering Task Force) travaille depuis 1992 à la standardisation
d'IPsec et des RFC ont été produites en ce sens depuis 1995.
 IPSec est décrit dans les RFC 2401, 2402, 2406 et 2408
 Objectifs: sécuriser les trames IP
 Il a été décidé que IPsec serait obligatoire dans IPv6 et facultatif dans IPv4. Les
mécanismes sont les mêmes pour les deux versions d'IP.

28
 Principe :
 ajout de champs d’authentification dans l’en-tête IP
 chiffrement des données
 Avantage : sécurisation niveau réseau
 Inconvénients : coût, interfaces avec les autres protocoles à standardiser
 IPsec va s'appuyer sur les techniques de cryptoraghie pour assurer ces nouvelles
fonctionnalités.
 Authentification par signature électronique à clé publique (RSA).
 Contrôle de l’intégrité par fonction de hachage (MD5, SHA).
 Confidentialité par l’intermédiaire d’algorithmes symétriques, tels que
DES, 3DES ou IDEA.
 IPsec regroupe trois mécanismes indépendants (au niveau réseau):
a) AH (Authentication Header) qui sert à valider l'intégrité des messages et à
prouver l'identité de l'expéditeur, ainsi que d'eviter les rejeux.
b) ESP (Encapsulation Security Payload) qui sert à assurer la confidentialité
(chiffrement) des messages.
c) IPcomp (IP compression) qui compresse les données qui transitent.

3.4 Modes transports et tunnels


 Il existe deux modes dans IPsec, le mode Transport et le mode Tunnel
 Ces deux modes diffèrent par la méthode de construction des paquets IP des messages.
 Dans le mode Transport, seules les données contenues dans la couche Transport sont
protégées par IPsec, l'en-tête IP reste inchangé.
 Dans le mode Tunnel, tout le paquet IP est protégé. Pour cela, il est considéré comme
un simple message, et un nouvel en-tête IP est créé.
Le mode Tunnel possède comme grand intérêt de pouvoir créer des tunnels sécurisés.
Deux machines ou passerelles de deux réseaux voulant sécuriser leurs
communications qui passent par une zone non protégée, vont créer un tunnel IPsec
entre ces deux passerelles. Toute communication d'une machine d'un réseau vers
l'autre sera encapsulée dans un nouvel en-tête IP. Une personne écoutant la
communication ne verrait que des paquets allant d'une passerelle à l'autre sans pouvoir
comprendre le contenu de ces paquets. Ce mode correspond à un réseau privé virtuel
ou VPN (Virtual Private Network).

29
Fig. Fonctionnalité des modes tunnel et transport.

Fig. Portée de l’authentification AH

Fig. Portée de l’authentification et du chiffrement ESP

i) AH (Authentication Header) : L’en-tête d’authentification assure :


 l’intégrité des données, l’authentification des paquets IP.
 L’authentification est basée sur l’utilisation d’un code d’authentification
de message (MAC, Message Authentication Code).
 AH permet entre autre de détecter le rejeu.
 AH doit supporter HMAC-MD5-96 et HMAC-SHA-1-96.

30
Authentification de messages
Plusieurs algorithmes d’authentification de messages existent :
 Authentification à l’aide d’une clé secrète (MAC).
- Authentification du message basée sur une clé secrète partagée par l’émetteur
et le récepteur.
- Mécanisme coûteux pour des messages de petite taille.
 Fonctions de hachage : Construire un résumé du message et l’envoyer.
 Fonctions de hachage sécurisées (SHA-1, MD5) : Fonctions vérifiant des propriétés de
robustesse (telles que l’impossibilité de deviner le contenu d’un message à partir de
son résumé).
 Solution retenue est l’authentification à l’aide de HMAC :
- Combiner MAC et des fonctions de hachage sécurisées (SHA-1).
- Avantages : Rapidité du mécanisme d’authentification, plusieurs algorithmes
de hachages cryptographiques sont disponibles.

ii) ESP (Encapsulation Security Payload) : ESP fournit :


 des services de confidentialités.
 un mécanisme anti-rejeu.
 un mécanisme d’authentification.
 ESP supporte différents algorithmes de cryptage : 3DES ; RC5 ; IDEA ;
Blowfish

3.5 Paramètres d’associations de sécurité


 Une association de sécurité (AS) est une relation en sens unique entre un émetteur et
un destinataire qui garantit les services de sécurité pour le trafic généré.
 Des services de sécurité sont alloués à une AS pour utiliser AH ou ESP mais pas les
deux.
 Une AS est définie par trois paramètres :
o Index de paramètre de sécurité (IPS) : Une chaîne binaire assignée à cette AS
et ayant une signification locale.
o Adresse IP de destination.
o Identification du protocole de sécurité : Il indique si l’association est AH ou
ESP.
 Plusieurs AS peuvent être combinées

31
Fig. Exemple de SA

 Les associations entre AS et type de trafic se font par le biais d’une base de données de
politique de sécurité (SPD (Security Policy Database)).
 On distingue également : SAD : Security Association Database : C’est la base de
données des SA pour la gestion des associations de sécurité actives. Elle est consultée
pour savoir quels mécanismes il faut appliquer à chaque paquet reçu ou à émettre

3.6 Gestion des clés


 La gestion des clés implique la détermination de la distribution des clés secrètes.
 Une transmission classique nécessite 4 clés : deux paires de transmissions et de
réceptions pour AH et ESP.
 IPSec supporte deux types de gestions :
 Manuelle : Un administrateur configure manuellement chaque système
avec ses propres clés.
 Automatique : Un système automatisé permet une création à la demande
de clés pour les AS.
 Le protocole IKE (Internet Key Exchange) se charge de la négociation et
de la mise en place des SA.
 Le protocole de gestion de clés automatisé pour IPSec est ISAKMP/Oakley.
 Protocole d’Oakley : c’est un protocole de détermination de clés basé sur
l’algorithme de Diffie-Helman avec une sécurité ajoutée.
 ISAKMP (Internet Security Association and Key Management Protocol):
c’est un protocole fournissant un cadre pour la gestion des clés, et des
formats pour la négociation des attributs de sécurité.
 ISAKMP et Oakley font parti des protocoles IKE

32
Fig. Fonctionnement SA ; SAD ; SPD

33

Vous aimerez peut-être aussi