Chiffrement et déchiffrement LOKI97
Chiffre par blocs australien - Candidat AES avec blocs de 128 bits et longueur de clé variable
Avis de sécurité
LOKI97 était un candidat AES mais n'a pas été sélectionné comme standard. Pour les nouvelles applications nécessitant une sécurité forte, AES (Rijndael) est recommandé.
À propos de LOKI97
LOKI97 est un chiffre par blocs à clé symétrique conçu par Lawrie Brown et Josef Pieprzyk en 1997. Il a été soumis comme candidat pour la compétition Advanced Encryption Standard (AES), représentant l'évolution des chiffres LOKI89 et LOKI91 développés en Australie.
Le chiffre opère sur des blocs de données de 128 bits et supporte des tailles de clé de 128, 192 ou 256 bits. Il utilise une structure de réseau Feistel à 16 tours avec des fonctions de tour complexes basées sur des S-boxes et des permutations, conçues pour fournir une forte résistance contre la cryptanalyse différentielle et linéaire.
Caractéristiques principales
- Taille de bloc de 128 bits conforme aux standards de sécurité modernes
- Tailles de clé flexibles : 128, 192 ou 256 bits
- Structure Feistel à 16 tours pour un mélange complet des données
- Conçu pour résister à la cryptanalyse différentielle et linéaire
- Membre de la famille de chiffres LOKI développée en Australie
Histoire de la famille LOKI
- LOKI89 : Le chiffre original conçu en 1989 avec des blocs de 64 bits et des clés de 64 bits.
- LOKI91 : Une version améliorée corrigeant les faiblesses trouvées dans LOKI89.
- LOKI97 : L'évolution finale avec des blocs de 128 bits, soumis à la compétition AES.
Modes de chiffrement
- CBC: Chaînage de blocs - Chaque bloc est XORé avec le bloc chiffré précédent avant le chiffrement. Fournit une sécurité forte. Requiert un IV.
- ECB: Livre de codes électronique - Chaque bloc est chiffré indépendamment. Simple mais révèle les motifs dans les données. Non recommandé pour la plupart des utilisations.
- CFB: Retour de chiffrement - Convertit le chiffre par blocs en chiffre de flux. Auto-synchronisant et gère les blocs partiels.
- OFB: Retour de sortie - Génère le flux de clés indépendamment du texte clair. Pas de propagation d'erreur.
- RAW: Bloc brut - Chiffrement direct d'un bloc unique sans mode de chaînage. Pas d'IV requis. Pour les blocs de 128 bits uniquement.
Structure de l'algorithme
LOKI97 utilise une structure de réseau Feistel à 16 tours. Chaque tour traite un bloc de 128 bits divisé en deux moitiés de 64 bits (L et R).
Planification des clés
La clé maîtresse de 256 bits est étendue en 48 sous-clés (SK[0] à SK[47]) en utilisant la fonction f et la constante DELTA (dérivée du nombre d'or). Pour les clés de 128 ou 192 bits, le matériel de clé est répliqué pour remplir un registre de clé de 256 bits avant l'expansion.
Fonction de tour
Chaque tour applique : L' = R + SK[3i], R' = L XOR f(R + SK[3i], SK[3i+1], SK[3i+2]). L'addition est modulo 2^64.
La fonction f
La fonction f centrale f(A, B) se compose de quatre couches :
- KP (Permutation contrôlée par clé) : Sélectionne des bits de A basés sur les bits de contrôle dans B
- Sa (Couche S-box a) : Huit recherches S-box parallèles utilisant deux types (S1 : 13→8 bits, S2 : 11→8 bits)
- P (Permutation) : Permutation de 64 bits utilisant un motif d'entrelacement de bits 8×8
- Sb (Couche S-box b) : Deuxième série de huit recherches S-box avec du matériel de clé supplémentaire de B
Boîtes S
S1 a 8192 entrées (entrée 13 bits → sortie 8 bits), S2 a 2048 entrées (entrée 11 bits → sortie 8 bits). Les deux sont calculées en utilisant des opérations de cube dans GF(2^13) et GF(2^11) respectivement, avec des polynômes générateurs spécifiques pour une forte non-linéarité.
Déchiffrement
Le déchiffrement utilise la même structure mais applique les sous-clés dans l'ordre inverse (SK[47] jusqu'à SK[0]) et utilise la soustraction au lieu de l'addition.
Comparaison des algorithmes
| Algorithme | Longueur de clé | Taille de bloc | Sécurité | Vitesse |
|---|---|---|---|---|
| LOKI97 | 128/192/256 bits | 128 bits | Bonne | Moyenne |
| AES | 128/192/256 bits | 128 bits | Excellente | Rapide |
| Serpent | 128/192/256 bits | 128 bits | Excellente | Moyenne |
| DES | 56 bits | 64 bits | Faible | Rapide |
Considérations de sécurité
- LOKI97 offre une bonne sécurité sans attaque pratique trouvée contre le chiffre complet
- La taille de bloc de 128 bits s'aligne sur les exigences de sécurité modernes
- Bien que non sélectionné comme AES, LOKI97 reste cryptographiquement solide
- Pour les nouvelles applications, AES est recommandé comme standard international
Cas d'utilisation
- Compatibilité des systèmes hérités et recherche historique
- Éducation cryptographique et étude des algorithmes
- Analyse comparative avec d'autres candidats AES
- Applications nécessitant une cryptographie développée en Australie
Références
Outils Connexes
Cryptage/Décryptage AES
Crypter et décrypter du texte en toute sécurité à l'aide de l'algorithme AES
Chiffrement/Déchiffrement Serpent
Algorithme finaliste AES avec clés 128/192/256 bits, 32 rondes, offrant une excellente marge de sécurité et une résistance cryptanalytique prouvée
Chiffrement/Déchiffrement Twofish
Finaliste AES, chiffrement symétrique à blocs de 128 bits et clés de 128/192/256 bits, conçu par Bruce Schneier