Brevet FR2765056A1 — publié le 19981224

La présente invention concerne un procédé de chiffrage par blocs rapide ayant un algorithme de planifica- tion de clé. L'invention concerne également un support utili- sable par un ordinateur et sur lequel est mis en oeuvre un programme d'ordinateur pour coder des signaux audio en un flux de données en couches comportant une couche de base et un nombre prédéterminé de couches de renforcement. La Demande Coréenne 1997-26558, déposée le 23 Juin 1998 et sur laquelle est basée une revendication de priorité, est incorporée ici à titre de référence. DOMAINE DE L'INVENTION L'invention concerne un procédé de chiffrage de données et un algorithme de chiffrage par blocs rapide sécu- risé contre une analyse cryptographique différentielle, une analyse cryptographique linéaire et une analyse cryptographi- que différentielle d'ordre plus élevé. Plus particulièrement, l'algorithme peut être mis en oeuvre facilement et exécuté rapidement comparativement aux algorithmes de chiffrage par blocs conventionnels. DESCRIPTION DE LA TECHNOLOGIE CONCERNEE Les algorithmes de chiffrage conventionnels sont conçus intuitivement ou par l'expérience pratique d'un inven- teur. Par suite, beaucoup de tests en marche sur le terrain peuvent être nécessaires pour assurer la sécurité de l'algo- rithme de chiffrage. Un algorithme de chiffrage par blocs courant est basé sur le DES qui est adopté comme le Standard de Traite- ment de Données des Etats-Unis 46 (FIPS PUB46) par l'Office de Standardisation des Etats-Unis. Le DES est un algorithme de chiffrage par blocs qui chiffre des données en blocs de 64 bits. Un bloc de 64 bits de texte en clair sert d'en- trée à une extrémité de l'algorithme, et un bloc de 64 bits de texte chiffré est fourni en sortie par l'autre extrémité. Le DES est donc un algorithme symétrique. Le même algorithme et la même clé sont utilisés à la fois pour le chiffrage et le déchiffrage, sauf en ce qui concerne des différences mineures dans la planification de clé. La longueur de clé est de 56 bits. Cependant, la clé est généralement exprimée sous la forme d'un nombre de 64 bits dans lequel 8 bits sont utilisés pour la vérification de pa- rité et sont donc ignorés pendant le chiffrage/déchiffrage. De plus, les bits de parité sont les bits les moins signifi- catifs des octets de clé. La clé peut être un nombre de 56 bits quelconque et peut être changée à tout moment. Plusieurs nombres sont considérés comme des clés faibles, mais ces clés faibles sont facilement évitées car toute la sécurité se si- tue à l'intérieur de la clé. A son niveau le plus simple, un algorithme n'est rien de plus qu'une combinaison des deux techniques de chif- frage de base, c'est à dire la confusion et la diffusion. Le bloc de construction fondamental du DES est une combinaison unique de ces techniques, c'est à dire une substitution sui- vie d'une permutation dans le texte, basée sur la clé, qu'on appelle couramment un tour. Le DES comporte 16 tours. Il applique la même combinaison de techniques 16 fois sur un bloc de texte en clair. L'algorithme DES n'utilise que des opérations arithmé- tiques et logiques standards sur un maximum de 64 bits, de sorte qu'il est facilement mis en oeuvre dans la technologie de matériel de la fin des années 70. La nature répétitive de l'algorithme le rendait idéal pour une utilisation sur une puce à application spéciale. Les réalisations de logiciel initiales étaient grossières, mais les réalisations courantes ont été améliorées. Le DES fonctionne sur un bloc à 64 bits de texte en clair. Après une permutation initiale, le bloc est brisé en une moitié de droite et une moitié de gauche ayant chacune une longueur de 32 bits. On a ensuite 16 tours d'opérations identiques, appelées fonction f, dans lesquelles les données sont combinées à la clé. Après le seizième tour, la moitié de droite et la moitié de gauche sont réunies, puis une permuta- tion finale, inverse de la permutation initiale, termine l'algorithme. A chaque tour, les bits de clé sont déplacés, puis 48 bits sont choisis parmi les 56 bits de la clé. La moitié de droite des données est dilatée à 48 bits par une permutation d'expansion, combinée aux 48 bits d'une clé dé- placée et permutée par un OU EXCLUSIF, envoyée à travers 8 boîtes S produisant 32 nouveaux bits, et permutée de nouveau.5 Ces quatre opérations forment la fonction de tour f. La sor- tie de la fonction f est ensuite combinée à la moitié de gau- che par un autre OU EXCLUSIF. Les résultats de ces opérations deviennent la nouvelle moitié de droite; et l'ancienne moi- tié de droite devient la nouvelle moitié de gauche. Les opé- rations sont répétées 16 fois pour former ainsi les 16 tours du DES. Sur la base d'une analyse cryptographique diffé- rentielle, d'une analyse cryptographique linéaire et d'une analyse cryptographique différentielle d'ordre plus élevé, le DES est attaquable en utilisant 247 textes de chiffrage choi- sis par analyse cryptographique différentielle, et en utili- sant 243 textes de chiffrage connus par analyse cryptographique linéaire. Beaucoup d'algorithmes de chiffrage ont été pro- posés pour traiter les analyses cryptographiques ci-dessus, et l'on en vient à penser que l'algorithme de chiffrage qui est résistant aux attaques ci-dessus (différentielles et li- néaires) doit être un algorithme sûr. Pour cette sécurité, c'est à dire pour une sécurité supplémentaire, on a développé un procédé pour construire un algorithme de chiffrage par les preuves théoriques et logiques de la résistance de l'algo- rithme aux analyses cryptographiques différentielles et li- néaire. Cependant, ce procédé d'analyse cryptographique est très difficile. La première tentative pour résoudre ces problèmes était l'algorithme MISTY du Japon. Dans l'algorithme MISTY, des boîtes S constituées de 7 bits ou de 9 bits avaient une forme algébrique simple. Un inconvénient de l'algorithme MISTY est qu'une mise en oeuvre de celui-ci nécessite une structure récursive compliquée. RESUME DE L'INVENTION La présente invention a pour but de créer un algorithme de chiffrage par blocs rapide pour aborder le problème permet- tant de s'assurer de sa sécurité contre les attaques par ana- lyse cryptographique différentielles et par analyse crypto- graphique linéaire, et de plus contre l'analyse crypto- graphique différentielle d'ordre plus élevé. A cet effet, l'invention concerne un procédé de chiffrage par blocs rapide ayant un algorithme de planifica- tion de clé, caractérisé en ce qu'il comprend les étapes con- sistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en blocs de données de 2 N octets, le bloc étant di- visé en une première moitié et une seconde moitié; (b) exécuter une opération logique OU exclusive avec la se- conde moitié et une clé de tour de M octets; (c) diviser le résultat de l'étape (b) en L blocs de 8 bits, envoyer le premier bloc à une première boîte S, et envoyer chaque bloc restant à une boîte S correspondante, après l'avoir combiné aux données de sortie de la boîte S (L-l); (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape (d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié. Suivant une autre caractéristique de l'invention, le procédé consiste à: (a) briser des données de N octets en Mblocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256; (c) combiner le résultat de l'étape (b) et un nombre irra- tionnel avec une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128. L'invention concerne également un support utili- sable par un ordinateur et sur lequel est mis en oeuvre un programme d'ordinateur pour coder des signaux audio en un flux de données en couches comportant une couche de base et un nombre prédéterminé de couches de renforcement, caractéri- sé en ce que le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en bloc de données de 2N octets, le bloc étant divisé en une première moitié et une seconde moitié; (b) exécuter une opération logique OU exclusive avec la se- conde moitié et une clé de tour de M octets; (c) diviser le résultat de l'étape (b) en Lblocs de 8 bits, envoyer le premier bloc à une première boîte S et envoyer chaque bloc restant à une boîte S correspondante, après l'avoir combiné aux données de sortie provenant de la boîte S L-1; (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape(d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié. Suivant une autre caractéristique de l'invention, le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser des données de N octets en M blocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256; (c) combiner le résultat de l'étape (b) et un nombre irra- tionnel, par une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128. La présente invention, appelée ici SNAKE, a une fonction de tour qui diffère des algorithmes de chiffrage par blocs conventionnels. La fonction de tour de SNAKE a une structure très simple qui comporte une opération logique de base (opérateur OU exclusif) et une opération de rotation à 8 bits (sauf pour les boîtes S auxquelles on demande d'avoir une non linéarité élevée pour leur sécurité), de manière à simplifier la forme de réalisation. Cependant, le SNAKE n'a pas la même structure récursive que l'algorithme MISTY, mais est au contraire structuré pour que le bloc de données de sortie d'une boîte S soit renvoyé en rétroaction à la boîte S suivante de gauche, et soit décalé de 8 bits vers la gauche. Cette structure donne une diffusion d'avalanche stricte aux données qui s'écoulent, de manière à abaisser la linéarité et l'uniformité différentielle de la fonction de tour. Dans la vérification de sa résistance à l'analyse cryptographique différentielle et linéaire, le principe selon l'invention de "Suite de différences" et de "Matrice différentielle fonda- mentale" a été développé et la motivation théorique a été établie à partir de celui-ci. On décrira maintenant le processus de planifica- tion de clé de SNAKE. Initialement, le processus est alimenté par une clé de semence aléatoire de 128 bits, et la clé de semence est brisée en quatre sous-blocs de 32 bits. Les sous- blocs passent par le processus illustré à la figure 2, avec un nombre d'or GN, via les trois opérations suivantes: opé- ration OU exclusive; addition de module 256; et rotation vers la gauche de 5 bits. Ces processus empêchent la récupé- ration de la clé du tour précédent, même si les clés des tours suivants sont trouvées. BREVE DESCRIPTION DES DESSINS La présente invention sera décrite ci-après de manière plus détaillée à l'aide de modes de réalisations re- présentés sur les dessins annexés dans lesquels: - la figure 1 illustre la structure de fonction de tour de la présente invention, qui constitue la partie de noyau principale de l'algorithme SNAKE. Les figures 2a et 2b illustrent le processus de planification de clé de la présente invention à partir des 128 bits de clé de semence pour la génération de clés de tour, la figure 2a illustrant la fonction SCROL devant être directement utilisée pour la génération de clé de tour prati- que de la figure 2b; et - la figure 3 illustre toute la structure de type Feistel de la présente invention. Bien que l'invention soit susceptible de diverses modifications et variantes de forme, des modes de réalisation spécifiques de celle-ci ont été représentés à titre d'exemple dans les dessins et seront décrits ici en détail. On compren-5 dra cependant que cela n'est pas destiné à limiter l'inven- tion aux formes particulières décrites, mais que le but est au contraire de couvrir toutes modifications, équivalences et variantes tombant dans l'esprit et le cadre de l'invention telle que définie par les revendications ci-jointes. DESCRIPTION DES MODES DE REALISATION PREFERENTIELS On crée un algorithme de chiffrage par blocs ra- pide qui est résistant contre une analyse cryptographique différentielle, une analyse cryptographique linéaire et une analyse cryptographique différentielle d'ordre plus élevé. Un mode de réalisation de l'algorithme de la pré- sente invention est appelé SNAKE et chiffre les données en blocs de 64 bits. Un bloc de 64 bits de texte en clair est introduit à l'entrée d'une extrémité de l'algorithme, et un bloc de 64 bits de texte chiffré est fourni en sortie à l'au- tre extrémité de l'algorithme. Le SNAKE est un algorithme sy- métrique, c'est à dire qu'on utilise le même algorithme et la même clé à la fois pour le chiffrage et pour le déchiffrage, sauf en ce qui concerne des différences mineures de planifi- cation de clé. La longueur de clé de semence est de 128 bits. Avant le chiffrage des données et le déchiffrage des données, les seize clés de tour à utiliser à chaque tour sont établies par un processus de planification de clé à partir de la se- mence de clé, comme cela sera décrit ci-après. (1) Planification de clé La clé de semence S de 128 bits est brisée en quatre blocs de 32 bits, par exemple: S S4lS3[S21SI, o la partie la moins significative du nombre en- tier de 128 bits est disposée et enchaînée en série à partir de la droite. Ainsi, Si et S2 sont respectivement la clé de premier tour et la clé de second tour. En se référant à la figure 1, le bloc 10 illustre un bloc de données d'entrée de 32 bits combiné (par un opéra- teur OU exclusif) à la clé de tour de 32 bits qui était pla- nifiée par le procédé de génération de clé sur la fonction de tour. Le bloc 20 illustre un bloc de données subdivisé de 8 bits des données d'entrée totales X de 32 bits provenant du bloc de données d'entrée de 32 bits. Le bloc 30 illustre un opérateur logique OU exclusif. Le bloc 40 illustre une boîte S de 256 x 8 qui est une fonction non linéaire des données d'entrée de 8 bits aux données de sortie de 8 bits. Le bloc illustre une rotation d'un octet (8 bits) des données en- chaînées de 32 bits provenant des blocs de sortie de 8 bits des boîtes S. Le bloc 60 illustre les données de sortie de 32 bits provenant de la fonction de tour. Pour la génération des clés de tour restantes, on introduit une fonction "SCROL" qui reçoit des données de 32 bits et fournit en sortie la même longueur de données. En se référant à la figure 2a, le bloc 70 illustre un bloc de don- nées d'entrée de 32 bits à la fonction, appelée SCROL, desti- née à la génération de clé de tour. Le bloc 80 illustre un bloc de données subdivisé de 8 bits provenant du bloc de don- nées d'entrée de 32 bits à la fonction SCROL. Le bloc 90 il- lustre un opérateur d'addition modulaire (mod.256) de 8 bits. Le bloc 100 illustre un opérateur logique OU exclusif. Le bloc 110 illustre le processus de combinaison (par un opéra- teur OU exclusif) avec le nombre irrationnel constant GN de 32 bits qui présente les mêmes caractéristiques que dans une séquence de bits aléatoires. Le bloc 120 illustre une rota- tion à gauche de 5 bits des données à 32 bits résultant de l'étape précédente. Le bloc 130 illustre les données de sor- tie finales de 32 bits provenant de la fonction SCROL. En ce qui concerne la figure 2b, le bloc 140 il- lustre la clé de semence S de 128 bits qui doit être brisée en sous- blocs de 32 bits Si, S2, S3 et S4, pour le processus de génération de clé de tour. Le bloc 150 illustre les blocs de clés de semence subdivisés à 32 bits qui sont obtenus à partir des clés de semence de 128 bits. Le bloc 160 illustre les clés de tour générées par le processus de génération de clé, Ki désignant la clé à 32 bits du ième tour. Si des données de 32 bits, X = X4IX31MX21X1, (Xi:8 bits) sont appliquées à l'entrée de SCROL, sa sortie, par exemple Y, peut être représentée par les équations suivan- tes TI = X1 +X4; (8-bits) T2 = X2eDTI; (8-bits) T3 = X3+T2; (8-bits) T4 = X4ëT3; (8-bits) T = T4lT3IT21TI; (32-bits) Y = (Te0xb7c15163) dans lesquelles la notation "Il" désigne l'enchaî- nement en série, "G" représente l'opérateur OU exclusif, "+" représente l'addition modulaire 256, et (*) Enfin, en utilisant cette fonction SCROL, on gé- nère les clés de tour restantes Ki, i=3, 4,... 16, telles que par exemple K3=SCROL(S2)eS4; K4=SCROL(S1)S3; K(i+I)=SCROL(Ki)oK(i-l);i=4,5..,15. (2) Boîtes S. Fonction de Tour Les boîtes S sont utilisées dans la fonction de tour F. Il y a quatre boîtes S dans notre exemple de réa- lisation SNAKE, et il est recommandé que les boîtes S:Sl, S2, S3, S4 aient les deux types suivants: TYPE1: S1 =S2=S3=S4= f(x); TYPE2: S1=S3= f(x), S2=S4=g(x); o f(x)=x-l, inversion algébrique du Domaine de Galois GF (256), et g(x)=h(h(x)):auto-composition de la fonc- tion exposant modulaire de base 45, c'est à dire h(x)=45*mod257. De plus, dans un exemple de réalisation, on uti- lise TYPE1 pour une mise en oeuvre du matériel et du logi- ciel, et l'on utilise TYPE2 pour une mise en oeuvre du logiciel. TYPEl peut être réalisé dans une forme de circuit pour une puce à un niveau de porte, au lieu d'une utilisation de tables de mémoires mortes (ROM). On décrira maintenant la fonction de tour. Si les données de 32 bits X G Ki=X4 Il X3 Il X2 Il X1 (Xi:sous-blocs de 8 bits qui sont enchaînés dans l'ordre du bloc le moins significatif à partir de la partie la plus à droite, Ki est la clé du ième tour) sont appliquées à l'entrée de la fonc- tion de tour F, sa sortie Y=Y4 | Y3 Il Y2 Il Y1 est alors don- née par les formules suivantes: Yl=Sl (Xl); Y2=S2 (X2eYl); Y3=S3 (X3eY2); Y4=S4 (X4oeY3): Y =Y41Y3IY2IY1. En se référant à la figure 3, le bloc 170 illus- tre la moitié de gauche à 32 bits du texte en clair à 64 bits d'entrée dans l'algorithme de chiffrage SNAKE. Le bloc 180 illustre la moitié de droite à 32 bits du texte en clair à 64 bits d'entrée dans l'algorithme de chiffrage SNAKE. Le bloc 190 illustre la fonction de tour de l'algorithme SNAKE dont la structure a été décrite à la figure 1. Le bloc 200 illus- tre une clé de tour générée par le processus de planification de clé de SNAKE représenté aux figures 2a et 2b. Le bloc 210 illustre un opérateur logique OU exclusif. Le bloc 220 illus- tre la moitié de gauche à 32 bits des données de sortie fina- les à 64 bits telles que les données chiffrées ou le texte chiffré, par le processus à 16 tours du SNAKE qui exécute un processus à un seul tour répété 16 fois. Le bloc 230 illustre la moitié de droite à 32 bits des données de sortie finales à 64 bits telles que les données chiffrées ou le texte chiffré, par le processus à 16 tours du SNAKE qui exécute un proces- sus à un seul tour répété 16 fois. il En résumé, le SNAKE fonctionne sur un bloc de texte en clair de 64 bits. Le bloc est brisé en une moitié de droite et une moitié de gauche ayant chacune une longueur de 32 bits. Il y a ensuite 16 tours d'opérations identiques, en se référant à la figure 3, qu'on appelle fonction de tour F dans laquelle les données sont combinées avec la clé par une opération de OU-EXCLUSIF. Après le seizième tour, les moitiés de droite et de gauche sont réunies, et l'algorithme est ter- miné. A chaque tour, la moitié de droite (32 bits) des don- nées de sortie du tour précédent, est combinée à sa clé de tour (par un OU-EXCLUSIF) et les données résultantes sont brisées en quatre blocs de données de 8 bits X1, X2, X3, X4. Les blocs de données forment les données d'entrée de la fonction de tour F précédemment décrite. Là encore, ces données de sortie de F sont combinées au bloc de données de la moitié de gauche à 32 bits, par un OU-EXCLUSIF, pour for- mer le bloc de données de la moitié de droite du tour suivant ou nouveau tour (l'ancienne moitié de droite devient la nou- velle moitié de gauche). Ces opérations sont répétées 16 fois pour former ainsi les 16 tours du SNAKE. Si Bj est le résultat de la jème itération, si Lj et Rj sont les moitiés de gauche et de droite de Bj, si Kj est la clé pour le tour j, et si F est la fonction de tour précédemment décrite, un tour se présente alors sous la forme: %=Fl -= L-,1 oeF(R,. eKj); Dans la présente invention, la sécurité (résistance) du SNAKE pourrait se déduire de la considération de ce qu'on fait apparaître la différence de données de sor- tie de chaque boîte S si l'on donne, comme paramètres varia- bles, une paire de valeurs de données ayant une différence (différence d'entrée), et si l'on construit un système li- néaire d'équations des paramètres de variables de différence pour obtenir sa matrice de coefficients, qu'on appelle "Matrice Différentielle Transitoire". En formant ou en trou- vant certaines conditions pour limiter le chiffrage à son "rang", on peut en déduire la structure de la fonction de tour du SNAKE. La preuve de la sécurité a été décrite dans le Chang-hyi Lee et Young-tae Cha "The Block Cipher:SNAKE with Provable Resistance against-DC and LC Attacks", JW-lSC, (1997), incorporé ici à titre de référence. La vitesse de traitement de la présente invention est plus rapide que celle du DES. Dans la simulation du SNAKE, mise en oeuvre dans le langage C++ sur un PC PENTIUM MHz, le processus de chiffrage de la présente invention fonctionne à 16 Mbps, tandis que le DES fonctionne à 10.4 Mbps sur la même machine. L'invention peut être mise en oeuvre dans un or- dinateur numérique à applications générales qui passe un pro- gramme ou des segments de programme provenant d'un support lisible par un ordinateur ou utilisable par un ordinateur, un tel support comprenant, mais sans que cela soit limitatif, des supports de stockage magnétiques (par exemple des ROM, des disques souples, des disques durs, etc), des supports li- sibles optiquement (par exemple des CD-ROM, des DVD, etc), et des ondes porteuses (par exemple des transmissions sur le ré- seau Internet). Un programme fonctionnel, un code et des seg- ments de code, utilisés pour mettre en oeuvre la présente invention, peuvent être obtenus par un programmeur expérimen- té à partir de la description de l'invention contenue ici. R E V E N D I C A T IONS 1 ) Procédé de chiffrage rapide par blocs ayant un algorithme de planification de clé, caractérisé en ce qu' il comprend les étapes consistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en blocs de données de 2 N octets, le bloc étant di- visé en une première moitié et une seconde moitié; (b) exécuter une opération logique OU exclusive avec la se- conde moitié et une clé de tour de M-octets; (c) diviser le résultat de l'étape (b) en L blocs de 8 bits, envoyer le premier bloc à une première boîte S, et envoyer chaque bloc restant à une boîte S correspondante, après l'avoir combiné aux données de sortie de la boîte S (L-1); (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape (d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié. 2 ) Procédé de chiffrage par blocs rapide ayant un algorithme de planification de clé, caractérisé en ce qu'il consiste à: (a) briser des données de N octets en M blocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256; (c) combiner le résultat de l'étape (b) et un nombre irra- tionnel avec une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128. 3 ) Support utilisable par un ordinateur et sur lequel est mis en oeuvre un programme d'ordinateur pour coder des si- gnaux audio en un flux de données en couches comportant une couche de base et un nombre prédéterminé de couches de ren- forcement, caractérisé en ce que le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser un bloc de chiffrage souple en divisant un flux de données en bloc de données de 2N octets, le bloc étant divisé en une première moitié et une seconde moitié; (b) exécuter une opération logique OU exclusive avec la se- conde moitié et une clé de tour de M octets; (c) diviser le résultat de l'étape (b) en L blocs de 8 bits, envoyer le premier bloc à une première boîte S et envoyer chaque bloc restant à une boîte S correspondante, apres l'avoir combiné aux données de sortie provenant de la boîte S 1i5 L-1; (d) faire tourner une sortie de chacune des boîtes S de 8 bits vers la gauche; et (e) envoyer le résultat de l'étape (d) à une nouvelle seconde moitié, et l'ancienne seconde moitié à une nouvelle première moitié. 4 ) Support utilisable par un ordinateur et sur lequel est mis en oeuvre un programme d'ordinateur pour coder des si- gnaux audio en un flux de données en couches comportant une couche de base et un nombre prédéterminé de couches de ren- forcement, caractérisé en ce que le programme d'ordinateur peut être exécuté par une machine pour effectuer les étapes consistant à: (a) briser des données de N octets en M blocs de 8 bits; (b) combiner l'un quelconque de deux blocs adjacents par l'une ou l'autre d'une opération logique OU exclusive et d'une addition modulaire de 256; (c) combiner le résultat de l'étape (b) et un nombre irra- tionnel, par une opération de OU EXCLUSIF; (d) exécuter sur le résultat de l'étape (c) une opération de rotation vers la gauche de 5 bits; et (e) générer des clés de tour à partir d'une clé de semence de 128.