Vous êtes sur la page 1sur 15

qwertyuiopasdfghjklzxcvbnmqwertyuio

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:

Étant donné que le codage est un sujet très large, dans


cet article, nous nous concentrerons principalement sur
les méthodes de codage dites modernes, c'est-à-dire
celles qui ont émergé et ont été utilisées après la
Seconde Guerre mondiale. Nous allons revoir l'épopée
DES et AES, en passant par le célèbre RSA
3

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 :

     L’algorithme du système R.S.A. peut se


résumer à 5 étapes :
        1) Choisir deux grands nombres
premiers p et q de plus de 80 chiffres (en
dessous, le code est vulnérable)
        2) Calculer n=p.q et f=(p-1).(q-1)
        3) Choisir un nombre e premier
avec f et n (i.e. tel que pgcd(e,f.n)=1)
4
        4) Trouver d tel que 
        5) Le message à crypter est converti en
blocs de chiffres  , tous inférieurs à n. Pour
chiffrer le bloc  , on calcule   modulo n (les 2
paramètres de cryptage sont donc e et n).

    Pour déchiffrer le bloc  , on calcule   


modulo n (les 2 paramètres de décryptage sont
donc n et d, et donc, à cause de la définition
de d, on doit connaître f, donc p et q).
    Le chiffrement et le déchiffrement sont
l’inverse l’un de l’autre. En effet :
    
Or,   donc  , où   est
l'indicateur d'Euler. Par le théorème d'Euler, on
a   donc  . Comme  , on
a  , et on retrouve bien le message
original.
    La clé publique est la paire (e, n) et la clé
secrète est d, donc aussi p et q.
 

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.

Les points faibles


 Taille des clés dans le fonctionnement
Précédemment, nous avons délaissé la clé publique
(33 ; 3) au profit d'une autre, (363509 ; 5). Pourquoi ?
La première chose à remarquer, c'est la différence entre
les deux modules de chiffrement (les modulo) :
363509 est bien plus grand que 33 ! Cela a beaucoup
d'importance. Pour mieux comprendre, nous allons
tenter de décoder VI codé par (33 ; 3).
7
Y1 = 25 (c'est notre VI, mais crypté, voir l'opération ici)
Y1d = 257 = 6103515625
Y1d mod. 33 = 6103515625 mod. 33 = 31
Ce n'est pas le bon résultat ! On attendait 2209, c'est-
à-dire VI.
Pourquoi cela ne fonctionne-t-il pas ? C'est que notre
clef est trop petite ; en effet, on ne peut pas avoir 2209
en appliquant un modulo 33, parce que la définition du
modulo est « soustraire 33 jusqu'à ce que le résultat soit
plus petit que 33 (ou égal à 33) ». Or 2209 est plus
grand que 33, on a donc continué à soustraire. Il nous
faut alors choisir un module de chiffrement plus grand,
ce que nous avons fait en prenant 363509. Bien sûr,
n'importe quel module supérieur à 2626 (pour coder ZZ,
les deux lettres de l'alphabet ayant le plus grand nombre
associé) aurait fait l'affaire.
 Taille des clefs dans la sécurité
(33 ; 3) Fait une longueur de 7 bits, c'est minuscule.
(363509 ; 5) Fait une longueur de 20 bits, c'est déjà
mieux, mais toujours ridicule face à la puissance des
ordinateurs et des algorithmes de calcul. Aujourd'hui, il
est recommandé d'utiliser des clés de 1024 bits, mais on
préfèrera du 2048 bits pour plus de sûreté.

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

 Nous obtenons donc la clé K1 de 48 bits :


9
 0000 1001 0000 0000 0000 0000 0000 0010
0000 0000 0000 0000
 Cet algorithme est appliqué à chaque itération. Pour
calculer K2 , nous repartons de la valeur :
 1000 0000 0000 0000 0000 0000 0001
0100 0000 0000 0000 0000 0000 0000
 donc de la suite de 56 bits avant la permutation. C'est à
cette valeur que sera appliqué le décalage circulaire suivant
(itération 2 : décalage de 1 à gauche). Il en sera de même à
chaque fois.
 La clé est donc finalement composée de 48 bits.

La Fonction de Sélection "Si, i = 1 à 8 " décomposera les 6


bits d'entrée en 4 bits de positionnement "colonne", les bits 2 à
5 et en 10
2 bits de positionnement "ligne", les bits 1 et 6. Ces
deux coordonnées permettront de cibler une valeur dans la
matrice associée à "Si, i = 1 à 8 ", valeur qui sera codée en
binaire sur 4 bits. L’analyse des 8 matrices des fonctions « Si
» permet d’appréhender cette opération comme une
permutation avec un choix parmi quatre permutations, choix «
décidé » par les deux autres bits.
Point fort
1. c'est une clé de 56 bits. Il y a donc 2 ^ 56 possibilités de clés
qui prendraient une décennie pour trouver la bonne clé en
utilisant une attaque par force brute
2. Le chiffrement et le déchiffrement utilisent le même
algorithme. Seulement, la fonction doit être inversée et la clé
doit être prise dans l'ordre inverse. Ceci est très pratique pour
les exigences logicielles et matérielles.

Les point faible :


 Aujourd'hui, le D.E.S. est fortement menacé
par les puissances de calcul des ordinateurs.
Il n'est en effet pas impossible de balayer la
plupart des clés pour casser le code. Un
nouveau système, le A.E.S. (Advanced
Encryption Standard) est prévu pour le
remplacer.
 Clés faibles: la clé qui est sélectionnée sur les
tours est un problème. Pendant le
fractionnement des clés en deux moitiés et
leur permutation, le même résultat peut
apparaître si elles ont des 1 et 0 continus.
Thins finit par utiliser la même clé tout au
long des 16 cycles
11
 Il peut y avoir la même sortie des S-Box sur
différentes entrées sur la permutation. Ce
sont les touches semi-faibles.
 Si le message est chiffré avec une clé
particulière et est pris, le compliment de 1 de
ce chiffrement sera le même que celui du
chiffrement du message de compliment et de
la clé de compliment.

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

Les attaques par canal latéral se produisent lorsqu'un


système perd des informations. L'attaquant écoute le
son, les informations de synchronisation, les
informations électromagnétiques ou la consommation
d'énergie afin de recueillir des inférences de l'algorithme
qui peuvent ensuite être utilisées pour le casser.
Si AES est implémenté avec soin, ces attaques peuvent
être évitées soit en supprimant la source de la fuite de
données, soit en s'assurant qu'il n'y a pas de relation
apparente entre les données divulguées et les
processus algorithmiques.
La dernière faiblesse est plus générale que spécifique à
AES, mais les utilisateurs doivent être conscients que
AES ne sécurise pas automatiquement leurs données.
Même AES-256 est vulnérable si un attaquant peut
accéder à la clé d'un utilisateur. C'est pourquoi AES
n'est qu'un aspect de la sécurisation des données. La
gestion efficace des mots de passe, les pare-feu, la
détection de virus et l'éducation contre les attaques
d'ingénierie sociale sont tout aussi critiques à leur
manière.

Vous aimerez peut-être aussi