FR 2582174 A1 19861121 FR 8507401 A 19850515 82174 DISPOSITIF DE CHIFFREMENT PAR SUBSTITUTIONS-PERMUTATIONS La présente invention concerne un dispositif de chiffrement, apte à transformer un mot binaire de "n" bits en un autre mot binaire de "n" bits, par la méthode connue, dite de substitutions- permutations. Cette méthode consiste à effectuer, à partir du mot d'entrée, une suite d'opérations de substitution, consistant chacune à remplacer, sous le contrôle d'une clé, un mot de "m" bits (en général des sous-mots du mot d'entrée) par un autre mot de "m" bits, et de permutations qui consistent à permuter, suivant un schéma prédé- fini, les bits d'un mot afin de former un nouveau mot de longueur égale. Un exemple d'un tel système de chiffrement est constitué par le système connu sous l'appellation anglo-saxonne "Data Encryption Standard". Un inconvénient d'un tel système consiste dans le fait que la loi de substitution est fixée une fois pour toutes, et que tous les utilisateurs d'un tel système utilisent donc le même algorithme de chiffrement, le seul paramètre variable d'un utilisateur à l'autre étant la clé. Le fait que les lois de substitution soient fixes et connues présente deux types de vulnérabilité, la première vulnérabilité est que la connaissance de la clé suffit à déchiffrer un message, la seconde est que les substitutions étant fixes et non évolutives, il n'y a pas de limite de temps pour trouver, par des méthodes d'analyse mathématique ou statistique, d'éventuelles faiblesses facilitant le déchiffrement. Par ailleurs les dispositifs de chiffrement existant actuel- lement s'appliquent à des mots et à des clés de longueur bien déterminée, mais manquent de souplesse pour une utilisation avec des mots ou avec des clés de longueur différente. La présente invention a pour objet un dispositif de chiffrement présentant une plus grande souplesse d'utilisation, tant vis-à-vis de ses possibilités d'application (incluant notamment une personna- lisation de l'algorithme de chiffrement) que vis-à-vis du format des 82174 mots auquel il s'applique. La présente invention a également pour objet un dispositif dont la structure est adaptable en fonction de critères choisis tels que rapidité ou compacité. La présente invention a également pour objet un dispositif de chiffrement qui est en même temps reversible, c'est-à-dire utili- sable sans aucune modification à l'émission comme à la réception. La présente invention a pour objet un dispositif de chif- frement, apte à transformer un mot binaire en un autre mot binaire par une suite de substitutions et de permutations, sous la commande d'une clé, essentiellement caractérisé en ce que les opérations de substitution sont réalisées au moyen d'une ou plusieurs mémoires programmables ou reprogrammables adressées par tout ou partie du mot devant subir une substitution, et par tout ou partie de la clé, ou de parties de la clé appliquées successivement. Les objets et caractéristiques de la présente invention appa- raîtront plus clairement à la lecture de la description suivante d'exemples de réalisation, faite en relation avec les dessins ci- annexés dans lesquels: - la figure 1 est un schéma synoptique d'un dispositif de chiffrement suivant l'invention; - la figure 2 est une variante de ce schéma; - la figure 3 est un schéma de réalisation correspondant au schéma synoptique de la figure 2; - la figure 4 est un diagramme explicatif de l'opération de substi- tution; - la figure 5 montre le schéma utilisé pour réaliser l'opération de permutation; - la figure 6 montre le schéma utilisé pour réaliser les opérations de permutation initiale et finale; - la figure 7 représente schématiquement un exemple d'application d'un dispositif suivant l'invention; - la figure 8 est un schéma d'une autre variante de réalisation du dispositif. 82174 A titre d'exemple la description qui suit est faite pour un mot d'entrée de 32 bits et pour une clé de 64 bits. Mais il faut souligner que le principe de l'invention est général et indépendant des valeurs numériques choisies. Pour des mots d'entrée de longueur plus impor- tante, le dispositif de chiffrement se déduirait de celui décrit ci- après par adjonction de dispositifs identiques. Pour des mots d'entrée plus courts, le dispositif décrit ci-après est directement utilisable, par un simple choix particulier des substitutions, comme on le verra ultérieurement. De même, pour des longueurs de clé différentes, le dispositif de chiffrement se déduirait de celui décrit ci-après par une modification mineure du séquenceur. De même le principe général est indépendant de la taille des mémoires de substitution, ou du découpage éventuel du mot d'entrée et de la clé en plusieurs tronçons d'éléments binaires, l'ensemble de ces paramètres déterminant en particulier les conditions d'appli- cation du mot devant subir une substitution, et de la clé, aux mémoires de substitution, le nombre de mémoires de substitution, ou le nombre de suites de substitutions-permutations à effectuer suc- cessivement. Le principe général est décrit à la figure 1. Le mot d'entrée de 32 bits est découpé en quatre tronçons de 8 bits. Le mot subit d'abord une permutation initiale TO dans un circuit de permutation initiale 1 (décrit ultérieurement) qui a pour rôle de permettre l'adaptation du dispositif à des longueurs de mots d'entrée infé- rieures. Puis chaque bloc de 8 bits subit une substitution, dans une mémoire dite de substitution (2, 3, 4, 5) qui le transforme en un autre mot de 8 bits. Cette substitution est assurée par une table aléatoire, comme on le verra plus loin, et est reversible, c'est-à-dire qu' à tout mot de 8 bits de l'ensemble de 256 mots de 8 bits présentés à l'entrée, correspond un et un seul mot de 8 bits en sortie et qu' à deux mots différents à l'entrée correspondent des mots substitués en sortie qui sont différents. Le choix de tables aléatoires n'est pas une absolue nécessité mais correspond à une meilleure qualité du chiffrement. Les substitutions pour chaque bloc de 8 bits 82174 sont différentes et contrôlées d'une part par une partie Ki telle que définie ci-après de la clé proprement dite, d'autre part par des bits de contrôle (C0, C1) qui constituent en fait un complément de clé ou clé auxiliaire. La clé de 64 bits est emmagasinée dans une mémoire (7), dite mémoire de clé, sous la forme de 16 tronçons de 4 bits qui sont notes: K0 =k0 k1 k2 k3 K1 k4 k kk6k7 avecki = ou 1 ! K15 = k60 k61 k62 k63 Les substitutions appliquées aux différents blocs de 8 bits sont des bijections de l'ensemble à 256 éléments de la forme pn = ao al '. '7 (ai = 0 ou 1; 0 et 1111). A partir d'un bloc d'entrée pn de 8 bits, on peut donc obtenir un bloc de sortie de 8 bits Cn = slKj pn. On appelle s(Kj) la substitution inverse de siKj9 c'est-à-dire la bijection qui est définie par: s(-l)i pn = sKj x Cn Les éléments ainsi définis apparaissent sur le diagramme explicatif de la figure 4. L'ensemble de quatre substitutions sK, sKj+l, sKj+2 54Kj+3 telles que définies ci-dessus constitue une substitution globale d'un mot de 32 bits par un autre mot de 32 bits. Cette dernière substi- tution est notée Sk et correspond à l'utilisation de 16 bits de clés (Kj, Kj+l, Kj+2, Kj+3). Si la clé de 64 bits est divisée en quatre tronçons de 16 bits, on peut donc noter les substitutions corres- pondantes Skl, Sk2' Sk3, Sk4. Après avoir été transformé par substitution, le mot subit une 82174 nouvelle permutation T1 (différente de la permutation initiale T0) dans un circuit de permutation 6 (décrit ultérieurement) c'est-à-dire un échange de la place de ses bits, de façon à obtenir un nouveau mot de 32 bits. Cette permutation est homogène, c'est-à-dire que les bits issus de chaque octet sont répartis uniformément sur les quatre octets après permutation. Cette permutation est également -1 réciproque, c'est-à-dire que l'on a T1 = T_. Le choix d'une permu- tation homogène n'est pas obligatoire mais permet d'obtenir une meilleure qualité du chiffrement, de même que le choix de la réciprocité n'est pas obligatoire mais permet d'utiliser le même dispositif par le chiffrement et le déchiffrement. Sur le mot obtenu après permutation est effectuée une nou- velle substitution avec un tronçon différent de 16 bits de clé, puis une nouvelle permutation T1 et ainsi de suite. Un séquenceur, non représenté sur la figure, permet de con- trôler le déroulement des opérations et de choisir pour chaque opération de substitution le tronçon de clé de 16 bits correspondant. Lorsque les quatre tronçons de clés de 16 bits chacun: K'0 = (K0, K1, K2, K3), K'1 = (K4, K5, K6, K7), K'2 =(K8, K9, K10, K1l) et K'3 = (K12, K13, K14, K15) ont été utilisés une fois, dans une première suite de quatre substitutions-permutations, ils sont à nouveau utilisés une seconde fois dans une deuxième suite de quatre substitutions-permutations, pour accroître la diffusion des bits de clé dans le mot chiffré, et dans un ordre inverse et symétrique, ce qui permet d'utiliser le même séquencement de tronçons de clé pour réaliser l'opération de chiffrement ou son inverse, sans avoir besoin d'inverser ce séquencement. A l'issue de la dernière substitution, a lieu une permutation finale T0 identique à la permutation initiale 1 et ayant la même fonction, dans un circuit de permutation finale 8. Le mot de 32 bits obtenu à l'issue de cette permutation constitue le mot de sortie C du dispositif de chiffrement. L'ensemble des opérations, ou algorithme de chiffrement, se présente donc comme une suite de permutations et de substitutions, et on peut écrire: 82174 C = TO 5ki T1 sk2 T1 Sk3 T1 Sk4 T1 Sk4 T1 Sk3 T1 Sk2 T1 Skl T0 P D'après cette écriture, le mot d'entrée de 32 bits P subit d'abord la permutation T0, puis la substitution Ski puis la permu- tation T1, puis la substitution 5k2 et ainsi de suite jusqu'à la permutation finale T0. Le mot final obtenu est le mot C. L'opération inverse est obtenue en faisant l'opération inverse, c'est-à-dire: P - 1T S-1 TS-1 T -1 -l -Tl -7' l _T -1T P =TOSkT Sk2 TI Sk3TI Sk4Tî Sk4TI Sk3Tî Sk2 T1 kl 0 En effet, l'application successive de deux permutations To ou - de deux permutations T1 donne l'opération identité et il en est de même de Ski appliquée après Ski. L'utilisation de mémoires pour le stockage des tables de substitution, et notamment de mémoires reprogrammables à 32 kilo octets, permet de stocker non seulement les seize tables de substi- tutions par octet nécessaires pour mettre en oeuvre, par octet, l'algorithme de chiffrement, mais aussi les tables de substitution inverse nécessaires pour mettre en oeuvre l'algorithme inverse (le choix entre algorithme et algorithme inverse s'effectuant par l'intermédiaire d'un bit de contrôle C0) et permet également de stocker plusieurs jeux de tables de substitution, par exemple quatre dans l'exemple considéré (le choix d'un ensemble donné s'effectuant par l'intermédiaire de bits de contrôle C1, au nombre de deux dans l'exemple considéré). On peut citer à titre d'exemple deux cas particulièrement intéressants d'utilisation des bits de contrôle C1. Un premier exemple est l'utilisation du dispositif suivant un mode commun MC, tout en gardant l'utilisation d'un mode personnel MP. Cet exemple est illustré sur la figure 7. Soient A et B deux utilisateurs du même dispositif, chaque utilisateur étant constitué de deux ou plusieurs éléments, respecti- vement a et a', b et b' entre lesquels s'effectuent des échanges d'information. Si ces utilisateurs sont susceptibles de travailler un jour en commun, ils constituent ensemble un jeu commun "mc" de tables de substitution. Chacun complète ses mémoires de substi- 82174 tution avec un jeu qui lui est propre, respectivement "mpl" et "mp2". En temps normal, chaque utilisateur gère sa propre clé, et aucune information ne peut s'échanger entre les éléments de A et les éléments de B. Si une décision d'échange est prise, les deux utilisateurs pourront dialoguer en utilisant la même clé et en sélectionnant, à l'aide du bit de contrôle C1, le jeu commun de tables de substitution. Bien qu'utilisant la clé commune, chaque utilisateur peut cependant conserver des échanges secrets, en uti- lisant alors son propre jeu de tables, sur simple commutation du bit de contrôle C 1. Un autre exemple consiste à faire évoluer dans le temps le contenu des mémoires de substitution, permettant ainsi de faire évoluer de façon permanente l'algorithme et rendant nettement plus difficile la tâche d'un éventuel adversaire. En effet, la possession de l'algorithme et de la clé est nécessaire à l'adversaire pour pouvoir déchiffrer les échanges d'information. En général, l'algorithme est fixe et connu, ou tout au moins est susceptible de l'être au bout d'un temps plus ou moins long. Il suffit alors à l'adversaire d'obtenir la clé en usage à un instant déterminé, ce qui présente d'autant plus de possibilités que sa diffusion est plus générale. Si l'algorithme évolue dans le temps, la difficulté s'accroîit. Dans cette optique, la possibilité de sélectionner un autre jeu de mémoires de substitution peut être utilisée pour masquer les périodes transitoires de changement de contenu du jeu précé- demment utilisé, en particulier en présence de nombreux utili- sateurs. La méthode consiste alors à travailler alternativement avec deux jeux de tables. Un premier jeu est le jeu en usage, le second jeu est le jeu en cours de modification. Lorsque tous les équipements ont été modifiés, en change le rôle respectif des jeux de tables. Le schéma synoptique représenté sur la figure 2 ne diffère de celui représenté sur la figure I que par le fait que le système est rebouclé sur lui-même, les mots obtenus après les différentes permutations se présentant alors successivement à l'entrée d'un unique ensemble de quatre mémoires de substitution pour y subir les 82174 différentes substitutions, et les différents tronçons de clé étant alors successivement appliqués à ces mémoires dans l'ordre exposé précédemment. Ce schéma a l'avantage de présenter une plus grande compacité, le schéma précédent ayant l'avantage d'une plus grande rapidité. Sur la figure 3 on a représenté un schéma de réalisation correspondant au schéma synoptique de la figure 2. Ce schéma est limité au coeur du système; en particulier n'y figurent ni le séquenceur qui permet d'ordonner la succession des opérations effectuées, ni l'adressage des mémoires de clé et des mémoires de mots; ces éléments se déduisent cependant de la description. Le système comprend tout d'abord une mémoire de mot (9) reliée à une ligne de donnée (10) de 8 bits, mémoire dans laquelle on a chargé précédemment le mot de 32 bits à convertir. Le système comprend également une mémoire de clé (7) reliée à la même ligne de donnée (10) et dans laquelle la clé a été chargée. Les mémoires de mots et de clé sont représentées comme deux éléments différents mais peuvent être regroupées dans le même composant. Dans un premier temps, et sous contrôle d'un séquenceur (non représenté), le mot à chiffrer est chargé, par sous-blocs de 8 bits, dans des mémoires tampons communément appelées "latch" (11, 12, 13, 14). Ensuite le mot de 32 bits subit la permutation initiale TO dans le circuit 1. Cette permutation est réalisée par câblage suivant le schéma de la figure 6 qui sera décrit ultérieurement. Les quatre sous-blocs de 8 bits issus de cette permutation chargent une deuxième série de quatre mémoires-tampons (16, 17, 18, 19). Pendant ce temps, le séquenceur a chargé le premier tronçon K'0 de 16 bits de clé (K0, K1, K2, K3) de la façon suivante: le premier octet de la clé (K0, K1) a été chargé dans une mémoire tampon 20 et le second octet de la clé (K2, K3) a été chargé dans une mémoire tampon 21. Les quatre premiers bits K0 de la clé sont appliqués sur la mémoire de substitution 2, les quatre suivants K, sur la mémoire de substitution 3, les quatre suivants K2 sur la mémoire de substitution 4, et les quatre suivants K3 sur la mémoire de substitution 5. Les mémoires de substitution 2, 3, 4, 5 sont à titre d'exemple des mémoires reprogrammables de capacité 32 K octets. Les 15 bits d'adresse de ces mémoires de substitution sont constitués par les 8 bits du mot d'entrée, les 4 bits de la partie de la clé Ki qui s'y applique et 3 bits de contrôle C0 et C1, obtenus respectivement sur deux lignes 26 et 27. Un des bits de contrôle C0 est réservé, comme on l'a vu, à la sélection entre l'algorithme de chiffrement et son inverse. Les deux autres bits de contrôle C1 permettent de choisir un jeu de tables parmi quatre disponibles. Le tirage du contenu des tables de substitution fait l'objet d'un développement ultérieur. Les mots de 8 bits issus des tables de substitutions et regroupés en un mot de 32 bits subissent ensuite une permutation dans le circuit 6, par câblage conformément à la figure 5 décrite ultérieurement. Le mot permuté est à nouveau chargé dans les mémoires tampon 16, 17, 18, 19. Le tronçon suivant, K'1, de 16 bits de clé (K4, K5, K6, K7) est alors chargé dans les mémoires tampon 20 (pour ce qui est du premier octet K4, K5) et 21 (pour ce qui est du second octet K6, K7). Puis les bits K4 sont appliqués à la mémoire de substitution 2 et ainsi de suite jusqu'aux bits K7 qui sont appliqués à la mémoire de substitution 5. Après une nouvelle substitution sous le contrôle de ces bits de clé, une nouvelle permutation a lieu, et ainsi de suite. Après application des bits de clés K12 à K15 et permutation, une nouvelle substitution a lieu avec à nouveau les bits K12 à KI5, suivie d'une permutation-substitution avec les bits K8 à K11 et ainsi de suite. Lorsque les bits de clé K0 à K3 ont été appliqués, le mot résultant subit une permutation finale dans un circuit 8 conforme à la figure 3, puis est chargé dans des mémoires-tampon de sortie 30, 31, 32, 33. Ces mémoirestampon sont reliées au bus de donnée 10, ce qui permet le chargement de la mémoire de mots 9 par le mot ainsi obtenu. Cette mémoire peut ensuite être lue via le même bus de donnée (10) par un système extérieur à ce dispositif. On décrit maintenant le choix du contenu des tables de substitution. Dans le cas général, les tables de substitution sont choisies de façon aléatoire sur l'ensemble des 256 octets possibles. Dans ce cas, la constitution d'une table se fait de la façon suivante. Pour le premier octet (valeur 0000 0000) on fait un tirage aléatoire d'un nombre parmi 256 de valeur comprise entre 0 et 255. La valeur binaire de ce nombre est l'octet à substituer à l'octet 0000 0000. Pour le second octet, on fait un tirage, aléatoire d'un nombre parmi les 255 restants, après élimination du résultat du premier tirage et ainsi de suite jusqu'au dernier octet (valeur 111 1111) auquel on fait correspondre le seul octet restant après élimination des 255 déjà tirés. La table inverse se déduit immédiatement de la table ainsi décrite en établissant les correspondances inverses. Chaque mémoire est chargée avec quatre jeux de seize tables et de leurs inverses. On notera qu'il existe 256! façon de choisir une table. Dans l'exemple de réalisation de la figure 3, o il y a quatre mémoires, chacune contenant 16 tables et leurs inverses (pour la même valeur des bits de contrôle), le jeu de tables contient donc 64 tables avec leurs inverses et la probabilité que deux utilisateurs tombent par hasard sur la même programmation est très faible puisqu'elle est de 1/(256!)64. On décrit maintenant le fonctionnement du dispositif pour permettre le chiffrement de mots de longueur inférieure. Un exemple appliqué à un mot de 28 bits permettra de comprendre immédiatement le fonctionnement. Dans une première opération effectuée hors du dispositif, le mot de 28 bits est complété à 32 bits par quatre zéros en position 29, 30, 31 et 32. Dans la permutation TO, les zéros se retrouvent en position 21, 22 et 31, 32 (voir figure 6). Le choix des tables de substitution des deux premières mémoires 2 et 3 se fait de la façon décrite au paragraphe précédent, 82174 I1 sans restriction. Pour les tables de substitutions des deux dernières mémoires, 4 et 5, la contrainte que l'on se fixe est de conserver les deux zéros à la même position. Pour ce faire les 256 mots d'entrée sont divisés en deux ensembles. Un premier sous-ensemble de 64 mots correspond aux mots ayant deux zéros aux positions 21 et 22, pour la troisième mémoire 31, et 32 pour la dernière. Un deuxième sous-ensemble correspond aux 192 mots restants. Les substitutions sont choisies de façon aléatoire mais en restant dans le sous-ensemble du mot présenté à l'entrée de la table. Pour deux zéros à l'entrée aux positions définies précé- demment, on retrouve donc toujours deux zéros à la sortie. La permutation Ti de la figure 5 conserve également la place de ces zéros (du fait de la conservation des bits de rang 21, 22 et 31, 32 par cette permutation), et ainsi de suite jusqu'à la dernière substitution. La permutation finale TO de la figure 3 rétablit les quatre zéros à leur position d'origine du fait du caractère reversible de cette opération. Il suffit alors, dans le système extérieur au dispositif, de ne retenir que les 28 premiers bits correspondant au mot chiffré. Le principe illustré par cet exemple s'applique sans difficulté à tous les mots dont la longueur est comprise entre 24 et 32 bits. On notera de même que le dispositif peut fonctionner sans modification sur plusieurs longueurs de mots différentes, l'utilisation de bits de contrôle permettant le choix d'un jeu de tables adapté à la longueur du mot. Des variantes évidentes peuvent être déduites pour une gamme de longueur de mots différentes en choisissant un dispositif avec des permutations adaptées à cette contrainte, et lors de la program- mation des mémoires de substitution, des jeux de tables adaptées à la longueur du mot à chiffrer. Cependant, on notera que la permu- tation T1 doit être le plus homogène possible, pour permettre une meilleure diffusion de l'information. En effet, lorsque le mot d'entrée est découpé en plusieurs 82174 groupes d'éléments binaires sur lesquels sont ensuite effectuées des opérations de substitution distinctes, la permutation T1 doit être le plus homogène possible, pour permettre une meilleure diffusion de l'information. Ainsi, si un bit change en entrée d'une mémoire de substitution, tous les bits de sortie de cette mémoire ont une probabilité identique de changer. Il faut alors que cette probabilité se retrouve le mieux répartie possible après permutation. Le schéma de la figure 5 correspond à une possibilité d'obtenir un tel résultat. Ce schéma est par ailleurs reversible, c'est-à-dire qu'à un bit de rang n en entrée correspond un bit de rang m en sortie, et inversement. Un autre exemple de réalisation, utilisant une seule mémoire de substitution est maintenant décrit. Il est illustré par la figure 8. Il diffère du montage précédent en ce sens que: - les mémoires de mots et de clés sont regroupées dans un même composant; - il n'y a pas de permutation initiale ni finale TO; - suivant le fonctionnement du séquenceur, on peut indifféremment commencer par une substitution ou par une permutation; - et surtout les substitutions se font successivement sur les dif- férents octets et non plus simultanément. Le fonctionnement est le suivant. Le mot en clair et les clés sont chargés à l'aide de la ligne de données 40 dans la mémoire 41. Puis le mot est chargé dans les quatre mémoires-tampon 42 à 45, subit la permutation T1 dans un circuit de permutation 46 et est emmagasiné dans quatre mémoires-tampon 47 à 50. Le premier tronçon de clé K0 est chargé dans une mémoire tampon 51. Le premier octet issu de la mémoire tampon 47 subit la substitution puis est stocké dans la mémoire tampon 42. Ensuite le deuxième tronçon de clé K1 est chargé dans la mémoire-tampon 51 et le deuxième octet issu de la mémoire-tampon 48 subit la substitution et est stocké dans la mémoire-tampon 43. La substitution partant sur le deuxième octet peut utiliser la même table que la substitution portant sur le premier octet, ou, 2 5 8 2 1 74 dans des variantes du dispositif, une table différente en utilisant des bits supplémentaires d'adresse de la mémoire de substitution 52 contrôlés par le séquenceur. Lorsque les quatre octets ont subi la substitution et sont chargés dans les mémoires-tampon 42 à 45, le mot de 32 bits ainsi obtenu subit à nouveau la permutation et ainsi de suite. Après la dernière permutation, les octets disponibles dans les mémoires-tampon 47 à 50 sont chargés dans la mémoire de mots 41. Bien que les principes de la présente invention aient été décrits cidessus en relation avec des exemples particuliers de réalisation, on comprendra clairement que ladite description est faite seulement à titre d'exemple et ne limite pas la portée de l'invention. Parmi les nombreuses variantes qui pourraient être apportées au dispositif ainsi décrit, sans sortir du cadre de la présente invention, on peut citer à titre d'exemple; - la possibilité de ne pas appliquer la clé directement aux mémoires de substitution mais après un traitement préalable; - la possibilité de changer l'ordre des opérations (permutations- substitutions au lieu de substitutions-permutations) ou d'effectuer certaines opérations (substitutions et/ou permutations) en plusieurs étapes; - la possibilité de faire un système intermédiaire entre la version bouclée de la figure 2 et la version éclatée de la figure I; - la possibilité d'effectuer un nombre quelconque de suites de substitutionspermutations, éventuellement non symétriques; - la possibilité de ne pas effectuer de permutation initiale et finale. De même la définition des moyens de réalisation des opé- rations de substitution suivant l'invention, peut recouvrir toutes les variantes possibles entre les cas "extrêmes" suivants: - réalisation de l'opération de substitution avec une seule mémoire, adressée par le mot à chiffrer et par la clé dans leur totalité; - réalisation de l'opération de substitution avec plusieurs mémoires, adressées respectivement par des parties du mot à chiffrer et par 82174 des parties de parties de la clé appliquées successivement, soit dans le cadre d'un système éclaté tel que celui de la figure 1, soit dans le cadre d'un système bouclé tel que celui de la figure 2. 82174 REVENDICATIONS I. Dispositif de chiffrement par substitutions-permutations apte à transformer un mot binaire (p) en un autre mot binaire (c) par une suite de substitutions et de permutations, sous la commande d'une clé (K), caractérisé en ce que les opérations de substitution sont réalisées au moyen d'une ou plusieurs mémoires programmables ou reprogrammables (2, 3, 4, 5) adressées par tout ou partie du mot devant subir une substitution, et par tout ou partie de la clé ou de parties de la clé appliquées successivement. 2. Dispositif selon la revendication 1, caractérisé en ce que les mémoires de substitution sont constituées en tables de substitution correspondant elles-mêmes chacune à une valeur donnée de la clé appliquée à cette mémoire. 3. Dispositif selon la revendication 2, caractérisé en ce que chaque mémoire de substitution comporte, pour une valeur donnée de la clé appliquée à cette mémoire, plusieurs tables de substitution, entre lesquelles le choix est assuré par un adressage supplémentaire au moyen d'une clé auxiliaire (C0, C1). 4. Dispositif selon la revendication 3, caractérisé en ce que chaque mémoire de substitution comporte notamment, pour une valeur donnée de la clé appliquée à cette mémoire, deux tables de substitution donnant l'une un algorithme de substitution, l'autre son inverse. 5. Dispositif selon l'une des revendications I à 4, caractérisé en ce qu'il comporte en outre des moyens pour permettre l'utili- sation du dispositif pour des mots de longueur inférieure à celle normalement prévue, en complétant ce mot avec des zéros et en assurant, au moyen d'une permutation initiale et d'une permutation finale (T0), une distribution de ces zéros sur des positions d'éléments 8217 binaires qui sont conservées par les opérations de permutation et de substitution. 6. Dispositif selon l'une des revendications 1 à 5, caractérisé en ce que la totalité de la clé est appliquée plusieurs fois, au cours de plusieurs suites successives de substitutions et de permutations. 7. Dispositif selon la revendication 6, caractérisé en ce que la suite résultante présente une symétrie. 8. Dispositif selon l'une des revendications I à 7, dans lequel les mots sont divisés en groupes d'éléments binaires, caractérisé en ce que l'opération de permutation est réalisée au moyen d'un câblage assurant une répartition homogène de l'ensemble des éléments binaires d'un groupe d'entrée sur l'ensemble des groupes de sortie. 9. Dispositif selon la revendication 8, caractérisé en ce que le schéma correspondant à ce câblage est reversible. 10. Dispositif selon l'une des revendications I à 9, caractérisé en ce que les mémoires de substitution sont chargées de façon aléatoire.