Cryptographie : Algorithmes
IV) IDEA
IDEA est un système de chiffrement
par blocs de 64 bits, avec une clé de 128 bits, qui tourne sur 8 rondes.
Cet algorithme, utilisé par PGP, n'utilise que trois opérations simples :
le XOR, l'addition modulo 2^16 et la multiplication modulo 2^16+1.
Le texte est découpé en blocs de
64 bits, redivisés en quatre blocs de 16 bits : X1, X2, X3, X4. La clé K
est, elle, divisée en 8 blocs de 16 bits, puis décalées circulairement sur
la gauche de 25 bits, et redivisée, et ainsi de suite jusqu'à obtenir 52
clés. Ces clés formeront 8 groupes de 6 clés (un groupe par ronde) :
K1, K2, K3, K4, K5, K6, et un groupe de 4 clés pour la ronde finale :
K1, K2, K3, K4.
Etapes des 8 rondes :
- Etape1 = X1 * K1
- Etape2 = X2 * K2
- Etape3 = X3 * K3
- Etape4 = X4 * K4
- Etape5 = Etape1 XOR Etape3
- Etape6 = Etape2 XOR Etape4
- Etape7 = Etape5 * K5
- Etape8 = Etape6 + Etape7
- Etape9 = Etape8 * K6
- Etape10 = Etape7 + Etape9
- Etape11 = Etape1 XOR Etape9 => X1 de la ronde suivante
- Etape12 = Etape3 XOR Etape9 => X3 de la ronde suivante
- Etape13 = Etape2 XOR Etape10 => X2 de la ronde suivante
- Etape14 = Etape4 XOR Etape10 => X4 de la ronde suivante
Pour finir, on applique une étape supplémentaire après la huitième ronde :
- C1 = X1 * K1
- C2 = X2 + K2
- C3 = X3 + K3
- C4 = X4 * K4
Les 4 blocs C1, C2, C3, C4, forment
alors le message chiffré.
Pour déchiffrer le texte, il faut
d'abord inverser la dernière opération :
- C1 = C1 * K1-1
- C2 = C2 - K2
- C3 = C3 - K3
- C4 = C4 * K4-1
On applique alors les opérations
suivantes selon 8 rondes, en utilisant les groupes de 6 clés en partant de
la dernière à la première :
- Etape1 = C1 XOR C3 (Etape5 lors du cryptage)
- Etape2 = C2 XOR C4 (Etape6 lors du cryptage)
- Etape3 = Etape1 * K5 (Etape7 lors du cryptage)
- Etape4 = Etape2 + Etape3 (Etape8 lors du cryptage)
- Etape5 = Etape4 * K6 (Etape9 lors du cryptage)
- Etape6 = Etape3 + Etape5 (Etape10 lors du cryptage)
- Etape7 = C1 XOR Etape5 (Etape1 lors du cryptage)
- Etape8 = C3 XOR Etape5 (Etape3 lors du cryptage)
- Etape9 = C2 XOR Etape6 (Etape2 lors du cryptage)
- Etape10 = C4 XOR Etape6 (Etape4 lors du cryptage)
- Etape11 = Etape7 * K1-1 => C1 de la ronde suivante
- Etape12 = Etape8 - K3 => C3 de la ronde suivante
- Etape13 = Etape9 - K2 => C2 de la ronde suivante
- Etape14 = Etape10 * K4-1 => C4 de la ronde suivante
Les 4 blocs C1, C2, C3, C4 obtenus
après la dernière ronde forment alors le message en clair.
Copyright © BLANC David - 2000