EP2204007A2 - Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete - Google Patents

Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete

Info

Publication number
EP2204007A2
EP2204007A2 EP08829862A EP08829862A EP2204007A2 EP 2204007 A2 EP2204007 A2 EP 2204007A2 EP 08829862 A EP08829862 A EP 08829862A EP 08829862 A EP08829862 A EP 08829862A EP 2204007 A2 EP2204007 A2 EP 2204007A2
Authority
EP
European Patent Office
Prior art keywords
bits
cryptographic
schemes
random
pseudo
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.)
Withdrawn
Application number
EP08829862A
Other languages
German (de)
English (en)
Inventor
Yannick Seurin
Jacques Patarin
Henri Gilbert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2204007A2 publication Critical patent/EP2204007A2/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Definitions

  • the invention relates to the pseudo-random function generation domain for which there is evidence that relates their security to the complexity of the best attacks for very simple schemes to analyze.
  • the invention relates to the field of symmetric cryptography, and relates to a method of block ciphering.
  • the invention finds a very advantageous application in that it allows a symmetric encryption / decryption with a high degree of security and ensuring a simple and effective implementation of hardware and software. It should be noted that symmetric encryption is widely used in all types of communications, such as mobile communications, the Internet, smart cards, and so on.
  • Block ciphering is one of the two main methods of symmetric encryption.
  • a block cipher algorithm associates an encryption function, that is to say, a bijective transformation E ⁇ of the set ⁇ 0, l ⁇ n words of n bits, also called blocks.
  • E ⁇ an encryption function
  • block cipher algorithms such as Data Encryption Standard (DES), Advanced Encryption Standard (AES), MISTY, RC6, IDEA, and so on.
  • DES Data Encryption Standard
  • AES Advanced Encryption Standard
  • MISTY RC6, IDEA
  • block cipher algorithms are generators of pseudo-random permutations, that is to say that at a relatively short key they associate a permutation of the set of n-bit blocks so that if the key is chosen randomly, the permutation obtained is difficult to distinguish from a really random permutation.
  • a concept similar to that of a pseudo-random permutation generator is that of pseudo-random function generator of n bits to m bits (where m is an integer equal or not to ri) difficult to distinguish from functions of n bits to m bits perfectly random.
  • a generator of pseudo-random functions can be used according to various procedures for the construction of cryptographic algorithms including block ciphering algorithms, message authentication, or stream ciphers.
  • the most widely used and recognized existing block cipher algorithms, such as I 1 AES and DES operate on keys consisting of a relatively short binary word and having no particular structure. For example, the secret keys of the DES consist of words of 56 bits length, those of the AES words of length 128, 192 or 256 bits.
  • Symmetric-Key Ciphers Based on an NP-Complete Subproblerri 1 of Matt Blaze, a secret key encryption algorithm. This algorithm is built from several Feistel F 1 schemes nested in layers. Each Feistel scheme F associates n, input bits n, output bits in an identical number of turns which is equal to 4 for each Feistel scheme F, nested. However, this algorithm has been cryptanalyzed by an attack on the Feistel scheme belonging to the upper layer of the nesting.
  • the present invention relates to a method for generating secret key pseudo-random function K from an input block of m bits to an output block of n bits using a determined number ⁇ of cryptographic schemes ⁇ i (mi, ni), ..., ⁇ , (m ⁇ , n,), ..., ⁇ a (m a , n a ) nested in layers according to a recursive structure, each current cryptographic scheme ⁇ , (m, , n ⁇ ) associating with m, input bits n, output bits in a number of turns r ,, each lattice using an internal elementary function f ⁇ constructed from t, cryptographic schemes ⁇ l + 1 (m l + 1l n l + 1 ) of n l + 1 bits to m, +1 bits, with n l + 1 ⁇ n, m l + 1 ⁇ m, and t, ⁇ 1, each cryptographic
  • said determined number of cryptographic schemes is chosen such that the most internal elementary functions A ⁇ constituting the cryptographic schemes ⁇ a (m a , n a ) of the innermost layer are random functions defining a minimum size of said key secret.
  • the method for generating pseudo-random function has a high efficiency with a secret key of reasonable size.
  • said predetermined number 2 e is equal to 2 80 .
  • the pseudo-random function generation method can not be distinguished from a random function associating m input bits n output bits in less than 2 80 calculation steps, which is the current security standard.
  • said cryptographic schemes ⁇ 1 (mi, ni), ..., ⁇ , (m ,, n,) ⁇ a (m a , Ha) correspond to cryptographic permutation schemes TJi (D 1 ), ..., ⁇ , (n,), ..., IJa (Ha), each cryptographic permutation IJ 1 (H 1 ) implementing a permutation of blocks of n bits.
  • the method of generating pseudo-random function can be implemented using cryptographic permutation schemes which are more numerous and better studied than cryptographic schemes performing non-bijective functions.
  • the pseudo-random function generating method can be used to perform secret key encryption in a simple and secure manner.
  • said cryptographic permutation schemes ⁇ , (ni), ..., ⁇ , (n,), ..., IJa (Ha) correspond to symmetrical Feistel schemes F 1 (H 1 ), ..., F 1 (H 1 ), ..., F a (n a ).
  • the pseudo-random function generation method can be implemented very effectively, the Feistel schemes being well studied and simple to implement.
  • said number of turns r depends on the number of bits n and on said integer c according to an inequation defined by r,> 2c / n, + 4.
  • the pseudo-random function generation method can not be distinguished from a random permutation of n-bit blocks using known attacks.
  • the invention is also directed to a pseudo-secretory key encryption method K from an input block of m bits to an n-bit output block using the pseudo-random function generating method according to any one of the features -above.
  • the invention is also directed to a secret key pseudo-random function generator K from an input block of m bits to an output block of n bits using a determined number ⁇ x of cryptographic schemes
  • each current cryptographic scheme ⁇ (/ 77,, n, J associating m, input bits n, output bits in a number of revolutions r , each lattice using an internal elementary function f ⁇ constructed from t ⁇ cryptographic schemes ⁇ l + 1 (m l + i, n l + 1 ) of n, + i bits to m, + i bits, with n l + 1 ⁇ n h m, + i ⁇ m, and t, ⁇ 1, each cryptographic scheme ⁇ , (m ,, n,) defining a minimum number of comp (m h n h r,) operations dependent on said number of rounds r ,, necessary to distinguish it from a random function associating
  • the invention is also directed to a pseudo-secretory secret-key encryption device K from an input block of m bits to an n-bit output block, the device comprising a pseudo-random function generator according to the above characteristics.
  • the invention also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, the program comprising code instructions for performing the steps of the method of generating pseudorandom functions according to at least one of the above features, when executed on a computer.
  • the invention also provides a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, the program comprising code instructions for executing the steps of the encryption method according to the above characteristics, when run on a computer.
  • FIG. 1 schematically illustrates a generator of pseudo-random functions, according to the invention
  • FIG. 2 diagrammatically illustrates an algorithm for generating a function of m bits to n bits, according to the invention.
  • FIGS. 3A to 3C schematically illustrate an embodiment according to the invention. Detailed description of embodiments
  • FIG. 1 is a schematic figure of a pseudo-random function generator 1 with secret key
  • This generator 1 uses cryptographic primitives or schemes ⁇ , (m ,, n,) from m, bits to n, bits.
  • the pseudo-random function generator 1 comprises data processing or calculation means 7 which construct a determined number ex of cryptographic schemes ⁇ ⁇ (mi, rii), ..., ⁇ (m ,, n, ), ..., ⁇ a (m a , n a ) nested in layers according to a recursive structure.
  • the first cryptographic scheme is that of the outermost layer and the latest cryptographic scheme
  • ⁇ a (m a , n a ) is that of the innermost layer.
  • Each current cryptographic scheme ⁇ , (m ,, ni) associates m, input bits n, output bits with a number of turns r ,, each turn using an internal elementary function f'K
  • Each internal elementary function f> is constructed from t, cryptographic schemes ⁇ l + 1 (m l + 1l n l + 1 ) of n, +1 bits to m, + i bits, with n l + 1 ⁇ n, m, + i ⁇ m , and t, ⁇ 1.
  • Each cryptographic scheme ⁇ , (m ,, n,) is characterized by a minimum number of operations comp (m h n ,, r,) necessary to distinguish it from a random function associating with / V 1 input bits n , output bits.
  • This minimal number of operations comp ⁇ m h n ,, r,) is a function called "complexity" which depends on the number of revolutions r, and possibly the parameters m, and n, involved in the construction of cryptographic schemes.
  • This complexity function is representative of the complexity of generic attacks (that is, the attacks that make it possible to distinguish the cryptographic scheme from a truly random function when the elementary functions are random).
  • the calculation means 7 determine the number of revolutions r, necessary for the minimum number of comp (m h n tl r,) operations associated with it to be greater than or equal to a predetermined number 2 e , where c is an integer. According to the current security standard it is possible to choose the predetermined number 2 e equal
  • the generator 1 of the present invention makes it possible to generate a pseudo-random function such that an adversary whose computing power is limited to 2 nd operations is incapable of distinguishing a function generated by this generator 1 and a random key of a really random permutation.
  • This can be proved by means of security evidence based on the study of the safety of the intermediate "bricks" used, namely: - theorems concerning the so-called unconditional security of these bricks, that is to say -describe security terminals valid for an attacker with unlimited computing power;
  • the calculation means are adapted to calculate the determined number ex of cryptographic schemes so that the most internal elementary functions constituting the cryptographic schemes ⁇ a (m a , n a ) of the innermost layer are functions random variables defining a minimum size of the secret key K.
  • 0J (IrI 11 D 1 ), ..., ⁇ , (m h n t ) ⁇ a (m a , n a ) can be bijective and correspond in particular to permutation schemes cryptographic rTj (ni), ..., ⁇ , (n,), ..., ⁇ a (n a ) which are very numerous and well studied.
  • Each cryptographic permutation ⁇ , (nj implements a permutation of the blocks of n, bits.
  • the cryptographic permutations FI 1 (Di), • • -, HiCnJ, ..., IJ to Cn a) can correspond to symmetrical Feistel schemes F 1 (IIi), ..., F 1 (H 1 ), ..., F a (n a ) which are simple to perform.
  • FIG. 2 illustrates an algorithm for generating a function of m bits to n bits or an permutation of n bits that is resistant to any attacker having a computing capacity less than or equal to 2 e , where c is for example 80.
  • the construction then requires ri times ti times r 2 functions or elementary permutations f * 2) . It is thus possible to continue the process recursively to a step E3 where the functions or elementary permutations of the internal cryptographic primitive will be truly random and will be the key
  • the generator of functions from m bits to n bits or permutations of n pseudo-random bits thus obtained then has a proven security against any opponent having a computation capacity less than or equal to 2 e in the direction or succeed in attacking the generator 1 would be to improve the generic attacks on the primitives used, which is very unlikely.
  • this generator is very convenient to use because it is very efficient and has a reasonable key size.
  • a permutation In the case where a permutation is obtained, it can be used according to the usual procedures of block ciphers. In the case where a function is obtained, it can be used according to certain particular modes such as the counter mode to perform stream encryption or the CBC MAC mode to perform message authentication.
  • Feistel of a random function than of a bijection. It is also easier to distinguish a Feistel scheme from a bijection than from an even one. Indeed, the more one tries to distinguish a Feistel scheme from a large set, the easier it is.
  • the Feistel schemes also have so-called generalized or asymmetric variants.
  • Feistel schemes using as brick only even bijections are Feistel schemes of higher level compared to the most internal Feistel scheme.
  • the plaintext is divided into two blocks of different size, more particularly, it may concern the lower-level Feistel scheme.
  • FIGS. 3A to 3C illustrate an embodiment for the generation of a pseudo-random function among the many possible examples, according to the invention.
  • FIGS. 3A to 3C describe the different steps of the construction starting from the outermost step (FIG. 3A) towards the innermost stage (FIG. 3C).
  • step of FIG. 3A consists of a diagram of
  • n is determined by the following security criterion: the best conjectured attacks on a Feistel scheme at r ? turns have a complexity in 2f rl'4) n operations, where n is half the number of bits of the ciphered blocks.
  • FIG. 3B illustrates the construction of the elementary function f / ⁇ of the upper step (FIG. 3A) from the 14 elementary functions fij 2) , ..., Of course, this construction can be continued until the basic brick of the construction consists of elementary functions from 1 bit to 1 bit. However, there are a number of steps for which the size of the key is minimal.
  • FIG. 3C illustrates the construction of the elementary function fij 3) of the upper step (not shown) from the 28 elementary functions fij 4) , ..., fi4, 2 (4) .
  • the invention also relates to a downloadable computer program from a communication network comprising program code instructions for executing the steps of the generation method and / or the encryption method according to the invention when it is executed on a computer.
  • This computer program can be stored on a computer-readable medium.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
  • the invention also relates to a computer-readable information medium, comprising instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un générateur de fonction pseudo-aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant un nombre déterminé α de schémas cryptographiques Φ1(m1, n1),..., Φi(mi, ni),..., Φα(mα,nα) imbriqués en couches selon une structure récursive, chaque schéma cryptographique courant Φi(mi, ni) associant à mi bits d'entrée ni bits de sortie en un nombre de tours ri, chaque tour utilisant une fonction élémentaire interne f(i) construite à partir de ti schémas cryptographiques Φi+1(mi+1,ni+1) de ni+1 bits vers mi+1 bits, avec ni+1 < ni, mi+1 <mi et ti ≥ 1, chaque schéma cryptographique Φi(mi, ni) définissant un nombre minimal d'opérations comp(mi, ni, ri ), dépendant dudit nombre de tours ri, nécessaire pour le distinguer d'une fonction aléatoires associant mi bits d'entrée ni bits de sortie, le générateur comportant des moyens de calculs (7) pour calculer, pour chaque schéma cryptographique Φi(mi, ni), ledit nombre de tours ri de sorte que ledit nombre d'opérations comp(mi, ni, ri ) qui lui est associé soit supérieur ou égal à un nombre prédéterminé 2c, c étant un nombre entier.

Description

Titre de l'invention
Générateur et procédé de génération de fonction pseudoaléatoire à clé secrète
Domaine technique de l'invention
L'invention se rapporte au domaine de génération de fonctions pseudo-aléatoires pour lesquels il existe une preuve qui relie leur sécurité à la complexité des meilleures attaques pour des schémas très simples à analyser. En particulier, l'invention relève du domaine de la cryptographie symétrique, et se rapporte à un procédé de chiffrement par blocs.
En particulier, l'invention trouve une application très avantageuse en ce qu'elle permet un chiffrement/déchiffrement symétrique présentant un grand degré de sécurité et assurant une implémentation simple et efficace en matériel et en logiciel. On notera que, le chiffrement symétrique est employé couramment dans tous les types de communications, telles que les communications mobiles, l'Internet, les cartes à puce, etc.
Arrière-plan de l'invention En cryptographie symétrique, l'émetteur et le destinataire d'un échange de données chiffrées doivent partager préalablement à tout échange la connaissance d'une clé secrète K. Des algorithmes de chiffrement et de déchiffrement paramétrés par la clé K permettent respectivement à l'émetteur de transformer un message en clair en un cryptogramme et au destinataire de recouvrer le message clair à partir du cryptogramme.
Le chiffrement par blocs constitue avec le chiffrement à flot l'une des deux principales méthodes de chiffrement symétrique. A la clé secrète K, un algorithme de chiffrement par blocs associe une fonction de chiffrement, c'est-à-dire, une transformation bijective Eκ de l'ensemble {0,l}n des mots de n bits, également appelés blocs. Pour chiffrer un message clair M de longueur quelconque, on peut enchaîner les appels à la fonction Eκ selon différents modes opératoires.
Il existe de nombreux algorithmes de chiffrement par blocs connus, par exemple le « Data Encryption Standard » (DES), « l'Advanced Encryption Standard » (AES), MISTY, RC6, IDEA, etc. Mathématiquement, ces algorithmes de chiffrement par blocs constituent des générateurs de permutations pseudo-aléatoires, c'est-à-dire qu'à une clé relativement courte ils associent une permutation de l'ensemble des blocs de n bits de telle sorte que si la clé est choisie aléatoirement, la permutation obtenue est difficile à distinguer d'une permutation vraiment aléatoire.
Une notion voisine de celle de générateur de permutations pseudo-aléatoires est celle de générateur de fonctions pseudo-aléatoires de n bits vers m bits (où m est un entier égal ou non à ri) difficiles à distinguer de fonctions de n bits vers m bits parfaitement aléatoire. Un générateur de fonctions pseudo-aléatoires peut être utilisé selon divers modes opératoires pour la construction d'algorithmes cryptographiques et notamment d'algorithmes de chiffrement par blocs, d'authentification de message, ou de chiffrement à flot. Les algorithmes de chiffrement par blocs existants les plus utilisés et reconnus, comme I1AES et le DES, opèrent sur des clés constituées d'un mot binaire relativement court et ne possédant aucune structure particulière. Ainsi par exemple, les clés secrètes du DES sont constituées de mots de longueur 56 bits, celles de l'AES de mots de longueur 128, 192 ou 256 bits. Il existe quelques rares algorithmes par blocs opérant sur des clés possédant une structure particulière qui utilise 8 permutations secrètes de l'ensemble {0,..,255} des octets, mais il n'existe pas d'argument mathématique permettant de fonder une plus grande confiance dans la sécurité de ces algorithmes que dans ceux dont la clé est constituée de mots de longueur suffisante, par exemple 128 bits. On considère habituellement que pour qu'un algorithme par blocs (ou plus généralement un générateur de fonctions ou de permutations pseudo-aléatoires) soit sûr, il doit être impossible, compte tenu de la limitation des ressources de calcul susceptibles d'être disponibles dans les années ou décennies à venir, à un adversaire disposant d'un nombre arbitraire N d'accès "en boîte noire" aux fonctions de chiffrement et/ou de déchiffrement associées à une clé secrète inconnue K, de réaliser l'un des types d'attaque suivants : -reconstituer la clé secrète K; -plus généralement, prédire un nouveau couple de messages clair-chiffré (X,Y) satisfaisant Y = EK(X) distincts des N couples de messages clair- chiffrés (Xi1Y1) résultant des N accès de l'adversaire aux fonctions de chiffrement et/ou de déchiffrement; -plus généralement encore, distinguer avec une probabilité de succès non négligeable une fonction Eκ associée à une clé K aléatoire d'une permutation parfaitement aléatoire de l'ensemble {0, 1}n des blocs de n bits, ce au moyen d'un algorithme de test utilisant le résultat des N accès en boîte noire à la fonction et/ou à son inverse. Ceci constitue la définition la plus générale de la sécurité d'un algorithme dans le sens où se prémunir contre ce type d'attaque assure une sécurité absolue de l'algorithme d'un point de vue mathématique (i.e. hors attaques par canaux cachés, etc.).
Il est généralement admis que les ressources de calcul susceptibles d'être mises en œuvre, actuellement ou dans les années à venir, par tout adversaire (y compris une coalition de millions d'internautes) sont strictement inférieures à 280 opérations élémentaires.
Actuellement, en cryptographie à clé publique, on parle de "preuves de sécurité", de "preuves partielles de sécurité" ou de "preuves de sécurité réductionnistes" d'un schéma lorsque l'on a pu ramener de façon prouvée la sécurité de ce schéma à la résolution d'un problème réputé difficile. Les problèmes les plus classiques réputés difficiles que l'on utilise à ce jour en cryptographie à clé publique sont le problème de la factorisation d'entiers et le problème du logarithme discret sur divers groupes finis.
Par opposition à la situation dans le domaine de la cryptographie à clé publique, la sécurité des algorithmes par blocs connus, y compris ceux qui sont considérés comme les plus sûrs comme AES, repose dans l'état actuel des connaissances sur des bases très empiriques. Pour aucun algorithme par blocs connu on ne dispose d'arguments mathématiques permettant d'établir une borne inférieure sur la complexité d'attaques de l'un des types décrits ci-dessus. Les principaux types d'arguments sur lesquels se fonde la confiance que l'on peut avoir dans la sécurité des algorithmes considérés comme les plus sûrs sont les suivants :
-absence d'attaque connue de complexité inférieure au niveau de sécurité souhaité, par exemple de complexité inférieure à 280 ou à 2|K|, où \K\ est la longueur des clés de l'algorithme exprimée en bits;
-résistance prouvable à des méthodes particulières d'attaque, par exemple résistance à la cryptanalyse différentielle et la cryptanalyse linéaire;
-enfin, dans le cas de certains algorithmes comme DES, l'existence de preuves de résistance au type d'attaque le plus général mentionné ci- dessus dans le modèle de sécurité dit de Luby et Rackoff dans lequel l'on remplace certaines composantes de l'algorithme réel (par exemple les fonctions dépendant de la clé utilisées aux différents tours) par des fonctions idéales parfaitement aléatoires. Bien que ce type de preuve ne fournisse pas de borne inférieure sur la complexité d'attaques contre l'algorithme réel, il peut être considéré comme une assurance que la structure générale de l'algorithme (par exemple l'emploi du schéma dit de Feistel dans le cas du DES) ne présente pas de défaut de faiblesse intrinsèque. En particulier, il est décrit dans le document "Efficient
Symmetric-Key Ciphers Based on an NP-Complete Subproblerri1 de Matt Blaze, un algorithme de chiffrement à clé secrète. Cet algorithme est construit à partir de plusieurs schémas de Feistel F1 imbriqués en couches. Chaque schéma de Feistel F, associe à n, bits d'entrée n, bits de sortie en un nombre de tours identique qui est égal à 4 pour chaque schéma de Feistel F, imbriqué. Or cet algorithme a été cryptanalysé par une attaque portée sur le schéma de Feistel appartenant à la couche supérieure de l'imbrication.
Il a été démontré dans les documents "Generic Attacks on Feistel Schemes*1 et "Security of Random Feistel Schemes with 5 or more Rounds" de J. Patarin que pour éviter cette attaque, il est nécessaire que le Schéma de Feistel de la couche supérieure de l'imbrication associe à n, bits d'entrée n, bits de sortie en au moins 6 tours. Plus particulièrement, ce document ("Security of Random Feistel Schemes with 5 or more Rounds") décrit une attaque sur les schémas de Feistel à 5 tours en 2 opérations, ce qui pour le cas de schémas de Feistel à 64 bits d'entrée donne une attaque en 264<280. Ainsi, il faut au moins 6 tours.
Cependant, même en prenant un nombre de tours égal à 6 pour le schéma de Feistel appartenant à la couche supérieure, il n'y a pas la garantie que ce type d'algorithme reste résistant à de futures attaques. En outre, en prenant ce même nombre de tours pour les schémas de Feistel appartenant à des couches inférieures, il pourrait toujours exister des attaques sur ces schémas, détruisant alors la sécurité de l'ensemble de l'algorithme.
Ainsi, aucune des méthodes connues de chiffrement à l'aide d'un algorithme par blocs (et plus généralement aucun algorithme de génération de fonctions ou permutations pseudo-aléatoires) ne concilie les deux conditions suivantes :
1 °) l'existence d'arguments mathématiques permettant d'étayer la conjecture que même lorsque l'on utilise l'algorithme au-delà de la distance d'unicité définie par Shannon, il n'existe aucune attaque réalisable en moins de 2e opérations, où c est un nombre suffisamment grand pour assurer une sécurité forte de l'algorithme (par exemple supérieur ou égal à 80).
2°) l'existence d'implémentations logicielles de rapidité proche de celle des algorithmes par blocs actuellement les plus utilisés, comme I1AES ou le DES nécessitant des ressources de calcul (temps, mémoire, etc.) réalistes.
Objet et résumé de l'invention La présente invention concerne un procédé de génération de fonction pseudo-aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant un nombre déterminé α de schémas cryptographiques Φi(mi,ni),..., Φ,(mι,n,),..., Φa(ma,na) imbriqués en couches selon une structure récursive, chaque schéma cryptographique courant Φ,(m,,nι) associant à m, bits d'entrée n, bits de sortie en un nombre de tours r,, chaque tour utilisant une fonction élémentaire interne fή construite à partir de t, schémas cryptographiques Φl+1(ml+1lnl+1) de nl+1 bits vers m,+1 bits, avec nl+1 < n,, ml+1 < m, et t, ≥ 1, chaque schéma cryptographique Φ,(m,,n,) définissant un nombre minimal d'opérations compim,, n,, r, ), dépendant dudit nombre de tours r,, nécessaire pour le distinguer d'une fonction aléatoires associant à m, bits d'entrée n, bits de sortie, pour chaque schéma cryptographique Φ,(m,,ni) ledit nombre de tours r, étant choisi de sorte que ledit nombre d'opérations comp^m,, n,, r, ) qui lui est associé soit supérieur ou égal à un nombre prédéterminé 2e, c étant un nombre entier.
Ainsi, en modulant le nombre de tours, on apporte une preuve de sécurité pour chacun des schémas cryptographiques et donc pour l'ensemble du procédé de génération de fonction pseudo-aléatoire. Ainsi, les meilleures attaques connues pour distinguer chaque schéma cryptographique d'une fonction aléatoire nécessitent un nombre d'étapes de calcul supérieur ou égal au nombre prédéterminé 2e qui peut être choisi très grand.
Avantageusement, ledit nombre déterminé a de schémas cryptographiques est choisi tel que les fonctions élémentaires A^ les plus internes constituant les schémas cryptographiques Φa(ma,na) de la couche la plus interne soient des fonctions aléatoires définissant une taille minimale de ladite clé secrète.
Ainsi, le procédé de génération de fonction pseudo-aléatoire présente une grande efficacité avec une clé secrète de taille raisonnable. Avantageusement, ledit nombre prédéterminé 2e est égal à 280.
Ainsi, le procédé de génération de fonction pseudo-aléatoire ne peut pas être distingué d'une fonction aléatoire associant à m bits d'entrée n bits de sortie en moins de 280 étapes de calcul, ce qui est le standard de sécurité actuel. Selon une particularité de la présente invention, lesdits schémas cryptographiques Φ1(mi,ni),..., Φ,(m,,n,) Φa(ma,Ha) correspondent à des schémas de permutations cryptographiques TJi(D1),..., π,(n,), ... ,IJa (Ha), chaque permutation cryptographique IJ1(H1) implémentant une permutation des blocs de n, bits. Ainsi, le procédé de génération de fonction pseudo-aléatoire peut être implémenté à l'aide de schémas de permutation cryptographiques qui sont plus nombreux et mieux étudiés que les schémas cryptographiques réalisant des fonctions non bijectives. Ainsi, le procédé de génération de fonction pseudo-aléatoire peut être utilisé pour réaliser un chiffrement à clé secrète de manière simple et sécurisé.
Avantageusement, lesdits schémas de permutations cryptographiques π,(ni), ..., π,(n,), ... ,IJa (Ha) correspondent à des schémas de Feistel symétriques F1(H1), ..., F1(H1), ... , Fa (na). Ainsi, le procédé de génération de fonction pseudo-aléatoire peut-être implémenté de façon très efficace, les schémas de Feistel étant bien étudiés et simples à réaliser.
Pour chaque schéma de Feistel symétrique F1(H1) ledit nombre de tours r, dépend du nombre de bits n, et dudit nombre entier c selon une inéquation définie par r, > 2c/n,+4.
Ainsi, le procédé de génération de fonction pseudo-aléatoire ne peut pas être distingué d'une permutation aléatoire des blocs de n bits à l'aide des attaques connues. L'invention vise aussi un procédé de chiffrement pseudoaléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant le procédé de génération de fonction pseudo-aléatoire selon l'une quelconque des caractéristiques ci-dessus.
L'invention vise aussi un générateur de fonction pseudo- aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant un nombre déterminé <x de schémas cryptographiques
Φi(m1tni),..., Φ,(m,,nt),..., Φa(ma,na) imbriqués en couches selon une structure récursive, chaque schéma cryptographique courant Φ,(/77,,n,J associant à m, bits d'entrée n, bits de sortie en un nombre de tours r,, chaque tour utilisant une fonction élémentaire interne fή construite à partir de tι schémas cryptographiques Φl+1(ml+i,nl+1) de n,+i bits vers m,+i bits, avec nl+1 < nh m,+i < m, et t, ≥ 1 , chaque schéma cryptographique Φ,(m,,n,) définissant un nombre minimal d'opérations comp(mh nh r, ), dépendant dudit nombre de tours r,, nécessaire pour le distinguer d'une fonction aléatoires associant à m, bits d'entrée n, bits de sortie, le générateur comportant des moyens de calculs pour calculer, pour chaque schéma cryptographique Φ,(mhn,), ledit nombre de tours r, de sorte que ledit nombre d'opérations comp(mh nh r, ) qui lui est associé soit supérieur ou égal à un nombre prédéterminé 2e, c étant un nombre entier. L'invention vise aussi un dispositif de chiffrement pseudoaléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits, le dispositif comportant un générateur de fonction pseudoaléatoire selon les caractéristiques ci-dessus. L'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, le programme comprenant des instructions de codes pour l'exécution des étapes du procédé de génération de fonctions pseudo aléatoire selon au moins l'une quelconque des caractéristiques ci-dessus, lorsqu'il est exécuté sur un ordinateur.
L'invention également un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, le programme comprenant des instructions de codes pour l'exécution des étapes du procédé de chiffrement selon les caractéristiques ci-dessus, lorsqu'il est exécuté sur un ordinateur.
Brève description des dessins D'autres particularités et avantages de l'invention ressortiront à la lecture de la description faite, ci-après, à titre indicatif mais non limitatif, en référence aux dessins annexés, sur lesquels :
-la figure 1 illustre de manière schématique un générateur de fonctions pseudo-aléatoire, selon l'invention ; -la figure 2 illustre de manière schématique un algorithme pour générer une fonction de m bits vers n bits, selon l'invention ; et
-les figures 3A à 3C illustrent de manière schématique un mode de réalisation, selon l'invention. Description détaillée de modes de réalisation
Conformément à l'invention, la figure 1 est une figure schématique d'un générateur 1 de fonctions pseudo-aléatoire à clé secrète
K d'un bloc d'entrée 3 de m bits vers un bloc de sortie 5 de n bits. Ce générateur 1 utilise des primitives ou schémas cryptographiques Φ,(m,,n,) de m, bits à n, bits.
En effet, le générateur 1 de fonction pseudo-aléatoire comporte des moyens de traitement de données ou de calcul 7 qui construisent un nombre déterminé ex de schémas cryptographiques Φ}(mi,rii),..., Φι(m,,n,),..., Φa(ma,na) imbriqués en couches selon une structure récursive. Le premier schéma cryptographique est celui de la couche la plus externe et le dernier schéma cryptographique
Φa(ma,na) est celui de la couche la plus interne. Chaque schéma cryptographique courant Φ,(m,,ni) associe à m, bits d'entrée n, bits de sortie en un nombre de tours r,, chaque tour utilisant une fonction élémentaire interne f'K Chaque fonction élémentaire interne f> est construite à partir de t, schémas cryptographiques Φl+1(ml+1lnl+1) de n,+1 bits vers m,+i bits, avec nl+1 < n,, m,+i < m, et t, ≥ 1.
Chaque schéma cryptographique Φ,(m,,n,) est caractérisé par un nombre minimal d'opérations comp(mh n,, r, ) nécessaire pour le distinguer d'une fonction aléatoires associant à /V1 bits d'entrée n, bits de sortie.
Ce nombre minimal d'opérations comp{mh n,, r, ) est une fonction dite « de complexité » qui dépend du nombre de tours r, et éventuellement des paramètres m, et n, intervenant dans la construction des schémas cryptographique. Cette fonction de complexité est représentative de la complexité des attaques génériques (c'est-à-dire, les attaques permettant de distinguer le schéma cryptographique d'une fonction réellement aléatoires lorsque les fonctions élémentaires sont aléatoires). Pour chaque schéma cryptographique Φ^m,,/!,), les moyens de calcul 7 déterminent le nombre de tours r, nécessaire pour que le nombre minimal d'opérations comp(mh ntl r, ) qui lui est associé soit supérieur ou égal à un nombre prédéterminé 2e, c étant un nombre entier. Selon le standard de sécurité actuel on peut choisir le nombre prédéterminé 2e égal
-)80
Ainsi, le générateur 1 de la présente invention permet de générer une fonction pseudo-aléatoire de telle sorte qu'un adversaire dont la puissance de calcul est limitée à 2e opérations est incapable de distinguer une fonction générée par ce générateur 1 et une clé aléatoire d'une permutation réellement aléatoire. Ceci peut être prouvé au moyen d'une preuve de sécurité qui s'appuie sur l'étude de la sécurité des "briques" intermédiaires utilisées, à savoir : -des théorèmes concernant la sécurité dite inconditionnelle de ces briques, c'est-à-dire des bornes de sécurité valables pour un attaquant ayant une puissance de calcul illimitée ;
-des conjectures, étayées par plusieurs années de recherche de la communauté cryptographique, sur la complexité des meilleures attaques possibles sur les briques utilisées (appelées "attaques génériques" car elles s'appliquent à des schémas où les fonctions élémentaires f°} sont des fonctions réellement aléatoires).
En outre, les moyens de calcul sont adaptés pour calculer le nombre déterminé ex de schémas cryptographiques de sorte que les fonctions élémentaires /^ les plus internes constituant les schémas cryptographiques Φa(ma,na) de la couche la plus interne soient des fonctions aléatoires définissant une taille minimale de la clé secrète K.
Avantageusement, les schémas cryptographiques
0J(IrI11D1),..., Φ,(mhnt) Φa(ma,na) peuvent être bijectives et correspondre en particulier à des schémas de permutations cryptographiques rTj(ni), ..., π,(n,), ... ,πa (na) qui sont très nombreux et bien étudiés. Chaque permutation cryptographique π,(nj implémente une permutation des blocs de n, bits.
En particulier, les permutations cryptographiques FI1(Di), • • -, HiCnJ, ... ,IJa Cn a) peuvent correspondre à des schémas de Feistel symétriques F1(IIi), ..., F1(H1), ... , Fa (na) qui sont simple à réaliser.
Dans ce cas, pour chaque schéma de Feistel symétrique F,(nJ le nombre de tours r, dépend du nombre de bits n, et du nombre entier c selon une inéquation définie par r, ≥ 2c/n,+4. Ainsi, en modulant selon l'invention, pour chaque schéma de Feistel
Fi, le nombre de tours nécessaire en apportant une preuve de sécurité pour chacun de ces schémas, on apporte une preuve de sécurité pour l'ensemble du procédé de génération.
La figure 2 illustre un algorithme pour générer une fonction de m bits vers n bits ou une permutation de n bits résistant à tout attaquant possédant une capacité de calculs inférieure ou égale à 2e, ou c vaut par exemple 80.
Dans une première étape El, on construit cette fonction ou permutation à partir d'un certain schéma cryptographique Φ 1Cm^n1) ou IJiCn1) (par exemple un schéma de Feistel), avec Hi1=Im et D1=Ii en fixant le nombre de tour ri utilisé tel que COmPCr1) = 2e. Cela nécessite ri fonctions ou permutations élémentaires f1}.
Dans une deuxième étape E2, chacune de ces fonctions ou permutations élémentaires /i; va être à son tour implémentée à l'aide de U1 schémas cryptographiques 02Cm^n2) ou IJ2(D2) (qui peut être identique ou différent de celui de la première l'étape) en fixant le nombre de tours r2 utilisés tel que Comp(r2) = ¥. La construction nécessite alors ri fois ti fois r2 fonctions ou permuations élémentaires f*2). On peut ainsi continuer récursivement le procédé jusqu'à une étape E3 où les fonctions ou permutations élémentaires de la primitive cryptographique interne seront réellement aléatoires et constitueront la clé
/Cdu procédé de génération. Généralement, il existe un nombre e d'étapes qui minimisera la taille de la clé secrète.
Le générateur de fonctions de m bits vers n bits ou de permutations de n bits pseudo-aléatoires ainsi obtenu possède alors une sécurité prouvée contre tout adversaire possédant une capacité de calculs inférieure ou égale à 2e dans le sens ou parvenir à attaquer le générateur 1 reviendrait à améliorer les attaques génériques sur les primitives utilisées, ce qui est très improbable. De plus, ce générateur est très pratique à utiliser car très efficace et possède une taille de clé raisonnable.
Dans le cas où l'on obtient une permutation, elle peut-être utilisée selon les modes opératoires habituels des chiffrements par blocs. Dans le cas où l'on obtient une fonction, elle peut être utilisée selon certains modes particuliers comme le mode compteur pour réaliser du chiffrement à flot ou le mode CBC MAC pour réaliser une authentification de messages.
Les constructions cryptographiques intermédiaires utilisées pour obtenir la génération d'une fonction aléatoire sont potentiellement nombreuses.
A titre d'exemple, on peut utiliser les schémas de Feistel décrits par exemple par Michael Luby et Charles Rackoff dans le document « How to Construct Pseudorandom Permutations from Pseudorandom Functions », SIAM J. Comput 17(2): 373-386 (1988). Les meilleures attaques conjecturées contre ces schémas de Feistel ont été décrites par Jacques Patarin dans le document « Generic Attacks on Feistel Schemes ». On notera qu'un schéma de Feistel est une bijection paire. Ainsi, lorsqu'on emboîte les schémas de Feistel, les schémas sont construits avec des bijections paires. Par ailleurs, il est plus simple de distinguer un schéma de
Feistel d'une fonction aléatoire que d'une bijection. Il est aussi plus simple de distinguer un schéma de Feistel d'une bijection que d'une bijection paire. En effet, plus on essaie de distinguer un schéma de Feistel d'un ensemble grand, plus c'est simple.
En fait, quel que soit le nombre de tours du schéma de Feistel, il est toujours possible de le distinguer d'une fonction aléatoire avec 2n opérations et d'une bijection en 22n opérations (ce qui est indépendant du nombre de tours). Ce n'est que lorsqu'on essaie de le distinguer d'une bijection paire que le nombre d'opérations nécessaires augmente avec le nombre de tours du schéma de Feistel.
Les schémas de Feistel possèdent également des variantes dites généralisés ou dissymétriques.
Ainsi, pour un schéma de Feistel généralisés on peut utiliser des briques qui sont soit des fonctions aléatoires, soit des bijections aléatoires, soit des bijections paires aléatoires, typiquement cela concerne le schéma de Feistel le plus interne dans l'imbrication.
Typiquement, les schémas de Feistel n'utilisant comme brique que des bijections paires, sont des schémas de Feistel de niveau supérieur par rapport au schéma de Feistel le plus interne.
Pour les schémas de Feistel asymétriques, le texte en clair est divisé en deux blocs de taille différente, plus particulièrement, cela peut concerner le schéma de Feistel de niveau inférieur.
Par ailleurs, pour les schémas de Feistel symétriques, le texte en clair est divisé en deux blocs de taille identique. En particulier, cela concerne les schémas de Feistel de niveau supérieur.
En outre, pour les constructions cryptographiques intermédiaires, on peut aussi créer une fonction de n bits vers n bits à partir de deux permutations aléatoires P, et Pj de n bits vers n bits en calculant le ou exclusif « XOR » bit à bit de la sortie des deux permutations (P, XOR P3). Des preuves de sécurité inconditionnelles existent aussi pour cette construction (par exemple, dans le document de Jacques Patarin « On Linear Systems of Equations with Distinct Variables and Small Block Size », ICISC 2005: 299-32). On peut aussi utiliser les schémas dits « de Benes » qui permettent d'obtenir des fonctions de 2n bits vers 2n bits à partir de fonctions aléatoires de n bits vers n bits. Des preuves de sécurité inconditionnelles existent aussi pour ces schémas.
Ainsi, il est possible de réaliser la présente invention selon plusieurs modes de réalisation.
En effet, les figures 3A à 3C illustrent un mode de réalisation pour la génération d'une fonction pseudo-aléatoire parmi les nombreux exemples possibles, selon l'invention.
On utilise pour cet exemple des schémas de Feistel F,(n,) symétriques à r, tours et la construction P, XOR Pj pour obtenir une permutation pseudo-aléatoire IJj28 de 128 bits vers 128 bits, avec une sécurité en 280 opérations.
Les figures 3A à 3C décrivent les différentes étapes de la construction en partant de l'étape la plus externe (figure 3A) vers l'étape la plus interne (figure 3C).
Ainsi, l'étape de la figure 3A est constituée d'un schéma de
Feistel à r? tours, où n est déterminé par le critère de sécurité suivant : les meilleures attaques conjecturées sur un schéma de Feistel à r? tours ont une complexité en 2frl'4)n opérations, où n est la moitié du nombre de bits des blocs chiffrés.
Si l'on veut que cette complexité soit supérieure à 280, il faut prendre r? = 6. En se contentant de cette seule étape, on a besoin pour la clé de 6 fonctions élémentaires (aléatoires et indépendantes) f/υ,..., f/1J de 64 bits vers 64 bits, donc la taille totale de la clé est 6x64x264 bits, ce qui est trop grand pour être utilisé en pratique. Alors, on cherche à obtenir les 6 fonctions de 64 bits vers 64 bits à partir d'une seconde étape (figure 3B). Pour cela, on utilise la construction P, XOR P1, appliquée à deux schémas de Feistel à r2 tours de 64 bits vers 64 bits. Les 6 fonctions élémentaires fi(1),..., f/1J ainsi obtenues seront utilisées pour construire le schéma de Feistel de l'étape décrite précédemment. Le même critère qu'auparavant montre qu'il faut utiliser r2 = 7 tours pour obtenir des permutations de 64 bits vers 64 bits non distinguables de permutations aléatoires en moins de 280 calculs. Chacune des 6 fonctions élémentaires f/1J,..., f/1J nécessaires pour construire le schéma de Feistel de l'étage supérieur requiert 2x7 fonctions élémentaires de 32 bits vers 32 bits, donc la taille totale de la clé à cette étape est 6x(2x7)x32x232 bits. Par souci de simplification, la figure 3B illustre la construction de la fonction élémentaires f/υ de l'étape supérieur (figure 3A) à partir des 14 fonctions élémentaires fij2),..., Bien entendu, on peut continuer cette construction jusqu'à ce que la brique de base de la construction soit constituée de fonctions élémentaires de 1 bit vers 1 bit. Cependant il existe un nombre d'étapes pour lequel la taille de la clé est minimale.
En effet, pour les paramètres (taille de blocs de 128 bits, niveau de sécurité de 280 opérations), le nombre d'étapes optimal est de 4 (figure 3C). Par souci de simplification, la figure 3C illustre la construction de la fonction élémentaires fij3) de l'étape supérieur (non représentée) à partir des 28 fonctions élémentaires fij4),..., fi4,2(4).
Dans ce cas, le nombre de tours des schémas de Feistel à utiliser est respectivement n = 6, r2 = 7, r3 = 9 et r4 = 14. Les fonctions de base nécessaires sont alors des fonctions de 8 bits vers 8 bits et la taille de la clé est donnée par 6x(2x7)x(2x9)x(2xl4)x8x28 bits, soit 10,8 Mo, ce qui est tout à fait à la portée des capacités mémoire des ordinateurs personnels actuels. L'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication comprenant des instructions de codes de programme pour l'exécution des étapes du procédé de génération et/ou du procédé de chiffrement selon l'invention lorsqu'il est exécuté sur un ordinateur. Ce programme d'ordinateur peut être stocké sur un support lisible par ordinateur.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.

Claims

REVENDICATIONS
1. Procédé de génération de fonction pseudo-aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant un nombre déterminé ex de schémas cryptographiques
Φι(mi,rii),..., Φι(m,,n,),..., Φa(ma,na) imbriqués en couches selon une structure récursive, chaque schéma cryptographique courant 0,(IO11D1) associant à m, bits d'entrée n, bits de sortie en un nombre de tours r,, chaque tour utilisant une fonction élémentaire interne fή construite à partir de t, schémas cryptographiques Φl+1(rnl+1,nl+1) de n,+1 bits vers ml+1 bits, avec n,+1 < n,, ml+1 < m, et t, ≥ 1, chaque schéma cryptographique Φ,(m,,n,) définissant un nombre minimal d'opérations comp{mh n,, η ), dépendant dudit nombre de tours n, nécessaire pour le distinguer d'une fonction aléatoires associant à m, bits d'entrée n, bits de sortie, caractérisé en ce que pour chaque schéma cryptographique Φ,(m,,nι) ledit nombre de tours r, est choisi de sorte que ledit nombre d'opérations comp(mh n,, r, ) qui lui est associé soit supérieur ou égal à un nombre prédéterminé 2e, c étant un nombre entier.
2. Procédé selon la revendication 1, caractérisé en ce que ledit nombre déterminé a de schémas cryptographiques est choisi tel que les fonctions élémentaires ta) les plus internes constituant les schémas cryptographiques Φa(mot,na) de la couche la plus interne soient des fonctions aléatoires définissant une taille minimale de ladite clé secrète.
3. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que ledit nombre prédéterminé 2e est égal à 280.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits schémas cryptographiques
01(Hi11H1),..., Φ,(m,,n ,),..., 0a(nia,Ha) correspondent à des schémas de permutations cryptographiques JIi(H1), ..., JI1(H,), ... ,JIa (Ha), chaque permutation cryptographique IJ1(H1) implémentant une permutation des blocs de n, bits.
5. Procédé selon la revendication 4, caractérisé en ce que lesdits schémas de permutations cryptographiques IJ1(Hi), ..., IJ1(H,),... ,JIa (Ha) correspondent à des schémas de Feistel symétriques F1(H1), ..., F1(H1), ... ,
Fa (Ha).
6. Procédé selon la revendication 5, caractérisé en ce que pour chaque schéma de Feistel symétrique F,(n,) ledit nombre de tours r, dépend du nombre de bits n, et dudit nombre entier c selon une inéquation définie par r, ≥ 2c/n,+4.
7. Procédé de chiffrement pseudo-aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant le procédé de génération de fonction pseudo-aléatoire selon l'une quelconque des revendications 1 à 6.
8. Générateur de fonction pseudo-aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits utilisant un nombre déterminé ex de schémas cryptographiques
0,(Hi11H1),..., 0,(Hi11H1),..., 0a(nia,Ha) imbriqués en couches selon une structure récursive, chaque schéma cryptographique courant 01(Hi11H1) associant à m, bits d'entrée n, bits de sortie en un nombre de tours r,, chaque tour utilisant une fonction élémentaire interne fή construite à partir de t, schémas cryptographiques Φl+1(ml+1,nl+i) de n,+1 bits vers m,+i bits, avec n,+1 < n,, ml+1 < m, et t, ≥ 1, chaque schéma cryptographique Φι(mι,riι) définissant un nombre minimal d'opérations comj^m,, n,, r, ), dépendant dudit nombre de tours r,, nécessaire pour le distinguer d'une fonction aléatoires associant à m, bits d'entrée n, bits de sortie, caractérisé en ce qu'il comporte des moyens de calculs pour calculer, pour chaque schéma cryptographique Φ,(m,,n,), ledit nombre de tours r, de sorte que ledit nombre d'opérations comp^mh n,, r, ) qui lui est associé soit supérieur ou égal à un nombre prédéterminé 2e, c étant un nombre entier.
9. Générateur selon la revendication 8, caractérisé en ce que lesdits moyens de calcul sont adaptés pour calculer ledit nombre déterminé ex de schémas cryptographiques de sorte que les fonctions élémentaires A; les plus internes constituant les schémas cryptographiques Φa(ma,na) de la couche la plus interne soient des fonctions aléatoires définissant une taille minimale de ladite clé secrète.
10. Dispositif de chiffrement pseudo-aléatoire à clé secrète K d'un bloc d'entrée de m bits vers un bloc de sortie de n bits, caractérisé en ce qu'il comporte un générateur de fonction pseudo-aléatoire selon l'une quelconque des revendications 8 et 9.
11. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de codes de programme pour l'exécution des étapes du procédé de génération de fonctions pseudo aléatoire selon au moins l'une quelconque des revendications 1 à 6, lorsqu'il est exécuté sur un ordinateur.
12. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de codes de programme pour l'exécution des étapes du procédé de chiffrement selon la revendications 7, lorsqu'il est exécuté sur un ordinateur.
EP08829862A 2007-09-05 2008-08-26 Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete Withdrawn EP2204007A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0757357A FR2920617A1 (fr) 2007-09-05 2007-09-05 Generateur et procede de generation de fonction pseudo- aleatoire a cle secrete.
PCT/FR2008/051529 WO2009030857A2 (fr) 2007-09-05 2008-08-26 Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete

Publications (1)

Publication Number Publication Date
EP2204007A2 true EP2204007A2 (fr) 2010-07-07

Family

ID=39324188

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08829862A Withdrawn EP2204007A2 (fr) 2007-09-05 2008-08-26 Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete

Country Status (3)

Country Link
EP (1) EP2204007A2 (fr)
FR (1) FR2920617A1 (fr)
WO (1) WO2009030857A2 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5682526B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005944A (en) * 1997-02-14 1999-12-21 At&T Corp System and method for constructing block ciphers
US6185304B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2009030857A3 *

Also Published As

Publication number Publication date
WO2009030857A3 (fr) 2009-05-14
FR2920617A1 (fr) 2009-03-06
WO2009030857A2 (fr) 2009-03-12

Similar Documents

Publication Publication Date Title
EP2232765B1 (fr) Procede et entite de chiffrement symetrique probabiliste
CA2181299C (fr) Procede de communication cryptographique
EP2892176A2 (fr) Procédé de conversion d&#39;un contenu a accès conditionnel et récepteur pour la mise en oeuvre de ce procédé
EP1783659A1 (fr) Identification d&#39;etiquette radiofrequence
EP2458776A1 (fr) Procédé et système de protection d&#39;un dispositif de cryptographie
EP2415199B1 (fr) Procede pour effectuer une tache cryptographique dans un composant electronique
EP2638660B1 (fr) Protection contre les ecoutes passives
EP2377268B1 (fr) Codage de points d&#39;une courbe elliptique
EP2457344B1 (fr) Procede de conversion d&#39;un premier chiffre en un deuxieme chiffre
FR2808948A1 (fr) Systeme et methode pour authentifier de maniere unique chaque reproduction d&#39;un groupe de documents electroniques
EP1455478A1 (fr) Procédé de cryptage d&#39;un mot comportant N digits
EP2005290A2 (fr) Procede et dispositif pour engendrer une suite pseudo-aleatoire
WO2011083232A1 (fr) Procede de chiffrement et de dechiffrement
EP2179535A2 (fr) Procede asymetrique de chiffrement ou de verification de signature
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
EP2204007A2 (fr) Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete
CA2765787A1 (fr) Cryptographie par parametrisation sur une courbe elliptique
WO2009053605A2 (fr) Systeme traçable de chiffrement/dechiffrement de donnees numeriques diffusees
EP2153575B1 (fr) Obtention de valeurs dérivées dépendant d&#39;une valeur maîtresse secrète
WO2020065185A1 (fr) Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y
EP2294750B1 (fr) Procede et systeme tracables de diffusion de donnees numeriques
Jouguet Security and performance of continuous-variable quantum key distribution systems
Strefler Broadcast Encryption with Traitor Tracing
FR2909498A1 (fr) Fonction de compression de donnees de longueur multiple utilisant des fonctions internes de longueur simple
FR2949887A1 (fr) Procede de traitement cryptographique de donnees

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20100322

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA MK RS

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20130514