Le standart D.E.S.

 

La méthode D.E.S est apparue au cours des années 70. En 1973, le National Bureau of Standarts des Etats Unis lance un appel d'offre de système cryptographique de Chiffrement de données. Cet appel d'offre aboutit à la création du D.E.S. (Digital Encryption Standart) développé par I.B.M. Il est prévu que ce standart s'arrête à partir de 1998.

Principe général et algoritme de chiffrement D.E.S

Déchiffrement

Utilisations

Attaques du D.E.S

 

Le principe général

Le système D.E.S. chiffre un bloc de texte clair de 64 bits en utilisant une clef K de 56 bits, pour obtenir un bloc de texte chiffré de 64 bits. L'algoritme général se déroule en trois étapes:

1. Etant donné un bloc de texte clair x, une chaîne de bits x0 est construite en changeant l'ordre des bits de x suivant une permutation initiale IP fixée. On écrit x0 = IP(x)=L0R0 où L0 contient les 32 premiers bits de la chaîne x0 et R0 contient les 32 restants.

2. On effectue 16 itérations d'une certaine fonction f. On calcule LiRi suivant la règle Li=Ri-1 et Ri= Li-1+f(Ri-1,Ki)

où + est le ou exclusif bit a bit de deux chaines, et K1...K16 des chaînes de 48 bits calculées à partir de la clé K

3. La permutation inverse IP-1 est appliquée à R16L16 pour obtenir finalement le texte chiffré IP-1(R16L16)

Détail de la fonction f :

f prend pour arguments une chaîne de 32 bits, A et une chaîne de 48 bits, J. Le résultat de f est sur 32 bits. Le calcul se décompose en 4 étapes:

1. A est "augmenté" en une chaîne de 48 bits suivant une fonction d'expansion E. E(A) est composé de tous les bits de A dans un certain ordre , 16 d'entre eux apparaissant deux fois.

2. E(A)+J est calculé et le résultat B est découpé en 8 sous chaînes de 6 bits B=B1B2B3B4B5B6B7B8

3. On utilise maintenant huit boites-S S1...S8. Chaque Si est un tableau de 4x16 entiers compris entre 0 et 15. Etant donné une sous-chaîne de six bits Bj = b1b2b3b4b5b6, on calcule une chaîne de quatre bits Sj(Bj) ainsi. Les deux bits b1b6 forment la représentation binaire de l'indice d'une ligne r de Sj (0=<r=<3) et les quatre bits b2B3B4B5 composent la représentation binaire de l'indice d'une colonne c de la table (0=<c=<15). Sj(Bj) est alors la représentation binaire sur quatre bits du coefficient Sj(r,c). On peut ainsi voir chaque Sj comme une fonction qui admet en entrée une chaîne de six bits (ou une chaîne de deux et une chaîne de quatre) et produit une chaîne de quatre bits. De cette manière on calcule Cj=Sj(Bj) (1=<j=<8)

4. La chaîne C=C1C2C3C4C5C6C7C8 de longueur 32 est réordonnée suivant une permutation fixée P. Le résultat P(C) définit f(A,J)

 

Pour en connaître plus sur les boites S, ainsi que la génération des chaines Ki, leurs spécifications sont détaillées dans l'excellent et très complet livre Cryptographie, Théorie et Pratique de M. Douglas Stinson dont provient cet algoritme(voir notre bibliographie). Notez toutefois qu'elles prennent presqu'une dizaines de pages.

 

Déchiffrement

Le déchiffrement utilise exactement le même algoritme, mais dans le sens inverse. On part du texte crypté et on utilise les clefs K16...K1 dans l'ordre inverse.

 

Utilisations de D.E.S

D.E.S. est un système qui peut être facilement implémenté de manière logicielle ou matérielle : des opérations telles que le ou exclusif, les permutations,... sont des opérations de base pour un ordinateur et peuvent dont être traitées très rapidement. Ainsi en 1991 on atteignait déjà avec des systèmes dédiés des vitesses de cryptage de l'ordre du Gigaoctet par seconde!

D.E.S. est particulièrement utilisé dans le domaine des transactions bancaires, suivant un standart développé par l'American Bankers Association. D.E.S est utilisé pour cypter les opérations sur un compte bancaire et les codes de cartes dans les guichets automatiques.

On le trouve également dans les ministères américains tels que l'énergie, la justice ou les finances.