Académique Documents
Professionnel Documents
Culture Documents
pasdfghjklzxcvbnmqwertyuiopasdfghjk
lzxcvbnmqwertyuiopasdfghjklzxcvbnm
qwertyuiopasdfghjklzxcvbnmqwertyuio
Le sujet de
pasdfghjklzxcvbnmqwertyuiopasdfghjk
recherche
lzxcvbnmqwertyuiopasdfghjklzxcvbnm
Les algorithmes de cryptage moderne
qwertyuiopasdfghjklzxcvbnmqwertyuio
*DES § RSA § AES *
pasdfghjklzxcvbnmqwertyuiopasdfghjk
lzxcvbnmqwertyuiopasdfghjklzxcvbnm
qwertyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopasdfghjk
lzxcvbnmqwertyuiopasdfghjklzxcvbnm
qwertyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmrtyuiopasdfghjklzxc
vbnmqwertyuiopasdfghjklzxcvbnmqwe
rtyuiopasdfghjklzxcvbnmqwertyuiopas
dfghjklzxcvbnmqwertyuiopasdfghjklzx
2
INTRODUCTION:
RSA
Le premier algorithme de cryptage à clef
publique a été développé par R. Merckle et M.
Hellman en 1977. Il fut vite obsolète grâce aux
travaux de Shamir, Zippel et Herlestman, de
célèbres cryptanalyseurs.
En 1978, l'algorithme à clé publique de Rivest,
Shamir et Adelman (R.S.A.) apparaît. Il sert
encore au début du XXIème siècle à protéger les
codes nucléaires des armées américaines et
soviétiques...
Mécanisme :
Exemple
Un exemple avec de petits nombres premiers (en
pratique il faut de très grands nombres premiers) :
1.on choisit deux nombres premiers p = 3, q = 11 ;
5
2.leur produit n = 3 × 11 = 33 est le module de
chiffrement ;
3.φ(n) = (3 – 1) × (11 – 1) = 2 × 10 = 20 ;
4.on choisit e= 3 (premier avec 20) comme exposant
de chiffrement ;
5.l'exposant de déchiffrement est d = 7, l'inverse de 3
modulo 20 (en effet ed = 3 × 7 ≡ 1 mod 20).
La clé publique d'Alice est (n, e) = (33, 3), et sa clé
privée est (n, d) = (33, 7). Bob transmet un message à
Alice.
Chiffrement de M = 4 par Bob avec la clé
publique d'Alice : 43 ≡ 31 mod 33, le chiffré est C = 31
que Bob transmet à Alice ;
Déchiffrement de C = 31 par Alice avec sa clé
privée : 317 ≡ 4 mod 33, Alice retrouve le message
initial M = 4.
Le mécanisme de signature par Alice, à l'aide de sa clé
privée, est analogue, en échangeant les clés.
Les points forts
La sécurité de l'algorithme RSA contre les attaques par
la force brute repose sur deux conjectures9:
1.« casser » RSA de cette manière nécessite
la factorisation du nombre n en le produit initial des
nombres p et q,
2.avec les algorithmes classiques, le temps que prend
cette factorisation croît exponentiellement avec la
longueur de la clé.
Il est possible que l'une des deux conjectures soit
fausse, voire les deux. Jusqu'à présent, ce qui fait le
succès du RSA est qu'il n'existe pas d'algorithme connu
6
de la communauté scientifique pour réaliser une attaque
force brute avec des ordinateurs classiques.
Le 2 décembre 2019, le plus grand nombre factorisé par
ce moyen, en utilisant une méthode de calculs
distribués, était long de 795 bits. Les clés RSA sont
habituellement de longueur comprise entre 1 024 et
2 048 bits. Quelques experts croient possible que des
clés de 1 024 bits seront cassées dans un proche avenir
(bien que ce soit controversé), mais peu voient un
moyen de casser de cette manière des clés de
4 096 bits dans un avenir prévisible. On peut néanmoins
présumer que RSA reste sûr si la taille de la clé est
suffisamment grande. On peut trouver la factorisation
d'une clé de taille inférieure à 256 bits en quelques
minutes sur un ordinateur individuel, en utilisant des
logiciels librement disponibles10. Pour une taille allant
jusqu'à 512 bits, et depuis 1999, il faut faire travailler
conjointement plusieurs centaines d'ordinateurs. Par
sûreté, il est couramment recommandé que la taille des
clés RSA soit au moins de 2 048 bits.
DES
Principe :
8
L'algorithme DES transforme un bloc de 64 bits en un
autre bloc de 64 bits. Il manipule des clés individuelles
de 56 bits, représentées par 64 bits (avec un bit de
chaque octet servant pour le contrôle de parité). Ce
système de chiffrement symétrique fait partie de la
famille des chiffrements itératifs par blocs, plus
particulièrement il s'agit d'un schéma de Feistel (du nom
de Horst Feistel à l'origine du chiffrement Lucifer).
D'une manière générale, on peut dire que DES
fonctionne en trois étapes :
permutation initiale et fixe d'un bloc (sans aucune
incidence sur le niveau de sécurité) ;
le résultat est soumis à 16 itérations d'une
transformation, ces itérations dépendent à chaque
tour d'une autre clé partielle de 48 bits. Cette clé de
tour intermédiaire est calculée à partir de la clé initiale
de l'utilisateur (grâce à un réseau de tables de
substitution et d'opérateurs XOR). Lors de chaque
tour, le bloc de 64 bits est découpé en deux blocs de
32 bits, et ces blocs sont échangés l'un avec l'autre
selon un schéma de Feistel. Le bloc de 32 bits ayant
le poids le plus fort (celui qui s'étend du bit 32 au bit
64) subira une transformation ;
le résultat du dernier tour est transformé par la
fonction inverse de la permutation initiale
exemple
AES
Principe
L'algorithme prend en entrée un bloc de 128 bits
(16 octets), la clé fait 128, 192 ou 256 bits. Les 16 octets
en entrée sont permutés selon une table définie au
préalable. Ces octets sont ensuite placés dans
une matrice de 4x4 éléments et ses lignes subissent une
rotation vers la droite. L'incrément pour la rotation varie
selon le numéro de la ligne. Une transformation
linéaire est ensuite appliquée sur la matrice, elle
consiste en la multiplication binaire de chaque élément
de la matrice avec des polynômes issus d'une matrice
auxiliaire, cette multiplication est soumise à des règles
spéciales selon GF(28) (groupe de Galois ou corps fini).
La transformation linéaire garantit une
meilleure diffusion (propagation des bits dans la
structure) sur plusieurs tours.
Finalement, un OU exclusif XOR entre la matrice et une
autre matrice permet d'obtenir une matrice intermédiaire.
Ces différentes opérations sont répétées plusieurs fois
12
et définissent un « tour ». Pour une clé de 128, 192 ou
256, AES nécessite respectivement 10, 12 ou 14 tours.
MixColumns
Chaque colonne de quatre octets est désormais transformée à
l'aide d'une fonction mathématique spéciale. Cette fonction
prend en entrée les quatre octets d'une colonne et génère
quatre octets entièrement nouveaux, qui remplacent la colonne
d'origine. Le résultat est une autre nouvelle matrice composée
de 16 nouveaux octets. Il est à noter que cette étape n'est pas
effectuée lors du dernier tour.
Addroundkey
Les 16 octets de la matrice sont maintenant considérés
comme 128 bits et sont XOR sur les 128 bits de la clé
ronde. S'il s'agit du dernier tour, la sortie est le texte
chiffré. Sinon, les 128 bits résultants sont interprétés
comme 16 octets et nous commençons un autre tour
similaire.
Processus de décryptage
Le processus de décryptage d'un texte chiffré AES est
similaire au processus de cryptage dans l'ordre inverse.
Chaque cycle se compose des quatre processus menés
dans l'ordre inverse - Ajouter une clé ronde Mélanger les
colonnes Décaler les lignes Substitution d'octets Étant
donné que les sous-processus de chaque cycle sont
inversés, contrairement à un chiffrement Feistel, les
algorithmes de chiffrement et de déchiffrement doivent
être mis en œuvre séparément, bien qu'ils soient très
étroitement liés.
13
Exemple
14
Point fort
AES est certifié hautement sécurisé grâce à son
algorithme. À ce jour, aucune attaque pratique n'est
connue. Les attaques par force brute sont inefficaces en
raison de la longueur de clé d'au moins 128 bits. De
plus, des opérations telles que ShiftRows et MixColumns
garantissent un mixage optimal des bits : dans le
résultat, chaque bit dépend de la clé. De plus, le
cryptosystème convainc par sa simplicité
d'implémentation et sa grande vitesse. AES est utilisé
comme norme de cryptage pour WPA2, SSH et IPSec
15
ainsi que comme algorithme de cryptage pour les
archives de fichiers compressés telles que 7-Zip ou
RAR.
.point faible