BE1003932A6 - Systeme cryptographique par bloc de donnees binaires. - Google Patents

Systeme cryptographique par bloc de donnees binaires. Download PDF

Info

Publication number
BE1003932A6
BE1003932A6 BE8900467A BE8900467A BE1003932A6 BE 1003932 A6 BE1003932 A6 BE 1003932A6 BE 8900467 A BE8900467 A BE 8900467A BE 8900467 A BE8900467 A BE 8900467A BE 1003932 A6 BE1003932 A6 BE 1003932A6
Authority
BE
Belgium
Prior art keywords
vector
sep
jump
sed
equal
Prior art date
Application number
BE8900467A
Other languages
English (en)
Original Assignee
Musyck Emile
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Musyck Emile filed Critical Musyck Emile
Priority to BE8900467A priority Critical patent/BE1003932A6/fr
Priority to EP90870060A priority patent/EP0395618B1/fr
Priority to DE69033174T priority patent/DE69033174T2/de
Priority to US07/515,236 priority patent/US5010573A/en
Application granted granted Critical
Publication of BE1003932A6 publication Critical patent/BE1003932A6/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

Ce système concerne principalement un algorithme d'encryptage par bloc de données binaires à clefs non révélés. Le vecteur de sortie de l'algorithe SED est donnée par le vecteur de numéro d'ordre ke*s modulo-2exp(n)-1 d'une séquence linéaire générée par un registre à décalage de n bits, ke étant le nombre composant la clef d'encryptage et s le numéro d'ordre du vecteur d'entrée dans cette séquence linéaire par rapport à une certaine origine. On effectue une double application de l'algortihme SED, le vecteur d'entrée de la seconde application étant donné par le résultat du produit arithmétique modulo-2exp(n)-1 du vecteur de sortie de la première application par la clef d'encryptage. En utilisant la clef conjugée kd, la même procédure permet de restituer le vecteur d'entrée. La vitesse d'encryptage est égale à environ le quart de la fréquence horloge.

Description


   <Desc/Clms Page number 1> 
 



  Système cryptographique par bloc de données binaires. 



   La présente invention est relative à un système cryptographique du type permettant de convertir un vecteur de données de n bits en un vecteur chiffré de n bits sous le contrôle d'une clef cryptographique k formée d'un vecteur également de n bits, n étant un nombre entier plus grand que 2, de préférence un nombre de Mersenne. 



   La méthode la plus sûre pour encrypter un texte consiste à additionner modulo-2 une séquence strictement aléatoire au texte clair. La même séquence, additionnée au texte encrypté, permet à la réception de restituer le texte original. Cette procédure implique de faire parvenir à l'avance au correspondant une clef aléatoire aussi longue que le message lui-même et qui ne sera utilisée qu'une seule fois. Ceci constitue une contrainte pratiquement inacceptable pour de longs messages dans la cryptographie à usage civil. 



   Toutefois, il est possible de générer une séquence pseudo-aléatoire à l'aide d'une clef d'initialisation introduite dans un circuit électronique spécialement congu pour une telle application. Pour que cette méthode puisse être valable, il importe que cette séquence ne puisse être reconstituée, même en connaissant l'algorithme qui l'a générée et une correspondance de texte chiffré à texte clair. Celle-ci doit être non linéaire, de longueur pratiquement infinie et présenter toutes les caractéristiques propres aux séquences aléatoires. La difficulté majeure de cette méthode d'encryptage est de réaliser un parallélisme correct entre la génération des séquences pseudo-aléatoires à l'émission et à la réception. 



   Pour s'affranchir de cette contrainte, certaines méthodes ont été proposées. Elles visent à encrypter chaque bloc de 

 <Desc/Clms Page number 2> 

 n bits à l'aide d'un algorithme réversible. Ces algorithmes doivent être conçus de manière à ne pas pouvoir reconstituer la clef d'encryptage lorsque l'on dispose d'un texte clair et d'un texte encrypté correspondant, l'un des deux pouvant être choisi. 



   Actuellement il existe surtout deux méthodes d'encryptage par bloc, à savoir la méthode dite"DES" (Data Encryption Standard, NBS FIPS PUB 46,17, jan. 1977) et la méthode   dite uRSA" proposée   par Rivest, Shamir et Adleman (A method for obtaining Digital Signatures and Public-key Cryptosystems, Rivest, Shamir and Adleman, MIT/LCS/TM-82, April 1977). 



   L'algorithme DES est utilisé mondialement et de nombreux circuits intégrés réalisant cette fonction sont proposés par différentes firmes. Bien que cet algorithme fasse appel à des transformations tant linéaires que non linéaires, celles-ci ont été agencées de manière à pouvoir effectuer tout le cheminement de l'encryptrage en sens inverse lorsque l'on dispose de la clef d'encryptage. 



   La seconde méthode concerne l'algorithme RSA. Celui-ci permet d'utiliser le même algorithme à l'encryptage et au déchiffrage avec des clefs conjuguées et, de plus, la connaissance d'une clef ne permet pas la reconstitution de l'autre clef. Cette dernière caractéristique toute spéciale a donné naissance à la cryptographie à clef publique. C'est une nouvelle méthode fort attrayante pour certaines applications propres à la cryptographie à usage civil. 



   Le standard DES présente de sérieux inconvénients : à savoir avant tout son manque de transparence. En effet, il fait appel à de nombreux tableaux de valeurs spéciales dont aucune théorie ne prouve que les valeurs adoptées constituent le meilleur choix. En l'absence d'explications valables, le doute subsiste que l'algoritme ne puisse receler un cheval de Troie. D'autre part, il est bien connu qu'il existe bien des entraves administratives à 

 <Desc/Clms Page number 3> 

 l'obtention des circuits DES à des fins civiles. 



   Le standard RSA convient spécialement pour procéder à l'échange des clefs secrètes à l'initialisation d'une liaison DES entre correspondants ne disposant pas de clef secrète commune. Pour ce faire, la clef secrète temporaire est encryptée à l'aide de la clef secrète de l'expéditeur, puis avec la clef publique du destinataire. A la réception, le message sera restitué par l'encryptage à l'aide de la clef secrète du destinataire, suivi de l'encryptage avec la clef publique de l'expéditeur. Le volume de calculs à effectuer pour l'encryptage et le déchiffrage est assez important et, de ce fait, le standard RSA est relativement très lent et ne convient pas pour une utilisation massive. 



   Un des buts essentiels de la présente invention est de proposer une solution alternative aux systèmes cryptographiques existants. 



   A cet effet, le système cryptographique, suivant l'invention, appelé système SED ("Secure European Device"), comprend des moyens permettant, en faisant usage d'un algorithme SED, à partir d'un vecteur d'entrée Es, appelé vecteur de source, correspondant aux données à chiffrer, de calculer un vecteur de sortie Ed, correspondant au texte chiffré qui est égal à l'état d'un registre à décalage linéaire correspondant à un registre composé de n éléments et d'au moins une boucle de contre-réaction, ces dernières étant formées de circuits ou-exclusif dont les entrées et les sorties sont en liaison avec les sorties et les entrées des éléments du registre à décalage de manière à obtenir pour ce registre à décalage la longueur maximun possible de 2exp (n)-l pour la séquence des états consécutifs, appelée séquence linéaire,

   chaque état de ce registre représentant un saut dont l'origine est un vecteur de référence,   appelé''origine-zéro",   et dont la valeur du saut est le numéro d'ordre de cet état dans la séquence linéaire, ces moyens étant encore tels pour que chaque 

 <Desc/Clms Page number 4> 

 saut puisse être exprimé sous forme d'une relation linaire REL-S en fonction des n premiers états de la séquence linéaire à partir de 
 EMI4.1 
 l'état "origine-zéro", les n états pouvant être groupés sous forme de n colonnes pour réaliser une matrice carrée, appelée MAT-0, laquelle matrice contenant implicitement tous les éléments caractérisant le registre à décalage, ladite relation REL-S constituant un invariant pour un saut comprenant un même nombre d'états consécutifs de la séquence linéaire entre l'origine et la destination du saut,

   l'origine du saut correspondant au premier vecteur d'un ensemble de n états consécutifs de la séquence linéaire, groupés en colonnes pour réaliser une matrice carrée MATS, le produit matriciel de cette matrice par le vecteur REL-S donnant la destination du saut, l'algorithme SED permettant de rechercher le vecteur de sortie précité, en faisant état de cette relation linéaire, lequel état de la séquence linéaire étant défini par un saut compté à partir du vecteur de   référence "origine-zéro"   égal à k fois le saut modulo-2exp (n)-l caractérisant le vecteur de source, le saut correspondant au vecteur de sortie de l'algorithme SED étant obtenu par une succession de sauts mis bout-à-bout et commençant à ce vecteur de référence, ces sauts étant de deux types,

   un premier type de saut égal au saut du vecteur de référence jusqu'au vecteur de source et un second type de saut égal au saut du vecteur de référence jusqu'à la destination du saut effectué en dernier lieu. 



   Avantageusement, le système cryptographique suivant l'invention comprend des moyens pour effectuer, dans un ordre bien défini, une succession d'opérations, chacune de ces opérations transformant un vecteur d'entrée en un vecteur de sortie, ce dernier vecteur servant de vecteur d'entrée dans l'opération suivante, l'ensemble de ces opérations comportant une ou plusieurs applications de l'algorithme SED se rapportant à des algorithmes SED dont les séquences linéaires sont égales ou différentes, 

 <Desc/Clms Page number 5> 

 lesdites applications étant suivies   ou/et   précédées d'autres opérations de brouillage, telles que la multiplication arithmétique modulaire, le coefficient multiplicateur étant égal ou différent de la clef utilisée, ou encore une suite de n opérations telles que des permutations,

   des substitutions ou des additions modulo-2 opérées sur les bits du vecteur concerné, le choix de ces opérations étant déterminé par la valeur 1 ou 0 du nième bit d'un vecteur secret, la clef par exemple, l'ordre de succession de toutes ces opérations pouvant être l'ordre direct ou l'ordre inverse suivant une commande externe au système. 



   D'autres détails et particularités de l'invention ressortiront de la description donnée ci-après à titre d'exemple non limitatif de quelques formes de réalisation particulières du système cryptographique suivant l'invention avec référence aux dessins annexés. 



   La figure 1 montre un bloc diagramme de l'algorithme SED. 



   Les figures 2,3 et 4 concernent certains détails de réalisation hardware de l'algorithme SED. 



   Des travaux de recherche dans le domaine des logarithmes discrets ont été publiés ces dernières années (Discret logarithms in finite fields and their cryptographie significance, A. M. Odlyzko, Eurocrypt 1984). Ces travaux qui sont à la base des études de cryptanalyse appliquées au système SED, ont mis en évidence la possibilité de calculer les logarithmes discrets correspondants à des vecteurs donnés dans une certaine base, mais cette recherche ne peut s'effectuer que par le biais d'une recherche semi-exhaustive. 



   Le système SED fait appel principalement à un algorithme simple, appelé SED, qui permet de calculer rapidement le vecteur de sortie dont le logarithme discret dans une base logarithmique donnée est égal au produit du nombre représentant la 

 <Desc/Clms Page number 6> 

 clef d'encryptage par le logarithme discret du vecteur d'entrée. Avec le produit des logarithmes, l'algorithme SED s'inspire en cela des travaux de W. Diffie et M. E. Hellman (New directions in cryptography IEEE Trans. Inform. Theory vol. IT-22, pp 644-654, 1976). L'application unique de cet algorithme ne présente aucune sécurité cryptographique car la recherche possible des logarithmes discrets des vecteurs d'entrée et de sortie permettrait de recalculer aisément la clef d'encryptage (Fast evaluation of logarithms in fields of characteristic of two, Don Coppersmith, IEEE trans. inform. theory vol.

   IT-30, pp 587-594). 



   La présente invention est basée sur le fait qu'une double application de l'algorithme SED, dans laquelle le vecteur de sortie de la première application aura été transformé par une fonction de brouillage avant de servir comme vecteur d'entrée pour la seconde application, peut présenter les garanties de sécurité pour autant que la mise en place de cette fonction de brouillage ne puisse pas être assimilée à une application de l'algorithme SED dont le coefficient pourrait être déterminé. En effet, dans cette hypothèse, le vecteur de sortie de la première application qui n'est pas connu, peut être n'importe quel vecteur des 2exp (n)-2 vecteurs possibles et de ce fait, la recherche de la clef nécessiterait une recherche exhaustive au niveau maximun.

   Il importe de remarquer qu'une double application de l'algorithme SED sans aucune transformation du vecteur intermédiaire équivaudrait à une seule application mais dont le coefficient k serait égal à kl*k2. 



   La multiplication modulaire, fonction aisément réversible, peut jouer le rôle de fonction de brouillage entre les deux applications de l'algorithme SED. En effet, une suite de multiplications arithmétiques modulaires effectuées en cascade génère une séquence qui n'est pas de même nature que celles générées par des fonctions linéaires d'additions modulo-2. Le 

 <Desc/Clms Page number 7> 

 coefficient multiplicatif peut être égal à la clef d'encryptage utilisée dans l'algorithme SED. En procédant de la sorte, on lie le vecteur de sortie de la première application de l'algorithme SED au vecteur d'entrée de la seconde application par une relation non linéaire où chaque bit d'un des vecteur est fonction de plusieurs bits de l'autre vecteur. 



   Des fonctions réversibles simples telles que la permutation, la substitution ou l'addition modulo-2 des bits d'un vecteur, utilisées comme fonction de brouillage, sont équivalentes, du moins dans leurs effets, à une application de l'algorithme SED mais dont le coefficient multiplicateur peut adopter plusieurs valeurs possibles. La mise en oeuvre de n fonctions simples, effectuées en cascade, avec le choix possible de chacune d'elles suivant la valeur 1 ou 0 du nième bit d'un vecteur secret, la clef par exemple, pourrait introduire des incertitudes de l'ordre 2exp (n). Le recours aux fonctions biunivoques simples semble fort attractif car il facilite la réalisation hardware et ne donne pas lieu à des reports dans les additions arithmétiques.

   Néanmoins, à cause de la nécessité de devoir réaliser la réversibilité de la fonction de brouillage pour effectuer le déchiffrage, le système d'encryptage doit contenir deux vecteurs de clef de n bits. De plus, la plus grande prudence s'impose pour vérifier le degré reel d'incertitude. 



   L'ensemble du système cryptographique SED peut être implanté aisément dans un circuit intégré. La taille des blocs de données sera choisie suffisamment grande pour exclure toute possibilité de cryptanalyse par recherche exhaustive. 



   L'algorithme SED est avant tout transparent : il permet aisément de comprendre la succession et la signification des opérations à effectuer. Contrairement au standard DES, la probabilité de retrouver le vecteur initial en effectuant des encryptages en cascade avec la même clef est pratiquement nulle. 

 <Desc/Clms Page number 8> 

 



   En vue de permettre une approche plus aisée de l'aspect théorique de l'algorithme SED, on exposera cette étude en termes de registre à décalage où les numéros d'ordre des vecteurs dans une séquence linéaire jouent le rôle de logarithmes discrets et où les structures des registres à décalage correspondent aux bases des systèmes logarithmiques. 



   Considérons un registre à décalage composé de n éléments et ayant une séquence d'états de longueur maximum égale à 2exp (n)-l. Comme ces états sont reliés entre eux par des relations linéaires, on appellera cette séquence la SEQUENCE LINEAIRE. Par convention, on désigne, suivant une forme de réalisation particulière, l'état du registre à décalage où tous les n éléments sont égaux à 1 comme étant l'état ORIGINE-ZERO de la séquence linéaire. Chaque état du registre à décalage peut être désigné par son numéro d'ordre dans la séquence, l'état ORIGINE-ZERO ayant le numéro d'ordre ZERO. 



   A partir des relations caractérisant une séquences linéaire, on a développé une méthode permettant d'établir l'état du registre dont le numéro d'ordre dans cette sequence linéaire est égal à la somme des numéros d'ordre de deux états donnés, les numéros d'ordre de ceux-ci n'étant pas connus. Cette méthode permet aussi de déterminer l'état du registre qui a le numéro d'ordre double du numéro d'ordre d'un état donné, le numéro d'ordre de ce dernier n'étant pas connu. Elle permet également de calculer l'état ayant le numéro d'ordre (k*s) modulo-2exp (n)-l dans la séquence linéaire, k étant un nombre donné sous la forme d'un développement binaire et s le numéro d'ordre d'un état donné appelé SOURCE, ce numéro d'ordre n'étant pas connu. 



   Dans l'algorithme SED, l'état du registre à décalage ayant le numéro d'ordre s correspond au texte SOURCE à encrypter, tandis que le nombre k joue le rôle de la clef d'encryptage. Le résultat de l'encryptage est donné par l'état du registre ayant le 

 <Desc/Clms Page number 9> 

 numéro d'ordre k*s modulo-2exp   (n)-l.   L'on démontre qu'en effectuant deux encryptages consécutifs avec des clefs ke et kd, qui vérifient la relation ke*kd = 1 modulo-2exp   (n)-l,   on retrouve le texte initial. Le calcul des clefs conjuguées est exposé dans les travaux de Rivest (A method for obtaining signatures and publics-key cryptosystems ; Rivest, Shamir and   Adleman,   MIT/LCS/TM 82, april 1977). Les fonctions d'encryptage et de déchiffrage font appel au même algorithme mais utilisent des clefs conjuguées.

   Suivant une forme de réalisation particulière de l'invention, le nombre de Mersenne 89 a été adopté comme valeur pour le nombre n de bits d'un bloc de données binaires de sorte que 2exp (89)-l est un nombre premier. 



   Il est intéressant de voir que 2exp (89)-2 contient un grand facteur premier : 2931542417. En effet, 2exp (89)-2 =   61897009642690137449562110 = 2*3*5*17*23*89*353*397*683*2113*2931542417.   



   Il existe deux structures de registre à décalage avec une seule boucle de contre-réaction donnant lieu à une séquence maximum. Les explications qui suivent concernent la structure basée sur le polynôme caractéristique PO + P51 + P89 = 0 (version SED-51) et sont facilement transposables pour le polynôme PO + P38 + P89 = 0 (version SED-38). Dans la première structure, l'élément 51 est additionné modulo-2 à l'élément 89 pour fournir l'élément 1 de l'état suivant de la séquence linéaire, tandis que tous les autres éléments sont décalés d'une position vers la droite. Une préférence a été donnée à la première structure, car elle est légèrement plus avantageuse en ce qui concerne sa réalisation hardware. 



   Chaque état Es appartenant à la séquence linéaire du registre à décalage peut être considéré comme étant la destination d'un saut prenant origine à l'état ORIGINE-ZERO, la valeur de ce saut étant le numéro d'ordre de l'état Es dans la séquence   lineaire.   La relation linéaire qui lie l'état Es en fonction des 89 

 <Desc/Clms Page number 10> 

 premiers états de la séquence linéaire générée à partir de l'ORIGINE-ZERO, peut s'écrire sous la forme du produit matriciel
Es   =MAT-0   * REL-S (1) MAT-0 étant la matrice carrée formée des 89 premiers états et REL-S le coefficient de linéarité. Les vecteurs Es et REL-S sont appelés respectivement SAUT et RELATION LINEAIRE. 



   Pour établir cette relation, il y a lieu de considérer la matrice carrée 89*89 formée par 89 colonnes correspondantes aux 89 premiers états de la séquence linéaire comptés à partir de l'état ORIGINE-ZERO. Tous les éléments m (i, l) de la première colonne, i allant de 1 à 89, sont égaux à 1. Dans la colonne 2, seul l'élément m   (l,   2) est égal à 0, tandis que tous les autres sont égaux à 1. A chaque colonne i suivante, l'élément m (i-l, i) ainsi que ceux situés plus haut dans la colonne sont nuls pour toutes les valeurs de i allant de 2 à 52. A la colonne 53, l'élément m   (l,   53) prend la valeur de la somme modulo-2 des éléments m (51,52) et m (89,52) c'est à dire 1. Toutes les valeurs 1 ou 0 des éléments de la matrice glissent suivant des diagonales descendantes.

   La structure de la matrice est représentée partiellement au tableau 1 donné ci-après. 



   La matrice   MAT-0   n'est pas singulière et elle possède une matrice inverse représentée au tableau 2, également repris-ciaprès. Il est à remarquer que la matrice inverse comporte une majorité de zéros, tandis que les éléments non nuls sont répartis suivant un arrangement très systématique composé principalement de quatre diagonales. Reprenons la relation (1) et calculons REL-S. On obtient aisément ce qui suit :
REL-S =   (MAT-O)   exp (-l) * Es (2)
Le vecteur REL-S est donc égal au produit matriciel de la matrice inverse   (MAT-O)   exp (-l) par le vecteur Es. La relation (2) établit une relation biunivoque entre les vecteurs REL-S et Es qui caractérisent un saut.

   On démontre facilement que le vecteur REL-S 

 <Desc/Clms Page number 11> 

 
 EMI11.1 
 
<tb> 
<tb> 0000000001.... <SEP> 55555555556.... <SEP> 8888888888
<tb> 1234567890.... <SEP> 01234567890.... <SEP> 0123456789
<tb> 01 <SEP> 1000000000.... <SEP> 00011111111.... <SEP> 1111111111
<tb> 02 <SEP> 1100000000.... <SEP> 00001111111.... <SEP> 1111111111
<tb> 03 <SEP> 1110000000.... <SEP> 00000111111.... <SEP> 1111111111
<tb> 04 <SEP> 1111000000.... <SEP> 00000011111.... <SEP> 1111111111
<tb> 05 <SEP> 1111100000.... <SEP> 00000001111.... <SEP> 1111111111
<tb> 06 <SEP> 1111110000.... <SEP> 00000000111.... <SEP> 1111111111
<tb> 07 <SEP> 1111111000.... <SEP> 00000000011.... <SEP> 1111111111
<tb> 08 <SEP> 1111111100.... <SEP> 00000000001.... <SEP> 1111111111
<tb> 09 <SEP> 1111111110.. <SEP> .. <SEP> 00000000000.... <SEP> 1111111111
<tb> 10 <SEP> 1111111111.. <SEP> ..00000000000..

   <SEP> ..1111111111
<tb> .. <SEP> ............ <SEP> ............... <SEP> ............
<tb> 



  .. <SEP> ............ <SEP> ............... <SEP> ............
<tb> 



  36 <SEP> 1111111111.. <SEP> ..00000000000.. <SEP> ..0000000011
<tb> 37 <SEP> 11111111111.. <SEP> ..00000000000.. <SEP> .. <SEP> 0000000001
<tb> 38 <SEP> 1111111111.... <SEP> 00000000000.... <SEP> 0000000000
<tb> 39 <SEP> 11111111111.. <SEP> ..00000000000.. <SEP> ..0000000000
<tb> .. <SEP> ............. <SEP> ............... <SEP> ............
<tb> 



  .. <SEP> ............. <SEP> ............... <SEP> ............
<tb> 



  50 <SEP> 1111111111.. <SEP> ..10000000000.. <SEP> ..0000000000
<tb> 51 <SEP> 1111111111.... <SEP> 11000000000.... <SEP> 0000000000
<tb> 52 <SEP> 1111111111.... <SEP> 11100000000.... <SEP> 0000000000
<tb> 53 <SEP> 11111111111.. <SEP> ..10000000000.. <SEP> .. <SEP> 0000000000
<tb> 54 <SEP> 1111111111.... <SEP> 11111000000.... <SEP> 0000000000
<tb> 55 <SEP> 1111111111.... <SEP> 11111100000.... <SEP> 0000000000
<tb> 56 <SEP> 1111111111.... <SEP> 11111110000.... <SEP> 0000000000
<tb> 57 <SEP> 1111111111.... <SEP> 11111111000.... <SEP> 0000000000
<tb> 58 <SEP> 1111111111.... <SEP> 11111111100.... <SEP> OOOOOOOOOJ)
<tb> 59 <SEP> 1111111111.... <SEP> 11111111110.... <SEP> 0000000000
<tb> 60 <SEP> 11111111111.. <SEP> ..11111111111.. <SEP> ..0000000000
<tb> .. <SEP> ............. <SEP> ............... <SEP> ............
<tb> 



  .. <SEP> ............. <SEP> ............... <SEP> ............
<tb> 



  80 <SEP> 11111111111.. <SEP> ..11111111111.. <SEP> ..1000000000
<tb> 81 <SEP> 1111111111.. <SEP> ..11111111111.. <SEP> .. <SEP> 1100000000
<tb> 82 <SEP> 1111111111.. <SEP> ..11111111111.. <SEP> .. <SEP> 1110000000
<tb> 83 <SEP> 1111111111.. <SEP> ..11111111111.. <SEP> ..1111000000
<tb> 84 <SEP> 1111111111.. <SEP> ..11111111111.. <SEP> ..1111000000
<tb> 85 <SEP> 1111111111.. <SEP> ..11111111111.. <SEP> ..1111000000
<tb> 86 <SEP> 1111111111.... <SEP> 111111111111.. <SEP> .. <SEP> 1111111000
<tb> 87 <SEP> 1111111111.. <SEP> ..11111111111.. <SEP> ..1111000000
<tb> 88 <SEP> 11111111111.. <SEP> ..11111111111.. <SEP> ..1111111110
<tb> 89 <SEP> 1111111111.... <SEP> 11111111111.. <SEP> .. <SEP> 1111111111
<tb> 
 
 EMI11.2 
 TABLEAU 1. Matrice MAT-O formée des 89 premiers vecteurs états du registre à décalage à partir du vecteur ORIGINE-ZERO (11111111... 



  ... 1111111111) 

 <Desc/Clms Page number 12> 

 
 EMI12.1 
 
<tb> 
<tb> 0000000001.... <SEP> 5555555556.... <SEP> 888888888
<tb> 1234567890.... <SEP> 1234567890.... <SEP> 123456789
<tb> 01 <SEP> 1000000000.... <SEP> 0100000000.... <SEP> 000000001
<tb> 02 <SEP> 1100000000.... <SEP> 0110000000.... <SEP> 000000000
<tb> 03 <SEP> 0110000000.... <SEP> 0011000000.... <SEP> 000000000
<tb> 04 <SEP> 0011000000.... <SEP> 0001100000.... <SEP> 000000000
<tb> 05 <SEP> 0001100000.... <SEP> 0000110000.... <SEP> 000000000
<tb> 06 <SEP> 0000110000.... <SEP> 0000011000.... <SEP> 000000000
<tb> 07 <SEP> 0000011000.. <SEP> .. <SEP> 0000001100.... <SEP> 000000000
<tb> 08 <SEP> 0000001100.... <SEP> 0000000110.... <SEP> 000000000
<tb> 09 <SEP> 0000000110.... <SEP> 0000000011.... <SEP> 000000000
<tb> 10 <SEP> 0000000011.. <SEP> ..0000000001.. <SEP> ..000000000
<tb> .. <SEP> ............

   <SEP> .............. <SEP> ...........
<tb> 



  .. <SEP> ............ <SEP> .............. <SEP> ...........
<tb> 



  36 <SEP> 0000000000.. <SEP> ..0000000000.. <SEP> ..000001100
<tb> 37 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 000000110
<tb> 38 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 000000011
<tb> 39 <SEP> 0000000000.. <SEP> ..0000000000.. <SEP> ..000000000
<tb> .. <SEP> ............ <SEP> .............. <SEP> ...........
<tb> 



  .. <SEP> ............ <SEP> .............. <SEP> ...........
<tb> 



  51 <SEP> 0000000000.. <SEP> ..1000000000.. <SEP> ..000000000
<tb> 52 <SEP> 0000000000.... <SEP> 1100000000.... <SEP> 000000000
<tb> 53 <SEP> 0000000000.... <SEP> 0110000000.... <SEP> 000000000
<tb> 54 <SEP> 0000000000.... <SEP> 0011000000.... <SEP> 000000000
<tb> 55 <SEP> 0000000000.... <SEP> 0001100000.... <SEP> 000000000
<tb> 56 <SEP> 0000000000.... <SEP> 0000110000.... <SEP> 000000000
<tb> 57 <SEP> 0000000000.... <SEP> 0000011000.... <SEP> 000000000
<tb> 58 <SEP> 0000000000.... <SEP> 0000001100.... <SEP> 000000000
<tb> 59 <SEP> 0000000000.... <SEP> 0000000110.... <SEP> 000000000
<tb> 60 <SEP> 00000000000.. <SEP> ..0000000011.. <SEP> ..000000000
<tb> .. <SEP> ............. <SEP> .............. <SEP> ...........
<tb> 



  .. <SEP> ............. <SEP> .............. <SEP> ...........
<tb> 



  80 <SEP> 0000000000000 <SEP> ..0000000000.. <SEP> ..000000000
<tb> 81 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 100000000
<tb> 82 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 110000000
<tb> 83 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 011000000
<tb> 84 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 001100000
<tb> 85 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 000110000
<tb> 86 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 000011000
<tb> 87 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 000001100
<tb> 88 <SEP> 0000000000.. <SEP> .. <SEP> 0000000000.... <SEP> 000000110
<tb> 89 <SEP> 0000000000.... <SEP> 0000000000.... <SEP> 000000011
<tb> 
 
 EMI12.2 
 TABLEAU 2.

   Représentation partielle de la matrice inverse (MAT-O) exp (-l) de celle du tableau 1. 

 <Desc/Clms Page number 13> 

 constitue un invariant propre au nombre d'états que caractérisent le saut et qu'il est indépendant de l'origine utilisée dans la formulation de la relation (2). 



   Notons que ce produit matriciel peut s'effectuer en hardware par le réseau appelé LINEAIRE formé à l'aide de 127 circuits du type OU-EXCLUSIF alors que la version SED-38 nécessitrait 141 circuits. La figure 2 donne ce réseau linéaire :   - le   lier élément du vecteur REL-S est égal à la somme modulo-2 des éléments 1,52 et 89 ; - les éléments d'indice i, i allant de 2 à 38, sont égaux à la somme modulo-2 des quatre éléments   i-l,   i,   i+50   et   i+51   du vecteur SAUT ; - les éléments d'indice i, i allant de 39 à 89, sont égaux à la somme modulo-2 des deux éléments   i-l   et i du vecteur SAUT. 



   Le vecteur REL-S permet de définir un saut comprenant un nombre d'états égal au nombre d'états compris entre le vecteur ORIGINE-ZERO et le vecteur SAUT. La prochaine étape consiste à rechercher le vecteur appelé vecteur DESTINATION appartenant à la même séquence linéaire et caractérisé par le même saut mais effectué à partir d'un état ORIGINE quelconque. Le vecteur DESTINATION Ed est obtenu par le produit matriciel
Ed = MAT-S * REL-S (3) où MAT-S désigne la matrice carrée formée des 89 états consécutifs appartenant à la séquence linéaire, la première colonne étant le vecteur ORIGINE du saut. 



   Il importe de se rendre compte que tous les éléments de la première ligne et de la première colonne de MAT-S se reproduisent tout au long des diagonales descendantes prenant naissance à ces éléments. Les 89 éléments de la colonne de gauche sont donnés par le vecteur ORIGINE du saut. Tous les éléments 

 <Desc/Clms Page number 14> 

 m (i, j) de la matrice MAT-S sont égaux aux   éléments m (i-l, j-1),   i et j allant de 2 à 89. Les éléments de la première ligne m   (l, j), j   allant de 2 à 89, sont égaux à la somme modulo-2 des éléments m (51, j-l) et m (89, j-l) pour la version SED-51, ce qui nécessite l'utilisation de 88 circuits OU-EXCLUSIF. Tous les éléments de la matrice MAT-S sont donc déterminés par le vecteur ORIGINE. 



   Le produit matriciel MAT-S * REL-S pourra donc être réalisé en hardware par 7921 (=89*89) mailles agencées suivant une structure matricielle. Cette structure sera commandée verticalement par le vecteur REL-S et diagonalement par le vecteur ORIGINE. Le résultat est appelé vecteur DESTINATION. Chaque élément de ce vecteur sera obtenu par la somme modulo-2 des signaux de sortie des 89 mailles appartenant à la ligne correspondante au rang de cet élément. En vue de réaliser le minimum de retard dû à la propagation du signal de sortie dans les circuits OU-EXCLUSIF, il importe que ceux-ci soient connectés suivant une structure en arbre de Noël renversé. Ceci nécessite 88 circuits OU-EXCLUSIF à deux entrées par ligne de la matrice. 



   Tout saut est caractérisé par deux éléments : son origine et sa valeur. L'origine est un état de la séquence linéaire, alors que la valeur d'un saut est exprimée sous la forme de l'état correspondant à ce saut à partir de 1'ORIGINE-ZERO. L'introduction d'un vecteur état représentant la valeur d'un saut à l'entrée du réseau LINEAIRE et d'un autre vecteur état représentant un vecteur ORIGINE dans la colonne de gauche de la matrice MAT-S donne lieu à la formation du vecteur DESTINATION correspondant au saut modulo- (2exp (89)-l) effectué partir du vecteur ORIGINE. 



  L'apparition du vecteur DESTINATION se fera avec un certain retard dû à la propagation des signaux dans les divers circuits électroniques. Comme le vecteur DESTINATION sert d'origine pour le calcul du saut suivant, ce vecteur devra être échantillonné dans le délai minimum après l'introduction des deux vecteurs aux entrées du 

 <Desc/Clms Page number 15> 

 réseau linéaire et de la matrice MAT-S. C'est ce laps de temps qui conditionne la vitesse d'encryptage du système SED. 



   L'application de l'algorithme SED consiste en la réalisation d'une succession de sauts, le premier partant de l'état ORIGINE-ZERO et le résultat se retrouvant dans le registre DESTINATION du dernier saut. L'origine d'un saut étant toujours la destination du saut précédent (ou l'ORIGINE-ZERO pour le premier saut), la première colonne de la matrice MAT-S est raccordée à la sortie du registre DESTINATION. 



   Il est proposé d'effectuer un saut égal à k   (l (k < 2exp (89) -1)   fois le saut de l'ORIGINE-ZERO jusqu'à un   vectrtir   d'entrée quelconque mis dans un registre appelé SOURCE, lequel correspond au texte à encrypter. A cet effet, un ensemble d'opérations sera effectué sous le contrôle d'un circuit PROGRAMMATEUR. Supposons que le registre CLEF contienne le nombre k sous forme binaire. A l'initialisation, tous les bits du registre DESTINATION sont mis à 1 car la succession de tous les sauts débute au vecteur ORIGINE-ZERO. Un circuit SCRUTATEUR, couplé avec un compteur pouvant être incrémenté de 0 à 90, examinera chaque bit du registre clef en commengant par le bit le plus significatif. L'état 0 du compteur correspond à la position d'attente.

   Au moment de la commande de l'encryptage, des impulsions horloge régulièrement espacées sont transmises vers la commande de l'échantillonnage du registre DESTINATION. Ces impulsions servent également à l'incrémentation du compteur du circuit SCRUTATEUR. Deux cas peuvent alors se présenter :   - si   le bit du registre CLEF désigné par le compteur est égal à 0, le circuit PROGRAMMATEUR a pour mission d'échantillonner le vecteur de la séquence linéaire de numéro d'ordre 2*nO qui est formé à l'entrée du registre DESTINATION, le vecteur de sortie de ce registre ayant le numéro d'ordre nO.

   A cet 

 <Desc/Clms Page number 16> 

 effet, une même impulsion horloge incrémentera le compteur et effectuera l'échantillonnage du registre DESTINATION, l'entrée du réseau LINEAIRE étant raccordée à la sortie du registre DESTINATION ;   - si   le bit du registre CLEF désigné par le compteur est égal à 1, la même opération exposée ci-dessus a lieu, mais de plus, elle est suivie d'une autre opération effectuant le raccordement de l'entrée du réseau LINEAIRE au registre SOURCE et l'échantillonnage du registre DESTINATION, ce qui a pour effet d'obtenir à la sortie de ce dernier registre, lors de l'examen du bit concerné, le vecteur de numéro d'ordre 2*nO+s. 



   Lorsque le compteur du circuit SCRUTATEUR a atteint le nombre 90, l'encryptage est terminé et le résultat se trouve dans le registre DESTINATION. En effet, si la clef k correspond au développement binaire : k = k89 * 2exp (88) + k88 * 2exp (87) +.... + k2 * 2 + kl où les bits k89,   k88,....,   k2 et kl adoptent les valeurs 1 ou 0, le produit : s * k =   ( (.. ( (s*k89)   *2 + s*k88) *2 + s*k87) *2 +.... +s*k2) *2 + s*kl peut être effectué par une série d'opérations de deux types : il y a 88 opérations de multiplication par 2 et, si le ième   bit ki   n'est pas nul, une opération d'addition. L'encryptage de l'algorithme SED peut être réalisé par 135 sauts en moyenne et la vitesse d'encryptage est égal au 2/3 de la fréquence horloge. 



   L'application du système cryptographique suivant l'invention sera décrite plus en détail ci-après. 



   Deux correspondants qui n'ont pas de clefs secrètes communes, peuvent se procurer une clef temporaire ou définitive par l'intermédiaire d'un organisme agréé pour la distribution des clefs. Au départ, chaque titulaire d'un terminal équipé d'un système encrypteur SED, est identifié par un numéro officiel, au même titre que les abonnés du réseau téléphonique ont chacun un numéro d'appel attribué par les soins de la régie des téléphones. 

 <Desc/Clms Page number 17> 

 



  Après sa sortie d'usine, le circuit intégré SED est mis à la disposition de l'organisme agréé, lequel y introduit une clef secrète propre au titulaire du système SED. Cette clef est le résultat de l'encryptage du numéro d'identification du titulaire à l'aide de la clef secrète de l'organisme agréé. La clef conjuguée à la clef calculée est également introduite dans le circuit intégré SED. Dans un souci de sécurité, le système SED est agencé de manière à ne pas permettre l'extraction des clefs hors du circuit intégré. 



   Avant de commencer une liaison encryptée, le correspondant A communique en clair à l'organisme agréé son numéro d'identification, ainsi que le résultat de l'encryptage du numéro d'identification du correspondant B à l'aide de sa clef secrète. A partir de ces deux informations, l'organisme agréé est en mesure d'établir un jeu de clefs faisant référence à trois paramètres : les numéros d'identification de A et B et le moment de la demande de la clef. Cette clef personnalise la liaison de A vers B. L'organisme agréé retourne à A un message qu'il déchiffre à l'aide de sa clef secrète. Deux des blocs déchiffrés concernent la clef temporaire de A et ainsi que les paramètres en clair de la liaison A vers B. Deux autres blocs, également déchiffrés par A, sont transmis à B qui les déchiffre à son tour à l'aide de sa clef secrète.

   Ces deux blocs donnent la clef conjuguée temporaire destinée à B ainsi que les trois paramètres en clair de la liaison chiffrée B vers A. Dans la procédure exposée ci-dessus, les clefs temporaires pour la liaison de A vers B et vice-versa, ne peuvent être extraites des circuits intégrés. Néanmoins, il est toujours possible à A et B de réencrypter d'anciens messages réalisés par l'organisme agréé pour rétablir les clefs d'une nouvelle liaison de A vers B. 



   En procédant de la sorte, A et B auront authentifié leur correspondant sans possibilité de fraude. Ce scénario implique une parfaite intégrité de l'organisme agréé. Pour accepter ce 

 <Desc/Clms Page number 18> 

 scénario, il est absolument nécessaire que le matériel informatique de cet organisme, qui procède au calcul des clefs, soit entièrement inclus dans un circuit intégré et dont les informations traitées ne sont pas accessibles extérieurement. Remarquons que si l'organisme agréé est reconnu comme tel aux yeux de la loi, le scénario susmentionné pourrait, moyennant quelques adaptations, présenter toutes les caractéristiques nécessaires pour pouvoir revendiquer d'une manière irréfutable devant une instance judiciaire qu'un tel message a bien été transmis de A à B, et a été réalisé à l'aide d'une clef créée à une certaine date. 



   Le scénario exposé ci-dessus peut être étendu au cas spécial d'un correspondant A en présence d'un grand nombre de correspondants B, ces derniers recevant tous le même message encrypté émis par A. Toujours en procédant par l'intermédiaire de l'organisme agréé, A peut distribuer à chaque correspondant Bi une clef qui lui est propre pour décrypter le message commun. La clef pour le correspondant Bi ne peut convenir pour le correspondant Bj. Un exemple concret de ce scénario est illustré par le cas d'un satellite météorologique émettant régulièrement des images des configurations nuageuses terrestres. Seules les   stations bai   qui auront acquitté le montant des redevances pour recevoir les signaux du satellite A seront en mesure de déchiffrer ces images météo. 



   Les figures qui ont été mentionnées ci-dessus seront décrites plus en détail ci-après. 



   La figure 1 exprime en hardware ce qui a été exposé précédemment sous l'aspect mathématique et illustre le cheminement de l'information entre les différents éléments du bloc diagramme de l'algorithme SED. Le circuit programmateur 1 assure la gestion des entrées 2 et sorties 3 des données via les registres SOURCE 4, CLEF 5 et DESTINATION 6. Il effectue la scrutation des bits du registre CLEF 5 et la commande de l'aiguillage de l'information venant soit du registre DESTINATION 6, soit du registre source 4, et allant à 

 <Desc/Clms Page number 19> 

 l'entrée du réseau LINEAIRE 7. La matrice MAT-S est commandée verticalement par la sortie du réseau LINEAIRE 7 et diagonalement par la sortie du registre DESTINATION 6. L'information de sortie de la matrice MAT-S est échantillonnée dans le registre DESTINATION 6. 



  Le circuit programmateur 1 est également en liaison avec le circuit multiplicateur modulaire 8 qui effectue le brouillage du vecteur intermédiaire aux deux applications de l'algorithme SED. 



   La figure 2 donne la structure du réseau LINEAIRE 7 formé de 127 circuits OU-EXCLUSIF. Les 89 entrées du réseau sont représentées partiellement du côté gauche de la figure. Ces entrées proviennent des 89 signaux de sortie, soit du registre SOURCE 4, soit du du registre DESTINATION 6. Les sorties là 89 du réseau LINEAIRE 7 figurent à droite de la figure et correspondent aux 89 signaux de commande du réseau vertical ou colonnes de la matrice MAT-S, l'élément 1 correspond à la première colonne de gauche et l'élément 89 correspond à la dernière colonne de droite. A titre   d'exemple,   on remarquera dans cette figure que le signal de sortie 1 est égal à la somme modulo-2 des signaux d'entrée   l,   2,52 et 53. 



  Les éléments non nuls de la matrice inverse du tableau 2 indiquent quels sont les signaux d'entrée qui interviennent   dans--la   somme modulo-2 des signaux de sortie. 



   La figure 3 montre les connexions aux deux entrées   a et   b des portes ET situées aux trois premières lignes et aux colonnes   j-1,   j   et j+1   de la MAT-S. Les commandes verticales sont données par les sorties du réseau LINEAIRE 7, tandis que la commande de la diagonale descendante qui prend naissance à l'entrée b de la porte ET de la colonne j de la première ligne est réalisée par la somme modulo-2 des signaux des deux commandes diagonales passant par les mailles 51 et 89 de la colonne j-1.

   La structure des deux réseaux de commande de la matrice MAT-S est illustrée par les relations ... = ET-INa   (i-1,   j) = ET-INa (i, j) = ET-INa (i+l, j) =... et 

 <Desc/Clms Page number 20> 

 ... = ET-INb (i-l, j-l) = ET-INb (i, j) = ET-INb (i+l, j+l) =.. pour les commandes verticales et diagonales. 



   La figure 4 illustre la structure en arbre de Noël renversé des connexions des circuits OU-EXCLUSIF (i, j) en ce qui concerne les 8 premières mailles de la ligne 89. Le circuit OUEXCLUSIF de la colonne 8 reçoit les signaux des colonnes 4 et 12. 



  Le circuit 16 reçoit les signaux 12 et 24. Le circuit 32 regroupe les signaux 16 et 48. Le signal venant du circuit 64 constitue le signal de sortie de la ligne 89 de la matrice MAT-S et est introduit à l'entée 89 du registre DESTINATION 6. Ne sont pas représentés à la figure 4, le circuit 80 qui reçoit les signaux venant des circuits 72 et 84 ainsi que le circuit 88 recevant les signaux du circuit 80 et de la sortie du circuit ET   (89, 89).   



   Un exemple de l'utilisation du système SED est donné par les résultats suivants : 
 EMI20.1 
 
<tb> 
<tb> Clef <SEP> d'encryptage <SEP> 103DDCFE682C3200D75076F
<tb> Clel <SEP> de <SEP> déchiffrage <SEP> 0891D608FFF6B717CD0621A
<tb> Il
<tb> Message <SEP> 1234567890ABCDEF1234567
<tb> Résultat <SEP> première <SEP> application <SEP> ODC6B3C9EE901586D3ADB95
<tb> Résultat <SEP> multiplication <SEP> modulaire <SEP> l1AC6E1807ClOOE7F5CA291
<tb> Résultat <SEP> seconde <SEP> application <SEP> 0020A6E36F842ACA668D3AB
<tb> 


Claims (13)

  1. Revendications 1. Système cryptographique du type permettant de convertir un vecteur de données de n bits en un vecteur chiffré de n bits sous le contrôle d'une clef cryptographique k formée d'un vecteur également de n bits, n étant un nombre entier, caractérisé en ce qu'il comprend des moyens permettant, en faisant usage d'un algorithme SED, à partir d'un vecteur d'entrée Es, appelé vecteur de source, correspondant aux données à chiffrer, de calculer un vecteur de sortie Ed, correspondant au texte chiffré qui est égal à l'état d'un registre à décalage linéaire correspondant à un registre composé de n éléments et d'au moins une boucle de contreréaction,
    ces dernières étant formées de circuits ou-exclusif dont les entrées et les sorties sont en liaison avec les sorties et les entrées des éléments du registre à décalage de manière à obtenir pour ce registre à décalage la longueur maximun possible de 2exp (n)-l pour la séquence des états consécutifs, appelée séquence linéaire, chaque état de ce registre représentant un saut dont l'origine est un vecteur de référence, appelé "origine'éro", et dont la valeur du saut est le numéro d'ordre de cet état dans la séquence linéaire, ces moyens étant encore tels pour que chaque saut puisse être exprimé sous forme d'une relation linéaire REL-S en fonction des n premiers états de la séquence linéaire à partir de l'état"origine-zéro",
    les n états pouvant être groupés sous forme de n colonnes pour réaliser une matrice carrée, appelée MAT- O, laquelle matrice contenant implicitement tous les éléments caractérisant le registre à décalage, ladite relation REL-S constituant un invariant pour un saut comprenant un même nombre d'états consécutifs de la séquence linéaire entre l'origine et la destination du saut, l'origine du saut correspondant au premier vecteur d'un ensemble de n états consécutifs de la séquence <Desc/Clms Page number 22> linéaire, groupés en colonnes pour réaliser la matrice carrée MATS, le produit matriciel de cette matrice par le vecteur REL-S donnant la destination du saut, l'algorithme SED permettant de rechercher le vecteur de sortie précité, en faisant usage de cette relation linéaire,
    lequel vecteur correspondant à l'état de la séquence linéaire étant défini par saut compté à partir du vecteur de référence"origine-zéro"égal à k fois modulo-2exp (n)-l le saut caractérisant le vecteur de source, le saut correspondant au vecteur de sortie de l'algorithme SED étant obtenu par une succession de sauts mis bout-à-bout et commençant à ce vecteur de référence, ces sauts étant de deux types, un premier type de saut égal au saut du vecteur de référence jusqu'au vecteur de source et un second type de saut égal au saut du vecteur de référence jusqu'à la destination du saut effectué en dernier lieu.
  2. 2. Système suivant la revendication 1, caractérisé en ce que le vecteur de référence"origine-zéro"est choisi comme ayant tous ses bits égaux à 1.
  3. 3. Système suivant l'une ou l'autre des revendications 1 et 2, caractérisé en ce qu'il comprend des moyens pour effectuer, dans un ordre bien défini, une succession d'opérations, chacune de ces opérations transformant un vecteur d'entrée en un vecteur de sortie, ce dernier vecteur servant de vecteur d'entrée dans l'opération suivante, l'ensemble de ces opérations comportant une ou plusieurs applications de l'algorithme SED se rapportant à des algorithmes SED dont les séquences linéaires sont égales ou différentes, lesdites applications étant suivies ou/et précédées d'autres opérations, telles que la multiplication arithmétique modulo-2exp (n)-l, le coefficient multiplicateur de celle-ci étant égal ou différent de la clef utilisée, ou encore une suite d'autres opérations telles que des permutations,
    des substitutions ou des additions modulo-2 effectuées sur les bits du vecteur concerné, le choix de ces opérations étant défini par les valeurs 0 ou 1 des <Desc/Clms Page number 23> bits d'un vecteur secret égal ou différent de la clef d'encryptage, l'ordre de succession de toutes ces opérations pouvant être l'ordre direct ou l'ordre inverse suivant une commande externe au système.
  4. 4. Système suivant la revendication 3, caractérisé en ce qu'il comprend des moyens permettant de restituer le texte clair à partir du texte encrypté par la succession des opérations précitées en ordre inverse en utilisant des clefs de déchiffrage kdl, kd2,... kdn conjuguées aux clefs kel, ke2,... ken où le jeu de clefs i est défini par la relation kel*kdl=l modulo 2exp (n)-l pour les applications de l'algorithme SED ainsi que pour la multiplication modulaire et en appliquant, également en ordre inverse, les fonctions de transformation opérant dans leur forme réciproque, les fonctions de permutation, de substitution ou d'addition modulo-2.
  5. 5. Système suivant l'une quelconque des revendications 1 à 4, caractérisé en ce que des moyens sont prévus pour permettre au moyen de l'algorithme SED d'effectuer les calculs précités en un nombre de pas de programme inférieur à 2*n, chaque pas faisant l'objet d'un saut défini par les vecteurs d'états qui déterminent sa valeur et son origine dans la séquence linéaire, la'relation caractérisant la valeur du saut étant obtenue par le produit matriciel de la matrice inverse (MAT-O) exp-l par le vecteur qui détermine la valeur du saut, le vecteur destination Ed du saut étant obtenu par le produit matriciel de la matrice MAT-S, cette dernière contenant implicitement la valeur de l'origine du saut, par le vecteur REL-S, le vecteur résultant de ce produit constituant le vecteur destination Ed du saut,
    lequel étant échantillonné dans un registre destination afin de pouvoir servir d'origine au saut suivant.
  6. 6. Système suivant l'une quelconque des revendications 1 à S, caractérisé en ce qu'il comprend un circuit programmateur assurant la gestion des entrées et des sorties des vecteurs dans <Desc/Clms Page number 24> les registres"source","clef"et"texte chiffré"et procédant aux applications des algorithmes SED ainsi qu'à la multiplication arithmétique modulaire du vecteur intermédiaire à deux applications consécutives par un vecteur secret de n bits pouvant être le vecteur clef, chaque application étant effectuée en introduisant en premier lieu le vecteur de référence"origine-zéro"dans le registre destination Ed et le vecteur d'entrée dans le registre source Es, ce circuit programmateur permettant d'examiner bit par bit le vecteur"clef"encommengant par le bit le plus significatif,
    en effectuant un seul saut si le bit examiné est égal à 0 avant de passer à l'examen du bit suivant, ce saut ayant, dans ce cas, comme origine et comme valeur le vecteur de sortie du registre "destination", le résultat de ce saut étant échantillonné dans le registre destination, lequel accusant le dédoublement du nombre d'états dans la séquence linéaire par rapport au vecteur destination précédent, le circuit programmateur effectuant deux sauts si le bit examiné du vecteur est égal à 1, le premier de ces sauts réalisant tout comme précédemment le dédoublement du saut du vecteur de référence "origine-zéro" jusqu'au vecteur destination obtenu au pas précédent, et exécutant ensuite le saut'ayant la valeur du vecteur source Es, chacun des bits étant enfin examiné jusqu'au dernier bit le moins significatif du vecteur clef,
    le résultat de l'application de l'algorithme SED se retrouvant ainsi dans le registre destination.
  7. 7. Système suivant l'une quelconque des revendications 1 à 6, caractérisé en ce que les moyens précités sont agencés d'une manière telle que le nombre n est égal à 89 et que le registre à décalage comporte une seule boucle de contre-réaction formée par un circuit ou-exclusif où l'entrée de l'élément 1 du registre à décalage reçoit la valeur logique de la somme modulo-2 des valeurs des éléments 51 et 89 de l'état précédent, constituant ainsi l'algorithme SED-51 ou la valeur logique de la somme modulo-2 des <Desc/Clms Page number 25> valeurs des éléments 38 et 89, constituant ainsi l'algorithme SED- 38.
  8. 8. Système suivant la revendication 7, caractérisé en ce que les moyens précités sont tels que la relation linéaire REL-S liant le vecteur valeur de saut aux 89 premiers états du registre à décalage à partir du vecteur de référence"origine-zéro"est donné par un réseau linéaire de circuits ou-exclusif, l'entrée de ce réseau étant connectée soit à la sortie du registre destination, soit au registre au registre source, le vecteur REL-S étant défini pour l'algorithme SED-51, par les caractéristiques suivantes :
    l'élément 1 est égal à la somme modulo-2 des valeurs des éléments 1,51 et 89 du vecteur à l'entrée du réseau LINEAIRE, les éléments d'indice i du vecteur REL-S, i allant 2 à 38, sont égaux à la somme modulo-2 des quatre éléments i-l, i, i+50 et i+51 du vecteur à l'entrée du réseau LINEAIRE et les éléments d'indice i, i allant de 39 à 89, sont égaux à la somme modulo-2 des deux éléments i-1 et i du vecteur à l'entrée du réseau LINEAIRE.
  9. 9. Système suivant la revendication 8, caractérisé en ce que les moyens précités sont tels que la colonne de gauche de la matrice MAT-S est donnée par le vecteur de sortie du registre destination et que dans cette matrice MAT-S, l'élément (i, j), i et j allant de 2 à 89, est égal à l'élèment l'élément (l, j) étant égal à la somme modulo-2 des éléments (51, J-1) et (89, j-1) dans l'algorithme SED-51.
  10. 10. Système suivant la revendication 9, caractérisé en ce que les moyens précités sont tels pour que l'élément i du vecteur d'entrée du registre destination soit égal au produit matriciel modulo-2 du vecteur formé de la ième ligne de la matrice carrée MAT-S par le vecteur REL-S, c'est-à-dire la somme modulo-2 des signaux de sortie des 89 circuits logiques ET à deux entrées, le jème circuit ayant une entrée raccordée à l'élément j du vecteur REL-S du réseau vertical, l'autre entrée étant raccordée à la <Desc/Clms Page number 26> diagonale descendante déservant l'élément (i, j) de la matrice MAT-S.
  11. 11. Système suivant l'une quelconque des revendications 1 à 10, caractérisé en ce que tous les circuits électroniques des fonctions logiques du système cryptographique SED sont réalisées dans un même circuit intégré, lequel circuit comporte également les éléments nécessaires à l'introduction de données pouvant être mises dans une mémoire permanente en vue de leur utilisation éventuelle comme clefs cryptographiques, ces dernières clefs ne pouvant être, ni lues ni extraites hors du circuit intégré, l'utilisation de ces clefs étant commandée extérieurement.
  12. 12. Système suivant l'une quelconque des revendications 1 à 11, caractérisé en ce que, suite à une commande extérieure, le résultat d'un encryptage est introduit dans un registre du type mémoire permanente ou volatile, le contenu de cette mémoire jouant le rôle de clef d'encryptage et ne pouvant pas être extrait hors du circuit intégré.
  13. 13. Système suivant l'une quelconque des revendications 1 à 12, caractérisé en ce que le circuit intégré contenant le système SED renferme un ensemble de circuits électroniques aptes à calculer les clefs conjuguées relatives à des vecteurs obtenus comme résultats d'encryptage du système SED en utilisant les clefs secrètes qu'il détient et à encrypter ces clefs conjuguées par le système SED à l'aide des mêmes clefs secrètes, toutes les informations relatives à l'ensemble de tous les calculs n'étant pas accessibles à l'extérieur du circuit intégré.
BE8900467A 1989-04-28 1989-04-28 Systeme cryptographique par bloc de donnees binaires. BE1003932A6 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
BE8900467A BE1003932A6 (fr) 1989-04-28 1989-04-28 Systeme cryptographique par bloc de donnees binaires.
EP90870060A EP0395618B1 (fr) 1989-04-28 1990-04-24 Système cryptographique par blocs de données binaires
DE69033174T DE69033174T2 (de) 1989-04-28 1990-04-24 Verschlüsselungssystem unter Verwendung von Binärdatenblöcken
US07/515,236 US5010573A (en) 1989-04-28 1990-04-27 Cryptographic system by blocs of binery data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE8900467A BE1003932A6 (fr) 1989-04-28 1989-04-28 Systeme cryptographique par bloc de donnees binaires.

Publications (1)

Publication Number Publication Date
BE1003932A6 true BE1003932A6 (fr) 1992-07-22

Family

ID=3884138

Family Applications (1)

Application Number Title Priority Date Filing Date
BE8900467A BE1003932A6 (fr) 1989-04-28 1989-04-28 Systeme cryptographique par bloc de donnees binaires.

Country Status (4)

Country Link
US (1) US5010573A (fr)
EP (1) EP0395618B1 (fr)
BE (1) BE1003932A6 (fr)
DE (1) DE69033174T2 (fr)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5351297A (en) * 1991-06-28 1994-09-27 Matsushita Electric Industrial Co., Ltd. Method of privacy communication using elliptic curves
US5272755A (en) * 1991-06-28 1993-12-21 Matsushita Electric Industrial Co., Ltd. Public key cryptosystem with an elliptic curve
DE4125812C2 (de) * 1991-08-01 1999-05-20 Siemens Ag Verfahren zur signaltechnisch sicheren Datenübertragung
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5159632A (en) * 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
ES2038912B1 (es) * 1991-09-30 1994-08-01 Alcatel Standard Electrica Sistema sincrono de aleatorizacion de datos en paralelo.
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
EP0624013B1 (fr) * 1993-05-05 1998-12-02 Zunquan Liu Dispositif et procédé de chiffrage de données
CA2162125C (fr) * 1993-05-05 2005-09-20 Zunquan Liu Repertoire de mappages pour cryptosysteme
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
ATE299631T1 (de) * 1993-11-30 2005-07-15 Canon Kk Verfahren und anordnung zur verschlüsselung/entschlüsselung auf der basis des montgomery-verfahrens unter verwendung von effizienter modularer multiplikation
DE4425158C2 (de) * 1994-07-16 2003-07-03 Deutsche Telekom Ag Verfahren und Anordnung zur Realisierung von kryptologischen Funktionen
US5859912A (en) * 1996-03-22 1999-01-12 General Electric Company Digital information privacy system
US6002778A (en) * 1996-08-07 1999-12-14 Lord Corporation Active structural control system and method including active vibration absorbers (AVAS)
JP3440763B2 (ja) * 1996-10-25 2003-08-25 富士ゼロックス株式会社 暗号化装置、復号装置、機密データ処理装置、及び情報処理装置
US6724895B1 (en) * 1998-06-18 2004-04-20 Supersensor (Proprietary) Limited Electronic identification system and method with source authenticity verification
US7137000B2 (en) 2001-08-24 2006-11-14 Zih Corp. Method and apparatus for article authentication
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5230439B2 (ja) * 2006-11-10 2013-07-10 裕典 若山 情報管理システム
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
US8311222B2 (en) * 2008-08-26 2012-11-13 GlobalFoundries, Inc. Hardware based multi-dimensional encryption
US8139765B2 (en) * 2008-12-29 2012-03-20 King Fahd University Of Petroleum & Minerals Elliptical polynomial-based message authentication code
US8184803B2 (en) 2008-12-29 2012-05-22 King Fahd University Of Petroleum And Minerals Hash functions using elliptic curve cryptography
US8165287B2 (en) * 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
US8705740B2 (en) 2008-12-30 2014-04-22 King Fahd University Of Petroleum And Minerals Elliptic curve-based message authentication code system and method
US20100169658A1 (en) * 2008-12-30 2010-07-01 Lahouari Ghouti Elliptic curve-based message authentication code
US8170203B2 (en) * 2008-12-31 2012-05-01 King Fahd University Of Petroleum & Minerals Message authentication code with elliptic polynomial hopping
US8189771B2 (en) 2009-01-12 2012-05-29 King Fahd University Of Petroleum & Minerals Hash functions with elliptic polynomial hopping
US8385541B2 (en) * 2010-02-18 2013-02-26 King Fahd University Of Petroleum And Minerals Method of performing elliptic polynomial cryptography with elliptic polynomial hopping
US8331558B2 (en) * 2010-02-18 2012-12-11 King Fahd University Of Petroleum And Minerals Method of cipher block chaining using elliptic curve cryptography
US8351601B2 (en) * 2010-02-18 2013-01-08 King Fahd University Of Petroleum And Minerals Elliptic polynomial cryptography with secret key embedding
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US8332651B2 (en) 2010-02-18 2012-12-11 King Fahd University Of Petroleum And Minerals Method of generating a password protocol using elliptic polynomial cryptography
US8509426B1 (en) 2010-12-01 2013-08-13 King Fahd University Of Petroleum And Minerals XZ-elliptic curve cryptography system and method
US8699701B2 (en) 2010-12-01 2014-04-15 King Fahd University Method of performing XZ-elliptic curve cryptography for use with network security protocols
JP6095792B2 (ja) * 2013-10-10 2017-03-15 日本電信電話株式会社 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
US10630760B2 (en) * 2018-03-28 2020-04-21 Ca, Inc. Adaptive encryption in checkpoint recovery of file transfers
US11816228B2 (en) 2020-09-25 2023-11-14 Advanced Micro Devices, Inc. Metadata tweak for channel encryption differentiation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1190809A (en) * 1967-06-26 1970-05-06 Ericsson Telefon Ab L M Improvements in and relating to the Generation of a Pulse Code
SE7714587L (sv) * 1977-12-21 1979-06-22 Brendstrom Hugo System for meddelanden
US4760598A (en) * 1981-07-23 1988-07-26 Racal Data Communications Inc. Coded data transmission system
GB8619453D0 (en) * 1986-08-08 1986-09-17 British Broadcasting Corp Data encipherment
JPH0727325B2 (ja) * 1987-02-13 1995-03-29 沖電気工業株式会社 暗号化装置

Also Published As

Publication number Publication date
EP0395618A2 (fr) 1990-10-31
DE69033174T2 (de) 2000-04-06
US5010573A (en) 1991-04-23
DE69033174D1 (de) 1999-07-29
EP0395618B1 (fr) 1999-06-23
EP0395618A3 (fr) 1992-10-21

Similar Documents

Publication Publication Date Title
BE1003932A6 (fr) Systeme cryptographique par bloc de donnees binaires.
Vazirani et al. Fully device independent quantum key distribution
EP3506556B1 (fr) Méthode d&#39;échange de clés authentifié par chaine de blocs
EP2232765B1 (fr) Procede et entite de chiffrement symetrique probabiliste
FR2496303A1 (fr) Systeme de chiffrage/dechiffrement de donnees a cle publique
CN109359470A (zh) 多方安全计算方法及装置、电子设备
FR2754659A1 (fr) Procede et appareil de generation de valeurs uniques impossibles a predire
CH634161A5 (fr) Appareil de dechiffrage d&#39;un message chiffre et son utilisation dans une installation de transmission.
FR2913154A1 (fr) Chiffrement broadcast base sur identite
EP2345202A2 (fr) Procédé de signature numérique en deux étapes
EP0346180B1 (fr) Dispositif de communication sécurisée de données
EP2457344B1 (fr) Procede de conversion d&#39;un premier chiffre en un deuxieme chiffre
WO2011083232A1 (fr) Procede de chiffrement et de dechiffrement
US20050060545A1 (en) Secure provision of image data
EP0756398B1 (fr) Système et procédé de communication de messages cryptés selon un procédé de type R.S.A. avec réduction modulaire pour obtenir un décryptage rapide
Tyagi et al. Cloud data security and various security algorithms
Sharma et al. Security architecture of cloud computing based on elliptic curve cryptography (ECC)
CN113961952A (zh) 基于稀土量子存储的量子数字签名方法及系统
FR3035293A1 (fr)
FR2913153A1 (fr) Chiffrement base sur identite
EP1642413B1 (fr) Procede de chiffrement/dechiffrement d un message et disposi tif associe
Weier Experimental quantum cryptography
WO2008119901A2 (fr) Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees
WO2023057649A1 (fr) Procédé de génération d&#39;un nombre pseudo-aléatoire et procédé de chiffrement symétrique d&#39;un message
Cyril et al. DATA DIVISION IN CLOUD FOR SECURED DATA STORAGE USING RSA ALGORITHM

Legal Events

Date Code Title Description
RE20 Patent expired

Owner name: MUSYCK EMILE

Effective date: 19950428