Brevet FR2755558A1 — publié le 19980507

La présente invention concerne un procédé de décorrélation de données enregistrées sur un support exploitable par une unité de calcul. On connaît de nombreux procédés de chiffrement de données ou de cryptographies. Ils assurent le codage des données de telle sorte que celles-ci ne soient lisibles que par un destinataire autorisé, détenteur d'une clef. Leur importance se développe en même temps que les réseaux d'information et leur utilisation devrait se généraliser en conformité avec la législation en vigueur. Certains procédés de chiffrement permettent d'assurer une sécurité inconditionnelle, mais nécessitent des moyens techniques importants qui freinent la communication ou qui rendent la gestion des échanges de clefs très coûteuse et certains ne peuvent même pas pratiquement être utilisés. Ainsi, le chiffrement de Vernam nécessite-t-il, pour chiffrer un flot de messages clairs, l'utilisation d'un flot de clefs de même longueur. La synchronisation de l'émetteur et du récepteur est alors difficile à réaliser. Les conditions de la sécurité inconditionnelle ont été formalisées par Shannon en 1949 qui, partant de la théorie de l'information, a pu montrer que la sécurité inconditionnelle impose à la clef d'être au moins égale à la taille totale des messages que lton peut chiffrer sans la corrompre. Ainsi, pour assurer la protection de données enregistrées sur un support exploitable par une unité de calcul et susceptible d'être transmise, réalise-t-on une opération de chiffrement. Pour que le chiffrement d'une série de messages soit sûr, il est nécessaire de rendre indépendantes ces opérations sur un faible nombre de messages. La principale fonction de chiffrement utilisée actuellement est le standard de chiffrement numérique DES (Data Encryption Standard) adopté par le gouvernement américain. Cette fonction est fondée sur l'itération (seize fois) de fonctions simples dans un schéma dit de "Feistel". Le but du grand nombre d'itérations est d'affaiblir la corrélation des messages chiffrés. De nombreux documents décrivent le DES et en particulier, l'ouvrage intitulé "Cryptographie, théorie et pratique" de Douglas STINSON (International Thomson Publishing). Le but de l'invention est donc un procédé de cryptographie de données qui assure une sécurité optimale et peut être réalisé avec des fonctions relativement simples qui nécessitent des moyens de calcul limités. A cet effet, l'invention concerne un procédé de cryptographie de données enregistrées sur un support exploitable par une unité de calcul dans lequel ladite unité de calcul traite une information d'entrée x à l'aide d'une clef pour fournir une information codée F(x) par une fonction F. Selon l'invention, la fonction F utilise un module de décorrélation MK tel que F(x) = [F' (MK)](x), où K est une clef aléatoire et F' une fonction cryptographique. De façon générale, un module de décorrélation assure la transformation d'un message x par la fonction MK impliquant une clef, de telle sorte que la distribution MK(xl),..., MK(xt) obtenue à partir de t messages différents quelconques avec une variation aléatoire de la clef ait une répartition uniforme ou quasi uniforme. Un tel module de décorrélation peut donc être utilisé au sein d'un dispositif de cryptographie de données, éventuellement après un dispositif de découpage d'informations fournissant, à partir de l'information d'entrée x, des données xO de longueur fixe. Sa mise en oeuvre permet que t blocs de messages chiffrés cl,..., ct par la fonction F ne donnent aucune information statistique sur cette fonction. Dans différents modes de réalisation ayant chacun des avantages particuliers, l'invention peut présenter les caractéristiques suivantes selon toutes leurs combinaisons techniquement possibles - l'information d'entrée x est découpée en éléments xO de longueur fixe, - la fonction F est de la forme F(x) = F'(MK(x)), - la fonction de codage F' est découpée en deux fonctions F" et G" et F(x) = F"(MK(G"(x))), - le module de décorrélation MK est inversible, - le module de décorrélation est MK(x) = x + K, - le module de décorrélation est MK(x) = ax + b, où K = (a, b) avec a;t O, a - le module de décorrélation est MK(x) = x+b + c, où K = (a, b, c) avec a $ 0, - la fonction F est une fonction de Feistel appliquant n itérations chacune avec une fonction Fi, - le module de décorrélation MK est non-inversible, - à chaque itération, Fi(x) = F'i(MK(x)), - à chaque itération, Fi(x) = F";(MK(G"i(x))) -MK(x) = kl + k2x + k3x2 +... + ktxt-1 où K = (kl, k2, k3,..., k. La Figure 1 présente l'application de l'invention dans un schéma de Feistel à huit itérations. Le procédé de chiffrement de données enregistrées de l'invention met avantageusement en oeuvre une clef secrète utilisant un module de décorrélations MK tel que F(x) = [F'(MK)j(x), où K est une clef aléatoire et F' une fonction de codage. La fonction F' est avantageusement découpée en deux fonctions F" et G" et F(x) = F" (MK(G" (x))). L'utilisation de tels modules de décorrélation peut être appliquée à des fonctions F inversibles et également à des fonctions F quelconques. Lorsque la fonction F est inversible, le procédé de cryptographie est un procédé de chiffrement ; le détenteur de la clef peut alors recomposer l'information d'entrée. Lorsque la fonction F n'est pas inversible, le procédé de cryptographie permet l'authentification des données. Ainsi, pour une valeur du paramètre t = 1, la fonction MK est-elle avantageusement: MK(x) = x + K où le signe + représente une translation de l'espace des messages. Par exemple, lorsque les messages sont des séquences de bits, on peut utiliser le ouexclusif bit-à-bit pour cette translation. La décorrélation est parfaite à l'ordre 1. L'opération inverse est: (MK)-1 (y) = y - K Dans un autre mode de réalisation, pour une valeur du paramètre t = 2, la fonction MK est avantageusement MK (x) = ax + b où K = (a, b) avec a 0. La décorrélation est alors parfaite à l'ordre 2. L'opération inverse est (MK)-1 (y) = a-1y - a-lb Dans un autre mode de réalisation pour une valeur du paramètre t = 3, la fonction MK est avantageusement MK (x) =a -----+c x+b où K = (a, b, c) avec a $ 0. On convient alors que dans cette opération, -=0. o L'opération inverse est alors (MK)-1(Y)= a b y-c L'utilisation d'un module de décorrélation MK est également avantageuse dans le cas de fonctions non inversibles. On utilise une structure algébrique telle que des messages qui définit l'addition et la multiplication. On utilise par exemple l'arithmétique dans un corps fini ou encore une arithmétique modulo un nombre premier tronquée. Pour toute valeur du paramètre t, on peut alors proposer une fonction de décorrélation de la forme MK(x) = k1 + k2x + k3x2 +... + ktxt-l, où K = (k1, k2, k3, ..., kt). Le schéma d'un tel chiffrement de Feistel est représenté sur la Figure 1. Un bloc de texte clair x de 64 bits : on écrit alors x = LoRo où Lo contient les 32 premiers bits de la chaîne x et Ro contient les 32 bits restants. Quatre itérations d'une même fonction f sont appliquées à x. On calcule LiRi, pour 1 Li = Ri-l Ri = Li-1 + f(Ri-l + Ki) où le signe + représente le ou-exclusif bit-à-bit de deux chaînes K1, K2, K3 K4 sont des chaînes de 32 bits calculées à partir de K. Le résultat est (L4, R4). I1 est assemblé sous la forme L4R4 auquel on applique le module de décorrélation par exemple K5K6 x L4R4 + K7K8 K5, K6, K7, K8 étant chacun une chaîne de 32 bits. Le résultat sert d'entrée L'oR'o à une deuxième fonction selon le schéma de Feistel, analogue à la précédente qui produit un résultat L'4R'4 = F(x). K'1, K'2, R'3, K'4 sont également des chaînes de 32 bits. La clef est ici K1, K2, K3 K4, K'1, K'2, K'3, K'4, K5, , K7, K8. REVENDICATIONS 1. Procédé de cryptographie de données enregistrées sur un support exploitable par une unité de calcul dans lequel ladite unité de calcul traite une information d'entrée x à l'aide d'une clef pour fournir une information codée F(x) par une fonction F, caractérisé en ce que la fonction F utilise un module de décorrélation MK tel que F(x) = [F' (MK)](x), où K est une clef aléatoire et F' une fonction cryptographique. 2. Procédé de cryptographie selon la revendication 1, caractérisé en ce que l'information d'entrée x est découpée en éléments xO de longueur fixe. 3. Procédé de cryptographie selon l'une quelconque des revendications 1 et 2, caractérisé en ce que la fonction F est de la forme F(x) = F'(MK(x)). 4. Procédé de cryptographie selon l'une des revendications 1 et 2, caractérisé en ce que la fonction de codage F' est découpée en deux fonctions F" et G" et que F(x) = F"(MK(G"(x))). 5. Procédé de cryptographie selon l'une des revendications 1 à 4, caractérisé en ce que le module de décorrélation MK est inversible. 6. Procédé de cryptographie selon la revendication 5, caractérisé en ce que le module de décorrélation est MK(x) = x + K 7. Procédé de cryptographie selon la revendication 5, caractérisé en ce que le module de décorrélation est MK(x) = ax + b, où K = (a, b) avec a W 0. 8. Procédé de cryptographie selon la revendication 5, caractérisé en ce que le module de décorrélation est MK(x)= b +c, où K = (a, b, c) avec aO. 9. Procédé de cryptographie selon l'une des revendications 1 à 4, caractérisé en ce que le module de décorrélation MK est non-inversible. 10. Procédé de cryptographie selon la revendication 5, caractérisé en ce que la fonction F est une fonction de Feistel appliquant n itérations chacune avec une fonction Fi. 11. Procédé de cryptographie selon la revendication 10, caractérisé en ce que, à chaque itération, Fi(x) = F'i(MK(x)). 12. Procédé de cryptographie selon la revendication 10, caractérisé en ce que, à chaque itération, Fi(x) = F"i(MK(G"i(x))). 13. Procédé de cryptographie selon la revendication 11, caractérisé en ce que MK(x) = kl + k2x + k3x2 +... + ktxt-lX où K = (kl, k2, k3,..., kt).