Brevet FR2825210A1 — publié le 20021129

La présente invention concerne un dispositif cryptographique pour un réseau haut débit de télécommunications qui transmet des trames d'information d'un point d'accès à un autre, dispositif comportant : e au moins une borne d'accès d'entrée supportant des trames à chiffrer ou à authentifier en provenance d'utilisateurs ou d'un autre réseau de télécommunications, a au moins une borne de raccord de sortie pour émettre sur ledit réseau lesdites trames chiffrées ou authentifiées, e des moyens de reconnaître lesdites trames et de leur associer les paramètres de la fonction cryptographique à exécuter, w des moyens d'affectation desdits paramètres, . des moyens de mettre en conformité lesdites trames issues du circuit d'ordonnancement au format du protocole de réseau, im un bloc de fonction cryptographique de mots mettant en oeuvre un algorithme de chiffrement à clé secrète ou de hachage, . une horloge fournissant une base de temps et une date courante, * un circuit d'ordonnancement des mots desdites trames au travers du bloc cryptographique autorisant une rétroaction de sa sortie sur son entrée desdits mots et restaurant à la sortie dudit circuit l'ordre initial d'introduction desdites trames à son l'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. La confidentialité fait appel traditionnellement par des algorithmes de cryptage à clé secrète selon des modes d'opération répertoriés depuis fort longtemps. Le plus commun est le CBC (Cipher Block Chaining), qui réalise une opération de XOR (OU exclusif) avant chiffrement entre le mot en clair et le mot venant d'être crypté. Ce mode est donc dit à rétroaction car la sortie est retournée sur l'entrée via une opération logique. 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 trame d'information comme l'ensemble des mots participant à un même chaînage . La taille élémentaire du mot à crypter est généralement de 64 ou 128 e. b. (éléments binaires ou bits dans la terminologie anglo-saxonne) et le mot crypté est de même taille. Les algorithmes de chiffrement à clé secrète peuvent également être utilisés en rétroaction pour authentifier des données. Ils permettent de fabriquer une empreinte représentative d'une trame de données (le dernier mot crypté de la trame peut tenir lieu d'empreinte dite CAM ou Code d'Authentification de Message) afin de pouvoir vérifier, par comparaison d'empreintes générées à l'entrée et à la sortie du réseau, que les informations transmises n'ont pas été modifiées par malveillance dans ledit réseau. Plus rapides, des algorithmes spécifiques dit de hachage sont dédiés à cette fonction de prise d'empreinte . La taille du bloc élémentaire de données à hacher est généralement de l'ordre de 512 e. b. et le résultat occupe de 128 à 256 e. b. A l'instar des algorithmes de chiffrement utilisés en rétroaction, les algorithmes de hachage induisent également sur des trames de taille supérieure au bloc élémentaire une rétroaction d'un bloc de données sur le suivant de sorte que le dispositif objet de l'invention trouve ses applications indifféremment sur le chiffrement et le hachage de données. 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. La rétroaction se montre inadaptée aux traitements cryptographiques à très haut débit car elle interdit une mise en oeuvre efficace de la technique dite de pipeline, un mot devant être complètement traité 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 d'un pipeline de traitement cryptographique, le débit maximal avec rétroaction noté Da s'exprime par : Da = D/A' (formule notée Fi). Le nombre d'étages du pipeline varie communément de 8 à 32. La technique de pipeline n'est donc a priori d'aucune utilité lorsqu'un traitement à rétroaction est souhaité. La formule exprimée ci-dessus (Fi) demeure incontournable, mais le dispositif objet de l'invention fait de sorte qu'elle n'apparaît plus limitative car, les chaînages étant indépendants, plusieurs trames-par exemple de type IP (Internet Protocol) ou Ethernet (IEEE 802. 3)-sont traitées en parallèle au sein d'un même pipeline. 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 de IP et IEEE 802. x en particulier. Pour la raison précitée, les dispositifs cryptographiques offrent généralement des performances médiocres. Pour pallier ce problème, certains équipements couplent différents circuits intégrés cryptographiques en parallèle pour obtenir des performances élevées. Selon le même principe, le brevet PCT WO 01/05086 A2 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 des trames doit être respecté en sortie du dispositif. La présente invention propose un dispositif cryptographique simple et économique permettant le traitement simultané de plusieurs trames au travers d'un même pipeline appelé bloc cryptographique 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 trame. Cette propriété s'avère intéressante lorsque des mécanismes de police contrôlent l'espacement entre trames de même flot dans les réseaux où une qualité de service est demandée. Dans son principe, le dispositif se positionne en coupure d'un conduit haut débit à l'entrée d'un réseau non sécurisé, mais il peut constituer également un 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 cryptographique est remarquable en ce que son circuit d'ordonnancement comporte : . un organe d'estampille de la trame courante chargé de sa datation par la date courante et de son introduction dans une table d'entrée à l'entrée dudit circuit, * une table d'entrée pour mémoriser les trames fournies par l'organe d'estampille, . un automate d'entrelacement chargé d'extraire les mots desdites trames de la table d'entrée et de les émettre avec leur paramètre respectif dans le bloc cryptographique et de stocker dans une table de sortie les mots traités issus dudit bloc cryptographique. e une table de sortie pour mémoriser les mots à l'emplacement désigné par l'automate d'entrelacement et dans laquelle sont reconstituées les trames traitées, a un organe d'extraction chargé de lire la trame courante de la table de sortie afin de l'émettre en sortie du dispositif à un moment défini par l'égalité entre le date courante diminuée d'un laps de temps fixe et la date estampillée dans la trame par le bloc d'entrée de sorte que le délai de transit de toute trame au travers du circuit d'ordonnancement demeure constant. La présente invention ne définit pas de nouvel algorithme de chiffrement ou de hachage mais s'adapte à ceux existants ou à venir. Par exemple l'algorithme D. E. S. (Data Encryption Standard) et ses nombreux dérivés, l'A. E. S. (Advanced Encryption Standard), SHA-l (Secure Hash Algorithm) ou MD5 (Message Digest) sont utilisables avec le dispositif objet de l'invention. La présente invention définit le comportement fonctionnel externe du bloc cryptographique intégrant l'algorithme en question, comme étant celui d'un pipeline de traitement classique à savoir : - Un mot en clair est introduit ainsi que ses paramètres éventuels à l'entrée du pipeline avec une période d'activation fixe et régulière notée Tm. Le résultat 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 non plus l'architecture et le fonctionnement interne du bloc cryptographique, en particulier son degré de parallélisme interne. Par exemple et à titre non limitatif, ce bloc peut être constitué de k sous-pipelines (151cpi) 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 cryptographique pour avoir le meilleur compromis entre les ressources disponibles et les performances visées. A noter que selon l'algorithme employé, 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. Les algorithmes de chiffrement à clé secrète et de hachage définissent des rondes (ou étapes de traitement ) appliquées successivement aux mots à traiter. 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 traitement à 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 (l/Tm) est élevée. Chaque étage de pipeline porte un mot courant en cours de traitement, symbolisé sur la figure 1 par une fléchette superposée au pipeline. 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 selon le mode d'opération CBC (Cipher Block Chaining). La figure 2 montre un système simplifié d'authentification de trame par hachage. La figure 3 montre un système générique de chiffrement ou d'authentification. La figure 4 montre le dispositif cryptographique conforme à l'invention. La figure 5 montre le circuit d'ordonnancement faisant partie du dispositif de la figure 3. La figure 6 montre la structure de la trame manipulée par le circuit d'ordonnancement. La figure 7 montre le diagramme d'état d'un processus de l'automate d'entrelacement. La figure 8 montre la structure interne de l'automate d'entrelacement. La figure 9 montre l'ensemble des diagrammes d'états activés par l'automate d'entrelacement. La figure 10 montre le jeu de registres à décalage servant à différer l'écriture dans la table de sortie. La figure 11 montre le chemin pris par les mots à traiter selon un mode de chiffrement CBC conforme à l'exemple de réalisation. La figure 12 montre la séquence de mots présentés au bloc cryptographique en fonction de la phase . La figure 13 montre un exemple d'états de trames dans la table d'entrée/sortie (350/380) à un instant donné. La figure 14 montre le dispositif cryptographique conforme à l'invention selon une variante où les tables d'entrée et de sortie contiennent des pointeurs au lieu des trames elles-mêmes. La figure 1 montre un système classique de chiffrement/déchiffrement selon le mode d'opération CBC. Les mots en clair sont introduits en (10) avec leur clé en (11) dans un pipeline de chiffrement (20) comportant quatre étages. Il est à noter la rétroaction de la sortie sur l'entrée (22) dans la phase de chiffrement. Chaque mot d'entrée subit une opération de OU exclusif avec le mot précédemment crypté de sorte qu'un seul mot ne peut être 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 Ci-,) avec Ed) la fonction de chiffrement et Ci le mot chiffré. 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). Le déchiffrement du mot crypté Ci avec la clé K s'exprime M, = DK (CD &commat; Cz J 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 d'un jeu de registres à décalage (24). La figure 2 montre un système simplifié d'authentification de trame par hachage. Les mots d'entrée sont introduits en (30) dans un pipeline de hachage (31) comportant quatre étages. La rétroaction de la sortie sur l'entrée (32) implique qu'un seul mot ne peut être traité dans le pipeline à un instant donné. Le hachage d'un mot M de rang i d'une trame peut s'exprimer de manière simpliste par hi = H (Mi, hi- avec H () la fonction de hachage et h, la valeur de hachage (empreinte). La valeur de hachage obtenue sur le dernier mot peut alors être insérée dans la trame via le commutateur (35) sur le lien (33) et cette dernière peut alors être envoyée à distance au travers d'un réseau non sécurisé. Arrivés à destination, les mots M ; de la trame sont alors hachés à nouveau selon les mêmes dispositions. La valeur de hachage obtenue sur le dernier mot peut alors être comparée à celle insérée préalablement dans la trame. L'égalité entre les deux démontre que la trame est intègre et n'a pas été altérée dans le réseau de télécommunications. Une clé sécrète, connue des extrémités et placée dans la valeur initiale de l'empreinte (ho) avant l'exécution du hachage, empêche une personne malveillante de générer une nouvelle empreinte valide sur des données modifiées. La figure 3 montre un système générique de chiffrement ou d'authentification. Les fonctionnalités de la fonction de chiffrement de la figure 1 et de hachage de la figure 2 y sont reprises. Nombre de modes d'opération à rétroaction existe en chiffrement comme le CBC, le CFB (Cipher Feedback Block) ou l'OFB (Output Feedback Block). De même, il existe de nombreuses variantes lorsqu'un algorithme de chiffrement à clé secrète est utilisé pour fournir un code d'authentification de message. Une fonction amont (48) combine les informations entrantes aux travers d'opérations généralement très simples comme le OU exclusif et aiguille les résultats vers ses sorties. Il en est de même de la fonction aval (49). L'intérêt du dispositif objet de l'invention est avéré dès lors qu'une rétroaction (32) est nécessaire. La figure 4 montre le schéma du dispositif cryptographique (600). Les données à traiter entrent dans le dispositif par la borne d'accès (601). Celles-ci se présentent sous forme de paquets de données de taille variable appelés trames. 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 fonction première du bloc de reconnaissance (100) est de reconnaître cette entête et d'y associer de manière biunivoque un identificateur local de flot ID (IDentificateur) lequel permet d'associer des paramètres communs aux trames de même entête. Ces paramètres sont consignés selon une procédure déterminée par le protocole du réseau ou de manière manuelle. Cette opération est symboliquement représentée par la console (500) connectée via le lien (501) au dispositif. Le format de la trame échangé avec le circuit (300) est représenté figure 6. La trame comporte quatre champs dont l'intérêt respectif sera détaillé plus loin : un champ système noté SYS (40), un champ paramètre PAR (41), un champ paramètre auxiliaire AUX (42) et les données utiles (43) devant être chiffrées ou hachées. Le champ SYS (40) renferme l'identificateur du flot ID, la longueur de la trame notée LG (45) et un champ DC (46) réservé à l'estampille de la trame par le circuit (300). L'espace non utilisé de SYS (40) peut être fort utile pour définir des options, non explicitées ici pour des raisons de clarté, comme par exemple des informations permettent l'inhibition du traitement en début du champ de données utiles (43) ou l'activation d'un algorithme particulier. Il est souhaitable que le champ de données utiles à traiter (43) soit un multiple de la taille du mot élémentaire manipulé par le bloc cryptographique. Le bloc (100) assure également cette fonction de cadrage en insérant des octets de bourrage . Le pipeline de fonction cryptographique (400) est connecté au circuit d'ordonnancement (300) par un lien d'entrée (401) lequel supporte le mot à traiter et un lien (402) dédié à fourniture des paramètres et par un lien de sortie (403) lequel supporte le résultat de la fonction cryptographique, à savoir un mot crypté pour la fonction de chiffrement ou une empreinte pour la fonction de hachage. Un signal spécifique du lien d'entrée (402) permet d'invalider l'exécution de la fonction cryptographique et de rendre le pipeline transparent . Cette fonction est utile car l'entête de la trame ne doit pas être traitée comme une simple donnée du champ (43). Il est à noter qu'une partie du champ (43) peut être aussi exonérée de traitement selon les spécificités du protocole de sécurité du réseau. L'horloge (650) fournit sur le lien (651) la base de temps et une date courante notée De partagée par l'ensemble des organes du circuit d'ordonnancement (300). La date courante est réalisée simplement par un compteur qui s'incrémente d'une unité à chaque cycle d'horloge. Les trames traitées issues du circuit d'ordonnancement sont envoyées vers le bloc de formatage (200), lequel est chargé de les mettre en conformité avec le format défini par le protocole de réseau. Enfin en sortie de (200), les trames 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, des moyens cryptographiques (800) permettent de les retrouver décryptées ou authentifiés en (801). DESCRIPTION DU CIRCUIT D'ORDONNANCEMENT (300) La figure 5 montre la constitution générale du circuit d'ordonnancement. L'exemple de réalisation choisi ici à titre non limitatif convient particulièrement bien à la conception d'un circuit intégré de chiffrement de trames Ethemet ou IP : - La fréquence de base de l'horloge (650) est de Fs=50Mhz et la date courante De comporte 16 e. b. soit un espace de comptage de zu = 65536. - Le pipeline de cryptage met en oeuvre l'algorithme AES (clé de 128 bits, 10 rondes). Il possède les caractéristiques suivantes : Le pipeline (400) chiffre des mots de 128 bits de large. Le temps de latence du pipeline Tpi est de 10 cycles d'horloge Fs. (un cycle d'horloge Fs par ronde). Un mot à crypter est envoyé à chaque cycle d'horloge Fs. Le pipeline comporte Npi= 10 étages. - La taille mot manipulée par le circuit d'ordonnancement est égale à 128 e. b. La taille maximale d'une trame est fixée à 1550 octets soit 97 mots (taille maximale d'une trame IP 1 Ethemet). Compte tenu de la taille de l'entête (champs SYS, PAR et AUX) fixée à 4 mots, une trame comporte au maximum 101 mots. - Le débit global maximum Dg du dispositif est de : Dg = Fs * 128 = 6, 4 Giga e. b. par seconde. L'organe d'estampille (340) L'organe d'estampille reçoit les trames entrantes, effectue leur datation puis les dépose dans une table d'entrée. Pour cela, les trames sont estampillées sitôt leur introduction effectuée sur le lien (301). L'organe d'estampille (340) dépose la valeur de De dans le sous champ DC (46) du champ SYS (40) de la trame dont le format est représenté figure 6. Un compteur local TEIN, initialisé à 0 au démarrage, est incrémenté à chaque trame arrivante et repasse à 0 après avoir atteint 255. Il définit l'index de base pointant dans la table d'entrée (350) où est stockée la trame courante. Selon l'exemple de réalisation, TE~IN comporte 8 e. b. de sorte que 28=256 trames peuvent être contenues simultanément dans la table d'entrée. TE~IN est également fourni à l'automate d'entrelacement (360) et l'organe d'extraction (390) via le lien (341). Le pointeur effectif d'écriture sur la table TE~IN~ADR est constitué par la concaténation de TE~IN sur ses poids forts et un compteur TE~IN~X sur ses poids faibles. TE~IN~X est égal au numéro d'ordre i du mot courant M, de la trame arrivante constituée des mots {Mo... M1... Mn-J Il est donc incrémenté à chaque mot arrivant de la trame et cela a partir de u. L espace de comptage de TEINX est de {0... 127} (soit un compteur de 7 e. b.) afin de pouvoir comptabiliser la totalité des mots d'une trame. L'écriture dans la table est opérée via le lien 353 qui comporte le mot à stocker associé à sa valeur de pointeur TE~IN~ADR. La table d'entrée est contenue dans une mémoire de 256 * 128 mots de 128 e. b. de large soit 4 Méga e. b. L'algorithme de l'organe d'estampille est le suivant : début TEIN TEINX 0/* positionnement en début de trame */ recevoir le premier mot SYS de la trame sur (301) marquer le champ DC de SYS avec la date courante De/* estampillage */ LG e champ LG de SYS/* lecture longueur trame */ stocker le mot SYS à l'adresse TE~IN~ADR de la table (350) LG LG-16/* mise àjour du reste à émettre. 1 mot = 16 octets */ répéter TEINX LG LG -16/* mise àjour du reste à recevoir */ tant que (LG > 0)/* test de fin de réception */ finsi TE~IN # TE~IN+1 /*passage trame suivante */ fin L'automate d'entrelacement (360) L'automate d'entrelacement (360) constitue le coeur du circuit. Il lit les mots des trames de la table d'entrée via le lien (351) indexée par l'adresse sur (352) et les envoie dans le pipeline cryptographique via (401) de sorte que l'espacement temporel entre deux mots d'une même trame est égal à Tpi cycles d'horloge. Pour une trame donnée, Tpi cycles après l'introduction d'un mot Mi, le mot suivant Mi+, est introduit alors que le mot M, traité et noté Ci sort justement du pipeline (400). Ci est alors introduit à nouveau en entrée selon le mode de rétroaction choisi et simultanément stocké dans la table de sortie (380). Cette dernière est d'une structure et d'une taille identique à la table d'entrée. On note par un triplet (x, y, z) les variables passées au bloc cryptographique avec x le mot à crypter, y la clé et z le témoin booléen d'activation de la fonction de cryptage : z = 0 signifie que le mot doit traverser le bloc cryptographique de manière transparente et z =1 signifie qu'il doit ressortir crypté. La structure des éléments (jLOBALTBUUl, iii (JUiX, ih (JUiAUK est la même que respectivement TEIN, TEINX, TEINADR. Ils référencent également la table d'entrée (350). TE~OUT est une variable de même taille que GLOBAL~TE~OUT. La concaténation de TE~OUT et TE~OUT~X constitue TE~OUT~ADR qui est émis via le lien (352). L'algorithme de traitement d'une trame est présenté ci-dessous. Son exécution définit un processus noté P. Un diagramme d'états animé par un automate (360) peut y être associé comme le montre la figure 7. De manière générale, un automate connaît un état à un instant donné et selon des conditions spécifiques de cet état qu'il évalue suivant les variables de son environnement, il migre vers un autre état et exécute les actions propres à cet état puis recommence à tester les conditions de passage vers d'autres états. Selon l'exemple de réalisation, cinq états numérotés SI... S5 sont définis, les états SI... S4 correspondant au traitement de l'entête et S5 au traitement du corps de la trame. Par optimisation, SI teste la présence de trame et anticipe simultanément la lecture du premier mot. La figure 8 représente le synoptique de cet automate (360). L'ensemble des états est contenu dans une variable d'états S constituée d'un ensemble d'e. b. mémorisés et maintenus à jour par l'automate lui-même. Selon une des caractéristiques de l'invention, Npi processus notés : PO o... P Npi-l, déphasés dans le temps de Tm=TpiINpi cycles d'horloge et traitant autant de trames, permettent d'élever le débit traversant global d'un facteur Npi. La figure 9 représente les diagrammes d'états des processus Po o... PN,-/actionnés cycliquement par le compteur de phases 0 o... 0 Npi-l (310). La figure 12 montre un exemple de flux de mots de trames notées Ta présenté ou issu du bloc cryptographique. Selon l'exemple de réalisation, la logique (320) de l'automate est commune mais les variables propres d'un processus sont stockées dans une mémoire (370) dont l'adresse, à Npi positions, est modifiée selon la sortie (311) du compteur de phases (310) de sorte qu'un processus retrouve ses variables et est activé tous les Tpi cycles d'horloges. Seul le compteur GLOBAL~TE~OUT (330) incrémenté via le signal (331) et lu sur le lien (332) reste global et partagé par l'ensemble des processus. La logique (320) de l'automate (360) apparaît ainsi multi-contextes : Elle gère Npi contextes et anime autant de processus P selon une périodicité Tpi. La mémoire (370), ici de type double port , permet la lecture des variables d'un processus via (372) puis leur écriture via (371) avec leur nouvelle valeur. En fait les traitements associés à un processus peuvent être étalés sur plusieurs cycles consécutifs, notamment à cause du temps d'accès à la table d entrée (350) : un petit pipeline de quelques cycles d'horloge, négligé ici pour préserver la clarté de l'exposé, s'établit alors entre les différents processus pour accéder à cette table. Relativement à leur lecture, le jeu de registres à décalage (312) retarde l'adresse d'écriture des variables mises à jour. Algorithme de l'automate : début GLOBALTEOUT TE~IN/* test file d'entrée non vide */ alors/* traitement file d'entrée non vide */ GLOBALTEOUT 0 /* **************** retour Etat 1 ************************* */ finsi fin fin La largeur d'un mot de la mémoire (370) est suffisamment large pour contenir l'ensemble des variables d'un processus à savoir, la variable d'état S, les variables TE~OUT, TE~OUT~X, LG et les variables booléennes TRAMEVALIDE et RETROACTION. Afin d'obtenir un accès plus rapide aux informations contenues dans la mémoire (370), certaines variables (notamment la variable d'état S) peuvent être placées dans des registres et sélectionnées par un multiplexeur selon la phase 0 courante. La figure 11 représente le schéma des chemins de données pris par les mots à traiter. La variable booléenne RETROACTION connectée au lien (328) sert à définir les instants où la rétroaction est validée par la porte (327) afin d'établir un OU exclusif par (326) conforme au mode de chiffrement CBC. Il est à noter que le vecteur d'initialisation (porté par le champ AUX de la trame) précède les données à chiffrer et est transmis de manière transparente au travers du bloc cryptographique. Il se trouve ainsi naturellement présent dans la rétroaction lorsque le premier mot à chiffrer est présenté au bloc cryptographique. Les autres modes de rétroaction en chiffrement et authentification peuvent être réalisés en modifiant ce schéma. La logique (320) contient en outre les moyens d'envoyer dans la table de sortie (380) via (383) les mots issus du bloc cryptographique sur (403) à l'adresse TSINADR : TS~IN~ADR est constitué par la sortie d'un jeu de registres à décalage (325) de Tpi mots alimenté par TEOUTADR de sorte que le mot issu du bloc cryptographique se trouve écrit à la même adresse dans la table de sortie que celle de sa lecture préalable dans la table d'entrée. Un signal de validation TRAMEVALIDE défini dans l'algorithme de l'automate, retardé également par (325) et noté TRAMEVAL permet de confirmer l'écriture dans la table de sortie. La figure 13 montre un exemple d'états de trames dans la table d'entrée/sortie (350/380) à un instant donné. Les trames récemment admises par l'organe d'estampille sont hachurées par le motif (501), celles en cours de traitement par l'automate d'entrelacement sont hachurées par le motif (502) et celles complètement traitées et disponibles pour l'organe d'extraction sont hachurées par le motif (503). Les trames longues mettent plus de temps à être traitées par l'automate, ainsi des trames courtes peuvent être complètement traitées avant d'autres plus longues préalablement arrivées. A noter que le nombre de trames en cours de traitement (hachurées 502) est nécessairement inférieur ou égal à Npi, ces trames étant associées de manière bi-univoque à un des processus Po o...P# Npi-1. Il est strictement égal à Npi quand GLOBAL~TE~OUT est différent de TEIN. L'organe d'extraction (390) L'organe d'extraction lit les trames dans la table de sortie et les transfère en sortie du circuit d'ordonnancement à un instant précis fonction de leur valeur respective d'estampille. Un compteur local TSOUT, initialisé à 0 au démarrage, est incrémenté à chaque trame sortante et repasse à 0 après avoir atteint 255. Il définit l'index de base pointant dans la table de sortie (380). Selon l'exemple de réalisation, TS~OUT comporte 8 e. b. Le pointeur effectif d'écriture TS~OUT~ADR est constitué par TSOUT sur ses poids forts et un compteur TS~OUT~X sur ses poids faibles. TS~OUT~X est égal au numéro d'ordre i du mot courant Ci de la trame sortante constituée des mots {Co... Ci... C. Il est donc incrémenté à chaque mot sortant de la trame et cela à partir de 0. L'espace de comptage de TS~OUT~X est de {0... I27} (soit un compteur de 7 e. b.). La lecture du mot courant dans la table de sortie est opérée via le lien 382 qui supporte le mot lu, tandis que le pointeur TEINADR sur la table est validé sur (381). L'algorithme de l'organe d'extraction est le suivant : début TSOUT TSOUTX -0/*jE'o/'e'Kg ? Kgn g/ï JeM Jg ag */ répéter lire le mot SYS pointé par TSOUTADR dans la table (380) DC e champ DC de SYS/* date d'estampillée */ LG G champ LG de SYS/* longueur de la trame */ tant que (DC (Dc-A) OU (TS~OUT = TEJN))/*test de trame à émettre */ Emettre le mot SYS vers la sortie (302)./* émission premier mot */ TSOUTX TS~OUT~X + 1/* passage au mot suivant */ LG LG-16/* mise à j ur du reste à emettre. 1 mot = 16 octets */ Répéter lire le mot courant TMP pointé par TSOUTADR dans la table (380) TS~OUT~X TS~OUT~X + 1 Emettre le mot TMP vers la sortie (302)./* émission mots suivants LG E- LG-16/* mise àjour du reste à émettre. 1 mot = 16 octets */ tant que LG > 0/* test de fin d'émission */ TS-OUT suivant cette date d'arrivée. D'autre part, afin d'éviter qu'une trame ne puisse être émise plusieurs fois (l'espace de comptage de Dc est limité) et que TS~OUT ne puisse doubler TEIN présenté sur (341), un test d'égalité est effectué entre TSOUT et TEIN pour bloquer une avancée intempestive de TSOUT. Le délai A est un paramètre important et mérite d'être discuté maintenant. Une trame de N mots traverse le bloc cryptographique en approximativement Tpi*N cycles d'horloge, soit pour la trame la plus grande et selon l'exemple de réalisation : 10* 20. 10-9 * 101 = 20, 2 ils. Ce temps fournit la limite basse de la valeur de A mais ne prend pas en compte la gestion d'un nombre quelconque de trames au travers du dispositif. Après simulations de pires cas, un facteur de 2 est à provisionner dans la détermination du délai total soit A= 40, 4 ils = 2020 cycles d'horloge. Pendant ce temps 2020/8 = 253 trames peuvent être introduites dans le circuit (on fait l'hypothèse que la taille minimale d'une trame est de 8 mots et introduite en 8 cycles soit 4 mots d'entête et 4 mots à crypter). Il apparaît évident donc que les tables d'entrée et sortie doivent au minimum contenir cette quantité de trames (soit 256 après arrondi). Le 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 8 km de fibre optique (vitesse-l : 5Ilslkm). Si la largeur des mots à traiter par le bloc cryptographique est différente de celle des mots manipulées sur les mémoires contenant les tables (350) et (380), l'automate d'entrelacement dispose d'un élément mémorisant par phase 0 pour stocker temporairement, c'est à dire tamponner , les mots issus des tables (350) et (380) afin de les mettre en adéquation avec une largeur différente de mot traité par le bloc cryptographique. Cet élément mémorisant peut être de type registre ou mémoire. Ce procédé est applicable quand la largeur de mot des tables est inférieure à celle du bloc cryptographique, situation probable avec les algorithmes de hachage qui manipulent des données de l'ordre de 512 e. b. Dans ce sens, la durée de chaque phase 0 peut être de plusieurs cycles d'horloge, notamment égale au rapport entre la taille du mot du bloc cryptographique et celle des tables. Ce procédé de tampon est également applicable au cas inverse où la largeur de mot des tables est supérieure à celle du bloc cryptographique, possibilité envisageable lorsque les tables (350) et (380) sont embarquées sur la puce intégrant le circuit d'ordonnancement (300). Une mémoire fonctionnant à une fréquence N*Fpermet l'accès de N blocs à la fréquence F, un multiplexeur affectant alors de manière cyclique un ou plusieurs accès mémoire à chacun des blocs. A noter que les mémoires SRAM (Static Random Access Memory) de type ZBT (Zero Bus Turn-around) ou QDR (Quad Data Rate) permettent d'atteindre des débits remarquablement importants dus à l'entrelacement optimisé des accès en lecture et é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 32 e. b. et à transfert sur double fronts de rafales de 4 * 32 e. b. suffit à supporter la bande passante nécessaire aux accès des tables (350) et (380) selon l'exemple de réalisation. Variantes du circuit d'ordonnancement (300) Selon une première variante de réalisation où le coût des mémoires guide les choix de conception, les tables d'entrée (350) et de sortie (380) sont en fait une seule et même table contenue dans une même mémoire. Un multiplexeur commun à quatre entrées et cadencé à une fréquence 4*Fs permet dans cette mémoire de manière tournante l'accès en écriture de l'organe d'estampille, l'accès en lecture des mots en clair puis l'accès en écriture par l'automate d'entrelacement et l'accès en lecture par l'organe d'extraction. Il est clair que la fréquence d'accès à cette table est doublée et peut poser des difficultés technologiques justifiant que les tables (350) et (380) puissent rester distinctes et disposées dans des mémoires différentes sur des dispositifs très haut débit. Il est à noter que le transfert transparent de l'entête ou de mots particuliers de la table d'entrée vers la table de sortie se trouve réalisé de facto lorsque ces tables ne font qu'une. Selon une deuxième variante, représentée à la figure 14, où l'objectif est de diminuer la taille des mémoires nécessaires au circuit d'ordonnancement de sorte qu'elles peuvent être embarquées sur un circuit intégré contenant ledit circuit, les tables d'entrée (350) et de sortie (380) contiennent seulement des pointeurs de trames au lieu des trames proprement dites. Ces dernières sont rangées uniquement dans une tierce table de trames (900) de taille modeste. A définit le nombre maximum de mots présents dans le circuit d'ordonnancement. La taille de la table de trames (900) est arrondie à la puissance de 2 supérieure soit 2048 mots selon l'exemple de réalisation. En entrée du circuit d'ordonnancement, la trame courante est directement envoyée après estampille via (901) dans la table de trames à l'adresse désignée par un pointeur de mots TTIN, lequel est incrémenté à chaque mot de trame introduite. Les trames sont donc stockées de manière contiguë de sorte que l'occupation de ladite table de trames se trouve optimisée. La table d'entrée (350) contient uniquement des pointeurs de trames. Elle est mise à jour par le pointeur TTIN correspondant au premier mot de ladite trame courante de sorte que la table d'entrée contient les pointeurs sur les débuts de trames. L'accès à un mot quelconque contenu dans la table de trames est effectué indirectement en additionnant la valeur contenue dans une entrée de la table (350) avec une valeur définissant le numéro d'ordre du mot de la trame pointée. La structure de la table de sortie (380) est identique à la table d'entrée (avec laquelle elle peut être confondue conformément à la première variante de l'invention) et la méthode d'accès à la table de trames via la table de sortie est naturellement identique. L'homme de métier n'aura aucune difficulté pour modifier les organes (340), (360) et (390) pour prendre en compte l'adressage indirect des trames au travers des tables d'entrée et sortie. REVENDICATIONS 1. Dispositif cryptographique pour un réseau haut débit de télécommunications (700) qui transmet des trames d'information d'un point d'accès à un autre, dispositif cryptographique (600) comportant : . au moins une borne d'accès d'entrée (601) supportant des trames à chiffrer ou à authentifier en provenance d'utilisateurs ou d'un autre réseau de télécommunications, e au moins une borne de raccord de sortie (602) pour émettre sur ledit réseau (700) lesdites trames chiffrées ou authentifiées, a des moyens (100) de reconnaître lesdites trames et de leur associer les paramètres de la fonction cryptographique à exécuter, . des moyens (500) d'affectation desdits paramètres, * des moyens (200) de mettre en conformité lesdites trames issues du circuit d'ordonnancement au format du protocole de réseau, w d'un bloc (400) de fonction cryptographique de mots mettant en oeuvre un algorithme de chiffrement à clé secrète ou de hachage, * d'une horloge (650) fournissant une base de temps et une date courante, * d'un circuit d'ordonnancement (300) des mots desdites trames au travers du bloc cryptographique autorisant une rétroaction de sa sortie sur son entrée desdits mots et restaurant à la sortie dudit circuit l'ordre initial d'introduction desdites trames à son l'entrée, dispositif caractérisé en ce que le circuit d'ordonnancement comporte, en outre : e un organe d'estampille (340) chargé de la datation de la trame courante par la date courante et de son introduction dans une table d'entrée (350), z une table d'entrée pour mémoriser les trames fournies par l'organe d'estampille, . un automate d'entrelacement (360) chargé d'extraire les mots desdites trames de la table d'entrée, de les émettre avec leurs paramètres respectifs dans le bloc cryptographique (400) et de les stocker dans une table de sortie (380) à leur issue dudit bloc cryptographique, e une table de sortie pour mémoriser les mots à l'emplacement désigné par l'automate d'entrelacement et dans laquelle sont reconstituées les trames traitées, e un organe d'extraction (390) chargé de lire la trame courante dans la table de sortie et de l'émettre en sortie du circuit d'ordonnancement à un moment relatif à sa date estampillée de sorte que le temps de traversée de toute trame au travers dudit circuit demeure constant. 2. Dispositif cryptographique selon la revendication 1 caractérisé en ce que l'organe d'estampille stocke les trames de manière séquentielle dans la table d'entrée, 3. Dispositif cryptographique selon les revendications 1 et 2 caractérisé en ce que les trames stockées dans la table d'entrée par l'organe d'estampille et en attente d'être prises en compte par l'automate d'entrelacement forment virtuellement une file d'attente de type premier entré, premier sorti , 4. Dispositif cryptographique selon la revendication 1 caractérisé en ce que l'automate d'entrelacement dispose d'un compteur de phases incrémenté de manière régulière et cyclique de sorte que le temps entre deux occurrences de même phase est égal au temps de traversée d'un mot quelconque au travers du bloc cryptographique, 5. Dispositif cryptographique selon les revendications 1 à 4 caractérisé en ce que l'automate d'entrelacement affecte à chacune de ces phases un processus apte à traiter une trame c'est à dire l'extraire de la tête de ladite file d'attente, la lire mot à mot dans la table d'entrée, l'émettre mot à mot dans le bloc cryptographique et à la stocker mot à mot dans la table de sortie à son issue dudit bloc, 6. Dispositif cryptographique selon les revendications 1 à 5 caractérisé en ce que un processus n'est actif que durant la phase qui lui est associée, 7. Dispositif cryptographique selon les revendications 1 à 6 caractérisé en ce que un processus traite un mot vers le bloc cryptographique et un mot issu dudit bloc pendant sa phase associée, 8. Dispositif cryptographique selon les revendications 1 à 7 caractérisé en ce que pour une trame associée à un processus donné, l'introduction d'un mot dans le bloc cryptographique et la sortie du mot précédent dudit bloc cryptographique apparaissent simultanées, de sorte qu'une rétroaction peut être établie au travers d'une fonction spécifique au mode d'opération choisi, 9. Dispositif cryptographique selon les revendications 1 à 8 caractérisé en ce que l'organe d'extraction, pour une trame donnée, compare la date estampillée et la date courante diminuée d'une valeur représentative d'un laps de temps fixe pour déclencher l'émission de ladite trame sur la sortie du circuit d'ordonnancement. 10. Dispositif cryptographique selon les revendications 1 à 9 caractérisé en ce que des mots d'une trame sont mémorisés dans une mémoire tampon du processus lorsque la largeur du mot manipulé par les tables d'entrée et de sortie diffère de celle du bloc cryptographique. 11. Dispositif cryptographique selon les revendications 1 à 10 caractérisé en ce que un processus lit ou écrit plusieurs mots d'affilée dans les tables d'entrée et sortie pendant sa phase associée lorsque la largeur de ceux-ci est inférieure à celle du mot manipulé par le bloc cryptographique, 12. Dispositif cryptographique selon les revendications 1 à 11 et une première variante caractérisé en ce que les tables d'entrée et de sortie ne forment qu'une et même table contenue dans une même mémoire. 13. Dispositif cryptographique selon les revendications 1 à 12 et une deuxième variante caractérisé en ce les tables d'entrée et de sortie contiennent des pointeurs de trames, les trames elles-mêmes étant stockées de manière contiguë dans une tierce table.