b.
L’algorithme DES (Data Encryption Standard)
Le DES (Data Encryption Standard est un algorithme de cryptographie à clé secrète
publié en 1977.
Caractéristiques :
Il applique le principe de fonctionnement de la structure de Feistel
Le message à chiffrer est découpé enblocs de 64 bits, chacun d'eux étant séparé en deux
sous-blocs de 32 bits.
Le nombre de rounds à effectuer est égal à 16
Taille initiale de la clé = 64 bits (56 bits + 8 bits de parité)
Nombre de sous-clés est 16
Taille d’une sous clé est 48 bits
Taille du texte chiffré final est 64 bits
Etapes principales de l’algorithme DES
Le texte clair est d’abord fractionné en blocs de 64 bits
chacun.
Pour chaque bloc de 64 bits :
Appliquer la table de permutation initiale
Effectuer 16 rounds (tours)
Appliquer la table de permutation initiale inversée au
bloc résultant du round16
Le bloc chiffré 64 bits est alors obtenu.
Le round
Les opérations suivantes sont effectuées dans chaque
round i :
Une sous clé (Ki) est générée
La sous clé (Ki) est utilisée dans la fonction F de
l’algorithme DES
Le bloc résultant est généré selon la structure de Feistel,
et constituera le bloc d’entrée du round suivant.
La fonction F
Le bloc de 32 bits de départ est transformé en bloc de 48 bits grâce
à la fonction d’expansion E
Un Xor est appliqué au résultat de la fonction d’expansion et la clé
Ki
Des S-Box sont utilisées pour obtenir un bloc de 32 bits
Une table de permutation P est appliquée au résultat des S-Box
Les S-Box
Les tables S-Box permettent de déterminer la valeur de 4 bits en
sortie en fonction de 6 bits en entrée de la façon suivante :
B B B B B B
0 1 2 3 4 5
Pour une S-Box particulière :
- B0B5 détermine le numéro de la ligne dans la table S-Box
- B1B2B3B4 détermine le numéro de la colonne dans la table S-
Box
- L’intersection de la ligne et de la colonne indique un nombre
décimal
- La sortie de la S-Box sera la représentation binaire (sur 4 bits)
de ce nombre décimal
La fonction F de
l’algorithme DES
- Pour la génération de la 1ère sous clé :
Appliquer une première permutation en utilisant une table de permutation
prédéfinie et fixe (PC1)
Fractionner le bloc de 56 bits obtenu en deux parties égales
Appliquer pour chaque partie un décalage des bits à gauche
de 1 position
Appliquer une deuxième permutation en utilisant une table de permutation
prédéfinie et fixe (PC2)
Le résultat représente la clé K1 du round 1 dont la taille est
48 bits.
- Pour les 15 rounds restants :
1-Fractionner le bloc de 48 bits qui représente la clé
précédente en deux parties égales
2- Appliquer pour chaque partie un décalage des bits à gauche
de 1 position dans les rounds 2, 9 et 16 et 2 positions dans
les autres rounds.
3- Appliquer une deuxième permutation en utilisant une table de permutation
prédéfinie et fixe (PC2)
4- Le résultat représente la clé Ki du round i. Sa taille sera 48
bits.
Génération de sous-clés
L’algorithme RSA :
L’algorithme RSA a été inventé en 1977 par Ron Rivest, Adi Shamir
et Len Adleman. Il est basé sur la difficulté de factoriser un grand nombre
en produit de deux grands facteurs premiers. C’est un algorithme de
chiffrement asymétrique qui utilise une clé publique (e, n) et une clé
privée (d, n).
a)Génération des clefs :
- Deux nombres premiers (p et q) sont générés.
- Calculer n avec n = p x q.
- Calculer φ(n) avec φ(n) = (p-1)(q-1) (phi de n)
- Choisir la valeur de ( e ) telle que :
- ( e ) doit être inférieur à φ(n)
- ( e ) doit être premier avecφ(n) : PGCD (e, φ(n)) = 1
- Choisir d tel que : (d * e) modφ(n) = 1
- (e, n) représente la clé publique
- (d, n) représente la clé privée
Exemple :
Choisir deux nombres premiers p et q.
p = 5 et q = 11
n = p xq = 55
φ(n) = (p-1)(q-1) = 40
Choisir la clé publique ( e ) :
e 40 / PGCD (e, 40) = 1
e=7
La clé publique est donc : (7, 55)
Choisir la clé privée ( d ) telle que : (d * e) mod 40 = 1
Si on prend d = 23
(7 * 23) = 161 mod 40 = 1
La clé privée est : (23, 55)
Chiffrement du message M = 2 avec la clé publique (7, 55).
(2 ^7) mod 55 = C = 18
Déchiffrement du message C = 18 avec la clé publique (23, 55).
(18 ^23) mod 55 = C=2