CoderTools

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é.

LOKI97 supporte des clés de 128 bits (16 octets), 192 bits (24 octets) ou 256 bits (32 octets).
Options de format

À propos de LOKI97

LOKI97 est la troisième génération de la famille australienne de chiffrement LOKI, conçue par Lawrie Brown (Académie militaire australienne) et Josef Pieprzyk (Université Macquarie). La lignée débute avec LOKI89 (1990, blocs 64 bits), vulnérable à la cryptanalyse différentielle de Biham et Shamir, puis LOKI91 avec des S-boxes révisées, et enfin LOKI97, une conception complète soumise comme candidat AES en 1998, avec des blocs 128 bits et des clés de 128, 192 ou 256 bits.

L'élément structurel le plus distinctif de LOKI97 est ses S-boxes, générées par évaluation de polynômes irréductibles sur GF(2¹³) — une construction algébriquement plus complexe que les S-boxes DES ou les SubBytes AES sur GF(2⁸). Le programme de clé dérive tous les sous-clés de round en appliquant récursivement la fonction de round LOKI97 elle-même à la clé maîtresse.

Caractéristiques principales

  • Blocs 128 bits — mis à niveau depuis les blocs 64 bits de LOKI89, éliminant la vulnérabilité de borne d'anniversaire
  • Trois tailles de clés : 128, 192 et 256 bits — correspondant à la gamme complète des clés AES
  • Réseau Feistel 16 tours avec S-boxes générées sur GF(2¹³) — structure algébrique plus complexe que DES ou AES
  • Programme de clé auto-référenciel — les sous-clés dérivées par application récursive de la fonction de round LOKI97
  • Origine australienne : conçu à l'ADFA et l'Université Macquarie, seul candidat AES à lignée académique exclusivement de l'hémisphère sud

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 chiffrés — chaque bloc LOKI97 de 128 bits est XORé avec le chiffrement précédent avant la séquence Feistel à 16 tours et S-boxes GF(2¹³). Les blocs 128 bits maintiennent la probabilité de collision bien en dessous du seuil pratique (≈ 2⁶⁴ blocs ≈ 148 exaoctets par clé), rendant Sweet32 totalement hors de portée.
  • ECB: Codebook électronique — chaque bloc LOKI97 de 128 bits traité indépendamment sur les 16 tours. Des blocs identiques produisent toujours le même chiffrement. CBC est recommandé à la place d'ECB pour tout chiffrement multi-blocs.
  • CFB: Rétroaction de chiffrement — la fonction de bloc LOKI97 128 bits chiffre le bloc de chiffrement précédent et les n bits supérieurs sont XORés avec le texte en clair. La structure Feistel garantit dispersion et résistance aux attaques.
  • OFB: Rétroaction de sortie — la fonction de bloc LOKI97 génère un flux de clé déterministe en ré-chiffrant itérativement l'état, indépendamment du texte en clair. L'état interne 128 bits assure un cycle de flux de clé statistiquement d'au moins 2⁶⁴.
  • 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é

  • Aucune attaque pratique à tout round sur LOKI97 n'est connue. La construction S-box GF(2¹³) a été conçue pour contrecarrer la cryptanalyse différentielle et linéaire exposée dans LOKI89.
  • Le bloc 128 bits élimine l'attaque Sweet32 qui affecte les 64-bit LOKI89/91. Une collision sous LOKI97 nécessiterait ≈ 2⁶⁴ blocs (~148 exaoctets) — inexistant en pratique.
  • L'échec de LOKI97 à l'évaluation AES était un jugement de performance, pas de sécurité. Le comité AES a cité des performances logicielles inférieures à Rijndael et Twofish. Aucune faiblesse cryptographique n'a été signalée.
  • Utilisez AES-128-GCM ou AES-256-GCM pour tout nouveau système. LOKI97 convient pour déchiffrer des données d'archives LOKI97 existantes et pour la recherche académique.

Cas d'utilisation

  • Recherche académique : construction S-box GF(2¹³) et programme de clé auto-référenciel offrent un objet d'étude unique pour la conception algébrique de chiffrements
  • Compatibilité systèmes australiens hérités : données chiffrées LOKI97 des années 1990 dans les systèmes gouvernementaux ou de défense australiens
  • Étude comparative des candidats AES : avec Serpent, Twofish, RC6 et MARS pour comprendre les compromis de conception évalués par le NIST
  • Conformité non-AES : organisations nécessitant un chiffrement exclusivement non-AES avec une analyse cryptographique documentée

Références

Menu Rapide

Aucun outil récent