Académique Documents
Professionnel Documents
Culture Documents
I- Introduction
La cryptologie: La science qui étudie la communication en présence d’adversaires.
Objectif : chiffrer un texte clair P en un cryptogramme C au moyen d’une clé K.
Le destinataire doit pouvoir déchiffrer le cryptogramme C à l’aide de la clé K.
Ennemi
P C C
Source Emétteur Récepteur
K K
Source de clé
Le cryptanalyse: techniques de décryptage du crytogramme pour retrouver le texte clair sans la clé
avec les informations suivantes :
- cryptogramme connu (le cryptanalyste connaît une longue portion du cryptogramme)
- couples clairs/cryptogrammes connus
- clair choisi:le cryptanalyste dispose du mécanisme de chiffrement et chiffre des clairs de son
choix pour obtenir des informations sur la clé.
Le système de chiffrement moderne ne doit pas dépendre du secret de l’algorithme mais seulement
du secret de la clé.(Kerchoff 1883)
Le système de chiffrement à clé secrète peut être modélisé par le formalisme suivant :
• Un espace de messages M : ensemble des messages clairs
• Un espace de cryptogrammes C: ensemble des cryptogrammes possibles
• Un espace de clés K: ensemble des clés possibles
• Un algorithme de chiffrement E:KxM→C
• Un algorithme de déchiffrement D : KxC→M
La source et la destination se mettent d’accord sur une clé K qu’ils conservent secrète.
1- Chiffrement de César : défini en décalant l’alphabet de trois lettres. Par convention, on utilisera
les minuscules pour le clair et les majuscules pour le cryptogramme.
Par exemple, le mot message devient PHVVDJH.
On peut généraliser le chiffrement de César en changeant la valeur de 3 par une valeur entière entre
1 et 26. L’ensemble de cette famille d’algorithmes est appelée chiffrement additif
2- Chiffrement multiplicatif :Au lieu d’ajouter une valeur au code clair, on le multiplie par une
1
valeur et on calcule le modulo 26. x→t.x mod 26
Les valeurs de t acceptables doivent vérifier que pgcd (t,26)=1 sinon la décomposition n’est pas
unique
Le déchiffrement se fait par la division euclidienne. Trouver u tel que ut=1 mod 26.
Le clair=c.u mod 26
f h w h a w h h v w x q h a h p s o h t x l p r q w u h o h g h f
r g d j h v w d w l v w l t x h
2
Essaie d’uniformiser le nombre d’apparitions des lettres dans le texte chiffré en faisant plusieurs
substitutions pour la même lettre.
1- Chiffrement de Vigenère
Inventé en 1586 par le diplomate français Blaise de Vigenère. L’algorithme se base sur une clé et
effectue une substitution en fonction de la lettre correspondante de la clé.
Le déchiffrement s’effectue en retirant le code de la lettre de la clé de la lettre du cryptogrammes
Exemple : « paiement annulé » avec la clé cake
p a i e m e n t a n n u l e
c a k e c a k e c a k e c a
16 1 9 5 13 5 14 20 1 14 14 21 12 5
3 1 11 5 3 1 11 5 3 1 11 5 3 1
19 2 20 10 16 6 25 25 4 15 25 26 15 6
s b t j p f y y d o y z o f
La cryptanalyse se fait par l’analyse des bigrammes pour retrouver l’ordre des colonnes.
V Chiffrement de Vernam
C’est un système de chiffrement utilisant une clé de même taille que le message clair. La clé est
utilisée une seule fois puis jetée. La clé est une séquence binaire aléatoire qu’on fait en ou exclusif
avec le message clair.
L’algorithme est formellement sûr mais très difficile de mettre en pratique surtout pour la gestion
de clés longues, parfaitement aléatoires stockées en un lieu sûr et échangées entre les intervenants.
Algorithme :
- Permutation initiale IP donnant un message M’
- M’ est divisé en 2 mots de 32 bits.L0 et R0.
- Réaliser 16 itérations de la fonction f qui combine des substitutions et des transpositions
Li=Ri-1
Ri=Li-1+f(Ri-1,Ki)
f est une fonction qui prend comme entrée les 32 bits de la partie droite et le clé de tour. Elle est
définie en utilisant 8 permutations appelées S-boxes. La clé de tour contient un sous-ensemble de la
clé. Le cryptogramme C’ subit la transformation inverse de IP et donne le cryptogramme final.
La fonction f commence par étendre les 32 bits de Ri-1 en 48 bits. Ensuite, un xor est effectué avec
la clé de tour. On divise le résultat ensuite en 8 blocs de 6 bits dénotés B1,…,B8.
3
Chaque Bj est ensuite utilisé comme input de la fonction de substitution Sj qui renvoie un bloc de 4
bits en sortie Sj(Bj).
- La clé de 56 bits est trop courte pour assurer une robustesse suffisante surtout avec les capacités
de calcul des processeurs actuels
- L’algorithme a été cryptanalysé en partie dès les années 90.
→ AES est un candidat particulièrement approprié pour les implémentations embarquées qui
suivent des règles strictes en matière de ressources, puissance de calcul, taille mémoire, etc...
Utilisé dans la 3G (3ème génération de mobiles) à adopter cet algorithme pour son schéma
4
d'authentification, les VPN, le chiffrement des fichiers dans les disques et les archives, etc.
L'AES opère sur des blocs de 128 bits qu'il transforme en blocs cryptés de 128 bits par une
séquence de N opérations ou «rounds », à partir d'une clé de 128, 192 ou 256 bits. Suivant la taille.
le nombre de rounds diffère : respectivement 10, 12 et 14 rounds.
BYTE_SUB (Byte Substitution) est une fonction non-linéaire opérant indépendamment sur
chaque bloc à partir d’une table dite de substitution.
SHIFT_ROW est une fonction opérant des décalages (typiquement elle prend l'entrée en 4
morceaux de 4 octets et opère des décalages vers la gauche de 0, 1, 2 et 3 octets pour les
morceaux 1, 2, 3 et 4 respectivement).
MIX_COL est une fonction qui transforme chaque octet d'entrée en une combinaison linéaire
d'octets d'entrée et qui peut être exprimée mathématiquement par un produit matriciel.
Le signe + entouré d'un cercle désigne l'opération de OU exclusif (XOR).
DES AES
Date 1976 1999
Taille de bloc 64 128
Longueur de clé 56 128,192,256
Nombre de rounds 16 9,11,13
Techniques Substitution et permutation Substitution, décalage, mélange de bits
Droits fermé ouvert
Sélection secrète Secrète mais avec des commentaires publics
Source IBM et NSA Chercheurs indépendants
DES vs. AES
L’algorithme AES est plus sûr que DES et 3DES car il résiste à différentes techniques de
cryptanalyse linéaire et différentielle.
5
Chap 4 Cryptographie à clé publique
I- Introduction
Le chiffrement asymétrique utilise une clé de chiffrement différente de la clé de déchiffrement. La
clé de chiffrement est connue par tout le monde et est appelée clé publique. Seul le récepteur
connaît la clé de déchiffrement (clé privée).
Le chiffrement asymétrique se base sur des fonctions à sens unique (ou à sens unique avec trappe).
Une fonction à sens unique est une fonction facilement calculable mais dont la réciproque est
impossible (ou très difficile) à calculer en un temps raisonnable.
Exemple : (Le problème de factorisation) Le produit de 2 nombres premiers est très facile à calculer
mais trouver les deux nombres à partir de leur produit est très coûteux en temps.
La fonction à sens unique avec trappe est un cas particulier où la réciproque ne peut être calculée
facilement que si on connaît une information secrète (trappe).
II L’algorithme RSA
Rivest Shamir et Adleman (1978)
Algorithme :
- On choisit deux entiers premiers p et q de l’ordre de 10100.
- On fixe n=p.q
- On calcule phi(n)=(p-1)(q-1) (indicatrice d’Euler : nbre d’entiers premiers avec n et inférieurs à n)
- On choisit e tel que pgcd(e, phi(n))=1 on publie n et e.
- On calcule d tel que d.e=1 mod phi(n)
Exemple :
Exercice
p=7;q=77 e=13
Chiffrer le message 10 11 12 13
Vérifier le déchiffrement
L’algorithme RSA a une très grande complexité temporelle pour effectuer le calcul. (RSA est 1000
fois plus lent que DES)
6
III Algorithme d’El Gamal
(Taher El Gamal) proposé en 1985 et utilise le problème du logarithme discret.
Algorithme de base pour la signature numérique DSA (SSL) et DSS (pour les cartes de crédit)
Si on connaît g et y inférieurs à n
Le problème de trouver x tel que gx=y mod n est difficile.
Le problème est posé autrement x=logg(y) mod p-1
Algorithme :
On choisit p assez grand
on choisit alpha un élément primitif
on calcule β= αa mod p pour a un nombre secret (la clé privée)
La clé publique est alors p,α, β.
L’opération de chiffrement est alors pour un message x est y1= αk mod p, y2=x βk mod p.
Pour une valeur de k aléatoire.
Exercice :
On veut transmettre le message x=1299.
Les paramètres publics sont p=2579, α=2, β=949
on choisit k=853
Chiffrer y1=435, y2=2396
Trouver le message clair.
7
Chap 5 La signature numérique
La cryptographie asymétrique permet non seulement la confidentialité des données mais elle a
d’autres applications telles que l’authentification et la signature numérique.
la signature est modélisée par une fonction sig(K,M)=S telle que la fonction de vérification ver
vérifie : ver(K,M,S)=vrai ↔ sig(K,M)=S
DSS
Les certificats
intro
forme d’un certificats
chaine de certification
gestion des clés
distribution
échange de clé avec Diffie Hellman