EP2204007A2 - Generator and method of generating a secret-key pseudo-random function - Google Patents

Generator and method of generating a secret-key pseudo-random function

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)
French (fr)
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/en
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

The invention relates to a generator of a pseudo-random function with secret key K from an input block of m bits to an output block of n bits using a determined number a of cryptographic schemes F1(m1, n1),..., Fi(mi, ni),..., Fa(ma,na) nested in layers according to a recursive structure, each current cryptographic scheme Fi(mi, ni) associating ni output bits with mi input bits in a number of rounds ri, each round using an internal elementary function f(i) constructed on the basis of ti cryptographic schemes Fi+1(mi+1,ni+1) from ni+1 bits, to mi+1 bits, with ni+1 ni,mi+1 mi and ti = 1, each cryptographic scheme Fi(mi, ni) defining a minimum number of operations comp(mi, ni, ri ), dependent on said number of rounds ri, required in order to distinguish it from a random function associating mi input bits ni output bits, the generator comprising calculation means (7) for calculating, for each cryptographic scheme Fi(mi, ni), said number of rounds ri so that said number of operations comp(mi, ni, ri ) associated therewith is greater than or equal to a predetermined number 2c, c being an integer.

Description

Titre de l'invention Title of the invention
Générateur et procédé de génération de fonction pseudoaléatoire à clé secrèteGenerator and method for generating pseudo-random function with secret key
Domaine technique de l'inventionTechnical field of the 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.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. In particular, the invention relates to the field of symmetric cryptography, and relates to a method of block ciphering.
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.In particular, 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.
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.BACKGROUND OF THE INVENTION In symmetric cryptography, the sender and the recipient of an encrypted data exchange must share prior to any exchange the knowledge of a secret key K. Encryption and decryption algorithms parameterized by the key K respectively allow the transmitter to transform a clear message into a cryptogram and the recipient to recover the clear message from the cryptogram.
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.Block ciphering is one of the two main methods of symmetric encryption. At the secret key K, 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. To encrypt a clear message M of any length, calls can be chained to the function E κ according to different operating modes.
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.There are many known block cipher algorithms, such as Data Encryption Standard (DES), Advanced Encryption Standard (AES), MISTY, RC6, IDEA, and so on. Mathematically, these 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.
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.).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. There are some rare block algorithms that operate on keys that have a particular structure that uses 8 secret permutations of the set {0, .., 255} of bytes, but there is no mathematical argument to base a more great confidence in the security of these algorithms that in those whose key consists of words of sufficient length, for example 128 bits. It is usually considered that for a block algorithm (or more generally a generator of functions or pseudo-random permutations) to be safe, it must be impossible, given the limitation of the computing resources that may be available in the years or decades ahead, to an adversary having an arbitrary number N of access "in black box" to the functions of encryption and / or decryption associated with an unknown secret key K, to realize one of the types of following attack: -reconstitute the secret key K; more generally, predicting a new pair of clear-ciphered messages (X, Y) satisfying Y = E K (X) distinct from the N pairs of clearly-encrypted messages (Xi 1 Y 1 ) resulting from the N accesses of the opponent to encryption and / or decryption functions; still more generally, distinguish with a significant probability of success a function E κ associated with a random key K of a perfectly random permutation of the set {0, 1} n of blocks of n bits, this by means of a test algorithm using the result of N black box accesses to the function and / or its inverse. This constitutes the most general definition of the security of an algorithm in the sense that guarding against this type of attack ensures absolute security of the algorithm from a mathematical point of view (ie excluding hidden channel attacks, 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.It is generally accepted that the computational resources that could be implemented, now or in the coming years, by any adversary (including a coalition of millions of Internet users) are strictly less than 2 80 elementary operations.
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.Currently, in public-key cryptography, we speak of "security proofs", "partial proofs of security" or "reductionist proofs of security" of a scheme when we have been able to bring back the security of that system. scheme to solve a problem deemed difficult. The most classic problems considered difficult that are used to date in public key cryptography are the problem of factorization of integers and the problem of discrete logarithm on various finite groups.
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 :As opposed to the situation in the field of public key cryptography, the security of known block algorithms, including those considered to be the safest as AES, is based on the current state of knowledge on a very empirical basis. For no known block algorithm, there are no mathematical arguments to establish a lower bound on the complexity of attacks of any of the types described above. The main types of arguments on which confidence can be built in the safety of algorithms considered to be the safest are:
-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;absence of known attack of complexity lower than the desired level of security, for example of complexity less than 2 80 or 2 | K | , where \ K \ is the key length of the algorithm expressed in bits;
-résistance prouvable à des méthodes particulières d'attaque, par exemple résistance à la cryptanalyse différentielle et la cryptanalyse linéaire;-sustainable resistance to particular methods of attack, eg resistance to differential cryptanalysis and linear cryptanalysis;
-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-finally, in the case of certain algorithms like DES, the existence of evidence of resistance to the most general type of attack mentioned above in the so-called Luby and Rackoff security model in which some of the components of the actual algorithm (eg key-dependent functions used at different laps) by perfectly random ideal functions. Although this type of proof does not provide a lower bound on the complexity of attacks against the real algorithm, it can be considered as an assurance that the general structure of the algorithm (for example the use of the so-called Feistel scheme in the case of the DES) does not present a defect of intrinsic weakness. In particular, it is described in the 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.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.
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.It has been demonstrated in the documents "Generic Attacks on Feistel Schemes" 1 and "Security of Random Feistel Schemes with 5 or more Rounds" by J. Patarin that to avoid this attack, it is necessary that the Feistel Scheme of the upper layer of nesting associates with n, input bits n, output bits in at least 6 turns, more particularly, this document ("Security of Random Feistel Schemes with 5 or more Rounds") describes an attack on the Feistel schemas 5 towers 2 operations, which in the case of schemes Feistel to 64 input bits provides an attack 2 64 <2. 80 Thus, it takes at least 6 turns.
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.However, even taking a number of turns equal to 6 for the Feistel scheme belonging to the upper layer, there is no guarantee that this type of algorithm remains resistant to future attacks. In addition, by taking this same number of turns for Feistel schemes belonging to lower layers, there could still be attacks on these schemes, destroying the security of the entire algorithm.
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 :Thus, none of the known methods of encryption using a block algorithm (and more generally no algorithm for generating functions or pseudo-random permutations) conciliates the two following conditions:
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).1) the existence of mathematical arguments to support the conjecture that even when we use the algorithm beyond the uniqueness distance defined by Shannon, there is no attack achievable in less than 2 operations e, where c is a number sufficiently large to ensure strong security of the algorithm (e.g., greater than or equal to 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.2) the existence of software implementations of speed close to that of the currently most used block algorithms, such as I 1 AES or DES requiring realistic computing resources (time, memory, etc.).
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.OBJECT AND SUMMARY OF THE INVENTION 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 scheme Φ, (m ,, n,) defining a minimum number of operations compim ,, n ,, r,), dependent on said number of revolutions r ,, necessary to distinguish it from a random function associating with m, input bits n, output bits , for each cryptographic scheme (m ,, ni) said number of rounds r, being selected so that said number of operations comp ^ m ,, n ,, r,) associated therewith is greater than or equal to a predetermined number e 2, c being an integer.
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.Thus, by modulating the number of turns, we provide a proof of security for each of the cryptographic schemes and therefore for the entire process of generating pseudo-random function. Thus, the best known attacks to distinguish each cryptographic scheme from a random function require a number of steps of calculation greater than or equal to the predetermined number 2 e which can be chosen very large.
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.Advantageously, 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.
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.Thus, the method for generating pseudo-random function has a high efficiency with a secret key of reasonable size. Advantageously, said predetermined number 2 e is equal to 2 80 .
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é.Thus, 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. According to a feature of the present invention, 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. Thus, 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. Thus, the pseudo-random function generating method can be used to perform secret key encryption in a simple and secure manner.
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.Advantageously, 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 ). Thus, the pseudo-random function generation method can be implemented very effectively, the Feistel schemes being well studied and simple to implement.
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.For each symmetrical Feistel scheme F 1 (H 1 ), 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.
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.Thus, 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.
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 cryptographiquesThe 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
Φ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.Φi (m 1t ni), ..., Φ, (m ,, n t ), ..., Φ a (m a , n a ) nested in layers according to a recursive structure, 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 m, n input bits, output bits , the generator comprising calculating means for calculating, for each cryptographic scheme Φ, (m h n,), said number of revolutions r, so that said number of operations comp (m h n h r,) which is associated with either greater than or equal to a predetermined number 2 e , where c is an integer. 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.
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.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.
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 :BRIEF DESCRIPTION OF THE DRAWINGS Other features and advantages of the invention will emerge on reading the description given below, by way of indication but without limitation, with reference to the appended drawings, in which:
-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 ; etFIG. 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; and
-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éalisationFIGS. 3A to 3C schematically illustrate an embodiment according to the invention. Detailed description of embodiments
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èteAccording to the invention, FIG. 1 is a schematic figure of a pseudo-random function generator 1 with secret key
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.K of an input block 3 of m bits to an output block 5 of n bits. This generator 1 uses cryptographic primitives or schemes Φ, (m ,, n,) from m, bits to 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 cryptographiqueIndeed, 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(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.Φ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.
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.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.
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 égalThis 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). For each cryptographic scheme Φ ^ m ,, / !,), 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
-)80- ) 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 ;Thus, 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;
-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).-conjectures, supported by several years of research of the cryptographic community, on the complexity of the best possible attacks on the bricks used (called "generic attacks" because they apply to schemas where the elementary functions f ° } are functions really random).
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.In addition, 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.
Avantageusement, les schémas cryptographiquesAdvantageously, the cryptographic schemes
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.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.
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.In particular, 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.
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 FeistelIn this case, for each symmetrical Feistel scheme F, (nJ the number of turns r, depends on the number of bits n, and the integer c according to an inequation defined by r, ≥ 2c / n, + 4. modulating according to the invention, for each Feistel scheme
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.Fi, the number of turns needed by providing a proof of security for each of these diagrams, we provide proof of security for the entire generation process.
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.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.
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}.In a first step El, this function or permutation is constructed from a certain cryptographic scheme Φ 1 Cm ^ n 1 ) or IJiCn 1 ) (for example a Feistel scheme), with Hi 1 = Im and D 1 = Ii by fixing the number of roti used such that COmPCr 1 ) = 2 e . This requires ri functions or elementary permutations f 1} .
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éIn a second step E2, each of these functions or elementary permutations / i; will in turn be implemented using U 1 cryptographic schemes 0 2 Cm ^ n 2 ) or IJ 2 (D 2 ) (which may be the same as or different from that of the first step) by setting the number of r 2 tricks used such as Comp (r 2 ) = ¥. 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
/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./ C of the generation process. Generally, there are a number of steps that will minimize the size of the secret key.
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.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. In addition, this generator is very convenient to use because it is very efficient and has a reasonable key size.
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.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.
Les constructions cryptographiques intermédiaires utilisées pour obtenir la génération d'une fonction aléatoire sont potentiellement nombreuses.Intermediate cryptographic constructs used to obtain the generation of a random function are potentially numerous.
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 deBy way of example, the Feistel schemes described for example by Michael Luby and Charles Rackoff can be used in the document "How to Construct Pseudorandom Permutations from Pseudorandom Functions", SIAM J. Comput 17 (2): 373-386 (1988). ). The best conjectured attacks against these Feistel schemes have been described by Jacques Patarin in the document "Generic Attacks on Feistel Schemes". It will be noted that a Feistel scheme is an even bijection. Thus, when fitting the Feistel diagrams, the diagrams are constructed with even bijections. Moreover, it is easier to distinguish a diagram of
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.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.
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.In fact, whatever the number of turns of the Feistel scheme, it is always possible to distinguish it from a random function with 2 n operations and a bijection in 2 2n operations (which is independent of the number of revolutions) . It is only when one tries to distinguish it from an even bijection that the number of necessary operations increases with the number of turns of the Feistel scheme.
Les schémas de Feistel possèdent également des variantes dites généralisés ou dissymétriques.The Feistel schemes also have so-called generalized or asymmetric variants.
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.Thus, for a generalized Feistel scheme, it is possible to use bricks which are either random functions, random bijections, or random even bijections, typically this concerns the most internal Feistel scheme in the nesting.
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.Typically, Feistel schemes using as brick only even bijections, are Feistel schemes of higher level compared to the most internal Feistel scheme.
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.For asymmetric Feistel schemes, the plaintext is divided into two blocks of different size, more particularly, it may concern the lower-level Feistel scheme.
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.Moreover, for symmetrical Feistel schemes, the plaintext is divided into two blocks of identical size. In particular, this concerns higher-level Feistel schemes.
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.In addition, for the intermediate cryptographic constructions, it is also possible to create a function of n bits to n bits from two random permutations P, and P j of n bits to n bits by calculating the exclusive or "XOR" bit to bit of the output of both permutations (P, XOR P 3 ). Unconditional security evidence also exists for this construction (for example, in Jacques Patarin's paper "On Linear Systems of Equations with Distinct Variables and Small Block Size", ICISC 2005: 299-32). It is also possible to use so-called "Benes" schemes which make it possible to obtain functions from 2n bits to 2n bits from random functions from n bits to n bits. Unconditional security evidence also exists for these schemes.
Ainsi, il est possible de réaliser la présente invention selon plusieurs modes de réalisation.Thus, it is possible to realize the present invention according to several embodiments.
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.Indeed, FIGS. 3A to 3C illustrate an embodiment for the generation of a pseudo-random function among the many possible examples, according to the 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.For this example, there are used Feistel schemes F, (n,) symmetrical with r, turns and the construction P, XOR P j to obtain a pseudo-random permutation IJj 28 from 128 bits to 128 bits, with a security of 2 80 operations.
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).FIGS. 3A to 3C describe the different steps of the construction starting from the outermost step (FIG. 3A) towards the innermost stage (FIG. 3C).
Ainsi, l'étape de la figure 3A est constituée d'un schéma deThus, the step of FIG. 3A consists of a diagram of
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.Feistel to r ? turns, where 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.
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.If we want this complexity to be greater than 2 80 , we have to take r ? = 6. By being content with this one step, we need for the key of 6 elementary functions (random and independent) f / υ , ..., f / 1J from 64 bits to 64 bits, so the total size of the key is 6x64x2 64 bit, which is too big to be used in practice. Then, we try to obtain the 6 functions from 64 bits to 64 bits from a second step (FIG. 3B). For this, we use the construction P, XOR P 1 , applied to two Feistel schemes at r 2 turns from 64 bits to 64 bits. The 6 elementary functions fi (1) , ..., f / 1J thus obtained will be used to construct the Feistel scheme of the previously described step. The same criterion as before shows that it is necessary to use r 2 = 7 turns to obtain permutations of 64 bits to 64 bits not distinguishable from random permutations in less than 2 80 calculations. Each of the 6 elementary functions f / 1J , ..., f / 1J necessary to build the Feistel scheme of the upper stage requires 2x7 elementary functions from 32 bits to 32 bits, so the total size of the key at this step is 6x (2x7) x32x2 32 bits. For the sake of simplification, 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.
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).In fact, for the parameters (block size of 128 bits, security level of 2 80 operations), the optimal number of steps is 4 (FIG. 3C). For the sake of simplification, 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) .
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.In this case, the number of turns of the Feistel schemes to be used is respectively n = 6, r 2 = 7, r 3 = 9 and r 4 = 14. The necessary basic functions are then 8-bit to 8-bit functions. and the size of the key is given by 6x (2x7) x (2x9) x (2x14) x8x2 8 bits, or 10.8 MB, which is quite within the reach of the memory capacities of the current personal computers. 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.
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.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.
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. 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. For example, 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.

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 cryptographiquesA 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 ex of cryptographic schemes
Φι(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.Φι (mi, rii), ..., Φι (m ,, n,), ..., Φa (m a , n a ) nested in layers according to a recursive structure, each current cryptographic scheme 0, (IO 11 D 1 ) 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 (rn l + 1 , n l + 1 ) of n, +1 bits to m l + 1 bits, with n, +1 <n, m l + 1 <m, and t, ≥ 1, each cryptographic scheme Φ, (m ,, n ,) defining a minimum number of comp {m h n ,, η) operations, dependent on said number of revolutions n, necessary to distinguish it from a random function associating with m, n input bits, output bits, characterized in that for each cryptographic scheme Φ, (m ,, n ι ) said number of turns r, is chosen so that said number of operations comp (m h n ,, r,) associated with it is greater than or equal to to a predetermined number 2 e , where c is an integer.
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.2. Method according to claim 1, characterized in that said determined number of cryptographic schemes is chosen such that the most internal elementary functions t a) constituting the cryptographic schemes Φ a (word, n a ) of the innermost layer are random functions defining a minimum size of said secret key.
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. 3. Method according to any one of claims 1 to 2, characterized in that said predetermined number 2 e is equal to 2 80 .
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits schémas cryptographiques4. Method according to any one of claims 1 to 3, characterized in that said cryptographic schemes
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.0 1 (Hi 11 H 1 ), ..., Φ, (m ,, n,), ..., 0a (nie, Ha) correspond to cryptographic permutation schemes JIi (H 1 ), ..., JI 1 (H,), ..., JIa (Ha), each cryptographic permutation IJ 1 (H 1 ) implementing a permutation of blocks of 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), ... ,5. Method according to claim 4, characterized in that said cryptographic permutation schemes IJ 1 (Hi), ..., IJ 1 (H,), ..., JIa (Ha) correspond to symmetrical Feistel schemes F 1 (H 1 ), ..., F 1 (H 1 ), ...,
Fa (Ha).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.6. Method according to claim 5, characterized in that for each symmetrical Feistel scheme F, (n,) said number of turns r, depends on the number of bits n, and said integer c according to an inequality defined by 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.Secret secret key pseudo-random encryption method K of an m-bit input block to an n-bit output block using the pseudo-random function generating method according to any one of claims 1 to 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 cryptographiques8. 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 ex of cryptographic schemes
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.0, (Hi 11 H 1 ), ..., 0, (Hi 11 H 1 ), ..., 0a (nie, Ha) nested in layers according to a recursive structure, each current cryptographic scheme 0 1 (Hi 11 H 1 ) associating with m input bits n, output bits in a number of turns r ,, each round using an internal elementary function f ή constructed from t, cryptographic schemes Φ l + 1 (m l + 1 , n l + i) of n, +1 bits to m, + i bits, with n, +1 < n ,, m l + 1 <m, and t, ≥ 1, each cryptographic scheme Φ ι (m ι , ri ι ) defining a minimum number of operations comj ^ m ,, n ,, r,), dependent on said number of turns r ,, necessary to distinguish it from a random function associating m, input bits n, output bits, characterized in that it comprises calculation means for calculating, for each cryptographic scheme Φ, (m ,, n,), said number of revolutions r, so that said number of operations comp ^ m h n ,, r,) associated with it is greater than or equal to a predetermined number 2 e , c being a whole number .
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.9. Generator according to claim 8, characterized in that said calculating means are adapted to calculate said determined number ex cryptographic schemes so that the elementary functions A ; the most internal constituting the cryptographic schemes Φa (m a , na) of the innermost layer are random functions defining a minimum size of said secret key.
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.Secret-secret pseudo-random encryption device K from an input block of m bits to an output block of n bits, characterized in that it comprises a pseudo-random function generator according to any one of claims 8 and 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.11. Computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises program code instructions for the execution of the steps of the pseudo-random function generating method according to at least one of any of claims 1 to 6 when executed on a computer.
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. Computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises program code instructions for the execution of the steps of the An encryption method according to claim 7 when executed on a computer.
EP08829862A 2007-09-05 2008-08-26 Generator and method of generating a secret-key pseudo-random function Withdrawn EP2204007A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0757357A FR2920617A1 (en) 2007-09-05 2007-09-05 GENERATOR AND PROCESS FOR GENERATING A PSEUDO-RANDOM SECRET KEY FUNCTION.
PCT/FR2008/051529 WO2009030857A2 (en) 2007-09-05 2008-08-26 Generator and method of generating a secret-key pseudo-random function

Publications (1)

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

Family

ID=39324188

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08829862A Withdrawn EP2204007A2 (en) 2007-09-05 2008-08-26 Generator and method of generating a secret-key pseudo-random function

Country Status (3)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5682526B2 (en) * 2011-03-28 2015-03-11 ソニー株式会社 Data processing apparatus, data processing method, and program

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
WO2009030857A2 (en) 2009-03-12
FR2920617A1 (en) 2009-03-06
WO2009030857A3 (en) 2009-05-14

Similar Documents

Publication Publication Date Title
EP2232765B1 (en) Method and entity for probabilistic symmetrical encryption
CA2181299C (en) Cryptographic communication process
EP2892176A2 (en) Method for converting a conditional access content and receiver for the implementation for said method
EP1783659A1 (en) Radio frequency label identification
EP2458776A1 (en) Method and system for protecting a cryptography device
EP2415199B1 (en) Method for performing a cryptographic task in an electronic component
EP2377268B1 (en) Encoding of points of an elliptic curve
EP1611709B1 (en) Encryption method and system
EP2638660B1 (en) Protection against passive sniffing
EP3493458B1 (en) Method and system for encryption/decryption of data with greatly reduced latency for the purpose of storage and/or communication of secure data
EP2005290A2 (en) Method and device for generating a pseudorandom string
FR2808948A1 (en) SYSTEM AND METHOD FOR UNIQUE AUTHENTICATION OF EACH REPRODUCTION OF A GROUP OF ELECTRONIC DOCUMENTS
EP1455478A1 (en) Method for the encryption of an N-digit word
WO2009007626A2 (en) Asymmetrical ciphering or signature check method
EP2204007A2 (en) Generator and method of generating a secret-key pseudo-random function
CA2765787A1 (en) Cryptography by parameterizing on elliptic curve
WO2009053605A2 (en) Traceable system for encrypting/decrypting broadcast digital data
EP2153575B1 (en) Obtaining derived values depending on a secret master value
WO2020065185A1 (en) Cryptographic method of secure comparison of two secret data x and y
Jouguet Security and performance of continuous-variable quantum key distribution systems
EP2294750B1 (en) Traceable method and system for broadcasting digital data
FR3135854A1 (en) Secure provision of keys for fully homomorphic encryption
Strefler Broadcast Encryption with Traitor Tracing
FR2909498A1 (en) MULTIPLE LENGTH DATA COMPRESSION FUNCTION USING SINGLE LENGTH INTERNAL FUNCTIONS
FR2949887A1 (en) METHOD FOR CRYPTOGRAPHIC DATA PROCESSING

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