WO2024018158A1 - Method for exchanging a secret which can withstand quantum computer attacks, and associated computer system and computer program - Google Patents

Method for exchanging a secret which can withstand quantum computer attacks, and associated computer system and computer program Download PDF

Info

Publication number
WO2024018158A1
WO2024018158A1 PCT/FR2023/051128 FR2023051128W WO2024018158A1 WO 2024018158 A1 WO2024018158 A1 WO 2024018158A1 FR 2023051128 W FR2023051128 W FR 2023051128W WO 2024018158 A1 WO2024018158 A1 WO 2024018158A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret
key
mod
electronic device
vector
Prior art date
Application number
PCT/FR2023/051128
Other languages
French (fr)
Inventor
David Naccache
Original Assignee
Be Ys Trusted Solutions France
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 Be Ys Trusted Solutions France filed Critical Be Ys Trusted Solutions France
Publication of WO2024018158A1 publication Critical patent/WO2024018158A1/en

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key

Definitions

  • the invention relates to the field of cryptology.
  • the invention relates to methods of transporting a secret resistant to quantum computer attacks, such methods consisting of methods of parameter generation, key generation, key encapsulation (encryption) and decapsulation. (decryption) of encrypted keys.
  • the invention further relates to any computer system comprising a plurality of electronic devices each comprising a central processing unit controlling a memory by signals, as well as an input unit and an output unit, implementing any one said methods of generating parameters, generating keys, encapsulating (encrypting) keys and decapsulating (decrypting) encrypted keys.
  • One of the preferred fields of application of such an invention concerns secure communications between electronic devices of such a computer system, the latter using a key or more generally a secret exchanged via an insecure and tamper-resistant communication channel.
  • quantum computer attacks through the implementation of said methods of parameter generation, key generation, key encapsulation (encryption) and decapsulation (decryption) of keys encrypted by said computer system.
  • Scalar operations on vectors must be interpreted as acting on the components of the vectors.
  • ⁇ x 1 , ..., x n ⁇ is an n-coordinate vector and is a t-coordinate vector each having n coordinates, namely
  • the invention belongs to the category of asymmetric cryptographic methods also known as “public key cryptographic methods”.
  • Asymmetric cryptography defines two keys: a public key pk known to everyone and a private key sk kept confidential by the recipient R.
  • the encryption algorithm f is assumed to be accessible to all potential senders S wishing to communicate with the recipient R.
  • the -1 decryption algorithm is also assumed to be accessible to everyone and public.
  • a computer program whose program instructions cause the implementation of the algorithms / and -1 by any computer or electronic device arranged to store said computer program in a memory, can be published without fear for the security of said communication.
  • any entity S wishing to send a message m in an encrypted manner to a specific recipient R can use the public key pk of the recipient R in order to create an encrypted c for R. Only R will be capable of decrypting c.
  • the recipient R of the message m decrypts the encrypted c by applying said decryption algorithm -1 .
  • Said public keys pk and secret sk are generated using a probabilistic algorithm called “parameter generation algorithm” and a probabilistic algorithm called “key generation algorithm” which will be discussed later.
  • parameter generation algorithm a probabilistic algorithm
  • key generation algorithm a probabilistic algorithm which will be discussed later.
  • a famous/public key encryption algorithm is the so-called RSA algorithm described in U.S. Patent 4,405,829 and in the associated publication R. L. Rivest, A. Shamir, and L. M. Adleman, “A Method for Obtaining Digital Signatures and Public -key CryptoSystems”, Communications of the ACM, volume 21, no. 2, pages 120 to 126, 1978.
  • Quantum computing emerged in the early 1980s. Rather than being confined to the limits of electronic circuits and electricity, quantum computing operates according to the principles of quantum physics, which is why it is capable of deal so effectively with very complex mathematical problems. It could one day achieve feats that traditional computing simply proves incapable of. The evolution of quantum computers has been slow, but things are now accelerating thanks to the efforts of academics and industries aimed at standardizing encryption processes resistant to quantum attacks.
  • RSA encryption constitutes the precursor of almost all modern encryption schemes, according to which each recipient R has a public key pk and a private key sk.
  • the data m of said message are encoded in the form of a large integer and scrambled using the public key pk corresponding to the private key sk held by said recipient R to whom the sender S wishes to communicate said message m, to form an encrypted c.
  • the recipient R who receives said encrypted c can then decrypt the latter using his private key sk.
  • the public key pk is in the form of a large composite number n, and an exponent e, often equal to three.
  • the private key sk is characterized by the prime factors of n.
  • An encryption algorithm capable of resisting an adversary equipped with a quantum computer belongs to the category of “post-quantum algorithms”.
  • an important objective of the present invention is to provide a post-quantum encryption method which is resistant to attacks carried out using quantum computers.
  • the SàD problem also exists in a so-called “computational” version which consists not only of saying whether there exists a sequence of bits ⁇ x 1 , ..., x n ⁇ but also of finding (discovering) it explicitly.
  • random instances of SàD can be reformulated as a problem of approximating the shortest vector in a network as stipulated in the documents of J. C. Lagarias and A.M. Odlyzko, “Solving Low-Density Subset Sum Problems”, J. ACM, flight. 32, no. 1, pp. 229-246, 1985” and A.M. Frieze, “On the Lagarias-Odlyzko Algorithm for the Subset Sum Problem”, SIAM J. Comput., vol. 15, no. 2, pp. 536--539, 1986.
  • the density is low (A ⁇ 0.94, as explained in the document by M.J. Coster, A. Joux, B.A.
  • the object of the invention is precisely to propose a new process based on such dense SàDs.
  • LLLL LLLL
  • a method for distributing information in a modular equation is the so-called “LLL” algorithm, published by A.K. Lenstra, HW. Lenstra, and L. Lovész, (1982) “Factoring polynomials with rational coefficients” - Mathematische Annalen. 261 (4): 515-534.
  • said LLL algorithm makes it possible to find x lt ..., x k since
  • the LLL algorithm can be adapted in order to provide any unequal distribution of sizes between the x t as long as the size of p is equal to the sum of the sizes of the x t .
  • KEM Key Encapsulation Mechanism
  • Key transport a protocol for securely transmitting a session key K to the recipient R using an unsecured channel.
  • the encapsulation of such a key K is one of the components of a hybrid cryptography scheme, the other being the encapsulation of data (by means of the key K thus transmitted).
  • Encapsulation serves the same function as a key transport protocol, with the difference that the key K is here entirely generated by the sender S, which allows, among other things, to start transmitting the encrypted data to R directly with the encapsulated key K.
  • the key encapsulation mechanism consists of encrypting a random key K by a second electronic device S of a computer system, by means of a public key pk dedicated to a first recipient electronic device R.
  • the encrypted C is transmitted to said first electronic device R, the latter being responsible for decrypting said cipher C by means of its private key sk.
  • the sender S and the recipient /? then have the same shared secret K, allowing secure communication.
  • any public key encryption immediately provides a key encapsulation mechanism and vice versa.
  • a KEM results in four successive processes, respectively (1) generation of general parameters, (2) generation of the secret and public keys of the recipient R, the latter being published, (3) encapsulation then transmission by the sender S (from said general parameters by and from the public key pk of the recipient R of the key K thus encapsulated for the attention of the recipient R, and (4) decapsulation or recovery of the latter by said recipient R.
  • the recipient R generates for example general parameters, noted by, necessary for the operation of the KEM, as summarized in the relationship by ⁇ - AlgSetUp;
  • said recipient R generates a private key sk and a published public key pk, as summarized by the relationship ⁇ sk, pk ⁇ «- AlgKeyGen(par);
  • the sender S uses par and pk to produce a key K which it keeps confidential and an encrypted code C encapsulating said secret key K to be transmitted to the recipient R, as summarized in the relationship ⁇ C, K ⁇ ⁇ - Encap(by, pk); at the end of this step, the cipher C is sent to the recipient R;
  • said recipient R receives the encrypted C and recovers the key K encapsulated in the latter, as summarized in the relationship K «- Decap(par, sk, C) by implementing the Decap decapsulation algorithm; if said decapsulation step was not successful, the Decap algorithm possibly returns an “error” message.
  • the invention keeps hidden the modulo module which the SàD calculations are carried out. In doing so, it is reasonably surmised that the invention protects the proposed cryptosystem from network-based attacks that target modular SàDs;
  • KEM resists quantum attacks because said KEM is based neither on the factorization problem nor on the discrete logarithm problem, both vulnerable to quantum attacks;
  • a KEM according to the invention is particularly optimized and efficient since the algorithms implemented in the context of the invention require few operations to store and execute the Encap and Decap algorithms, thus combining high execution performance and preservation of capacity storage of equipment implementing KEM; moreover, the number of code instructions necessary to carry out the invention in software or the number of logic gates necessary to carry out the invention in hardware is very low;
  • a KEM according to the invention requires a maximum transmission of O(k) bits, where conventional algorithms require O(k 2 ), thus further increasing the performance of said KEM according to the invention compared to the prior art; it should be noted that a KEM according to one of the embodiments of the invention allows the transmission of tk key bits instead of k, where, typically t ⁇ 4.
  • the invention also provides for being able to compress the public key pk and/or the private key sk, so that the hardware resources necessary for the implementation of such a KEM are even further preserved.
  • the invention firstly provides a method of transporting a secret K resistant to attacks by quantum computer, said method being implemented by a computer system comprising a first and a second electronic devices, said first and second electronic devices each comprising a processing unit cooperating with a data memory and means of communication with the outside world, said first electronic device R being designed to receive and exploit the secret K previously produced and encapsulated by said second electronic device S, said transport method comprising:
  • step - a step of generating a pair ⁇ sk,pk ⁇ of secret and public keys, as well as publishing said public key produced, said step being implemented by the first device electronic 7?, said pair of secret and public keys ⁇ sk, pk ⁇ being produced from said general parameters by and from a first random data produced by a random number generator of said first electronic device R;
  • step of encapsulating the secret K in the form of a cipher C and transmitting the latter said step being implemented by said second electronic device S from said general parameters by, of the public key pk of said first electronic device R and a second random data item produced by the random number generator of said second electronic device S
  • said second random data is used to derive a vector of n integers and in that the step of encapsulating the secret K in the form of a cipher C and transmitting the latter consists of implementing two sums having the same indexes m 1 , ..., m n , the cipher C consisting of a first sum such that C and the secret K consisting of a second sum, called
  • the invention provides for different variants according to which:
  • first and second algebraic structures are the ring of integers Z; - said first and second algebraic structures are finite fields;
  • said first algebraic structure is the ring of integers Z and said second algebraic structure is a finite field;
  • said first algebraic structure is a finite field and said second algebraic structure is the ring of integers Z.
  • the step of generating a pair ⁇ sk, pk ⁇ of secret and public keys, as well as publishing said public key pk produced consists of: o using the first random data in order to derive the following parameters:
  • the step of encapsulating the secret K consists of using the second random data in order to produce a vector of n integers m to from which the figures are calculated and the key K «- m o dq:
  • the step of decapsulating the secret K consists of recovering the key K such that K «- b mod q where b «- Cd mod p.
  • the vector can be produced by the following sequence of operations:
  • the component q of the public key pk may not be exposed to the second electronic device S.
  • the step of generating a pair ⁇ sk, pk ⁇ of secret and public keys, as well as publishing said public key pk produced consists of: o using the first random data in order to derive the following parameters:
  • the encapsulation step of the secret K consists of using the second random data in order to produce a vector of n integers from which the cipher C is calculated and the key K «-
  • the step of decapsulating the secret K consists of recovering the key K such that K «- pb mod q where b «- Cd mod p.
  • a method according to the invention can be adapted so that:
  • the step of generating a pair ⁇ sk,pk ⁇ of secret and public keys, as well as publishing said public key pk produced consists of: o using the first random data in order to produce two seeds (seed_pk, seed_sk) «- [0.2 k - l] 2 ; o produce the secret key sk «- [p, d,p ⁇ where pe P n , from Z* and pe Z* are derived deterministically from seed_sk; o produce the public key
  • the secret K encapsulation step consists of: o decompressing by deriving from the seed_pk the vector then form o generate from the second random data, a vector of n integers from which the cipher is calculated
  • the method in accordance with the invention can be adapted so that:
  • the step of generating and publishing general parameters by consists of determining an integer n such that k ⁇ n, k being a security parameter and an integer t non-zero, said general parameters being the triplet ⁇ t, n, k ⁇ ;
  • the step (120) of generating a pair ⁇ sk, pk] of secret and public keys, as well as publishing said public key pk consists of producing, from the first random data item, the following data: o a k-bit integer q; o a vector o a vector o an invertible random matrix M of dimension txt whose elements are taken randomly from Z q ; o a secret key o a public key for the vectors being produced such that: verifies the condition i, j, 0 ⁇ v t ⁇ 2 n and djVt mod p 7 - ⁇ pj/n;
  • the secret encapsulation step consists of using the second random data in order to produce a vector of n integers from which the cipher C is calculated. and the key mod q ⁇ ; - the secret decapsulation stage consists of recovering
  • t can be less than or equal to 4.
  • an advantageous embodiment may consist of n being such that n > 3A4k.
  • the invention relates to a computer program product comprising one or more program instructions executable by the processing unit of a computer, said program instructions being loadable into a memory of said computer and the execution of which by said processing unit causes the implementation of a method for transporting a secret K resistant to attacks by quantum computer according to the invention.
  • the invention relates to a storage medium readable by a computer comprising the instructions of such a computer program product.
  • the invention relates to a computer system comprising a plurality of electronic devices each comprising a processing unit and a memory, said memory of each of said electronic devices comprising the program instructions of a computer program product according to the invention.
  • FIG. 1 illustrates an example of a computer system comprising a plurality of electronic devices implementing a key transport method according to the invention
  • FIG. 2 illustrates an example of a functional method for producing general parameters of a key transport method according to the invention
  • FIG. 3 illustrates an example of a functional method for generating public and private keys implemented by any electronic device of a computer system conforming to the invention
  • FIG. 4 illustrates an example of a functional session key encapsulation method implemented by any electronic device of a computer system conforming to the invention wishing to share said session key with another electronic device of said computer system ;
  • FIG. 5 illustrates an example of a functional session key decapsulation method implemented by any electronic device of a computer system conforming to the invention recipient of a session key encapsulated by another electronic device of said computer system .
  • a KEM: (AlgSetUp, AlgKeyGen, Encap, Decap) is safe against chosen cipher attacks (CCA-safe) if for any distinguishing algorithm running in polynomial time and having access to a decapsulation oracle and to ⁇ by, pk ⁇ , the advantage of distinguishing (C, K 0 ) from (C, / ⁇ , ) where (C, K o ) ⁇ - Encap(pk) and where is chosen uniformly and independently of C is negligible, as long as the distinguisher constrains itself to never ask the oracle to decipher C.
  • any of the devices for generating parameters, generating keys, encapsulating (encrypting) keys and decapsulating (decrypting) encrypted keys briefly explained above in the context of an electronic circuit.
  • Such an electronic circuit could, for example, be made up of a microprocessor, a programmed circuit (also sometimes called FPGA for “Field Programmable Gate Array”) or a hardwired logic chip (also sometimes called ASIC for “Application Specific Integrated Circuit”). ").
  • the invention also relates to an irremovable, or partially or completely removable, data storage means, comprising computer program code instructions for executing the steps of any of the methods of generating parameters, generating keys, encapsulation (encryption) of keys and decapsulation (decryption) of encrypted keys, in accordance with the invention.
  • the invention also relates to a computer program downloadable from a network of communication and/or stored on a computer-readable medium and/or executable by a microprocessor comprising program instructions which, when executed by the computer or microprocessor, cause the implementation of a compliant KEM to the invention.
  • This computer program is notable in that it includes instructions for carrying out the steps of any of the methods of parameter generation, key generation, key encapsulation (encryption) and decapsulation ( decryption) of encrypted keys exposed above, when executed on a computer or in a microprocessor.
  • Other aspects and advantages of the invention will appear on reading the detailed description below of particular embodiments, given by way of non-limiting examples.
  • the present invention also relates to a computer system comprising a plurality of communicating electronic devices implementing any of the methods of generating parameters, generating keys, encapsulating (encrypting) keys and decapsulation (decryption) of encrypted keys described above.
  • this computer system 1 comprises a plurality of electronic devices 10-1, 10-2,. ,.,10-g.
  • each electronic device consists of an instance of an electronic device 10 comprising a central processing unit 11 controlling electronic elements including a data memory 12 and a program memory 14, said memories 12 and 14 can form only one and the same physical entity.
  • Such an electronic device 10 may include a random number generator 13, the latter possibly forming a single physical entity with said processing unit 11.
  • Non-volatile memory is a computer memory whose technology retains its data in the absence of an electrical energy supply. It may contain data resulting from inputs, calculations, measurements and/or program instructions.
  • the main non-volatile memories currently available are electrically writable such as EPROM technology (“Erasable Programmable Read-Only Memory”, according to Anglo-Saxon terminology) or even electrically writable and erasable such as EEPROM (“Electrically-Erasable Programmable Read” technologies).
  • EPROM technology Erasable Programmable Read-Only Memory
  • EEPROM Electrically writable and erasable
  • -Only Memory according to Anglo-Saxon terminology
  • flash SSD (“Solid-State Drive”, according to Anglo-Saxon terminology), etc.
  • Non-volatile memories are distinguished from so-called “volatile” memories whose data is lost in the absence of a power supply.
  • the main volatile memories currently available use RAM technologies (“Random Access Memory” according to Anglo-Saxon terminology or also called “random access memory”), DRAM (dynamic random access memory, requiring regular updating), SRAM (static random access memory requiring a such updating during a power shortage), DPRAM or VRAM (particularly suitable for video), etc.
  • An electronic device 10 further comprises means of communication 15 with the outside world in the form of an input unit and an output unit. Said communication means 15 cooperate with the processing unit 11 and ensure wireless or wired proximity communication with any other electronic device of said computer system 1.
  • an electronic device 10 comprises generally a source of electrical energy 16 in the form of one or more batteries for example. Such a source of electrical energy 16 may be internal or external to said electronic device 10.
  • the processing unit 11 may also include means 17 for controlling a man-machine input and/or output interface 20.
  • man-machine output interface means any device, used alone or in combination, making it possible to output or deliver a graphic, haptic, sound or, more generally, perceptible representation by humans. Such an output man-machine interface may consist, in a non-exhaustive manner, of one or more screens, speakers or other suitable alternative means.
  • man-machine input interface means a computer keyboard, a pointing device, a touch screen, a microphone or, more generally, any interface arranged to translate a gesture or an instruction issued by a human into data. command or configuration.
  • the input and output man-machine interfaces can constitute only one and the same physical entity.
  • Such a computer system 1 can be adapted by loading into the program memory 14 of each electronic device 10-1, 10-2,...,10-g a computer program P comprising instructions to cause, during their executions, the implementation of a method for generating parameters, generating keys, encapsulating and/or decapsulating according to the invention.
  • This program may 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 interpreted, partially or fully compiled form, or in n any other desirable shape.
  • the electronic device 10-1 could be the future recipient R of a secret K which will be communicated to it by an electronic transmitter device s of said computer system 1, such as the electronic device 10-2, or else consist of any other electronic device 10-2, ..., 10-g) of said system 1.
  • Figure 2 thus describes a functional flowchart of such a method 110 implemented by an electronic device of a computer system 1, such as the electronic device 10-1 recipient R of a secret.
  • Such a method 110 takes as input a security parameter k and includes a step 112 of generating the parameters necessary for implementing a work of a KEM conforming to the invention.
  • Such a method may include a preliminary step 111 of producing a first random or pseudo-random data item PP by the random or pseudo-random number generator 13, all or part of said parameters being able to be produced from said first random data item or pseudo-random PP.
  • Said method 110 may include a step 113 to cause the transmission, by the communication means 15, of an MPAR message to all or part of the electronic devices 10-2, ..., 10-g of the computer system 1 conveying said parameters by. On receipt of such an MPAR message, said electronic devices 10-2, ..., 10-g record the values of said parameters in their respective data memories 12.
  • Figure 3 describes a functional flowchart of a key generation method 120 implemented by any electronic device of a computer system 1, such as the electronic device 10-1 recipient R of a secret, via the execution of 'an AlgKeyGen algorithm mentioned previously.
  • Such a method 120 comprises a step 121 of producing a second random or pseudo-random data item SS by the random or pseudo-random number generator 13 and a step 122 of generating the keys ⁇ sk, pk ⁇ using said second random or pseudorandom data SS.
  • Said method 120 then comprises a step 123 of recording in the data memory 12 of the electronic device R, 10-1, implementing said method 120, values of said keys ⁇ sk, pk ⁇ .
  • Said method 120 further comprises a step 124 for causing the transmission of a message to cause the transmission of an MPK message to all or part of the electronic devices 10-2, ..., 10-g of the system computer 1, said MPK message conveying said public key pk.
  • said electronic devices 10-2,..., 10-g record the value of said public key pk in their respective data memories 12, advantageously in a data structure KR associating the latter with identifiers ID1, ..., IDg characterizing the electronic devices having published their keys.
  • the invention provides, when the methods 110 and 120 are implemented consecutively by the same electronic device of said computer system 1, that the parameters by which were produced in step 112 of the method 110 can be conveyed jointly with the public key pk by the MPK message, the transmission of which by the communication means 15 is caused by step 124 of the method 120.
  • Figure 4 describes a functional flowchart of a method 130 for encapsulating a secret K implemented by an electronic device of a computer system 1, such as the electronic device S, 10-2, via the execution of 'an Encap algorithm mentioned previously.
  • an electronic device S, 10-2 may wish to address said secret K in the form of a cipher C intended for the sole electronic device R, 10-1 having implemented the method 120 as described previously in connection with the figure 3.
  • a method 130 comprises a step 131 of producing a third random or pseudo-random data MM by the generator of random or pseudo-random numbers 13 and a step 133 of generating a cipher C of a secret K that the we wish to produce and thus encapsulate to be communicated in a secure manner, using said third random or pseudo-random data MM, parameters by and the public key pk of the recipient electronic device /?, 10-1 of said cipher.
  • said method 130 comprises a step 132, prior to step 133, of reading the data memory 12 to know the value of said public key pk of said recipient R, 10-1.
  • Said method 130 then comprises a step 134 of triggering the transmission of a message MC conveying said cipher C to the electronic device R, 10-1 of the computer system 1 conveying said cipher.
  • a method 130 can be implemented by the electronic device 10-2 acting as sender S of said encrypted code C to the attention of the electronic device R, 10-1 designated by the selection 132 of the public key pk of the latter as the sole recipient of said cipher C and capable of being able to decrypt it as we will study it in connection with Figure 5.
  • Said figure 5 thus describes a functional flowchart of a method 140 for deciphering the cipher C or decapsulating a secret K implemented by an electronic device of a computer system 1, such as the electronic device R, 10-1 , via the execution of a Decap algorithm mentioned previously.
  • a method 140 is implemented in response to the reception of an MC message conveying a cipher C produced by a third-party electronic device according to an encapsulation or encryption method 130 described previously in connection with Figure 4.
  • Such a method 140 comprises a first step 141 of reading from the data memory 12 the respective values of the public key pk and the secret key sk previously produced in step 122 of a method 120 already described in connection with Figure 3.
  • Said public keys pk and secret sk being specific to the recipient electronic device R, 10-1 of the cipher C, said keys are respectively denoted pk and sk in Figure 5.
  • Said step 141 also uses the parameters by, transmitted to steps 112 and/or 123.
  • Such a step 141 further consists of reading from said data memory 12 the values of the parameters by previously produced by a parameter generation method such as method 110, now and already described in connection with Figure 2 and implemented by the present electronic device R, 10-1 or by a third-party electronic device.
  • a method 140 also includes a step 142 of producing said secret K which we wish to extract from the code C received.
  • Such a decapsulation step 142 is carried out from said cipher C, the parameters by and the public keys pk and secret sk of the receiving electronic device R (10-1) of said cipher C.
  • such a method 140 can be implemented by the electronic device 10-1 acting as recipient R of said cipher C addressed by the electronic device 10-2 acting as sender s.
  • the general inventive concept deviates from this architecture by introducing at least two SàDs denoted act as a SàD coupled with a “mirror SàD”.
  • the sender generates randomly and calculates at least two are C and K for a certain function (x) whose parameters are unknown to him. The said two sums were
  • the sum K serves as a shared secret.
  • the sum C is the cipher conveying K.
  • bit streams can be permuted according to a known permutation of R (the device electronic device 10-1 in Figure 1) but not S (the electronic device 10-2 in Figure 1).
  • the parameters produced by a parameter generation method 110 simply consist of fixing the sizes of the keys used by the key generation 120 and encapsulation 130 methods. and decapsulation 140 implemented in a computer system such as system 1 according to FIG. More precisely, said parameters consist of an integer n chosen or predetermined so that k ⁇ n, k being a security parameter. According to a preferred embodiment, n will be chosen such that n > 3A4k.
  • the particularly advantageous values for the parameter k are 128, 192 and 256. The values of n which correspond to them being respectively 440, 664, 880. In order to facilitate the IT or hardware implementation we recommend taking the value n approximated to nearest byte.
  • This method 120 implemented by any electronic device 10-1 to 10-g of said computer system 1, comprises a step 121 of producing random or pseudo-random data SS by the random or pseudo-random number generator 13.
  • Such random or pseudo-random data SS makes it possible to derive the elements p, q, d, .,w.
  • such a step 121 consists of the following operations:
  • Step 122 of producing the pair of secret and public keys ⁇ sk, pk ⁇ may consist of implementing the following operations: mod p; mod q; sk «- [p, d, p ⁇
  • Step 121 was described with p prime of n bits.
  • Such a routine can thus consist of first initializing the vector so that Then, said routine consists of putting implement the following operations:
  • Such MM data allows the derivation of a vector of n random bits such that
  • step 133 of generating said cipher C and secret K is such that
  • Step 142 of said method 140 consisting of the recovery of said secret K which one wishes to derive from the received ciphertext C consists of the operations K ⁇ - pb mod q knowing that b ⁇ - Cd mod p.
  • This first embodiment of a KEM in accordance with the invention is secure against selected clear attacks (CPA-secure).
  • the encrypted has size n + log 2 n bits
  • modular multiplication can be carried out using the Montgomery algorithm (described in the publication PL Montgomery, “Modular multiplication without trial division”, Mathematics of computation, vol. 44, no. 170, pp. 519-521, 1985.) and/or include precalculated constants as described in publication D. Naccache, D. M'ra ⁇ hi and D. Raphael!, (1995). “Can Montgomery parasites be avoided? A design methodology based on key and cryptosystem modifications”. Designs, Codes, and Cryptography, 5(1), pp. 73-80.
  • RNS Residue Number System
  • An application using the key for example an email client encrypting and decrypting emails exchanged by users, can then use K' as the final encryption key.
  • the idea behind this additional protection is to destroy the remaining algebraic properties of K by the one-way function O WF (%).
  • the invention also provides for adapting such a KEM so that it is secure against selected cipher attacks (CCA-secure); we will name it KEMCCA.
  • CCA-secure CCA-secure
  • KEMCCA cipher attacks
  • a classic transform is applied such as that disclosed in the document AW Dent, ed. KG Paterson, “A Designer's Guide to KEMs”, Cryptography and Coding, 9th IMA International Conference, Cirencester, UK, December 16-18, 2003, Proceedings, Lecture Notes in Computer Science, vol. 2898, p. 133-151, Springer, 2003 or, alternatively, that proposed in the document E. Fujisaki and T.
  • Steps 110 and 120 AlgGen CPA ) to respectively produce the general parameters by and the pair of secret and public keys ⁇ sk, pk ⁇ as mentioned in connection with the previous embodiment are unchanged.
  • AlgGen CPA : AlgGen CCA .
  • the encapsulation 130 and decapsulation 140 steps are adapted.
  • the random number generator 13 of the electronic devices of a computer system according to the invention such as the system 1 according to FIG. 1, are arranged to implement a so-called “seed” PRNG method to generate in a pseudo-random manner the hazards necessary for the implementation of the session key encapsulation method 130.
  • seed Such a so-called “seed” process can be taken for example from the document by DJ Bernstein, “The ChaCha family of stream ciphers”, https://cr.yp.to/chacha.html, 2008 or even from the document by J. O'Connor, J. -Ph. Aumasson, S. Neves and Z. Wilcox-O'Hearn, “BLAKE3: one function, fast everywhere”, 2021, https://blake.io.
  • MM also consists of initializing Encap CPA .
  • Step 133 consists of producing not directly the cipher C which will ultimately be transmitted but a component C of it such that C
  • Said step 133 further consists of producing a second component C 2 «- K ® K CCA of said cipher C.
  • such a process 130 (Encap CPA ) could be expressed in Mathematica language as follows:
  • such a step 142 must include a test to verify the consistency of K CCA by implementing a processing 133 identical to that implemented by the device transmitting the cipher C, the result of this processing must correspond to the set constituted by the component and the key K. If not, the value of K CCA is not confirmed and/or an error is generated.
  • Such a process 140 (Decap CCA ) could be expressed in Mathematica language as follows: Which allows an execution such as:
  • the encrypted has size n + log 2 n + k bits
  • Such on-the-fly generation requires that the data generated on-the-fly does not have any special mathematical properties.
  • the data generated on-the-fly does not have any special mathematical properties.
  • the invention provides a third embodiment for reducing the size of the secret and public keys ⁇ sk, pk] produced in step 120 of a KEM conforming to the invention, we will call it CompKEM CPA .
  • the encapsulation steps 130 (Encap CPA ) and decapsulation 140 (Decap CPA ) as mentioned in connection with the first embodiment can remain unchanged.
  • a fourth embodiment provides a notable improvement in the bandwidth of the inventive method. It consists of a generalization to several vectors at the same time.
  • t a new integer parameter introduced in the description.
  • the present invention uses a square matrix M of dimensions t x t.
  • a matrix M must have a non-zero determinant.
  • the obvious way to generate such matrices M is to choose them randomly until a matrix M with non-zero determinant is obtained.
  • the dimension t of the matrix is very small (typically t ⁇ 4), such a method proves acceptable, suitable and effective.
  • such a matrix generation process could be expressed in Mathematica language as follows:
  • mKEM CPA An example of implementation of such a fourth embodiment mKEM CPA can be described algorithmically by the following operations, relating to the production 120 (mAlgGen CPA ) of the pair of keys ⁇ sk,pk ⁇ , consisting of generating: an invertible matrix M of dimension txt of elements of
  • the decapsulation process 140 (mDecap CPA (n, k, t, sk,pk, C)) of the secret — takes as input a public key pk an encrypted secret key C e N ⁇ n(p - 1) ⁇ n2 n . Step 142 of said
  • GenV(t,n,p[ f L dM) A first example of carrying out the production of the vector denoted GenV(t,n,p[ f L dM) can be described algorithmically by the following table:
  • the base BD can be recycled from one coordinate to another: once a solution has been found for a given coordinate, this solution and/or its components can be removed (erased) from BD and the resulting base can be used to initiate the search for the next coordinate without having to recalculate BD de novo. All you have to do is continue to enrich BD.
  • such a method allowing the generation of a coordinate of the vector of could be expressed in Mathematica language as follows:
  • the invention provides a fifth embodiment for which the q component of the public key pk is not exposed and thus further strengthen the robustness of a KEM according to the invention.
  • q becomes one of the components of the secret key sk, said keys ⁇ sk, pk ⁇ being produced within the framework of a process 120 adapted accordingly which we will call qLessAlgGen CPA to differentiate it from the AlgGen CPA algorithm already described in connection with the KEM CPA .
  • the parameters par consist of an integer n chosen or predetermined so that k ⁇ n, k being a security parameter provided by the user.
  • n will be chosen such that n > 3A4k.
  • a second random or pseudo-random data SS allows to derive a set of n positive integers which we will note w r , ...,w n .
  • the invention provides that the sum of said n integers w r , ..., w n is bounded by a parameter p, advantageously first.
  • such a step 121 consists of the following operations:
  • Step 121 was described with p prime of n bits.
  • a method 130 of encryption or encapsulation of a secret - which can be summarized by the formulation ⁇ C, K ⁇ ⁇ - qLessEncap CPA (, k, pk) - implemented by any electronic device of a computer system 1, such as the electronic device S (10-2), comprises a step 131 of producing random or pseudo-data random MM by the random or pseudo-random number generator 13.
  • Such MM data making it possible to derive a vector of n integers such that
  • Step 142 of said method 140 consisting of the recovery of said secret K which one wishes to derive from the received cipher C consists of the operations K «- pb mod q knowing that b «- Cd mod p.
  • the invention provides a second technique resulting in a KEM not exposing q, this variant being denoted qLess2KEM CPA .
  • this variant being denoted qLess2KEM CPA .
  • w t (v'i + z ⁇ d mod p for the unknowns w f ,z f under the constraints w t ⁇ [p/n] and z f ⁇ 2.
  • This equation admits on average n solutions due to the fact that size(w f ) + size(z f ) > size(p).
  • the invention provides a third technique for not exposing q to the adversary, this variant being denoted qLess3KEM CPA .
  • the key generation method 120 can be modified by generating Then, using LLL, solve p mod q for small z,s (typically z t ⁇ n 2 ) and Si ⁇ [q/n]. This equation admits on average n solutions because size(s f ) + size(z f ) > size(q-).
  • the invention provides a fourth technique for not exposing q to the adversary, this variant being denoted qLess4KEM CPA .
  • this variant being denoted qLess4KEM CPA .
  • the electronic device S, 10-2 proceeds in two steps: the vector is chosen in e [-1.0, l] n in such a way that K is a positive integer less than q.
  • K is a positive integer less than q.
  • the corresponding cipher C is calculated in Z, possibly resulting in a signed number whose sign is part of the cipher C.
  • the decapsulation procedure is invariant.
  • the electronic device s, 10-2 divides the bits of into three parts: one half is chosen equal to zero, one quarter is chosen equal to 1 and one quarter is chosen equal to -1.
  • a lower bound B on q is given to the electronic device S, 10-2 so that the latter can choose an assortment of keys s t such that K is positive and less than q.
  • the invention provides a fifth technique for not exposing q to the adversary, this variant being denoted qLess5KEM CPA .
  • This process uses exhaustive search to find the little i such that ixq added to the decapsulated key gives the encapsulated key calculated in the integers. This equality being confirmed by a redundancy of the key, denoted h and added to the cipher.
  • This process can also be generalized to the case t > 1 in an obvious way.
  • the invention provides a sixth technique for not exposing q to the adversary, this variant being denoted qLess6KEM CPA .
  • this variant being denoted qLess6KEM CPA .
  • it is also possible to omit q in the calculation of the secret K by s, 10-2 and proceed as follows, illustrated below with the parameter t 1.
  • inventive method could be generalized to non-binary mW.
  • the algorithms presented in the present invention would then be based on the Bounded Knapsack Problem, cf. H. Kellerer, U. Pferschy and D. Pisinger, “The Bounded Knapsack Problem”, Knapsack Problems, 2004, Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 185-209).
  • Bounded Knapsack Problem cf. H. Kellerer, U. Pferschy and D. Pisinger, “The Bounded Knapsack Problem”, Knapsack Problems, 2004, Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 185-209.
  • the invention further provides that the methods 130 and 140 can be implemented successively in opposite directions by the two electronic devices S, 10-2 and R, 10-1.
  • the first electronic device R, 10-1 acting as S shares the value of a secret K, which we can reference K R -, S , with the unique second electronic device S, 10-2 acting like R to exploit said K R ⁇ S secret and produce a session key.
  • Said secret K R -, S is encapsulated (process 130) in the form of an encrypted CR ⁇ S from the public key pk s , of the recipient S, 10-2.
  • Said recipient S, 10-2 recovers the value of said secret K R ⁇ S by implementing a decapsulation process (process 140) of said cipher CR ⁇ S -
  • the invention then provides that the future session key used by the two electronic devices S, 10-2 and R, 10-1 can result from a combination of the secrets K S ⁇ R and K R ⁇ S thus exchanged in a secure manner .
  • said session key may result from the implementation by the two electronic devices S, 10-2 and R, 10-1 of an exclusive or- or a hash function applied to said secrets K S -, R and K R -, S.
  • mCompKEM CPA provides both compression of public keys such as that provided by CompKEM CPA and an extension to t > 1 such as that provided by mKEM CPA . Since the mCompEncap CPA and mCompDecap CPA processes are obvious to those skilled in the art, we will endeavor to explain how to compress the pair ⁇ sk, pk ⁇ in the case t > 1.
  • the step of generating a pair ⁇ sk, pk ⁇ of secret and public keys, denoted CompAlgGen cpA 2 (, k), corresponding to AlgKeyGen, as well as publishing said public key pk produced consists of:
  • oq is a k-bit prime derived deterministically from seed_pk; is deterministically derived from seed_pk; is initialized randomly is produced as follows:

Abstract

The invention relates to a method (KEM) for transporting a secret which can withstand quantum computer attacks. Such a transport method (KEM) in accordance with the invention consists of respective methods for generating general parameters, generating secret and public keys, and encapsulating and decapsulating the secret to be transported. Such a method for transporting a secret is arranged to be implemented by a computer system (1) including a plurality of electronic devices (10-1, 10-2, 10-g) seeking to establish a secure communication channel, utilising the transported secret to establish a session key. The invention further relates to such a computer system (1) and to any computer program in which the program instructions, once written to the memories (14) of the plurality of electronic devices of the system (1), result in the implementation of a method (KEM) for transporting a secret according to the invention.

Description

PROCEDE D’ECHANGE D’UN SECRET RESISTANT AUX ATTAQUES PAR ORDINATEUR QUANTIQUE, SYSTEME INFORMATIQUE ET PROGRAMME D'ORDINATEUR ASSOCIES METHOD FOR EXCHANGING A SECRET RESISTANT TO ATTACK BY QUANTUM COMPUTER, COMPUTER SYSTEM AND ASSOCIATED COMPUTER PROGRAM
L'invention se rapporte au domaine de la cryptologie. The invention relates to the field of cryptology.
Plus précisément, l'invention concerne des procédés de transport d’un secret résistants aux attaques par ordinateur quantique, de tels procédés consistant en des procédés de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées. L’invention concerne en outre tout système informatique comportant une pluralité de dispositifs électroniques comportant chacun une unité centrale de traitement commandant par des signaux une mémoire, ainsi qu'une unité d'entrée et une unité de sortie, mettant en œuvre l'un quelconque desdits procédés de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées. L’un des domaines d’application préféré d’une telle invention concernent les communications sécurisées entre des dispositifs électroniques d’un tel système informatique, ces derniers exploitant une clé ou plus généralement un secret échangé via un canal de communication non sécurisé et résistant aux attaques par ordinateur quantique grâce à la mise en œuvre desdits procédés de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées par ledit système informatique. More specifically, the invention relates to methods of transporting a secret resistant to quantum computer attacks, such methods consisting of methods of parameter generation, key generation, key encapsulation (encryption) and decapsulation. (decryption) of encrypted keys. The invention further relates to any computer system comprising a plurality of electronic devices each comprising a central processing unit controlling a memory by signals, as well as an input unit and an output unit, implementing any one said methods of generating parameters, generating keys, encapsulating (encrypting) keys and decapsulating (decrypting) encrypted keys. One of the preferred fields of application of such an invention concerns secure communications between electronic devices of such a computer system, the latter using a key or more generally a secret exchanged via an insecure and tamper-resistant communication channel. quantum computer attacks through the implementation of said methods of parameter generation, key generation, key encapsulation (encryption) and decapsulation (decryption) of keys encrypted by said computer system.
La description claire de l’invention nécessite l’introduction des notations ainsi que le rappel des notions connues à l’homme de l’art suivantes : The clear description of the invention requires the introduction of notations as well as the reminder of the following concepts known to those skilled in the art:
- la « cryptographie à clé publique » ; - “public key cryptography”;
- la « cryptographie post-quantique » ; - “post-quantum cryptography”;
- le « problème du sac-à-dos (également désigné par l’acronyme SàD) » ; - the “backpack problem (also referred to by the acronym SàD)”;
- le recours à l’algorithme « LLL » afin de répartir l’information ;- the use of the “LLL” algorithm in order to distribute the information;
- les « mécanismes d'encapsulation de clé » également désignés par l’acronyme « KEM ». A moins qu’il ne soit spécifié autrement, des lettres minuscules portant une flèche désignent des vecteurs. Par exemple xlni désigne un vecteur de n éléments
Figure imgf000004_0001
- “key encapsulation mechanisms” also referred to by the acronym “KEM”. Unless otherwise specified, lowercase letters with an arrow denote vectors. For example x lni designates a vector of n elements
Figure imgf000004_0001
Les opérations scalaires sur des vecteurs doivent être interprétées comme agissant sur les composantes des vecteurs. Par exemple, les éléments du vecteur
Figure imgf000004_0002
mod c sont définis par la relation yt = axt + b mod c alors que les éléments de sont zt =
Figure imgf000004_0003
xt mod yt pour i = 1, ... , n.
Scalar operations on vectors must be interpreted as acting on the components of the vectors. For example, the elements of the vector
Figure imgf000004_0002
mo dc are defined by the relation y t = axt + b mod c while the elements of are z t =
Figure imgf000004_0003
x t mod y t for i = 1, ..., n.
Le produit scalaire usuel sera noté
Figure imgf000004_0004
The usual scalar product will be noted
Figure imgf000004_0004
L’opérateur « • » impliquant des vecteurs de dimension supérieure à 1 sera noté The operator “•” involving vectors of dimension greater than 1 will be noted
{x1, ... , xn} est un vecteur à n coordonnées et est un vecteur à t coordonnées ayant chacune n coordonnées, à savoir
Figure imgf000004_0005
Figure imgf000004_0006
{x 1 , ..., x n } is an n-coordinate vector and is a t-coordinate vector each having n coordinates, namely
Figure imgf000004_0005
Figure imgf000004_0006
D’autres notations usuelles et utiles utilisées dans le présent document sont données dans la table suivante :
Figure imgf000004_0007
Figure imgf000005_0001
Other common and useful notations used in this document are given in the following table:
Figure imgf000004_0007
Figure imgf000005_0001
L'invention appartient à la catégorie des procédés cryptographiques asymétriques dits également « procédés cryptographiques à clé publique ». The invention belongs to the category of asymmetric cryptographic methods also known as “public key cryptographic methods”.
Il s'agit d'algorithmes et de protocoles permettant une communication sécurisée entre l'entité qui chiffre le message, dit expéditeur et généralement désigné par la référence S dans le présent document et, l'entité qui le déchiffre, dit destinataire et généralement désigné par la référence R dans le présent document. Initialement R et S ne partagent pas de clé secrète commune. These are algorithms and protocols allowing secure communication between the entity which encrypts the message, known as the sender and generally designated by the reference S in this document, and the entity which decrypts it, known as the recipient and generally designated by the reference R in this document. Initially R and S do not share a common secret key.
La cryptographie asymétrique définit deux clés : une clé publique pk connue de tous et une clé privée sk gardée confidentielle par le destinataire R. Asymmetric cryptography defines two keys: a public key pk known to everyone and a private key sk kept confidential by the recipient R.
L'algorithme de chiffrement f est supposé accessible à tous les expéditeurs S potentiels souhaitant communiquer avec le destinataire R. The encryption algorithm f is assumed to be accessible to all potential senders S wishing to communicate with the recipient R.
L'algorithme de déchiffrement -1 est également supposé accessible à tous et public. The -1 decryption algorithm is also assumed to be accessible to everyone and public.
Un programme informatique dont les instructions de programme provoquent la mise en œuvre des algorithmes / et -1 par tout ordinateur ou dispositif électronique agencé pour enregistrer ledit programme informatique dans une mémoire, peut être publié sans crainte pour la sécurité de ladite communication. Ainsi, toute entité S souhaitant envoyer un message m de manière chiffrée à un destinataire déterminé R peut utiliser la clé publique pk du destinataire R afin de créer un chiffré c à l'intention de R. Seul R sera capable de déchiffrer c. A computer program whose program instructions cause the implementation of the algorithms / and -1 by any computer or electronic device arranged to store said computer program in a memory, can be published without fear for the security of said communication. Thus, any entity S wishing to send a message m in an encrypted manner to a specific recipient R can use the public key pk of the recipient R in order to create an encrypted c for R. Only R will be capable of decrypting c.
Dans un algorithme de chiffrement à clé publique, l’expéditeur S chiffre le message m à l’aide dudit algorithme de chiffrement f pour obtenir un chiffré c = /(pk, m) , à l’aide de ladite clé publique pk dudit destinataire R . Réciproquement, le destinataire R du message m, déchiffre le chiffré c en appliquant ledit algorithme de déchiffrement -1. Ce dernier /-1 est tel que m = où sk est la clé secrète liée à la clé publique pk détenue par
Figure imgf000006_0001
ledit destinataire R.
In a public key encryption algorithm, the sender S encrypts the message m using said encryption algorithm f to obtain an encrypted c = /(pk, m), using said public key pk of said recipient R. Conversely, the recipient R of the message m decrypts the encrypted c by applying said decryption algorithm -1 . The latter / -1 is such that m = where sk is the secret key linked to the public key pk held by
Figure imgf000006_0001
said recipient R.
Lesdites clés publique pk et secrète sk sont générées à l’aide d’un algorithme probabiliste dit « algorithme de génération de paramètres » et d’un algorithme probabiliste dit « algorithme de génération de clés » dont il sera question par la suite. Parfois, et tel est le cas dans la présente invention, les algorithmes de génération de paramètres et de génération de clés sont fusionnés en un seul algorithme. Said public keys pk and secret sk are generated using a probabilistic algorithm called “parameter generation algorithm” and a probabilistic algorithm called “key generation algorithm” which will be discussed later. Sometimes, and this is the case in the present invention, the parameter generation and key generation algorithms are merged into a single algorithm.
Ainsi, l’identité fondamentale du chiffrement asymétrique est m = /-1(sk,/(pk, m)). Thus, the fundamental identity of asymmetric encryption is m = / -1 (sk,/(pk, m)).
Par exemple, un algorithme de chiffrement à clé publique / célèbre est l’algorithme dit RSA décrit dans le brevet américain U.S. 4,405,829 et dans la publication associée R. L. Rivest, A. Shamir, et L. M. Adleman, « A Method for Obtaining Digital Signatures and Public-key CryptoSystems », Communications of the ACM, volume 21 , n° 2, pages 120 à 126, 1978. For example, a famous/public key encryption algorithm is the so-called RSA algorithm described in U.S. Patent 4,405,829 and in the associated publication R. L. Rivest, A. Shamir, and L. M. Adleman, “A Method for Obtaining Digital Signatures and Public -key CryptoSystems”, Communications of the ACM, volume 21, no. 2, pages 120 to 126, 1978.
On connaît également des algorithmes utilisant des courbes elliptiques (par exemple tels que le divulgue l'article N. Koblitz, « Elliptic-Curve Cryptosystems », Mathematics of Computation, volume n° 48, pages 203 à 209, 1987, ou l'article de V. Miller intitulé « Use of Elliptic Curves in Cryptography », CRYPTO 85, 1985) ou encore l’échange de clés Diffie- Hellman décrit dans le brevet américain U.S. 4,200,770. Ces algorithmes ont l'inconvénient de nécessiter des calculs modulaires très lourds mais ils ont surtout l’inconvénient de ne pas résister aux attaques menées à l'aide d'un équipement d'un nouveau type : les ordinateurs quantiques. Algorithms using elliptic curves are also known (for example as disclosed in the article N. Koblitz, “Elliptic-Curve Cryptosystems”, Mathematics of Computation, volume n° 48, pages 203 to 209, 1987, or the article by V. Miller entitled “Use of Elliptic Curves in Cryptography”, CRYPTO 85, 1985) or the Diffie-Hellman key exchange described in American patent US 4,200,770. These algorithms have the disadvantage of requiring very heavy modular calculations but they have especially the disadvantage of not resisting attacks carried out using a new type of equipment: quantum computers.
L'informatique quantique a émergé au début des années 1980. Plutôt que de se cantonner aux limites des circuits électroniques et de l'électricité, l'informatique quantique fonctionne selon les principes de la physique quantique, raison pour laquelle elle s'avère capable de traiter si efficacement des problèmes mathématiques très complexes. Elle pourrait un jour réaliser des exploits dont l'informatique classique se révèle tout bonnement incapable. L'évolution des ordinateurs quantiques s'est montrée lente, mais les choses s'accélèrent désormais grâce aux efforts d’académiques et d’industriels visant à normaliser des procédés de chiffrement résistant aux attaques quantiques. Quantum computing emerged in the early 1980s. Rather than being confined to the limits of electronic circuits and electricity, quantum computing operates according to the principles of quantum physics, which is why it is capable of deal so effectively with very complex mathematical problems. It could one day achieve feats that traditional computing simply proves incapable of. The evolution of quantum computers has been slow, but things are now accelerating thanks to the efforts of academics and industries aimed at standardizing encryption processes resistant to quantum attacks.
La plupart des techniques de chiffrement à clé publique actuelles repose sur des algorithmes qui intègrent des problèmes difficiles issus de la théorie des nombres, comme la factorisation ou le calcul du logarithme discret. Conçu en 1976, le chiffrement RSA précédemment évoqué constitue le précurseur de presque tous les schémas de chiffrement modernes, selon lequel chaque destinataire R dispose d'une clé publique pk et d'une clé privée sk . Pour envoyer un message confidentiel à ce destinataire R , les données m dudit message sont codées sous la forme d'un grand nombre entier et brouillées à l'aide de la clé publique pk correspondante à la clé privée sk détenue par ledit destinataire R à qui l'expéditeur S souhaite communiquer ledit message m, pour former un chiffré c. Le destinataire R qui reçoit ledit chiffré c peut ensuite déchiffrer ce dernier grâce à sa clé privée sk. Dans le chiffrement RSA, la clé publique pk se présente sous la forme d'un grand nombre composite n, et d’un exposant e , souvent égal à trois. La clé privée sk se caractérise par les facteurs premiers de n. Most current public key encryption techniques are based on algorithms that integrate difficult problems from number theory, such as factorization or the calculation of the discrete logarithm. Designed in 1976, the previously mentioned RSA encryption constitutes the precursor of almost all modern encryption schemes, according to which each recipient R has a public key pk and a private key sk. To send a confidential message to this recipient R, the data m of said message are encoded in the form of a large integer and scrambled using the public key pk corresponding to the private key sk held by said recipient R to whom the sender S wishes to communicate said message m, to form an encrypted c. The recipient R who receives said encrypted c can then decrypt the latter using his private key sk. In RSA encryption, the public key pk is in the form of a large composite number n, and an exponent e, often equal to three. The private key sk is characterized by the prime factors of n.
Grâce à des algorithmes spécifiques connus de l'homme de l'art (comme par exemple, l'algorithme de Schor décrit dans le document P.W. Schor (1994). « Algorithms for quantum computation: discrete logarithms and factoring ». Proceedings 35th Annual Symposium on Foundations of Computer Science. IEEE Comput. Soc. Press: pp. 124-134), un ordinateur quantique disposant de suffisamment de q-bits (« bits quantiques ») pourrait factoriser des grands nombres. Dans le cadre du chiffrement RSA, un adversaire possédant un ordinateur quantique pourrait partir d'une clé publique pk , factoriser n afin d'obtenir la clé privée sk et ainsi lire le contenu de n'importe quel chiffré c. Cette capacité à factoriser les nombres anéantit pratiquement l'intégralité de la cryptographie moderne. Les répercussions liées à cet outil d'attaque se révèlent considérables, car dans le contexte de l’Internet, la sécurité omniprésente dans nos façons de communiquer et de partager les informations en ligne repose sur le chiffrement à clé publique. Thanks to specific algorithms known to those skilled in the art (such as, for example, the Schor algorithm described in the document PW Schor (1994). “Algorithms for quantum computation: discrete logarithms and factoring”. Proceedings 35th Annual Symposium on Foundations of Computer Science. IEEE Comput. Soc. Press: pp. 124-134), a quantum computer having enough q-bits (“quantum bits”) could factor large numbers. In the context of RSA encryption, an adversary possessing a quantum computer could start from a public key pk, factor n in order to obtain the private key sk and thus read the content of any encrypted c. This ability to factor numbers virtually wipes out the entirety of modern cryptography. The repercussions of this attack tool are considerable, because in the context of the Internet, the omnipresent security in the way we communicate and share information online is based on public key encryption.
Ainsi, si un adversaire parvenait à disposer d'un ordinateur quantique, il pourrait théoriquement engendrer un chaos total. Il serait à même de créer des certificats de chiffrement et de se faire passer pour une banque afin de voler des fonds, perturber la technologie des crypto-monnaies, s'introduire dans les portefeuilles numériques, ainsi qu'espionner des communications confidentielles et les déchiffrer. So, if an adversary managed to have a quantum computer, it could theoretically cause total chaos. It could create encryption certificates and impersonate a bank to steal funds, disrupt cryptocurrency technology, break into digital wallets, and spy on and decrypt confidential communications. .
Un algorithme de chiffrement capable de résister à un adversaire muni d’un ordinateur quantique appartient à la catégorie des « algorithmes post- quantiques ». An encryption algorithm capable of resisting an adversary equipped with a quantum computer belongs to the category of “post-quantum algorithms”.
Ainsi, un objectif important de la présente invention est d'offrir un procédé de chiffrement post-quantique qui résiste aux attaques menées à l'aide d'ordinateurs quantiques. Thus, an important objective of the present invention is to provide a post-quantum encryption method which is resistant to attacks carried out using quantum computers.
Il est intellectuellement séduisant de baser un algorithme de cryptographie à clé publique sur le problème dit « du sac à dos » ci-après désigné par l’acronyme SàD. En effet, ce problème est réputé très difficile à résoudre. Il fait partie de la classe des problèmes les plus difficiles à résoudre avec un ordinateur : les problèmes NP-complets. Schématiquement un tel problème revient virtuellement à choisir des objets parmi une pluralité d’objets de poids éventuellement distincts pour emplir un sac à dos de sorte que ce dernier soit d’un poids déterminé une fois chargé. Sous sa forme la plus basique dite « décisionnelle », le problème du SàD consiste à dire si un entier-cible b peut être exprimé comme la somme d'un sous-ensemble d'un ensemble d’entiers donné A = {alt ... , an e Nn. It is intellectually attractive to base a public key cryptography algorithm on the so-called “knapsack problem” hereinafter referred to by the acronym SàD. Indeed, this problem is considered very difficult to solve. It is part of the class of most difficult problems to solve with a computer: NP-complete problems. Schematically, such a problem virtually amounts to choosing objects from a plurality of objects of possibly distinct weight to fill a backpack so that the latter is of a determined weight once loaded. In its most basic form called “decisional”, the SàD problem consists of saying whether a target integer b can be expressed as the sum of a subset of a given set of integers A = {a lt . .. , a n e N n .
En d'autres termes, étant données comme entrées un ensemble d'entiers positifs A et une cible b e N, le problème du SàD décisionnel consiste à dire s’il existe ou non une séquence de bits
Figure imgf000009_0002
... , xn} satisfaisant
Figure imgf000009_0001
= b.
In other words, given as inputs a set of positive integers A and a target be N, the decision-making SàD problem consists of saying whether or not there exists a sequence of bits
Figure imgf000009_0002
... , x n } satisfactory
Figure imgf000009_0001
= b.
Malgré son apparente simplicité, le problème décisionnel du SàD est NP- complet comme expliqué dans le document M. R. Garey et D. S. Johnson, « Computers and Intractability: A Guide to the Theory of NP-Completeness », W. H. Freeman, 1979, ISBN 0-7167-1044-7. Cette propriété rend le problème du SàD particulièrement intéressant pour les constructions cryptographiques. Despite its apparent simplicity, the SàD decision problem is NP-complete as explained in the document M. R. Garey and D. S. Johnson, “Computers and Intractability: A Guide to the Theory of NP-Completeness”, W. H. Freeman, 1979, ISBN 0-7167 -1044-7. This property makes the SàD problem particularly interesting for cryptographic constructions.
Effectivement, l'art antérieur en cryptographie utilisa le SàD à des telles fins. Indeed, prior art in cryptography used SàD for such purposes.
Le problème du SàD existe également dans une version dite « calculatoire » qui consiste non seulement à dire s’il existe une séquence de bits {x1, ... , xn} mais également à la retrouver (découvrir) explicitement. The SàD problem also exists in a so-called “computational” version which consists not only of saying whether there exists a sequence of bits {x 1 , ..., x n } but also of finding (discovering) it explicitly.
Historiquement, Merkle et Hellman, proposèrent (cf. M. R. Garey et D. S. Johnson, « Computers and Intractability: A Guide to the Theory of NP- Completeness », W. H. Freeman, 1979, ISBN 0-7167-1044-7) l'un des premiers cryptosystèmes basés sur le problème du SàD calculatoire. Plusieurs autres cryptosystèmes à base de SàD furent proposés durant des décennies mais, malheureusement, de très nombreux de ces cryptosystèmes furent cassés, comme expliqué dans le document A.M. Odlyzko, « The rise and fall of knapsack cryptosystems », Cryptology and computational number theory, vol. 42, pp. 75-88, 1990. Historically, Merkle and Hellman proposed (cf. M. R. Garey and D. S. Johnson, “Computers and Intractability: A Guide to the Theory of NP-Completeness”, W. H. Freeman, 1979, ISBN 0-7167-1044-7) one of the first cryptosystems based on the computational SàD problem. Several other SàD-based cryptosystems were proposed for decades but, unfortunately, many of these cryptosystems were broken, as explained in the document A.M. Odlyzko, “The rise and fall of knapsack cryptosystems”, Cryptology and computational number theory, vol. . 42, pp. 75-88, 1990.
En effet, alors que des instances aléatoires du problème du SàD sont difficiles à résoudre, la nécessité de pouvoir déchiffrer (c’est-à-dire, à inverser le procédé de sommation) force les concepteurs à introduire dans les SàDs ainsi utilisés des structures mathématiques spécifique. C'est l'introduction de ces structures spécifiques, qui différencie les SàDs cryptographiques de SàDs aléatoires, qui permit, in fine, de les casser. Un paramètre très important permettant de contrôler la difficulté de résoudre une instance de SàD est sa densité. La densité est définie comme le ratio A entre n et la taille du plus grand des αi. Plus précisément, Δ peut être noté
Figure imgf000010_0001
Indeed, while random instances of the SàD problem are difficult to solve, the need to be able to decipher (that is to say, to reverse the summation process) forces designers to introduce structures into the SàDs thus used. specific mathematics. It is the introduction of these specific structures, which differentiates cryptographic SàDs from random SàDs, which ultimately made it possible to break them. A very important parameter allowing you to control the difficulty of solving a SàD instance is its density. Density is defined as the ratio A between n and the size of the largest of α i . More precisely, Δ can be denoted
Figure imgf000010_0001
Lorsque A < 0.94 , il existe des algorithmes rapides, dits « en temps polynomial », permettant de résoudre le SàD, voir le document M.J. Coster, A. Joux, B.A. LaMacchia, A.M. Odlyzko, C-P. Schnorr et J. Stern, « Improved Low-Density Subset Sum Algorithms, Computational Complexity », vol. 2, pp. 111-128,1992. When A < 0.94, there are fast algorithms, called “in polynomial time”, making it possible to solve the SàD, see the document M.J. Coster, A. Joux, B.A. LaMacchia, A.M. Odlyzko, C-P. Schnorr and J. Stern, “Improved Low-Density Subset Sum Algorithms, Computational Complexity,” vol. 2, pp. 111-128, 1992.
En particulier des instances aléatoires de SàD peuvent être reformulées comme un problème d'approximation du vecteur le plus court dans un réseau comme le stipulent les documents de J. C. Lagarias et A.M. Odlyzko, « Solving Low-Density Subset Sum Problems », J. ACM, vol. 32, n° 1 , pp. 229-246, 1985 » et de A.M. Frieze, « On the Lagarias-Odlyzko Algorithm for the Subset Sum Problem », SIAM J. Comput., vol. 15, n° 2, pp. 536--539, 1986. Lorsque la densité est faible (A < 0.94, comme expliqué dans le document de M.J. Coster, A. Joux, B.A. LaMacchia, A.M. Odlyzko, C-P. Schnorr et J. Stern, « Improved Low-Density Subset Sum Algorithms, Computational Complexity », vol. 2, pp. 111 -128,1992), des algorithmes efficaces trouvant de tels vecteurs courts existent. Ces algorithmes permettent alors de résoudre le SàD, comme expliqué dans différents documents parmi lesquels : In particular, random instances of SàD can be reformulated as a problem of approximating the shortest vector in a network as stipulated in the documents of J. C. Lagarias and A.M. Odlyzko, “Solving Low-Density Subset Sum Problems”, J. ACM, flight. 32, no. 1, pp. 229-246, 1985” and A.M. Frieze, “On the Lagarias-Odlyzko Algorithm for the Subset Sum Problem”, SIAM J. Comput., vol. 15, no. 2, pp. 536--539, 1986. When the density is low (A < 0.94, as explained in the document by M.J. Coster, A. Joux, B.A. LaMacchia, A.M. Odlyzko, C-P. Schnorr and J. Stern, “Improved Low-Density Subset Sum Algorithms, Computational Complexity", vol. 2, pp. 111 -128, 1992), efficient algorithms finding such short vectors exist. These algorithms then make it possible to solve the SàD, as explained in various documents including:
- V. Lyubashevsky, « The Parity Problem in the Presence of Noise, Decoding Random Linear Codes, and the Subset Sum Problem, Approximation, Randomization and Combinatorial Optimization, Algorithms and Techniques », 8th International Workshop on Approximation Algorithms for Combinatorial Optimization Problems, APPROX 2005 and 9th International Workshop on Randomization and Computation, RANDOM 2005, Berkeley, CA, USA, August 22-24, 2005, Proceedings, pp. 378-389, 2005 ; - Y. Desmedt, « Knapsack Cryptographic Schemes », Encyclopedia of Cryptography and Security, 2nd Ed, pp. 695-704, 2011 ; - V. Lyubashevsky, “The Parity Problem in the Presence of Noise, Decoding Random Linear Codes, and the Subset Sum Problem, Approximation, Randomization and Combinatorial Optimization, Algorithms and Techniques”, 8th International Workshop on Approximation Algorithms for Combinatorial Optimization Problems, APPROX 2005 and 9th International Workshop on Randomization and Computation, RANDOM 2005, Berkeley, CA, USA, August 22-24, 2005, Proceedings, pp. 378-389, 2005; - Y. Desmedt, “Knapsack Cryptographic Schemes”, Encyclopedia of Cryptography and Security, 2nd Ed, pp. 695-704, 2011;
- E.F. Brickell, « Solving Low Density Knapsacks », Advances in Cryptology, Proceedings of CRYPTO'83, Santa Barbara, California, USA, August 21 -24, 1983, pp. 25-37, 1983. - E.F. Brickell, “Solving Low Density Knapsacks”, Advances in Cryptology, Proceedings of CRYPTO'83, Santa Barbara, California, USA, August 21 -24, 1983, pp. 25-37, 1983.
Dans la mesure où des densités A supérieures à 1 ne garantissent pas qu'il existe une solution unique au problème du SàD, la plage des densités utilisable pour la construction de SàDs à la fois inversibles et à haute densité se trouve dans l'intervalle des valeurs relativement réduit 0.94 < A < 1 (cf. R. Impagliazzo et M. Naor, « Efficient Cryptographie Schemes Provably as Secure as Subset Sum », J. Cryptology, vol. 9, n° 4, pp. 199-216, 1996). Cet intervalle ne laisse que peu de latitude à la conception de cryptosystèmes mais présente un avantage du point de vue de la sécurité car les seuls algorithmes permettant de résoudre des SàDs dans cet intervalle sont de complexité exponentielle (comme expliqué dans les documents suivants N. Howgrave- Graham et A. Joux, « New Generic Algorithms for Hard Knapsacks », Advances in Cryptology - EUROCRYPT 2010, 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Monaco / French Riviera, May 30 - June 3, 2010. Proceedings, pp. 235-256,Since densities A greater than 1 do not guarantee that there is a unique solution to the SàD problem, the range of densities usable for the construction of SàDs which are both invertible and high density lies in the range of relatively reduced values 0.94 < A < 1 (cf. R. Impagliazzo and M. Naor, “Efficient Cryptographie Schemes Provably as Secure as Subset Sum”, J. Cryptology, vol. 9, n° 4, pp. 199-216, 1996 ). This interval leaves little latitude for the design of cryptosystems but presents an advantage from a security point of view because the only algorithms allowing SàDs to be solved in this interval are of exponential complexity (as explained in the following documents N. Howgrave - Graham and A. Joux, “New Generic Algorithms for Hard Knapsacks”, Advances in Cryptology - EUROCRYPT 2010, 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Monaco / French Riviera, May 30 - June 3, 2010. Proceedings , pp. 235-256,
2010 ou encore A. Becker, J-S. Coron et A. Joux, « Improved Generic Algorithms for Hard Knapsacks », Advances in Cryptology - EUROCRYPT2010 or A. Becker, J-S. Coron and A. Joux, “Improved Generic Algorithms for Hard Knapsacks”, Advances in Cryptology - EUROCRYPT
2011 - 30th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Tallinn, Estonia, May 15-19, 2011 . Proceedings, pp. 364-385, 2011 ) requérant un temps d’exécution qui croît en Ô(20 291n). L’invention a justement pour objet de proposer un nouveau procédé à base de tels SàDs denses. 2011 - 30th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Tallinn, Estonia, May 15-19, 2011. Proceedings, pp. 364-385, 2011) requiring an execution time which increases in Ô(2 0 291n ). The object of the invention is precisely to propose a new process based on such dense SàDs.
Enfin, les cryptosystèmes post-quantiques à base de réseaux tels que ceux décrits dans les documents cités ci-après, reposent également sur la difficulté de la résolution de SàDs. Nous pouvons mentionner les documents suivants décrivant de tels procédés de chiffrement : Finally, post-quantum cryptosystems based on networks such as those described in the documents cited below, also rely on the difficulty of resolving SàDs. We can mention the following documents describing such encryption processes:
- M. Ajtai et C. Dwork, « A Public-Key Cryptosystem with Worst- Case/Average-Case Equivalence », Proceedings of the Twenty- Ninth Annual ACM Symposium on the Theory of Computing, El Paso, Texas, USA, May 4-6, 1997, pp. 284-293, 1997 ; - M. Ajtai and C. Dwork, “A Public-Key Cryptosystem with Worst-Case/Average-Case Equivalence”, Proceedings of the Twenty-Ninth Annual ACM Symposium on the Theory of Computing, El Paso, Texas, USA, May 4 -6, 1997, pp. 284-293, 1997;
- O. Regev, « On lattices, learning with errors, random linear codes, and cryptography », J. ACM, vol. 56, n° 6, pp. 34:1 -34:40, 2009 ;- O. Regev, “On lattices, learning with errors, random linear codes, and cryptography”, J. ACM, vol. 56, no. 6, pp. 34:1-34:40, 2009;
- O. Regev, « New lattice-based cryptographic constructions », J. ACM, vol. 51 , n°. 6, pp. 899-942, 2004 ; - O. Regev, “New lattice-based cryptographic constructions”, J. ACM, vol. 51, no. 6, pp. 899-942, 2004;
- Ch. Peikert, « Public-key cryptosystems from the worst-case shortest vector problem: extended abstract », Proceedings of the 41 st Annual {ACM} Symposium on Theory of Computing, STOC 2009, Bethesda, MD, USA, May 31 - June 2, 2009, pp. 333-342, 2009. - Ch. Peikert, “Public-key cryptosystems from the worst-case shortest vector problem: extended abstract”, Proceedings of the 41 st Annual {ACM} Symposium on Theory of Computing, STOC 2009, Bethesda, MD, USA, May 31 - June 2, 2009, pp. 333-342, 2009.
- V. Lyubashevsky, A. Palacio et G. Segev, « Public-Key Cryptographic Primitives Provably as Secure as Subset Sum », Theory of Cryptography, 7th Theory of Cryptography Conference, TCC 2010, Zurich, Switzerland, February 9-11 , 2010. Proceedings, pp. 382-400, 2010. - V. Lyubashevsky, A. Palacio and G. Segev, “Public-Key Cryptographic Primitives Provably as Secure as Subset Sum”, Theory of Cryptography, 7th Theory of Cryptography Conference, TCC 2010, Zurich, Switzerland, February 9-11, 2010 . Proceedings, pp. 382-400, 2010.
Un procédé permettant de répartir l’information dans une équation modulaire est l’algorithme dit « LLL », publié par A.K. Lenstra, HW. Lenstra, et L. Lovész, (1982) « Factoring polynomials with rational coefficients » - Mathematische Annalen. 261 (4): 515-534. A method for distributing information in a modular equation is the so-called “LLL” algorithm, published by A.K. Lenstra, HW. Lenstra, and L. Lovész, (1982) “Factoring polynomials with rational coefficients” - Mathematische Annalen. 261 (4): 515-534.
Soient xlt ... , xk e Nk une collection de k inconnues entières. Soit p e N un module et soient a0, ... , ak e Nk . Considérons l’équation de SàD aQ = =i Q-iXi modp. Let x lt ... , x k e N k be a collection of k integer unknowns. Let pe N be a module and let a 0 , ..., a k e N k . Consider the equation of SàD a Q = =i Q-iXi modp.
Il est connu à l’homme de l’art que ledit algorithme LLL permet de retrouver xlt ... , xk dès lors que
Figure imgf000012_0001
En particulier, l’algorithme LLL peut être adapté afin de fournir toute répartition inégale de tailles entre les xt dès lors que la taille de p est égale à la somme des tailles des xt.
It is known to those skilled in the art that said LLL algorithm makes it possible to find x lt ..., x k since
Figure imgf000012_0001
In particular, the LLL algorithm can be adapted in order to provide any unequal distribution of sizes between the x t as long as the size of p is equal to the sum of the sizes of the x t .
Une analyse théorique détaillée de l’algorithme LLL et de la manière dont LLL peut être mis à profit afin d’effectuer une telle répartition de l’information est donnée dans le document de Ph.Q. Nguyen et J. Stern, « The Two Faces of Lattices in Cryptology », Cryptography and Lattices, International Conference, CaLC 2001 , Providence, Rl, USA, March 29-30, 2001 , RevisedA detailed theoretical analysis of the LLL algorithm and how LLL can be leveraged to perform such information distribution is given in the Ph.Q. document. Nguyen and J. Stern, “The Two Faces of Lattices in Cryptology”, Cryptography and Lattices, International Conference, CaLC 2001, Providence, Rl, USA, March 29-30, 2001, Revised
Papers, pp. 146-180, 2001 » et au chapitre 13 du document de A. Joux, « Algorithmic cryptanalysis », 2009, CRC Press, dans le contexte des SàDs généralisés. Papers, pp. 146-180, 2001” and in chapter 13 of the document by A. Joux, “Algorithmic cryptanalysis”, 2009, CRC Press, in the context of generalized SàDs.
Un exemple typique de l’emploi de cette technique de répartition de l’information dans un contexte de cryptanalyse peut être trouvé dans le document de M. Beunardeau, A. Connolly, R. Géraud et D. Naccache, « On the Hardness of the Mersenne Low Hamming Ratio Assumption », Cryptology ePrint Archive, Report 2017/522, 2017, https://ia.cr/2017/522. Par exemple, il est possible de répartir l’information dans l’équation modulaire y + Ax + B = O mod en retrouvant une solution %, y où l’une des inconnues est de taille log2 - (7 bits et l’autre de taille q bits comme l’illustre le script suivant en langage Mathematica (logiciel de calcul formel édité par Wolfram Research) requérant de répartir l’information selon un ratio 20%-80%.
Figure imgf000013_0001
A typical example of the use of this information distribution technique in a cryptanalysis context can be found in the document by M. Beunardeau, A. Connolly, R. Géraud and D. Naccache, “On the Hardness of the Mersenne Low Hamming Ratio Assumption”, Cryptology ePrint Archive, Report 2017/522, 2017, https://ia.cr/2017/522. For example, it is possible to distribute the information in the modular equation y + Ax + B = O mod by finding a solution %, y where one of the unknowns is of size log 2 - (7 bits and the other of size q bits as illustrated by the following script in Mathematica language (formal calculation software published by Wolfram Research) requiring the distribution of information according to a ratio 20%-80%.
Figure imgf000013_0001
Ce script imprime effectivement : {{- 314929374373641319630381 ,822627}, True, {19.6499,78.0594,99.6896}}This script actually prints: {{- 314929374373641319630381 ,822627}, True, {19.6499,78.0594,99.6896}}
En cryptologie, un mécanisme d'encapsulation de clé ou KEM (acronyme anglo-saxon de « Key Encapsulation Mechanism », parfois également appelé « transport de clé ») est un protocole permettant de transmettre de manière sûre une clé de session K au destinataire R au moyen d'un canal non sécurisé. L'encapsulation d’une telle clé K est l'une des composantes d'un schéma de cryptographie hybride, l'autre étant l'encapsulation de données (au moyen de la clé K ainsi transmise). L'encapsulation sert la même fonction qu'un protocole de transport de clés, à la différence près que la clé K est ici entièrement générée par l'expéditeur S , ce qui permet entre autres de commencer à transmettre les données chiffrées à R directement avec la clé encapsulée K. In cryptology, a key encapsulation mechanism or KEM (English acronym for “Key Encapsulation Mechanism”, sometimes also called “key transport”) is a protocol for securely transmitting a session key K to the recipient R using an unsecured channel. The encapsulation of such a key K is one of the components of a hybrid cryptography scheme, the other being the encapsulation of data (by means of the key K thus transmitted). Encapsulation serves the same function as a key transport protocol, with the difference that the key K is here entirely generated by the sender S, which allows, among other things, to start transmitting the encrypted data to R directly with the encapsulated key K.
Parmi les mécanismes d'encapsulation standardisés par la norme ISO/IEC 18033-26, connue à l’homme de l’art, on compte RSA-OAEP et RSA- KEM. Among the encapsulation mechanisms standardized by standard ISO/IEC 18033-26, known to those skilled in the art, are RSA-OAEP and RSA-KEM.
En règle générale, le mécanisme d'encapsulation de clé consiste à chiffrer une clé aléatoire K par un deuxième dispositif électronique S d’un système informatique, au moyen d'une clé publique pk dédiée à un premier dispositif électronique destinataire R. Le chiffré C est transmis audit premier dispositif électronique R, ce dernier se chargeant de déchiffrer ledit chiffré C au moyen de sa clé privée sk. L’expéditeur S et le destinataire /? possèdent alors un même secret partagé K, permettant une communication sécurisée. Ainsi, tout chiffrement à clé publique donne immédiatement un mécanisme d'encapsulation de clé et inversement. En pratique, il est également nécessaire de protéger la clé encapsulée K contre des manipulations, par exemple en lui adjoignant une redondance ou un code d'authentification. As a general rule, the key encapsulation mechanism consists of encrypting a random key K by a second electronic device S of a computer system, by means of a public key pk dedicated to a first recipient electronic device R. The encrypted C is transmitted to said first electronic device R, the latter being responsible for decrypting said cipher C by means of its private key sk. The sender S and the recipient /? then have the same shared secret K, allowing secure communication. Thus, any public key encryption immediately provides a key encapsulation mechanism and vice versa. In practice, it is also necessary to protect the encapsulated key K against manipulation, for example by adding redundancy or an authentication code to it.
Nous considérons le scenario suivant dans lequel un expéditeur S génère une clé encapsulée K et l’envoie à un destinataire R . Un KEM se traduit par quatre processus successifs, respectivement de (1 ) génération de paramètres généraux, (2) de génération des clés secrète et publique du destinataire R , cette dernière étant publiée, (3) d’encapsulation puis de transmission par l’expéditeur S (à partir desdits paramètres généraux par et de la clé publique pk du destinataire R de la clé K ainsi encapsulée à l’attention du destinataire R, et (4) de décapsulation ou de récupération de cette dernière par ledit destinataire R. We consider the following scenario in which a sender S generates an encapsulated key K and sends it to a recipient R. A KEM results in four successive processes, respectively (1) generation of general parameters, (2) generation of the secret and public keys of the recipient R, the latter being published, (3) encapsulation then transmission by the sender S (from said general parameters by and from the public key pk of the recipient R of the key K thus encapsulated for the attention of the recipient R, and (4) decapsulation or recovery of the latter by said recipient R.
Ces quatre processus successifs, qui seront décrits ultérieurement sous la forme des procédés 110, 120, 130 et 140 en lien avec les figures 2 à 5, mettent respectivement en œuvre quatre algorithmes que nous pouvons désigner par les termes AlgSetllp , AlgKeyGen , Encap , Decap , comme l’indique la notation KEM: = (AlgSetllp, AlgKeyGen, Encap, Decap) et consistent en la séquence d’étapes suivante : These four successive processes, which will be described later in the form of processes 110, 120, 130 and 140 in connection with Figures 2 to 5, respectively implement four algorithms that we can designate by the terms AlgSetllp, AlgKeyGen, Encap, Decap , as indicated by the notation KEM: = (AlgSetllp, AlgKeyGen, Encap, Decap) and consist of the following sequence of steps:
- le destinataire R génère par exemple des paramètres généraux, notés par, nécessaires à l’opération du KEM, comme le résume la relation par <- AlgSetUp ; - the recipient R generates for example general parameters, noted by, necessary for the operation of the KEM, as summarized in the relationship by <- AlgSetUp;
- ledit destinataire R génère une clé privée sk et une clé publique pk publiée, comme le résume la relation {sk, pk} «- AlgKeyGen(par) ; - said recipient R generates a private key sk and a published public key pk, as summarized by the relationship {sk, pk} «- AlgKeyGen(par);
- de son côté, l’expéditeur S utilise par et pk pour produire une clé K qu’il conserve confidentielle et un chiffré C encapsulant ladite clé secrète K à transmettre au destinataire R, comme le résume la relation {C, K} <- Encap(par, pk) ; à l’issue de cette étape, le chiffré C est adressé au destinataire R ; - for its part, the sender S uses par and pk to produce a key K which it keeps confidential and an encrypted code C encapsulating said secret key K to be transmitted to the recipient R, as summarized in the relationship {C, K} <- Encap(by, pk); at the end of this step, the cipher C is sent to the recipient R;
- ledit destinataire R réceptionne le chiffré C et récupère la clé K encapsulée dans ce dernier, comme le résume la relation K «- Decap(par, sk , C) en mettant en œuvre l’algorithme de décapsulation Decap ; si ladite étape de décapsulation n’a pas réussi, l’algorithme Decap retourne éventuellement un message « erreur ». - said recipient R receives the encrypted C and recovers the key K encapsulated in the latter, as summarized in the relationship K «- Decap(par, sk, C) by implementing the Decap decapsulation algorithm; if said decapsulation step was not successful, the Decap algorithm possibly returns an “error” message.
A la fin de cette séquence, R et S partagent la même clé de session secrète K. Parmi les nombreux avantages apportés par la présente invention, nous pouvons mentionner que : At the end of this sequence, R and S share the same secret session key K. Among the numerous advantages brought by the present invention, we can mention that:
- l'information que chercherait à tirer tout éventuel attaquant à partir de la clé publique est réduite autant que possible. En effet, l'invention garde caché le module modulo lequel les calculs de SàD sont effectués. Ce faisant, il est raisonnablement conjecturé que l’invention préserve le cryptosystème proposé des attaques à base de réseau qui ciblent les SàD modulaires ; - the information that any potential attacker would seek to obtain from the public key is reduced as much as possible. In fact, the invention keeps hidden the modulo module which the SàD calculations are carried out. In doing so, it is reasonably surmised that the invention protects the proposed cryptosystem from network-based attacks that target modular SàDs;
- un KEM selon l’invention résiste aux attaques quantiques car ledit KEM ne repose ni sur le problème de la factorisation, ni sur le problème du logarithme discret, tous deux vulnérables aux attaques quantiques ; - a KEM according to the invention resists quantum attacks because said KEM is based neither on the factorization problem nor on the discrete logarithm problem, both vulnerable to quantum attacks;
- un KEM selon l’invention est particulièrement optimisé et performant puisque les algorithmes mis en œuvre dans la cadre de l’invention nécessitent peu d’opérations pour mémoriser et exécuter les algorithmes Encap et Decap alliant ainsi hautes performances d’exécution et préservation des capacité de stockage des équipements mettant en œuvre le KEM ; de plus, le nombre d’instructions du code nécessaire à la réalisation de l’invention de manière logicielle ou le nombre de portes logiques nécessaires à la réalisation de l’invention de manière matérielle est très faible ; - a KEM according to the invention is particularly optimized and efficient since the algorithms implemented in the context of the invention require few operations to store and execute the Encap and Decap algorithms, thus combining high execution performance and preservation of capacity storage of equipment implementing KEM; moreover, the number of code instructions necessary to carry out the invention in software or the number of logic gates necessary to carry out the invention in hardware is very low;
- la mémoire vive nécessaire à l’exécution desdits algorithmes Encap et Decap est également faible au regard de l’art antérieur préservant ainsi également les ressources desdits équipements mettant en œuvre un KEM selon l’invention ; - the RAM necessary for the execution of said Encap and Decap algorithms is also low compared to the prior art, thus also preserving the resources of said equipment implementing a KEM according to the invention;
- la bande passante nécessaires aux échanges entre équipements mettant en œuvre un KEM selon l’invention est considérablement augmentée au regard de l’art antérieur, puisque pour échanger de manière sécurisée une clé K de k bits, un KEM selon l’invention requiert une transmission maximale de O(k) bits, là où les algorithmes classiques requièrent O(k2) , augmentant ainsi encore les performances dudit KEM selon l’invention par rapport à l’art antérieur ; il convient de noter qu’un KEM selon l’un des modes de réalisation de l’invention permet la transmission de tk bits de clé au lieu de k, où, typiquement t < 4. - the bandwidth necessary for exchanges between equipment implementing a KEM according to the invention is considerably increased with regard to the prior art, since to securely exchange a key K of k bits, a KEM according to the invention requires a maximum transmission of O(k) bits, where conventional algorithms require O(k 2 ), thus further increasing the performance of said KEM according to the invention compared to the prior art; it should be noted that a KEM according to one of the embodiments of the invention allows the transmission of tk key bits instead of k, where, typically t < 4.
- selon des modes de réalisation préférés, l’invention prévoit également de pouvoir compresser la clé publique pk et/ou la clé privée sk, de sorte que soient préservées davantage encore les ressources matérielles nécessaires à la mise en œuvre d’un tel KEM. - according to preferred embodiments, the invention also provides for being able to compress the public key pk and/or the private key sk, so that the hardware resources necessary for the implementation of such a KEM are even further preserved.
Du point de vue théorique et pratique, un grand avantage de l’invention réside dans le fait que le paramètre p (dont il sera question plus tard) reste secret. Ainsi, un adversaire ne fait pas face à un problème de SàD modulaire mais à un problème de SàD sur les entiers, ce qui est bien plus difficile. From a theoretical and practical point of view, a great advantage of the invention lies in the fact that the parameter p (which will be discussed later) remains secret. Thus, an adversary does not face a modular SàD problem but a SàD problem on integers, which is much more difficult.
A cette fin, l’invention prévoit tout d’abord un procédé de transport d’un secret K résistant aux attaques par ordinateur quantique, ledit procédé étant mis en œuvre par un système informatique comportant un premier et un deuxième dispositifs électroniques, lesdits premier et deuxième dispositifs électroniques comportant chacun une unité de traitement coopérant avec une mémoire de données et des moyens de communication avec le monde extérieur, ledit premier dispositif électronique R étant conçu pour recevoir et exploiter le secret K préalablement produit et encapsulé par ledit deuxième dispositif électronique S, ledit procédé de transport comportant : To this end, the invention firstly provides a method of transporting a secret K resistant to attacks by quantum computer, said method being implemented by a computer system comprising a first and a second electronic devices, said first and second electronic devices each comprising a processing unit cooperating with a data memory and means of communication with the outside world, said first electronic device R being designed to receive and exploit the secret K previously produced and encapsulated by said second electronic device S, said transport method comprising:
- une étape de génération et de publication de paramètres généraux par dudit procédé de transport mise en œuvre par le premier dispositif électronique R ; - a step of generating and publishing general parameters by said transport method implemented by the first electronic device R;
- une étape de génération d’un couple {sk,pk} de clés secrète et publique, ainsi que de publication de ladite clé publique produite, ladite étape étant mise en œuvre par le premier dispositif électronique 7?, ledit couple de clés secrète et publique {sk, pk} étant produit à partir desdits paramètres généraux par et à partir d’une première donnée aléatoire produite par un générateur de nombres aléatoires dudit premier dispositif électronique R ; - a step of generating a pair {sk,pk} of secret and public keys, as well as publishing said public key produced, said step being implemented by the first device electronic 7?, said pair of secret and public keys {sk, pk} being produced from said general parameters by and from a first random data produced by a random number generator of said first electronic device R;
- une étape d’encapsulation du secret K sous la forme d’un chiffré C et de transmission de ce dernier, ladite étape étant mise en œuvre par ledit deuxième dispositif électronique S à partir desdits paramètres généraux par, de la clé publique pk dudit premier dispositif électronique R et d’une deuxième donnée aléatoire produite par le générateur de nombres aléatoires dudit deuxième dispositif électronique S - a step of encapsulating the secret K in the form of a cipher C and transmitting the latter, said step being implemented by said second electronic device S from said general parameters by, of the public key pk of said first electronic device R and a second random data item produced by the random number generator of said second electronic device S
- une étape de décapsulation dudit secret K mise en œuvre par ledit premier dispositif électronique R à partir dudit chiffré C , desdits paramètres généraux par et du couple {sk, pk] de clés secrète et publique d’ores et déjà produit par le premier dispositif électronique R. - a step of decapsulating said secret K implemented by said first electronic device R from said cipher C, said general parameters by and from the pair {sk, pk] of secret and public keys already produced by the first device electronic R.
Pour résister à une attaque par ordinateur quantique, ladite deuxième donnée aléatoire sert à dériver un vecteur de n entiers
Figure imgf000018_0001
et en ce que l’étape d’encapsulation du secret K sous la forme d’un chiffré C et de transmission de ce dernier consiste à mettre en œuvre deux sommes ayant des mêmes indexes m1, ... , mn, le chiffré C consistant en une première somme telle que C
Figure imgf000018_0002
et le secret K consistant en une seconde somme, dite
To resist an attack by quantum computer, said second random data is used to derive a vector of n integers
Figure imgf000018_0001
and in that the step of encapsulating the secret K in the form of a cipher C and transmitting the latter consists of implementing two sums having the same indexes m 1 , ..., m n , the cipher C consisting of a first sum such that C
Figure imgf000018_0002
and the secret K consisting of a second sum, called
« somme miroir » telle que K «-
Figure imgf000018_0003
, ladite première somme étant calculée dans une première structure algébrique, ladite seconde somme étant calculée dans une deuxième structure algébrique et les vecteurs v| | et s^l étant extraits de la clé publique pk dudit premier dispositif électronique R.
“mirror sum” such that K “-
Figure imgf000018_0003
, said first sum being calculated in a first algebraic structure, said second sum being calculated in a second algebraic structure and the vectors v | | and s^l being extracted from the public key pk of said first electronic device R.
L’invention prévoit différentes variantes selon lesquelles : The invention provides for different variants according to which:
- lesdites première et deuxième structures algébriques sont l’anneau des entiers Z ; - lesdites première et deuxième structures algébriques sont des corps finis ; - said first and second algebraic structures are the ring of integers Z; - said first and second algebraic structures are finite fields;
- ladite première structure algébrique est l’anneau des entiers Z et ladite seconde structure algébrique est un corps fini ; - said first algebraic structure is the ring of integers Z and said second algebraic structure is a finite field;
- ladite première structure algébrique est un corps fini et ladite seconde structure algébrique est l’anneau des entiers Z. - said first algebraic structure is a finite field and said second algebraic structure is the ring of integers Z.
Selon un premier mode de réalisation d’un KEM conforme à l’invention sûr contre les attaques à clair choisi (CPA-sûr) : According to a first embodiment of a KEM conforming to the invention secure against selected clear attacks (CPA-secure):
- l'étape de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité, par étant défini par la paire par = {n, k} - the step of generating and publishing general parameters par consists of determining an integer n such that k < n, k being a security parameter, par being defined by the pair par = {n, k}
- l’étape de génération d’un couple {sk, pk} de clés secrète et publique, ainsi que de publication de ladite clé publique pk produite consiste à : o utiliser la première donnée aléatoire afin de dériver les paramètres suivants : - the step of generating a pair {sk, pk} of secret and public keys, as well as publishing said public key pk produced, consists of: o using the first random data in order to derive the following parameters:
- un entier p de n bits ; - an n-bit integer p;
- un entier q premier de k bits ; - a prime integer q of k bits;
- des entiers d et p tels que
Figure imgf000019_0006
- integers d and p such that
Figure imgf000019_0006
- un vecteur de n entiers positifs wr, ...,wn dont
Figure imgf000019_0007
la somme est bornée par p ; o produire la clé secrète sk «- [p, d, p} ; o produire la clé publique pk les vecteurs
Figure imgf000019_0004
Figure imgf000019_0003
et
Figure imgf000019_0002
étant définis par les deux relations
Figure imgf000019_0005
Figure imgf000019_0001
mod p et sM «- w^p mod q.
- a vector of n positive integers w r , ...,w n of which
Figure imgf000019_0007
the sum is bounded by p; o produce the secret key sk «- [p, d, p}; o produce the public key pk the vectors
Figure imgf000019_0004
Figure imgf000019_0003
And
Figure imgf000019_0002
being defined by the two relations
Figure imgf000019_0005
Figure imgf000019_0001
mod p and sM «- w^p mod q.
- l’étape d’encapsulation du secret K consiste à utiliser la deuxième donnée aléatoire afin de produire un vecteur de n entiers m à partir duquel sont calculés le chiffré
Figure imgf000020_0006
et la clé K «- mod q :
Figure imgf000020_0007
- the step of encapsulating the secret K consists of using the second random data in order to produce a vector of n integers m to from which the figures are calculated
Figure imgf000020_0006
and the key K «- m o dq:
Figure imgf000020_0007
- l’étape de décapsulation du secret K consiste à recouvrer la clé K telle que K «- b mod q où b «- Cd mod p. - the step of decapsulating the secret K consists of recovering the key K such that K «- b mod q where b «- Cd mod p.
Selon ce premier mode de réalisation, le vecteu peut être produit par la séquence d’opérations suivantes :
Figure imgf000020_0005
Figure imgf000020_0002
According to this first embodiment, the vector can be produced by the following sequence of operations:
Figure imgf000020_0005
Figure imgf000020_0002
- tant que ledit vecteur
Figure imgf000020_0008
ne contient pas n éléments distincts faire : selon le critère
Figure imgf000020_0004
Figure imgf000020_0003
- as long as said vector
Figure imgf000020_0008
does not contain n distinct elements do: according to the criterion
Figure imgf000020_0004
Figure imgf000020_0003
Selon un deuxième mode de réalisation, pour renforcer encore la robustesse d’un KEM selon l’invention, la composante q de la clé publique pk peut ne pas être exposée au deuxième dispositif électronique S. Pour cela : According to a second embodiment, to further strengthen the robustness of a KEM according to the invention, the component q of the public key pk may not be exposed to the second electronic device S. For this:
- l'étape de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité, par étant défini par la paire par = {n, k} ; - the step of generating and publishing general parameters par consists of determining an integer n such that k < n, k being a security parameter, par being defined by the pair par = {n, k};
- l’étape de génération d’un couple {sk, pk} de clés secrète et publique, ainsi que de publication de ladite clé publique pk produite consiste à : o utiliser la première donnée aléatoire afin de dériver les paramètres suivants : - the step of generating a pair {sk, pk} of secret and public keys, as well as publishing said public key pk produced, consists of: o using the first random data in order to derive the following parameters:
- un entier p de bits ; - a bit integer p;
- un entier q premier de k bits ; - a prime integer q of k bits;
- des entiers d et p tels que
Figure imgf000020_0001
- un vecteur
Figure imgf000021_0011
de n entiers positifs w±, ...,wn dont la somme est bornée par p et tels que
Figure imgf000021_0001
mod q) < q; o produire la clé secrète sk «- [p, d, p} ; o produire la clé publique pk «- les vecteurs
Figure imgf000021_0002
Figure imgf000021_0010
étant définis par les deux relations
Figure imgf000021_0003
«- mod p et
Figure imgf000021_0009
p mod q
Figure imgf000021_0008
- integers d and p such that
Figure imgf000020_0001
- a vector
Figure imgf000021_0011
of n positive integers w ± , ...,w n whose sum is bounded by p and such that
Figure imgf000021_0001
mod q) <q; o produce the secret key sk «- [p, d, p}; o produce the public key pk «- the vectors
Figure imgf000021_0002
Figure imgf000021_0010
being defined by the two relations
Figure imgf000021_0003
«- mod p and
Figure imgf000021_0009
p mod q
Figure imgf000021_0008
- l’étape d’encapsulation du secret K consiste à utiliser la deuxième donnée aléatoire afin de produire un vecteur de n entiers
Figure imgf000021_0004
à partir duquel sont calculés le chiffré C
Figure imgf000021_0005
et la clé K «-
Figure imgf000021_0007
- the encapsulation step of the secret K consists of using the second random data in order to produce a vector of n integers
Figure imgf000021_0004
from which the cipher C is calculated
Figure imgf000021_0005
and the key K «-
Figure imgf000021_0007
- l’étape de décapsulation du secret K consiste à recouvrer la clé K telle que K «- pb mod q où b «- Cd mod p. - the step of decapsulating the secret K consists of recovering the key K such that K «- pb mod q where b «- Cd mod p.
Pour réduire les tailles des clés {sk,pk} , un procédé conforme à l’invention peut être adapté de sorte que : To reduce the sizes of the keys {sk,pk}, a method according to the invention can be adapted so that:
- l'étape de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité, par étant défini par la paire par = {n,k} ; - the step of generating and publishing general parameters par consists of determining an integer n such that k < n, k being a security parameter, par being defined by the pair par = {n,k};
- l’étape de génération d’un couple {sk,pk} de clés secrète et publique, ainsi que de publication de ladite clé publique pk produite consiste à : o utiliser la première donnée aléatoire afin de produire deux graines (graine_pk, graine_sk) «- [0, 2k - l]2 ; o produire la clé secrète sk «- [p, d,p} où p e Pn, d e Z* et p e Z* sont dérivés de manière déterministe de graine_sk ; o produire la clé publique
Figure imgf000021_0006
- the step of generating a pair {sk,pk} of secret and public keys, as well as publishing said public key pk produced, consists of: o using the first random data in order to produce two seeds (seed_pk, seed_sk) «- [0.2 k - l] 2 ; o produce the secret key sk «- [p, d,p} where pe P n , from Z* and pe Z* are derived deterministically from seed_sk; o produce the public key
Figure imgf000021_0006
■ le vecteur v' e [1, 2n - l]n est dérivé de manière déterministe de graine_pk ; - q est un nombre premier de k bits dérivé de manière déterministe de graine_pk ; ■ the vector v' e [1, 2 n - l] n is derived deterministically from seed_pk; - q is a k-bit prime number derived deterministically from seed_pk;
- le vecteur
Figure imgf000022_0003
et le vecteur étant produits par le
Figure imgf000022_0004
procédé suivant :
Figure imgf000022_0002
- the vector
Figure imgf000022_0003
and the vector being produced by the
Figure imgf000022_0004
following process:
Figure imgf000022_0002
• pour 1 < i < n faire : o tant que (v't + zt~) d mod p > [p/n] rafraîchir zf «- [0,n2 - 1] ; • for 1 < i < n do: o as long as (v't + z t ~) d mod p > [p/n] refresh z f «- [0,n 2 - 1];
• sh]
Figure imgf000022_0001
mod p) mod q ; o compresser la clé pk en {graine_pk
Figure imgf000022_0005
• sh]
Figure imgf000022_0001
mod p) mod q; o compress the pk key into {seed_pk
Figure imgf000022_0005
- l’étape d’encapsulation du secret K, consiste à : o décompresser
Figure imgf000022_0006
en dérivant de la graine_pk le vecteur
Figure imgf000022_0007
puis former
Figure imgf000022_0008
o générer à partir de la deuxième donnée aléatoire, un vecteur de n entiers
Figure imgf000022_0009
à partir duquel sont calculés le chiffré
Figure imgf000022_0010
Figure imgf000022_0011
- the secret K encapsulation step consists of: o decompressing
Figure imgf000022_0006
by deriving from the seed_pk the vector
Figure imgf000022_0007
then form
Figure imgf000022_0008
o generate from the second random data, a vector of n integers
Figure imgf000022_0009
from which the cipher is calculated
Figure imgf000022_0010
Figure imgf000022_0011
- l’étape de décapsulation du secret K consiste à recouvrer les données sk ;= [p, d,p} à partir de graine_sk puis à recouvrer (141 ) la clé K telle que K «- pb mod q où b «- Cd mod p. - the step of decapsulating the secret K consists of recovering the data sk ;= [p, d, p} from seed_sk then recovering (141) the key K such that K «- pb mod q where b «- Cd mod p.
Selon un mode de réalisation avantageux, p peut être premier ou tel que PGCD(d, p) = 1. According to an advantageous embodiment, p can be prime or such that PGCD(d, p) = 1.
Pour optimiser la bande passante nécessaire à la mise en œuvre d’un procédé conforme à l’invention, et transmettre des clés plus longues, le procédé conforme à l’invention peut être adapté de sorte que : To optimize the bandwidth necessary for the implementation of a method in accordance with the invention, and transmit longer keys, the method in accordance with the invention can be adapted so that:
- l’étape de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité et d’un entier t non nul, lesdits paramètres généraux par étant le triplet {t, n, k} ; - the step of generating and publishing general parameters by consists of determining an integer n such that k < n, k being a security parameter and an integer t non-zero, said general parameters being the triplet {t, n, k};
- l’étape (120) de génération d’un couple {sk, pk] de clés secrète et publique, ainsi que de publication de ladite clé publique pk consiste à produire, à partir de la première donnée aléatoire, les données suivantes : o un entier q de k bits ; o un vecteur o un vecteur
Figure imgf000023_0001
o une matrice aléatoire M inversible de dimension t x t dont les éléments sont pris aléatoirement dans Zq ; o une clé secrète o une clé publiqu les vecteurs
Figure imgf000023_0003
Figure imgf000023_0002
Figure imgf000023_0004
étant produits tels que : vérifie la condition i, j, 0 <
Figure imgf000023_0005
vt < 2n et djVt mod p7- < pj/n ;
Figure imgf000023_0006
- the step (120) of generating a pair {sk, pk] of secret and public keys, as well as publishing said public key pk, consists of producing, from the first random data item, the following data: o a k-bit integer q; o a vector o a vector
Figure imgf000023_0001
o an invertible random matrix M of dimension txt whose elements are taken randomly from Z q ; o a secret key o a public key for the vectors
Figure imgf000023_0003
Figure imgf000023_0002
Figure imgf000023_0004
being produced such that: verifies the condition i, j, 0 <
Figure imgf000023_0005
v t < 2 n and djVt mod p 7 - <pj/n;
Figure imgf000023_0006
- l’étape d’encapsulation du secret
Figure imgf000023_0007
consiste à utiliser la deuxième donnée aléatoire afin de produire un vecteur de n entiers à partir duquel sont calculés le chiffré C . et la clé
Figure imgf000023_0009
mod q} ;
Figure imgf000023_0008
- l’étape de décapsulation du secret
Figure imgf000024_0001
consiste à recouvrer
- the secret encapsulation step
Figure imgf000023_0007
consists of using the second random data in order to produce a vector of n integers from which the cipher C is calculated. and the key
Figure imgf000023_0009
mod q} ;
Figure imgf000023_0008
- the secret decapsulation stage
Figure imgf000024_0001
consists of recovering
(141 ) la clé
Figure imgf000024_0002
telle que
Figure imgf000024_0003
mod
Figure imgf000024_0004
C rfM mod pt .
(141) the key
Figure imgf000024_0002
such as
Figure imgf000024_0003
mod
Figure imgf000024_0004
C rfM mod pt.
Selon un mode de réalisation avantageux, t peut être inférieur ou égal à 4. According to an advantageous embodiment, t can be less than or equal to 4.
De la même manière, un mode de réalisation avantageux peut consister en ce que n puisse être tel que n > 3A4k. Likewise, an advantageous embodiment may consist of n being such that n > 3A4k.
Pour une sécurité supplémentaire, les étapes d’encapsulation et de décapsulation du secret K , respectivement
Figure imgf000024_0005
, peuvent comporter l’application d'une fonction à sens unique OWF(x) audit secret K (respectivement
Figure imgf000024_0006
) pour produire un deuxième secret K' = OWF(/<) (respectivement K' = OWF <M) utilisé effectivement au lieu de K (respectivement ffM) par une application mettant en œuvre le KEM, c’est-à- des fins cryptographiques. En effet, une telle protection supplémentaire détruit d’éventuelles propriétés algébriques restant dans K (respectivement ffM).
For additional security, the encapsulation and decapsulation steps of the secret K, respectively
Figure imgf000024_0005
, may include the application of a one-way function OWF(x) to audit secret K (respectively
Figure imgf000024_0006
) to produce a second secret K' = OWF(/<) (respectively K' = OWF <M) actually used instead of K (respectively ffM) by an application implementing KEM, i.e. for purposes cryptographic. Indeed, such additional protection destroys possible algebraic properties remaining in K (respectively ffM).
Selon un deuxième objet, l’invention concerne un produit programme d’ordinateur comportant une ou plusieurs instructions de programme exécutables par l’unité de traitement d’un ordinateur, lesdites instructions de programme étant chargeables dans une mémoire dudit ordinateur et dont l’exécution par ladite unité de traitement provoque la mise en œuvre d’un procédé de transport d’un secret K résistant aux attaques par ordinateur quantique selon l’invention. According to a second object, the invention relates to a computer program product comprising one or more program instructions executable by the processing unit of a computer, said program instructions being loadable into a memory of said computer and the execution of which by said processing unit causes the implementation of a method for transporting a secret K resistant to attacks by quantum computer according to the invention.
Selon un troisième objet, l’invention concerne un support de mémorisation lisible par un ordinateur comportant les instructions d’un tel produit programme d’ordinateur. According to a third object, the invention relates to a storage medium readable by a computer comprising the instructions of such a computer program product.
Selon un quatrième objet, l’invention concerne un système informatique comportant une pluralité de dispositifs électroniques comprenant chacun une unité de traitement et une mémoire, ladite mémoire de chacun desdits dispositifs électroniques comprenant les instructions de programme d’un produit programme d’ordinateur conforme à l’invention. According to a fourth object, the invention relates to a computer system comprising a plurality of electronic devices each comprising a processing unit and a memory, said memory of each of said electronic devices comprising the program instructions of a computer program product according to the invention.
D’autres caractéristiques et avantages apparaîtront plus clairement à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent parmi lesquelles : Other characteristics and advantages will appear more clearly on reading the following description and examining the accompanying figures, including:
- la figure 1 illustre un exemple d’un système informatique comportant une pluralité de dispositifs électroniques mettant en œuvre un procédé de transport de clé conforme à l’invention ;- Figure 1 illustrates an example of a computer system comprising a plurality of electronic devices implementing a key transport method according to the invention;
- la figure 2 illustre un exemple d’un procédé fonctionnel de production de paramètres généraux d’un procédé de transport de clé conforme à l’invention ; - Figure 2 illustrates an example of a functional method for producing general parameters of a key transport method according to the invention;
- la figure 3 illustre un exemple d’un procédé fonctionnel de génération de clés publique et privée mis en œuvre par tout dispositif électronique d’un système informatique conforme à l’invention ; - Figure 3 illustrates an example of a functional method for generating public and private keys implemented by any electronic device of a computer system conforming to the invention;
- la figure 4 illustre un exemple d’un procédé fonctionnel d’encapsulation de clé de session mis en œuvre par tout dispositif électronique d’un système informatique conforme à l’invention souhaitant partager ladite clé de session avec un autre dispositif électronique dudit système informatique ; - Figure 4 illustrates an example of a functional session key encapsulation method implemented by any electronic device of a computer system conforming to the invention wishing to share said session key with another electronic device of said computer system ;
- la figure 5 illustre un exemple d’un procédé fonctionnel de décapsulation de clé de session mis en œuvre par tout dispositif électronique d’un système informatique conforme à l’invention destinataire d’une clé de session encapsulée par autre dispositif électronique dudit système informatique. - Figure 5 illustrates an example of a functional session key decapsulation method implemented by any electronic device of a computer system conforming to the invention recipient of a session key encapsulated by another electronic device of said computer system .
Il est habituel de définir les notions de sécurité suivantes pour des KEMs : It is usual to define the following security concepts for KEMs:
- un KEM: = (AlgSetUp, AlgKeyGen, Encap, Decap) est - a KEM: = (AlgSetUp, AlgKeyGen, Encap, Decap) is
« (1 - ) correct » si vpk,sk eAlgKeyGen,Pr[Decap(sk, C) = K (C, I ) «- Encap(pk)] > 1 - A. En particulier, un KEM est « parfaitement correct » si A = 0 ; - un KEM: = (AlgSetUp, AlgKeyGen, Encap, Decap) est sûr contre les attaques à clair choisi (CPA-sûr) si pour tout algorithme distingueur s’exécutant en un temps polynomial, étant donnés {par, pk}, l’avantage de distinguer (C, K0) de (C, /<, ), où (C, Ko) <- Encap
Figure imgf000026_0001
est choisi de manière uniforme et indépendante de C, est négligeable ;
“(1 - ) correct” if vpk,sk eAlgKeyGen,Pr[Decap(sk, C) = K (C, I) «- Encap(pk)] > 1 - A. In particular, a KEM is “perfectly correct” if A = 0; - a KEM: = (AlgSetUp, AlgKeyGen, Encap, Decap) is safe against chosen-clear attacks (CPA-safe) if for any distinguishing algorithm executing in polynomial time, given {by, pk}, the advantage of distinguishing (C, K 0 ) from (C, /<, ), where (C, K o ) <- Encap
Figure imgf000026_0001
is chosen uniformly and independently of C, is negligible;
- Un KEM: = (AlgSetUp, AlgKeyGen, Encap, Decap) est sûr contre les attaques à chiffré choisi (CCA-sûr) si pour tout algorithme distingueur s’exécutant en un temps polynomial et ayant accès à un oracle de décapsulation et à {par, pk}, l’avantage de distinguer (C, K0) de (C, /<, ) où (C, Ko) <- Encap(pk) et où
Figure imgf000026_0002
est choisi de manière uniforme et indépendante de C est négligeable, tant que le distingueur se contraint à ne jamais demander à l’oracle de déchiffrer C.
- A KEM: = (AlgSetUp, AlgKeyGen, Encap, Decap) is safe against chosen cipher attacks (CCA-safe) if for any distinguishing algorithm running in polynomial time and having access to a decapsulation oracle and to { by, pk}, the advantage of distinguishing (C, K 0 ) from (C, /<, ) where (C, K o ) <- Encap(pk) and where
Figure imgf000026_0002
is chosen uniformly and independently of C is negligible, as long as the distinguisher constrains itself to never ask the oracle to decipher C.
Selon des caractéristiques particulières, on pourra réaliser l'un quelconque des dispositifs de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées succinctement exposés ci-dessus dans le contexte d'un circuit électronique. Depending on particular characteristics, any of the devices for generating parameters, generating keys, encapsulating (encrypting) keys and decapsulating (decrypting) encrypted keys briefly explained above in the context of an electronic circuit.
Un tel circuit électronique pourra, par exemple, être constitué par un microprocesseur, par un circuit programmé (également parfois nommé FPGA pour « Field Programmable Gate Array ») ou par une puce à logique câblée (également parfois nommée ASIC pour « Application Specific Integrated Circuit »). Such an electronic circuit could, for example, be made up of a microprocessor, a programmed circuit (also sometimes called FPGA for “Field Programmable Gate Array”) or a hardwired logic chip (also sometimes called ASIC for “Application Specific Integrated Circuit”). ").
L'invention vise également un moyen de stockage de données inamovible, ou partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées, conformes à l’invention. L'invention vise é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 comportant les instructions de programme qui, lorsqu’elles sont exécutées, par l’ordinateur ou le microprocesseur, elles provoquent la mise en œuvre d’un KEM conforme à l’invention. The invention also relates to an irremovable, or partially or completely removable, data storage means, comprising computer program code instructions for executing the steps of any of the methods of generating parameters, generating keys, encapsulation (encryption) of keys and decapsulation (decryption) of encrypted keys, in accordance with the invention. The invention also relates to a computer program downloadable from a network of communication and/or stored on a computer-readable medium and/or executable by a microprocessor comprising program instructions which, when executed by the computer or microprocessor, cause the implementation of a compliant KEM to the invention.
Ce programme d'ordinateur est remarquable en ce qu'il comprend des instructions pour l'exécution des étapes de l'un quelconque des procédés de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées exposés ci-dessus, lorsqu'il est exécuté sur un ordinateur ou dans un microprocesseur. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. This computer program is notable in that it includes instructions for carrying out the steps of any of the methods of parameter generation, key generation, key encapsulation (encryption) and decapsulation ( decryption) of encrypted keys exposed above, when executed on a computer or in a microprocessor. Other aspects and advantages of the invention will appear on reading the detailed description below of particular embodiments, given by way of non-limiting examples.
Nous allons illustrer à présent le concept de construction d'un système de KEM conforme à l'invention. We will now illustrate the concept of constructing a KEM system according to the invention.
Autrement dit, nous allons montrer comment construire l'algorithme qui sera utilisé pour traiter un bloc de données selon l’invention. On notera que le choix des fonctions ou valeurs numériques dans les exemples inclus vise essentiellement la simplicité de l'exposé, et ne prétend pas refléter des valeurs avantageuses sur le plan d'une mise en œuvre pratique de l'invention. In other words, we will show how to construct the algorithm which will be used to process a block of data according to the invention. It should be noted that the choice of functions or numerical values in the examples included is essentially aimed at simplicity of presentation, and does not claim to reflect advantageous values in terms of practical implementation of the invention.
Comme indiqué ci-dessus, la présente invention concerne également un système informatique comportant une pluralité de dispositifs électroniques communicants mettant en œuvre l'un quelconque des procédés de génération de paramètres, de génération de clés, d’encapsulation (chiffrement) de clés et de décapsulation (déchiffrement) de clés chiffrées décrits ci-dessus. As indicated above, the present invention also relates to a computer system comprising a plurality of communicating electronic devices implementing any of the methods of generating parameters, generating keys, encapsulating (encrypting) keys and decapsulation (decryption) of encrypted keys described above.
Comme l’indique la figure 1 , ce système informatique 1 comporte une pluralité de dispositifs électroniques 10-1 ,10-2,. ,.,10-g. De manière classique chaque dispositif électronique consiste en une instance d’un dispositif électronique 10 comportant une unité centrale de traitement 11 commandant par des signaux acheminés par un bus de communication symbolisé sur la figure 1 par des doubles flèches en traits simples, des éléments électroniques dont une mémoire de données 12 et une mémoire de programmes 14, lesdites mémoires 12 et 14 pouvant ne former qu’une seule et même entité physique. Un tel dispositif électronique 10 peut comporter un générateur de nombres aléatoires 13, ce dernier pouvant éventuellement former une seule et même entité physique avec ladite unité de traitement 11 . As shown in Figure 1, this computer system 1 comprises a plurality of electronic devices 10-1, 10-2,. ,.,10-g. Conventionally, each electronic device consists of an instance of an electronic device 10 comprising a central processing unit 11 controlling electronic elements including a data memory 12 and a program memory 14, said memories 12 and 14 can form only one and the same physical entity. Such an electronic device 10 may include a random number generator 13, the latter possibly forming a single physical entity with said processing unit 11.
On entend par « mémoire » toute mémoire informatique qu’elle soit volatile ou non. Une mémoire non volatile est une mémoire informatique dont la technologie conserve ses données en l’absence d’une alimentation en énergie électrique. Elle peut contenir des données résultant de saisies, de calculs, de mesures et/ou des instructions de programmes. Les principales mémoires non volatiles actuellement disponibles sont inscriptibles électriquement telles que la technologie EPROM (« Erasable Programmable Read-Only Memory », selon une terminologie anglo-saxonne) ou encore inscriptibles et effaçables électriquement telles que les technologies EEPROM (« Electrically-Erasable Programmable Read-Only Memory », selon une terminologie anglo-saxonne), flash, SSD (« Solid-State Drive », selon une terminologie anglo-saxonne), etc. Les mémoires non volatiles se distinguent des mémoires dites « volatiles » dont les données sont perdues en l’absence d’une alimentation électrique. Les principales mémoires volatiles actuellement disponibles exploitent les technologies RAM (« Random Access Memory » selon une terminologie anglo-saxonne ou encore nommée « mémoire vive »), DRAM (mémoire vive dynamique, nécessitant une réactualisation régulière), SRAM (mémoire vive statique nécessitant une telle réactualisation lors d’une sous-alimentation électrique), DPRAM ou VRAM (particulièrement adaptées à la vidéo), etc. By “memory” we mean any computer memory whether it is volatile or not. Non-volatile memory is a computer memory whose technology retains its data in the absence of an electrical energy supply. It may contain data resulting from inputs, calculations, measurements and/or program instructions. The main non-volatile memories currently available are electrically writable such as EPROM technology (“Erasable Programmable Read-Only Memory”, according to Anglo-Saxon terminology) or even electrically writable and erasable such as EEPROM (“Electrically-Erasable Programmable Read” technologies). -Only Memory”, according to Anglo-Saxon terminology), flash, SSD (“Solid-State Drive”, according to Anglo-Saxon terminology), etc. Non-volatile memories are distinguished from so-called “volatile” memories whose data is lost in the absence of a power supply. The main volatile memories currently available use RAM technologies (“Random Access Memory” according to Anglo-Saxon terminology or also called “random access memory”), DRAM (dynamic random access memory, requiring regular updating), SRAM (static random access memory requiring a such updating during a power shortage), DPRAM or VRAM (particularly suitable for video), etc.
Un dispositif électronique 10 comporte en outre des moyens de communication 15 avec le monde extérieur sous la forme d’une unité d'entrée et une unité de sortie. Lesdits moyens de communication 15 coopèrent avec l’unité de traitement 11 et assurent une communication de proximité sans fil ou filaire avec tout autre dispositif électronique dudit système informatique 1 . Pour fonctionner, c’est-à-dire pour que l’unité de traitement 11 mette en œuvre un procédé conforme à l’invention, un dispositif électronique 10 comporte généralement une source d’énergie électrique 16 sous la forme d’une ou plusieurs batteries par exemple. Une telle source d’énergie électrique 16 peut être interne ou externe audit dispositif électronique 10. L’unité de traitement 11 peut également comporter des moyens de pilotage 17 d'une interface homme-machine d’entrée et/ou de sortie 20. Dans tout le document, on entend par « interface homme-machine de sortie », tout dispositif, employé seul ou en combinaison, permettant de sortir ou délivrer une représentation graphique, haptique, sonore ou, plus généralement, perceptible par l'humain. Une telle interface homme-machine de sortie peut consister de manière non exhaustive en un ou plusieurs écrans, haut-parleurs ou autres moyens alternatifs adaptés. On entend par « interface homme-machine d’entrée », un clavier informatique, un dispositif de pointage, un écran tactile, un microphone ou, plus généralement, toute interface agencée pour traduire une gestuelle ou une consigne émise par un humain en données de commande ou de paramétrage. Avantageusement, les interfaces homme-machine d'entrée et de sortie peuvent ne constituer qu'une seule et même entité physique. An electronic device 10 further comprises means of communication 15 with the outside world in the form of an input unit and an output unit. Said communication means 15 cooperate with the processing unit 11 and ensure wireless or wired proximity communication with any other electronic device of said computer system 1. To operate, that is to say so that the processing unit 11 implements a method according to the invention, an electronic device 10 comprises generally a source of electrical energy 16 in the form of one or more batteries for example. Such a source of electrical energy 16 may be internal or external to said electronic device 10. The processing unit 11 may also include means 17 for controlling a man-machine input and/or output interface 20. In throughout the document, the term “man-machine output interface” means any device, used alone or in combination, making it possible to output or deliver a graphic, haptic, sound or, more generally, perceptible representation by humans. Such an output man-machine interface may consist, in a non-exhaustive manner, of one or more screens, speakers or other suitable alternative means. The term “man-machine input interface” means a computer keyboard, a pointing device, a touch screen, a microphone or, more generally, any interface arranged to translate a gesture or an instruction issued by a human into data. command or configuration. Advantageously, the input and output man-machine interfaces can constitute only one and the same physical entity.
Un tel système informatique 1 peut être adapté en chargeant dans la mémoire de programmes 14 de chaque dispositif électronique 10-1 ,10- 2,...,10-g un programme d'ordinateur P comportant des instructions pour provoquer, lors de leurs exécutions, la mise en œuvre d’un procédé de génération de paramètres, de génération de clés, d’encapsulation et/ou de décapsulation selon l'invention. 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 interprétée, partiellement ou entièrement compilée, ou dans n'importe quelle autre forme souhaitable. Such a computer system 1 can be adapted by loading into the program memory 14 of each electronic device 10-1, 10-2,...,10-g a computer program P comprising instructions to cause, during their executions, the implementation of a method for generating parameters, generating keys, encapsulating and/or decapsulating according to the invention. This program may 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 interpreted, partially or fully compiled form, or in n any other desirable shape.
Comme indiqué précédemment, pour pouvoir échanger un secret via un canal de communication non sécurisé et résistant aux attaques par un ordinateur quantique, l’un des dispositifs électroniques du système informatique 1 décrit en lien avec la figure 1 , par exemple le dispositif électronique 10-1 , met en œuvre un procédé 110 de génération de paramètres par via l’exécution d’un algorithme AlgSetllp évoqué précédemment. Le dispositif électronique 10-1 pourra être le futur destinataire R d’un secret K qui lui sera communiqué par un dispositif électronique émetteur s dudit système informatique 1 , tel que le dispositif électronique 10-2, ou bien consister en n’importe quel autre dispositif électronique 10-2, ...,10-g) dudit système 1. As indicated previously, to be able to exchange a secret via an insecure communication channel and resistant to attacks by a quantum computer, one of the electronic devices of the computer system 1 described in connection with the figure 1, for example the electronic device 10- 1, implements a method 110 for generating parameters by via the execution of an AlgSetllp algorithm mentioned previously. The electronic device 10-1 could be the future recipient R of a secret K which will be communicated to it by an electronic transmitter device s of said computer system 1, such as the electronic device 10-2, or else consist of any other electronic device 10-2, ..., 10-g) of said system 1.
La figure 2 décrit ainsi un organigramme fonctionnel d’un tel procédé 110 mis en œuvre par un dispositif électronique d’un système informatique 1 , tel que le dispositif électronique 10-1 destinataire R d’un secret. Figure 2 thus describes a functional flowchart of such a method 110 implemented by an electronic device of a computer system 1, such as the electronic device 10-1 recipient R of a secret.
Un tel procédé 110 prend en entrée un paramètre de sécurité k et comporte une étape 112 de génération des paramètres par nécessaires à la mise d’un œuvre d’un KEM conforme à l’invention. Un tel procédé peut comporter une étape préalable 111 de production d’une première donnée aléatoire ou pseudo-aléatoire PP par le générateur de nombres aléatoires ou pseudo-aléatoires 13, tout ou partie desdits paramètres par pouvant être produits à partir de ladite première donnée aléatoire ou pseudo-aléatoire PP. Ledit procédé 110 peut comporter une étape 113 pour provoquer l’émission, par les moyens de communication 15, d’un message MPAR à destination de tout ou partie des dispositifs électroniques 10-2, ... ,10-g du système informatique 1 véhiculant lesdits paramètres par. A réception d’un tel message MPAR, lesdits dispositifs électroniques 10-2, ... ,10-g enregistrent les valeurs desdits paramètres par dans leurs mémoires de données 12 respectives. Such a method 110 takes as input a security parameter k and includes a step 112 of generating the parameters necessary for implementing a work of a KEM conforming to the invention. Such a method may include a preliminary step 111 of producing a first random or pseudo-random data item PP by the random or pseudo-random number generator 13, all or part of said parameters being able to be produced from said first random data item or pseudo-random PP. Said method 110 may include a step 113 to cause the transmission, by the communication means 15, of an MPAR message to all or part of the electronic devices 10-2, ..., 10-g of the computer system 1 conveying said parameters by. On receipt of such an MPAR message, said electronic devices 10-2, ..., 10-g record the values of said parameters in their respective data memories 12.
La figure 3 décrit un organigramme fonctionnel d’un procédé 120 de génération de clés mis en œuvre par tout dispositif électronique d’un système informatique 1 , tel que le dispositif électronique 10-1 destinataire R d’un secret, via l’exécution d’un algorithme AlgKeyGen évoqué précédemment. Figure 3 describes a functional flowchart of a key generation method 120 implemented by any electronic device of a computer system 1, such as the electronic device 10-1 recipient R of a secret, via the execution of 'an AlgKeyGen algorithm mentioned previously.
Un tel procédé 120 comporte une étape 121 de production d’une deuxième donnée aléatoire ou pseudo-aléatoire SS par le générateur de nombres aléatoires ou pseudo-aléatoires 13 et une étape 122 de génération des clés {sk, pk} à l’aide de ladite deuxième donnée aléatoire ou pseudoaléatoire SS . Ledit procédé 120 comporte alors une étape 123 d’enregistrement dans la mémoire de données 12 du dispositif électronique R, 10-1 , mettant en œuvre ledit procédé 120, des valeurs desdites clés {sk, pk}. Ledit procédé 120 comporte en outre une étape 124 pour provoquer l’émission d’un message pour provoquer l’émission d’un message MPK à destination de tout ou partie des dispositifs électroniques 10-2, ... ,10-g du système informatique 1 , ledit message MPK véhiculant ladite clé publique pk . A réception d’un tel message, lesdits dispositifs électroniques 10-2,..., 10-g enregistrent la valeur de ladite clé publique pk dans leurs mémoires de données 12 respectives, avantageusement dans une structure de données KR associant ces dernières à des identifiants ID1 , ..., IDg caractérisant les dispositifs électroniques ayant publié leurs clés. Such a method 120 comprises a step 121 of producing a second random or pseudo-random data item SS by the random or pseudo-random number generator 13 and a step 122 of generating the keys {sk, pk} using said second random or pseudorandom data SS. Said method 120 then comprises a step 123 of recording in the data memory 12 of the electronic device R, 10-1, implementing said method 120, values of said keys {sk, pk}. Said method 120 further comprises a step 124 for causing the transmission of a message to cause the transmission of an MPK message to all or part of the electronic devices 10-2, ..., 10-g of the system computer 1, said MPK message conveying said public key pk. On receipt of such a message, said electronic devices 10-2,..., 10-g record the value of said public key pk in their respective data memories 12, advantageously in a data structure KR associating the latter with identifiers ID1, ..., IDg characterizing the electronic devices having published their keys.
L’invention prévoit, lorsque les procédés 110 et 120 sont mis en œuvre consécutivement par un même dispositif électronique dudit système informatique 1 , que les paramètres par qui ont été produits à l’étape 112 du procédé 110 puissent être véhiculés conjointement avec la clé publique pk par le message MPK dont l’émission par les moyens de communication 15, est provoquée par l’étape 124 du procédé 120. The invention provides, when the methods 110 and 120 are implemented consecutively by the same electronic device of said computer system 1, that the parameters by which were produced in step 112 of the method 110 can be conveyed jointly with the public key pk by the MPK message, the transmission of which by the communication means 15 is caused by step 124 of the method 120.
La figure 4 décrit un organigramme fonctionnel d’un procédé 130 d’encapsulation d’un secret K mis en œuvre par un dispositif électronique d’un système informatique 1 , tel que le dispositif électronique S , 10-2, via l’exécution d’un algorithme Encap évoqué précédemment. Un tel dispositif électronique S, 10-2 peut souhaiter adresser ledit secret K sous la forme d’un chiffré C à destination du seul dispositif électronique R , 10-1 ayant mis en œuvre le procédé 120 tel que décrit précédemment en lien avec la figure 3. Figure 4 describes a functional flowchart of a method 130 for encapsulating a secret K implemented by an electronic device of a computer system 1, such as the electronic device S, 10-2, via the execution of 'an Encap algorithm mentioned previously. Such an electronic device S, 10-2 may wish to address said secret K in the form of a cipher C intended for the sole electronic device R, 10-1 having implemented the method 120 as described previously in connection with the figure 3.
Un procédé 130 comporte une étape 131 de production d’une troisième donnée aléatoire ou pseudo-aléatoire MM par le générateur de nombres aléatoires ou pseudo-aléatoires 13 et une étape 133 de génération d’un chiffré C d’un secret K que l’on souhaite produire et ainsi encapsuler pour être communiqué de manière sécurisée, à l’aide de ladite troisième donnée aléatoire ou pseudo-aléatoire MM, des paramètres par et de la clé publique pk du dispositif électronique destinataire /?, 10-1 dudit chiffré. Pour cela, ledit procédé 130 comporte une étape 132, préalable à l’étape 133, de lecture de la mémoire de données 12 pour connaître la valeur de ladite clé publique pk dudit destinataire R, 10-1 . Ledit procédé 130 comporte alors une étape 134 de déclenchement de l’émission d’un message MC véhiculant ledit chiffré C à destination du dispositif électronique R , 10-1 du système informatique 1 véhiculant ledit chiffré. En l’espèce, selon l’exemple illustré par la figure 1 , un tel procédé 130 peut être mis en œuvre par le dispositif électronique 10-2 agissant comme expéditeur S dudit chiffré C à l’attention du dispositif électronique R, 10-1 désigné par la sélection 132 de la clé publique pk de ce dernier comme seul destinataire dudit chiffré C et apte à pouvoir le déchiffrer comme nous allons l’étudier en lien avec la figure 5. A method 130 comprises a step 131 of producing a third random or pseudo-random data MM by the generator of random or pseudo-random numbers 13 and a step 133 of generating a cipher C of a secret K that the we wish to produce and thus encapsulate to be communicated in a secure manner, using said third random or pseudo-random data MM, parameters by and the public key pk of the recipient electronic device /?, 10-1 of said cipher. For this, said method 130 comprises a step 132, prior to step 133, of reading the data memory 12 to know the value of said public key pk of said recipient R, 10-1. Said method 130 then comprises a step 134 of triggering the transmission of a message MC conveying said cipher C to the electronic device R, 10-1 of the computer system 1 conveying said cipher. In this case, according to the example illustrated in Figure 1, such a method 130 can be implemented by the electronic device 10-2 acting as sender S of said encrypted code C to the attention of the electronic device R, 10-1 designated by the selection 132 of the public key pk of the latter as the sole recipient of said cipher C and capable of being able to decrypt it as we will study it in connection with Figure 5.
Ladite figure 5 décrit ainsi un organigramme fonctionnel d’un procédé 140 de déchiffrement du chiffré C ou de décapsulation d’un secret K mis en œuvre par un dispositif électronique d’un système informatique 1 , tel que le dispositif électronique R, 10-1 , via l’exécution d’un algorithme Decap évoqué précédemment. Un tel procédé 140 est mis en œuvre en réponse à la réception d’un message MC véhiculant un chiffré C produit par un dispositif électronique tiers selon un procédé d’encapsulation ou de chiffrement 130 décrit précédemment en lien avec la figure 4. Said figure 5 thus describes a functional flowchart of a method 140 for deciphering the cipher C or decapsulating a secret K implemented by an electronic device of a computer system 1, such as the electronic device R, 10-1 , via the execution of a Decap algorithm mentioned previously. Such a method 140 is implemented in response to the reception of an MC message conveying a cipher C produced by a third-party electronic device according to an encapsulation or encryption method 130 described previously in connection with Figure 4.
Un tel procédé 140 comporte une première étape 141 de lecture dans la mémoire de données 12 des valeurs respectives de la clé publique pk et de la clé secrète sk préalablement produites à l’étape 122 d’un procédé 120 d’ores- et-déjà décrit en lien avec la figure 3. Lesdites clés publique pk et secrète sk étant propres au dispositif électronique destinataire R , 10-1 du chiffré C , lesdites clés sont respectivement notées pk et sk sur la figure 5. Ladite étape 141 , utilise également les paramètres par, transmis aux étapes 112 et/ou 123. Une telle étape 141 consiste en outre à lire dans ladite mémoire de données 12 les valeurs des paramètres par préalablement produits par un procédé de génération de paramètres tel que le procédé 110, d’ores et déjà décrit en lien avec la figure 2 et mis en œuvre par le présent dispositif électronique R, 10-1 ou par un dispositif électronique tiers. Un procédé 140 comporte également une étape 142 de production dudit secret K que l’on souhaite tirer du chiffré C réceptionné. Une telle étape 142 de décapsulation est réalisée à partir dudit chiffré C, des paramètres par et des clés publique pk et secrète sk du dispositif électronique réceptionnaire R (10-1 ) dudit chiffré C. En l’espèce, selon l’exemple illustré par la figure 1 , un tel procédé 140 peut être mis en œuvre par le dispositif électronique 10-1 agissant comme destinataire R dudit chiffré C adressé par le dispositif électronique 10-2 agissant comme expéditeur s. Such a method 140 comprises a first step 141 of reading from the data memory 12 the respective values of the public key pk and the secret key sk previously produced in step 122 of a method 120 already described in connection with Figure 3. Said public keys pk and secret sk being specific to the recipient electronic device R, 10-1 of the cipher C, said keys are respectively denoted pk and sk in Figure 5. Said step 141 also uses the parameters by, transmitted to steps 112 and/or 123. Such a step 141 further consists of reading from said data memory 12 the values of the parameters by previously produced by a parameter generation method such as method 110, now and already described in connection with Figure 2 and implemented by the present electronic device R, 10-1 or by a third-party electronic device. A method 140 also includes a step 142 of producing said secret K which we wish to extract from the code C received. Such a decapsulation step 142 is carried out from said cipher C, the parameters by and the public keys pk and secret sk of the receiving electronic device R (10-1) of said cipher C. In this case, according to the example illustrated by Figure 1, such a method 140 can be implemented by the electronic device 10-1 acting as recipient R of said cipher C addressed by the electronic device 10-2 acting as sender s.
La totalité des cryptosystèmes à base de SàD se pose comme but de retrouver le vecteur
Figure imgf000033_0005
dans la formule ou dans une formule
Figure imgf000033_0004
équivalente modulo un certain module.
All cryptosystems based on SàD aim to find the vector
Figure imgf000033_0005
in the formula or in a formula
Figure imgf000033_0004
equivalent modulo a certain module.
Le concept inventif général dévie de cette architecture en introduisant au moins deux SàDs notés
Figure imgf000033_0006
Figure imgf000033_0007
agissent comme un SàD couplé à un « SàD mirroir ». L’expéditeur génère
Figure imgf000033_0008
au hasard et calcule au moins deux
Figure imgf000033_0009
sommes C et K pour une certaine fonction (x) dont les paramètres sont inconnus de lui. Lesdites deux sommes étan
Figure imgf000033_0003
Figure imgf000033_0002
The general inventive concept deviates from this architecture by introducing at least two SàDs denoted
Figure imgf000033_0006
Figure imgf000033_0007
act as a SàD coupled with a “mirror SàD”. The sender generates
Figure imgf000033_0008
randomly and calculates at least two
Figure imgf000033_0009
are C and K for a certain function (x) whose parameters are unknown to him. The said two sums were
Figure imgf000033_0003
Figure imgf000033_0002
La somme K sert de secret partagé. La somme C est le chiffré véhiculant K. The sum K serves as a shared secret. The sum C is the cipher conveying K.
On notera que, contrairement aux KEM à SàD classiques, ici ce n’est pas
Figure imgf000033_0010
mais bien K qui est transférée. Le destinataire R (10-1 ) applique à C un procédé tel que
Figure imgf000033_0001
Note that, unlike classic SàD KEMs, here it is not
Figure imgf000033_0010
but K which is transferred. The recipient R (10-1) applies to C a process such that
Figure imgf000033_0001
On notera également que différents peuvent résulter en un même K et que dans la pratique tel est effectivement le cas. Ainsi nous voyons que le cœur de l’invention réside en la mise au point de fonctions et ayant la propriété requise plus haut. It should also be noted that different Ks can result in the same K and that in practice this is indeed the case. Thus we see that the heart of the invention lies in the development of functions and having the property required above.
Décrivons quelques exemples de tels procédés pouvant être combinés entre eux. Selon un premier exemple dit « calculs modulaires » et noté P1, si l’on pose vt = mod q alors, sous réserve du respect d’une condition de taille sur les vt et/ou sous réserve de divulguer q, la fonction
Figure imgf000034_0001
consiste à réduire C modulo q et diviser le résultat par q modulo q . L’ajout d’une constante, à savoir v permet, si le poids de Hamming de est un
Figure imgf000034_0006
Figure imgf000034_0004
paramètre fixé, d’ajouter plus de variabilité dans
Figure imgf000034_0005
La soustraction de deux tels vt éliminera q2 et annulera son effet mais si une telle opération est combinée et emboîtée dans les briques
Figure imgf000034_0002
suivantes, son effet se trouvera préservé. On notera également que rien n’empêche d’emboîter plusieurs calculs modulaires, modulo différents q les uns dans les autres. Par exemple posons vt = q'1 q1si+q2 mod q) + q'2 mod q'. mod q' .
Figure imgf000034_0003
Let us describe some examples of such processes that can be combined with each other. According to a first example called "modular calculations" and denoted P 1 , if we set v t = mod q then, subject to compliance with a size condition on the v t and/or subject to disclosing q, the function
Figure imgf000034_0001
consists of reducing C modulo q and dividing the result by q modulo q. The addition of a constant, namely v allows, if the Hamming weight of is a
Figure imgf000034_0006
Figure imgf000034_0004
fixed parameter, to add more variability in
Figure imgf000034_0005
Subtracting two such v t will eliminate q 2 and cancel its effect but if such an operation is combined and nested within the bricks
Figure imgf000034_0002
following periods, its effect will be preserved. It should also be noted that nothing prevents us from nesting several modular calculations, modulo different q, into each other. For example let v t = q' 1 q 1 s i +q 2 mod q) + q' 2 mod q'. mod q'.
Figure imgf000034_0003
Ceci permet, par soustraction de 2q'2 modulo q' et par division par modulo q' de « dépiler » la quantité mod q) mod q'. This allows, by subtraction of 2q' 2 modulo q' and by division by modulo q' to "pop" the quantity mod q) mod q'.
On voit alors que, si l’on a n termes dans une telle addition, le choix nq < q' permet de retrouver la quantité mod q) dans Z. Une soustraction de la constante 2q2 modulo q et une division modulaire par q± donnera la somme modulo q ou la somme dans Z si la somme des st ne dépasse pas q. Il est évident à l’homme de l’art que différents étages peuvent ainsi être emboîtés. We then see that, if we have terms in such an addition, the choice nq <q' makes it possible to find the quantity mod q) in Z. A subtraction of the constant 2q 2 modulo q and a modular division by q ± will give the sum modulo q or the sum in Z if the sum of the s t does not exceed q. It is obvious to those skilled in the art that different stages can thus be fitted together.
Selon un deuxième exemple dit « Concaténation avec un aléa » et noté prenons où les rt sont des nombres aléatoires, et la notation
Figure imgf000034_0008
Figure imgf000034_0009
désigne une suite de u = log2 bits égaux à 0. En ajoutant au maximum n tels vt on obtiendra la quantité ce qui permet de
Figure imgf000034_0007
couper la partie haute du nombre et retrouver la somme des
According to a second example called “Concatenation with a random” and noted let us take where the r t are random numbers, and the notation
Figure imgf000034_0008
Figure imgf000034_0009
denotes a sequence of u = log 2 bits equal to 0. By adding to the maximum n such v t we will obtain the quantity which allows us to
Figure imgf000034_0007
cut the upper part of the number and find the sum of the
Examinons un troisième exemple dit « Couper et permuter » et noté Φ з. On note également que les st peuvent être découpés en deux ou plus trains de bits st[j de taille égale ou inégale, par exemple st = st [2] |sf [1] . Ces trains de bits peuvent être permutés selon une permutation connue de R (le dispositif électronique 10-1 en figure 1 ) mais pas de S (le dispositif électronique 10-2 en figure 1 ). Dans l’exemple illustratif donné ici, on peut par exemple prendre vt = st [1] | [2] ce qui revient à inverser les poids hauts et les poids bas de la quantité (en prenant garde à réserver entre sf [l] et sf [2] un « tampon » de u = [log2 bits égaux à 0 destinés à absorber la retenue de l’addition). En ajoutant au maximum n tels
Figure imgf000035_0001
on obtiendra la quantité :
Let's look at a third example called “Cut and swap” and denoted Φ з . We also note that the s t can be divided into two or more bit streams s t [j of equal or unequal size, for example s t = s t [2] |s f [1]. These bit streams can be permuted according to a known permutation of R (the device electronic device 10-1 in Figure 1) but not S (the electronic device 10-2 in Figure 1). In the illustrative example given here, we can for example take v t = st [1] | [2] which amounts to inverting the high weights and low weights of the quantity (taking care to reserve between s f [l] and s f [2] a “buffer” of u = [log 2 bits equal to 0 intended to absorb the withholding of the bill). By adding at most n such
Figure imgf000035_0001
we will obtain the quantity:
Cette quantité peut être facilement découpée et « remise dans le bon ordre » afin de former la quantité This quantity can be easily cut up and “put back in the correct order” to form the quantity
Enfin, examinons un quatrième exemple dit « Combinaisons linéaires à clé interne » et noté 4 . Prenons
Figure imgf000035_0002
où les rf sont des nombres aléatoires. En ajoutant au maximum n tels
Figure imgf000035_0003
on obtiendra la quantité
Figure imgf000035_0005
Finally, let's look at a fourth example called “Linear combinations with internal key” and denoted 4 . Let's take
Figure imgf000035_0002
where the r f are random numbers. By adding at most n such
Figure imgf000035_0003
we will get the quantity
Figure imgf000035_0005
Ce qui permet de couper la partie haute du nombre et retrouver la somme des
Figure imgf000035_0006
Which makes it possible to cut the upper part of the number and find the sum of the
Figure imgf000035_0006
Notons que des constantes confidentielles , peuvent venir
Figure imgf000035_0007
agrémenter la relation : la rendant ainsi encore plus
Figure imgf000035_0008
complexe.
Note that confidential constants can come
Figure imgf000035_0007
enhance the relationship: thus making it even more
Figure imgf000035_0008
complex.
Toutes ces méthodes (Pt pour construire les vt sont associables entre elles et peuvent donner lieu à une multitude de fonctions , , de manière évidente à l’homme de l’art. La définition de
Figure imgf000035_0004
< > fait partie de la clé privée de R (par exemple, le dispositif électronique 10-1 en figure 1 ). Cette définition pouvant être encodée sous la forme d’un nombre binaire noté skext vu comme une extension de sk décrivant le paramétrage et la composition de différentes transformées (P^ fa aboutissant à l’encodage de dans
Figure imgf000035_0009
Figure imgf000035_0010
pouvant, à titre non limitatif, être choisies parmi les transformées que nous venons de voir. Dans la suite, des fonctions <P, (p particulières seront choisies à titre illustratif et non limitatif.
All these methods (P t to construct the v t are associable with each other and can give rise to a multitude of functions, in a manner obvious to those skilled in the art. The definition of
Figure imgf000035_0004
<> is part of the private key of R (for example, electronic device 10-1 in Figure 1). This definition can be encoded in the form of a binary number denoted sk ext seen as an extension of sk describing the parameterization and composition of different transforms (P^ fa leading to the encoding of in
Figure imgf000035_0009
Figure imgf000035_0010
which can, without limitation, be chosen from among the transforms that we have just seen. In the following, particular functions <P, (p will be chosen for illustrative and non-limiting purposes.
Décrivons un premier mode de réalisation d’un KEM conforme à l’invention au travers d’un des agencements respectifs des procédés 110, 120, 130 et 140 évoqués précédemment en lie avec les figures 2 à 5. Ce premier mode est dit est sûr contre les attaques à clair choisi (CPA-sûr), nous le nommerons KEMCPA. Let us describe a first embodiment of a KEM conforming to the invention through one of the respective arrangements of the methods 110, 120, 130 and 140 mentioned previously in connection with Figures 2 to 5. This first mode is said to be safe against selected clear attacks (CPA-safe), we will call it KEMCPA.
Selon ce premier mode de réalisation d’un KEM conforme à l’invention, les paramètres par produits par un procédé de génération de paramètres 110 consiste simplement à fixer les tailles des clés utilisées par les procédés de génération des clés 120, d’encapsulation 130 et de décapsulation 140 mis en œuvre dans un système informatique tel que le système 1 selon la figure 1 . Plus précisément, lesdits paramètres par consistent en un entier n choisi ou prédéterminé de sorte que k < n, k étant un paramètre de sécurité. Selon un mode de réalisation préférée, n sera choisi de telle manière que n > 3A4k. Les valeurs particulièrement avantageuses pour le paramètre k sont 128, 192 et 256. Les valeurs de n qui leur correspondent étant respectivement 440, 664, 880. Afin de faciliter la mise en œuvre informatique ou matérielle nous recommandons de prendre la valeur n approximée à l’octet le plus proche. According to this first embodiment of a KEM according to the invention, the parameters produced by a parameter generation method 110 simply consist of fixing the sizes of the keys used by the key generation 120 and encapsulation 130 methods. and decapsulation 140 implemented in a computer system such as system 1 according to FIG. More precisely, said parameters consist of an integer n chosen or predetermined so that k < n, k being a security parameter. According to a preferred embodiment, n will be chosen such that n > 3A4k. The particularly advantageous values for the parameter k are 128, 192 and 256. The values of n which correspond to them being respectively 440, 664, 880. In order to facilitate the IT or hardware implementation we recommend taking the value n approximated to nearest byte.
Le procédé 120 de génération des clés publique pk et secrète sk, peut se résumer par la formule {sk,pk} = AlgGenCPA( , k). Ce procédé 120 mis en œuvre par tout dispositif électronique 10-1 à 10-g dudit système informatique 1 , comporte une étape 121 de production d’une donnée aléatoire ou pseudoaléatoire SS par le générateur de nombres aléatoires ou pseudo-aléatoires 13. Une telle donnée aléatoire ou pseudo-aléatoire SS permet de dériver les éléments p, q, d, .,w . The method 120 for generating the public keys pk and secret keys sk can be summarized by the formula {sk,pk} = AlgGen CPA (, k). This method 120 implemented by any electronic device 10-1 to 10-g of said computer system 1, comprises a step 121 of producing random or pseudo-random data SS by the random or pseudo-random number generator 13. Such random or pseudo-random data SS makes it possible to derive the elements p, q, d, .,w.
Ainsi, à titre d’exemple de réalisation, une telle étape 121 consiste en les opérations suivantes : Thus, as an example of an embodiment, such a step 121 consists of the following operations:
$ $
- (p, q) ^ Pn x Pk ;
Figure imgf000036_0001
- (p, q) ^ P n x P k ;
Figure imgf000036_0001
L’étape 122 de production du couple de clés secrète et publique {sk, pk} peut consister en la mise en œuvre des opérations suivantes :
Figure imgf000036_0002
mod p ; mod q ;
Figure imgf000037_0008
sk «- [p, d,p}
Figure imgf000037_0007
Step 122 of producing the pair of secret and public keys {sk, pk} may consist of implementing the following operations:
Figure imgf000036_0002
mod p; mod q;
Figure imgf000037_0008
sk «- [p, d, p}
Figure imgf000037_0007
L’étape 121 a été décrite avec p premier de n bits. En variante, p pourrait être choisi tel que PGCD(d, p) = 1 de sorte que d soit inversible. Step 121 was described with p prime of n bits. Alternatively, p could be chosen such that GCD(d, p) = 1 so that d is invertible.
Par ailleurs, exprimée ci-dessus,
Figure imgf000037_0006
peut être réalisée par la mise en œuvre d’une routine « RandSumVec » consistant avantageusement en une version simplifiée de l’algorithme de Kraemer divulgué par N.A. Smith, et R.W. Tromble, « Sampling uniformly from the unit simplex », Johns Hopkins University, Tech. Rep, vol. 29, 2004.
Furthermore, expressed above,
Figure imgf000037_0006
can be carried out by the implementation of a “RandSumVec” routine advantageously consisting of a simplified version of the Kraemer algorithm disclosed by NA Smith, and RW Tromble, “Sampling uniformly from the unit simplex”, Johns Hopkins University, Tech . Rep, vol. 29, 2004.
Une telle routine peut ainsi consister en initialisant tout d’abord le vecteur de sorte que Puis, ladite routine consiste à mettre
Figure imgf000037_0004
Figure imgf000037_0005
en œuvre les opérations suivantes :
Figure imgf000037_0002
Such a routine can thus consist of first initializing the vector so that Then, said routine consists of putting
Figure imgf000037_0004
Figure imgf000037_0005
implement the following operations:
Figure imgf000037_0002
- tant que ledit vecteur ne contient pas n éléments distincts
Figure imgf000037_0003
faire : selon le critère
Figure imgf000037_0001
- as long as said vector does not contain n distinct elements
Figure imgf000037_0003
do: according to the criterion
Figure imgf000037_0001
A titre d’exemple illustratif, un tel procédé 120 (AlgGenCPA) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000037_0009
Figure imgf000038_0004
As an illustrative example, such a process 120 (AlgGen CPA ) could be expressed in Mathematica language as follows:
Figure imgf000037_0009
Figure imgf000038_0004
La routine « RandSumVec » pourrait quant à elle être exprimée en langage Mathematica comme suit :
Figure imgf000038_0005
Selon ce premier mode de réalisation d’un KEMCPA conforme à l’invention, un procédé 130 d’encapsulation d’un secret - que l’on peut résumer par la formulation {C, K} = EncapCPA( , k, pk) - mis en œuvre par tout dispositif électronique d’un système informatique 1 , tel que le dispositif électronique S, 10-2, comporte une étape 131 de production d’une donnée aléatoire ou pseudo-aléatoire MM par le générateur de nombres aléatoires ou pseudoaléatoires 13. Une telle donnée MM permet la dérivation d’un vecteur de n bits aléatoires tels que
Figure imgf000038_0001
The “RandSumVec” routine could be expressed in Mathematica language as follows:
Figure imgf000038_0005
According to this first embodiment of a KEMCPA in accordance with the invention, a method 130 for encapsulating a secret - which can be summarized by the formulation {C, K} = Encap CPA (, k, pk) - implemented by any electronic device of a computer system 1, such as the electronic device S, 10-2, comprises a step 131 of producing random or pseudo-random data MM by the random or pseudo-random number generator 13. Such MM data allows the derivation of a vector of n random bits such that
Figure imgf000038_0001
Puisque la clé publique pk (lue à l’étape 132) du dispositif électronique destinataire du secret K encapsulé sous la forme d’un chiffré C s’exprime sous la forme (cf. l’étape 122 de génération des clés {sk, pk] du
Figure imgf000038_0002
procédé 110 précédemment décrit), l’étape 133 de génération dudit chiffré C et du secret K est telle que
Figure imgf000038_0003
Since the public key pk (read in step 132) of the electronic device recipient of the secret K encapsulated in the form of a cipher C is expressed in the form (cf. step 122 of generating the keys {sk, pk ] of
Figure imgf000038_0002
method 110 previously described), step 133 of generating said cipher C and secret K is such that
Figure imgf000038_0003
A titre d’exemple illustratif, un tel procédé 130 (EncapCPA) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000038_0006
Figure imgf000039_0002
As an illustrative example, such a process 130 (Encap CPA ) could be expressed in Mathematica language as follows:
Figure imgf000038_0006
Figure imgf000039_0002
Selon ce premier mode de réalisation d’un KEMCPA conforme à l’invention, le procédé 140 de déchiffrement ou de décapsulation d’un secret K, à partir duquel une clé de session pourra être créée - procédé 140 que l’on peut résumer par la formulation K = DecapCPA( , k, sk, pk, C) - mis en œuvre par tout dispositif électronique d’un système informatique 1 , tel que le dispositif électronique R, 10-1 en réponse à la réception d’un message véhiculant un chiffré C e N < n(p - 1) < n2n produit par un dispositif électronique tiers dudit système informatique 1 selon un procédé d’encapsulation ou de chiffrement 130 décrit précédemment, comporte une première étape 141 de lecture dans la mémoire de données 12 des valeurs respectives de la clé publique pk = et de la clé secrète sk = [p, d,p} préalablement produites à
Figure imgf000039_0001
l’étape 122 du procédé de génération des clés 120 d’ores et déjà décrit en lien avec la figure 3, ainsi que des paramètres par consistant en les entiers n et k tels que, avantageusement n > 3A4k.
According to this first embodiment of a KEMCPA in accordance with the invention, the method 140 of decryption or decapsulation of a secret K, from which a session key can be created - method 140 which can be summarized by the formulation K = Decap CPA (, k, sk, pk, C) - implemented by any electronic device of a computer system 1, such as the electronic device R, 10-1 in response to receipt of a message conveying an encrypted C e N < n(p - 1) < n2 n produced by a third-party electronic device of said computer system 1 according to an encapsulation or encryption method 130 described previously, comprises a first step 141 of reading in the memory of data 12 of the respective values of the public key pk = and the secret key sk = [p, d, p} previously produced at
Figure imgf000039_0001
step 122 of the key generation method 120 already described in connection with FIG. 3, as well as parameters consisting of the integers n and k such that, advantageously n > 3A4k.
L’étape 142 dudit procédé 140 consistant en le recouvrement dudit secret K que l’on souhaite tirer du chiffré C réceptionné consiste en les opérations K <- pb mod q sachant que b <- Cd mod p. Step 142 of said method 140 consisting of the recovery of said secret K which one wishes to derive from the received ciphertext C consists of the operations K <- pb mod q knowing that b <- Cd mod p.
A titre d’exemple illustratif, un tel procédé 140 (DecapCPA) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000039_0003
As an illustrative example, such a process 140 (Decap CPA ) could be expressed in Mathematica language as follows:
Figure imgf000039_0003
Il est facile de vérifier que ce KEMCPA (consistant en les procédés 110, 120, 130 et 140 décrits ci-avant) selon ce premier mode de réalisation conforme à l’invention est parfaitement correct. En effet, il suffit de vérifier que b mod q.
Figure imgf000040_0004
It is easy to verify that this KEMCPA (consisting of processes 110, 120, 130 and 140 described above) according to this first embodiment in accordance with the invention is perfectly correct. Indeed, it is enough to verify that b mod q.
Figure imgf000040_0004
A cette fin, développons la définition de b tel que b =
Figure imgf000040_0003
Figure imgf000040_0002
To this end, let us expand the definition of b such that b =
Figure imgf000040_0003
Figure imgf000040_0002
Il est maintenant possible de vérifier que ce qui permet d’obtenir la valeurIt is now possible to verify that what makes it possible to obtain the value
Ceci permet de compléter la vérification
Figure imgf000040_0001
This allows the verification to be completed
Figure imgf000040_0001
A titre d’exemple illustratif, une telle vérification de correction pourrait être exprimée en langage Mathematica comme suit :
Figure imgf000040_0005
As an illustrative example, such a correctness check could be expressed in Mathematica language as follows:
Figure imgf000040_0005
Ce premier mode de réalisation d’un KEM conforme à l’invention est sûr contre les attaques à clair choisi (CPA-sûr). This first embodiment of a KEM in accordance with the invention is secure against selected clear attacks (CPA-secure).
Les performances du procédé ainsi obtenu sont les suivantes : la taille de la clé privée sk est 2n + k = 2.291n bits, la taille de la clé publique est n(n + k) + k = 2.291 2 + 0.291n bits, le chiffré a pour taille n + log2 n bits et la clé K partagée entre R (10-1 ) et S (10-2) est de taille k = 0.291n bits. The performances of the process thus obtained are as follows: the size of the private key sk is 2n + k = 2.291n bits, the size of the public key is n(n + k) + k = 2.291 2 + 0.291n bits, the encrypted has size n + log 2 n bits and the key K shared between R (10-1) and S (10-2) is of size k = 0.291n bits.
La réalisation de l’invention présente l’avantage d’être réalisable à l’aide d’opérations arithmétiques très classiques. Par exemple, la multiplication modulaire peut s’effectuer à l’aide de l’algorithme de Montgomery (décrit dans la publication P.L. Montgomery, « Modular multiplication without trial division », Mathematics of computation, vol. 44, n° 170, pp. 519-521 , 1985.) et/ou inclure les constantes précalculées tel que décrit dans la publication D. Naccache, D. M'raïhi et D. Raphael!, (1995). « Can Montgomery parasites be avoided? A design methodology based on key and cryptosystem modifications ». Designs, Codes, and Cryptography, 5(1 ), pp. 73-80. Avantageusement, on pourrait également sans risque pour la sécurité, utiliser un module dont la forme facilite l’arithmétique modulaire ou encore effectuer l’addition des entiers très rapidement et en parallèle à l’aide de la stratégie de représentation d’entiers par résidus dits RNS (« Residue Number System »), par exemple, telle décrite dans la publication D. Naccache, D. M'Raïhi, W. Wolfowicz et A. di Porto, « Are Crypto-Accelerators Really Inevitable? 20 Bit Zero-Knowledge in Less than a Second on Simple 8-bit Microcontrollers », Advances in Cryptology - {EUROCRYPT} '95, International Conference on the Theory and Application of Cryptographic Techniques, Saint-Malo, France, May 21 -25, 1995, Proceeding, Lecture Notes in Computer Science, vol. 921 , pp. 404-409, Springer, 1995. The implementation of the invention has the advantage of being achievable using very traditional arithmetic operations. For example, modular multiplication can be carried out using the Montgomery algorithm (described in the publication PL Montgomery, “Modular multiplication without trial division”, Mathematics of computation, vol. 44, no. 170, pp. 519-521, 1985.) and/or include precalculated constants as described in publication D. Naccache, D. M'raïhi and D. Raphael!, (1995). “Can Montgomery parasites be avoided? A design methodology based on key and cryptosystem modifications”. Designs, Codes, and Cryptography, 5(1), pp. 73-80. Advantageously, one could also, without risk for security, use a module whose form facilitates modular arithmetic or even perform the addition of integers very quickly and in parallel using the strategy of representing integers by so-called residues. RNS (“Residue Number System”), for example, as described in the publication D. Naccache, D. M’Raïhi, W. Wolfowicz and A. di Porto, “Are Crypto-Accelerators Really Inevitable? 20 Bit Zero-Knowledge in Less than a Second on Simple 8-bit Microcontrollers", Advances in Cryptology - {EUROCRYPT} '95, International Conference on the Theory and Application of Cryptographic Techniques, Saint-Malo, France, May 21 -25, 1995, Proceeding, Lecture Notes in Computer Science, vol. 921, pp. 404-409, Springer, 1995.
De plus, afin de renforcer davantage la sécurité de l’invention il est proposé le mode de réalisation suivant : Selon ce mode de réalisation particulièrement avantageux d’un KEM conforme à invention, les algorithmes EncapCPA et DecapCPA, c’est-à-dire les procédés 130 et 140 précédemment évoqués, ne retournent pas directement K mais plutôt K' = 0WF(/<), O WF (%) étant une fonction à sens unique. Une application utilisant la clé, par exemple un client de courriel chiffrant et déchiffrant les courriels échangés par des utilisateurs, peut alors se servir de K' comme clé de chiffrement finale. L’idée derrière cette protection supplémentaire est de détruire les propriétés algébriques restantes de K par la fonction à sens unique O WF (%). Furthermore, in order to further strengthen the security of the invention, the following embodiment is proposed: According to this particularly advantageous embodiment of a KEM conforming to the invention, the Encap CPA and Decap CPA algorithms, i.e. i.e. the methods 130 and 140 previously mentioned, do not directly return K but rather K' = 0WF(/<), O WF (%) being a one-way function. An application using the key, for example an email client encrypting and decrypting emails exchanged by users, can then use K' as the final encryption key. The idea behind this additional protection is to destroy the remaining algebraic properties of K by the one-way function O WF (%).
L’invention prévoit également d’adapter un tel KEM pour qu’il soit sûr contre les attaques à chiffré choisi (CCA-sûr) ; nous le nommerons KEMCCA. Selon ce deuxième exemple de mise en œuvre, est appliquée une transformée classique telle que celle divulguée dans le document A.W. Dent, ed. K. G. Paterson, « A Designer's Guide to KEMs », Cryptography and Coding, 9th IMA International Conference, Cirencester, UK, December 16-18, 2003, Proceedings, Lecture Notes in Computer Science, vol. 2898, pp. 133-151 , Springer, 2003 ou, alternativement, celle proposée dans le document E. Fujisaki et T. Okamoto, « How to Enhance the Security of Public-Key Encryption at Minimum Cost », Public Key Cryptography, Second International Workshop on Practice and Theory in Public Key Cryptography, PKC '99, Kamakura, Japan, March 1 -3, 1999, Proceedings, pp. 53-68, 1999. The invention also provides for adapting such a KEM so that it is secure against selected cipher attacks (CCA-secure); we will name it KEMCCA. According to this second example of implementation, a classic transform is applied such as that disclosed in the document AW Dent, ed. KG Paterson, “A Designer's Guide to KEMs”, Cryptography and Coding, 9th IMA International Conference, Cirencester, UK, December 16-18, 2003, Proceedings, Lecture Notes in Computer Science, vol. 2898, p. 133-151, Springer, 2003 or, alternatively, that proposed in the document E. Fujisaki and T. Okamoto, “How to Enhance the Security of Public-Key Encryption at Minimum Cost”, Public Key Cryptography, Second International Workshop on Practice and Theory in Public Key Cryptography, PKC '99, Kamakura, Japan, March 1 -3, 1999, Proceedings, pp. 53-68, 1999.
Les étapes 110 et 120 (AlgGenCPA) pour produire respectivement les paramètres généraux par et le couple de clés secrète et publique {sk, pk} telles qu’évoquées en lien avec le précédent mode de réalisation sont inchangées. En d’autres mots AlgGenCPA: = AlgGenCCA . En revanche, les étapes d’encapsulation 130 et de décapsulation 140 sont adaptées. A ce titre, le générateur de nombres aléatoires 13 des dispositifs électroniques d’un système informatique conforme à l’invention, tel que le système 1 selon la figure 1 , sont agencés pour mettre en œuvre un procédé dit « à graine » PRNG pour générer de manière pseudo-aléatoire les aléas nécessaires pour la mise en œuvre du procédé 130 d’encapsulation de clé de session. Un tel procédé dit « à graine » peut être tiré par exemple du document de D.J. Bernstein, « The ChaCha family of stream ciphers », https://cr.yp.to/chacha.html, 2008 ou encore du document de J. O'Connor, J. -Ph. Aumasson, S. Neves et Z. Wilcox- O'Hearn, « BLAKE3: one function, fast everywhere », 2021 , https://blake.io. Steps 110 and 120 (AlgGen CPA ) to respectively produce the general parameters by and the pair of secret and public keys {sk, pk} as mentioned in connection with the previous embodiment are unchanged. In other words AlgGen CPA : = AlgGen CCA . On the other hand, the encapsulation 130 and decapsulation 140 steps are adapted. As such, the random number generator 13 of the electronic devices of a computer system according to the invention, such as the system 1 according to FIG. 1, are arranged to implement a so-called “seed” PRNG method to generate in a pseudo-random manner the hazards necessary for the implementation of the session key encapsulation method 130. Such a so-called “seed” process can be taken for example from the document by DJ Bernstein, “The ChaCha family of stream ciphers”, https://cr.yp.to/chacha.html, 2008 or even from the document by J. O'Connor, J. -Ph. Aumasson, S. Neves and Z. Wilcox-O'Hearn, “BLAKE3: one function, fast everywhere”, 2021, https://blake.io.
A titre d’exemple, le procédé 130 tel que décrit en lien avec la figure 4 - que l’on peut résumer sous la formulation {G, K} = EncapCCA( , k, pk) - peut consister en celui (EncapCPA) d’ores et déjà décrit en lien avec le premier mode, exception faite que l’étape 131 de production d’une donnée pseudo-aléatoireBy way of example, the method 130 as described in connection with Figure 4 - which can be summarized under the formulation {G, K} = Encap CCA (, k, pk) - can consist of that (Encap CPA ) already described in connection with the first mode, except that step 131 of producing pseudo-random data
MM consiste en outre a initialiser EncapCPA. PRNG. graine «- KCCA <- {0,l}k. MM also consists of initializing Encap CPA . PRNG. seed «- K CCA <- {0,l} k .
L’étape 133 consiste à produire non pas directement le chiffré C qui sera in fine transmis mais une composante C de celui-ci telle que C
Figure imgf000042_0001
Step 133 consists of producing not directly the cipher C which will ultimately be transmitted but a component C of it such that C
Figure imgf000042_0001
Ladite étape 133 consiste en outre à produire une deuxième composante C2 «- K ® KCCA dudit chiffré C. A l’issue de la mise en œuvre du procédé 130 la future clé de session partagée est KCCA et le chiffré C transmis est C-. = (Clt C2). A titre d’exemple illustratif, un tel procédé 130 (EncapCPA) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000043_0007
Said step 133 further consists of producing a second component C 2 «- K ® K CCA of said cipher C. At the end of the implementation of the method 130 the future shared session key is K CCA and the cipher C transmitted is VS-. = (C lt C 2 ). As an illustrative example, such a process 130 (Encap CPA ) could be expressed in Mathematica language as follows:
Figure imgf000043_0007
Un procédé 140 de décapsulation du secret KCCA - que l’on peut résumer par la formulation CCA - peut alors consister à partir dudit chiffré à mettre en œuvre une étape 142, telle que décrite
Figure imgf000043_0004
en lien avec le premier mode de réalisation à partir des paramètres généraux par = { , k} , de la clé secrète , de la clé publique pk =
Figure imgf000043_0002
et de la composante de C recouvrer la valeur du secret K par
Figure imgf000043_0001
un simple appel à K <- DecapCPA( , k, sk, pk, C . Ladite étape 142 est alors adaptée pour calculer
Figure imgf000043_0005
et ainsi recouvrer le nombre aléatoire / CCA. Selon ce mode de réalisation une telle étape 142 doit comporter un test pour vérifier la cohérence de KCCA par la mise en œuvre d’un traitement 133 identique à celui mis œuvre par le dispositif émetteur du chiffré C, le résultat de ce traitement devant correspondre à l’ensemble constitué par la composante et la clé K . Dans la négative, la valeur de KCCA n’est pas
Figure imgf000043_0003
confirmée et/ou une erreur est générée.
A process 140 for decapsulating the secret K CCA - which can be summarized by the formulation CCA - can then consist of said cipher to implement a step 142, as described
Figure imgf000043_0004
in connection with the first embodiment from the general parameters by = {, k}, from the secret key, from the public key pk =
Figure imgf000043_0002
and the component of C recover the value of the secret K by
Figure imgf000043_0001
a simple call to K <- Decap CPA (, k, sk, pk, C. Said step 142 is then adapted to calculate
Figure imgf000043_0005
and thus recover the random number / CCA . According to this embodiment, such a step 142 must include a test to verify the consistency of K CCA by implementing a processing 133 identical to that implemented by the device transmitting the cipher C, the result of this processing must correspond to the set constituted by the component and the key K. If not, the value of K CCA is not
Figure imgf000043_0003
confirmed and/or an error is generated.
A titre d’exemple illustratif, un tel procédé 140 (DecapCCA) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000043_0006
Ce qui permet une exécution telle que:
Figure imgf000044_0007
As an illustrative example, such a process 140 (Decap CCA ) could be expressed in Mathematica language as follows:
Figure imgf000043_0006
Which allows an execution such as:
Figure imgf000044_0007
Les performances du procédé ainsi obtenu sont les suivantes : la taille de la clé privée sk est 2n + k = 2.291n bits, la taille de la clé publique est n(n + k) + k = 2.291 2 + 0.291n bits, le chiffré a pour taille n + log2 n + k bits et la clé K partagée entre R, 10-1 et S, 10-2 est de taille k = 0.291n bits. The performances of the process thus obtained are as follows: the size of the private key sk is 2n + k = 2.291n bits, the size of the public key is n(n + k) + k = 2.291 2 + 0.291n bits, the encrypted has size n + log 2 n + k bits and the key K shared between R, 10-1 and S, 10-2 is of size k = 0.291n bits.
Par ailleurs, une pratique commune en cryptographie consiste à diminuer l’espace mémoire nécessaire à la sauvegarde de données et à la sauvegarde de paramètres, notés ici
Figure imgf000044_0001
en les « générant à la volée ».
Furthermore, a common practice in cryptography consists of reducing the memory space necessary for saving data and saving parameters, noted here
Figure imgf000044_0001
by “generating them on the fly”.
Une telle génération à la volée nécessite que les données générées à la volée n’aient pas de propriétés mathématiques particulières. Par exemple, dans le cas où les
Figure imgf000044_0002
sont publiques les
Figure imgf000044_0003
peuvent être par exemple, des morceaux successifs de bits, prélevés par sur une constante telle que n = 3,14159 •••.
Such on-the-fly generation requires that the data generated on-the-fly does not have any special mathematical properties. For example, in the case where the
Figure imgf000044_0002
are public
Figure imgf000044_0003
can be for example, successive pieces of bits, taken from a constant such as n = 3.14159 •••.
Il est également commun de définir dans un tel cas ôi-= HAS H (i, constante) , où la « constante » (possiblement publique) apparaissant dans HASH est une valeur numérique permettant de personnaliser les
Figure imgf000044_0004
Lorsque les données
Figure imgf000044_0005
sont des données confidentielles (typiquement des clés privées), il est habituel d’avoir recours à une fonction à sens unique à clé utilisée ainsi : 5f:=OWF(Lgraine) où « graine » est une donnée confidentielle.
It is also common to define in such a case ôi-= HAS H (i, constant), where the “constant” (possibly public) appearing in HASH is a numerical value allowing the customization of the
Figure imgf000044_0004
When the data
Figure imgf000044_0005
are confidential data (typically private keys), it is usual to use a one-way key function used as follows: 5 f :=OWF(Lseed) where “seed” is confidential data.
Dans le cadre de l’invention, nous noterons génériquement de telles constructions par <5) ;= Expand (i, %). In the context of the invention, we will generically denote such constructions by <5);= Expand (i, %).
De tels procédés permettent la génération
Figure imgf000044_0006
d’une manière qui requiert beaucoup moins de mémoire que celle nécessaire à la sauvegarde littérale des
Figure imgf000045_0001
Ainsi, ce procédé permet un décroissement considérable de la taille des données
Figure imgf000045_0002
ainsi générées.
Such processes allow the generation
Figure imgf000044_0006
in a way that requires much less memory than needed for saving literal
Figure imgf000045_0001
Thus, this process allows a considerable reduction in the size of the data
Figure imgf000045_0002
thus generated.
A ce titre, l’invention prévoit un troisième mode de réalisation pour réduire la taille des clés secrète et publique {sk, pk] produites à l’étape 120 d’un KEM conforme à l’invention, nous le nommerons CompKEMCPA. Selon ce troisième mode de réalisation, les étapes d’encapsulation 130 ( EncapCPA ) et de décapsulation 140 (DecapCPA) telles qu’évoquées en lien avec le premier mode de réalisation peuvent demeurer inchangées. As such, the invention provides a third embodiment for reducing the size of the secret and public keys {sk, pk] produced in step 120 of a KEM conforming to the invention, we will call it CompKEM CPA . According to this third embodiment, the encapsulation steps 130 (Encap CPA ) and decapsulation 140 (Decap CPA ) as mentioned in connection with the first embodiment can remain unchanged.
L’effet de ce mode de réalisation sur la taille de la clé est drastique : si les graines utilisées sont chacune de k' bits, pour KEMCPA et KEMCCA la taille de sk tombe à k bits alors que la taille de pk est réduite à k' + n(k + 2 log2 ri) =k”+n(0.291n + 2 log2 n). Dans la pratique on prendra k’ = k. The effect of this embodiment on the size of the key is drastic: if the seeds used are each of k' bits, for KEM CPA and KEM CCA the size of sk falls to k bits while the size of pk is reduced at k' + n(k + 2 log 2 ri) =k”+n(0.291n + 2 log 2 n). In practice we will take k' = k.
L’étape 120 de production des clés secrète et publique {sk, pk} mise en œuvre par le premier dispositif électronique R, 10-1 - que l’on peut résumer par la formulation {sk,pk} = CompAlgGenCPA( , k) consiste à : Step 120 of producing the secret and public keys {sk, pk} implemented by the first electronic device R, 10-1 - which can be summarized by the formulation {sk, pk} = CompAlgGen CPA (, k ) consists of:
- générer une deuxième donnée aléatoire SS par le générateur de nombres aléatoires 13 et dériver de ladite deuxième donnée aléatoire SS deux graines (graine_pk, graine_sk)- generate a second random data SS by the random number generator 13 and derive from said second random data SS two seeds (seed_pk, seed_sk)
$ $
«- [0, 2k - l]2; on notera qu’il s’agit ici de la description la plus générale puisque graine_pk pourrait ne pas être issue de l’aléa SS mais représenter une constante fixe telle que n = 3,1415 ••• ou être dérivé de la donnée PP ; «- [0.2 k - l] 2 ; note that this is the most general description since seed_pk could not come from the SS hazard but represent a fixed constant such that n = 3.1415 ••• or be derived from the PP data;
- produire la clé secrète sk «- [p, d, p} où p e Pn, d e Z* et /z e Z* étant dérivés de manière déterministe de graine_sk ; - produce the secret key sk «- [p, d, p} where pe P n , from Z* and /ze Z* being derived deterministically from seed_sk;
- produire la clé publique
Figure imgf000045_0003
o le vecteur v' e [1, 2n - l]n est dérivé de manière déterministe de graine_pk ; o q est un nombre premier de k bits dérivé de manière déterministe de graine_pk ; étant produits selon le procédé
Figure imgf000046_0001
suivant :
Figure imgf000046_0002
- produce the public key
Figure imgf000045_0003
o the vector v' e [1, 2 n - l] n is derived deterministically from seed_pk; oq is a k-bit prime number derived deterministically from seed_pk; being produced according to the process
Figure imgf000046_0001
following :
Figure imgf000046_0002
- pour 1 < i < n faire : - for 1 < i < n do:
• tant que rafraîchir ) mod q
Figure imgf000046_0003
• as refresh ) mod q
Figure imgf000046_0003
- la clé
Figure imgf000046_0004
compressible
Figure imgf000046_0005
- the key
Figure imgf000046_0004
compressible
Figure imgf000046_0005
Il est recommandé d’éviter de prendre pour zf la plus petite valeur telle que (v't + zt)d mod p < p/n car un tel choix engendrerait une fuite d’information : à savoir que les valeurs inférieures à zt ne sont pas solutions de cette inégalité. Ainsi, il est recommandé de prendre un zt dans l’intervalle [0, 2], ou, pour une sécurité encore plus renforcée dans un intervalle [ ] pour T > 2. Pour le choix T = 2 le procédé CompAlgGenCPA pourrait échouer avec une probabilité r( ) définie ainsi : est négligeable car avec la plus petite valeur de k recommandée
Figure imgf000046_0007
pour l’usage de la présente invention, à savoir k = 128, on obtient n = 440 et donc r(440) 2-189. Ainsi, nous sommes assurés de trouver un bon vecteur permettant de représenter à l’aide de bits au lieu de n2 bits.
Figure imgf000046_0009
Figure imgf000046_0006
Figure imgf000046_0008
It is recommended to avoid taking for z f the smallest value such that (v't + zt)d mod p < p/n because such a choice would generate an information leak: namely that values lower than z t are not solutions of this inequality. Thus, it is recommended to take a z t in the interval [0, 2 ], or, for even greater security in an interval [ ] for T > 2. For the choice T = 2 the CompAlgGen CPA process could fail with a probability r( ) defined as follows: is negligible because with the smallest recommended value of k
Figure imgf000046_0007
for the use of the present invention, namely k = 128, we obtain n = 440 and therefore r(440) 2 -189 . Thus, we are guaranteed to find a good vector to represent using bits instead of n 2 bits.
Figure imgf000046_0009
Figure imgf000046_0006
Figure imgf000046_0008
A titre d’exemple illustratif, un tel procédé CompKEMCPA pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000046_0010
Figure imgf000047_0001
As an illustrative example, such a CompKEM CPA process could be expressed in Mathematica language as follows:
Figure imgf000046_0010
Figure imgf000047_0001
L’exécution d’un tel code imprimera effectivement « vrai » :
Figure imgf000047_0002
Running such code will effectively print "true":
Figure imgf000047_0002
Ce code est donné à titre illustratif car la fonction de hachage du logiciel Mathematica retourne un haché de taille limitée, ainsi, l’exemple illustratif cessera de fonctionner pour des grandes valeurs de n. Par souci de simplicité, l’exemple génère des clés compressibles et non compressées. Une clé compressible étant une clé pouvant être aisément compressée. This code is given for illustrative purposes because the Mathematica software hash function returns a hash of limited size, so the illustrative example will stop working for large values of n. For simplicity, the example generates compressible and uncompressed keys. A compressible key being a key that can be easily compressed.
On notera également qu’au lieu d’utiliser une recherche exhaustive, il est possible d’avoir recours à l’algorithme LLL afin de répartir l’information modulaire et résoudre l’équation wt = dÇv't + zf) mod p pour les inconnues wit Zi sous les contraintes wt < [p/n et zt < n2 . Il s’agit d’une méthode alternative de compression de la clé publique dont la mise en œuvre sera évidente à l’homme de l’art. Ce procédé s’étendant aisément pour T > 2. Les formules d’expansion de sk, évidentes à l’homme de l’art, sont :
Figure imgf000048_0004
Note also that instead of using an exhaustive search, it is possible to use the LLL algorithm in order to distribute the modular information and solve the equation w t = dÇv't + z f ) mod p for the unknowns w it Zi under the constraints w t < [p/n and z t < n 2 . This is an alternative method of compressing the public key, the implementation of which will be obvious to those skilled in the art. This process easily extends for T > 2. The sk expansion formulas, obvious to those skilled in the art, are:
Figure imgf000048_0004
<- {fp (Expand(0, graine_sk)), fd (Expand(l, graine_sk)), (Expand(2, graine_sk))} Les fonctions fp,fd,f dérivent les paramètres [p, d,p} de graine_sk. <- {f p (Expand(0, graine_sk)), f d (Expand(l, graine_sk)), (Expand(2, graine_sk))} The functions f p ,f d ,f derive the parameters [p, d ,p} of seed_sk.
Les formules d’expansion de pk sont plus délicates techniquement :
Figure imgf000048_0003
The pk expansion formulas are more technically delicate:
Figure imgf000048_0003
= {Expand (0, graine_pk), CompressV(graine_pk), non compressé] où l’algorithme auxiliaire CompressV(graine_pk) requiert l’explication suivante : Nous commençons par dériver Expand (l,graine_pk) de
Figure imgf000048_0010
graine_pk (qui est publique par exemple, l’identité de R (10-1 )). Il est également possible d’utiliser pour une constante commune à tous les
Figure imgf000048_0011
utilisateurs telle que •• ou générer graine_pk à partir de la
Figure imgf000048_0012
donnée PP.
= {Expand (0, seed_pk), CompressV(seed_pk), uncompressed] where the auxiliary algorithm CompressV(seed_pk) requires the following explanation: We start by deriving Expand (l,seed_pk) from
Figure imgf000048_0010
seed_pk (which is public for example, the identity of R (10-1)). It is also possible to use for a constant common to all
Figure imgf000048_0011
users such as •• or generate seed_pk from the
Figure imgf000048_0012
PP data.
Cependant, ce faisant, nous rencontrons un problème : si la valeur arbitraire de est utilisée en lieu et place rétro-cal eu lés
Figure imgf000048_0009
vont être de taille pleine, i.e. potentiellement supérieures à [p/n et ne vont donc pas satisfaire la contrainte
Figure imgf000048_0001
.
However, in doing so we encounter a problem: if the arbitrary value of is used instead of retro-cal eu les
Figure imgf000048_0009
will be full size, ie potentially greater than [p/n and will therefore not satisfy the constraint
Figure imgf000048_0001
.
Afin de contourner cette difficulté, nous allons utiliser à la place des originaux, en introduisant des courts facte
Figure imgf000048_0008
urs correctifs tels que
Figure imgf000048_0007
Expand (
Figure imgf000048_0002
mod p.
In order to get around this difficulty, we will use the originals instead, by introducing short facts
Figure imgf000048_0008
our fixes such as
Figure imgf000048_0007
Expand (
Figure imgf000048_0002
mod p.
Ainsi nous pouvons nous assurer que pour tout i = 1, ... n, wt < p/n, en absorbant l’entropie manquante dans
Figure imgf000048_0006
La clé publique compressée pk, sera donc composée ainsi : pk =
Figure imgf000048_0005
Thus we can ensure that for all i = 1, ... n, w t < p/n, by absorbing the missing entropy in
Figure imgf000048_0006
The compressed public key pk will therefore be composed as follows: pk =
Figure imgf000048_0005
Un quatrième mode de réalisation confère une amélioration notable de la bande passante du procédé inventif. Il consiste en une généralisation à plusieurs vecteurs à la fois. L’algorithme résultant sera noté mKEMCPA = {mAIgSetUp, mAlgGenCPA, mEncapCPA, mDecapCPA] où la lettre « m » ajoutée avant le nom de l’algorithme est l’acronyme du mot « multiple ». A cette fin, un nouveau paramètre entier t > 1 est introduit dans la description. Lorsque t = 1 l’algorithme mKEMCPA devient identique à KEMCPA. Il est clair à l’homme de l’art que la même transformée permettant de transformer KEMCPA et KEMCCA permet de transformer mKEMCPA en un algorithme mKEMCCA de niveau CCA. A fourth embodiment provides a notable improvement in the bandwidth of the inventive method. It consists of a generalization to several vectors at the same time. The resulting algorithm will be denoted by mKEM CPA = {mAIgSetUp, mAlgGen CPA , mEncap CPA , mDecap CPA ] where the letter "m" added before the name of the algorithm is the acronym for the word "multiple". To this end, a new integer parameter t > 1 is introduced in the description. When t = 1 the mKEM CPA algorithm becomes identical to KEM CPA . It is clear to those skilled in the art that the same transform making it possible to transform KEM CPA and KEM CCA makes it possible to transform mKEM CPA into a CCA level mKEM CCA algorithm.
En mode CPA, ce mode de réalisation a pour caractéristiques une clé privée sk de taille 2tn + t2k = t(2 + 0.291t) bits, une clé publique pk de taille n2 + nkt + k = 2(l + 0.291t) + 0.291n, une clé échangée de taille kt = 0.291nt bits et un chiffré de taille n + log2 bits. In CPA mode, this embodiment has the characteristics of a private key sk of size 2tn + t 2 k = t(2 + 0.291t) bits, a public key pk of size n 2 + nkt + k = 2 (l + 0.291 t) + 0.291n, an exchanged key of size kt = 0.291nt bits and an encrypted key of size n + log 2 bits.
Pour cela, la présente invention fait appel à une matrice M carrée de dimensions t x t. Une telle matrice M doit avoir un déterminant non-nul. La manière évidente de générer de telles matrices M consiste à les choisir au hasard jusqu’à ce qu’une matrice M à déterminant non-nul soit obtenue. For this, the present invention uses a square matrix M of dimensions t x t. Such a matrix M must have a non-zero determinant. The obvious way to generate such matrices M is to choose them randomly until a matrix M with non-zero determinant is obtained.
Puisque dans la présente invention, la dimension t de la matrice est très faible (typiquement t < 4 ) un tel procédé s’avère acceptable, adapté et efficace. Since in the present invention, the dimension t of the matrix is very small (typically t < 4), such a method proves acceptable, suitable and effective.
A titre d’exemple illustratif, un tel procédé de génération de matrices pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000049_0002
As an illustrative example, such a matrix generation process could be expressed in Mathematica language as follows:
Figure imgf000049_0002
Un exemple d’implémentation d’un tel quatrième mode de réalisation mKEMCPA peut être décrit de manière algorithmique par les opérations suivantes, relatives à la production 120 (mAlgGenCPA) du couple des clés {sk,pk}, consistant à générer :
Figure imgf000049_0001
une matrice M inversible de dimension t x t d’éléments de
Figure imgf000050_0001
An example of implementation of such a fourth embodiment mKEM CPA can be described algorithmically by the following operations, relating to the production 120 (mAlgGen CPA ) of the pair of keys {sk,pk}, consisting of generating:
Figure imgf000049_0001
an invertible matrix M of dimension txt of elements of
Figure imgf000050_0001
Des techniques permettant produire le vecteur , sont décrites
Figure imgf000050_0004
ultérieurement dans le présent document.
Techniques for producing the vector are described
Figure imgf000050_0004
later in this document.
Le procédé d’encapsulation 130 (mEncapCPA(n, k, t,pk)) du secret
Figure imgf000050_0003
selon ce quatrième mode de réalisation diffère de EncapCPA en ce que ledit ne clé publique pk = mod q] où
Figure imgf000050_0008
Figure imgf000050_0002
a été généré aléatoirement et le chiffré est C
The encapsulation method 130 (mEncap CPA (n, k, t, pk)) of the secret
Figure imgf000050_0003
according to this fourth embodiment differs from Encap CPA in that said public key pk = mod q] where
Figure imgf000050_0008
Figure imgf000050_0002
was generated randomly and the cipher is C
Le procédé de décapsulation 140 (mDecapCPA(n, k, t, sk,pk, C)) du secret —
Figure imgf000050_0005
prend en entrée une clé publique pk une clé secrète chiffré C e N < n(p - 1) < n2n . L’étape 142 dudit
Figure imgf000050_0006
The decapsulation process 140 (mDecap CPA (n, k, t, sk,pk, C)) of the secret —
Figure imgf000050_0005
takes as input a public key pk an encrypted secret key C e N < n(p - 1) < n2 n . Step 142 of said
Figure imgf000050_0006
Afin de clarifier le fonctionnement de mKEMCPA nous allons expliquer pourquoi mKEMCPA est parfaitement correct. In order to clarify how mKEM CPA works we will explain why mKEM CPA is perfectly correct.
Nous souhaitons vérifier que
Figure imgf000050_0007
A cette fin, nous allons développer
Figure imgf000051_0001
et vérifier que, ce faisant, nous obtenons bien M ■
Figure imgf000051_0002
Figure imgf000051_0003
We would like to verify that
Figure imgf000050_0007
To this end, we will develop
Figure imgf000051_0001
and check that, in doing so, we indeed obtain M ■
Figure imgf000051_0002
Figure imgf000051_0003
Il reste donc à démontrer que
Figure imgf000051_0004
Figure imgf000051_0005
It therefore remains to be demonstrated that
Figure imgf000051_0004
Figure imgf000051_0005
Ces opérations sont correctes grâce à la contrainte imposée sur djVt mod pj permettant aux valeurs de retomber dans Z. These operations are correct thanks to the constraint imposed on djVt mod pj allowing the values to fall back into Z.
En lien avec le procédé 120 (mAlgGenCPA) produisant le couple des clés {sk,pk}, examinons différentes réalisations possibles pour produire vW. Ainsi, il importe de décrire la manière dont ladite composante vW de la clé publique pk peut être générée. A la différence du premier mode de réalisation d’un KEM conforme à l’invention (KEMCPA), lorsque t >
Figure imgf000051_0006
doit être trouvé durant la génération des clés. Quand t = 1, la valeur de vW est dédite de
Figure imgf000051_0007
or dans le cas de mKEMCPA, l’élément
Figure imgf000051_0008
doit être déterminé avant le calcul de wW. Le souci induit par cette modification dans l’ordre des opérations est que maintenant les vt sont intrinsèquement non-aléatoires étant donnée les contraintes additionnelles qui leurs sont simultanément imposées. Ainsi, il est important de contrer cet effet adverse et garantir que les vt ont une entropie élevée. Évidemment, un choix de t élevé rendra la génération des
Figure imgf000051_0009
plus lente.
In connection with method 120 (mAlgGen CPA ) producing the pair of keys {sk,pk}, let us examine different possible realizations to produce vW. Thus, it is important to describe the way in which said component vW of the public key pk can be generated. Unlike the first embodiment of a KEM according to the invention (KEM CPA ), when t >
Figure imgf000051_0006
must be found during key generation. When t = 1, the value of vW is deducted from
Figure imgf000051_0007
or in the case of mKEM CPA , the element
Figure imgf000051_0008
must be determined before calculating wW. The concern induced by this modification in the order of operations is that now the v t are intrinsically non-random given the additional constraints which are simultaneously imposed on them. Thus, it is important to counter this adverse effect and ensure that the v t have high entropy. Obviously, a choice of high t will make the generation of
Figure imgf000051_0009
slower.
Un premier exemple de réalisation de la production du vecteur
Figure imgf000051_0010
noté GenV(t,n,p[fL dM) peut être décrit d’une manière algorithmique par la table suivante :
Figure imgf000052_0002
A first example of carrying out the production of the vector
Figure imgf000051_0010
denoted GenV(t,n,p[ f L dM) can be described algorithmically by the following table:
Figure imgf000052_0002
A titre d’exemple illustratif, un tel procédé Gen pourrait
Figure imgf000052_0001
être exprimé en langage Mathematica comme suit :
Figure imgf000053_0002
As an illustrative example, such a Gen process could
Figure imgf000052_0001
be expressed in Mathematica language as follows:
Figure imgf000053_0002
L’exécution d’un tel code imprimera effectivement « vrai » :
Figure imgf000053_0001
Running such code will effectively print "true":
Figure imgf000053_0001
Ce qui permet de tester l’ensemble des étapes de l’algorithme ainsi :
Figure imgf000053_0003
Figure imgf000054_0002
This makes it possible to test all the steps of the algorithm as follows:
Figure imgf000053_0003
Figure imgf000054_0002
L’exécution d’un tel code imprimera effectivement « vrai » :
Figure imgf000054_0003
Running such code will effectively print "true":
Figure imgf000054_0003
On notera que cette procédure de recherche de clés est facilement parallélisable et peut tirer avantage de n processeurs pour accélérer la recherche d’un facteur n. En effet, chaque vt peut être confié à un processeur séparé et généré indépendamment des autres. Cette remarque s’applique également à la procédure décrite dans le deuxième exemple de réalisation de la production de rW qui suit. Selon un deuxième mode de réalisation de la production
Figure imgf000054_0001
la recherche exhaustive peut être considérablement abaissée en enchaînant plusieurs étapes illustrées ci-après. Puisque ce mode de réalisation permet le respect de la contrainte de taille sur quatre éléments, on pourra aussi avantageusement utiliser cette variante pour générer des clés n’exposant pas la donnée q (ce mode de réalisation sera décrit ultérieurement) pour t = 2, réunissant ainsi à la fois la sécurité accrue de la variante n’exposant pas q et la bande passante accrue de la variante t = 2.
Note that this key search procedure is easily parallelizable and can take advantage of n processors to accelerate the search by a factor n. Indeed, each v t can be entrusted to a separate processor and generated independently of the others. This remark also applies to the procedure described in the second example of carrying out the production of rW which follows. According to a second embodiment of the production
Figure imgf000054_0001
the exhaustive search can be considerably reduced by chaining several steps illustrated below. Since this embodiment allows compliance with the size constraint on four elements, we can also advantageously use this variant to generate keys not exposing the data q (this embodiment will be described later) for t = 2, thus combining both the increased security of the variant not exposing q and the increased bandwidth of the t = 2 variant.
Pour ce faire, on débute par une génération classique de premiers
Figure imgf000055_0001
To do this, we start with a classic generation of first
Figure imgf000055_0001
On commence par garantir la condition modulo p4 par construction, en prenant un w4 aléatoire tel que w4 , on rétro-calcule v = mod P-L puis on détermine w2 = vd2 mod p2. On retire aléatoirement w4 jusqu’à obtenir un . We start by guaranteeing the condition modulo p 4 by construction, by taking a random w 4 such that w 4 , we back-calculate v = mod PL then we determine w 2 = vd 2 mod p 2 . We randomly remove w 4 until we obtain a .
On peut remarquer que si l’on augmente v de quelques unités u, cela n’abimera pas les conditions de taille sur w4 et w2 du fait du choix judicieux de d4, d2 . En effet : v = w1d1 1 mod p-L implique ud d^1 mod p4 . Ainsi, il est possible d’augmenter v de quelques unités jusqu’à trouver un w3 = vd3 mod p3 tel que w3 < p3/(2 ). On remarque que les deux recherches exhaustives faites précédemment ne se multiplient pas mais s’ajoutent. Afin de satisfaire la contrainte également sur w4, les calculs précédents sont répétés L fois (pour un certain paramètre L) et on constituera une base de données BD contenant les différentes valeurs de v ainsi obtenues notées
Figure imgf000055_0002
Le calcul se termine en combinant les valeurs dans BD par sommation v' = v[i] + v[j] jusqu’à trouver une paire (i,j) telle que w4 = v'd4 mod p4 est satisfait w4
Figure imgf000055_0003
We can notice that if we increase v by a few u units, this will not damage the size conditions on w 4 and w 2 due to the judicious choice of d 4 , d 2 . Indeed: v = w 1 d 1 1 mod pL implies ud d^ 1 mod p 4 . Thus, it is possible to increase v by a few units until we find a w 3 = vd 3 mod p 3 such that w 3 < p 3 /(2 ). We notice that the two exhaustive searches carried out previously do not multiply but are added. In order to satisfy the constraint also on w 4 , the previous calculations are repeated L times (for a certain parameter L) and we will constitute a database BD containing the different values of v thus obtained, noted
Figure imgf000055_0002
The calculation ends by combining the values in BD by summation v' = v[i] + v[j] until finding a pair (i,j) such that w 4 = v'd 4 mod p 4 is satisfied w 4
Figure imgf000055_0003
Ce calcul peut se terminer de trois manières : This calculation can be completed in three ways:
- on trouve un tel que mod p4, (solution de type
Figure imgf000055_0007
Figure imgf000055_0008
1 , rare) ;
- we find such that mod p 4 , (solution of type
Figure imgf000055_0007
Figure imgf000055_0008
1, rare);
- on trouve une paire
Figure imgf000055_0006
telle que w4 = v'd4 mod p4 < p4((2n) est satisfait (solution de type 2, plus commune du fait du paradoxe des anniversaires) ;
- we find a pair
Figure imgf000055_0006
such that w 4 = v'd 4 mod p 4 < p 4 ((2n) is satisfied (type 2 solution, more common due to the birthday paradox);
- on trouve une paire telle que w4 = v’d4 mod
Figure imgf000055_0004
est satisfait (solution de type 3, moins commune
Figure imgf000055_0005
que les solutions de type 2) où, de plus, w[i] > w[/] dans Z lorsque les quantités w[i],w[/] dont prises modulo tous les pt pour i = 1, ... , t. Ceci est nécessaire afin de permettre une soustraction dans le bon ordre des opérandes dans Z permettant de raccourcir v'.
- we find a pair such that w 4 = v'd 4 mod
Figure imgf000055_0004
is satisfied (type 3 solution, less common
Figure imgf000055_0005
than solutions of type 2) where, moreover, w[i] > w[/] in Z when the quantities w[i],w[/] of which taken modulo all p t for i = 1, ... , t. This is necessary in order to allow a subtraction in the correct order of the operands in Z allowing v' to be shortened.
Si l’itération sur L n’a pas suffi, il faut continuer à itérer pour une valeur plus large de L. If the iteration on L was not sufficient, you must continue to iterate for a larger value of L.
Il importe de noter que même si cette procédure doit être répétée pour chaque coordonnée du vecteur v| | , la base BD peut être recyclée d’une coordonnée à l’autre : une fois une solution trouvée pour une coordonnée donnée, cette solution et/ou ses composantes peut/peuvent être ôtée(s) (effacée(s)) de BD et la base résultante peut servir pour initier la recherche de la coordonnée suivante
Figure imgf000056_0001
sans avoir à recalculer BD de novo. Il suffit alors de continuer à enrichir BD. A titre d’exemple illustratif, un tel procédé permettant la de générer une coordonnée du vecteur de
Figure imgf000056_0002
pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000056_0003
Figure imgf000057_0001
It is important to note that although this procedure must be repeated for each coordinate of the vector v | | , the base BD can be recycled from one coordinate to another: once a solution has been found for a given coordinate, this solution and/or its components can be removed (erased) from BD and the resulting base can be used to initiate the search for the next coordinate
Figure imgf000056_0001
without having to recalculate BD de novo. All you have to do is continue to enrich BD. As an illustrative example, such a method allowing the generation of a coordinate of the vector of
Figure imgf000056_0002
could be expressed in Mathematica language as follows:
Figure imgf000056_0003
Figure imgf000057_0001
Quelle que soit la solution retenue pour mettre en œuvre ce quatrième mode de réalisation d’un KEM conforme à l’invention, le choix de t est primordial. On notera que le paramètre t ne peut être trop grand. Un argument intuitif à une telle limitation inhérente est que si l’on génère une clé de plus de n bits, son entropie sera de toutes les manières bornée (car il existera toujours une attaque meilleure consistant à essayer toutes les valeurs possibles de mW par une recherche exhaustive). Cela édicte une première contrainte qui est t < n/k. Etant donné que t doit être entier, on propose de prendre soit t = [n/k] ou t = [n/k . Si t = [n/k] est choisi, la clé résultante devra être hachée vers n bits avant usage. Notons qu’il serait approprié d’éviter t > 4 car les valeurs choisies pour n et k seraient toutes telles que [n/k] = 3. Whatever the solution chosen to implement this fourth embodiment of a KEM conforming to the invention, the choice of t is essential. Note that the parameter t cannot be too large. An intuitive argument for such an inherent limitation is that if one generates a key of more than n bits, its entropy will be bounded in any case (because there will always be a better attack consisting of trying all possible values of mW by a exhaustive search). This establishes a first constraint which is t < n/k. Given that t must be integer, we propose to take either t = [n/k] or t = [n/k. If t = [n/k] is chosen, the resulting key must be hashed to n bits before use. Note that it would be appropriate to avoid t > 4 because the values chosen for n and k would all be such that [n/k] = 3.
Ainsi, pour t = 1, la génération des clés est immédiate pour tout mode de réalisation exposant la composante q dans la clé publique pk. Elle l’est également pour tout mode de réalisation, décrit ultérieurement, n’exposant pas ladite composante q dans la clé publique pk. Pour t = 2, la génération des clés est immédiate pour tout mode de réalisation exposant la composante q dans la clé publique pk. Elle demeure rapide pour tout mode de réalisation, décrit ultérieurement, n’exposant pas ladite composante q dans la clé publique pk. La taille de K est suffisante pour la majorité des applications pratiques. Thus, for t = 1, the generation of keys is immediate for any embodiment exposing the component q in the public key pk. It is also true for any embodiment, described later, not exposing said component q in the public key pk. For t = 2, key generation is immediate for any embodiment exposing the component q in the public key pk. It remains fast for any embodiment, described later, not exposing said component q in the public key pk. The size of K is sufficient for the majority of practical applications.
Pour t = 3, la génération des clés est facile pour tout mode de réalisation exposant la composante q dans la clé publique pk. La taille de K devient toutefois grande et excède ce qui est habituellement requis pour des applications pratiques. For t = 3, key generation is easy for any embodiment exposing the component q in the public key pk. The size of K, however, becomes large and exceeds what is usually required for practical applications.
Pour t = 4, la génération des clés reste raisonnable pour tout mode de réalisation exposant la composante q dans la clé publique pk. Toutefois, la taille de K est maximisée et le ratio entre l’entropie de K et le nombre d’opérations effectuées commence à baisser. For t = 4, key generation remains reasonable for any embodiment exposing the component q in the public key pk. However, the size of K is maximized and the ratio between the entropy of K and the number of operations performed begins to decrease.
Il est donc recommandé de prendre t = 1, ou t = 2 ou t = 3 (qui sont particulièrement intéressants) selon les besoins applicatifs et réserver le choix t = 4 à des applications nécessitant des clés aussi longues que possible. Il semble qu’il n’existe pas d’utilité apparente à utiliser t > 4. It is therefore recommended to take t = 1, or t = 2 or t = 3 (which are particularly interesting) depending on the application needs and reserve the choice t = 4 for applications requiring keys as long as possible. There seems to be no apparent utility in using t > 4.
Comme évoqué précédemment, l’invention prévoit un cinquième mode de réalisation pour lequel la composante q de la clé publique pk n’est pas exposée et ainsi renforcer encore la robustesse d’un KEM selon l’invention. As mentioned previously, the invention provides a fifth embodiment for which the q component of the public key pk is not exposed and thus further strengthen the robustness of a KEM according to the invention.
Selon un cinquième mode de réalisation d’un KEM conforme à l’invention, que nous nommerons qLessKEMCPA, il est possible d’omettre la composante q de la clé publique pk. According to a fifth embodiment of a KEM conforming to the invention, which we will call qLessKEM CPA , it is possible to omit the q component of the public key pk.
Selon une première technique pour mettre en œuvre un tel qLessKEMCPA, q devient l’une des composantes de la clé secrète sk, lesdites clés {sk, pk} étant produites dans le cadre d’un procédé 120 adapté en conséquence que nous nommerons qLessAlgGenCPA pour le différencier de l’algorithme AlgGenCPA d’ores et déjà décrit en lien avec le KEMCPA. According to a first technique for implementing such a qLessKEM CPA , q becomes one of the components of the secret key sk, said keys {sk, pk} being produced within the framework of a process 120 adapted accordingly which we will call qLessAlgGen CPA to differentiate it from the AlgGen CPA algorithm already described in connection with the KEM CPA .
A l’instar de ce dernier, les paramètres par consistent en un entier n choisi ou prédéterminé de sorte que k < n, k étant un paramètre de sécurité fourni par l’utilisateur. Selon un mode de réalisation préférée, n sera choisi de telle manière que n > 3A4k. Like the latter, the parameters par consist of an integer n chosen or predetermined so that k < n, k being a security parameter provided by the user. According to a preferred embodiment, n will be chosen such that n > 3A4k.
Le procédé 120 de génération des clés publique pk et secrète sk, est un procédé que l’on peut résumer par la formule {sk,pk} = qLessAlgGenCPA( , k), ce dernier étant mis en œuvre par tout dispositif électronique 10-1 à 10-g dudit système informatique 1 , comporte une étape 121 de production d’une deuxième donnée aléatoire ou pseudo-aléatoire SS par le générateur de nombres aléatoires ou pseudo-aléatoires 13. Une telle deuxième donnée aléatoire ou pseudo-aléatoire SS permet de dériver un ensemble de n entiers positifs que nous noterons wr, ...,wn. L’invention prévoit que la somme desdits n entiers wr, ... , wn soit bornée par un paramètre p, avantageusement premier. The method 120 of generating the public keys pk and secret sk, is a process which can be summarized by the formula {sk,pk} = qLessAlgGen CPA (, k), the latter being implemented by any electronic device 10- 1 to 10-g of said computer system 1, comprises a step 121 of producing a second random or pseudo-random data SS by the random or pseudo-random number generator 13. Such a second random or pseudo-random data SS allows to derive a set of n positive integers which we will note w r , ...,w n . The invention provides that the sum of said n integers w r , ..., w n is bounded by a parameter p, advantageously first.
Ainsi, à titre d’exemple de réalisation une telle étape 121 consiste en les opérations suivantes : Thus, as an example of implementation, such a step 121 consists of the following operations:
$ $
- (p, q) «- Pn x Pk ;
Figure imgf000059_0001
- (p, q) «- P n x P k ;
Figure imgf000059_0001
La formule
Figure imgf000059_0002
mod q) < q doit s’interpréter comme suit : tout d’abord ledit système informatique 1 calcule les nombres
Figure imgf000059_0003
= pwt mod q, une fois les Yi obtenus, les Yi sont sommés comme des entiers sans que la somme qui en résulte soit réduite modulo q.
The formula
Figure imgf000059_0002
mod q) < q must be interpreted as follows: first of all said computer system 1 calculates the numbers
Figure imgf000059_0003
= pw t mod q, once the Yi is obtained, the Yi are summed as integers without the resulting sum being reduced modulo q.
L’étape 121 a été décrite avec p premier de n bits. En variante, p pourrait être choisi tel que PGCD(d, p) = 1 de sorte que d soit inversible. Step 121 was described with p prime of n bits. Alternatively, p could be chosen such that GCD(d, p) = 1 so that d is invertible.
Par ailleurs, l’opération
Figure imgf000059_0004
et tel que pwi mod q) < q exprimée ci-dessus, peut être réalisée par la mise en œuvre d’une sous-routine nommée qLessRandSumVec qui peut être décrite de manière algorithmique par la table suivante :
Furthermore, the operation
Figure imgf000059_0004
and such that pwi mod q) < q expressed above, can be achieved by the implementation of a subroutine named qLessRandSumVec which can be described algorithmically by the following table:
Figure imgf000060_0003
Figure imgf000060_0003
A titre d’exemple illustratif, un tel procédé qLessRandSumVec générant le vecteur de wW pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000060_0002
Le procédé 120, noté qLessAlgGenCPA( , k), comporte dès lors une étape 122 de production du couple de clés secrète et publique {sk, pk} peut consister en la mise en œuvre des opérations suivantes :
Figure imgf000060_0001
Figure imgf000061_0001
mod q ; sk <- {q,p, d,q}
Figure imgf000061_0002
As an illustrative example, such a process qLessRandSumVec generating the vector of wW could be expressed in Mathematica language as follows:
Figure imgf000060_0002
The method 120, denoted qLessAlgGen CPA (, k), therefore includes a step 122 of producing the pair of secret and public keys {sk, pk} which may consist of the implementation of the following operations:
Figure imgf000060_0001
Figure imgf000061_0001
mod q; sk <- {q,p, d,q}
Figure imgf000061_0002
A titre d’exemple illustratif, un tel procédé (120) qLessAlgGenCPA( ,k) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000061_0006
As an illustrative example, such a method (120) qLessAlgGen CPA (,k) could be expressed in Mathematica language as follows:
Figure imgf000061_0006
Selon ce mode de réalisation d’un qLessKEMCPA n’exposant pas q dans la clé publique pk, un procédé 130 de chiffrement ou d’encapsulation d’un secret - que l’on peut résumer par la formulation {C, K} ^- qLessEncapCPA( , k, pk) - mis en œuvre par tout dispositif électronique d’un système informatique 1 , tel que le dispositif électronique S (10-2), comporte une étape 131 de production d’une donnée aléatoire ou pseudo-aléatoire MM par le générateur de nombres aléatoires ou pseudo-aléatoires 13. Une telle donnée MM permettant de dériver un vecteur de n entiers tels que
Figure imgf000061_0003
According to this embodiment of a qLessKEM CPA not exposing q in the public key pk, a method 130 of encryption or encapsulation of a secret - which can be summarized by the formulation {C, K} ^ - qLessEncap CPA (, k, pk) - implemented by any electronic device of a computer system 1, such as the electronic device S (10-2), comprises a step 131 of producing random or pseudo-data random MM by the random or pseudo-random number generator 13. Such MM data making it possible to derive a vector of n integers such that
Figure imgf000061_0003
Puisque la clé publique pk (lue à l’étape 132) du dispositif électronique destinataire du secret K encapsulé sous la forme d’un chiffré C s’exprime sous la forme pk =
Figure imgf000061_0004
(cf. l’étape 122 de génération des clés {sk,pk} du procédé 110 précédemment décrit), l’étape 133 de génération dudit chiffré C et du secret K est telle que
Figure imgf000061_0005
notera que ni le calcul de C ni le calcul de K ne font appel à des réductions modulaires.
Since the public key pk (read in step 132) of the electronic device recipient of the secret K encapsulated in the form of a cipher C is expressed in the form pk =
Figure imgf000061_0004
(cf. step 122 of generating the keys {sk,pk} of the method 110 previously described), step 133 of generating said cipher C and the secret K is such that
Figure imgf000061_0005
note that neither the calculation of C nor the calculation of K uses modular reductions.
A titre d’exemple illustratif, un tel procédé (130) qLessEncapCPA( , k, pk) pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000062_0001
As an illustrative example, such a method (130) qLessEncap CPA (, k, pk) could be expressed in Mathematica language as follows:
Figure imgf000062_0001
Selon ce mode de réalisation qLessKEMCPA conforme à l’invention, le procédé 140 de déchiffrement ou de décapsulation d’un secret K, en l’espèce une clé de session - procédé 140 que l’on peut résumer par la formulation K «- qLessDecapCPA( , k, sk, C) - mis en œuvre par tout dispositif électronique d’un système informatique 1 , tel que le dispositif électronique R (10-1 ), en réponse à la réception d’un message véhiculant un chiffré C e N < n(p - 1) < n2n produit par un dispositif électronique tiers dudit système informatique 1 selon un procédé d’encapsulation ou de chiffrement 130 décrit précédemment, comporte une première étape 141 de lecture dans la mémoire de données 12 la valeur de la clé secrète sk = [q, p, d, p} préalablement produite à l’étape 122 du procédé de génération des clés 120 d’ores et déjà décrit en lien avec la figure 3, ainsi que des paramètres par consistant en les entiers et k tels que, avantageusement > 3.44k. According to this qLessKEM CPA embodiment in accordance with the invention, the method 140 of decryption or decapsulation of a secret K, in this case a session key - method 140 which can be summarized by the formulation K «- qLessDecap CPA (, k, sk, C) - implemented by any electronic device of a computer system 1, such as the electronic device R (10-1), in response to the reception of a message conveying an encrypted C e N < n(p - 1) < n2 n produced by a third-party electronic device of said computer system 1 according to an encapsulation or encryption method 130 described previously, comprises a first step 141 of reading the value from the data memory 12 of the secret key sk = [q, p, d, p} previously produced in step 122 of the key generation method 120 already described in connection with Figure 3, as well as parameters by consisting of them integers and k such that, advantageously > 3.44k.
L’étape 142 dudit procédé 140 consistant en le recouvrement dudit secret K que l’on souhaite tirer du chiffré C réceptionné consiste en les opérations K «- pb mod q sachant que b «- Cd mod p. Step 142 of said method 140 consisting of the recovery of said secret K which one wishes to derive from the received cipher C consists of the operations K «- pb mod q knowing that b «- Cd mod p.
A titre d’exemple illustratif, un tel procédé (140)qLessDecapCPA( , k, sk, C) permettant le vecteur de w ] pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000062_0002
Figure imgf000063_0003
As an illustrative example, such a method (140)qLessDecap CPA (, k, sk, C) allowing the vector of w ] could be expressed in Mathematica language as follows:
Figure imgf000062_0002
Figure imgf000063_0003
L’exécution d’un tel code imprimera effectivement « vrai » :
Figure imgf000063_0004
Running such code will effectively print "true":
Figure imgf000063_0004
En variante, l’invention prévoit une deuxième technique aboutissant à un KEM n’exposant pas q , cette variante étant notée qLess2KEMCPA . Par exemple, au lieu d’effectuer une recherche exhaustive sur les zf, il a d’ores et déjà été précisé qu’il est possible d’exploiter l’algorithme LLL dans l’algorithme CompKEMCPA pour résoudre l’équation wt = (v'i + z^d mod p pour les inconnues wf,zf sous les contraintes wt < [p/n] et zf < 2 . Cette équation admet en moyenne n solutions du fait que taille(wf) + taille(zf) > taille(p). Il suffit alors d’effectuer une recherche exhaustive dans cet espace de = n solutions jusqu’à identifier une solution telle que st = wtp mod q < [q/n]. Il en découle que le dispositif électronique émetteur S (10-2) n’a plus besoin de calculer K modulo q et q reste inconnu de l’adversaire. Alternatively, the invention provides a second technique resulting in a KEM not exposing q, this variant being denoted qLess2KEM CPA . For example, instead of carrying out an exhaustive search on the z f , it has already been specified that it is possible to exploit the LLL algorithm in the CompKEM CPA algorithm to solve the equation w t = (v'i + z^d mod p for the unknowns w f ,z f under the constraints w t < [p/n] and z f < 2. This equation admits on average n solutions due to the fact that size(w f ) + size(z f ) > size(p). It is then sufficient to carry out an exhaustive search in this space of = n solutions until identifying a solution such that s t = w t p mod q < [q/n ] It follows that the electronic transmitter device S (10-2) no longer needs to calculate K modulo q and q remains unknown to the adversary.
L’invention prévoit une troisième technique pour ne pas exposer q à l’adversaire, cette variante étant notée qLess3KEMCPA. Si la compression de la clé publique pk n’est pas requise, le procédé 120 de génération de clés peut être modifié en générant Puis, à l’aide de LLL, résoudre p mod q pour des petits z,s (typiquement
Figure imgf000063_0002
zt < n2) et Si < [q/n]. Cette équation admet en moyenne n solutions du fait que taille(sf) + taille(zf) > taille(q-) . Une fois la résolution terminée, il est possible de définir
The invention provides a third technique for not exposing q to the adversary, this variant being denoted qLess3KEM CPA . If compression of the public key pk is not required, the key generation method 120 can be modified by generating Then, using LLL, solve p mod q for small z,s (typically
Figure imgf000063_0002
z t < n 2 ) and Si < [q/n]. This equation admits on average n solutions because size(s f ) + size(z f ) > size(q-). Once the resolution is completed, it is possible to define
Puisque maintenant p il n’est pas nécessaire de fournir p dans pk. Puisque maintenant
Figure imgf000063_0001
il n’est pas non plus nécessaire de fournir q dans pk et l’adversaire ne peut utiliser q à des fins d’attaque.
Since now p there is no need to provide p in pk. Since now
Figure imgf000063_0001
there is also no need to provide q in pk and the adversary cannot use q for attack purposes.
L’invention prévoit une quatrième technique pour ne pas exposer q à l’adversaire, cette variante étant notée qLess4KEMCPA . En effet, il est également possible d’omettre q dans le calcul du secret K par s, 10-2 et donner un chiffré C potentiellement négatif. Dans ce mode de réalisation pour encapsuler un secret K, le dispositif électronique S, 10-2 procède en deux étapes : le vecteur
Figure imgf000064_0001
est choisi dans
Figure imgf000064_0002
e [-1,0, l]n d’une manière telle que K soit un entier positif inférieur à q. A cette fin, il est seulement nécessaire de fournir une borne sur q et non q . Une fois K calculé, le chiffré C correspondant est calculé dans Z, résultant éventuellement en un nombre signé dont le signe fait partie du chiffré C. La procédure de décapsulation est invariante.
The invention provides a fourth technique for not exposing q to the adversary, this variant being denoted qLess4KEM CPA . Indeed, it is also possible to omit q in the calculation of the secret K by s, 10-2 and give a potentially negative cipher C. In this embodiment to encapsulate a secret K, the electronic device S, 10-2 proceeds in two steps: the vector
Figure imgf000064_0001
is chosen in
Figure imgf000064_0002
e [-1.0, l] n in such a way that K is a positive integer less than q. For this purpose, it is only necessary to provide a bound on q and not q. Once K has been calculated, the corresponding cipher C is calculated in Z, possibly resulting in a signed number whose sign is part of the cipher C. The decapsulation procedure is invariant.
Pour produire K de sorte que K soit un entier positif inférieur à q, selon un premier sous-mode de réalisation de qLess4KEMCPA , le dispositif électronique s, 10-2 divise les bits de
Figure imgf000064_0003
en trois parties : une moitié est choisie égale à zéro, un quart est choisi égal à 1 et un quart est choisi égal à -1. Une borne inférieure B sur q est donnée au dispositif électronique S, 10-2 afin que ce dernier puisse choisir un assortiment de clés st tel que K est positif et inférieur à q.
To produce K so that K is a positive integer less than q, according to a first sub-embodiment of qLess4KEM CPA , the electronic device s, 10-2 divides the bits of
Figure imgf000064_0003
into three parts: one half is chosen equal to zero, one quarter is chosen equal to 1 and one quarter is chosen equal to -1. A lower bound B on q is given to the electronic device S, 10-2 so that the latter can choose an assortment of keys s t such that K is positive and less than q.
Selon un second sous-mode de réalisation de qLess4KEMCPA, il est possible de prendre puis, une fois la somme
Figure imgf000064_0006
Figure imgf000064_0005
connue, S (10-2) l’on divise K par l’un des st (par exemple s, ), calcule la quantité vérifie que 0 < K < B et ensuite corrige le chiffré C en soust
Figure imgf000064_0007
rayant
According to a second sub-embodiment of qLess4KEM CPA , it is possible to take then, once the sum
Figure imgf000064_0006
Figure imgf000064_0005
known, S (10-2) we divide K by one of the s t (for example s, ), calculate the quantity verifies that 0 < K < B and then corrects the cipher C in subt
Figure imgf000064_0007
scratching
Selon un troisième sous-mode de réalisation de qLess4KEMCPA, il est possible de prendre
Figure imgf000064_0008
[0,1] puis, une fois la somme
Figure imgf000064_0004
connue, S (10-2) soustrait à /C une combinaison linéaire de st notée , calcule la quantité K = K - Ts, vérifie que 0 < K < B et ensuite S
Figure imgf000064_0009
(10-2) corrige le chiffré C en soustrayant un « facteur miroir » Tv
Figure imgf000065_0001
à C.
According to a third sub-embodiment of qLess4KEM CPA , it is possible to take
Figure imgf000064_0008
[0,1] then, once the sum
Figure imgf000064_0004
known, S (10-2) subtracts from /C a linear combination of s t noted , calculates the quantity K = K - T s , verifies that 0 < K < B and then S
Figure imgf000064_0009
(10-2) corrects the cipher C by subtracting a “mirror factor” T v
Figure imgf000065_0001
to C.
L’invention prévoit une cinquième technique pour ne pas exposer q à l’adversaire, cette variante étant notée qLess5KEMCPA. Ce procédé utilise la recherche exhaustive permettant de retrouver le petit i tel que i x q ajouté à la clé décapsulée donne la clé encapsulée calculée dans les entiers. Cette égalité étant confirmée par une redondance de la clé, notée h et ajoutée au chiffré. The invention provides a fifth technique for not exposing q to the adversary, this variant being denoted qLess5KEM CPA . This process uses exhaustive search to find the little i such that ixq added to the decapsulated key gives the encapsulated key calculated in the integers. This equality being confirmed by a redundancy of the key, denoted h and added to the cipher.
A titre d’exemple illustratif, un tel procédé qLess5KEMCPA pourrait être exprimé en langage Mathematica comme suit :
Figure imgf000065_0002
As an illustrative example, such a qLess5KEM CPA process could be expressed in Mathematica language as follows:
Figure imgf000065_0002
L’exécution d’un tel code imprimera effectivement « vrai » :
Figure imgf000065_0003
Figure imgf000066_0001
Running such code will effectively print "true":
Figure imgf000065_0003
Figure imgf000066_0001
Ce procédé peut également être généralisé au cas t > 1 de manière évidente. This process can also be generalized to the case t > 1 in an obvious way.
Enfin, l’invention prévoit une sixième technique pour ne pas exposer q à l’adversaire, cette variante étant notée qLess6KEMCPA . En effet, il est également possible d’omettre q dans le calcul de du secret K par s, 10-2 et procéder de la manière suivante, illustrée ci-après avec le paramètre t = 1. Lors de l’encapsulation, calculer K dans Z en effectuant une simple somme sur les entiers. Une fois C reçu par /?, 10-1 , ce dernier peut retrouver K’ = K mod q. Pour aider le dispositif électronique R, 10-1 à retrouver K dans Z, le dispositif électronique S, 10-2 envoie, avec C, les log2 bits les plus significatifs de K notés ici c . Ainsi K = c2k + K’ . Connaissant K’ et c , le dispositif électronique R, 10-1 peut aisément calculer K. Finally, the invention provides a sixth technique for not exposing q to the adversary, this variant being denoted qLess6KEM CPA . Indeed, it is also possible to omit q in the calculation of the secret K by s, 10-2 and proceed as follows, illustrated below with the parameter t = 1. During encapsulation, calculate K in Z by performing a simple sum over the integers. Once C received by /?, 10-1, the latter can find K' = K mod q. To help the electronic device R, 10-1 find K in Z, the electronic device S, 10-2 sends, with C, the most significant log 2 bits of K denoted here c. So K = c2 k + K'. Knowing K' and c, the electronic device R, 10-1 can easily calculate K.
A titre d’exemple illustratif, un tel procédé qLess6KEMCPA pourrait être exprimé en langage Mathematica comme suit, où on notera l’importance de générer des modules q d’exactement k bits :
Figure imgf000066_0002
Figure imgf000067_0001
As an illustrative example, such a qLess6KEM CPA process could be expressed in Mathematica language as follows, where we note the importance of generating q modules of exactly k bits:
Figure imgf000066_0002
Figure imgf000067_0001
L’exécution d’un tel code imprimera effectivement « vrai » :
Figure imgf000067_0002
Running such code will effectively print "true":
Figure imgf000067_0002
Par ailleurs, étant donnée la structure algébrique simple de l’invention, il est possible de généraliser une telle structure algébrique à une variété d’anneaux, de groupes et de corps finis. De telles généralisations (traductions d’une structure algébrique vers une autre), évidentes à l’homme de l’art sont fréquemment le cas en cryptologie, comme en témoignent les références suivantes : - M. van Dijk, C. Gentry, S. Halevi et V. Vaikuntanathan, « FullyFurthermore, given the simple algebraic structure of the invention, it is possible to generalize such an algebraic structure to a variety of rings, groups and finite fields. Such generalizations (translations from one algebraic structure to another), obvious to those skilled in the art, are frequently the case in cryptology, as evidenced by the following references: - M. van Dijk, C. Gentry, S. Halevi and V. Vaikuntanathan, “Fully
Homomorphic Encryption over the Integers », Advances in Cryptology - EUROCRYPT 2010, 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Monaco / French Riviera, May 30 - June 3, 2010. Proceedings, Lecture Notes in Computer Science, vol. 6110, pp. Homomorphic Encryption over the Integers”, Advances in Cryptology - EUROCRYPT 2010, 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Monaco / French Riviera, May 30 - June 3, 2010. Proceedings, Lecture Notes in Computer Science, vol. 6110, p.
24-43, Springer, 201 ; - J. H. Cheon et D. Stehlé, « Fully Homomorphic Encryption over the Integers Revisited », Advances in Cryptology -- EUROCRYPT 2015, 2015, Springer Berlin Heidelberg, pp. 513 — 536 ;24-43, Springer, 201; - JH Cheon and D. Stehlé, “Fully Homomorphic Encryption over the Integers Revisited”, Advances in Cryptology -- EUROCRYPT 2015, 2015, Springer Berlin Heidelberg, pp. 513 — 536;
- D. Aggarwal, A. Joux, A. Prakash et M. Santha, « A New Public- Key Cryptosystem via Mersenne Numbers », Advances in Cryptology - CRYPTO 2018 - 38th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 19-23, 2018, Proceedings, Part III, Lecture Notes in Computer Science, vol. 10993, pp. 459-482, Springer, 2018 ; - D. Aggarwal, A. Joux, A. Prakash and M. Santha, “A New Public-Key Cryptosystem via Mersenne Numbers”, Advances in Cryptology - CRYPTO 2018 - 38th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 19-23, 2018, Proceedings, Part III, Lecture Notes in Computer Science, vol. 10993, p. 459-482, Springer, 2018;
- J.S. Coron, T. Lepoint et M. Tibouchi, « New Multilinear Maps Over the Integers », Advances in Cryptology - CRYPTO 2015 - 35th Annual Cryptology Conference, Santa Barbara, CA, USA, August 16-20, 2015, Proceedings, Part I, Lecture Notes in Computer Science, vol. 9215, pp. 267-286, Springer, 2015 ; - J.S. Coron, T. Lepoint and M. Tibouchi, “New Multilinear Maps Over the Integers”, Advances in Cryptology - CRYPTO 2015 - 35th Annual Cryptology Conference, Santa Barbara, CA, USA, August 16-20, 2015, Proceedings, Part I, Lecture Notes in Computer Science, vol. 9215, pp. 267-286, Springer, 2015;
- K. Jarvis et M. Nevins, « ETRU: NTRU over the Eisenstein integers », Des. Codes Cryptogr., vol. 74, n° 1 , pp. 219-242, 2015 ; - K. Jarvis and M. Nevins, “ETRU: NTRU over the Eisenstein integers”, Des. Cryptogr. Codes, vol. 74, no. 1, pp. 219-242, 2015;
- Joux, « Fully homomorphic encryption modulo Fermat numbers »,- Joux, “Fully homomorphic encryption modulo Fermat numbers”,
Cryptology ePrint Archive, Report 2019/187, 2019, https://ia.cr/2019/187. Cryptology ePrint Archive, Report 2019/187, 2019, https://ia.cr/2019/187.
De manière similaire, le procédé inventif pourrait être généralisé à des mW non binaires. Les algorithmes présentés dans la présente invention seraient alors basés sur le problème du SàD borné (« Bounded Knapsack Problem », cf. H. Kellerer, U. Pferschy et D. Pisinger, « The Bounded Knapsack Problem », Knapsack Problems, 2004, Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 185-209). Une telle généralisation entraîne une modification de la taille des mW et donc un nouvel équilibrage des paramètres et des niveaux de sécurité, comme il est évident à l’homme de l’art. Similarly, the inventive method could be generalized to non-binary mW. The algorithms presented in the present invention would then be based on the Bounded Knapsack Problem, cf. H. Kellerer, U. Pferschy and D. Pisinger, “The Bounded Knapsack Problem”, Knapsack Problems, 2004, Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 185-209). Such a generalization leads to a modification of the size of the mW and therefore a new balancing of the parameters and security levels, as is obvious to those skilled in the art.
L’invention a été décrite au travers d’un exemple illustré par la figure 1 selon lequel un deuxième dispositif électronique S, 10-2 souhaite partager la valeur d’un second secret s, que nous pouvons référencer KS^R , avec un unique premier dispositif électronique R, 10-1 pour exploiter ledit secret KS-,R et produire une clé de session. Pour cela, ledit secret KS-,R, est encapsulé (procédé 130) à partir de la clé publique pkR du destinataire R, 10-1 (produite par un procédé 120) sous la forme d’un chiffré Cs^R- Ledit destinataire R, 10- 1 recouvre la valeur dudit secret KS-,R par la mise en œuvre d’un procédé de décapsulation (procédé 140) dudit chiffré
Figure imgf000069_0001
The invention has been described through an example illustrated by Figure 1 according to which a second electronic device S, 10-2 wishes to share the value of a second secret s, which we can reference K S ^ R , with a unique first electronic device R, 10-1 for exploiting said secret K S -, R and producing a session key. For this, said secret K S -, R , is encapsulated (process 130) from the public key pk R of the recipient R, 10-1 (produced by a method 120) in the form of an encrypted Cs^R- Said recipient R, 10- 1 recovers the value of said secret K S -, R by implementing a decapsulation process (process 140) of said cipher
Figure imgf000069_0001
L’invention prévoit en outre que les procédés 130 et 140 puissent être mis en œuvre successivement dans des directions opposées par les deux dispositifs électroniques S, 10-2 et R , 10-1. Ainsi, à son tour le premier dispositif électronique R, 10-1 , agissant comme S partage la valeur d’un secret K , que nous pouvons référencer KR-,S , avec l’unique deuxième dispositif électronique S, 10-2 agissant comme R pour exploiter ledit secret KR^S et produire une clé de session. Ledit secret KR-,S, est encapsulé (procédé 130) sous la forme d’un chiffré CR^S à partir de la clé publique pks, du destinataire S, 10-2. Ledit destinataire S, 10-2 recouvre la valeur dudit secret KR^S par la mise en œuvre d’un procédé de décapsulation (procédé 140) dudit chiffré CR^S -The invention further provides that the methods 130 and 140 can be implemented successively in opposite directions by the two electronic devices S, 10-2 and R, 10-1. Thus, in turn the first electronic device R, 10-1, acting as S shares the value of a secret K, which we can reference K R -, S , with the unique second electronic device S, 10-2 acting like R to exploit said K R ^ S secret and produce a session key. Said secret K R -, S , is encapsulated (process 130) in the form of an encrypted CR^S from the public key pk s , of the recipient S, 10-2. Said recipient S, 10-2 recovers the value of said secret K R ^ S by implementing a decapsulation process (process 140) of said cipher CR ^ S -
L’invention prévoit alors que la future clé de session exploitée par les deux dispositif électroniques S , 10-2 et R , 10-1 puisse résulter d’une combinaison des secrets KS^R et KR^S ainsi échangés de manière sécurisée. A titre d’exemples non limitatifs, ladite clé de session peut résulter de la mise en œuvre par les deux dispositifs électroniques S, 10-2 et R, 10-1 d’un ou- exclusif ou d’une fonction de hachage appliqué auxdits secrets KS-,R et KR-,S. The invention then provides that the future session key used by the two electronic devices S, 10-2 and R, 10-1 can result from a combination of the secrets K S ^ R and K R ^ S thus exchanged in a secure manner . By way of non-limiting examples, said session key may result from the implementation by the two electronic devices S, 10-2 and R, 10-1 of an exclusive or- or a hash function applied to said secrets K S -, R and K R -, S.
Enfin, il importe de noter que les différents procédés et modes de réalisation peuvent être combinés entre eux afin d’offrir de nombreuses options de mise en œuvre évidente à l’homme de l’art. Finally, it is important to note that the different processes and embodiments can be combined with each other in order to offer numerous implementation options obvious to those skilled in the art.
A titre d’exemple non limitatif, le procédé suivant, noté mCompKEMCPA fournit à la fois une compression des clés publiques telle que celle fournie par CompKEMCPA et une extension à t > 1 telle que celle fournie par mKEMCPA. Puisque les procédés mCompEncapCPA et mCompDecapCPA sont évidents à l’homme de l’art nous allons nous attacher à expliquer comment compresser le couple {sk, pk} dans le cas t > 1. By way of non-limiting example, the following method, denoted mCompKEM CPA , provides both compression of public keys such as that provided by CompKEM CPA and an extension to t > 1 such as that provided by mKEM CPA . Since the mCompEncap CPA and mCompDecap CPA processes are obvious to those skilled in the art, we will endeavor to explain how to compress the pair {sk, pk} in the case t > 1.
L’étape de génération d’un couple {sk, pk} de clés secrète et publique, notée CompAlgGencpA 2( , k) , correspondant à AlgKeyGen , ainsi que de publication de ladite clé publique pk produite consiste à : The step of generating a pair {sk, pk} of secret and public keys, denoted CompAlgGen cpA 2 (, k), corresponding to AlgKeyGen, as well as publishing said public key pk produced consists of:
- générer une deuxième donnée aléatoire SS par un générateur de nombres aléatoires 13 du premier dispositif électronique R, 10-1 accomplissant ladite étape, ladite deuxième donnée aléatoire SS et en dériver {graine_pk, graine_sk}
Figure imgf000070_0006
la graine_pk est publique et la graine_sk est gardée secrète ;
- generate a second random data SS by a random number generator 13 of the first electronic device R, 10-1 accomplishing said step, said second random data SS and derive {seed_pk, seed_sk}
Figure imgf000070_0006
the pk_seed is public and the sk_seed is kept secret;
- produire la clé secrète compressible sk <- {p, d, p} où p e Pn, d ∈ et p ∈ sont dérivés de manière déterministe de graine_sk ; - produce the compressible secret key sk <- {p, d, p} where pe P n , d ∈ and p ∈ are derived deterministically from seed_sk;
- produire la clé publique compressible pk où :
Figure imgf000070_0005
o q est un premier de k bits dérivé de manière déterministe de graine_pk ;
Figure imgf000070_0004
est dérivé de manière déterministe de graine_pk ; est initialisé aléatoirement
Figure imgf000070_0002
Figure imgf000070_0003
est produit ainsi :
Figure imgf000070_0001
- produce the compressible public key pk where:
Figure imgf000070_0005
oq is a k-bit prime derived deterministically from seed_pk;
Figure imgf000070_0004
is deterministically derived from seed_pk; is initialized randomly
Figure imgf000070_0002
Figure imgf000070_0003
is produced as follows:
Figure imgf000070_0001
■ pour 1 < i < n, rafraîchir
Figure imgf000070_0007
■ for 1 < i < n, refresh
Figure imgf000070_0007
Il est aisé de voir que pk peut être compressée en
Figure imgf000071_0001
ce qui permet un gain de mémoire considérable.
It is easy to see that pk can be compressed into
Figure imgf000071_0001
which allows for considerable memory savings.

Claims

REVENDICATIONS Procédé de transport (100) d’un secret K résistant aux attaques par ordinateur quantique, ledit procédé étant mis en œuvre par un système informatique (10) comportant un premier (10-1 ) et un deuxième (10-2) dispositifs électroniques, lesdits premier et deuxième dispositifs électroniques comportant chacun une unité de traitement (11 ) coopérant avec une mémoire de données (12) et des moyens de communication (15) avec le monde extérieur, ledit premier dispositif électronique R (10-1 ) étant conçu pour recevoir et exploiter le secret K préalablement produit et encapsulé par ledit deuxième dispositif électronique S (10-2), ledit procédé de transport (100) comportant : CLAIMS Method for transporting (100) a secret K resistant to attacks by quantum computer, said method being implemented by a computer system (10) comprising a first (10-1) and a second (10-2) electronic devices , said first and second electronic devices each comprising a processing unit (11) cooperating with a data memory (12) and means of communication (15) with the outside world, said first electronic device R (10-1) being designed to receive and exploit the secret K previously produced and encapsulated by said second electronic device S (10-2), said transport method (100) comprising:
- une étape (110) de génération et de publication de paramètres généraux par dudit procédé de transport (100) mise en œuvre par le premier dispositif électronique R (10-1 ) ; - a step (110) of generating and publishing general parameters by said transport method (100) implemented by the first electronic device R (10-1);
- une étape (120) de génération d’un couple {sk, pk} de clés secrète et publique, ainsi que de publication de ladite clé publique produite, ladite étape (120) étant mise en œuvre par le premier dispositif électronique R (10-1 ), ledit couple de clés secrète et publique {sk, pk} étant produit à partir desdits paramètres généraux par et à partir d’une première donnée aléatoire (SS) produite par un générateur de nombres aléatoires (13) dudit premier dispositif électronique R (10-1 ) ; - a step (120) of generating a pair {sk, pk} of secret and public keys, as well as publishing said public key produced, said step (120) being implemented by the first electronic device R (10) -1), said pair of secret and public keys {sk, pk} being produced from said general parameters by and from a first random data (SS) produced by a random number generator (13) of said first electronic device R (10-1);
- une étape (130) d’encapsulation du secret K sous la forme d’un chiffré C et de transmission de ce dernier, ladite étape (130) étant mise en œuvre par ledit deuxième dispositif électronique S (10-2) à partir desdits paramètres généraux par , de la clé publique pk dudit premier dispositif électronique R (10-1 ) et d’une deuxième donnée aléatoire ( MM ) produite par le générateur de nombres aléatoires (13) dudit deuxième dispositif électronique S (10-2) ; - a step (130) of encapsulating the secret K in the form of a cipher C and transmitting the latter, said step (130) being implemented by said second electronic device S (10-2) from said general parameters by, the public key pk of said first electronic device R (10-1) and a second random data (MM) produced by the random number generator (13) of said second electronic device S (10-2);
- une étape (140) de décapsulation dudit secret K mise en œuvre par ledit premier dispositif électronique R (10-1 ) à partir dudit chiffré C, desdits paramètres généraux par et du couple {sk,pk} de clés secrète et publique d’ores et déjà produit (120) par le premier dispositif électronique R (10-1 ) ; ledit procédé de transport (100) étant caractérisé en ce que ladite deuxième donnée aléatoire (MM) sert à dériver un vecteur de n entiers mW et en ce que l’étape (130) d’encapsulation du secret K sous la forme d’un chiffré C et de transmission de ce dernier consiste à mettre en œuvre deux sommes ayant des mêmes indexes m1, ... , mn, le chiffré C consistant en une première somme telle que C «- mW . VW et le secret K consistant en une seconde somme, dite « somme miroir » telle que K «- mW . $14 ladite première somme étant calculée dans une première structure algébrique, ladite seconde somme étant calculée dans une deuxième structure algébrique et les vecteurs vW et sW étant extraits de la clé publique pk dudit premier dispositif électronique R (10-1 ). - a step (140) of decapsulating said secret K implemented by said first electronic device R (10-1) from said cipher C, said general parameters by and the pair {sk,pk} of secret and public keys of already produced (120) by the first electronic device R (10-1); said transport method (100) being characterized in that said second random data (MM) is used to derive a vector of n integers mW and in that the step (130) of encapsulating the secret K in the form of a encrypted C and transmission of the latter consists of implementing two sums having the same indexes m 1 , ..., m n , the encrypted C consisting of a first sum such that C «- mW. V W and the secret K consisting of a second sum, called a “mirror sum” such that K “- mW. $14 said first sum being calculated in a first algebraic structure, said second sum being calculated in a second algebraic structure and the vectors vW and sW being extracted from the public key pk of said first electronic device R (10-1).
2. Procédé (100) selon la revendication 1 pour lequel lesdites première et deuxième structures algébriques sont l’anneau des entiers Z. 2. Method (100) according to claim 1 for which said first and second algebraic structures are the ring of integers Z.
3. Procédé (100) selon la revendication 1 pour lequel lesdites première et deuxième structures algébriques sont des corps finis. 3. Method (100) according to claim 1 for which said first and second algebraic structures are finite fields.
4. Procédé (100) selon la revendication 1 pour lequel ladite première structure algébrique est l’anneau des entiers Z et ladite seconde structure algébrique est un corps fini. 4. Method (100) according to claim 1 for which said first algebraic structure is the ring of integers Z and said second algebraic structure is a finite field.
5. Procédé (100) selon la revendication 1 pour lequel ladite première structure algébrique est un corps fini et ladite seconde structure algébrique est l’anneau des entiers Z. 5. Method (100) according to claim 1 for which said first algebraic structure is a finite field and said second algebraic structure is the ring of integers Z.
6. Procédé (100) selon la revendication 4 pour lequel : 6. Method (100) according to claim 4 for which:
- l'étape (110) de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité, par étant défini par la paire par = {n, k} - the step (110) of generating and publishing general parameters par consists of determining an integer n such that k < n, k being a security parameter, par being defined by the pair par = {n, k }
- l’étape (120) de génération d’un couple {sk, pk] de clés secrète et publique, ainsi que de publication de ladite clé publique pk produite consiste à : o utiliser la première donnée aléatoire (SS) afin de dériver les paramètres suivants : - the step (120) of generating a pair {sk, pk] of secret and public keys, as well as publishing said public key pk produced, consists of: o using the first random data (SS) in order to derive the following parameters:
- un entier p de n bits ; - an n-bit integer p;
- un entier q premier de k bits ; - a prime integer q of k bits;
- des entiers d et p tels que
Figure imgf000074_0001
- integers d and p such that
Figure imgf000074_0001
- un vecteur
Figure imgf000074_0002
de n entiers positifs wr, ... , wn dont la somme est bornée par p ; o produire la clé secrète sk «- [p, d, p} ; o produire la clé publique pk «- les vecteurs
Figure imgf000074_0003
étant définis par les deux relations
Figure imgf000074_0004
Figure imgf000074_0006
mod p et mod q
Figure imgf000074_0005
- a vector
Figure imgf000074_0002
of n positive integers w r , ..., w n whose sum is bounded by p; o produce the secret key sk «- [p, d, p}; o produce the public key pk «- the vectors
Figure imgf000074_0003
being defined by the two relations
Figure imgf000074_0004
Figure imgf000074_0006
mod p and mod q
Figure imgf000074_0005
- l’étape (130) d’encapsulation du secret K consiste à utiliser la deuxième donnée aléatoire (MM) afin de produire un vecteur de n entiers à partir duquel sont calculés le chiffré
Figure imgf000074_0007
Figure imgf000074_0008
et la clé
Figure imgf000074_0009
Figure imgf000074_0010
l’étape (140) de décapsulation du secret K consiste à recouvrer (141 ) la clé K telle que K «- pb mod q où b «- Cd mod p. édé selon la revendication précédente pour lequel le vecteur est produit par la séquence d’opérations suivantes :
Figure imgf000075_0005
- the step (130) of encapsulating the secret K consists of using the second random data (MM) in order to produce a vector of n integers from which the cipher is calculated
Figure imgf000074_0007
Figure imgf000074_0008
and the key
Figure imgf000074_0009
Figure imgf000074_0010
the step (140) of decapsulating the secret K consists of recovering (141) the key K such that K «- pb mod q where b «- Cd mod p. ed according to the preceding claim for which the vector is produced by the following sequence of operations:
Figure imgf000075_0005
- tant que ledit vecteur
Figure imgf000075_0004
ne contient pas n éléments distincts faire : selon le critère
Figure imgf000075_0003
Figure imgf000075_0002
n — 1 ;
Figure imgf000075_0001
édé (100) selon la revendication 2, pour lequel :
- as long as said vector
Figure imgf000075_0004
does not contain n distinct elements do: according to the criterion
Figure imgf000075_0003
Figure imgf000075_0002
n — 1;
Figure imgf000075_0001
ed (100) according to claim 2, for which:
- l'étape (110) de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité, par étant défini par la paire par = {n,k} - the step (110) of generating and publishing general parameters par consists of determining an integer n such that k < n, k being a security parameter, par being defined by the pair par = {n,k }
- l’étape (120) de génération d’un couple {sk, pk] de clés secrète et publique, ainsi que de publication de ladite clé publique pk produite consiste à : o utiliser la première donnée aléatoire (SS) afin de dériver les paramètres suivants : - the step (120) of generating a pair {sk, pk] of secret and public keys, as well as publishing said public key pk produced, consists of: o using the first random data (SS) in order to derive the following parameters:
■ un entier p de n bits ; ■ an n-bit integer p;
■ un entier q premier de k bits ; ■ a prime integer q of k bits;
■ des entiers d et p tels que
Figure imgf000075_0006
- un vecteur
Figure imgf000076_0002
de n entiers positifs w±, ... , wn dont la somme est bornée par p et tels que mod q) < q;
Figure imgf000076_0001
o produire la clé secrète sk «- [p, d, p} ; o produire la clé publique pk «- les vecteurs
Figure imgf000076_0003
Figure imgf000076_0004
étant définis par les deux relations
Figure imgf000076_0005
Figure imgf000076_0006
mod q ;
■ integers d and p such that
Figure imgf000075_0006
- a vector
Figure imgf000076_0002
of n positive integers w ± , ..., w n whose sum is bounded by p and such that mod q) <q;
Figure imgf000076_0001
o produce the secret key sk «- [p, d, p}; o produce the public key pk «- the vectors
Figure imgf000076_0003
Figure imgf000076_0004
being defined by the two relations
Figure imgf000076_0005
Figure imgf000076_0006
mod q;
- l’étape (130) d’encapsulation du secret K consiste à utiliser la deuxième donnée aléatoire (MM) afin de produire un vecteur de n entier
Figure imgf000076_0007
à partir duquel sont calculés le chiffré
Figure imgf000076_0010
Figure imgf000076_0008
et la clé K
Figure imgf000076_0009
- the step (130) of encapsulating the secret K consists of using the second random data (MM) in order to produce a vector of integer n
Figure imgf000076_0007
from which the cipher is calculated
Figure imgf000076_0010
Figure imgf000076_0008
and the key K
Figure imgf000076_0009
- l’étape (140) de décapsulation du secret K consiste à recouvrer (141 ) la clé K telle que K <- pb mod q où b «- Cd mod p. - step (140) of decapsulating the secret K consists of recovering (141) the key K such that K <- pb mod q where b «- Cd mod p.
9. Procédé (100) selon la revendication 4, pour lequel : 9. Method (100) according to claim 4, for which:
- l'étape (110) de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité, par étant défini par la paire par = {n,k} ; - the step (110) of generating and publishing general parameters par consists of determining an integer n such that k < n, k being a security parameter, par being defined by the pair par = {n,k } ;
- l’étape (120) de génération d’un couple {sk, pk] de clés secrète et publique, ainsi que de publication de ladite clé publique pk produite consiste à : o utiliser la première donnée aléatoire (SS) afin de produire deux graines (graine_pk, graine_sk)
Figure imgf000076_0011
o produire la clé secrète sk
Figure imgf000076_0012
et μ ∈ sont dérivés de manière déterministe de graine_sk ; - o produire la clé publique
- the step (120) of generating a pair {sk, pk] of secret and public keys, as well as publishing said public key pk produced, consists of: o using the first random data (SS) in order to produce two seeds (seed_pk, seed_sk)
Figure imgf000076_0011
o produce the secret key sk
Figure imgf000076_0012
and μ ∈ are deterministically derived from seed_sk; - o produce the public key
- le vecteur est dérivé de
Figure imgf000077_0001
manière déterministe de graine_pk ;
- the vector is derived from
Figure imgf000077_0001
deterministic way of seed_pk;
- q est un nombre premier de k bits dérivé de manière déterministe de graine_pk ; - q is a k-bit prime number derived deterministically from seed_pk;
- le vecteur z
Figure imgf000077_0002
et le vecteur
Figure imgf000077_0003
étant produits par le procédé suivant :
Figure imgf000077_0004
- the vector z
Figure imgf000077_0002
and the vector
Figure imgf000077_0003
being produced by the following process:
Figure imgf000077_0004
• pour 1 < i < n faire : o tant que (v't + zf) d mod p > [p/n] rafraîchir zf «- [0,n2 - 1] ; • for 1 < i < n do: o as long as (v't + z f ) d mod p > [p/n] refresh z f «- [0,n 2 - 1];
• d mod p) mod g;
Figure imgf000077_0005
o compresser la clé pk en
Figure imgf000077_0007
• d mod p) mod g;
Figure imgf000077_0005
o compress the pk key into
Figure imgf000077_0007
- l’étape (130) d’encapsulation du secret K, consiste à : o décompresser {graine_pk, en dérivant de la
Figure imgf000077_0006
graine_pk le vecteur puis former
Figure imgf000077_0008
o générer à partir de la deuxième donnée aléatoire (MM), un vecteur de n entiers
Figure imgf000077_0009
à partir duquel sont calculés le chiffré
Figure imgf000077_0010
- step (130) of encapsulating the secret K, consists of: o decompress {seed_pk, by deriving from the
Figure imgf000077_0006
seed_pk the vector then form
Figure imgf000077_0008
o generate from the second random data (MM), a vector of n integers
Figure imgf000077_0009
from which the cipher is calculated
Figure imgf000077_0010
- l’étape (140) de décapsulation du secret K consiste à recouvrer les données sk := [p, d,p} à partir de graine_sk puis à recouvrer (141 ) la clé K telle que K «- pb mod q où b «-- the step (140) of decapsulating the secret K consists of recovering the data sk := [p, d,p} from seed_sk then recovering (141) the key K such that K «- pb mod q where b “-
Cd mod p. Cd mod p.
10. Procédé (100) selon l’une quelconque des revendications 6 à 9, pour lequel p est premier ou tel que PGCD(d, p) = 1. 10. Method (100) according to any one of claims 6 to 9, for which p is prime or such that PGCD(d, p) = 1.
11 . Procédé (100) selon la revendication 4 pour lequel : - l'étape (110) de génération et de publication de paramètres généraux par consiste en la détermination d’un entier n tel que k < n, k étant un paramètre de sécurité et d’un entier t non nul, lesdits paramètres généraux par étant le triplet {t,n,k} 11. Method (100) according to claim 4 for which: - the step (110) of generating and publishing general parameters by consists of determining an integer n such that k < n, k being a security parameter and a non-zero integer t, said general parameters by being the triple {t,n,k}
- l’étape (120) de génération d’un couple {sk, pk] de clés secrète et publique, ainsi que de publication de ladite clé publique pk consiste à produire, à partir de la première donnée aléatoire (SS), les données suivantes :
Figure imgf000078_0001
o une matrice aléatoire M inversible de dimension t x t dont les éléments sont pris aléatoirement dans Zq ; o une clé secrète sk « o une clé publique pk les vecteurs et
Figure imgf000078_0002
étant produits tels que :
Figure imgf000078_0003
vérifie la condition Yi,j, 0 < vt <
Figure imgf000078_0004
- the step (120) of generating a pair {sk, pk] of secret and public keys, as well as publishing said public key pk, consists of producing, from the first random data (SS), the data following:
Figure imgf000078_0001
o an invertible random matrix M of dimension txt whose elements are taken randomly from Z q ; o a secret key sk « o a public key pk the vectors and
Figure imgf000078_0002
being produced such as:
Figure imgf000078_0003
verifies the condition Yi,j, 0 < v t <
Figure imgf000078_0004
- l’étape (130) d’encapsulation du secret
Figure imgf000078_0005
consiste à utiliser la deuxième donnée aléatoire (MM) afin de produire un vecteur de n entiers m à partir duquel sont calculés le chiffré
Figure imgf000078_0006
- l’étape (140) de décapsulation du secret
Figure imgf000079_0001
consiste à telle que
Figure imgf000079_0002
mod q où
Figure imgf000079_0003
- the step (130) of encapsulating the secret
Figure imgf000078_0005
consists of using the second random data (MM) in order to produce a vector of n integers m from which the cipher is calculated
Figure imgf000078_0006
- the step (140) of decapsulating the secret
Figure imgf000079_0001
consists of such that
Figure imgf000079_0002
mod q where
Figure imgf000079_0003
12. Procédé selon la revendication précédente pour lequel t est inférieur ou égal à 4. 12. Method according to the preceding claim for which t is less than or equal to 4.
13. Procédé (100) selon l’une quelconque des revendications 6 à 12, pour lequel n est tel que n > 3A4k. 13. Method (100) according to any one of claims 6 to 12, for which n is such that n > 3A4k.
14. Procédé (100) selon l’une quelconque des revendications 1 à 10, pour lequel les étapes (130) d’encapsulation et de décapsulation du secret K comporte l’application d'une fonction à sens unique OWF(x) audit secret K pour produire un deuxième secret K' = 0WF(/<) destiné à être exploité à des fins cryptographiques. 14. Method (100) according to any one of claims 1 to 10, for which the steps (130) of encapsulation and decapsulation of the secret K comprise the application of a one-way function OWF(x) to said secret K to produce a second secret K' = 0WF(/<) intended to be exploited for cryptographic purposes.
15. Procédé (100) selon la revendication 11 ou 12, pour lequel l’étape (130) d’encapsulation du secret K comporte l’application d'une fonction à sens unique O WF (%) audit secret
Figure imgf000079_0004
pour produire un deuxième secret K' = destiné à être exploité à des fins cryptographiques.
Figure imgf000079_0005
15. Method (100) according to claim 11 or 12, for which the step (130) of encapsulating the secret K comprises the application of a one-way function O WF (%) to said secret
Figure imgf000079_0004
to produce a second secret K' = intended to be exploited for cryptographic purposes.
Figure imgf000079_0005
16. Produit programme d’ordinateur comportant une ou plusieurs instructions (P) de programme exécutables par l’unité de traitement (11 ) d’un ordinateur, lesdites instructions de programme (P) étant chargeables dans une mémoire (14) dudit ordinateur et dont l’exécution par ladite unité de traitement (11 ) provoque la mise en œuvre d’un procédé (100) selon l’une quelconque des revendications précédentes. 16. Computer program product comprising one or more program instructions (P) executable by the processing unit (11) of a computer, said program instructions (P) being loadable into a memory (14) of said computer and the execution of which by said processing unit (11) causes the implementation of a method (100) according to any one of the preceding claims.
17. Support de mémorisation lisible par un ordinateur comportant les instructions d’un produit programme d’ordinateur selon la revendication précédente. 18. Système informatique (1 ) comportant une pluralité de dispositifs électroniques (10-1 , 10-2, 10-g) comprenant chacun une unité de traitement (11 ) et une mémoire (14), ladite mémoire (14) de chacun desdits dispositifs électroniques (10-1 , 10-2, 10-g) comprenant les instructions (P) de programme d’un produit programme d’ordinateur selon la revendication 16. 17. Computer-readable storage medium comprising the instructions of a computer program product according to the preceding claim. 18. Computer system (1) comprising a plurality of electronic devices (10-1, 10-2, 10-g) each comprising a processing unit (11) and a memory (14), said memory (14) of each of said electronic devices (10-1, 10-2, 10-g) comprising the program instructions (P) of a computer program product according to claim 16.
PCT/FR2023/051128 2022-07-20 2023-07-20 Method for exchanging a secret which can withstand quantum computer attacks, and associated computer system and computer program WO2024018158A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2207432 2022-07-20
FR2207432A FR3138256A1 (en) 2022-07-20 2022-07-20 METHOD FOR EXCHANGING A SECRET RESISTANT TO ATTACK BY QUANTUM COMPUTER, COMPUTER SYSTEM AND ASSOCIATED COMPUTER PROGRAM

Publications (1)

Publication Number Publication Date
WO2024018158A1 true WO2024018158A1 (en) 2024-01-25

Family

ID=84362202

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2023/051128 WO2024018158A1 (en) 2022-07-20 2023-07-20 Method for exchanging a secret which can withstand quantum computer attacks, and associated computer system and computer program

Country Status (2)

Country Link
FR (1) FR3138256A1 (en)
WO (1) WO2024018158A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
EP3547603A1 (en) * 2018-03-30 2019-10-02 Koninklijke Philips N.V. Configurable device for lattice-based cryptography

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
EP3547603A1 (en) * 2018-03-30 2019-10-02 Koninklijke Philips N.V. Configurable device for lattice-based cryptography

Non-Patent Citations (46)

* Cited by examiner, † Cited by third party
Title
"A Designer's Guide to KEMs", CRYPTOGRAPHY AND CODING, 9TH IMA INTERNATIONAL CONFÉRENCE, CIRENCESTER, UK, DECEMBER 16-18, 2003, PROCEEDINGS, LECTURE NOTES IN COMPUTER SCIENCE, vol. 2898, pages 133 - 151
A. BECKERJ-S. CORONA. JOUX: "Improved Generic Algorithms for Hard Knapsacks", ADVANCES IN CRYPTOLOGY - EUROCRYPT 2011 - 30TH ANNUAL INTERNATIONAL CONFÉRENCE ON THE THEORY AND APPLICATIONS OF CRYPTOGRAPHIE TECHNIQUES, TALLINN, ESTONIA, MAY 15-19, 2011. PROCEEDINGS, 2011, pages 364 - 385
A. JOUX: "Algorithmic cryptanalysis", 2009, CRC PRESS
A.K. LENSTRAHW. LENSTRAL. LOVASZ: "Factoring polynomials with rational coefficients", MATHEMATISCHE ANNALEN, vol. 261, no. 4, 1982, pages 515 - 534, XP002421156, DOI: 10.1007/BF01457454
A.M. FRIEZE: "On the Lagarias-Odlyzko Algorithm for the Subset Sum Problem", SIAM J. COMPUT., vol. 15, no. 2, 1986
A.M. ODLYZKO: "The rise and fall of knapsack cryptosystems", CRYPTOLOGY AND COMPUTATIONAL NUMBER THEORY, vol. 42, 1990, pages 75 - 88
CH. PEIKERT: "Public-key cryptosystems from the worst-case shortest vector problem: extended abstract", PROCEEDINGS OF THE 41 ST ANNUAL {ACM} SYMPOSIUM ON THEORY OF COMPUTING, STOC 2009, BETHESDA, MD, USA, MAY 31 - JUNE 2, 2009, 2009, pages 333 - 342
D. AGGARWALA. JOUXA. PRAKASHM. SANTHA: "A New Public-Key Cryptosystem via Mersenne Numbers", ADVANCES IN CRYPTOLOGY - CRYPTO 2018 - 38TH ANNUAL INTERNATIONAL CRYPTOLOGY CONFÉRENCE, SANTA BARBARA, CA, USA, AUGUST 19-23, 2018, PROCEEDINGS, PART III, LECTURE NOTES IN COMPUTER SCIENCE, vol. 10993, pages 459 - 482
D. NACCACHED. M'RAÏHID. RAPHAELI: "Can Montgomery parasites be avoided? A design methodology based on key and cryptosystem modifications", DESIGNS, CODES, AND CRYPTOGRAPHY, vol. 5, no. 1, 1995, pages 73 - 80, XP000617577, DOI: 10.1007/BF01388505
D. NACCACHED. M'RAÏHIW. WOLFOWICZA. DI PORTO: "Advances in Cryptology - {EUROCRYPT} '95, International Conférence on the Theory and Application of Cryptographie Techniques, Saint-Malo, France, May 21-25, 1995, Proceeding, Lecture Notes in Computer Science", vol. 921, 1995, SPRINGER, article "Are Crypto-Accelerators Really Inevitable? 20 Bit Zero-Knowledge in Less than a Second on Simple 8-bit Microcontrollers", pages: 404 - 409
D.J. BERNSTEIN, THE CHACHA FAMILY OF STREAM CIPHERS, 2008, Retrieved from the Internet <URL:https://cr.yp.to/chacha.html>
DAVIES GARETH T ET AL: "Cloud-Assisted Asynchronous Key Transport with Post-Quantum Security", 6 August 2020, TOPICS IN CRYPTOLOGY - CT-RSA 2020 : THE CRYPTOGRAPHERS' TRACK AT THE RSA CONFERENCE 2020, SAN FRANCISCO, CA, USA, FEBRUARY 24-28, 2020, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, PAGE(S) 82 - 101, XP047557957 *
E. FUJISAKIT. OKAMOTO: "How to Enhance the Security of Public-Key Encryption at Minimum Cost", PUBLIC KEY CRYPTOGRAPHY, SECOND INTERNATIONAL WORKSHOP ON PRACTICE AND THEORY IN PUBLIC KEY CRYPTOGRAPHY, PKC '99, KAMAKURA, JAPAN, MARCH 1-3, 1999, PROCEEDINGS, 1999, pages 53 - 68, XP055082059, DOI: 10.1007/3-540-49162-7_5
E.F. BRICKELL: "Solving Low Density Knapsacks", ADVANCES IN CRYPTOLOGY, PROCEEDINGS OF CRYPTO'83, SANTA BARBARA, CALIFORNIA, USA, AUGUST 21-24, 1983, pages 25 - 37
H. KELLERERU. PFERSCHYD. PISINGER: "Knapsack Problems", 2004, SPRINGER, article "Bounded Knapsack Problem", pages: 185 - 209
HAYO BAAN ET AL: "Round2: KEM and PKE based on GLWR", vol. 20180302:125432, 6 December 2017 (2017-12-06), pages 1 - 72, XP061034816, Retrieved from the Internet <URL:http://eprint.iacr.org/2017/1183.pdf> [retrieved on 20171206] *
J. C. LAGARIASA.M. ODLYZKO: "Solving Low-Density Subset Sum Problems", J. ACM, vol. 32, no. 1, 1985, pages 229 - 246
J. O'CONNORJ.-PH. AUMASSONS. NEVESZ. WILCOX-O'HEARN, BLAKE3: ONE FUNCTION, FAST EVERYWHERE, 2021
J.H. CHEOND. STEHLÉ: "Advances in Cryptology -- EUROCRYPT 2015", 2015, SPRINGER, article "Fully Homomorphic Encryption over the Integers Revisited", pages: 513 - 536
J.S. CORONT. LEPOINTM. TIBOUCHI: "Advances in Cryptology - CRYPTO 2015 - 35th Annual Cryptology Conférence, Santa Barbara, CA, USA, August 16-20, 2015, Proceedings, Part I, Lecture Notes in Computer Science", vol. 9215, 2015, SPRINGER, article "New Multilinear Maps Over the Integers", pages: 267 - 286
JOUX: "Fully homomorphic encryption modulo Fermat numbers", CRYPTOLOGY EPRINT ARCHIVE, 2019, Retrieved from the Internet <URL:https://ia.cr/2019/187>
K. JARVISM. NEVINS: "ETRU: NTRU over the Eisenstein integers", DES. CODES CRYPTOGR., vol. 74, no. 1, 2015, pages 219 - 242, XP035423588, DOI: 10.1007/s10623-013-9850-3
LEE JOOHEE ET AL: "RLizard: Post-Quantum Key Encapsulation Mechanism for IoT Devices", IEEE ACCESS, vol. 7, 4 January 2019 (2019-01-04), pages 2080 - 2091, XP011695822, DOI: 10.1109/ACCESS.2018.2884084 *
M. AJTAIC. DWORK: "A Public-Key Cryptosystem with Worst-Case/Average-Case Equivalence", PROCEEDINGS OF THE TWENTY-NINTH ANNUAL ACM SYMPOSIUM ON THE THEORY OF COMPUTING, EL PASO, TEXAS, USA, MAY 4-6, 1997, 1997, pages 284 - 293
M. BEUNARDEAUA. CONNOLLYR. GÉRAUDD. NACCACHE: "On the Hardness of the Mersenne Low Hamming Ratio Assumption", CRYPTOLOGY EPRINT ARCHIVE, 2017, pages 522
M. R. GAREYD. S. JOHNSON: "Computers and Intractability: A Guide to the Theory of NP-Completeness", 1979, W. H. FREEMAN
M. VAN DIJKC. GENTRYS. HALEVIV. VAIKUNTANATHAN: "Fully Homomorphic Encryption over the Integers", ADVANCES IN CRYPTOLOGY - EUROCRYPT 2010, 29TH ANNUAL INTERNATIONAL CONFÉRENCE ON THE THEORY AND APPLICATIONS OF CRYPTOGRAPHIE TECHNIQUES, MONACO / FRENCH RIVIERA, MAY 30 - JUNE 3, 2010. PROCEEDINGS, LECTURE NOTES IN COMPUTER SCIENCE, vol. 6110
M.J. COSTERA. JOUXB.A. LAMACCHIAA.M. ODLYZKOC-P. SCHNORRJ. STERN, IMPROVED LOW-DENSITY SUBSET SUM ALGORITHMS, COMPUTATIONAL COMPLEXITY, vol. 2, 1992, pages 111 - 128
MARKKU-JUHANI O SAARINEN: "HILA5: On Reliability, Reconciliation, and Error Correction for Ring-LWE Encryption", vol. 20170924:195236, 5 July 2017 (2017-07-05), pages 1 - 22, XP061023768, Retrieved from the Internet <URL:http://eprint.iacr.org/2017/424.pdf> [retrieved on 20170705] *
N. HOWGRAVE-GRAHAMA. JOUX: "New Generic Algorithms for Hard Knapsacks", ADVANCES IN CRYPTOLOGY - EUROCRYPT 2010, 29TH ANNUAL INTERNATIONAL CONFÉRENCE ON THE THEORY AND APPLICATIONS OF CRYPTOGRAPHIE TECHNIQUES, MONACO / FRENCH RIVIERA, MAY 30 - JUNE 3, 2010. PROCEEDINGS, 2010, pages 235 - 256
N. KOBLITZ: "Elliptic-Curve Cryptosystems", MATHEMATICS OF COMPUTATION, no. 48, 1987, pages 203 - 209, XP000671098
N.A. SMITHR.W. TROMBLE: "Tech. Rep", vol. 29, 2004, JOHNS HOPKINS UNIVERSITY, article "Sampling uniformly from the unit simplex"
NCSC: "Draft DTR/CYBER-QSC-007 v0.0.4 QSC-KEX", vol. WG - CYBER QSC - Quantum-Safe Cryptography, no. .0.4, 12 September 2017 (2017-09-12), pages 1 - 52, XP014299492, Retrieved from the Internet <URL:docbox.etsi.org\CYBER\CYBER\05-CONTRIBUTIONS\2017\2017_09_25_PL_CYBER#11\CYBER(17)011022_Draft_DTR_CYBER-QSC-007_v0_0_4__QSC-KEX_\CYBER-QSC-007v004.docx> [retrieved on 20170912] *
O. REGEV: "New lattice-based cryptographie constructions", J. ACM, vol. 51, no. 6, 2004, pages 899 - 942
O. REGEV: "On lattices, learning with errors, random linear codes, and cryptography", J. ACM, vol. 56, no. 6, 2009, XP058113033, DOI: 10.1145/1568318.1568324
P.L. MONTGOMERY: "Modular multiplication without trial division", MATHEMATICS OF COMPUTATION, vol. 44, no. 170, 1985, pages 519 - 521, XP000747434
P.W. SCHOR: "Proceedings 35th Annual Symposium on Foundations of Computer Science", 1994, IEEE COMPUT. SOC. PRESS, article "Algorithms for quantum computation: discrète logarithms and factoring", pages: 124 - 134
PH.Q. NGUYENJ. STERN: "The Two Faces of Lattices in Cryptology", CRYPTOGRAPHY AND LATTICES, INTERNATIONAL CONFÉRENCE, CALC 2001, PROVIDENCE, RI, USA, MARCH 29-30, 2001, 2001, pages 146 - 180
R. IMPAGLIAZZOM. NAOR: "Efficient Cryptographie Schemes Provably as Secure as Subset Sum", J. CRYPTOLOGY, vol. 9, no. 4, 1996, pages 199 - 216
R. L. RIVESTA. SHAMIRL. M. ADLEMAN: "A Method for Obtaining Digital Signatures and Public-key CryptoSystems", COMMUNICATIONS OF THE ACM, vol. 21, no. 2, 1978, pages 120 - 126
RAVI PRASANNA PRASANNA RAVI@NTU EDU SG ET AL: "Lattice-based Key-sharing Schemes", ACM COMPUTING SURVEYS, ACM, NEW YORK, NY, US, US, vol. 54, no. 1, 2 January 2021 (2021-01-02), pages 1 - 39, XP058924489, ISSN: 0360-0300, DOI: 10.1145/3422178 *
ROSSI MÉLISSA: "Extended Security of Lattice-Based Cryptography", HAL.ARCHIVES-OUVERTES, 10 September 2020 (2020-09-10), pages 1 - 205, XP055823016, Retrieved from the Internet <URL:https://hal.archives-ouvertes.fr/tel-02946399/document> [retrieved on 20210709] *
V. LYUBASHEVSKY: "The Parity Problem in the Presence of Noise, Decoding Random Linear Codes, and the Subset Sum Problem, Approximation, Randomization and Combinatorial Optimization, Algorithms and Techniques", 8TH INTERNATIONAL WORKSHOP ON APPROXIMATION ALGORITHMS FOR COMBINATORIAL OPTIMIZATION PROBLEMS, APPROX 2005 AND 9TH INTERNATIONAL WORKSHOP ON RANDOMIZATION AND COMPUTATION, RANDOM 2005, BERKELEY, CA, USA, AUGUST 22-24, 2005, PROCEEDINGS, 2005, pages 378 - 389
V. LYUBASHEVSKYA. PALACIOG. SEGEV: "Public-Key Cryptographie Primitives Provably as Secure as Subset Sum", THEORY OF CRYPTOGRAPHY, 7TH THEORY OF CRYPTOGRAPHY CONFÉRENCE, TCC 2010, ZURICH, SWITZERLAND, FEBRUARY 9-11, 2010. PROCEEDINGS, 2010, pages 382 - 400
V. MILLER: "Use of Elliptic Curves in Cryptography", CRYPTO, 1985, pages 85
Y. DESMEDT: "Knapsack Cryptographie Schemes", ENCYCLOPEDIA OF CRYPTOGRAPHY AND SECURITY, 2011, pages 695 - 704

Also Published As

Publication number Publication date
FR3138256A1 (en) 2024-01-26

Similar Documents

Publication Publication Date Title
Acar et al. A survey on homomorphic encryption schemes: Theory and implementation
EP3984160B1 (en) Homomorphic encryption with applications to private information retrieval
Halevi Homomorphic encryption
JP7019730B2 (en) Key exchange device and method
Coron et al. Fully homomorphic encryption over the integers with shorter public keys
CN110348231A (en) Realize the data homomorphism encryption and decryption method and device of secret protection
FR2788650A1 (en) PUBLIC AND PRIVATE KEY CRYPTOGRAPHIC PROCESS
EP0346180B1 (en) Apparatus for protected data communication
WO2018124869A1 (en) Quaternion-based, efficient fully-homomorphic cryptosystem
Mohan et al. Homomorphic encryption-state of the art
Azarderakhsh et al. How not to create an isogeny-based PAKE
EP2517397A1 (en) Encryption and decryption method
FR2828780A1 (en) METHOD FOR REALIZING A CRYPTOGRAPHIC UNIT FOR AN ASYMMETRIC CRYPTOGRAPHY SYSTEM USING A DISCREET LOGARITHM FUNCTION
CN116684070A (en) Anti-quantum key encapsulation method and system for TLS protocol
WO2024018158A1 (en) Method for exchanging a secret which can withstand quantum computer attacks, and associated computer system and computer program
da Silva et al. Homomorphic image processing over geometric product spaces and finite p-adic arithmetic
WO2018084691A2 (en) Quaternion-based, efficient fully-homomorphic cryptosystem
Chevallier-Mames et al. Linear bandwidth naccache-stern encryption
Zucca Towards efficient arithmetic for Ring-LWE based homomorphic encryption
Gélin Class group computations in number fields and applications to cryptology
Wen Contributions to the hardness foundations of lattice-based cryptography
EP0980607A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
Dumas et al. VESPo: Verified Evaluation of Secret Polynomials
RU2787692C2 (en) Key encapsulation protocols
Bootland Efficiency and security aspects of lattice-based cryptography

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23754815

Country of ref document: EP

Kind code of ref document: A1