Brevet FR2825211A1 — publié le 20021129

La présente invention concerne un dispositif de chlttrement pour un réseau haut débit de télécommunications qui transmet des entités d'information d'un point d'accès à un autre, dispositif comportant : w au moins une borne d'accès d'entrée supportant lesdites entités à chiffrer en provenance d'utilisateurs ou d'un autre réseau, e au moins une borne de raccord de sortie pour émettre lesdites entités devenues chiffrées sur ledit réseau haut débit de télécommunications, e des moyens de reconnaître et de segmenter si nécessaire lesdites entités en paquets de taille fixe appelés cellules et de leur associer des identificateurs permettant de pointer les paramètres spécifiques de chaque entité et de chaque flot, e des moyens de réassembler si nécessaire lesdites entités à partir desdites cellules avant l'émission sur ledit réseau, e un bloc de cryptage de mots mettant en oeuvre un algorithme de chiffrement à clé secrète, * des moyens d'affectation des paramètres de chiffrement de chaque flot, . une horloge fournissant une base de temps et une date courante, * un circuit d'ordonnancement des mots desdites cellules desdites entités au travers du bloc de cryptage autorisant un mode d'opération de chiffrement dit à rétroaction et restaurant à la sortie dudit circuit l'ordre initial d'introduction desdites cellules à son entrée. D'une part la montée en débit des réseaux de télécommunications et la diversification des médiums de transmission (câble, fibre optique, laser aérien, liaison hertzienne terrestre ou satellite), d'autre part la malveillance et l'espionnage informatique, rendent nécessaires de nouvelles techniques de mise en oeuvre des algorithmes cryptographiques pour garantir la confidentialité et l'intégrité de données transmises à haute vitesse. Le cryptage rapide s'effectue traditionnellement par des algorithmes à clé secrète et selon des modes d'opération répertoriés depuis fort longtemps. Deux types de mode d'opération peuvent être distingués selon la présence ou non d'une rétroaction de la sortie de l'algorithme sur son entrée. L'expression la plus simple du type sans rétroaction (appelé Non-Feedback Mode ) est l'ECB (Electronic CodeBook) lequel opère un simple transcodage d'un mot en clair en un mot crypté. Ce mode ne permet pas d'obtenir une confidentialité suffisante car un mot en clair est toujours représenté par le même mot crypté et inversement. Le type à rétroaction (appelé Feedback Mode ) est donc préféré par les cryptographes car un chaînage est réalisé entre les mots. Le plus commun est le CBC (Cipher Block Chaining), qui réalise avant chiffrement une opération de XOR (OU exclusif) entre le mot en clair et le mot venant d'être crypté. Deux mots en clair identiques n'ont alors plus la même valeur cryptée, améliorant ainsi la sécurité. Les mots apparaissent chaînés ce qui permet de définir une entité d'information comme l'ensemble des mots participant à un même chaînage . En outre, le mode CBC est dit auto réparateur et se resynchronise automatiquement en cas de perte de mots dans le réseau contrairement à des modes d'opération sans rétroaction plus sophistiqués que l'ECB, comme le mode CTR (CounTeR). La taille du mot crypté est généralement de 64 ou 128 e. b. (éléments binaires ou bits dans la terminologie anglo-saxonne). Les algorithmes de chiffrement à clé secrète peuvent également être utilisés en rétroaction pour fabriquer une empreinte représentative d'une entité de données (usuellement appelée CAM ou Code d'Authentification de Message) afin de pouvoir vérifier que les informations transmises n'ont pas été modifiées par malveillance. La valeur du dernier mot crypté de l'entité constitue une excellente empreinte de celle-ci car, grâce au chaînage provoqué par la rétroaction, elle est dépendante de chacun des mots de l'entité et peut donc servir de code d'authentification. Le lecteur pourra se reporter au livre Applied Cryptography-Second Edition de Bruce Schneier publié aux U. S. A par John Wiley & Sons et traduit en français par Laurent Viennot aux éditions International Thomson Publishing France pour avoir une présentation exhaustive de ces méthodes de chiffrement et d'authentification. Malheureusement, la rétroaction se montre inadaptée au cryptage à très haut débit car elle interdit la mise en oeuvre de la technique dite de pipeline, un mot devant être complètement crypté avant que le mot suivant commence à l'être. Rappelons que le pipeline consiste en une répartition du traitement sur différents étages montés en cascade, chacun d'eux étant chargé d'une sous partie de ce traitement et portant un mot différent. Une chaîne d'assemblage automobile donne une bonne image de la technique de pipeline. En notant Ds le débit maximal sans rétroaction et Npi le nombre d'étages du pipeline de cryptage, le débit maximal avec rétroaction noté Da s'exprime par : Da = Ds/Npi. (formule notée Fi). Le nombre d'étages du pipeline de cryptage varie communément de 8 à 32. La technique de pipeline n'est donc a priori d'aucune utilité lorsqu'un mode à rétroaction est souhaité. Ainsi, les dispositifs de cryptage et d'authentification disponibles offrent des débits limités à quelques centaines de millions d'e. b. par seconde. La formule exprimée cl-dessus pi) demeure incontoumaole lors au cmiirement a rétroaction, mais le dispositif objet de l'invention fait de sorte qu'elle n'apparaît plus limitative : - D'une part, on observe que l'entité à crypter est la trame de données dans certains protocoles comme IP (Internet Protocol), IEEE 802. x ou MPLS (Multi-Protocol Label Switching) : Plusieurs trames peuvent donc être cryptées en même temps car leurs chaînages sont indépendants. Ou bien l'entité à crypter est un flot continu de données, qui contrairement à la trame, n'a pas de début ni de fin autre que respectivement l'ouverture et la fermeture de la connexion supportant ledit flot. L'ATM (Asynchronous Transfer Mode) définit ainsi des connexions de niveau VC (Virtual Channel) ou VP (Virtual Path) qui apparaissent comme des tuyaux virtuels supportant des flots continus dont le débit unitaire est une fraction du conduit physique. Le lecteur pourra se reporter au livre Réseaux haut débit de Kofman & Gagnaire édité par INTER EDITIONS/France pour prendre connaissance des concepts de base des réseaux haut débit en général et IP, ATM et IEEE 802. x en particulier. - D'autre part selon le dispositif objet de l'invention, Npi entités de débit Da peuvent être cryptées en parallèle au travers d'un même pipeline de cryptage, le débit global avec rétroaction Dg s'exprimant alors : Dg = Npi * Da soit d'après FI : Dg = Npi * Ds/Npi c'est à dire Dg = Ds. Le débit global avec rétroaction apparaît donc identique au débit sans celle-ci dès lors qu'au moins Npi entités sont cryptées simultanément. Ainsi des trames IP issues d'un conduit d'un débit Ds peuvent être cryptés simultanément puis remises en ordre en sortie de sorte que ladite limitation de débit n'existe plus. De même, un nombre quelconque de flots ATM peuvent être cryptés sur un conduit de débit Ds dès lors que le débit unitaire d'un flot reste en moyenne inférieur à Da, ce qui en pratique s'avère être presque toujours le cas. Le calcul de codes d'authentification de message se trouve accéléré de la même manière et les mêmes bénéfices apportés par le dispositif objet de l'invention sont applicables à l'authentification. Pour la raison précitée, les dispositifs cryptographiques à rétroaction offrent généralement des performances médiocres. Néanmoins, certains équipements couplent différents circuits intégrés cryptographiques en parallèle pour obtenir des performances plus élevées. Selon le même principe, le brevet PCT WO 01/05086 A2 daté du 07/07/1999 de la société BROADCOM décrit un dispositif intégrant sur une même puce plusieurs moteurs cryptographiques activés en parallèle. Ces approches sont complexes et d'une efficacité limitée lorsque l'ordre d'introduction d'entités doit être respecté en sortie du dispositif. La présente invention propose un dispositif cryptographique simple et économique permettant un cryptage simultané de plusieurs entités au travers d'un pipeline de cryptage et convenant particulièrement bien à la réalisation d'un circuit intégré de type ASIC (Application Specific Integrated Circuit) ou de type FPGA (Field Programmable Gates Array). En outre le temps de traversée du dispositif est constant pour toute entité. Cette propriété s'avère intéressante lorsque des mécanismes de police contrôlent les paramètres de trafic des flots de données dans les réseaux où une qualité de service est demandée. Dans son principe, le dispositif de chiffrement se positionne en coupure d'un conduit haut débit à l'entrée d'un réseau non sécurisé, mais il peut également constituer un simple périphérique (cryptoprocesseur) d'un équipement de commutation de données et placé dans une topologie de réseau plus complexe. Pour cela, un tel dispositif de chiffrement est remarquable en ce que son circuit d'ordonnancement comporte : z un organe d'estampille par la date courante de chaque cellule à son entrée, * un calculateur d'espacement de cellules de même entité, . un organe d'agencement pour trouver une place disponible dans une table d'entrée à partir du résultat fourni par le calculateur d'espacement et pour y déposer la cellule courante, e une table d'entrée pour mémoriser la cellule courante à l'emplacement désigné par l'organe d'agencement, e une table d'allocation représentative de l'état d'occupation de ladite table d'entrée et organisée selon une projection homothétique d'une table sur l'autre, * une table contenant une variable d'espacement relative à chaque entité, a une table contenant une sous table relative à la clé secrète de chaque flot, une sous table relative au vecteur d'initialisation IV de chaque flot et une sous table relative au vecteur d'état SV de chaque entité, e un organe d'entrelacement des mots de différentes cellules transférées de la table d'entrée vers le pipeline de cryptage respectant un nouvel espacement temporel entre les mots de même cellule permettant un mode de chiffrement à rétroaction de chaque entité, a un organe de reconstitution des cellules dans une table de sortie à partir des mots issus du pipeline de cryptage en fonction de la date préalablement estampillée dans chaque cellule, a une table de sortie pour mémoriser les mots à l'emplacement désigné par l'organe de reconstitution et dans laquelle sont reconstituées les cellules, e un organe d'extraction de cellules de la table de sortie, laquelle est indexée par la date courante diminuée d'un laps de temps fixe de sorte que le délai de transit de toute cellule au travers du circuit d'ordonnancement demeure constant. La présente invention ne définit pas de nouvel algorithme de chiffrement à clé secrète mais s'adapte aux algorithmes existants ou à venir. Par exemple l'algorithme D. E. S. (Data Encryption Standard) et ses dérivés et l'A. E. S. (Advanced Encryption Standard) sont utilisables avec le dispositif objet de l'invention. La présente invention définit le comportement fonctionnel externe du bloc de cryptage intégrant l'algorithme de chiffrement, comme étant celui d'un pipeline de traitement classique à savoir : Un mot en clair est introduit ainsi que sa clé de chiffrement K à l'entrée du pipeline avec une période d'activation fixe et régulière notée Tm. Le même mot devenu crypté est sorti du pipeline après un temps de traversée noté Tpi. Tm et Tpi peuvent être exprimés en un nombre de cycles d'horloge. On observe qu'une quantité fixe de mots notée Npi est présente dans le pipeline à un instant donné vérifiant l'égalité Npi = Tpi/Tm. Npi représente le nombre d'étages du pipeline. La présente invention ne définit pas l'architecture et le fonctionnement interne du pipeline ou bloc de cryptage, en particulier son degré de parallélisme interne. Par exemple et à titre non limitatif, ce bloc peut être constitué de k sous-pipelines (15k5Npi) connectés en parallèle et sollicités cycliquement, chacun d'eux possédant Npi/k étages, une période d'activation de k*Tm et un temps de latence Tpi. Les optimisations des compilateurs de silicium tendent alors à diminuer le temps de latence Tpi, mais cette technique a pour inconvénient de nécessiter plus de ressources matérielles (portes logiques, transistors). L'homme de métier doit donc établir le parallélisme adéquat du bloc de cryptage pour avoir le meilleur compromis entre les ressources disponibles et les performances visées. A noter que selon l'algorithme de cryptage, les valeurs de k entre 1 et 4 donnent les meilleurs résultats, car au-delà les performances ne croissent pratiquement plus alors que les ressources consommées augmentent toujours linéairement avec k. La description suivante faite en regard des dessins ci-annexés, le tout donné à titre d'exemple non limitatif, fera bien comprendre comment l'invention peut être réalisée : La figure 1 montre un système simplifié de chiffrement/déchiffrement par pipeline dans le mode d'opération ECB (Electronic CodeBook). La figure 2 montre un système simplifié de chiffrement/déchiffrement par pipeline dans le mode d'opération CBC (Cipher Block Chaining). La figure 3 montre le dispositif de chiffrement conforme à l'invention. La figure 4 montre le circuit d'ordonnancement faisant partie du dispositif de la figure 3. La figure 5 montre en A) la structure d'une cellule ATM et en B) la structure de la cellule manipulée par le circuit d'ordonnancement. La figure 6 montre la relation homothétique entre la table d'entrée et la table d'allocation. La figure 7 montre un exemple de recherche de premier e. b. vide dans la table d'allocation. La figure 8 montre la table d'entrée avec les pointeurs de date De'et Dsat ainsi que les différentes zones identifiées. La figure 9 montre la constitution du circuit de recherche et de réservation du premier élément à O dans la table d'allocation. La figure 10 montre la constitution du circuit de recherche du premier élément à O dans un mot de 32 éléments binaires. La figure 11 donne une représentation fonctionnelle de la fenêtre visible de l'organe d'entrelacement. La figure 12 donne une représentation fonctionnelle de l'entrelacement des index effectué par l'organe d'entrelacement. La figure 13 donne une représentation détaillée du générateur d'index de l'organe d'entrelacement. La figure 14 donne une représentation détaillée de l'organe d'entrelacement. La figure 15 donne une représentation détaillée du générateur d'index de l'organe d'extraction. La figure 16 montre en A) un chaînage CBC classique, en B) un chaînage CBC avec intercalation de mots et en C) un chaînage CBC avec intercalation de cellules. La figure 17 montre le circuit d'ordonnancement selon une variante de réalisation où la table d'entrée contient des pointeurs de cellules au lieu des cellules elles-mêmes. La figure 1 montre comment la technique de pipeline est utilisée pour augmenter le débit de cryptage dans le mode ECB : Dans cet exemple, les mots en clair sont introduits en (10) avec leur clé en (11) dans un pipeline de chiffrement (20) comportant quatre étages. Les mots devenus cryptés sortent en (12) et peuvent alors être convoyés à distance au travers d'un réseau. Arrivés à destination, les mots sont introduits en (12) avec leur clé en (11) dans le pipeline de déchiffrement (21). Les mots redevenus en clair sortent en (13). Les algorithmes à clé secrète définissent des rondes de chiffrement (ou étapes de chiffrement) appliquées successivement aux mots à crypter. Il est donc naturel que chacune de ces rondes soit intuitivement affectée à un étage du pipeline. En fait ces deux notions sont à dissocier : il est possible d'affecter une ronde de chiffrement à plusieurs étages de pipeline ou un étage de pipeline à plusieurs rondes. Plus le traitement associé à un étage est réduit, plus sa fréquence de fonctionnement (IlTm) est élevée. Chaque étage de pipeline porte un mot courant en cours de chiffrement, symbolisé sur la figure 1 par une fléchette superposée au pipeline. La figure 2 montre l'utilisation classique d'un pipeline avec le mode d'opération CBC. La différence avec la figure 1 porte sur la rétroaction de la sortie sur l'entrée (22) dans la phase de chiffrement. Chaque mot subit une opération de OU exclusif avec le mot précédemment crypté de sorte qu'un seul mot est traité dans le pipeline à un instant donné. Le chiffrement du mot en clair M de rang i avec la clé K s'exprime Ci = EK (Mi (D Cil) avec EK () la fonction de chiffrement et Ci le mot chiffré. Le pipeline n'est pas efficace, car un seul mot est porté par la totalité du pipeline (20). Le déchiffrement du mot crypté Ci avec la clé K s'exprime Mi = DK (Ci) &commat; Ci-I avec DK () la fonction de déchiffrement. Il ne fait pas appel à une rétroaction de la sortie sur l'entrée mais à une alimentation parallèle (23) et peut donc être effectué sans disposition particulière sur plusieurs mots traités en parallèle avec un pipeline (21) et un jeu de registres à décalage (24). La figure 3 montre le schéma du dispositif de chiffrement (600). Les données à crypter entrent dans le dispositif par la borne d'accès (601). En fonction du protocole de réseau, celles-ci se présentent sous forme de paquets de données de taille variable appelés trames ou de paquets de taille fixe appelés cellules. Elles sont identifiées par une entête d'un format spécifique au protocole et indispensable à l'aiguillage des données au travers du réseau. La première fonction du bloc de reconnaissance et de segmentation (100) est de reconnaître cette entête et d'y associer de manière biunivoque un identificateur de flot FID (Flot IDentificateur) (32) lequel permet d'indexer directement des sous tables contenant la clé et le vecteur d'initialisation IV. En outre, un identificateur EID (Entité IDentificateur) (36) est affecté à chaque entité par le bloc (100). La valeur de cet identificateur est arbitraire, l'important étant que les entités en cours de traitement à un instant donné dans le circuit (300) aient des valeurs EID différentes. La deuxième fonction du bloc (100) est de segmenter les trames de taille variable en paquets de taille fixe (appelés aussi cellules par analogie à l'ATM) et d'y associer lesdits identificateurs FID et EID. Le format de la cellule échangée avec le circuit (300) est représenté figure 5 B. Sa taille est arbitraire mais une puissance de deux simplifie singulièrement la conception du dispositif. De même, il est souhaitable que son champ de données utiles cryptées (31) soit un multiple de la taille du mot élémentaire crypté (généralement 64 ou 128 e. b.). Le bloc de réassemblage (200) comporte les moyens de réaliser l'opération inverse de la segmentation, à savoir un réassemblage des trames pour retrouver leur forme originale observée à l'entrée de (100). Ces fonctions (100) et (200) sont ordinairement remplies par des circuits spécifiques appelés SAR (Segmentation And Reassembling) ou par des processeurs de réseau (Network Processors). A noter qu'un identificateur EID de cellule admise en entrée de (200) et marquée avec le témoin Fin d'Entité peut être réutilisé par le bloc (100) pour une nouvelle entité. Le protocole ATM possède déjà la notion de cellule, représentée figure 5 A, formée d'un champ de données de 48 octets et de 5 octets d'entête (dont 4 utiles), rendant inutile la présence des fonctions de segmentation et de réassemblage des blocs (100) et (200). La zone non assignée (35) de l'entête (30) de la cellule manipulée par le circuit (300) peut supporter différentes informations utiles comme des indicateurs permettant l'inhibition du chiffrement de certains mots de l'entité dans sa partie sujette à chiffrement (31) représentée en hachuré figure 5 B. L'entité à crypter peut être bornée par un début et une fin, auquel cas elle correspond généralement à une trame de données. La délimitation des entités peut prendre des formes diverses selon le protocole de réseau. Elle est prise en compte par le bloc de reconnaissance (100) et se traduit par un indicateur (34) de Début d'Entité abrégé DE et un indicateur (33) de Fin d'Entité abrégé FE, positionné dans la dernière cellule de l'entité. DE signifie pour le circuit d'ordonnancement (300) une rupture dans le chaînage de chiffrement du flot et la possibilité de crypter en parallèle la prochaine entité de même flot. L'entité à crypter peut aussi être non bornée, auquel cas les données apparaissent en un flot ininterrompu sans activation périodique des indicateurs DE et FE mais seulement à l'ouverture et la fermeture du flot. Les flots identifiés par leur valeur respective de FID possèdent chacun leur propre clé secrète de cryptage. Différentes entités faisant partie d'un même flot ont le même identificateur FID et la même clé secrète de cryptage. Ce dernier paramètre est consigné manuellement par un opérateur (500) dans la table (365) du dispositif d'ordonnancement (300) par le lien (501) ou automatiquement par une procédure protocolaire rendant le même service. Le vecteur d'initialisation IV est ici statique convenant bien à un protocole à flots continus, il bénéficie donc des mêmes dispositions que la clé secrète. Le pipeline de cryptage (400) est connecté au dispositif d'ordonnancement (300) par un lien d'entrée (401) lequel supporte le mot à crypter, un lien (402) dédié à fourniture de la clé de cryptage, et par un lien de sortie (403) lequel supporte le mot devenu crypté. Un signal spécifique du lien d'entrée (401) permet d'invalider le chiffrement de sorte que le mot en clair à l'entrée est inchangé en sortie et notamment de laisser en clair l'entête de la cellule au travers du dispositif. L'horloge (650) fournit sur le lien (651) la base de temps et une date courante notée De partagées par l'ensemble des organes du circuit (300). De est réalisée simplement par un compteur qui s'incrémente d'une unité à chaque cycle d'horloge. Selon l'exemple de réalisation, la fréquence de l'horloge (650) est de Fs=50Mhz et la date courante De a 18 e. b. de large (NDc=18) soit un espace de comptage de 2\ Une date courante De', de 15 e. b. de large (NDe'=15), s'incrémente à chaque temps- cellule et est égale à De sur ses poids forts (De'[14 : OJ = De[17 : 3J). Il est à noter que la table d'entrée (350), la table de sortie (380) et la table d'allocation (355) sont indexées par des pointeurs dérivés de De'. Ceux-ci s'incrémentent puis repassent à O après avoir atteint la dernière case de ces tables. Celles-ci sont communément qualifiées de circulaires . En outre, la moitié de l'espace zest utilisée à un instant donné de sorte que les pointeurs sur ces tables font NDe'-1 e. b. de large car ne prenant pas en compte l'e. b. de poids le plus fort. Cela permet d'utiliser des mémoires d'une capacité moitié moins importante. Néanmoins, les calculs sont toujours effectués sur NDc'e. b. de large, notamment ceux liés à l'estampille de (310) et à l'espacement de (320). Le pipeline (400), appelé aussi bloc de cryptage, accepte des mots à crypter selon une périodicité Tm égale à 1/7. Un mot traverse le pipeline en un temps de latence de Tpi cycles d'horloge. Tpi mots sont donc traités à un instant donné dans le pipeline de cryptage. Tcell constitue la période d'arrivée des cellules dans le dispositif et s'exprime par Tcell= (taille de la cellule/taille du mot crypté) * Tm. Selon l'exemple de réalisation Tell fait 8 cycles d'horloge soit 160ns. Les données cryptées issues du dispositif de chiffrement (600) sont émises sur le réseau haut débit (700) par la borne de raccord (602). Arrivées en destination en (701), après leur transfert au travers du réseau haut débit non sécurisé, des moyens de déchiffrement (800) permettent de les retrouver décryptées en (801). Le mode d'opération pris en exemple de réalisation du circuit d'ordonnancement (300) est le CBC. Il est clair que les autres modes d'opération à rétroaction de chiffrement ou de calcul de code d'authentification de message peuvent naturellement être pris en compte par le dispositif objet de l'invention. DESCRIPTION DU CIRCUIT D'ORDONNANCEMENT (300) La figure 4 montre la constitution générale du circuit d'ordonnancement. L'entrelacement de cellules de différentes entités et de différents flots peut être quelconque à son l'entrée sur le lien (301). L'exemple de réalisation choisi ici à titre non limitatif convient particulièrement bien à la conception d'un circuit intégré de chiffrement de cellules ATM traitant indifféremment des trames de données et des flots continus. La cellule manipulée par le dispositif est représentée à la figure 5B. Elle comporte 512 e. b. organisés en 8 mots de 64 e. b. soit 2 mots d'entête et 6 mots de données utiles. La figure 5A en vis-à-vis montre la manière dont la cellule ATM est transportée dans la cellule du dispositif. Le débit global maximum Dg est de : Dg = Fs * 64 = 3, 2 Giga e. b. par seconde. Le pipeline de cryptage possède les caractéristiques suivantes : L'algorithme de chiffrement exécuté par le pipeline (400) traite des mots de 64 bits de large (une cellule fait donc 512/64 = 8 mots). 8 cycles d'horloge (non consécutifs) sont nécessaires pour introduire une cellule. Le temps de latence du pipeline (Tpi) est de 32 cycles d'horloge. L'organe d'estampille (310) Les cellules sont estampillées par la date courante De'sitôt leur introduction effectuée sur le lien (301). L'organe d'estampille (310) dépose la valeur de De'dans le champ DC (37) de l'entête de la cellule. En outre, la présence d'une cellule valide est signalée par l'indicateur VAL (38) activé dans cette même entête. Le calculateur d'espacement (320) Les cellules estampillées sont dirigées vers le calculateur d'espacement (320) via le lien (311). Le calculateur (320) est chargé de maintenir un espacement minimum Tesp entre les cellules de même entité introduites dans le pipeline. Compte tenu que deux mots d'une même cellule doivent être espacés d'un temps Tpi cycles d'horloge pour satisfaire la contrainte de rétroaction qui oblige qu'un mot soit complètement traité pour commencer à traiter le suivant, le temps de traitement d'une cellule exprimé en temps- cellule (7ce//) est donc de : Tesp = (taille de la cellule/taille du mot crypté) * Tpi/Tcell = Tpi/Tm soit avec Tm = 1 cycle, Tesp = Tpi temps cellule . Le calculateur d'espacement maintient une date minimale d'introduction Dmin de la cellule courante dans le pipeline (400) et cela pour chaque entité identifiée par EID. Le début d'une nouvelle entité, repéré par un témoin DE actif, entraîne l'affectation de la date courante De'à Dmin, ce qui va provoquer le cryptage simultané des entités de même flot. La date Dmin est lue dans la table des dates minimales DMIN (330) laquelle est indexée par EID sur le lien (321) et son contenu retourné sur (331). A chaque cellule, le traitement suivant est effectué par le calculateur d'espacement. début Dmin Si DE = valide/* Test de début d'entité */ alors/* Début d'entité */ Dmin Dmin P Dmin + Tesp/* Selon l'exemple, Tesp = 32 */ Si Dmin La taille du compteur De'est finie et une date Dmin stockée dans la table des dates minimales (330) va devenir négative puis redevenir positive par rapport à De'si plus aucune cellule associée à Dmin n'est plus introduite dans le circuit d'ordonnancement. Pour éviter cet aléa, une tâche de fond doit détecter les dates Dmin négatives risquant de redevenir positives, en les maintenant raisonnablement négatives (au minimum égales à Dc'-Tesp) par rapport à De'comme le montre l'algorithme suivant : début répéter/* boucle infinie */ Pour EID allant de 0 aNBJEIDMAX/* balayage des identificateurs d'entité*/ répéter Attendre un nouveau temps-cellule/* un test par Tcell */ si DMIN [EID] DMIN [EID] fin de répéter fin L'organe d'agencement (340) L'élément (340) recherche et réserve la première date Dmin effective disponible suivant la date Dmin initialement fournie par le calculateur d'espacement pour la cellule courante. Cette date Dmin e-Elle est courante. Cette date Dmin ~effective constitue alors la nouvelle valeur de D/Mïn. Elle est donc renvoyée par une simple écriture dans la table des dates minimales (330) indexée par EID sur le lien (341). La cellule est ensuite stockée dans la table d'entrée (350) indexée par Dmin~effective via le lien (342). A chaque cellule, le traitement suivant est indexée par Dmin e effectué par l'organe d'agencement : début Dmin~effective (Dmin)/*recherche place à partir de Dmin */ Réserver (Dmineffective)/* réservation place trouvée */ DMIN[EID] Dmin~effective/* Mise àjour de la table (330) */ Tabled'entrée [Dmin~effective] cellule dans la table (350) */ fin Le calculateur d'espacement et l'organe d'agencement disposent d'un temps cumulé égal à Tell pour opérer leur traitement sans quoi deux cellules consécutives de même entité rendent un résultat Dmin incohérent. La recherche de la première place disponible pose un problème remarquablement ardu lorsque la période d'admission des cellules (Tcell) est petite. Ainsi, selon l'exemple de réalisation choisi, 160ns sont seulement disponibles. Selon l'une des caractéristiques de l'invention, l'organe d'agencement résout très efficacement ce problème. L'organe d'agencement dispose d'une table d'allocation (355) représentant l'occupation de la table d'entrée (350) par des cellules comme le montre la figure 6. Chacun des emplacements de stockage de cellule de la table d'entrée (350) est associé à un e. b. de la table d'allocation par projection homothétique. La table d'allocation est constituée d'une mémoire de b mots de c e. b. de large où l'e. b. de numéro c'du mot b'de la table d'allocation représente la position de numéro b'*c+c'de la table d'entrée (350). Si une position de cellule (40) de cette dernière est libre alors l'e. b. correspondant (42) de la table d'allocation est placé dans l'état vide , a contrario si une position (41) est occupée par une cellule alors l'e. b. correspondant (43) de la table d'allocation est placé dans l'état plein . La recherche consiste à trouver le premier e. b. vide à partir de la date Dmin fournie en paramètre de la fonction Recherchera. La figure 7 donne un exemple d'une telle recherche. Les frontières de mots (44)/ (45) ne sont pas considérées. Chaque e. b. est testé jusqu'à ce qu'un état vide soit trouvé. La rencontre d'un état plein est considérée comme un échec . Le nombre d'échecs successifs peut être très important (plusieurs milliers) de sorte que le temps de convergence vers le premier e. b. vide devient vite rédhibitoire, même en faisant appel à des méthodes dichotomiques rapides. Selon l'une des caractéristiques de l'invention, une date particulière dite de saturation appelée Dsat est continuellement maintenue à jour pour minimiser la recherche sur une zone de seulement Tesp e. b consécutifs. Ainsi, De'et Dsat délimitent la zone (46) où plus aucun e. b. vide n'est plus disponible et où toute recherche reste vaine. Toute requête de recherche dans la zone saturée (46) est donc reportée à sa périphérie, c'est à dire à partir de Dsat qui par définition pointe sur le premier e. b. du mot suivant la zone saturée. La figure 8 représente la table d'allocation pointée par la date courante De'et la date de saturation Dsat. Rappelons que De'avance d'une unité à chaque temps cellule. La date Dmin proposée par le calculateur d'espacement se situe dans la zone marquée positive (+) soit (46)/ (47). La zone négative (48)/ (49) n'est pas accédée car correspondant à une date passée, c'est à dire inférieure à De'. A chaque début d'entité, le calculateur d'espacement propose la valeur de De'pour Dmin de sorte que la zone proche de De'est très occupée ou saturée. Par ailleurs, on peut démontrer qu'il est impossible d'avoir Tesp e. b. consécutifs dans l'état plein en ayant simultanément un ou plusieurs e. b. vides plus proche de De'. L'organe d'agencement tire partie de cette propriété pour accélérer son traitement en accédant directement au mot de la table d'allocation qui contient nécessairement au moins un e. b. dans l'état vide . L'algorithme de la fonction Recherchera est donné ci après. Dues aux frontières de mots, deux recherches élémentaires RechercherBit (Dmin) sur deux mots consécutifs peuvent être nécessaires. fonction Rechercher (Dmin) Début Si Dmin Dsat/*Test si Dmin dans zone saturée */ alors/* zone saturée */ Dmin partir de Dsat */ finsi numbit RechercherBit (Dmin) /* Recherche du l'e. b. vide Si numbit = invalide/* Test e. b. vide trouvé */ alors/* pas d'e. b. vide trouvé */ Dmin (Dmin/Tesp + 1) *Tesp/* début du mot suivant */ numbit (Dmin)/*nouvelle recherche du l'e. b. vide fin si Dmineffective dz (Dmin/Tesp) *Tesp + numbit/* valeur Dmin trouvée */ retourner (Dmin~effective) */ fin Selon l'exemple de réalisation, la figure 9 représente le schéma de la fonction RechercherBitQ et Réserver (). L'état plein est signifié par un 1 logique et l'état vide par un 0 . La table d'allocation est ici réalisée par une mémoire de type RAM (Random Access Memory) d'une largeur c = Tesp e. b. Les opérations exécutées par la fonction RechercherBit (Dmin) sont les suivantes : L'argument Dmin de la fonction est envoyé sur ces poids forts (Dmin/Tesp) sur le bus d'adresse et de contrôle (61) de la mémoire pour une opération de lecture. Les poids faibles (Dmin Modulo Tesp) sont envoyés via (62) dans le circuit (57). Ce dernier fabrique un masque (65) composé de Dmin Modulo Tesp e. b. à l'état 1 sur les poids faibles et complété par l'état 0 sur les poids forts. La sortie d'une opération de OU logique (56) entre le masque (65) et la sortie de la mémoire (58) constitue le mot (71) présenté au circuit d'élection (50), lequel va renvoyer sur sa sortie (57) le rang du premier e. b. trouvé à l'état O (c. à. d. à l'état vide ) dans le sens poids faibles vers poids forts. Un mode de réalisation du circuit d'élection (50) est représenté figure 10 à titre d'exemple non limitatif : Une mémoire (66) de type ROM (Read Only Memory) de 256 mots de 4 e. b. donne sur son bus de données le rang du premier e. b. à l'état 0 de son bus d'adresse. Par exemple, une adresse A[7 : 0] = 01000111 donne en sortie D : sont ainsi programmés. Un fil de donnée supplémentaire D [3] indique qu'un e. b. a effectivement été trouvé, ainsi seul t/7.'û/= 77777777 rendra la valeur D/ ?/ = 0 . Une mémoire (66) est disposée sur chacun des quatre octets composant le mot d'entrée (71). Leur bus de données D/ : 0/ (68) est dirigé vers un multiplexeur (70) tandis que la donnée D/. ?/ est envoyée vers un encodeur de priorité (67). Ce dernier affecte un poids entre 0 et 3 à chaque entrée en fonction du champ du mot (71) que celleci représente. Le champ [7:0] de poids 0 a la priorité maximale et le champ [31 : 24/ de poids 3 a la priorité minimale. L'encodeur (67) retourne sur sa sortie (69) le numéro du poids le plus petit dont l'entrée associée est à l'état 1 , lequel numéro va sélectionner au travers du multiplexeur (70) le rang du premier e. b. à l'état 0 trouvé dans le champ du mot d'entrée (71) de poids le plus faible. La concaténation de ce rang en poids faibles avec la sortie de l'encodeur (69) en poids forts constitue le résultat du circuit (50), à savoir le rang du premier e. b. à l'état 0 trouvé dans le mot (71). L'information (72) valide le résultat obtenu en (57) et signale qu'un e. b. à 0 (état vide ) a effectivement été trouvé. Par exemple le mot binaire Les opérations exécutées par la fonction Réserver (Dmin~effective) sont les suivantes : L'argument Dmin e L'argument Effective de la fonction est envoyé sur ces poids forts (Dmin~ejfeetive/Tesp) sur le bus d'adresse et de contrôle (61) de la mémoire pour une (Dmin e opération de lecture. Le mot lu est mémorisé dans le registre (51). Les poids faibles (Dm ! Hfective Modulo Tesp) sont envoyés via (59) dans le circuit (52). Ce dernier (Dmin e ~, ffective Modulo Tesp à l'état 1 et fabrique un masque (63) avec l'e. b. de rang D ! ec've MoM/o Tasp à l'état 7 et les autres e. b. à l'état O. La sortie d'une opération de OU logique (54) entre ledit masque et la sortie du registre (51) constitue le mot retourné (64) à la mémoire pour une opération d'écriture. La fonction Réserver (Dmin~effective) est chargée de maintenir à jour la date de saturation Dsat. Pour cela, la valeur écrite dans (355) est relue et testée par le circuit d'élection (50), un signal (72) actif dénotant la présence d'e. b. encore vides dans le mot présenté non masqué en (71). Dans l'affirmative Dsat n'est pas modifiée, dans le cas contraire Dsat est positionnée sur le début du mot suivant c'est à dire ~ : ffectivelTesp) +I) *Tesp. Il est à noter que Dsat ne peut être inférieure à De' Dmin e lorsque aucune saturation n'est observée, Dsat doit donc être maintenue au moins égale à De'. Une fonction de dé-réservation est exécutée périodiquement mot par mot, auquel cas le signal (60) sera activé sur la porte (55) simultanément avec une commande d'écriture sur la mémoire (355) afin de stocker un état vide dans l'ensemble des e. b. du mot. Elle peut avoir lieu sur le mot venant d'être pointé et dépassé par De'. Cette opération pourrait naturellement aussi avoir lieu élément binaire par élément binaire. L'organe d'entrelacement (360) L'organe d'entrelacement (360) lit les mots des cellules de la table d'entrée (350) et les envoie dans le pipeline de cryptage de sorte que l'espacement entre deux mots lus d'une même cellule est au moins égal à Tpi cycles d'horloge. L'organe d'entrelacement a une fenêtre de Tesp cellules représentée figure 11. L'adresse du mot j de la cellule i s'exprime relativement à une date courante qui resterait statique par : adresse~DcMe (i, j) = Tcell*i +j. Il existe une multitude de façons pour lire les mots dans cette fenêtre de manière que la condition d'espacement soit satisfaite. La méthode la plus naturelle, mais qui n'est pas celle retenue ici, consiste à lire à la suite l. teme mot de chaque cellule C0... CTesp-i puis lej+l lème mot, etc... Ainsi comme Tpi = Tesp, deux mots d'une même cellule sont bien distants de Tpi cycles. Le mot j de la cellule i sera lu en j + Tpi*i ""position. Néanmoins, cette méthode n'est pas judicieuse car les cellules sont synchrones et les paramètres de cryptage (clés, vecteurs) vont devoir être lus de manière groupée dans une mémoire physique qui n'a pas forcément la bande passante nécessaire pour fournir ces paramètres assez rapidement. L'homme de métier doit donc choisir un entrelacement remplissant la condition d'espacement et prenant judicieusement en compte de telles contraintes matérielles. Selon l'exemple de réalisation (Tcell=8, Tpi=32), les transferts de début de cellules (mot MO) sont équitablement répartis dans le temps, c'est à dire distants de Tcell soit 8 cycles d'horloge. Le temps entre deux accès à une même cellule est de 33 cycles au lieu des 32 cycles minimum imposés par Tpi. Ainsi le mot} (noté Mj) de la cellule i (notée Ci) est lu en 8 *i + 33 sème position. Le tableau 1 ci-dessous représente la séquence obtenue qui associe une valeur de date courante De'avec un couple (Ci, Mj) : Tableau 1 Dc' [7 : 0] +0 +1 +2 +3 +4 +5 +6 +7 0 C0,M0 C28,M1 C24,M2 C20,M3 C16,M4 C12,M5 C8,M6 C4, M7 8Cl, MO C29, Ml C25, M2 C21, M3 C17, M4 C13, M5 C9, M6 C5, M7 16 C2, MO C30, Ml C26, M2 C22, M3 C18, M4 C14, M5 CIOM6 C6, M7 24 C3, MO C31, Ml C27, M2 C23,M3 C19,M4 C15,M5 C11, M6 C7, M7 32 C4, MO CO, M1 C28, M2 C24, M3 C20, M4 C16, M5 C12, M6 C8, M7 40 C5, MO C1, M1 C29, M2 C25,M3 C21,M4 C17,M5 C13,M6 C9, M7 48-232I : 1I : 1 240 C30, MO C26, M1 C22, M2 C18, M3 C14, M4 C10, M5 C6, M6 C2, M7 248 C31, MO C27, M1 C23, M2 C19, M3 C15, M4 C11, M5 C7, M6 C3, M7 Les couples (Ci, Mj) en écriture italique font référence à des cellules dont l'entrelacement des mots a déjà débuté et qui sont différentes des cellules courantes référencées par les couples (Ci, Mj) en écriture droite. Il est à noter que le mot M7 de la cellule Ci est distant de moins de Tpi cycles du mot MO de la cellule suivante C'i qui est éventuellement de la même entité : Comme ni MO, ni Ml ne sont cryptés et n'entrent dans la rétroaction de chiffrement, il est seulement nécessaire de maintenir au moins Tpi cycles entre l'introduction du mot 7 (M7) de la cellule et l'introduction du mot 2 (M2) de la cellule suivante. En reprenant l'équation d'adressage appliquée à l'exemple de réalisation (adress~Dc~statique(i ,j) = 8*i + j), on peut maintenant exprimer les accès relativement à la date courante De réelle qui s'incrémente perpétuellement. L'accès à un mot en A : position implique que De a pendant ce temps avancé de k unités, k unités doivent donc être soustraites de l'adresse, on obtient alors : eDcJMMe 'j,) = organiquement à la figure 13. Le champ Dc/2.'0/est simplement multiplié par 32 avant d'être soustrait de Dc pour donner l'adresse effective (361). La zone accédée est représentée par (49) à la figure 8 et 12. A noter que la formule F2 et son générateur (363) peuvent prendre une forme plus complexe si par exemple la valeur de Tpi n'est pas une puissance de 2. Il est alors possible de prédéfinir une séquence quelconque de valeurs dans une petite mémoire ROM. Celles-ci, lues de manière cyclique et soustraites de De, fournissent ainsi les adresses conformément à F2. Tableau 2 Mot : MO Ml M2 M3 M4 M5 M6 M7 Décalage /Dc: 0 -32 -64 -96 -128 -160 -192 -224 L'organe d'entrelacement est détaillé à la figure 14. Le générateur (363) fournit perpétuellement les adresses (361) des mots stockés dans la table d'entrée (350) conformément au tableau 1. Lesdits mots sont retournés sur le lien (351) et dirigés vers le pipeline de cryptage (400) via le lien (401) et vers le bloc de commande (364). Ce dernier maintient un automate d'état Ai relatif à chaque cellule Ci de l'ensemble [CO... C31] défini dans le tableau 1. Il procède aux traitements associés 1) à 4) sur chacune des cellules CO... C31 : 1) Le champ de date estampillée DCi (37) de l'entête de la cellule Ci est lu dans le mot 0 (MO) et comparée à la date courante De'. Si le marqueur VALi (38) est valide mais si le résultat de la soustraction (De'-DCi) est négatif, la cellule est déclarée invalide car cela signifie que la cellule Ci a déjà été traitée et émise dans le pipeline de cryptage 2(NDc' -1) temps-cellules auparavant. Ce phénomène est provoqué par la lecture circulaire de la table d'entrée (350) relativement à De'. La cellule Ci doit donc être supprimée définitivement de la table d'entrée (350) par infirmation de son marqueur VALi (38). Pour cela, l'écriture d'un mot porteur d'un marqueur VAL (38) inactif est effectuée dans le mot 0 (MO) de la cellule Ci à la place du cycle défini pour la lecture du mot 1 (Ml). A ce moment précis, le bloc de commande (364) fournit un signal (79) activé au générateur d'adresse (363), lequel retranche une unité à l'adresse d'indexation de la table tandis que (78) force l'état O dans le mot écrit. Une tâche de fond, analogue à celle de l'organe d'espacement, peut également être mise en oeuvre pour invalider les cellules déjà émises et fonctionner en vol de cycle sur la table (350). 2) Si la cellule Ci est valide, les opérations suivantes sont effectuées : Les champs EIDi, FIDi, DEi, FEi sont d'abord lus dans le mot 1 (Ml) ; la sous table des clés indexée par FIDz, incluse dans la table (365) est alors sollicitée en lecture via le lien 362 ; la clé lue (CLEi) est retournée via (366) puis (77) et stockée dans le bloc de gestion de clés (368) validé par (80), lequel bloc est capable de mémoriser les 32 clés correspondantes aux cellules CO... C31 ; ces clés sont ensuite automatiquement et cycliquement émises vers le pipeline via (402) sur les mots à crypter 2 à 7 (M2... M7) en fonction de la cellule courante définie par le tableau 1. A noter que les mots 0 et 1 (MO, Ml) ne sont pas cryptés et ne nécessitent donc pas de clé. Le signal INV inclus dans le lien (402) indique au pipeline (400) de se maintenir transparent lorsque INV est activé (notamment en MO et Ml). De même, le multiplexeur (369) piloté par le bloc (364) laisse passer la valeur O vers le OU exclusif (81) pour ne pas modifier les valeurs des mots MO et Ml transmis au pipeline de cryptage. 3) La valeur du mot de rétroaction normalement retournée sur (403) doit être initialisée en début d'entité. Ainsi un marqueur de début d'entité DEi (34) lu actif par (364) entraîne l'ordre de lecture du vecteur d'initialisation (communément appelé IV : Initialization Vector) dans la sous table des vecteurs d'initialisation indexée par FIDi dans la table (365) via le lien (362). Celui-ci est retourné sur le lien (366) puis (75) pour arriver simultanément avec le mot M2 de la cellule Ci sur le OU exclusif. Les valeurs suivantes des mots de rétroaction sont réinjectées via (402) sur le multiplexeur (369) sur le mot suivant de même cellule pour une nouvelle opération de OU exclusif par (81). La valeur de rétroaction suivant M7 est particulière en ce sens qu'elle est retournée dans la sous table des vecteurs d'état SV (communément appelé SV : State Vector) de (365) indexée par EIDi via (362) par le bloc (364) pour une opération d'écriture via (76) et (366). Cette valeur sera relue ultérieurement pour une opération de OU exclusif avec le mot 2 (M2) de la prochaine cellule de même entité. De la même manière que pour le vecteur d'initialisation, un marqueur U. lu inactif entraîne l'ordre de lecture du vecteur d'état dans la sous table des vecteurs d'état SV indexée par EIDi dans la table (365) via le lien (362). Celui-ci est retourné sur le lien (366) puis (75) pour arriver simultanément avec le mot M2 de la cellule courante sur le OU exclusif (81). L'organe de reconstitution (370) L'organe de reconstitution (370) est chargé de remettre en forme les cellules dans la table de sortie (380) à partir des mots issus du pipeline de cryptage (400). La table de sortie (380) a une taille et une structure identique à la table d'entrée (350). L'organe de reconstitution maintient un automate d'état A'i relatif à chaque cellule Ci de l'ensemble [CO... C3iJ défini dans le tableau 1 avec un décalage positif occasionné par le pipeline de cryptage de Tpi cycles (32 selon l'exemple de réalisation). Ainsi, pour la cellule 0, le mot 0 est reçu en 32 au lieu de 0, le mot 1 est reçu en 65 au lieu de 33 etc... A la réception du mot 0 de la cellule i, de manière analogue au bloc de commande (364) de l'organe d'entrelacement, les champs VALi (38) et DCi (37) sont testés pour évaluer la validité de la cellule. Si la cellule Ci est invalide, aucune opération n'est à entreprendre. Dans le cas contraire, l'organe de reconstitution mémorise localement la date estampillée DCi (37). 32 dates DCO... DC31 sont ainsi stockées relativement aux cellules CO... C3 1. Pour toute cellule Ci (i compris entre 0 et 31 inclus), l'organe de reconstitution transfère les mots Mj (j compris entre 0 et 7 inclus) issus du pipeline (400) vers la table de sortie 380 via le lien (372). L'index de la table de sortie supporté par le lien (372) est composé par la date DCi sur les points forts et par j sur les 3 e. b. de poids faibles. Ainsi, comme les cellules sont rangées à un emplacement relatif à la date courante De'lors de leur arrivée dans circuit d'ordonnancement (300), leur ordre se trouve reconstitué dans la table de sortie (380). L'organe d'extraction (390) L'organe d'extraction (390) lit les cellules dans la table de sortie (380) via le lien (382) et les transfère en sortie du circuit d'ordonnancement (300) sur le lien (302). 4) En premier lieu, le mot 0 de la cellule courante est lu dans la table de sortie. Comme pour le bloc de commande (364) de l'organe d'entrelacement, si le marqueur VAL (38) de la cellule courante est valide mais si le résultat de la soustraction de la date courante par la date estampillée (De'-DC) est négatif, la cellule courante est déclarée invalide car cela signifie que la cellule a déjà été émise en sortie du circuit d'ordonnancement 2' Mp-ce//M/ auparavant. La cellule doit donc être supprimée définitivement de la table de sortie (380) par infirmation de son marqueur VAL (38). Pour cela, l'écriture d'un mot porteur d'un marqueur VAL inactif est effectuée dans le mot 0 (MO) de la cellule à la place du cycle défini pour la lecture du mot 1 (Ml). Bien entendu, une telle cellule n'est pas émise en sortie du dispositif, il en est de même si le champ VAL est inactif. Une tâche de fond, analogue à celle de l'organe d'espacement, peut également être mise en oeuvre pour invalider les cellules déjà émises et fonctionner en vol de cycle sur la table (380). L'index de lecture de la table de sortie est supporté par le lien (381) et constitué de la valeur de la date courante Dc diminuée d'une valeur A (delta). Cette dernière définit le délai de transfert des cellules au travers du circuit d'ordonnancement (300). Ce délai A est un paramètre important du circuit d'ordonnancement (300) et mérite d'être discuté maintenant. Une entité de N mots traverse le pipeline de cryptage en approximativement Tpi*N cycles d'horloge. Selon l'exemple de réalisation, la taille maximale d'entité est de 9200 octets utiles soit 9200/48 = 192 cellules (correspondant à la taille maximale d'une trame IP transporté sur ATM). La rétroaction de cryptage nécessitant un espacement entre les mots, cette entité introduite en une rafale dans le circuit d'ordonnancement ne peut traverser le pipeline en moins de 32 * (192 * 8) = 49152 cycles soit 0, 983ms avec une horloge de 50Mhz. Ce temps fournit la limite basse de la valeur de A et ne prend pas en compte la gestion d'un nombre quelconque d'entités. Après simulations de pires cas, il apparaît qu'un retard supplémentaire de 50% est à provisionner dans la détermination du délai total soit L1 = 1, 47ms = 73736 cycles d'horloge = 9217 temps-cellules. Ce temps A est négligeable vis-à-vis des autres délais fixes rencontrés dans un réseau haut débit sur de longues distances : Il correspond approximativement au temps nécessaire pour parcourir 300km de fibre optique (vitesse : 200m//-ls). La figure 15 montre la constitution très simple du générateur d'adresses (391) lequel va pointer successivement sur tous les mots des cellules à émettre sur le lien (302). La mémoire d'entrée (350) ou de sortie (380) est capable de mémoriser A mots soit 217 (2 (NDc-I)) après arrondi à la puissance de 2 supérieure. L'espace de comptage de la date courante De (2) est donc de 218. Un calcul identique pour un dispositif traitant des trames bthemet de 1520 octets (soit 32 cellules), doté d'un pipeline de 10 étages intégrant l'algorithme AES (mots de 128 e. b.) et cadencé à une fréquence de lOOMhz, donne pour résultat : Li = 1, 5 * 10 * (32 * 4) = 1920 cycles d'horloge soit 19, 2 pu, c'est à dire le temps nécessaire pour parcourir un peu moins de 4 km de fibre optique. L'homme de métier doit mettre en adéquation la technologie disponible et le niveau de performances souhaitées et il observera que : . D'une part, les tables (330), (350), (355), (365) et (380) peuvent être disposées dans des mémoires distinctes ou communes, en fonction du débit traversant et de la fréquence de fonctionnement de celles-ci. Une mémoire fonctionnant à une fréquence N*F permet l'accès de N blocs à la fréquence F, un multiplexeur affectant alors de manière cyclique un (ou même plusieurs) accès mémoire à chacun des blocs. A noter que les mémoires SRAM (Static Random Access Memory) de type ZBT (Zero Bus Tum-around) ou QDR (Quad Data Rate) permettent d'atteindre des débits remarquablement importants grâce à l'entrelacement optimisé des accès de lecture/écriture. Leur mode rafale , que l'homme de métier saura exploiter, permet de maintenir un débit traversant élevé en ayant une largeur de bus mémoire raisonnable. Ainsi une simple mémoire QDR à 200Mhz à bus d'entrées/sorties séparés de 16 e. b. et à transfert sur double fronts de rafales de 4 * 16 e. b. suffit à supporter la bande passante nécessaire aux accès des tables (350) et (380) selon l'exemple de réalisation. . D'autre part et en fonction du niveau d'intégration micro-électronique, ces tables peuvent être placées dans des mémoires embarquées directement sur le circuit ASIC ou FPGA intégrant la logique du dispositif. Il est à noter que les différents blocs du circuit d'ordonnancement font référence à la date courante De dans leur traitement et se synchronisent entre eux de facto par ce moyen. Comme les fonctions et les accès aux mémoires sont exécutés en un temps non nul lié à la technologie, le concepteur peut être amené à introduire dans les algorithmes présentés dans l'exposé de très petits décalages additionnés ou soustraits de la date courante pour maintenir un fonctionnement cohérent de l'ensemble. La prise en compte de telles considérations dans l'exemple de réalisation aurait nui à la clarté de l'exposé sans améliorer la nature inventive du dispositif et n'a donc pas été détaillée. Variantes du dispositif Selon une première variante de l'invention, il peut être nécessaire de crypter des flots continus de débit supérieur à Da (formule FI). Cette variante est également applicable à des trames. Dans ce cas, la méthode connue dite de l'intercalation de mots (appelée interleaving par les anglo-saxons) peut être utilisée. Elle consiste à créer NI chaînages entrelacés sur une même entité. La figure 16B représente un chaînage CBC avec une intercalation (exemple NI=3) en vis-à-vis d'un chaînage simple CBC sans intercalation à la figure 16A. Le chiffrement avec intercalation s'exprime par : Ci = EK (Mi Selon une deuxième variante, suivant les mêmes contraintes de débit et le même objectif que la première variante, une intercalation de cellules (et non plus de mots) est obtenue en modifiant le bloc de reconnaissance et de segmentation (100) de sorte que les cellules d'une entité à chiffrer se voient assigner de manière tournante un identificateur EID parmi NI valeurs possibles. Les cellules participant à un même chaînage j se trouvent confinées ainsi dans une sous entité identifiée par EIDj en entrée du dispositif d'ordonnancement (300). A noter qu'à l'instar de la première variante, les NI premières cellules d'une entité doivent être marquées avec un témoin activé DE. La figure 16 C représente un exemple d'intercalation de cellules (NI=2). Cette variante est à préférer à la précédente car une cellule arrivante peut être immédiatement émise vers le circuit d'ordonnancement (300) après assignation de EID. Selon une troisième variante où l'entité à chiffrer est la trame de donnée comme par exemple avec IPSEC (Internet Protocol SECurity), le vecteur d'initialisation IV est porté par l'entité elle-même en début du champ des données utiles (31) et généré aléatoirement à chaque entité par le bloc de reconnaissance (100), sa présence statique dans la sous table de (365) devenant alors inutile. De même, il peut être judicieux de placer la clé secrète dans l'entête (30) ou dans le champ de données utiles (31) de la cellule par le bloc de reconnaissance (100) afin que le circuit d'ordonnancement (300) ne soit plus limité sur le nombre de clés-et donc de flots-qu'il sait gérer. La console (500) est alors connectée sur ledit bloc (100) pour l'attribution initiale des clés. Il est à noter que si le vecteur d'initialisation IV et la clé sont portés par l'entité elle-même, l'identificateur de flot FID n'est plus utile pour le circuit d'ordonnancement (300). Si la clé est placée en début du champ de données utiles (31) de l'entité, elle doit être naturellement effacée par (200) avant l'émission de l'entité sur le réseau ; la clé est écrite dynamiquement par l'organe d'entrelacement (360) dans la sous table de (365) lors de sa lecture dans la table d'entrée (350). Si la clé est placée dans l'entête (30) et donc présente dans chaque cellule, celle-ci est directement envoyée dans le bloc de gestion des clés (368), sa mémorisation dans la sous table (365) ne se justifiant plus. Selon une quatrième variante, représentée à la figure 17 où le coût des mémoires et donc leur taille guident les choix de réalisation, la table d'entrée (350) contient seulement des pointeurs de cellules au lieu des cellules elles-mêmes lesquelles sont rangées uniquement dans la table de sortie. En entrée du circuit d'ordonnancement, la cellule courante est directement envoyée après estampille via (383) dans la table de sortie (380) à l'adresse désignée par De'. Cette adresse donne la valeur du pointeur PT de la cellule. Une valeur particulière permet d'invalider le pointeur PT lorsque la cellule pointée n'est plus significative. Les informations PT, EID et DE sont alors fournies via (311) à l'organe d'espacement (320) dont la fonction n'est pas modifiée. L'organe d'agencement (340), conformément à la date minimale effective trouvée, dépose le pointeur PT dans table d'entrée (350) au lieu de la cellule elle-même. L'organe d'entrelacement (360) lit les mots des cellules via (385) dans la table de sortie (380) qu'il adresse via (384) par l'intermédiaire des pointeurs de cellules PT qu'il lit dans la table d'entrée conformément à un tableau d'entrelacement tel que représenté sur le tableau 1. Selon une cinquième variante, le dispositif objet de l'invention peut être considérablement simplifié à la condition expresse que chacun des flots possède un débit inférieur au débit maximum avec rétroaction (noté Da dans l'exposé), réalisant ainsi un espacement de cellules de facto. Des flots issus de conduits physiques d'un débit inférieur à Da ou les techniques précitées d'intercalation permettent de remplir cette condition. Les organes d'estampille (310), d'espacement (320) et d'agencement (340) sont alors simplifiés, l'index de stockage de la cellule courante dans la table d'entrée (350) et la date d'estampille DC de ladite cellule pouvant directement se voir attribuer la valeur Dcmodulo X avec X = 2*Tpi. La taille des tables d'entrée et de sortie ainsi que la valeur de L1 peuvent ainsi être drastiquement réduites et atteindre respectivement X éléments-cellules et Xl2 temps-cellules. REVENDICATIONS 1. Dispositif de chiffrement pour un réseau haut débit de télécommunications (700) qui transmet des entités d'information d'un point d'accès à un autre, dispositif de chiffrement (600) comportant : a au moins une borne d'accès d'entrée (601) supportant lesdites entités à chiffrer en provenance d'utilisateurs ou d'un autre réseau, * au moins une borne de raccord de sortie (602) pour émettre lesdites entités devenues chiffrées sur ledit réseau (700), a des moyens (100) de reconnaître, et de segmenter si nécessaire, lesdites entités en paquets de taille fixe appelés cellules et de leur associer des identificateurs permettant de pointer les paramètres spécifiques de chaque entité et de chaque flot, e des moyens de réassembler (200) si nécessaire lesdites entités à partir desdites cellules avant l'émission sur ledit réseau, w un bloc de cryptage (400) de mots mettant en oeuvre un algorithme de chiffrement à clé secrète, * des moyens d'affectation (500) des paramètres de chiffrement de chaque flot, * une horloge (650) fournissant la base de temps et une date courante, . un circuit d'ordonnancement (300) des mots desdites cellules desdites entités au travers du bloc de cryptage autorisant un mode d'opération de chiffrement dit à rétroaction et restaurant à la sortie dudit circuit l'ordre initial d'introduction desdites cellules à son entrée, dispositif caractérisé en ce que le circuit d'ordonnancement comporte en outre : e un organe d'estampille (310) de la valeur de la date courante de chaque cellule à son entrée, w un calculateur d'espacement (320) de cellules de même entité, w un organe d'agencement (340) pour trouver une place disponible dans une table d'entrée (350) à partir du résultat fourni par le calculateur d'espacement et pour y déposer la cellule courante. . une table d'entrée (350) pour mémoriser la cellule courante à l'emplacement désigné par l'organe d'agencement, e une table d'allocation (355) représentative de l'état d'occupation de ladite table d'entrée et organisée selon une projection homothétique d'une table sur l'autre, * une table (330) contenant une variable d'espacement relative à chaque entité, a une table (365) contenant une sous table relative à la clé secrète de chaque flot, une sous table relative au vecteur d'initialisation IV de chaque flot et une sous table relative au vecteur d'état SV de chaque entité, a un organe d'entrelacement (360) des mots de différentes cellules transférées de la table d'entrée vers le bloc de cryptage (400) respectant un espacement temporel entre les mots de même cellule au moins égal au temps de latence du bloc de cryptage, a un organe de reconstitution (370) des cellules dans une table de sortie (380) à partir des mots issus du bloc de cryptage en fonction de la valeur de la date courante préalablement estampillée dans chaque cellule, e une table de sortie (380) pour mémoriser les mots à l'emplacement désigné par l'organe de reconstitution et dans laquelle sont reconstituées les cellules, a un organe d'extraction (390) de cellules de la table de sortie, laquelle est indexée par la date courante diminuée d'un laps de temps fixe de sorte que le délai de transit de toute cellule au travers dudit circuit demeure constant. 2. Dispositif de chiffrement selon la revendication 1 caractérisé en ce que le calculateur d'espacement maintient à jour sur chaque entité une variable mémorisant la date minimale à laquelle la cellule courante de ladite entité peut être traitée par le bloc de cryptage. 3. Dispositif de chiffrement selon les revendications 1 et 2 caractérisé en ce que, pour une cellule donnée, le calculateur d'espacement affecte la date courante à ladite variable mémorisant la date minimale lorsqu'une cellule est la première d'une nouvelle entité ou lorsque la date minimale est inférieure à la date courante. 4. Dispositif de chiffrement selon les revendications 1 à 3 caractérisé en ce que, pour une cellule donnée, l'organe d'agencement trouve et réserve dans sa table d'allocation, la première place libre de la table d'entrée à partir de la date minimale fournie par le calculateur d'espacement. 5. Dispositif de chiffrement selon la revendication 1 caractérisé en ce que l'organe d'agencement dispose et maintient à jour un registre mémorisant la date de saturation correspondant au seuil en dessous duquel plus aucun élément de la table d'entrée n'est disponible. 6. Dispositif de chiffrement selon les revendications 1 à 5 caractérisé en ce que, pour une cellule donnée, l'organe d'agencement affecte la date de saturation à la variable mémorisant la date minimale quand cette dernière est inférieure à la date de saturation, afin d'accélérer la recherche de la première place libre dans la table d'entrée. 7. Dispositif de chiffrement selon la revendication 1 caractérisé en ce que l'organe d'entrelacement est actif dans une fenêtre qui glisse sur la table d'entrée relativement à la date courante. 8. Dispositif de chiffrement selon les revendications 1 et 7 caractérisé en ce que les accès entrelacés aux mots des différentes cellules contenues dans ladite fenêtre glissante s'effectuent selon une séquence prédéfinie exécutée de manière cyclique par l'organe d'entrelacement. 9. Dispositif de chiffrement selon la revendication 1 caractérisé en ce que, pour une cellule donnée, la valeur de la date courante déposée dans l'entête de ladite cellule par l'organe d'estampille constitue la base de l'index de rangement de ladite cellule dans la table de sortie. 10. Dispositif de chiffrement selon les revendications 1 à 9 caractérisé en ce que la date courante diminuée d'une valeur représentative d'un laps de temps fixe constitue la base de l'index de lecture d'une cellule dans la table de sortie par l'organe d'extraction, lequel laps de temps est égal au minimum au temps maximum écoulé par toute cellule entre son opération d'estampille de date courante et son opération d'écriture dans la table de sortie.