FR2786050A1 - Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication - Google Patents
Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication Download PDFInfo
- Publication number
- FR2786050A1 FR2786050A1 FR9814279A FR9814279A FR2786050A1 FR 2786050 A1 FR2786050 A1 FR 2786050A1 FR 9814279 A FR9814279 A FR 9814279A FR 9814279 A FR9814279 A FR 9814279A FR 2786050 A1 FR2786050 A1 FR 2786050A1
- Authority
- FR
- France
- Prior art keywords
- internal
- character
- alphabet
- vector
- result
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C5/00—Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé, un dispositif et un support d'enregistrement pour sécuriser des messages dans un réseau. On élabore une table (T) de caractères internes en produisant de façon pseudo-aléatoire et en juxtaposant les vecteurs internes formés chacun d'une permutation réversible de l'alphabet interne. Selon la suite (SZ) des valeurs d'une variable Z, on sélectionne un vecteur dans la table et, dans ce vecteur, un caractère interne permettant de substituer un caractère résultat à un caractère de départ.
Description
PROCEDE, DISPOSITIF ET SUPPORT D'ENREGISTREMENT POUR
SECURISER LA TRANSMISSION RAPIDE D'IMAGES, DE SONS,
DE TEXTES OU DE DONNEES TECHNIQUES DANS UN RESEAU
DE COMMUNICATION.
SECURISER LA TRANSMISSION RAPIDE D'IMAGES, DE SONS,
DE TEXTES OU DE DONNEES TECHNIQUES DANS UN RESEAU
DE COMMUNICATION.
L'invention concerne la sécurisation de la transmission d'images, de sons, de textes ou de données techniques sous forme de messages dans un réseau de communication reliant des dispositifs informatiques et/ou électroniques dont au moins un dispositif, dit dispositif émetteur, comprend des moyens aptes à réaliser un chiffrement de messages avant de les émettre sur le réseau, et dont au moins un dispositif, dit dispositif récepteur, comprend des moyens aptes à réaliser un déchiffrement de messages qu'il reçoit du réseau.
Dans les réseaux de communication (de type INTERNET,
INTRANET, téléphonie mobile,...), il peut tre souhaitable de ne faire circuler certains messages que sous forme chiffrée. De nombreux systèmes cryptographiques ou de chiffrement ont déjà été proposés. La plupart d'entre eux utilisent des procédés de chiffrement et déchiffrement symétriques utilisant la fonction"OU EXCLUSIF" (XOR) qui présente la propriété d'tre réversible à droite et à gauche, c'est-à-dire : (a XOR b) XOR b = a
a XOR (a XOR b) = b
La propriété de réversibilité est avantageuse pour les procédés de chiffrement et déchiffrement symétriques, c'est-à-dire dans lesquels le déchiffrement est la fonction réciproque du chiffrement et dans lesquels on utilise les mmes clés.
INTRANET, téléphonie mobile,...), il peut tre souhaitable de ne faire circuler certains messages que sous forme chiffrée. De nombreux systèmes cryptographiques ou de chiffrement ont déjà été proposés. La plupart d'entre eux utilisent des procédés de chiffrement et déchiffrement symétriques utilisant la fonction"OU EXCLUSIF" (XOR) qui présente la propriété d'tre réversible à droite et à gauche, c'est-à-dire : (a XOR b) XOR b = a
a XOR (a XOR b) = b
La propriété de réversibilité est avantageuse pour les procédés de chiffrement et déchiffrement symétriques, c'est-à-dire dans lesquels le déchiffrement est la fonction réciproque du chiffrement et dans lesquels on utilise les mmes clés.
La fonction OU EXCLUSIF présente néanmoins d'autres propriétés qui, par contre, sont néfastes pour la sécurité du chiffrement, à savoir la commutativité, l'associativité et l'existence d'un élément neutre. Du fait de ces propriétés, la fonction OU EXCLUSIF est sensible aux tentatives de déchiffrage, dites attaques à texte clair connu (D 1"CRYPTOGRAPHIE APPLIQUEE",
Bruce SCHNEIDER, International Thomson Publishing, 1996,2dme édition, p.14).
Bruce SCHNEIDER, International Thomson Publishing, 1996,2dme édition, p.14).
En effet, x étant une donnée déchiffrée et c la donnée chiffrée correspondante, c = x XOR z, z étant une clé de codage, si on connaît un couple particulier de données x et c, on peut déchiffrer ensuite les autres données chiffrées c', c'est-à-dire trouver les données déchiffrées x'correspondantes par le fait que : x XOR c = z
d'où x'= c'XOR z = c'XOR (x XOR c)
Ainsi, les procédés connus, dits par substitution, tels que le procédé VERNAM (US-1 310 719), ou les procédés VERNAM adaptés pour des moyens informatiques et utilisant un OU EXCLUSIF (FR-2210307) sont en général considérés comme peu fiables, car sensibles aux attaques à texte clair connu. Ils sont donc peu utilisés.
d'où x'= c'XOR z = c'XOR (x XOR c)
Ainsi, les procédés connus, dits par substitution, tels que le procédé VERNAM (US-1 310 719), ou les procédés VERNAM adaptés pour des moyens informatiques et utilisant un OU EXCLUSIF (FR-2210307) sont en général considérés comme peu fiables, car sensibles aux attaques à texte clair connu. Ils sont donc peu utilisés.
Il est à noter qu'une solution envisagée pour renforcer les procédés par substitution vis-à-vis de certaines attaques cryptanalytiques consiste à utiliser une suite de clés de codage produite par un générateur pseudo-aléatoire imprédictible (par exemple le générateur connu dit BBS tel que décrit par exemple dans (D2"CRYPTOGRAPHIE-THEORIE ET PRATIQUE", Douglas STINSON, International Thomson Publishing, 1996, p. 335). Mais, outre le fait que cette solution ne résout pas le problème de l'attaque à texte clair connu, elle augmente considérablement le temps de chiffrement et de déchiffrement. En effet, les générateurs pseudo-aléatoires imprédictibles connus sont très lents.
Pour pallier l'inconvénient précité, des systèmes de chiffrement utilisant le OU EXCLUSIF, on peut penser à changer la clé de codage z le plus souvent possible, en tous cas pour chaque nouveau message.
En particulier, dans les procédés du type dit à technique du masque jetable, ou"one-time-pad" (cf. D1 p. 15-18), on génère et on mémorise préalablement dans chaque dispositif émetteur et dans chaque dispositif récepteur, une pluralité de suites Z = zl, z2,..., zi,..., et on sélectionne l'une d'entre elles pour le chiffrement ou le déchiffrement de chaque message. Ces procédés sont fiables et résistants, mais présentent l'inconvénient majeur de nécessiter une mme configuration de l'ensemble des dispositifs du réseau, et donc la transmission entre ces dispositifs d'une grande quantité d'informations (toutes les suites Z) qui doivent rester impérativement secrètes. En outre, les suites Z étant chacune de longueur supérieure ou égale à la taille maximum d'un message, elles imposent de prévoir, dans chaque dispositif, une place mémoire de grande taille réservée à ce seul procédé de chiffrement. Autrement dit, ces procédés ne sont pas adaptés au chiffrement de messages de grande taille ou de taille inconnue, ou dont la taille n'est pas limitée.
Il est à noter que les procédés connus, dits asymétriques, visant à éviter la transmission de toute information secrète (non chiffrée) sur le réseau, utilisent en fait de façon sous-jacente au moins un procédé symétrique.
Par ailleurs, d'autres solutions sont connues pour pallier ce problème de l'attaque à texte clair connu consistant par exemple à utiliser des procédés de chiffrement et déchiffrement complexes qui ne sont pas du type à substitution (chiffrement par blocs, par registres à décalage,...). Ainsi, le procédé le plus couramment utilisé depuis plus de 20 ans aux USA est le procédé dit DES ("data encryption standard") qui n'est pas un procédé par substitution (cf. Dl, pp. 281-318 ; D2 pp. 65-97).
Dans tous les cas, le problème qui se pose alors est celui du temps de chiffrement et déchiffrement et donc du coût de traitement associé.
US-4 979 832 décrit un procédé de chiffrement par substitution dans lequel on utilise une table de substitution inversible comprenant une et une seule fois chaque valeur chiffrée. La valeur de chaque caractère clair du message permet de sélectionner dans la table l'élément qui devient la valeur chiffrée, et la table de substitution est changée ou réorganisée après chaque substitution d'un caractère, selon une séquence pseudo-aléatoire.
Ce procédé est plus résistant, vis-à-vis de l'attaque à texte clair connu, qu'une simple fonction OU EXCLUSIF, puisque la table de substitution change de façon pseudo-aléatoire à chaque substitution. Néanmoins, la performance de ce procédé est directement liée à celle du générateur de séquence pseudo-aléatoire utilisé. Si un générateur imprédictible est utilisé, le traitement devient alors aussi lent que ce générateur. Or, la vitesse de traitement avec un tel générateur pseudo-aléatoire est en pratique incompatible avec les contraintes des réseaux de communication modernes.
L'invention vise donc à pallier l'ensemble de ces inconvénients.
Ainsi, l'invention vise à proposer un procédé qui permette le chiffrement et le déchiffrement de messages par substitution et qui présente une résistance améliorée aux attaques cryptanalytiques (y compris pour les opposants connaissant le principe du procédé de chiffrement/déchiffrement), mais qui simultanément ne nécessite pas une taille mémoire ni un temps de traitement incompatibles avec les contraintes des réseaux de communication modernes.
L'invention vise en particulier à proposer un procédé qui présente une résistance améliorée aux attaques à texte clair connu sans nécessiter l'utilisation d'un protocole de type à masque jetable ("one-time-pad"), et qui puisse tre utilisé avec des messages de taille quelconque, constante ou variable, connue ou inconnue, limitée ou illimitée.
En outre, l'invention vise à proposer un procédé par substitution qui ne nécessite pas l'utilisation d'un générateur pseudo-aléatoire imprédictible-et notamment qui peut tre mis en oeuvre avec un simple générateur pseudo-aléatoire apériodique ou de période longue-.
L'invention vise aussi à proposer un procédé dont les performances peuvent tre aisément adaptées pour optimiser le niveau de sécurité obtenu selon les performances en vitesse de traitement et en capacité mémoire des dispositifs émetteurs et récepteurs et du réseau de communication.
L'invention vise ainsi à proposer un procédé présentant, pour un niveau de sécurité équivalent aux procédés par substitution antérieurs, un coût de traitement grandement diminué ou, inversement, pour un coût de traitement équivalent, un niveau de sécurité accru. Le coût de traitement d'un procédé de chiffrement ou de déchiffrement est lié au temps moyen de traitement en ligne pour chaque caractère du message à chiffrer ou à déchiffrer, et à son degré de compatibilité avec les performances-notamment en capacité mémoire et en vitesse de traitement-des dispositifs émetteurs et récepteurs normalement utilisés sur le réseau.
L'invention vise aussi à proposer un procédé résistant aux attaques cryptanalytiques : attaque à texte chiffré connu, attaque à texte clair connu, attaque à texte clair choisi, attaque par bibliothèque de textes clairs et/ou chiffrés connus, attaque exhaustive, cryptanalyse statistique, cryptanalyse différentielle, attaque adaptive....
L'invention vise aussi à proposer un procédé facile et rapide à mettre en oeuvre sur les dispositifs émetteurs et récepteurs d'un réseau de communication.
L'invention vise en outre à proposer un dispositif émetteur et/ou récepteur et un support d'enregistrement permettant la mise en oeuvre d'un procédé selon l'invention.
Dans tout le texte de la présente demande, on adopte la terminologie suivante :
-alphabet : toute suite ordonnée finie d'une pluralité d'unités élémentaires distinctes de données, dites caractères, permettant de coder des informations ; cette notion englobe ainsi notamment les bases de numération, les caractères étant des chiffres ; les alphabets des langues humaines, les caractères étant des lettres ; les alphabets des langages informatiques ; les ensembles de caractères des systèmes de codage (par exemple le code ASCII)....
-alphabet : toute suite ordonnée finie d'une pluralité d'unités élémentaires distinctes de données, dites caractères, permettant de coder des informations ; cette notion englobe ainsi notamment les bases de numération, les caractères étant des chiffres ; les alphabets des langues humaines, les caractères étant des lettres ; les alphabets des langages informatiques ; les ensembles de caractères des systèmes de codage (par exemple le code ASCII)....
-vecteur : toute suite finie ordonnée de caractères d'un mme alphabet ; on remarque ainsi que tout alphabet peut tre considéré comme un vecteur particulier ;
-message : toute suite ordonnée de caractères d'un mme alphabet, codant au moins une information, et destinée à tre transmise sur un réseau de communication ;
-numéro d'ordre d'un caractère dans un alphabet ayant N caractères : l'alphabet ordonné étant en relation biunivoque avec le sousensemble {1,2,..., i,..., NI de nombres entiers, à chaque caractère de l'alphabet correspond un et un seul nombre entier i de ce sous-ensemble, dénommé numéro d'ordre de ce caractère ;
-rang n d'un caractère dans un vecteur de N caractères : le nombre entier n compris entre 1 et N permettant de repérer le n-ième caractère dans la suite formant le vecteur ;
-table : toute juxtaposition de vecteurs ayant tous un mme nombre de caractères appartenant à un mme alphabet ;
-générateur pseudo-aléatoire : tout dispositif apte à générer des suites de nombres entiers, aussi longues que souhaité, apparemment aléatoires ; chaque suite étant générée à partir d'un ensemble de caractères, dit mot-clé, de longueur finie généralement courte, pouvant tre choisi parmi un grand nombre de mots-clés ; deux suites générées à partir d'un mme mot-clé par le mme générateur pseudo-aléatoire étant toujours identiques (un générateur pseudo-aléatoire n'étant donc pas vraiment aléatoire) ; deux mots-clés différents, et mme peu différents, générant deux suites généralement très différentes, la suite générée par un mme générateur pseudo-aléatoire ne dépendant que de la valeur du mot-clé ; cette notion englobe les générateurs pseudo-aléatoires imprédictibles à gauche et/ou à droite tels que le générateur BBS, mais n'est pas limitée à ces générateurs (cf. D2, chapitre 12) ;
-définition ou évolution d'un ensemble de caractères ou d'une suite de caractères de façon pseudo-aléatoire : le fait de générer ou de faire évoluer l'ensemble de la suite ou les caractères de la suite en utilisant au moins un générateur pseudo-aléatoire, de façon au moins difficilement prévisible sans la connaissance du (des) mot (s)-clé (s) utilisé (s).
-message : toute suite ordonnée de caractères d'un mme alphabet, codant au moins une information, et destinée à tre transmise sur un réseau de communication ;
-numéro d'ordre d'un caractère dans un alphabet ayant N caractères : l'alphabet ordonné étant en relation biunivoque avec le sousensemble {1,2,..., i,..., NI de nombres entiers, à chaque caractère de l'alphabet correspond un et un seul nombre entier i de ce sous-ensemble, dénommé numéro d'ordre de ce caractère ;
-rang n d'un caractère dans un vecteur de N caractères : le nombre entier n compris entre 1 et N permettant de repérer le n-ième caractère dans la suite formant le vecteur ;
-table : toute juxtaposition de vecteurs ayant tous un mme nombre de caractères appartenant à un mme alphabet ;
-générateur pseudo-aléatoire : tout dispositif apte à générer des suites de nombres entiers, aussi longues que souhaité, apparemment aléatoires ; chaque suite étant générée à partir d'un ensemble de caractères, dit mot-clé, de longueur finie généralement courte, pouvant tre choisi parmi un grand nombre de mots-clés ; deux suites générées à partir d'un mme mot-clé par le mme générateur pseudo-aléatoire étant toujours identiques (un générateur pseudo-aléatoire n'étant donc pas vraiment aléatoire) ; deux mots-clés différents, et mme peu différents, générant deux suites généralement très différentes, la suite générée par un mme générateur pseudo-aléatoire ne dépendant que de la valeur du mot-clé ; cette notion englobe les générateurs pseudo-aléatoires imprédictibles à gauche et/ou à droite tels que le générateur BBS, mais n'est pas limitée à ces générateurs (cf. D2, chapitre 12) ;
-définition ou évolution d'un ensemble de caractères ou d'une suite de caractères de façon pseudo-aléatoire : le fait de générer ou de faire évoluer l'ensemble de la suite ou les caractères de la suite en utilisant au moins un générateur pseudo-aléatoire, de façon au moins difficilement prévisible sans la connaissance du (des) mot (s)-clé (s) utilisé (s).
L'invention concerne donc un procédé pour sécuriser la transmission d'images, de sons, de textes ou de données techniques sous forme de messages dans un réseau de communication reliant des dispositifs informatiques et/ou électroniques dont au moins un dispositif, dit dispositif émetteur, comprend des moyens aptes à réaliser un chiffrement de messages avant de les émettre sur le réseau, et dont au moins un dispositif, dit dispositif récepteur, comprend des moyens aptes à réaliser un déchiffrement de messages qu'il reçoit du réseau, procédé dans lequel au cours du chiffrement ou du déchiffrement des messages, on produit au moins une fois un caractère, dit caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ, appartenant à un alphabet de départ, l'alphabet de départ et l'alphabet résultat ayant le mme nombre N de caractères, caractérisé en ce que :
. avant de produire un caractère résultat à partir d'un caractère de départ :
-on élabore et on mémorise une table de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-on génère et on mémorise un nombre entier i compris entre 1 et N (valeurs incluses) dépendant de façon biunivoque du caractère de départ,
-on génère et on mémorise une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, on sélectionne dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, on choisit et on mémorise en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
. avant de produire un caractère résultat à partir d'un caractère de départ :
-on élabore et on mémorise une table de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-on génère et on mémorise un nombre entier i compris entre 1 et N (valeurs incluses) dépendant de façon biunivoque du caractère de départ,
-on génère et on mémorise une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, on sélectionne dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, on choisit et on mémorise en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
Avantageusement et selon l'invention, le nombre i est égal au numéro d'ordre du caractère de départ dans l'alphabet de départ.
Avantageusement et selon l'invention, on choisit la valeur du nombre P de façon pseudo-aléatoire à partir d'au moins un deuxième mot-clé.
En outre, avantageusement et selon l'invention, on génère et on mémorise les valeurs z de la variable Z à l'aide d'au moins un générateur pseudo-aléatoire à partir d'au moins un troisième mot-clé.
L'invention est avantageusement applicable à un procédé de chiffrement/déchiffrement de messages par substitution. Ainsi, un procédé selon l'invention est avantageusement caractérisé en ce qu'on produit un message, dit message résultat, chiffré ou déchiffré, à partir d'un message, dit message de départ, clair ou chiffré, en substituant un caractère résultat successivement à chaque caractère CDm du message de départ occupant la position m dans le message de départ, et considéré comme caractère de départ ; et en ce que pour produire ledit caractère résultat, on génère et on mémorise la variable entière Z et selon la position m du caractère de départ CDm, la valeur z (m) prise par la variable Z pour la valeur m permettant de repérer un et un seul vecteur interne
VI (z (m)), dans lequel on sélectionne et on mémorise comme caractère résultat, le caractère résultat de l'alphabet résultat ayant le mme numéro d'ordre que le caractère interne CI (i, z (m)) situé dans ce vecteur interne au rang i.
VI (z (m)), dans lequel on sélectionne et on mémorise comme caractère résultat, le caractère résultat de l'alphabet résultat ayant le mme numéro d'ordre que le caractère interne CI (i, z (m)) situé dans ce vecteur interne au rang i.
L'invention est aussi applicable en tant que procédé intégré au sein d'un procédé de chiffrement/déchiffrement, notamment en remplacement d'au moins une fonction OU EXCLUSIF. En particulier, avantageusement et selon l'invention, le procédé est caractérisé en ce que :
-on génère et on mémorise à partir d'un message de départ à chiffrer ou à déchiffrer et/ou d'au moins un quatrième :
. au moins un caractère de départ ;
. pour chaque caractère de départ, un caractère de codage appartenant à un alphabet de codage ;
. et la variable Z en fonction de chaque caractère de codage ; de sorte qu'on produit un caractère résultat en fonction de chaque couple formé d'un caractère de départ et du caractère de codage correspondant.
-on génère et on mémorise à partir d'un message de départ à chiffrer ou à déchiffrer et/ou d'au moins un quatrième :
. au moins un caractère de départ ;
. pour chaque caractère de départ, un caractère de codage appartenant à un alphabet de codage ;
. et la variable Z en fonction de chaque caractère de codage ; de sorte qu'on produit un caractère résultat en fonction de chaque couple formé d'un caractère de départ et du caractère de codage correspondant.
Avantageusement et selon l'invention, l'alphabet de codage est identique à l'alphabet de départ.
Avantageusement et selon l'invention, pour produire chaque vecteur interne d'une table :
-on part du vecteur interne initial dans lequel le rang de chaque caractère interne est égal à son numéro d'ordre dans l'alphabet interne,
-on tire de façon pseudo-aléatoire au moins un couple d'entiers ko, fo compris entre 1 et N, les entiers tirés étant tous deux à deux distincts, de sorte que le nombre maximum de couples tirés est N/2,
-pour chaque couple (ko, fo) tiré, on permute dans le vecteur interne initial le caractère interne de rang ko et le caractère interne de rang tO.
-on part du vecteur interne initial dans lequel le rang de chaque caractère interne est égal à son numéro d'ordre dans l'alphabet interne,
-on tire de façon pseudo-aléatoire au moins un couple d'entiers ko, fo compris entre 1 et N, les entiers tirés étant tous deux à deux distincts, de sorte que le nombre maximum de couples tirés est N/2,
-pour chaque couple (ko, fo) tiré, on permute dans le vecteur interne initial le caractère interne de rang ko et le caractère interne de rang tO.
Par ailleurs, avantageusement et selon l'invention, l'alphabet interne, l'alphabet de départ et l'alphabet résultat peuvent tre identiques ou non, deux à deux. Avantageusement et selon l'invention, on choisit N=2a, oc étant un nombre entier non nul, par exemple égal à 8. En outre, avantageusement et selon l'invention, l'alphabet de départ et/ou l'alphabet résultat et/ou l'alphabet interne est (sont) formé (s) d'une suite constituée d'un sousensemble ordonné de N nombres entiers distincts.
Il est ainsi à noter que le procédé selon l'invention permet de générer chaque caractère résultat CR à partir d'un caractère de départ CD et d'au moins une variable Z, à la façon d'un OU EXCLUSIF. La variable Z est avantageusement générée de façon pseudo-aléatoire, de sorte qu'elle sert de clé de codage pour le chiffrement et le déchiffrement.
Par rapport au OU EXCLUSIF, le procédé selon l'invention présente l'avantage d'tre réversible à droite, mais de n'tre ni réversible à gauche, ni associatif, ni commutatif et sans élément neutre. Ainsi, si [T] symbolise le procédé selon l'invention avec la table T, on :
CR = CD [T] z
CR [T] z = (CD [T] z) [T] z = CD
Une table T utilisée dans un procédé selon l'invention étant réversible par construction, la mme table est utilisée au chiffrement et au déchiffrement d'un caractère. En outre, pour générer une table, il suffit de connaître le premier mot-clé, la nature du générateur pseudo-aléatoire et de l'alphabet interne, et les nombres P et N. Seules ces informations doivent tre transmises préalablement aux dispositifs émetteurs et aux dispositifs récepteurs via un canal sûr.
CR = CD [T] z
CR [T] z = (CD [T] z) [T] z = CD
Une table T utilisée dans un procédé selon l'invention étant réversible par construction, la mme table est utilisée au chiffrement et au déchiffrement d'un caractère. En outre, pour générer une table, il suffit de connaître le premier mot-clé, la nature du générateur pseudo-aléatoire et de l'alphabet interne, et les nombres P et N. Seules ces informations doivent tre transmises préalablement aux dispositifs émetteurs et aux dispositifs récepteurs via un canal sûr.
En outre, il est à noter que le procédé selon l'invention peut inclure plusieurs sources indépendantes d'éléments pseudo-aléatoires. En particulier, la (les) table (s) est (sont) générée (s) de façon pseudo-aléatoire, avec un nombre P de vecteurs internes défini de façon pseudo-aléatoire, la variable Z peut tre pseudo-aléatoire, et on peut changer de table au cours du chiffrement/déchiffrement de façon pseudo-aléatoire. Chaque élément ou variable pseudo-aléatoire peut en outre tre généré à partir d'un seul générateur pseudo-aléatoire, ou à partir de plusieurs générateurs pseudo-aléatoires dont les valeurs sont combinées.
Connaissant un caractère résultat CR et un caractère de départ CD, on ne peut en déduire aucune information sur la table T ni sur la valeur z de la variable Z correspondante.
En outre, la qualité de chaque élément pseudo-aléatoire peut tre relativement médiocre sans affecter la résistance du procédé à la cryptanalyse. Il n'est ainsi pas nécessaire d'utiliser des générateurs pseudoaléatoires parfaitement imprédictibles, d'où un coût de traitement diminué.
La (les) table (s) de vecteurs internes peuvent tre élaborées et mémorisées à l'initialisation, avant le chiffrement ou le déchiffrement d'un message, ce qui nécessite un temps de calcul court et acceptable au démarrage d'un procédé de chiffrement/déchiffrement. La détermination de chaque caractère résultat est ensuite une opération extrmement rapide, pouvant tre effectuée en ligne en temps réel avec un très faible coût de traitement. On peut aussi élaborer et mémoriser une première table à l'initialisation puis modifier cette table -notamment de façon pseudo-aléatoire-, avec un faible coût de traitement, au cours du chiffrement et du déchiffrement, et ce pour chaque caractère de départ, ou selon des sous-suites de caractères de départ définies selon une fréquence régulière, ou pseudo-aléatoire, ou quelconque.
Il est à noter en outre que le nombre total de tables conformes à l'invention pouvant tre constantes est extrmement important. Par exemple, pour N=P=256 (par exemple dans le cas où les alphabets de départ et résultat sont formés du code ASCII ou du sous-ensemble ordonné {0,1,..., 255} représentant ce code), on peut démontrer qu'il existe environ 10""'tables possibles. La cryptanalyse par une attaque exhaustive n'est donc pas possible.
On peut aussi réitérer plusieurs fois le procédé selon l'invention en prenant comme caractère de départ un caractère résultat préalablement déterminé, et en utilisant à chaque fois une table différente, générée à partir d'un mot-clé différent.
En outre, il est avantageux d'élaborer chaque table de façon à ce qu'elle soit au moins partiellement latine, c'est-à-dire que pour au moins une pluralité de qN vecteurs internes de la table, q étant un entier non nul, l'ensemble des caractères de mme rang i comprend q fois chaque caractère interne de l'alphabet interne, et ce, pour toute valeur de i comprise entre 1 et N. Ceci procure un renforcement du procédé vis-à-vis des cryptanalyses statistiques dans la mesure où la probabilité d'occurrence des caractères résultats avec une table latine n'est pas dépendante de la constitution de la table utilisée, ni des propriétés statistiques des caractères de départ du message de départ lorsque celui-ci est un message en cours de chiffrement. En contrepartie, le nombre de tables possibles est moindre sauf à augmenter P, et le temps d'initialisation est plus important.
Par ailleurs, si l'on souhaite que le procédé selon l'invention soit réversible à gauche et à droite, par exemple pour remplacer une fonction OU
EXCLUSIF dans un procédé qui nécessite cette double réversibilité, il suffit d'utiliser des tables au moins partiellement symétriques, c'est-à-dire dans lesquelles le caractère interne de rang i du vecteur interne de rang j est le mme que le caractère interne de rang j du vecteur interne de rang i.
EXCLUSIF dans un procédé qui nécessite cette double réversibilité, il suffit d'utiliser des tables au moins partiellement symétriques, c'est-à-dire dans lesquelles le caractère interne de rang i du vecteur interne de rang j est le mme que le caractère interne de rang j du vecteur interne de rang i.
Egalement, il est à noter que la table peut tre non pas seulement à deux dimensions, mais de type multidimensionnelle. Ainsi, avantageusement et selon l'invention, le procédé est caractérisé en ce qu'on génère et on mémorise chaque variable entière Z sous la forme d'un H-uplet (Z1, Z2,..., Zh,..., ZH) H étant un nombre entier naturel supérieur ou égal à 2, chaque variable Zh pouvant prendre les valeurs zh comprises entre 1 et un nombre entier Ph supérieur ou égal à 2, les nombres entiers Ph étant choisis pour que P=PlxP2x... xPh... xPH, et en ce qu'on élabore au moins une table multidimensionnelle comprenant P=PlxP2x... xPh... xPH vecteurs internes dans laquelle le H-uplet z= (zl, z2,..., zh,..., zH) permet de repérer un et un seul vecteur interne VI ((zl, z2,..., zh,... zH)) dans la table. On renforce ainsi la sécurité du procédé selon l'invention, chaque composante Zh de la variable Z pouvant tre générée de façon pseudo-aléatoire à partir d'un mot-clé qui lui est propre.
L'invention s'étend aussi à un dispositif informatique et/ou électronique émetteur et/ou récepteur adapté pour tre relié à un réseau de communication pour y émettre et/ou en recevoir des messages représentant des images et/ou des sons et/ou des textes et/ou des données techniques, comprenant des moyens de chiffrement/déchiffrement adaptés pour sécuriser l'échange et la circulation desdits messages dans ledit réseau en réalisant, à l'émission, un chiffrement des messages avant de les émettre sur le réseau et, à la réception, un déchiffrement des messages qu'il reçoit du réseau, les moyens de chiffrement/déchiffrement étant adaptés pour produire au moins une fois un caractère, dit caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ, appartenant à un alphabet de départ, l'alphabet de départ et l'alphabet résultat ayant le mme nombre N de caractères, caractérisé en ce que les moyens de chiffrement/déchiffrement :
. des moyens adaptés pour, avant de produire un caractère résultat à partir d'un caractère de départ :
-élaborer et mémoriser une table de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère résultat de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang Ê dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-générer et mémoriser un nombre entier i compris entre 1 et N (valeurs incluses) dépendant de façon biunivoque du caractère de départ,
-générer et mémoriser une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. des moyens adaptés pour, selon la valeur z prise par la variable
Z, sélectionner dans le vecteur interne repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne VI (z) au rang dont la valeur est égale au nombre i, et choisir et mémoriser en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
. des moyens adaptés pour, avant de produire un caractère résultat à partir d'un caractère de départ :
-élaborer et mémoriser une table de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère résultat de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang Ê dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-générer et mémoriser un nombre entier i compris entre 1 et N (valeurs incluses) dépendant de façon biunivoque du caractère de départ,
-générer et mémoriser une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. des moyens adaptés pour, selon la valeur z prise par la variable
Z, sélectionner dans le vecteur interne repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne VI (z) au rang dont la valeur est égale au nombre i, et choisir et mémoriser en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
Ainsi, l'invention s'étend à un dispositif caractérisé en ce que les moyens de chiffrement/déchiffrement sont adaptés pour la mise en oeuvre d'un procédé selon l'invention.
L'invention s'étend aussi à un support d'enregistrement adapté pour pouvoir tre lu par un dispositif informatique et/ou électronique émetteur et/ou récepteur adapté pour tre relié à un réseau de communication pour y émettre et/ou en recevoir des messages représentant des images et/ou des sons et/ou des textes et/ou des données techniques, ce support comprenant un programme enregistré adapté pour réaliser le chiffrement ou le déchiffrement des messages pour sécuriser l'échange et la circulation desdits, messages dans ledit réseau en réalisant, à l'émission, un chiffrement des messages avant de les émettre sur le réseau et, à la réception, un déchiffrement des messages qu'il reçoit du réseau, ce programme enregistré étant adapté pour produire au moins une fois un caractère, dit caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ, appartenant à un alphabet de départ, l'alphabet de départ et l'alphabet résultat ayant le mme nombre N de caractères, caractérisé en ce que le programme enregistré est adapté pour :
. avant de produire un caractère résultat à partir d'un caractère de départ :
-élaborer et mémoriser une table de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère résultat de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre f dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-générer et mémoriser un nombre entier i compris entre 1 et N (valeurs incluses) dépendant de façon biunivoque du caractère de départ,
-générer et mémoriser une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, sélectionner dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, et choisir et mémoriser en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
. avant de produire un caractère résultat à partir d'un caractère de départ :
-élaborer et mémoriser une table de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère résultat de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre f dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-générer et mémoriser un nombre entier i compris entre 1 et N (valeurs incluses) dépendant de façon biunivoque du caractère de départ,
-générer et mémoriser une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, sélectionner dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, et choisir et mémoriser en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
Ainsi, l'invention s'étend à un support d'enregistrement caractérisé en ce que le programme est adapté pour la mise en oeuvre d'un procédé selon l'invention.
L'invention concerne aussi un procédé, un dispositif et un support d'enregistrement caractérisés en combinaison par tout ou partie des caractéristiques mentionnées ci-dessus ou ci-après.
D'autres caractéristiques, buts et avantages de l'invention apparaissent à la lecture de la description suivante qui se réfère aux figures annexées données à titre d'exemples non limitatifs et dans lesquelles :
-la figure 1 est un schéma d'un réseau dans lequel l'invention peut tre utilisée,
-la figure 2 est un schéma illustrant l'application de l'invention pour remplacer une fonction OU EXCLUSIF au sein d'un procédé de chiffrement/déchiffrement,
-la figure 3 est un organigramme illustrant un procédé pour élaborer une table dans un procédé selon l'invention,
-les figures 4a, 4b, sont un mode de réalisation d'un code source en langage Pascal, de mise en oeuvre du procédé de la figure 3 dans le cas où N=P=16,
-la figure 5 est un exemple de table élaborée par le programme des figures 4a, 4b,
-la figure 6 est un exemple de table bidimensionnelle avec N=6 et P=8 pouvant tre utilisée dans un procédé selon l'invention,
-la figure 7 est un exemple de table bidimensionnelle latine avec N=P=6 pouvant tre utilisée dans un procédé selon l'invention,
-la figure 8 est un exemple de table bidimensionnelle symétrique avec N=P=6 pouvant tre utilisée dans un procédé selon l'invention,
-la figure 9 est un schéma illustrant un procédé de chiffrement et de déchiffrement selon l'invention avec une table latine bidimensionnelle,
-la figure 10 est un schéma illustrant un mode de réalisation d'un procédé selon l'invention avec une table tridimensionnelle,
-les figures 11 et 12 représentent deux variantes d'élaboration d'une table modifiée d'un procédé selon l'invention,
-la figure 13 est un exemple de table multidimensionnelle avec Pl=P2=N=8 hyper-latine (soit multi-latine pour Pl et multi-latine pour P2),
-la figure 14 est un exemple de table multidimensionnelle avec P1=P2=N=8 hyper-symétrique (soit multi-symétrique pour P1 et multi-symétrique pour P2).
-la figure 1 est un schéma d'un réseau dans lequel l'invention peut tre utilisée,
-la figure 2 est un schéma illustrant l'application de l'invention pour remplacer une fonction OU EXCLUSIF au sein d'un procédé de chiffrement/déchiffrement,
-la figure 3 est un organigramme illustrant un procédé pour élaborer une table dans un procédé selon l'invention,
-les figures 4a, 4b, sont un mode de réalisation d'un code source en langage Pascal, de mise en oeuvre du procédé de la figure 3 dans le cas où N=P=16,
-la figure 5 est un exemple de table élaborée par le programme des figures 4a, 4b,
-la figure 6 est un exemple de table bidimensionnelle avec N=6 et P=8 pouvant tre utilisée dans un procédé selon l'invention,
-la figure 7 est un exemple de table bidimensionnelle latine avec N=P=6 pouvant tre utilisée dans un procédé selon l'invention,
-la figure 8 est un exemple de table bidimensionnelle symétrique avec N=P=6 pouvant tre utilisée dans un procédé selon l'invention,
-la figure 9 est un schéma illustrant un procédé de chiffrement et de déchiffrement selon l'invention avec une table latine bidimensionnelle,
-la figure 10 est un schéma illustrant un mode de réalisation d'un procédé selon l'invention avec une table tridimensionnelle,
-les figures 11 et 12 représentent deux variantes d'élaboration d'une table modifiée d'un procédé selon l'invention,
-la figure 13 est un exemple de table multidimensionnelle avec Pl=P2=N=8 hyper-latine (soit multi-latine pour Pl et multi-latine pour P2),
-la figure 14 est un exemple de table multidimensionnelle avec P1=P2=N=8 hyper-symétrique (soit multi-symétrique pour P1 et multi-symétrique pour P2).
Sur la figure 1, on a représenté un réseau 1 de communication reliant des dispositifs 2,3,4 informatiques et/ou électroniques, à savoir au moins un dispositif 2 émetteur comprenant des moyens 5 de chiffrement, au moins un dispositif 3 récepteur comprenant des moyens 6 de déchiffrement et au moins un dispositif 4 émetteur/récepteur comprenant des moyens 5 de chiffrement et des moyens 6 de déchiffrement. Le réseau 1 peut incorporer aussi au moins un dispositif 7 de mémorisation de messages tel qu'une mémoire de masse. Le réseau 1 peut comprendre une multitude de tels dispositifs émetteurs et/ou récepteurs et/ou de mémorisation, ou au contraire un seul dispositif émetteur et un seul dispositif récepteur, ou un seul dispositif émetteur/récepteur et une mémoire de masse (dans le cas par exemple d'un réseau interne à un micro-ordinateur et reliant la mémoire vive à la mémoire de masse).
Un tel réseau 1 peut tre un réseau informatique (INTERNET, INTRANET,...) reliant des dispositifs 2,3,4,7 informatiques et/ou électroniques (micro-ordinateurs distincts, mémoire vive 4 et mémoire de masse 7 d'un mme ordinateur, ou autres), un réseau de téléphonie, les dispositifs 2,3,4 émetteurs et/ou récepteurs étant des téléphones ou des téléfax, un réseau de transmission de données techniques et/ou sonores et/ou vidéo,..., et plus généralement, tout réseau dans lequel le problème se pose du chiffrement et du déchiffrement de messages à transmettre sur le réseau. Le réseau 1 est de préférence numérique, mais peut aussi tre de type analogique dès lors qu'il est adapté à la transmission de messages formés de caractères.
Les moyens 5 de chiffrement sont adaptés pour réaliser un chiffrement des messages destinés à tre émis par un dispositif émetteur 2,4 sur le réseau 1. Les moyens de déchiffrement 6 sont adaptés pour réaliser le déchiffrement des messages reçus du réseau 1 et les transmettre, sous forme déchiffrée, aux dispositifs récepteurs 3,4.
Au cours du chiffrement et du déchiffrement des messages, on produit au moins une fois un caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ appartenant à un alphabet de départ, les alphabets de départ et résultat ayant un mme nombre N de caractères.
Cette production d'un caractère résultat peut s'effectuer sur les caractères du message lui-mme à chiffrer ou à déchiffrer, ou, plus généralement, au sein du procédé de chiffrement ou de déchiffrement mis en oeuvre par les moyens 5, 6, le caractère de départ n'étant pas alors nécessairement l'un des caractères du message à chiffrer ou à déchiffrer (figure 2).
Dans un procédé selon l'invention, avant de produire un caractère résultat à partir d'un caractère de départ :
-on élabore et on mémorise une table T de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-on génère et on mémorise un nombre entier i compris entre 1 et N dépendant de façon biunivoque du caractère de départ,
-on génère et on mémorise une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, on sélectionne dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, et on mémorise en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
-on élabore et on mémorise une table T de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-on génère et on mémorise un nombre entier i compris entre 1 et N dépendant de façon biunivoque du caractère de départ,
-on génère et on mémorise une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, on sélectionne dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, et on mémorise en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
Les alphabets de départ, résultat et interne peuvent tre tous différents et quelconques. Néanmoins, chaque alphabet comprend N caractères distincts, de sorte qu'il peut tre représenté par toute suite formée d'un sousensemble ordonné de N nombres entiers distincts, par exemple les N premiers nombres entiers naturels {0, 1,2,3,..., N-1}, ou les N premiers nombres entiers naturels non nuls {1, 2,3,..., N}. En conséquence, on peut considérer dans toute la suite de la description, comme dans les modes de réalisation représentés sur les figures, que l'alphabet de départ, l'alphabet résultat, et l'alphabet interne sont identiques et sont formés de la suite constituée du sous-ensemble ordonné des N premiers nombres entiers naturels non nuls {1,2,3,..., N}.
Avantageusement et selon l'invention, on choisit N=2 , a étant un nombre entier non nul. Par exemple, a=8 et N=256.
Avantageusement, l'alphabet de départ au moins est formé des caractères alphanumériques du code ASCII. L'alphabet résultat et/ou l'alphabet interne peuvent tre formés aussi des caractères alphanumériques du code ASCII.
Lorsque les alphabets sont formés d'un sous-ensemble ordonné des N premiers nombres entiers naturels non nuls, le numéro d'ordre de chaque caractère est confondu avec la valeur de ce caractère. Avantageusement et selon l'invention, on choisit en outre le nombre i permettant de repérer le caractère résultat dans le vecteur interne VI (z), égal au numéro d'ordre du caractère de départ dans l'alphabet de départ, c'est-à-dire confondu avec ce caractère de départ si l'alphabet de départ est formé du sous-ensemble des
N premiers nombres entiers naturels non nuls.
N premiers nombres entiers naturels non nuls.
La figure 3 représente un exemple d'organigramme permettant d'élaborer une table T selon l'invention. Avantageusement, pour produire chaque vecteur interne d'une table T, on procède de la façon suivante.
La variable a est un compteur initialisé à 1 lors de l'étape 30 et incrémenté pour chaque vecteur interne de la table.
On dispose d'une fonction pseudo-aléatoire notée randomO qui fournit une nouvelle valeur pseudo-aléatoire à chaque appel.
Lors de l'étape 31, on initialise à zéro chacune des N composantes d'un vecteur noté R permettant de distinguer les caractères du vecteur interne ayant déjà été sélectionnés.
Lors de l'étape 32, on initialise à la valeur N une variable c représentant le nombre de caractères du vecteur interne n'ayant pas été encore permutés.
On commence l'itération lors de l'étape 33 en affectant aux variables ko et o le résultat de deux appels de la fonction pseudo-aléatoire ramené sur l'intervalle [1... N].
Lors de l'étape 34, on vérifie dans le vecteur R que le caractère de rang ko n'a pas déjà été permuté. Lorsque c'est le cas, on incrémente ko et on réitère la vérification et éventuellement l'incrémentation autant de fois que nécessaire.
Lors de l'étape 35, on vérifie dans le vecteur R que le caractère de rang îo n'a pas déjà été permuté. Lorsque c'est le cas, on décrémente ò et on réitère la vérification et éventuellement la décrémentation autant de fois que nécessaire.
Lors de l'étape 36, on inscrit dans le vecteur le caractère de numéro d'ordre ko au rang o et le caractère de numéro d'ordre o au rang ko. Les caractères de rang ko et o sont ainsi permutés par rapport à l'ordre d'un vecteur interne initial formé de l'alphabet interne, dans lequel le rang de chaque caractère interne est égal à son numéro d'ordre dans l'alphabet interne.
Dans l'étape 36, on marque aussi les positions o et ko dans le vecteur R afin d'enregistrer que ces deux caractères ont déjà été permutés.
Il est à noter que les indices ko et o peuvent tre identiques auquel cas, lors de l'étape 37, on ne diminue le nombre de caractères du vecteur interne n'ayant pas été permutés (variable c) que d'une unité ; dans le cas le plus fréquent ou ces indices ko et eo sont différents, c est diminué de deux unités lors de l'étape 37.
Lors de l'étape 38, on teste cette variable c : si elle est nonnulle, on itère le procédé à partir de l'étape 33. Dans le cas contraire, on a généré un vecteur interne complet et on itère l'ensemble du procédé à partir de l'étape 31 pour construire chacun des P vecteurs après avoir incrémenté la variable a lors de l'étape 39.
Les figures 4a et 4b fournissent un exemple de programme d'ordinateur écrit en langage Pascal (version Think Pascal Z 4 pour Macintosh S) permettant d'obtenir une table conformément à l'algorithme de la figure 3. Les figures 4a et 4b se lisent dans l'ordre successif.
Ce programme d'ordinateur permet d'obtenir une table T de caractères pour laquelle N et P peuvent tre définis en tant que constantes. Pour l'exemple, on a retenu N=16, P=16. Le fonctionnement du programme d'ordinateur représenté est décrit par l'organigramme de la figure 3. La fonction pseudo-aléatoire random () de la figure 3 est réalisée par abs (random) dans le programme en Pascal. La table T obtenue est mémorisée dans la variable M, de type tableau de dimension N x P. Le programme affiche cette table à l'écran à la fin de l'exécution du programme. La table représentée figure 5 a été obtenue par ce programme avec la valeur du premier mot-clé égale à 503464 correspondant à l'initialisation de la variable"randseed".
Les figures 6,7,8 sont des exemples de table selon l'invention donnés pour des nombres N et P de faible valeur aux fins d'illustration.
Sur la figure 6, on a représenté une table bidimensionnelle quelconque pour N=6 et P=8. L'alphabet interne est formé de l'ensemble {1, 2,3, 4,5,6}. Comme on le voit, chaque vecteur interne ne comprend qu'une seule fois chacun des caractères internes, et vérifie la propriété de réversibilité mentionnée ci-dessus, à savoir que si un caractère de rang k dans un vecteur interne est le caractère de numéro d'ordre # de l'alphabet interne, alors le caractère de rang f dans le mme vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne. Ainsi, par exemple, dans le premier vecteur de la table de la figure 6, le caractère interne de rang 1 est 5, et le caractère interne de rang 5 est 1, le caractère interne de rang 2 est 3, et le caractère interne de rang 3 est 2, le caractère interne de rang 4 est 6, et le caractère interne de rang 6 est 4.
La figure 7 représente un autre exemple de table selon l'invention qui, de surcroît, présente la propriété d'tre latine. Pour cette table,
N=P=6, et l'ensemble des caractères internes de mme rang i dans les N vecteurs internes de la table, comprend une et une seule fois chaque caractère interne de l'alphabet interne. Autrement dit, chaque ligne de la table est formée d'une permutation des 6 caractères internes de l'alphabet interne.
N=P=6, et l'ensemble des caractères internes de mme rang i dans les N vecteurs internes de la table, comprend une et une seule fois chaque caractère interne de l'alphabet interne. Autrement dit, chaque ligne de la table est formée d'une permutation des 6 caractères internes de l'alphabet interne.
Il est à noter qu'une table selon l'invention peut tre partiellement latine, c'est-à-dire peut incorporer une telle table latine. Une table selon l'invention peut tre également formée d'une juxtaposition de plusieurs tables latines telles que celles représentées à la figure 6.
Plus généralement, si P2qN, q étant un nombre entier non nul, on peut élaborer la table selon l'invention de façon que pour au moins une pluralité de qN vecteurs internes de la table, l'ensemble des caractères internes de rang i dans cette pluralité de vecteurs internes comprend q fois chaque caractère interne de l'alphabet interne pour tout i compris entre 1 et N. La table est alors globalement latine.
En particulier, on choisit avantageusement P=qN et on élabore la table de façon que l'ensemble des caractères internes de rang i dans les vecteurs internes comprend q fois chaque caractère interne, pour tout i compris entre 1 et N.
La table peut tre également plusieurs fois latine, c'est-àdire comprendre plusieurs tables latines. Ainsi, si on choisit P > q'N, q'étant un nombre entier non nul, on peut élaborer la table de façon qu'il existe q' pluralité (s) disjointes de N vecteurs internes de la table pour lesquelles l'ensemble des caractères internes de mme rang i dans chacune de ces pluralité (s) de vecteurs internes comprend une et une seule fois chaque caractère interne, pour tout i compris entre 1 et N. Avantageusement, là encore, on choisit
P=q'N. La table est dite q'-latine.
P=q'N. La table est dite q'-latine.
L'avantage d'utiliser une table latine (globalement ou plusieurs fois) est de pouvoir former, lors du chiffrement, des caractères résultats dont les propriétés statistiques ne sont pas dépendantes de celles des caractères de départ.
Pour élaborer une table latine, on utilise un procédé analogue à celui présenté à la figure 3 en ajoutant une condition sur le deuxième élément de chaque couple retenu de sorte qu'un mme couple ne puisse tre tiré qu'une fois et une seule au cours de la construction de la table. II est en outre nécessaire de mémoriser dans l'ordre chaque tirage retenu pour la construction d'un mme vecteur interne, car il pourra s'avérer nécessaire de revenir d'une ou plusieurs étapes en arrière en cas de blocage du procédé. En effet il peut se produire le cas où les caractères restant à permuter dans le vecteur interne en cours d'élaboration ne peuvent former des couples autorisés par la condition de latinité. Dans cette circonstance, on modifie un ou plusieurs des tirages antérieurs jusqu'à résolution du problème.
La figure 8 représente un autre cas particulier de table selon l'invention dite symétrique pour laquelle N=P=6. Une table symétrique est une table dans laquelle, si CI (i, j) est le caractère interne de rang i dans le vecteur interne repéré par la valeur j, les caractères internes satisfont la propriété :
CI (i, j) = CI (j, i), et ce, pour tout i et tout j compris entre 1 et N. La table est ainsi symétrique par rapport à la diagonale principale formée des caractères CI (i, i). La table de la figure 8 est aussi latine, comme toute table symétrique.
CI (i, j) = CI (j, i), et ce, pour tout i et tout j compris entre 1 et N. La table est ainsi symétrique par rapport à la diagonale principale formée des caractères CI (i, i). La table de la figure 8 est aussi latine, comme toute table symétrique.
L'intért d'une table symétrique est de permettre de l'utiliser en tant que fonction réversible à gauche et à droite, comme une fonction OU
EXCLUSIF, à l'intérieur d'un procédé de chiffrement/déchiffrement.
EXCLUSIF, à l'intérieur d'un procédé de chiffrement/déchiffrement.
Il est à noter que, comme pour les tables latines, une table selon l'invention peut tre partiellement symétrique. Ainsi, on peut choisir P > N et la table présente au moins une pluralité de N vecteurs internes présentant la propriété de symétrie.
Pour élaborer une table symétrique, on utilise un procédé analogue à celui présenté à la figure 3. Cependant chaque tirage d'un couple (k, t) impose un certain nombre de conditions pour vérifier la symétrie globale de la table. Dans le cas général, le choix d'un couple (k, e) dans un vecteur interne de rang r dans la table impose le choix d'un couple de caractères dans le vecteur interne de rang k et d'un couple de caractères dans le vecteur interne de rang .
Ainsi, pour chaque nouveau vecteur interne, on n'effectue que les tirages nécessaires pour former des couples avec les caractères qui n'ont pas déjà été permutés du fait des tirages antérieurs, en n'autorisant que les choix qui engendrent des permutations compatibles avec les permutations déjà effectuées dans l'ensemble des vecteurs internes. Pour chaque couple, on inscrit dans les autres vecteurs internes les permutations déduites par le critère de symétrie. Il faut en outre mémoriser dans l'ordre chaque tirage retenu pour la construction de la table, car il pourra s'avérer nécessaire de revenir d'une ou plusieurs étapes en arrière en cas de blocage du procédé. En effet il peut se produire le cas où les caractères restant à permuter dans le vecteur interne en cours d'élaboration ne peuvent permettre de former des couples compatibles avec les conditions imposées par les choix précédents. Dans cette circonstance, on modifie un ou plusieurs des tirages antérieurs et les permutations déduites de ces tirages.
La figure 9 est un schéma illustrant un procédé selon l'invention, qui, dans l'exemple représenté, met en oeuvre une table latine non symétrique pour laquelle N=P=6. La partie supérieure de la figure 9 représente la formation d'une suite SR de caractères résultat à partir d'une suite SD de caractères de départ, et à partir d'une variable Z pour laquelle on a généré de façon pseudo-aléatoire une suite SZ de valeurs z (1), z (2), z (3), z (4)...
Chaque valeur z de la variable Z permet de repérer un et un seul vecteur interne dans la table. Pour ce faire, chaque valeur z de la variable Z est un nombre entier unique compris entre 1 et P. La variable Z est donc formée d'une suite de nombres entiers tous compris entre 1 et P, générés de façon pseudo-aléatoire à partir d'un mot-clé, dit troisième mot-clé, identique ou non au premier mot-clé utilisé pour générer la table T. A chaque caractère de départ CD de la suite SD, on fait correspondre une valeur de la variable Z dans la suite SZ, cette valeur étant celle qui présente le mme numéro d'ordre dans la suite SZ que le numéro d'ordre du caractère de départ dans la suite SD. Ensuite, le numéro d'ordre du caractère de départ CD dans l'alphabet de départ permet de sélectionner l'un des caractères internes du vecteur interne repéré par la variable
Z correspondante. Le caractère résultat CR correspondant au caractère de départ
CD est celui qui a le mme numéro d'ordre que le caractère interne ainsi sélectionné. Ainsi, le premier caractère de départ de la suite SD est le chiffre 2.
Z correspondante. Le caractère résultat CR correspondant au caractère de départ
CD est celui qui a le mme numéro d'ordre que le caractère interne ainsi sélectionné. Ainsi, le premier caractère de départ de la suite SD est le chiffre 2.
La première valeur z (1) de la suite SZ étant 2, on repère le deuxième vecteur interne de la table à partir de la gauche et, dans ce vecteur interne, le caractère interne situé au rang 2, c'est-à-dire le chiffre 1. Le caractère résultat correspondant est donc le chiffre 1.
Pour le deuxième caractère de départ qui est égal à 4, la variable Z prend la valeur z (2) =1, de sorte qu'on sélectionne le premier vecteur interne dans la table. Au rang 4 de ce premier vecteur, correspondant au numéro d'ordre du chiffre 4 dans l'alphabet de départ, est inscrit le chiffre 6 que l'on sélectionne comme caractère résultat correspondant au deuxième caractère de départ. On réitère ainsi le procédé pour produire la suite SR de caractères résultat.
Pour produire chaque caractère résultat CR, il suffit de sélectionner comme indiqué ci-dessus le caractère interne dans la table T correspondante. Cette fonction peut tre simplement représentée par la formule : CR (CD, z) =CI (i, z) lorsque les alphabets interne et résultat sont identiques.
La partie inférieure de la figure 9 représente le procédé mis en oeuvre de façon réversible, avec la mme table, lorsque l'on veut retrouver la suite de départ SD à partir de la suite résultat SR. Il suffit en effet de considérer que la suite SR est alors formée de caractères de départ pour reproduire, en tant que caractère résultat, les caractères de départ préalablement utilisés lors de la première étape.
Comme on le voit, la production d'un caractère résultat à partir d'un caractère de départ est quasi-instantanée, mme lorsque la table T est de grande dimension.
La sécurité du procédé selon l'invention provient notamment du fait que la table T est formée de façon pseudo-aléatoire et que les valeurs z de la variable Z le sont également de façon indépendante.
En outre, le nombre de tables T pouvant tre formé, malgré la propriété de réversibilité mentionnée ci-dessus, est extrmement grand. En pratique, pour N=256, on peut démontrer par calcul qu'il existe plus de 1065 tables possibles. Ainsi, le procédé selon l'invention est parfaitement résistant à une attaque exhaustive.
En outre, il est possible de renforcer encore la résistance du procédé sans pour autant nécessiter l'emploi de générateurs pseudo-aléatoires imprédictibles. Par exemple, on peut choisir également la valeur du nombre P, c'est-à-dire le nombre de vecteurs internes de la table T de façon pseudo-aléatoire à partir d'un mot-clé, dit deuxième mot-clé, identique ou non au premier mot-clé permettant d'élaborer la table T et/ou au troisième mot-clé permettant de générer les valeurs z de la variable Z.
Par ailleurs, dans l'exemple représenté figure 9, on utilise toujours la mme table T pour tous les caractères de départ de la suite SD.
Néanmoins, il est tout aussi bien possible et avantageux de modifier la table T au cours mme du chiffrement ou du déchiffrement. Ainsi, un procédé selon l'invention est avantageusement caractérisé en ce que pour le chiffrement ou le déchiffrement d'un message, on produit une suite de caractères résultat à partir d'une suite de caractères de départ, on définit une partition de la suite de caractères de départ formée d'au moins une sous-suite de caractères de départ, et en ce qu'on élabore, on mémorise et on utilise une mme table de caractères internes pour tous les caractères de départ de chaque sous-suite, et en ce que pour chaque sous-suite, on élabore et on utilise une table de caractères internes qui lui est propre, de sorte que les différentes tables sont généralement deux à deux distinctes.
Avantageusement et selon l'invention, on définit ladite partition de façon pseudo-aléatoire à partir d'au moins un cinquième mot-clé. Ce cinquième mot-clé peut tre identique ou non au premier, deuxième et troisième mots-clés. Dans un mode de réalisation particulier, on définit ladite partition de façon que chaque sous-suite est formée d'un caractère de départ unique, la table utilisée étant propre à chaque caractère. Ainsi, on modifie la table T à chaque caractère de départ. En effet, il est à noter que l'invention permet également de modifier la table T de façon extrmement simple et rapide.
Dans une première variante, selon l'invention, on élabore et on mémorise au moins une table, dite table modifiée, en permutant de façon pseudo-aléatoire à partir d'au moins un sixième mot-clé au moins deux vecteurs internes distincts d'une autre table, dite table initiale, antérieurement élaborée et mémorisée. Avec cette première variante, si la table initiale est latine, la table modifiée l'est aussi.
Dans une deuxième variante représentée figure 11, selon l'invention, on élabore et on mémorise au moins une table, dite table modifiée
T3, à partir d'une autre table, dite table initiale T1, antérieurement élaborée et mémorisée, en permutant pour au moins un couple de nombres entiers distincts il et i2 inférieurs ou égaux à N, dans chaque vecteur interne de la table initiale, le caractère de rang il avec le caractère de rang i2 du mme vecteur interne, puis en échangeant, dans chaque vecteur interne de la table initiale, le caractère interne formé du caractère interne ayant le numéro d'ordre il dans l'alphabet interne par le caractère interne ayant le numéro d'ordre i2 dans l'alphabet interne, et le caractère formé du caractère interne ayant le numéro d'ordre i2 dans l'alphabet interne par le caractère interne ayant le numéro d'ordre il dans l'alphabet interne.
T3, à partir d'une autre table, dite table initiale T1, antérieurement élaborée et mémorisée, en permutant pour au moins un couple de nombres entiers distincts il et i2 inférieurs ou égaux à N, dans chaque vecteur interne de la table initiale, le caractère de rang il avec le caractère de rang i2 du mme vecteur interne, puis en échangeant, dans chaque vecteur interne de la table initiale, le caractère interne formé du caractère interne ayant le numéro d'ordre il dans l'alphabet interne par le caractère interne ayant le numéro d'ordre i2 dans l'alphabet interne, et le caractère formé du caractère interne ayant le numéro d'ordre i2 dans l'alphabet interne par le caractère interne ayant le numéro d'ordre il dans l'alphabet interne.
Dans cette deuxième variante, si la table initiale T1 est symétrique, on peut en outre produire une table modifiée T4 qui l'est aussi en permutant les vecteurs internes repérés par z=i 1 et z=i2 de la table modifiée T3 précédemment obtenue.
Sur la figure 11, on a P=N=8, il=3 et i2=8. La figure 11 représente la table initiale T1 symétrique que l'on transforme successivement en tables T2, T3 et T4. Pour passer de Tel à T2, on échange la troisième ligne avec la huitième ligne. On repère ensuite dans T2 (encadrés en traits noirs gras) les caractères 8 et 3 que l'on permute pour obtenir la table modifiée T3. On permute ensuite le troisième et le huitième vecteur pour obtenir la table T4 dont on constate qu'elle est symétrique.
Dans une autre variante représentée figure 12, avantageusement et selon l'invention, pour élaborer et mémoriser au m
Avantageusement et selon l'invention, dans cette variante, pour au moins un caractère de départ, après avoir produit le caractère résultat à partir de ladite table initiale, on choisit kl égal au nombre i correspondant à ce caractère de départ, on génère k2 de façon pseudo-aléatoire à partir d'au moins un septième mot-clé, et on choisit dans la table initiale le vecteur interne VI (z) ayant servi pour produire le caractère résultat en tant que vecteur interne VI dans lequel on permute les caractères pour élaborer la table modifiée.
Sur la figure 12, on a P=N=8, et VI est le premier vecteur de la table initiale T5 qui est latine. On a choisi kl=3 et k2=5. Pour passer de T5 à la table T6, on permute le troisième et le cinquième caractère de VI. Dans la table T6, on repère (en traits noirs gras) dans le vecteur VI les caractères dont le rang est égal à valeur de CI (1, 3) et CI (1, 5) dans T5. On permute ces deux caractères pour obtenir la table modifiée T7. On constate que la table T7 ainsi produite n'est pas latine.
Par ailleurs, on peut également encore renforcer la sécurité du procédé en utilisant une table T non pas bidimensionnelle, mais multidimensionnelle. Pour ce faire, avantageusement et selon l'invention, on génère et on mémorise chaque variable entière Z sous la forme d'un H-uplet (Z1, Z2,..., Zh,..., ZH) H étant un nombre entier naturel supérieur ou égal à 2, chaque variable Zh pouvant prendre les valeurs zh comprises entre 1 et un nombre entier Ph supérieur ou égal à 2, les nombres entiers Ph étant choisis pour que P=PlxP2x... xPh... xPH, et en ce qu'on élabore au moins une table multidimensionnelle comprenant P=PlxP2x... xPh... xPH vecteurs internes dans laquelle le H-uplet z= (zl, z2,..., zh,..., zH) permet de repérer un et un seul vecteur interne VI ((zl, z2,..., zh,... zH)) dans la table.
On a représenté figure 10 un exemple de table tridimensionnelle dans laquelle N=6, P=PlxP2=3x4=12 et Z= (Z1, Z2). Comme on le voit, le couple de variables (Zl, Z2) pour lesquelles on génère de façon pseudo-aléatoire les suites de valeurs correspondantes SZI et SZ2, permet de repérer un et un seul vecteur dans la table T, ce qui permet de sélectionner un et un seul caractère résultat à partir de chaque caractère résultat de la suite de départ
SD. On forme ainsi la suite résultat SR. Le mme procédé peut tre utilisé de façon réversible pour reproduire la suite de départ SD à partir de la suite résultat
SR.
SD. On forme ainsi la suite résultat SR. Le mme procédé peut tre utilisé de façon réversible pour reproduire la suite de départ SD à partir de la suite résultat
SR.
Il est à noter qu'une telle table multidimensionnelle peut aussi tre multi-latine. Ainsi, si P=qN, on choisit au moins l'un des entiers Ph, dit
Ph', tel que Ph'= N et q'=Plx... xPh'-lxPh'+lx... xPH, et chacune des q'pluralités est formée des N vecteurs internes VI ((zl,..., zh'-l, zh', zh'+l,..., zH)) pour lesquels les valeurs zl,..., zh'-l, zh'+l,..., zH sont des constantes, et zh'prend successivement toutes les valeurs comprises entre 1 et Ph'=N. La table est alors dite multi-latine pour Ph'. Dans le cas où la table est multi-latine pour tous les
Ph', la table est dite hyper-latine.
Ph', tel que Ph'= N et q'=Plx... xPh'-lxPh'+lx... xPH, et chacune des q'pluralités est formée des N vecteurs internes VI ((zl,..., zh'-l, zh', zh'+l,..., zH)) pour lesquels les valeurs zl,..., zh'-l, zh'+l,..., zH sont des constantes, et zh'prend successivement toutes les valeurs comprises entre 1 et Ph'=N. La table est alors dite multi-latine pour Ph'. Dans le cas où la table est multi-latine pour tous les
Ph', la table est dite hyper-latine.
Sur la figure 13 on a représenté un exemple de table multidimensionnelle pour laquelle P1=P2=N=8 multi-latine pour P1 et multilatine pour P2, donc hyper-latine. La représentation donnée figure 13 est formée de 8 sous-tables de vecteurs internes juxtaposés VI (zl, z2). Pour chaque soustable, la valeur de zl est indiquée à gauche du sommet supérieur gauche, et la sous-table est constituée des vecteurs VI (zl, z2) pour lesquels z2 varie de 1 à 8.
La table complète est formée par superposition des huit sous-tables les unes sur les autres pour obtenir une table à trois dimensions.
Pour produire une table multidimensionnelle q'-latine, il convient de générer et de mémoriser q'tables latines, que l'on repère chacune par un (H-1)-uplet (zl,..., zh'-1, zh'+1,..., zH), de sorte que la table formée par la réunion de ces q'tables latines vérifie la propriété de multi-latinité.
De façon similaire, une table multidimensionnelle peut tre multi-symétrique. Le procédé selon l'invention est alors caractérisé en ce qu'on choisit P=q"N, q"étant un nombre entier non nul ; en ce qu'on élabore la table de façon qu'il existe q"pluralité (s) de N vecteurs internes de la table ; en ce qu'on choisit au moins un entier Ph, dit Ph", tel que Ph"=N et q"=Plx... xPh" lxPh"+lx... xPH ; en ce que chacune desdites q"pluralités est formée des N vecteurs internes VI ((zl,..., zh"-1, zh", zh"+l,..., zH)) dans lesquels les valeurs zl,..., zh"1, zh"+l,..., zH sont des constantes, et zh"prend successivement toutes les valeurs comprises entre 1 et Ph"=N ; et en ce que dans chacune desdites q"pluralité (s), si le caractère interne de rang i dans le vecteur interne pour lequel zh"=j est noté CI (i, j), on a CI (i, j) =CI (j, i) pour tout i et pour tout j compris entre 1 et N. La table est alors dite multi-symétrique pour Ph".
Dans le cas où la table est multi-symétrique pour tous les Ph", la table est dite hyper-symétrique.
Pour produire une table multidimensionnelle multisymétrique, il convient de générer et de mémoriser q"tables symétriques que l'on repère chacune par un (H-l)-uplet (zl,..., zh"-1, zh"+l,..., zH), de sorte que la table formée par la réunion de ces q"tables symétriques vérifie la propriété de multi-symétrie.
Sur la figure 14 on a représenté, de façon similaire à la figure 13, un exemple de table multidimensionnelle pour laquelle PI=P2=N=8 hyper-symétrique.
Le procédé selon l'invention peut tre utilisé au sein d'un procédé de chiffrement/déchiffrement de messages, par exemple pour remplacer une fonction OU EXCLUSIF. Un procédé de chiffrement de messages permet de produire un message, dit message résultat MR, chiffré à partir d'un message, dit message de départ MD clair. Au déchiffrement, on produit un message résultat déchiffré à partir d'un message de départ chiffré.
Dans la variante de la figure 2, les caractères de départ CD ne sont pas ceux du message de départ MD, mais sont des caractères issus d'un traitement interne PR à partir d'un message de départ MD à chiffrer ou à déchiffrer et/ou d'au moins un mot-clé K, dit quatrième mot-clé, identique ou différent des autres mots-clés susmentionnés.
Dans cette variante, selon l'invention, on génère et on mémorise à partir du message de départ MD à chiffrer ou à déchiffrer et/ou d'au moins un quatrième mot-clé K :
. au moins un caractère de départ ;
. pour chaque caractère de départ CD, un caractère de codage CC appartenant à un alphabet de codage ;
. et la variable Z en fonction de chaque caractère de codage CC ; de sorte qu'on produit un caractère résultat CR en fonction de chaque couple formé d'un caractère de départ CD et du caractère de codage CC correspondant.
. au moins un caractère de départ ;
. pour chaque caractère de départ CD, un caractère de codage CC appartenant à un alphabet de codage ;
. et la variable Z en fonction de chaque caractère de codage CC ; de sorte qu'on produit un caractère résultat CR en fonction de chaque couple formé d'un caractère de départ CD et du caractère de codage CC correspondant.
L'alphabet de codage est avantageusement identique à l'alphabet de départ. Ainsi, on produit un caractère résultat CR à partir de deux caractères de l'alphabet de départ, à savoir ledit caractère de départ CD et ledit caractère de codage CC.
Le caractère résultat CR est réintroduit dans le traitement interne PR qui produit un message résultat MR. Dans l'exemple représenté figure 2, le procédé selon l'invention référencé PI est utilisé à la place d'une fonction
OU EXCLUSIF (CR=CD XOR CC) dans un traitement interne PR.
OU EXCLUSIF (CR=CD XOR CC) dans un traitement interne PR.
L'invention est tout aussi bien applicable pour chiffrer directement un message de départ MD, c'est-à-dire dans le cas où on utilise les caractères du message de départ comme caractères de départ, les caractères résultat produits étant les caractères du message résultat. Avantageusement et selon l'invention, le procédé est ainsi caractérisé en ce qu'on produit un message, dit message résultat, chiffré ou déchiffré, à partir d'un message, dit message de départ, clair ou chiffré, en substituant un caractère résultat successivement à chaque caractère CDm du message de départ occupant la position m dans le message de départ, et considéré comme caractère de départ ; et en ce que pour produire ledit caractère résultat, on génère et on mémorise la variable entière Z et, selon la position m du caractère de départ CDm, la valeur z (m) prise par la variable Z pour la valeur m permettant de repérer un et un seul vecteur interne
VI (z (m)) dans lequel on sélectionne et on mémorise comme caractère résultat, le caractère résultat de l'alphabet résultat ayant le mme numéro d'ordre que le caractère interne CI (i, z (m)) situé dans ce vecteur interne au rang i.
VI (z (m)) dans lequel on sélectionne et on mémorise comme caractère résultat, le caractère résultat de l'alphabet résultat ayant le mme numéro d'ordre que le caractère interne CI (i, z (m)) situé dans ce vecteur interne au rang i.
Le procédé selon l'invention peut tre implanté dans chaque dispositif 2,3,4, par exemple sous la forme d'un circuit à microprocesseurs incorporant un programme préenregistré permettant de chiffrer ou de déchiffrer les données émises sur le réseau 1 ou reçues du réseau 1.
La/les tables T sont élaborées et mémorisées de préférence avant l'émission ou la réception de chaque message. Le circuit électronique comprend donc des moyens de mémorisation de chacune de ces tables T.
Claims (34)
1/-Procédé pour sécuriser la transmission d'images, de sons, de textes ou de données techniques sous forme de messages dans un réseau de communication reliant des dispositifs (2,3,4,7) informatiques et/ou électroniques dont au moins un dispositif, dit dispositif émetteur, comprend des moyens aptes à réaliser un chiffrement de messages avant de les émettre sur le réseau, et dont au moins un dispositif, dit dispositif récepteur, comprend des moyens aptes à réaliser un déchiffrement de messages qu'il reçoit du réseau, procédé dans lequel au cours du chiffrement ou du déchiffrement des messages, on produit au moins une fois un caractère, dit caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ, appartenant à un alphabet de départ, l'alphabet de départ et l'alphabet résultat ayant le mme nombre N de caractères, caractérisé en ce que :
. avant de produire un caractère résultat à partir d'un caractère de départ :
-on élabore et on mémorise une table (T) de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre
N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre Q dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-on génère et on mémorise un nombre entier i compris entre 1 et N dépendant de façon biunivoque du caractère de départ,
-on génère et on mémorise une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. selon la valeur z prise par la variable Z, on sélectionne dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, et on choisit et on mémorise en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
2/-Procédé selon la revendication 1, caractérisé en ce que le nombre i est égal au numéro d'ordre du caractère de départ dans l'alphabet de départ.
3/-Procédé selon l'une des revendications 1 et 2, caractérisé en ce que pour produire chaque vecteur interne d'une table (T) :
-on part du vecteur interne initial dans lequel le rang de chaque caractère interne est égal à son numéro d'ordre dans l'alphabet interne,
-on tire de façon pseudo-aléatoire au moins un couple d'entiers ko, o compris entre 1 et N, les entiers tirés étant tous deux à deux distincts, de sorte que le nombre maximum de couples tirés est N/2,
-pour chaque couple (ko, o) tiré, on permute dans le vecteur interne initial le caractère interne de rang ko et le caractère interne de rang o.
4/-Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'on choisit la valeur du nombre P de façon pseudo-aléatoire à partir d'au moins un deuxième mot-clé.
5/-Procédé selon l'une des revendications 1 à 4, caractérisé en ce qu'on génère et on mémorise les valeurs z de la variable Z à l'aide d'au moins un générateur pseudo-aléatoire à partir d'au moins un troisième un motclé.
6/-Procédé selon l'une des revendications 1 à 5, caractérisé en ce :
-on génère et on mémorise à partir d'un message de départ à chiffrer ou à déchiffrer et/ou d'au moins un quatrième :
. au moins un caractère de départ ;
. pour chaque caractère de départ, un caractère de codage appartenant à un alphabet de codage ;
. et la variable Z en fonction de chaque caractère de codage ; de sorte qu'on produit un caractère résultat en fonction de chaque couple formé d'un caractère de départ et du caractère de codage correspondant.
7/-Procédé selon la revendication 6, caractérisé en ce que l'alphabet de codage est identique à l'alphabet de départ.
8/-Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'on produit un message, dit message résultat, chiffré ou déchiffré, à partir d'un message, dit message de départ, clair ou chiffré, en substituant un caractère résultat successivement à chaque caractère CDm du message de départ occupant la position m dans le message de départ, et considéré comme caractère de départ ; et en ce que pour produire ledit caractère résultat, on génère et on mémorise la variable entière Z et, selon la position m du caractère de départ CDm, la valeur z (m) prise par la variable Z pour la valeur m permettant de repérer un et un seul vecteur interne VI (z (m)), dans lequel on sélectionne et on mémorise comme caractère résultat, le caractère résultat de l'alphabet résultat ayant le mme numéro d'ordre que le caractère interne CI (i, z (m)) situé dans ce vecteur interne au rang i.
9/-Procédé selon l'une des revendications 1 à 8, caractérisé en ce que pour le chiffrement ou le déchiffrement d'un message, on produit une suite de caractères résultat à partir d'une suite de caractères de départ, on définit une partition de la suite de caractères de départ formée d'au moins une sous-suite de caractères de départ, et en ce qu'on élabore, on mémorise et on utilise une mme table de caractères internes pour tous les caractères de départ de chaque sous-suite, et en ce que pour chaque sous-suite, on élabore et on utilise une table de caractères internes qui lui est propre, de sorte que les différentes tables sont généralement deux à deux distinctes.
10/-Procédé selon la revendication 9, caractérisé en ce qu'on définit ladite partition de façon pseudo-aléatoire à partir d'au moins un cinquième mot-clé.
11/-Procédé selon la revendication 9, caractérisé en ce qu'on définit ladite partition de façon que chaque sous-suite est formée d'un caractère de départ unique, la table utilisée étant propre à chaque caractère.
12/-Procédé selon l'une des revendications 9 à 11, caractérisé en ce qu'on élabore et on mémorise au moins une table, dite table modifiée, en permutant de façon pseudo-aléatoire à partir d'au moins un sixième mot-clé au moins deux vecteurs internes distincts d'une autre table, dite table initiale, antérieurement élaborée et mémorisée.
13/-Procédé selon l'une des revendications 9 à 12, caractérisé en ce qu'on élabore et on mémorise au moins une table, dite table modifiée, à partir d'une autre table, dite table initiale, antérieurement élaborée et mémorisée, en permutant pour au moins un couple de nombres entiers distincts il et i2 inférieurs ou égaux à N, dans chaque vecteur interne de la table initiale, le caractère de rang il avec le caractère de rang i2 du mme vecteur interne, puis en échangeant, dans chaque vecteur interne de la table initiale, le caractère interne formé du caractère interne ayant le numéro d'ordre il dans l'alphabet interne par le caractère interne ayant le numéro d'ordre i2 dans l'alphabet interne, et le caractère formé du caractère interne ayant le numéro d'ordre i2 dans l'alphabet interne par le caractère interne ayant le numéro d'ordre i 1 dans l'alphabet interne.
14/-Procédé selon l'une des revendications 9 à 13, caractérisé en ce que pour élaborer et mémoriser au moins une table, dite table modifiée, à partir d'une autre table, dite table initiale, antérieurement élaborée et mémorisée :
-on choisit au moins deux entiers distincts kl et k2 inférieurs ou égaux à N,
-on choisit un vecteur interne VI dans la table initiale,
-on permute dans le vecteur interne VI le caractère interne de rang kl et le caractère interne de rang k2,
-on permute dans le vecteur interne VI le caractère interne dont le rang est égal au numéro d'ordre, dans l'alphabet interne, du caractère interne de rang kl dans le vecteur interne VI, et le caractère interne dont le rang est égal au numéro d'ordre, dans l'alphabet interne, du caractère interne de rang k2 dans le vecteur interne VI.
15/-Procédé selon la revendication 14, caractérisé en ce pour au moins un caractère de départ, après avoir produit le caractère résultat à partir de ladite table initiale, on choisit kl égal au nombre i correspondant à ce caractère de départ, on génère k2 de façon pseudo-aléatoire à partir d'au moins un septième mot-clé, et on choisit dans la table initiale le vecteur interne VI (z) ayant servi pour produire le caractère résultat en tant que vecteur interne VI dans lequel on permute les caractères pour élaborer la table modifiée.
16/-Procédé selon l'une des revendications 1 à 15, caractérisé en ce qu'on génère et on mémorise une table avant de réaliser un traitement de chiffrement ou de déchiffrement d'un message, et en ce qu'on utilise la mme table pour tous les caractères de départ à transformer au cours du traitement du message.
17/-Procédé selon l'une des revendications 1 à 16, caractérisé en ce que l'alphabet de départ et l'alphabet résultat sont identiques.
18/-Procédé selon la revendication 17, caractérisé en ce que l'alphabet interne est identique à l'alphabet de départ et à l'alphabet résultat.
19/-Procédé selon l'une des revendications 1 à 18, caractérisé en ce qu'on choisit N=2a, a étant un nombre entier non nul.
20/-Procédé selon l'une des revendications 1 à 19, caractérisé en ce que l'alphabet interne et par l'alphabet de départ et/ou l'alphabet résultat est formé d'une suite constituée d'un sous-ensemble ordonné de N nombres entiers distincts.
21/-Procédé selon l'une des revendications 1 à 20, caractérisé en ce que l'alphabet de départ est formé des caractères alphanumériques du code ASCII.
22/-Procédé selon l'une des revendications 1 à 21, caractérisé en ce que l'alphabet résultat et/ou l'alphabet interne est formé des caractères alphanumériques du code ASCII.
23/-Procédé selon l'une des revendications 1 à 22, caractérisé en ce qu'on choisit P2qN, q étant un nombre entier non nul, et en ce qu'on élabore la table de façon que pour au moins une pluralité de qN vecteurs internes de la table, l'ensemble des caractères internes de mme rang i dans cette pluralité de vecteurs internes comprend q fois chaque caractère interne de l'alphabet interne, pour tout i compris entre 1 et N.
24/-Procédé selon la revendication 23, caractérisé en ce qu'on choisit P=qN et en ce qu'on élabore la table de façon que l'ensemble des caractères internes de mme rang i dans les vecteurs internes comprend q fois chaque caractère interne, pour tout i compris entre 1 et N.
25/-Procédé selon l'une des revendications 1 à 24, caractérisé en ce qu'on choisit P > q'N, q'étant un nombre entier non nul, et en ce qu'on élabore la table de façon qu'il existe q'pluralité (s) disjointes de N vecteurs internes de la table, pour lesquelles l'ensemble des caractères internes de mme rang i dans chacune de ces pluralité (s) de vecteurs internes comprend une et une seule fois chaque caractère interne.
26/-Procédé selon la revendication 25, caractérisé en ce qu'on choisit P=q'N.
27/-Procédé selon la revendication 1 à 26, caractérisé en ce qu'on choisit P > N, et en ce qu'on élabore la table de façon que pour au moins une pluralité de N vecteurs internes VI (1),..., VI (j),..., VI (N), si le caractère interne de rang i dans le vecteur interne VI (j) est noté CI (i, j), on a CI (i, j) =CI (j, i), pour tout i et pour tout j compris entre 1 et N.
28/-Procédé selon l'une des revendications 1 à 27, caractérisé en ce qu'on génère et on mémorise chaque variable entière Z sous la forme d'un H-uplet (Zl, Z2,..., Zh,..., ZH) H étant un nombre entier naturel supérieur ou égal à 2, chaque variable Zh pouvant prendre les valeurs zh comprises entre 1 et un nombre entier Ph supérieur ou égal à 2, les nombres entiers Ph étant choisis pour que P=PlxP2x... xPh... xPH, et en ce qu'on élabore au moins une table multidimensionnelle comprenant P=PlxP2x... xPh... xPH vecteurs internes dans laquelle le H-uplet z= (zl, z2,..., zh,..., zH) permet de repérer un et un seul vecteur interne VI ((zl, z2,..., zh,... zH)) dans la table.
29/-Procédé selon les revendications 26 et 28, caractérisé en ce qu'on choisit au moins un entier Ph, dit Ph', tel que Ph'= N et q'=Plx... xPh'-lxPh'+lx... xPH, et en ce que chacune des q'pluralités est formée des N vecteurs internes VI ( (zl,..., zh'-l, zh', zh'+l,..., zH)) pour lesquels les valeurs zl,..., zh'-l, zh'+l,..., zH sont des constantes, et zh'prend successivement toutes les valeurs comprises entre 1 et Ph'=N.
30/-Procédé selon les revendications 27 à 29, caractérisé en ce qu'on choisit P=q"N, q"étant un nombre entier non nul ; en ce qu'on élabore la table de façon qu'il existe q"pluralités de N vecteurs internes de la table ; en ce qu'on choisit au moins un entier Ph, dit Ph", tel que Ph"=N et q"=Plx... xPh"-lxPh"+lx... xPH ; en ce que chacune desdites q"pluralités est formée des N vecteurs internes VI ((zl,..., zh"-1, zh", zh"+1,..., zH)) pour lesquels les valeurs zl,..., zh"-1, zh"+l,..., zH sont des constantes, et zh"prend successivement toutes les valeurs comprises entre 1 et Ph"=N ; et en ce que dans chacune desdites q"pluralité (s), si le caractère interne de rang i dans le vecteur interne pour lequel zh"=j est noté CI (i, j), on a CI (i, j) =CI (j, i) pour tout i et pour tout j compris entre 1 et N.
31/-Dispositif informatique et/ou électronique émetteur et/ou récepteur adapté pour tre relié à un réseau de communication pour y émettre et/ou en recevoir des messages représentant des images et/ou des sons et/ou des textes et/ou des données techniques, comprenant des moyens de chiffrement/déchiffrement adaptés pour sécuriser la transmission desdits messages dans ledit réseau en réalisant, à l'émission, un chiffrement des messages avant de les émettre sur le réseau et, à la réception, un déchiffrement des messages qu'il reçoit du réseau, les moyens de chiffrement/déchiffrement étant adaptés pour produire au moins une fois un caractère, dit caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ, appartenant à un alphabet de départ, l'alphabet de départ et l'alphabet résultat ayant le mme nombre N de caractères, caractérisé en ce que les moyens de chiffrement/déchiffrement comprennent :
. des moyens adaptés pour, avant de produire un caractère résultat à partir d'un caractère de départ :
-élaborer et mémoriser une table (T) de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre e dans l'alphabet interne, alors le caractère de rang f dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
-générer et mémoriser un nombre entier i compris entre 1 et N dépendant de façon biunivoque du caractère de départ,
-générer et mémoriser une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
. des moyens adaptés pour, selon la valeur z prise par la variable
Z, sélectionner dans le vecteur interne repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne VI (z) au rang dont la valeur est égale au nombre i, et choisir et mémoriser en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
32/-Dispositif selon la revendication 31, caractérisé en ce que les moyens de chiffrement/déchiffrement sont adaptés pour la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 30.
. selon la valeur z prise par la variable Z, sélectionner dans le vecteur interne VI (z) repéré par la valeur z dans la table, le caractère interne situé dans ce vecteur interne au rang dont la valeur est égale au nombre i, et choisir et mémoriser en tant que caractère résultat, le caractère résultat ayant dans l'alphabet résultat le numéro d'ordre égal au numéro d'ordre de ce caractère interne dans l'alphabet interne.
-générer et mémoriser une variable Z adaptée pour que chaque valeur z de cette variable Z permette de repérer un et un seul vecteur interne VI (z) parmi la pluralité de P vecteurs internes dans la table,
-générer et mémoriser un nombre entier i compris entre 1 et N dépendant de façon biunivoque du caractère de départ,
-élaborer et mémoriser une table (T) de caractères, dits caractères internes, appartenant à un alphabet interne ayant le mme nombre N de caractères que les alphabets de départ et résultat, en produisant de façon pseudo-aléatoire à partir d'un premier mot-clé, et en juxtaposant de façon ordonnée une pluralité de P vecteurs, dits vecteurs internes, de N caractères internes, P étant un nombre entier supérieur ou égal à 2, chaque vecteur interne comprenant une et une seule fois chaque caractère interne de l'alphabet interne et étant formé d'une permutation de l'alphabet interne dans laquelle si un caractère de rang k dans le vecteur interne est le caractère de numéro d'ordre Ê dans l'alphabet interne, alors le caractère de rang e dans le vecteur interne est le caractère de numéro d'ordre k dans l'alphabet interne,
. avant de produire un caractère résultat à partir d'un caractère de départ :
33/-Support d'enregistrement adapté pour pouvoir tre lu par un dispositif informatique et/ou électronique émetteur et/ou récepteur adapté pour tre relié à un réseau de communication pour y émettre et/ou en recevoir des messages représentant des images et/ou des sons et/ou des textes et/ou des données techniques, ce support comprenant un programme enregistré adapté pour réaliser le chiffrement ou le déchiffrement des messages pour sécuriser la transmission desdits messages dans ledit réseau en réalisant, à l'émission, un chiffrement des messages avant de les émettre sur le réseau et, à la réception, un déchiffrement des messages qu'il reçoit du réseau, ce programme enregistré étant adapté pour produire au moins une fois un caractère, dit caractère résultat, appartenant à un alphabet résultat, à partir d'au moins un caractère de départ, appartenant à un alphabet de départ, l'alphabet de départ et l'alphabet résultat ayant le mme nombre N de caractères, caractérisé en ce que le programme enregistré est adapté :
34/-Support d'enregistrement selon la revendication 33, caractérisé en ce que le programme est adapté pour la mise en oeuvre d'un procédé selon l'un quelconque des revendications 1 à 30.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9814279A FR2786050B1 (fr) | 1998-11-13 | 1998-11-13 | Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9814279A FR2786050B1 (fr) | 1998-11-13 | 1998-11-13 | Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2786050A1 true FR2786050A1 (fr) | 2000-05-19 |
FR2786050B1 FR2786050B1 (fr) | 2002-03-08 |
Family
ID=9532697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9814279A Expired - Fee Related FR2786050B1 (fr) | 1998-11-13 | 1998-11-13 | Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2786050B1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10027974A1 (de) * | 2000-06-06 | 2002-01-24 | Toralf Heidel | Verfahren zur Verschlüsselung von Daten |
GB2377514A (en) * | 2001-07-05 | 2003-01-15 | Hewlett Packard Co | Document encryption permitting indexing by a search engine |
CN100350430C (zh) * | 2005-12-05 | 2007-11-21 | 徐原能 | 用随机子序列加密数字图像的方法 |
CN100395776C (zh) * | 2005-06-30 | 2008-06-18 | 西南交通大学 | 基于混沌散列函数的分块脆弱水印生成与认证方法 |
DE102007046102A1 (de) * | 2007-09-27 | 2009-04-02 | Arens, Stephan, Dr. | Verfahren zum Schutz vor Veränderung und/oder Entschlüsselung von Daten und Authentifizierung des Datensenders bei der Datenübertragung, bei dem mit Kenntnis von verschlüsselten und unverschlüsselten Daten andere Daten nicht mehr als zufällig richtig verschlüsselt werden können |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4979832A (en) * | 1989-11-01 | 1990-12-25 | Ritter Terry F | Dynamic substitution combiner and extractor |
-
1998
- 1998-11-13 FR FR9814279A patent/FR2786050B1/fr not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4979832A (en) * | 1989-11-01 | 1990-12-25 | Ritter Terry F | Dynamic substitution combiner and extractor |
Non-Patent Citations (3)
Title |
---|
BRUCE SCHNEIER: "Applied Cryptography, second edition", 1996, JOHN WILEY & SONS, INC., USA, XP002110459 * |
DIFFIE W ET AL: "PRIVACY AND AUTHENTICATION: AN INTRODUCTION TO CRYTOPGRAPHY", PROCEEDINGS OF THE IEEE, vol. 67, no. 3, 1 March 1979 (1979-03-01), pages 397 - 426, XP000575227, ISSN: 0018-9219 * |
YI-SHIUNG YEH ET AL: "A PRIVATE KEY CRYPTOSYSTEM BASED UPON ENFORCED RANDOM SUBSTITUTION SCHEME", PROCEEDINGS OF THE ANNUAL INTERNATIONAL CARNAHAN CONFERENCE ON SECURITY TECHNOLOGY, TAIPEI, OCT. 1 - 3, 1991, no. CONF. 25, 1 October 1991 (1991-10-01), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 319 - 324, XP000300448, ISBN: 0-7803-0120-X * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10027974A1 (de) * | 2000-06-06 | 2002-01-24 | Toralf Heidel | Verfahren zur Verschlüsselung von Daten |
GB2377514A (en) * | 2001-07-05 | 2003-01-15 | Hewlett Packard Co | Document encryption permitting indexing by a search engine |
GB2377514B (en) * | 2001-07-05 | 2005-04-27 | Hewlett Packard Co | Document encryption |
CN100395776C (zh) * | 2005-06-30 | 2008-06-18 | 西南交通大学 | 基于混沌散列函数的分块脆弱水印生成与认证方法 |
CN100350430C (zh) * | 2005-12-05 | 2007-11-21 | 徐原能 | 用随机子序列加密数字图像的方法 |
DE102007046102A1 (de) * | 2007-09-27 | 2009-04-02 | Arens, Stephan, Dr. | Verfahren zum Schutz vor Veränderung und/oder Entschlüsselung von Daten und Authentifizierung des Datensenders bei der Datenübertragung, bei dem mit Kenntnis von verschlüsselten und unverschlüsselten Daten andere Daten nicht mehr als zufällig richtig verschlüsselt werden können |
DE102007046102B4 (de) * | 2007-09-27 | 2012-06-14 | Stephan Arens | Verfahren zum Schutz vor Veränderung von Daten und zur Authentifizierung des Datensenders bei der Datenübertragung durch Verwendung von Verschlüsselungsverfahren, bei denen mit Kenntnis von verschlüsselten und unverschlüsselten Daten andere Daten nicht mehr als zufällig richtig verschlüsselt werden können. |
Also Published As
Publication number | Publication date |
---|---|
FR2786050B1 (fr) | 2002-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0202989B1 (fr) | Dispositif de chiffrement par substitutions-permutations | |
EP0014652B1 (fr) | Système de vidéographie muni de moyens de contrôle d'accès à l'information | |
JP5291628B2 (ja) | シードが与えられる任意数を生成する方法 | |
EP2232765A2 (fr) | Procede et entite de chiffrement symetrique probabiliste | |
FR2496303A1 (fr) | Systeme de chiffrage/dechiffrement de donnees a cle publique | |
FR2842691A1 (fr) | Procede et dispositif de transformation d'un signal numerique | |
EP0027423B1 (fr) | Installation de chiffrement et déchiffrement d'un signal numérique | |
EP3228043B1 (fr) | Méthode de chiffrement à couches de confusion et de diffusion dynamiques | |
EP0618736A1 (fr) | Procédé et dispositif pour l'embrouillage et le désembrouillage d'une émission déterminée de télévision | |
FR2831728A1 (fr) | Procede et dispositif de formation d'un signal numerique derive a partir d'un signal numerique compresse | |
FR2816154A1 (fr) | Insertion d'information supplementaire dans des donnees numeriques | |
Sivakumar et al. | A novel image encryption using calligraphy based scan method and random number | |
EP3493458B1 (fr) | Procédé et système de chiffrement/déchiffrement de données à ultra faible latence à des fins de stockage et/ou de communication de données sécurisés | |
EP1524795B1 (fr) | Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques | |
FR2786050A1 (fr) | Procede, dispositif et support d'enregistrement pour securiser la transmission rapide d'images, de sons, de textes ou de donnees techniques dans un reseau de communication | |
Darwish et al. | Secure image compression approach based on fusion of 3D chaotic maps and arithmetic coding | |
EP0083998B1 (fr) | Générateur d'octets chiffrants ou déchiffrants | |
EP0752771B1 (fr) | Procédé de traitement d'un signal numérique tel que le signal numérique en sortie ne peut se déduire du signal numérique en entrée, et utilisation de ce procédé pour le contrôle d'accès et/ou la signature binaire | |
EP1723791B1 (fr) | Methode de securisation d'un evenement telediffuse | |
FR2690258A1 (fr) | Procédé de contrôle d'accès du type autorisant l'accès à une fonction d'exploitation d'un module d'exploitation à l'aide d'un mot de contrôle. | |
WO2009068658A1 (fr) | Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire | |
WO2008119901A2 (fr) | Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees | |
FR2778047A1 (fr) | Procede et dispositif d'emission d'information, procede et dispositif de reception d'information | |
FR2835670A1 (fr) | Procede de distribution anti-piratage d'un contenu numerique par transmission diversifiee pro-active, dispositif emetteur et objet portatif recepteur associes | |
EP0762658B1 (fr) | Procédé de codage de données numériques représentées par des vecteurs et procédé de décodage des données codées selon ledit procédé de codage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |