IDEA est un algorithme de chiffrement classique. Il est utilisé dans PGP pour le chiffrement des données. Il agit sur des blocs de texte clair de 64 bits à l'aide d'une clé de 128 bits. Il repose uniquement sur trois opérations algébriques : un XOR (ou exclusif), une addition modulo 2^16, et une multiplication modulo 2^16 + 1.
Le bloc de texte clair de 64 bits sera divisé en 4 blocs de 16 bits ; et la clé,
elle, sera divisée en 6 blocs de 16 bits. L'algorithme effectuera 8 rondes combinant à
l'aides de nos trois opérations les 4 premiers blocs aux 6 autres. Soient X1, X2,
X3 et X4 nos 4 blocs de texte clair qui seront nos 4 entrées, Z1, Z2,...,
Z6 les 6 blocs de notre clé. A la fin, il suffira de réassembler les 4 sous blocs
chiffrés.
- Listes des 14 étapes de chaque ronde :
1. X1 * Z1
2. X2 + Z2
3. X3 + Z3
4. X4 * Z4
5. (Etape 1) XOR (Etape 3)
6. (Etape 2) XOR (Etape 4)
7. (Etape 2) * Z5
8. (Etape 6) + (Etape 7)
9. (Etape 8) * Z6
10. (Etape 7) + (Etape 9)
11. (Etape 1) XOR (Etape 9) -> X1 de la ronde suivante
12. (Etape 3) XOR (Etape 9) -> X3 de la ronde suivante
13. (Etape 2) XOR (Etape 10) -> X2 de la ronde suivante
14. (Etape 4) XOR (Etape 10) -> X4 de la ronde suivante
Il y aura de plus 4 étapes supplémentaires aprés la huitiéme ronde :
1. X1 * Z1
2. X2 + Z2
3. X3 + Z3
4. X4 * Z4
- Création de clés derivées :
Par ailleurs il n'y aura pas 6 clés uniques mais 52 clés derivées (6 pour chacune des 8
rondes + 4 pour la transformation finale). La clé de 128 bits sera divisée en 8 blocs de
16 bits, constituant les 8 premières clé dérivées parmis les 52. La clé de 128 bits
sera alors ensuite décalée circulairement vers la gauche de 25 bits et donnera 8
nouveaux blocs de 16 bits. Et ainsi de suite jusqu'à la fin de l'algorithme.
IDEA sont les initiales de International Data Encryption Standard.