Vous êtes sur la page 1sur 8

Chap 3 Introduction à la cryptographie

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

Les algorithmes E et D doivent vérifier : D(K,E(K,M))=M quelque soit K et M

La source et la destination se mettent d’accord sur une clé K qu’ils conservent secrète.

II- Chiffrement monoalphabétique


C’est une application bijective des lettres de l’alphabet vers les lettres de l’alphabet. Appelée aussi
permutation.

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

3- Chiffrement affine : Réalise une combinaison entre le chiffrement additif et multiplicatif.


x→(x+s).t
La clé de chiffrement est la paire (s,t)

4- Chiffrement par mot clé


On choisit un mot clé et une position de départ.
Le mot clé ne doit pas contenir de lettres qui se répètent
L’alphabet est substitué par la clé à la position de départ puis le reste de l’alphabet
Exemple : mot clé hirondelle à la position 5
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
w x y z h i r o n d e l a b c f g j k m p q s t u v

5- Cryptanalyse des chiffrements monoaplphabétiques


Le point commun de ces chiffrements est qu’ils se basent sur la substitution d’une lettre par une
autre lettre. L’étude statistique du langage montre que les fréquences d’apparitions des lettres dans
les textes est constante pour une langue donnée.

Lettre Fréquence Lettre Fréquence


A 8.40 % N 7.13 %
B 1.06 % O 5.26 %
C 3.03 % P 3.01 %
D 4.18 % Q 0.99 %
E 17.26 % R 6.55 %
F 1.12 % S 8.08 %
G 1.27 % T 7.07 %
H 0.92 % U 5.74 %
I 7.34 % V 1.32 %
J 0.31 % W 0.04 %
K 0.05 % X 0.45 %
L 6.01 % Y 0.30 %
M 2.96 % Z 0.12 %

Cette valeur change d’une langue à l’autre.


En cas de doute, l’analyse peut être complétée par les bigrammes (combinaisons à deux lettres).
Exemple de cryptanalyse :
ce texte est un exemple qui montre le decodage statistique

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

III Chiffrement polyalphabétique

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 de l’algorithme de Vigenère se base sur la recherche de séquences qui se répètent


pour déterminer la longueur de la clé. Ensuite, on applique l’analyse statistique pour déterminer le
texte clair.

IV Chiffrement par transposition


Utiliser les mêmes lettres mais changer l’ordre en utilisant une matrice. Le nombre de colonnes est
la clé de chiffrement. Écrire en ligne et lire le texte chiffré en colonnes.
Exemple : Chiffrer le texte : le document confidentiel est caché dans la bibliothèque.

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.

VI l’algorithme DES (Data Encryption Standard)


Conçu par IBM dans les années 1970s, il est très utilisé (chiffrement des mots de passe sous
UNIX).
Entrées : Un message de 64 bits et une clé de 56 bits
Sorties : Un cryptogramme de 64 bits

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.

VII L’algorithme AES (Advanced Encryption System)


Proposé lors d’un appel d’offres en 1997 et validé en 2000. Conçu par (Daemen et Rijmen) il porte
le nom de Rijndael.
Caractéristiques :
- Sécurité ou l'effort nécessaire pour une éventuelle cryptanalyse
- Puissance de calcul qui entraîne une grande rapidité de traitement
- Besoins en ressources et mémoire très faibles
- Flexibilité d'implémentation, cela inclut une grande variété de plateformes et d'applications
ainsi que des tailles de clés et de blocs supplémentaires
- Compatibilité hardware et software, il est possible d'implémenter l'AES aussi bien sous
forme logicielle que matérielle
- Simplicité, le design de l'AES est relativement simple

→ 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)

n et e forment la clé publique.


d est la clé secrète.

Pour chiffrer un message M, on calcule C= Me mod n


Pour déchiffrer, on fait Cd mod n= (Me)d mod n=M.
En utilisant le théorème d’Euler: Mphi(p)= 1 mod p ⇒ Mp-1 = 1 mod p si pgcd (M,p)=1

Exemple :

On choisit p=17 et q=13


n=pq=221
phi(n)=(p-1)(q-1)=12*16=192
e tel que e premier avec 192 e=5
on choisit d tel e.d=1 mod n ⇒ 5e=1 mod 192→ d=77
On chiffre m=14 c=me mod 221=131
On déchiffre cd=13177 mod 221=14

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)

On peut optimiser le calcul de Me par exponentiation modulaire ab mod n

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.

Le déchiffrement se fait en faisant l’opération y2 (y1a)-1 mod p

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.

Caractéristiques de la signature numérique :


• Elle doit empêcher la falsification et la répudiation
• Elle doit être calculée par l’émetteur
• Tout le monde doit pouvoir vérifier la signature

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

Signature par RSA :


Si A veut envoyer un message à B. sig(K,M)=MdA mod nA
La vérification se fait en faisant ver(K,M,S)= vrai ↔ SeB mod nA= M

Si on veut envoyer un message chiffré et signé EpA(EPB(M))=(MeB mod nB)dA mod nA

Signature par Elgamal :


privé : a public p, α et β
on choisit k tel que pgcd(k,p-1)=1 et on définit sig(M,k)=(γ, δ) avec
γ=αk mod p et δ= (M-aγ )k-1 mod (p-1)

La vérification se fait telle que ver(M,γ, δ)= vrai ↔ β γγδ= αM mod p

DSS

Les fonctions de hachage


Principe
MD5
SHA-1-2-3
DSA

Les certificats
intro
forme d’un certificats
chaine de certification
gestion des clés
distribution
échange de clé avec Diffie Hellman

Vous aimerez peut-être aussi