Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR DATA DECORRELATION
Document Type and Number:
WIPO Patent Application WO/1998/020643
Kind Code:
A1
Abstract:
The invention concerns a method for the cryptography of data recorded on a medium useable by a computing unit in which said computing unit processes an input information x using a key for supplying an information encoded F(x) by a function F. The invention is characterised in that the function F uses a decorrelation module M�K? such that F(x) = [F'(M�K?)](x), in which K is a random key and F' a cryptographic function.

Inventors:
VAUDENAY SERGE (FR)
Application Number:
PCT/FR1997/001975
Publication Date:
May 14, 1998
Filing Date:
November 04, 1997
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CENTRE NAT RECH SCIENT (FR)
VAUDENAY SERGE (FR)
International Classes:
H04L9/06; G09C1/00; (IPC1-7): H04L9/06
Other References:
KILIAN J ET AL: "HOW TO PROTECT DES AGAINST EXHAUSTIVE KEY SEARCH", ADVANCES IN CRYPTOLOGY - CRYPTO '96, 16TH. ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE SANTA BARBARA, AUG. 18 - 22, 1996. PROCEEDINGS, no. CONF. 16, 18 August 1996 (1996-08-18), KOBLITZ N (ED ), pages 252 - 267, XP000626592
EVEM S ET AL: "A CONSTRUCTION OF A CIPHER FROM A SINGLE PSEUDORANDOM PERMUTATION", ADVANCES IN CRYPTOLOGY - ASIACRYPT, FUJIYOSHIDA, NOV. 11 - 14, 1991, no. CONF. 1, 11 November 1991 (1991-11-11), HIDEKI IMAI;RIVEST R L; TSUTOMU MATSUMOTO, pages 210 - 224, XP000473951
SHEPHERD S J: "A HIGH SPEED SOFTWARE IMPLEMENTATION OF THE DATA ENCRYPTION STANDARD", COMPUTERS & SECURITY INTERNATIONAL JOURNAL DEVOTED TO THE STUDY OF TECHNICAL AND FINANCIAL ASPECTS OF COMPUTER SECURITY, vol. 14, no. 4, 1 January 1995 (1995-01-01), pages 349 - 357, XP000523914
Attorney, Agent or Firm:
Michelet, Alain (7 rue de Madrid, Paris, FR)
Download PDF:
Claims:
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, de rang au moins égal à deux, tel que <BR> <BR> <BR> 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 (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) = ax + b, où K = (a, b) avec a W 0. <BR> <BR> <BR> <BR> <P> 7.
7. Procédé de cryptographie selon la revendication 5, caractérisé en<BR> a<BR> <BR> <BR> <BR> <BR> <BR> ce que le module de décorrélation est MK(x) = +c, où<BR> <BR> x+b K = (a, b, c)avec a # 0.
8. Procédé de cryptographie selon l'une des revendications 1 à 4, caractérisé en ce que le module de décorrélation MK est noninversible.
9. 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.
10. Procédé de cryptographie selon la revendication 9, caractérisé en ce que, à chaque itération, Fi (x) = F'i (MK (x)).
11. Procédé de cryptographie selon la revendication 9, caractérisé en ce que, à chaque itération, Fi (x) = F"i (MK (G'i(x))).
12. Procédé de cryptographie selon la revendication 11, caractérisé en ce que MK(x) = k1 = k2x + k3x2 +... = ktxt1, où K = (k1, k2, k3,..., kt).
Description:
PROCÉDÉ DE DÉCORRÉLATION DE DONNÉES 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 l'on 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 intitule"Cryptographie, théorie et pratique"de Douglas STINSON (International Thomson Publishing).

Pour améliorer la fiabilité du cryptage et se prémunir contre des recherches exhaustives, on a proposé d'augmenter la longueur de la clef ou même d'introduire une décorrélation d'ordre 1. C'est ce qu'ont proposé les auteurs des deux articles suivants : Advances in Cryptology- CRYPTO'96, 16'h. Annual International Cryptology Conference Santa Barbara, 18-22 Août 1996, Proceedings no. Conf. 16, 18 Août 1996, Koblitz N (ED), pages 252-267 de KILIAN J. et al., et Advances in Cryptology-ASIACRYPT, Fujiyoshida, 11-14 Novembre 1991, no.

Conf. 1, 11 Novembre 1991, Hideki Imai ; Rivest R L ; Tsutomu Matsumoto, pages 210-224 de EVEM S. et al.

De telles mesures ne suffisent toutefois pas à se prémunir contre les attaques permises par la cryptanalyse linéaire et différentielle récemment développée.

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, de rang au moins égal à deux, 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 cri,..., 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 -le module de décorrélation MK est inversible, -le module de décorrélation est MK (x) = ax + b, où K = (a, b) avec a &num 0, <BR> <BR> <BR> -le module de décorrélation est MK (x) = b +c, où<BR> <BR> <BR> x+b K = (a, b, c) avec a &num 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"i (MK (G"i (x))) -MK (x) = kl + k2x + k3x2 +... + ktxt-1, où K = (k1, k2, k3,..., kt).

L'invention sera maintenant décrite plus en détail en référence à la figure et à des modes de réalisation particuliers.

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)] (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 = 2, la fonction MK est avantageusement : MK (x) = ax + b où K = (a, b) avec a # 0, et où le signe + représente une translation de 1'espace des messages.

La décorrélation est alors parfaite à l'ordre 2. L'opération inverse est : (MK)-1 (y) = a-ly-a-lb Dans un autre mode de réalisation pour une valeur du paramètre <BR> <BR> <BR> t = 3, la fonction MK est avantageusement :<BR> a<BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> MK(x)= + c,<BR> <BR> x+b où K = (a, b, c) avec a # 0. On convient alors que dans cette opération, 1 -= 0. L'opération inverse est alors : 0<BR> a<BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> (Mk)-1(y) = -b<BR> <BR> 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) = kl + k2x + k3x2 +... + ktxt~1 où K = (kl, 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 #i#4 suivant la règle : Li = Ri-1 Ri = Li l + f (Ri-l + Ki) où le signe + représente le ou-exclusif bit-à-bit de deux chaînes ; Kl, K2, K3 K4 sont des chaînes de 32 bits calculées à partir de K.

Le résultat est (L4, R4). Il est assemblé sous la forme L4R4 auquel on applique le module de décorrélation par exemple : KsK6 x L4R4 + K7K8 Ks, 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, K'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, K6, Ky, K8.

De manière générale, les fonctions F"et G"peuvent être n'importe quelle fonction de cryptage.

On décrira maintenant en détail deux modes de réalisation particuliers : Dans le premier mode de ces modes de réalisation préféré, on utilise un schéma de FEISTEL à huit itérations. G"est l'application successive de quatre fonctions fl, f2, f3, f4 et F"est l'application successive de quatre fonctions f5, f6, 7, fg, les fonctions fi étant définies à partir d'une fonction f et de la clef aléatoire K.

La fonction f est elle même définie de la manière suivante : x étant un mot de 32 bits, on définit d'abord (p (x) : (p (x) = x+256. S (xmod256) mod232 où S est par exemple, une fonction représentée par les tables de l'annexe 1, u représenté en abscisse et v en ordonnée étant chacun des nombres hexadécimaux, au couple (u, v) = x est associé la valeur S (x) ayant la valeur indiquée aux coordonnées (u, v). f (x) est définie par : f (x) = T (RLl (cp (x)) + r mod 232) où RLI est une permutation circulaire de onze bits vers la gauche et r est une constante, par exemple elle même définie par s de la manière suivante : r=b7sl5162 et La clef K est une chaîne de 256 bits, constituée par la concaténation de huit chaînes K ; de 64 bits chacune : K= (K, K2 K3 K8) Le schéma de FEISTEL est alors mis en oeuvre avec les fonctions fi :

fi(X) = f()x # ki) où les ki sont alors définis comme suit : i 1 2 3 4 ki K1 K1 # K3 K1 # K3 # K4 K1 # K4 . i 5 6 7-8 ki K2 K2# K3 K2# K3 # K4 K2# K4 le module de décorrélation est : M (uv) = (uvCK) xK7Kg Dans le deuxième mode de ces modes de réalisation préféré, on utilise un schéma de FEISTEL à trente deux itérations : Par rapport au premier exemple, la clef K est une chaîne de 2048 bits, r peut conserver sa valeur et la fonction f est remplacée par f : f (x) = RL11(x) + r mod 232 les fonctions f ; sont remplacées par les fonctions fi' f ; (x) = f (x. K2i-1 + K2i mod 232 - 5) ANNEXE 1

. 0. 1. 2. 3. 4. 5. 6. 7 0. 8aed2a 6abf71 58809c f4f3c7 62e716 Of38b4 da56a7 84d904 1. bb1185 eb4f7c 7b5757 f59584 90cfd4 7d7c19 bb4215 8d9554 2. cfbfal c877c5 6284da b79cd4 c2b329 3d20e9 e5eafO 2ac60a 3. 78e537 d2b95b b79d8d caec64 2cle9f 23b829 b5c278 Obf387 4. bbca06 0f0ff8 ec6d31 bdb5cc eed7f2 f0bb08 801716 3bc60d 5. 94640d 6efOd3 d37be6 7008el 86dlbf 275b9b 241deb 64749a 6. fl0de513d3f5114b8b5d374d93cb8879c7d52ffd72baOaae 7. 571121 382af3 41afe9 4f77bc f06c83 b8ff56 75f097 9074ad 8. Sa7db4 61dd8f 3c7554 Od0012 lf d56e 95f8c7 31e9c4 d7221b 9. 26b400 e024a6 668ccf 2e2de8 6876e4 f5c500 00f0a9 3b3aa7 a. d1060b 871a28 01f978 376408 2ff592 d9140d b1e939 9df4b0 b. c703f5 32ce3a 30cd31 c070eb 36b419 5ff33f bic66c 7d70f9 c. 6d8d03 62803b c248d4 14478c 2afb07 ffe78e 89b9fe ca7e30 d. df2be6 4bbaab 008ca8 a06fda ce9ce7 048984 5a082b a36d61 e. 558aal 194177 20b6el 50ce2b 927d48 d7256e 445e33 3cb757 f. 6b6c79 a58a9a 549b50 c58706 90755c 35e4e3 6b5290 38ca73 Table 1 : S (u, v) pour v < 8 . 8. 9. a. b. c. d. e. f 0. 5190cf ef324e 773892 6cfbe5 f4bf8d 8d8c31 d763da 06c80a 1. f7b46b ced55c 4d79fd 5f24d6 613c31 c3839a 2ddf8a 9a276b 2. 2293ed 874422 a52ecb 238fee e5ab6a dd835f d1a075 3d0a8f 3. 37df8b b300dO 1334aO dObd86 45cbfa 73a616 Offe39 3c48cb 4. f45a0ecbibcd289b06cbbfea21ad08el847f3f7378d56ced 5. 47dfdf b96632 c3eb06 1b6472 bbf84c 26144e 49c2d0 4c324e 6. 7277da 7ba1b4 af1488 d8e836 af1486 5e6c37 ab6876 fe690b 7. 9a787b c5b9bd 4b0c59 37d3ed e4c3a7 939621 5edab1 f57d0b 8. bed0c6 2bb5a8 7804b6 79a0ca a41d80 2a4604 c311b7 1de3e5 9. e6342b 302a0a 47373b 25f73e 3b26d5 69fe22 91ad36 d6a147 a. e14ca8 e88ee9 llOb2b d4fa98 eedl50 ca6dd8 932245 ef7592 b. 391810 7ce205 1fed33 f6dide 9491c7 dea6a5 a442e1 54c8bb c. 60c08f 0d61f8 e36801 df66d1 d8f939 2e52ca ef0653 199479 d. 1e99f2 fbe724 246d18 b54e33 5cac0d diab9d fd7988 a4b0c4 e. 2b3bdO Ofb274 604318 9cacll 6cedc7 e771ae 0358ff 752a3a f. 3fdlaa a8dab4 0133d8 0320e0 790968 c76546 b993f6 c8ff3b Table 2 : S (u, v) pour v 2 8