[go: up one dir, main page]

WO2011083232A1 - Procede de chiffrement et de dechiffrement - Google Patents

Procede de chiffrement et de dechiffrement Download PDF

Info

Publication number
WO2011083232A1
WO2011083232A1 PCT/FR2010/052693 FR2010052693W WO2011083232A1 WO 2011083232 A1 WO2011083232 A1 WO 2011083232A1 FR 2010052693 W FR2010052693 W FR 2010052693W WO 2011083232 A1 WO2011083232 A1 WO 2011083232A1
Authority
WO
WIPO (PCT)
Prior art keywords
users
user
encryption
vector
secret
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/FR2010/052693
Other languages
English (en)
Inventor
Yannick Seurin
Henri Gilbert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Priority to US13/517,905 priority Critical patent/US20130010953A1/en
Priority to EP10805718A priority patent/EP2517397A1/fr
Publication of WO2011083232A1 publication Critical patent/WO2011083232A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Definitions

  • the present invention relates to the field of secret key cryptography. It relates to a method of encryption and decryption.
  • the invention allows a set of users to share the power to encrypt or decrypt a message with a secret key, without any of the users who participated in the encryption is aware of the key.
  • the invention finds a particularly interesting application in critical activities where, for security reasons, trust is distributed between a predefined number of users. Thus, it is necessary that these users collaborate in order to encrypt a message in clear, or to decrypt an encrypted message. The power to encrypt or decipher a message is therefore not held by one person. For example, the opening of a bank vault, or the signature in a company can advantageously implement the methods of the invention.
  • the invention also finds an interesting application in electronic voting systems.
  • the sender and the recipient of a message share the knowledge of the same secret key K. This allows the sender to transform a plaintext message into a cryptogram, or encrypted message, and to the recipient recover the message in clear from the encrypted message.
  • the invention improves the situation by proposing a method for encrypting a clear message element x into an encrypted message element associated with a random vector ⁇ a, y) by a first subset of p encryption users, in which the message element is encoded using an error correction code C and then encrypted by means of a secret matrix M parameterized by the random vector a and noised by a noise vector, characterized in that it comprises a step of obtaining the secret matrix parameterized by the random and noisy vector, by adding secret user matrices specific to the encrypting users, said user secret matrices being parameterized by the random vector and noisy by vectors noise specific to the encryption users.
  • a "message element” comprises all or part of a message.
  • the encryption functionality is shared between encrypting users who must collaborate to encrypt the message element in the clear. None of the encrypting users are aware at any time of the secret matrix used during the encryption operation. Indeed, it is necessary that the p users collaborate for the encryption operation, otherwise, no one is able to perform the operation. In addition, any new encryption operation requires that users collaborate again, even if it is the same secret matrix that is involved, or in other words, even if the same encrypting users are involved.
  • the encryption functionality according to the invention is reconfigurable in the sense that a new group of encryption users, different from the group of encrypting users, can be defined in order to implement the sharing of the encryption functionality between these q users without requiring a specific prior configuration such as a distribution to each q users of the new group of new clean secret matrices.
  • the method of the invention also has proven security, which is rare in symmetric cryptography.
  • the encryption according to the invention is based on encryption symmetric probabilistic for which it is possible to prove security by a reductionist approach of translating security into an hypothesis on the difficulty of solving a known problem. In other words, it is possible to prove that, to break the security of this method of encryption, an attacker must be able to solve a known problem, presumed difficult.
  • the well-defined and well-known problem is the "LPN" problem (for "Learning Parity with Noise").
  • the method of the invention requires limited computing capabilities.
  • the method finds an interesting application in environments where the computing capacity is limited and where the required level of security is still high.
  • the method can be implemented in user terminals of the mobile terminal type.
  • the first subset of p encryption users and a second subset of q deciphering users form a set of p + q users and there is provided a step of reception by each user of said set of a secret user matrix own, the sum of the p + q own user matrices being equal to a null matrix.
  • the sum of the n proper matrices of the n users is equal to the null matrix.
  • This preliminary phase is only executed once.
  • none of the users, at any time, is aware of the secret matrix used to encrypt the clear message element. Indeed, the secret matrix is never computed as such but the collaboration of all the encryption users makes it possible to obtain the secret matrix parameterized by a random and noisy.
  • the clean secret matrices distributed during the prior phase can be used for successive decryption or decryption operations without the security level of these operations being altered.
  • the method of the invention comprises a step of:
  • This exemplary embodiment provides a simple way of generating the clean secret matrices of the n users, the sum of these n own matrices being equal to the null matrix.
  • (n-1) matrices are generated randomly.
  • the nth and last matrix is then obtained by solving a simple equation where the sum of this nth matrix with randomly generated (n-1) matrices is equal to the null matrix.
  • the prior phase of generating and distributing the clean matrices is fast and requires little computing resources.
  • the invention also relates to a method of decryption by a second subset of q deciphering users of the encrypted message element associated with the random vector (, y) and obtained according to the encryption method of the invention, comprising the steps of :
  • each deciphering user vector comprising a specific matrix of said user parameterized by the random vector
  • the calculation of the sum and the decoding are carried out by one of the deciphering user q, said master decipherer user, and the sum contains the noise vectors generated for the q - 1 other users, excluding the noise vector of the master decryptor user.
  • a decryptor user plays the role of the decryption entity.
  • it receives from all the other deciphering users a contribution to decryption comprising a respective vector and a noise vector generated by the noise source specific to each of the users.
  • the encryption he must then calculate the sum of the cipher, contributions received from other users and his own contribution. Its own contribution usually comprises its respective vector and a noise vector generated by the noise source of its own. However, since he knows the value of his own noise vector, he can eliminate it from his contribution.
  • the cipher it calculates the sum of the cipher, the contributions of the other users and its respective vector.
  • the noise The sum obtained by summing the noise is then reduced, compared to the embodiment where the decryption entity calculates a total noise equal to the sum of the noise vectors of all the deciphering users.
  • the decoding procedure is facilitated.
  • the invention also relates to an encryption entity capable of encrypting a clear message element x into an encrypted message element associated with a random vector ⁇ a, y) for a subset of encrypting users, comprising:
  • encoding means adapted to encode the message element by means of an error correction code
  • encryption means adapted to encrypt said encoded element by means of a secret matrix parameterized by the random and noisy vector, the parameterized and noisy matrix being obtained by adding secret user matrices specific to the encrypting users, said matrices user secrets being parameterized by the random vector and noisy by noise vectors specific to the encrypting users.
  • the invention also relates to an encryption and decryption system comprising an encryption entity and a decryption entity according to the invention, comprising:
  • reception means adapted to receive an encrypted message element associated with a random vector (a, y), and to receive at least (q-1) noise vectors generated by (q-1) decryption users,
  • computing means adapted to calculate the sum of the encrypted message element and the at least noise vectors (q-1),
  • the decryption entity is a device of a decryption user further comprising means for calculating a respective vector, comprising a specific matrix of said user parameterized by the random vector.
  • the invention also relates to a computer program intended to be installed in a memory of an encryption entity, comprising instructions for implementing the steps of the encryption method according to the invention, when the program is executed by a processor.
  • the invention also relates to a data carrier on which the previous computer program is stored.
  • the invention also relates to a computer program for installation in a memory of a decryption entity, including instructions for the implementation of steps of the decryption method according to the invention, when the program is executed by a processor.
  • the invention also relates to a data carrier on which the above computer program is recorded.
  • the figurel represents a flowchart of the steps of an encryption method according to a particular embodiment
  • FIG. 2 represents a flowchart of the steps of a method for decrypting an encrypted message in accordance with the encryption method of the invention, according to a particular embodiment
  • FIG. 3 represents a functional block diagram of a particular form of an encryption entity adapted to implement the encryption method according to the invention
  • FIG. 4 represents a functional block diagram of a particular form of a decryption entity adapted to implement the decryption method according to the invention.
  • the encryption / decryption method according to the invention makes it possible to share the encryption and decryption functionality between several users. It is based on symmetric probabilistic decryption encryption as described in the international patent application published under the number WO2009 / 095574. This application describes a probabilistic encryption which, by definition, involves a hazard in the encryption and which further relies on the combination of an error correction code encoding and the addition of a noise. This combination has the effect of making it more difficult for the decryption of the encrypted by an adversary while being adapted to be naturally deleted by the decoding of the error correction code. With this encryption, it is possible to prove security by a reductionist approach of translating security into an assumption about the difficulty of solving a known problem.
  • the probabilistic symmetric encryption between a transmitter and a receiver described in the international application uses: a binary error correction code, denoted C, of length m, of dimension r and of correction capacity t.
  • the correction code C is a function of a binary space of dimension r ⁇ 0, l ⁇ r in a binary space of dimension m ⁇ , ⁇ ".
  • This function is adapted to transform a message of r bits into a word of m bit code, with m> r, by adding redundancy bits
  • the correction code C is adapted to ensure that, if a number of errors less than the correction capacity t is added to the code word , the decoding makes it possible to restore the original message
  • the corrector code can be a code by block, or a convolutional code
  • a Bernoullian noise source B accessible by the transmitter and adapted to generate a bit noise vector £ at m bits.
  • This source produces independent bits worth 1 with a robustness ⁇ , and independent bits worth 0 with a probability 1 - 7], with
  • the Bernoullian noise source B is adapted so that the probability that the
  • the Hamming weight associated with the noise vector £ to be greater than the correction capacity / correction code is very low.
  • this threshold may be equal to 10 -3 .
  • the Hamming weight of a binary vector is the number of bits different from 0, in other words equal to 1, of this vector.
  • Hwt ( ⁇ ) is less than or equal to the correction capacity t of the correction code C.
  • the transmitter tests the noise vector ⁇ before adding it, in order to verify that the condition Hwt ⁇ ) ⁇ t is indeed satisfied. If this is not the case, the transmitter regenerates this vector;
  • the transmitter To encrypt a clear message element x of r bits, the transmitter performs the following operations:
  • is an m-bit noise vector produced by the Bernernian noise source B.
  • the cipher transmitted to the receiver is then defined by a pair ( a, y) composed of the encrypted message element y and the random vector used to encrypt said message element.
  • the message is split into r-bit message elements, possibly with an addition of predetermined values to to complete a block with r bits, if the value R is not a multiple of r (we usually speak of padding), the encryption procedure is then applied to each of the blocks of r bits.
  • a receiver When a receiver receives the pair [a, y], it adds to the cipher y its secret matrix parameterized by the random vector a, in other words it calculates y ⁇ a ⁇ M. Then he decodes the result. If the Hamming weight of the added noise vector ⁇ is less than the correction capability t of the code, the clear message element is found.
  • an encryption entity 12 is adapted to calculate an encryption of the clear message element x from information received from the users who collaborate on the encryption. In another embodiment, it is one of the users (or more) among the users who collaborate with the encryption that performs this calculation and plays the role of the encryption entity 12.
  • a prior configuration phase E10 the key distribution entity 11 generates and distributes n secret matrices belonging to the n users.
  • the preliminary configuration phase E10 comprises a first step E10-1 for generating clean secret matrices.
  • this generation step El 0-1 the key distribution entity 11 generates n own secret matrices such that the sum of the generated n matrices is equal to the null matrix.
  • M, ⁇ ... ⁇ M n 0.
  • the key distribution entity 11 transmits securely to each of the n users Ui, U "of group 10 its own secret matrix M], M n .
  • the clean secret matrices are received by each of the n users during an E10-3 reception step.
  • the preliminary configuration phase E10 is executed only once.
  • the following steps concern the group Gl of encrypting users.
  • the encryption entity 12 randomly generates a random vector a of k bits, and distributes this vector a to all the encrypting users during a step E13 sending of hazard.
  • the random vector a is received by each of the encryption users during a reception step E14.
  • each of the p encrypting users U d calculates a vector b ci equal to the secret matrix of said user, parameterized by the random vector a and to which is added a vector s own noise above the user.
  • each encryption user U ci calculates b ci - a ⁇ M ci ⁇ S ci , where £ ci is a noise vector of m bits produced by a source of noise level Bernanlian noise noise 7], the source of noise being independent for each user.
  • Each encryptor user U ci transmits his vector b ci to the encryption entity 12 in a step E16 for receiving the respective vectors.
  • the vectors b c! encrypting users are received by the encryption entity 12 during a step E17 for receiving the eigenvectors.
  • the encryption entity 12 calculates the encryption of the clear message element.
  • the encryption entity 12 encodes the plaintext message x using the error correction code C and adds to this encoded value the sum of the respective vectors b ci received from the encrypting users. In other words, the encryption entity 12 calculates:
  • This calculation is in accordance with a symmetric probabilistic ciphering in which the secret matrix is the sum of the respective secret matrices of the ciphering users, and the brait vector is equal to the sum of the respective noises produced by the c encryption users.
  • the cipher is calculated by the encryption entity 12 without it, at any moment does not have the secret matrix of encryption used, in this case the sum of the own matrices of the encrypting users. Indeed, the entity has received the eigenvectors calculated independently of each other by the encrypting users for the clear message x. At no time is the secret encryption matrix manipulated as such.
  • step E19 sending an encrypted, the encryption entity 12 sends a pair
  • the secret matrices specific to each of the n users are Toeplitz matrices. It is known that in a Toeplitz matrix, the coefficients on a diagonal descending from left to right are the same. Thus, the set of coefficients of a clean secret matrix can be deduced from the only coefficients of the first row and the first column of the matrix. Also, it is sufficient for each user to store the only coefficients of the first row and the first column of the conversion matrix to have all the coefficients of its own secret matrix.
  • the distribution of the secret matrices of the users carried out during the step E10-2 of the prior configuration phase E10 can be done in accordance with various known existing procedures.
  • each user U can move physically to obtain its matrix of the key distribution entity IL
  • the distribution is performed through a secure distribution channel by cryptographic means well known to those skilled in the art and based on example on public key cryptography.
  • the matrix is distributed to the user by telephone.
  • the generation step El 0-1 clean secret matrices of the prior phase for the distribution entity lia generate n - 1 clean matrices for n - 1 users in a random manner.
  • the distribution entity 11 then calculates the nth eigenmatrix of the nth user, so that the sum of the n clean secret matrices is equal to the null matrix.
  • a decryption entity 20 is in charge of decrypting an encrypted message y of a clear message x obtained by collaboration of a group G1 of encrypting users U c i, U cp (not shown in FIG. FIG. 2), in accordance with the encryption method described with reference to FIG.
  • the decryption entity 20 receives, for example from an encryption entity 12 according to FIG. 1 (not shown in FIG. 2), a pair (a, y) comprising the random vector a and the cipher calculated therein according to the encryption method described in connection with Figure 1.
  • the cipher was obtained by collaboration of users c encryptors.
  • is intended for a group G2 of q users U d ], U dq , said decryption users, able to decipher it by collaborating.
  • the set of encrypting users and the set of deciphering users make up the group 10 of the n users according to FIG. 1, n therefore being equal to the sum of p and q.
  • each decryptor user ⁇ 3 ⁇ 4 ⁇ calculates a respective vector v dJ including its own matrix M dj parameterized by the random vector a.
  • each deciphering user adds to the respective vector a noise vector e dj of m bits generated by a Bernernn noise source B of parameter ⁇ , the noise source being independent of one user to another.
  • each deciphering user 13 ⁇ 4 transmits its respective noisy vector b dj to the decryption entity 20.
  • the decryption entity 20 receives the set of the respective noisy vectors b d ⁇ decoding users 13 ⁇ 4.
  • a decryption step E25 the decryption entity 20 decodes the encrypted message element y.
  • the decryption entity 20 calculates in a computation substep E25-1 the sum of the encrypted message element y and the respective q noisy vectors b d - deciphering users. In other words, the entity 20 calculates:
  • the sum of the own matrices of the encrypting users U ci and the eigenmatrices of the q wasteful users is equal to the sum of the own matrices of the n users. Since the sum of the clean secret matrices of the n users is equal to the null matrix, then the sum (1) calculated by the entity is equal to:
  • the decryption entity 20 proceeds to decode the sum (1) calculated using the error correction code C. If the weight of
  • each deciphering user transmits to the other deciphering users its respective noisy vector, for example by a diffusion mechanism.
  • the user decryptor U dk calculates:
  • the decoding operation is performed by the decoding user U dk - H is now provided some examples of embodiment of this encryption method with concrete parameters.
  • the security of the encryption system depends on the difficulty of solving the LPN problem.
  • this difficulty is based on the parameters k and ⁇ , corresponding to the number of bits of the random vector a and the probability for a bit of the noise vector ⁇ to be 1 respectively. It is therefore necessary to choose values suitable for these parameters, to guarantee a good security of the system.
  • Two examples of suitable values for these parameters k and ⁇ are as follows:
  • the error correction code C used has an impact on the efficiency of the system, but not on its security. Indeed, if the code C is of dimension r, the total size of the element of the cipher, for a message element in clear x of r bits is (m + k) bits. There is, therefore, a certain expansion of the cipher, which incites, at fixed k, to take the greatest possible, and m, the smallest possible.
  • (7 the expansion factor
  • the correction capacity t and the length m of the code C must verify t > ⁇ * ⁇ , ⁇ ⁇ is the total noise resulting from the addition of all the noise vectors of the users. It is easily shown that when adding n noise parameter independent noise vectors 7], the noise parameter
  • the resulting noise is J - 0.244.
  • This case corresponds for example to the case where the functionality is shared between four users and where the decryption is performed by a user decryptor; in this case, the user decryptor can subtract the noise he generated.
  • the parameters of the code C are denoted [/? Z, r, ⁇ f], where m is the length of the code, r is its dimension and d is its minimum dimension, the correction capacity t being linked to the distance
  • An encryption entity 12 able to implement the encryption method will now be described in relation with FIG. 3.
  • Such an entity is for example a computer of server type capable of communicating with a plurality of encryption users.
  • the encryption entity 12 comprises several modules:
  • a processor 121 or “CPU” (of the "Central Processing Unit"), or processing unit;
  • a memory 122 makes it possible to perform calculations, to load software instructions corresponding to the steps of the encryption method described above, and to execute them by the microprocessor 121;
  • communication interfaces 123 adapted to send to encryption users a random vector a, to receive from the encrypting users respective vectors, and to transmit to a second entity, for example a decryption entity, a pair (a, y) where a is the random vector and y is a cipher of a clear message x.
  • the interfaces 123 allow the implementation of the steps E13 sending random, E16 receiving the respective vectors and E19 sending the encrypted. These steps have been described in connection with Figure 1;
  • the encryption entity 12 also hosts an application in the form of a program, able to implement the steps of the encryption method described above.
  • entity 12 also includes:
  • a pseudo-random generator 124 adapted to generate the random vector a.
  • the generator 124 implements the step E12 for drawing a random vector described previously;
  • an encoding module 125 adapted to encode the plaintext message x by means of an error correction code C;
  • a calculation module 126 adapted to calculate the encrypted value of the plaintext message x from the encoded clear message and the respective vectors received from the encryption users.
  • the computation performed by the module 126 is in accordance with a symmetric probabilistic ciphering in which the secret matrix is the sum of the respective secret matrices of the ciphering users, and the noise vector is equal to the sum of the respective noises produced by the c encryption users.
  • the calculation module 126 cooperates with the encoding module to obtain the encoded clear message.
  • the encoding modules 125 and calculation 126 implement the step E18 for calculating the cipher.
  • the modules 123, 124, 125 and 126 which implement the encryption method described above are preferably software modules comprising software instructions for executing the steps of the encryption method.
  • the invention therefore also relates to:
  • a computer program comprising instructions for implementing the encryption method as described above when this program is executed by a processor, and a recording medium readable by a computer on which the program described above is recorded.
  • the software modules can be stored in or transmitted by a data carrier.
  • a data carrier This may be a hardware storage medium, for example a CD-ROM, a magnetic diskette or a hard disk, or a transmission medium such as a signal, or a telecommunications network.
  • a decryption entity 20 capable of implementing the decryption of an encryption obtained according to the previously described encryption method will now be described in relation with FIG. 4.
  • Such an entity is for example a server computer capable of communicating with a plurality of deciphering users.
  • the decryption entity 20 comprises several modules:
  • processor 201 or CPU
  • a memory 202 makes it possible to perform calculations, to load software instructions corresponding to the steps of the encryption method described above, and to execute them by the processor 201;
  • the communication interfaces 203 adapted to receive a pair (a, y) of the encryption entity 12, where a is the random vector and y an encrypted of a clear message x and to receive at least (q-1 ) decoding users a respective noisy vector.
  • the decryption entity is an entity independent of the users, it is received by the interfaces 203 q noisy vectors q q decryption users.
  • the decryption is performed by a particular decryptor user device, it is received by these interfaces only (q-1) respective noisy vectors (q-1) other users.
  • the interfaces 203 make it possible to implement the steps E20 for receiving an encryption and E24 for receiving the respective noisy vectors of the deciphering users. These steps have been described in connection with Figure 2;
  • the decryption entity 20 also hosts an application in the form of a program, able to implement the steps of the decryption method described above.
  • the entity 20 also comprises:
  • a computation module 204 adapted to calculate the sum of the encrypted message element y and at least (q-1) noisy vectors received from the deciphering users.
  • the decryption is performed by a particular user decryptor device, and where it is received by the interfaces 203 only (q-1) respective noise vectors, it is calculated by the calculation module 20 the sum of encrypted, noisy vectors (q-1) and the noisy vector specific to the decipherer user device.
  • the non-noisy vector is equal to the own matrix of this deciphering user, parameterized by the random vector. Indeed, in this embodiment, it is not useful for the user device that decrypts to add its own noise vector that it knows.
  • the module 204 implements the substep E25-1 calculation previously described;
  • a decoding module 205 adapted to decode the code word C (x) obtained by the calculation module 204 by means of the error correction code C.
  • the module 205 implements the substep E25-2 decoding described above.
  • the calculation module 204 and the decoding module 205 perform the decryption step E25 described above.
  • the modules 203, 204 and 205 which implement the decryption method described above are preferably software modules comprising software instructions for executing the steps of the encryption method.
  • the invention therefore also relates to:
  • the software modules can be stored in or transmitted by a data carrier.
  • a data carrier This may be a hardware storage medium, for example a CD-ROM, a magnetic diskette or a hard disk, or a transmission medium such as a signal, or a telecommunications network.
  • the invention is not limited to an encryption entity, respectively server type decryption.
  • the encryption or decryption entity is a mobile user terminal.
  • an entity capable of encrypting is also able to decrypt. It is therefore able to implement the encryption method and the decryption method.

Landscapes

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

Abstract

L'invention concerne un procédé de chiffrement d'un élément de message clair {x ) en un élément de message chiffré associé à un vecteur aléatoire ( {a, y)) par un premier sous-ensemble de p utilisateurs chiffreurs, dans lequel l'élément de message (x ) est encodé ( C(x) ) à l'aide d'un code correcteur d'erreur ( C) puis chiffré au moyen d'une matrice secrète (M) paramétrée par le vecteur aléatoire (a ) et bruitée par un vecteur de bruit (£ ), caractérisé en ce qu'il comprend une étape (E18) d'obtention de la matrice secrète (M) paramétrée par le vecteur aléatoire et bruitée, par addition de matrices secrètes d'utilisateur propres aux p utilisateurs chiffreurs, lesdites matrices secrètes d'utilisateur étant paramétrées par le vecteur aléatoire et bruitées par des vecteurs de bruit propres aux p utilisateurs chiffreurs.

Description

Procédé de chiffrement et de déchiffrement
La présente invention concerne le domaine de la cryptographie à clé secrète. Elle porte sur un procédé de chiffrement et de déchiffrement.
Plus précisément, l'invention permet à un ensemble d'utilisateurs de partager le pouvoir de chiffrer ou de déchiffrer un message avec une clé secrète, sans qu'aucun des utilisateurs ayant participé au chiffrement n'ait connaissance de la clé.
L'invention trouve une application particulièrement intéressante dans des activités critiques où, pour des raisons de sécurité, la confiance est distribuée entre un nombre prédéfini d'utilisateurs. Ainsi, il est nécessaire que ces utilisateurs collaborent afin de chiffrer un message en clair, ou de déchiffrer un message chiffré. Le pouvoir de chiffrer ou de déchiffrer un message n'est donc pas détenu par une seule personne. Par exemple, l'ouverture d'un coffre de banque, ou la signature dans une entreprise peuvent avantageusement mettre en œuvre les procédés de l'invention. L'invention trouve également une application intéressante dans des systèmes de vote électronique.
En cryptographie symétrique, l'émetteur et le destinataire d'un message partagent la connaissance d'une même clé secrète K. Celle-ci permet à l'émetteur de transformer un message en clair en un cryptogramme, ou message chiffré, et au destinataire de recouvrer le message en clair à partir du message chiffré.
H existe des cas où l'on souhaite partager le pouvoir de chiffrer ou déchiffrer un message entre plusieurs utilisateurs qui doivent alors nécessairement collaborer pour effectuer l'opération. Par exemple, une telle fonctionnalité peut être requise dans une entreprise où une information ne doit pouvoir être divulguée que lorsque n dirigeants sont d'accord pour la déchiffrer.
Le partage de fonctionnalité de déchiffrement a déjà été étudié, et des solutions sont connues dans le cadre du chiffrement asymétrique. En ce qui concerne le chiffrement symétrique, une façon connue de procéder consiste à partager une clé secrète K au moyen d'un schéma de partage de secret, tel que par exemple le schéma de Shamir (A. Shamir. « How to share a secret ». In Communication of the ACM, volume 22, n.l l, p.612-613, 1979). Avec ce schéma, un secret est réparti entre n utilisateurs et il suffit que t d'entre eux mettent en commun leur part de secret pour reconstituer le secret. Cependant, avec ce shéma, une fois que le nombre requis d'utilisateurs a collaboré une première fois et mis en commun leur part de secret, le secret est reconstitué. Chacun des utilisateurs peut alors déchiffrer n'importe quel message chiffré et chiffrer n'importe quel message clair. Cela garantit un niveau de sécurité élévé pour la première opération de chiffrement déchiffrement uniquement. Pour maintenir un niveau de sécurité élevé pour une opération suivante de chiffrement et de déchiffrement de message, il est alors nécessaire de redistribuer un nouveau secret aux n utilisateurs, conformément au schéma de partage de secret utilisé. En outre, un tel schéma n'est pas reconfigurable dans le sens où une fois qu'un groupe de n utilisateurs est établi et qu'un secret a été partagé entre ces n utilisateurs, il n'est pas possible pour un sous-ensemble de p parmi ces n utilisateurs de chiffrer un message à l'attention, par exemple des n-p autres utilisateurs sans redéfinir le partage d'un nouveau secret adapté à cette nouvelle configuration.
L'invention vient améliorer la situation en proposant un procédé de chiffrement d'un élément de message clair x en un élément de message chiffré associé à un vecteur aléatoire {a, y) par un premier sous-ensemble de p utilisateurs chiffreurs, dans lequel l'élément de message est encodé à l'aide d'un code correcteur d'erreur C puis chiffré au moyen d'une matrice secrète M paramétrée par le vecteur aléatoire a et bruitée par un vecteur de bruit £ , caractérisé en ce qu'il comprend une étape d'obtention de la matrice secrète paramétrée par le vecteur aléatoire et bruitée, par addition de matrices secrètes d'utilisateur propres aux p utilisateurs chiffreurs, lesdites matrices secrètes d'utilisateur étant paramétrées par le vecteur aléatoire et bruitées par des vecteurs de bruit propres aux p utilisateurs chiffreurs.
D'emblée, on notera que, par définition, un "élément de message" comprend tout ou partie d'un message.
Avec le procédé selon l'invention, la fonctionnalité de chiffrement est partagée entre p utilisateurs chiffreurs qui doivent collaborer pour chiffrer l'élément de message en clair. Aucun des p utilisateurs chiffreurs n'a connaissance à aucun moment de la matrice secrète utilisée au cours de l'opération de chiffrement. En effet, il est nécessaire que les p utilisateurs collaborent pour l'opération de chiffrement, faute de quoi, personne n'est en mesure d'effectuer l'opération. En outre, toute nouvelle opération de chiffrement nécessite que les utilisateurs collaborent à nouveau, même si c'est la même matrice secrète qui est impliquée, ou en d'autres termes, même si ce sont les mêmes p utilisateurs chiffreurs qui sont impliqués.
D'autre part, la fonctionnalité de chiffrement selon l'invention est reconfigurable dans le sens où un nouveau groupe de q utilisateurs chiffreurs, différent du groupe de p utilisateurs chiffreurs peut être défini afin de mettre en œuvre le partage de la fonctionnalité de chiffrement entre ces q utilisateurs sans nécessiter une configuration spécifique préalable telle qu'une distribution à chacun des q utilisateurs du nouveau groupe de nouvelles matrices secrètes propres.
Le procédé de l'invention possède par ailleurs une sécurité prouvée, ce qui est rare en cryptographie symétrique. En effet, le chiffrement selon l'invention repose sur un chiffrement probabiliste symétrique pour lequel il est possible de prouver la sécurité par une approche réductionniste consistant à traduire la sécurité en une hypothèse sur la difficulté de résoudre un problème connu. En d'autres termes, il est possible de prouver que, pour casser la sécurité de cette méthode de chiffrement, un attaquant doit être capable de résoudre un problème connu, présumé difficile. Dans le cadre du présent chiffrement, le problème bien défini et bien connu est le problème "LPN" (pour "Learning Parity with Noise").
En outre, le procédé de l'invention requiert des capacités de calcul limitées. Ainsi, le procédé trouve une application intéressante dans des environnements où la capacité de calcul est limitée et où le niveau de sécurité requis est tout de même élevé. Par exemple, le procédé peut être mis en œuvre dans des terminaux d'utilisateur de type terminaux mobiles.
Avantageusement, le premier sous-ensemble de p utilisateurs chiffreurs et un deuxième sous-ensemble de q utilisateurs déchiffreurs forment un ensemble de p + q utilisateurs et il est prévu une étape de réception par chaque utilisateur dudit ensemble d'une matrice secrète d'utilisateur propre, la somme des p + q matrices d'utilisateur propres étant égale à une matrice nulle.
Dans une phase préalable de configuration, il est distribué à un ensemble de n utilisateurs constitué de p utilisateurs chiffreurs et de q utilisateurs déchiffreurs (n = p+ q), une matrice secrète propre. La somme des n matrices propres des n utilisateurs est égale à la matrice nulle. Cette phase préalable n'est exécutée qu'une fois. D'une part, avec le procédé de chiffrement de l'invention, respectivement de déchiffrement, aucun des utilisateurs, à aucun moment, n'a connaissance de la matrice secrète utilisée pour chiffrer l'élément de message clair. En effet, la matrice secrète n'est jamais calculée en tant que telle mais la collaboration de tous les utilisateurs chiffreurs permet l'obtention de la matrice secrète paramétrée par un aléa et bruitée. Ainsi, les matrices secrètes propres distribuées au cours de la phase préalable peuvent être utilisées pour des opérations de chiffrement, respectivement de déchiffrement, successives sans que le niveau de sécurité de ces opérations ne soit altéré.
De façon avantageuse, le procédé de l'invention comprend une étape de :
- génération pour chacun de p + q - 1 utilisateurs dudit ensemble d'une matrice secrète d'utilisateur propre aléatoire,
- génération pour le (p + q)-ième utilisateur d'une matrice secrète d'utilisateur propre adaptée pour que la somme de la matrice secrète du (p + q)-ième utilisateur et des p + q - 1 matrices secrètes aléatoires soit égale à la matrice nulle.
Cet exemple de réalisation propose un moyen simple de générer les matrices secrètes propres des n utilisateurs, la somme de ces n matrices propres étant égale à la matrice nulle. Ainsi, pour n utilisateurs, (n-1) matrices sont générées aléatoirement. La n-ième et dernière matrice est alors obtenue en résolvant une équation simple où la somme de cette n-ième matrice avec les (n-1) matrices générées aléatoirement est égale à la matrice nulle. Ainsi, la phase préalable de génération et de distribution des matrices propres est rapide et nécessite peu de ressources de calcul.
L'invention concerne aussi un procédé de déchiffrement par un deuxième sous- ensemble de q utilisateurs déchiffreurs de l'élément de message chiffré associé au vecteur aléatoire ( , y) et obtenu selon le procédé de chiffrement de l'invention, comprenant les étapes de :
- calcul par les q utilisateurs déchiffreurs de q vecteurs respectifs, chaque vecteur d'utilisateur déchiffreur comprenant une matrice propre dudit utilisateur paramétrée par le vecteur aléatoire,
- pour au moins q - 1 utilisateurs déchiffreurs, génération d'un vecteur de bruit propre à l'utilisateur,
- calcul de la somme de l'élément de message chiffré, des q vecteurs respectifs calculés, et des au moins q - 1 vecteurs de bruit générés,
- décodage de la somme calculée, à l'aide du code correcteur d'erreurs utilisé lors du chiffrement, afin d'obtenir l'élément de message en clair.
Avec le procédé de déchiffrement, aucun des utilisateurs déchiffreurs n'a connaissance, à aucun moment, de la matrice secrète utilisée au cours de l'opération de déchiffrement. En effet, la matrice secrète utilisée lors de cette opération n'est jamais calculée en tant que telle. Le déchiffrement du chiffré est obtenu au terme de la collaboration de tous les utilisateurs déchiffreurs.
Dans un exemple de réalisation du procédé de déchiffrement le calcul de la somme et le décodage sont réalisés par l'un des q utilisateurs déchiffreurs, dit utilisateur déchiffreur maître, et la somme contient les vecteurs de bruit générés pour les q - 1 autres utilisateurs, à l'exclusion du vecteur de bruit de l'utilisateur déchiffreur maître.
Dans ce mode de réalisation, un utilisateur déchiffreur joue le rôle de l'entité de déchiffrement. Ainsi, il reçoit de tous les autres utilisateurs déchiffreurs une contribution au déchiffrement comprenant un vecteur respectif et un vecteur de bruit généré par la source de bruit propre à chacun des utilisateurs. Pour déchiffrer le chiffré il doit alors calculer la somme du chiffré, des contributions reçues des autres utilisateurs et de sa propre contribution. Sa propre contribution comprend habituellement son vecteur respectif et un vecteur de bruit généré par la source de bruit qui lui est propre. Cependant, puisqu'il connaît la valeur de son propre vecteur de bruit, il peut l'éliminer de sa contribution. Ainsi, pour déchiffrer le chiffré il calcule la somme du chiffré, des contributions des autres utilisateurs et de son vecteur respectif. Le bruit total obtenu en faisant la somme des bruits est alors réduit, par rapport au mode de réalisation où l'entité de déchiffrement calcule un bruit total égal à la somme des vecteurs de bruit de tous les utilsateurs déchiffreurs. Ainsi, la procédure de décodage est facilitée.
L'invention concerne aussi un entité de chiffrement apte à chiffrer un élément de message clair x en un élément de message chiffré associé à un vecteur aléatoire {a, y) pour un sous-ensemble de p utilisateurs chiffreurs, comprenant :
- des moyens d'obtention d'un vecteur aléatoire,
- des moyens d'encodage, adaptés pour encoder l'élément de message au moyen d'un code correcteur d'erreurs,
- des moyens de chiffrement, adaptés pour chiffrer ledit élément encodé au moyen d' une matrice secrète paramétrée par le vecteur aléatoire et bruitée, la matrice paramétrée et bruitée étant obtenue par addition de matrices secrètes d'utilisateur propres aux p utilisateurs chiffreurs, lesdites matrices secrètes d'utilisateur étant paramétrées par le vecteur aléatoire et bruitées par des vecteurs de bruit propres aux p utilisateurs chiffreurs.
L'invention porte aussi sur un système de chiffrement et de déchiffrement comprenant une entité de chiffrement et une entité de déchiffrement selon l'invention, comprenant :
- des moyens de réception adaptés pour recevoir un élément de message chiffré associé à un vecteur aléatoire (a, y), et pour recevoir au moins (q-1) vecteurs de bruit générés par (q-1) utilisateurs déchiffreurs,
- des moyens de calcul adaptés pour calculer la somme de l'élément de message chiffré et des au moins (q-1) vecteurs de bruit,
- des moyens de décodage de la somme calculée, à l'aide du code correcteur d'erreurs utilisé lors du chiffrement, afin d'obtenir l'élément de message en clair.
Dans un exemple de réalisation du système selon l'invention, l'entité de déchiffrement est un dispositif d'un utilisateur déchiffreur comprenant en outre des moyens de calcul d'un vecteur respectif, comprenant une matrice propre dudit utilisateur paramétrée par le vecteur aléatoire.
L'invention concerne aussi un programme d'ordinateur destiné à être installé dans une mémoire d'une entité de chiffrement, comprenant des instructions pour la mise en œuvre des étapes du procédé de chiffrement selon l'invention, lorsque le programme est exécuté par un processeur.
L'invention porte également sur un support de données sur lequel est enregistré le programme d'ordinateur précédent.
L'invention porte aussi sur un programme d'ordinateur destiné à être installé dans une mémoire d'une entité de déchiffrement, comprenant des instructions pour la mise en œuvre des étapes du procédé de déchiffrement selon l'invention, lorsque le programme est exécuté par un processeur.
L'invention concerne aussi un support de données sur lequel est enregistré le programme d'ordinateur ci-dessus.
D'autres caractéristiques et avantages de la présente invention seront mieux compris à la lecture de la description en référence aux dessins annexés donnés à titre non limitatif, et dans lesquels :
- la figurel représente un organigramme des étapes d'un procédé de chiffrement selon un mode particulier de réalisation ;
- la figure 2 représente un organigramme des étapes d'un procédé de déchiffrement d'un message chiffré conformément au procédé de chiffrement de l'invention, selon un mode particulier de réalisation ;
- la figure 3 représente un schéma bloc fonctionnel d'une forme particulière d'une entité de chiffrement adaptée pour mettre en œuvre le procédé de chiffrement selon l'invention ;
- la figure 4 représente un schéma bloc fonctionnel d'une forme particulière d'une entité de déchiffrement adaptée pour mettre en œuvre le procédé de déchiffrement selon l'invention.
Le procédé de chiffrement/déchiffrement selon l'invention permet un partage de la fonctionnalité de chiffrement et de déchiffrement entre plusieurs utilisateurs. Il repose sur un chiffrement déchiffrement probabiliste symétrique tel que décrit dans la demande de brevet internationale publiée sous le numéro WO2009/095574. Cette demande décrit un chiffrement probabiliste qui, par définition, fait intervenir un aléa dans le chiffrement et qui en outre repose sur la combinaison d'un encodage par code correcteur d'erreurs et de l'ajout d'un bruit. Cette combinaison a pour effet de rendre plus difficile le déchiffrement du chiffré par un adversaire tout en étant adapté pour être naturellement supprimé par le décodage du code correcteur d'erreurs. Avec ce chiffrement, il est possible de prouver la sécurité par une approche réductîonniste consistant à traduire la sécurité en une hypothèse sur la difficulté de résoudre un problème connu. En d'autres termes, il est possible de prouver que, pour casser la sécurité de cette méthode de chiffrement, un attaquant doit être capable de résoudre un problème connu, présumé difficile. Dans le cadre du présent chiffrement, le problème bien défini et bien connu est le problème "LPN" (pour "Learning Parity with Noise").
Plus précisément, le chiffrement symétrique probabiliste entre un émetteur et un récepteur décrit dans la demande internationale utilise : - un code correcteur d'erreurs binaire, noté C , de longueur m , de dimension r et de capacité de correction t . Le code correcteur C est une fonction d'un espace binaire de dimension r {0,l}r dans un espace binaire de dimension m {θ,ΐ}"' . Cette fonction est adaptée pour transformer un message de r bits en un mot de code de m bits, avec m > r , par ajout de bits de redondance. En outre, le code correcteur C est adapté pour garantir que, si un nombre d'erreurs inférieur à la capacité de correction t est ajouté au mot de code, le décodage permet de restituer le message d'origine. Le code correcteur peut être un code par bloc, ou un code convolutif ;
- une source de bits aléatoires, ou pseudo-aléatoires, notée S, accessible par l'émetteur ;
- une source bruit bernoullien B, accessible par l'émetteur et adaptée pour générer un vecteur de bruit binaire £ à m bits. Cette source produit des bits indépendants valant 1 avec une robabilité η , et des bits indépendants valant 0 avec une probabilité 1 - 7] , avec
77 e . En outre, la source de bruit bernoullien B est adaptée pour que la probabilité que le
Figure imgf000009_0001
poids de Hamming associé au vecteur de bruit £ d'être supérieur à la capacité de correction / du code correcteur soit très faible. A titre d'exemple, ce seuil peut être égal à 10-3 . Par définition, le poids de Hamming d'un vecteur binaire est le nombre de bits différents de 0, autrement dit valant 1, de ce vecteur. Ainsi, pour la plupart des vecteurs de bruit ε générés par la source B, le poids de Hamming du vecteur ε , noté Hwt(£ ) est inférieur ou égal à la capacité de correction t du code correcteur C . Dans une variante, l'émetteur teste le vecteur de bruit ε avant de l'ajouter, afin de vérifier que la condition Hwt{ )≤ t est bien vérifiée. Si ce n'est pas le cas, l'émetteur régénère ce vecteur ;
- une matrice M de taille k * m, constituant la clé secrète partagée entre l'émetteur et le récepteur.
Pour chiffrer un élément de message clair x de r bits, l'émetteur effectue les opérations suivantes :
il obtient un vecteur aléatoire a de k bits de la source S ;
il calcule ensuite un vecteur bruité y = C(x) © <z · © ε , où ε est un vecteur de bruit de m bits produit par le source de bruit bernouillen B. Le chiffré transmis au récepteur est alors défini par une paire (a, y) composée de l'élément de message chiffré y et du vecteur aléatoire a utilisé pour chiffrer ledit élément de message.
Pour chiffrer un message de R > r bits, le message est découpé en éléments de message de r bits, avec éventuellement un ajout de valeurs prédéterminées pour compléter un bloc à r bits, si la valeur R n'est pas un multiple de r (on parle habituellement de padding), La procédure de chiffrement est alors appliquée à chacun des blocs de r bits.
Lorqu'un récepteur reçoit la paire [a, y], il ajoute au chiffré y sa matrice secrète paramétrée par le vecteur aléatoire a , autrement dit il calcule y © a · M . Puis il décode le résultat. Si le poids de Hamming du vecteur de bruit £ qui a été ajouté est inférieur à la capacité de correction t du code, l'élément de message clair est retrouvé.
Les étapes d'un procédé de chiffrement selon un mode particulier de réalisation vont maintenant être décrites en relation avec la figure 1.
Soit un ensemble 10 constitué de n utilisateurs Uj,..., U„. Dans cet ensemble, on considère qu'une pluralité d'utilisateurs souhaitent collaborer afin de chiffrer un message clair X de taille 7? bits. D'emblée, on note que le message X est découpé en une pluralité d'éléments de message x de r bits, avec r < R , avec éventuellement un ajout de valeurs prédéterminées pour compléter un bloc à r bits, si la valeur R n'est pas un multiple de r (on parle habituellement de padding). Par la suite, on parle du chiffrement de l'élément de message en clair x . Il est entendu que pour chiffrer le message clair X , le procédé de chiffrement selon l'invention est appliqué à chacun des éléments de message clair x qui constituent le message clair X .
Une entité de distribution de clés 11 en laquelle les utilisateurs ont confiance est adaptée pour distribuer à chacun des n utilisateurs de l'ensemble 10 une clé secrète sous forme d'une matrice secrète propre de taille k * m.
Dans l'exemple de réalisation décrit ici, une entité de chiffrement 12 est adaptée pour calculer un chiffré de l'élément de message clair x à partir d'informations reçues des utilisateurs qui collaborent au chiffrement. Dans un autre exemple de réalisation, c'est un des utilisateurs (ou plusieurs) parmi les utilisateurs qui collaborent au chiffrement qui effectue ce calcul et joue le rôle de l'entité de chiffrement 12.
Dans une phase préalable E10 de configuration, l'entité de distribution de clés 11 génère et distribue n matrices secrètes propres aux n utilisateurs. La phase préalable E10 de configuration comprend une première étape E10-1 de génération des matrices secrètes propres. Dans cette étape El 0-1 de génération, l'entité de distribution de clés 11 génère n matrices secrètes propres de telle manière que la somme des n matrices générées est égale à la matrice nulle. Autrement dit, M, Θ ... Θ Mn = 0. Dans une deuxième étape E10-2 de transmission, l'entité de distribution de clés 11 transmet de manière sécurisée à chacun des n utilisateurs Ui, U„ du groupe 10 sa matrice secrète propre M], Mn. Les matrices secrètes propres sont reçues par chacun des n utilisateurs au cours d'une étape de réception E10-3.
La phase préalable de configuration E10 n'est exécutée qu'une fois.
Dans une étape suivante Eli de constitution d'un groupe d'utilisateurs chiffreurs, il est consituté un groupe Gl de p utilisateurs U0i, U02, Uop, dits utilisateurs chiffreurs, destinés à collaborer pour chiffrer l'élément de message clair x . Le groupe Gl constitue un sous- ensemble de l'ensemble d'utilisateurs 10.
Les étapes suivantes concernent le groupe Gl d'utilisateurs chiffreurs.
Dans une étape E12 de tirage d'un vecteur aléatoire, l'entité de chiffrement 12 génère de manière aléatoire un vecteur aléatoire a de k bits, et distribue ce vecteur a à l'ensemble des p utilisateurs chiffreurs au cours d'une étape E13 d'envoi d'aléa.
Le vecteur aléatoire a est reçu par chacun des p utilisateurs chiffreurs au cours d'une étape E14 de réception.
Dans une étape E15 de calcul de vecteurs propres, chacun des p utilisateurs chiffreurs Ud, avec 1 < i < p, calcule un vecteur bci égal à la matrice secrète dudit utilisateur, paramétrée par le vecteur aléatoire a et auquel est ajouté un vecteur de bruit sci propre à l'utilisateur. Autrement dit, chaque utilisateur chiffreur Uci calcule bci— a · Mci Θ Sci , où £ ci est un vecteur de bruit de m bits produit par une source de bruit bernoullien de paramètre de bruit 7] , la source de bruit étant indépendante pour chaque utilisateur. Chaque utilisateur chiffreur Uci transmet son vecteur bci à l'entité de chiffrement 12 dans une étape E16 de réception des vecteurs respectifs.
Les vecteurs bc! des p utilisateurs chiffreurs sont reçus par l'entité de chiffrement 12 au cours d'une étape E17 de réception des vecteurs propres.
Dans une étape E18 de calcul du chiffré, l'entité de chiffrement 12 calcule le chiffré de l'élément de message clair. A cette fin l'entité de chiffrement 12 encode le message clair x à l'aide du code correcteur d'erreurs C et ajoute à cette valeur encodée la somme des vecteurs bci respectifs reçus des p utilisateurs chiffreurs. En d'autres termes, l'entité de chiffrement 12 calcule :
y = C(x) © a (MBl Θ ... Θ Μ£ρ) θ ¾ ®... θ εφ
Ce calcul est conforme à un chiffrement probabiliste symétrique dans lequel la matrice secrète est la somme des matrices secrètes respectives des utilisateurs chiffreurs, et le vecteur de brait est égal à la somme des bruits respectifs produits par les p utilisateurs chiffreurs. On remarque que le chiffré y est calculé par l'entité de chiffrement 12 sans que celle-ci, à aucun moment ne dispose de la matrice secrète de chiffrement utilisée, en l'espèce la somme des matrices propres des p utilisateurs chiffreurs. En effet, l'entité a reçu les vecteurs propres calculés indépendamment les uns des autres par les p utilisateurs chiffreurs pour le message clair x . A aucun moment, la matrice secrète de chiffrement n'est manipulée en tant que tel.
Dans une étape E19 d'envoi d'un chiffré, l'entité de chiffrement 12 envoie une paire
(a, y) comprenant le vecteur aléatoire a et le chiffré y calculé au cours de l'étape El 8 à une entité destinataire (non représentée figure 1) apte à déchiffrer le chiffré reçu.
Dans un mode particulier de réalisation de l'invention, les matrices secrètes propres à chacun des n utilisateurs sont des matrices de Toeplitz. H est connu que dans une matrice de Toeplitz, les coefficients sur une diagonale descendant de gauche à droite sont les mêmes. Ainsi, l'ensemble des coefficients d'une matrice secrète propre peuvent se déduire des seuls coefficients de la première ligne et de la première colonne de la matrice. Aussi, il suffit pour chaque utilisateur de stocker les seuls coefficients de la première ligne et de la première colonne de la matrice de conversion pour disposer de l'ensemble des coefficients de sa matrice secrète propre. On remarque que si la somme des coefficients des premières lignes des matrices propres respectives des n utilisateurs est égale à 0, et si la somme des coefficients des premières colonnes des matrices propres respectives des n utilisateurs est égale à zéro, alors la somme des matrices propres respectives des n utilisateurs est égale à la matrice nulle. Utiliser des matrices de Toeplitz dans le procédé de l'invention est intéressant lorsque des équipements utilisateur mettant en œuvre le procédé de l'invention disposent de peu de mémoire de stockage. Ce peut être le cas lorsque l'invention est mise en œuvre dans des terminaux mobiles d'utilisateur.
La distribution des matrices secrètes des utilisateurs réalisée au cours de l'étape E10-2 de la phase préalable E10 de configuration peut se faire conformément à différentes procédures existantes connues. Par exemple, chaque utilisateur U; peut se déplacer physiquement pour obtenir sa matrice de l'entité de distribution de clés I L Dans un autre exemple de réalisation, la distribution est réalisée à travers un canal de distribution sécurisé par des moyens cryptographiques bien connus de l'homme dui métier et basés par exemple sur de la cryptographie à clé publique. Dans un autre exemple de réalisation, la matrice est distribuée à l'utilisateur par téléphone.
Dans un exemple de réalisation, l'étape de génération El 0-1 de matrices secrètes propres de la phase préalable consiste pour l'entité de distribution l i a générer n - 1 matrices propres pour n - 1 utilisateurs de manière aléatoire. L'entité de distribution 11 calcule ensuite la n-ième matrice propre du n-ième utilisateur, de manière à ce que la somme des n matrices secrètes propres soit égale à la matrice nulle. Les étapes d'un procédé de déchiffrement selon un mode particulier de réalisation vont maintenant être décrites en relation avec le figure 2.
Dans cet exemple de réalisation, une entité de déchiffrement 20 est en charge du déchiffrement d'un chiffré y d'un message clair x obtenu par collaboration d'un groupe Gl de p utilisateurs chiffreurs Uci, Ucp (non représenté sur la figure 2), conformément au procédé de chiffrement décrit en relation avec la figure 1.
Dans une étape E20 de réception d'un chiffré, l'entité de déchiffrement 20 reçoit, par exemple d'une entité de chiffrement 12 selon la figure 1 (non représentée sur la figure 2), une paire (a, y) comprenant le vecteur aléatoire a et le chiffré y calculé conformément au procédé de chiffrement décrit en relation avec la figure 1. Le chiffré a été obtenu par collaboration de p utilisateurs chiffreurs. Π est destiné à un groupe G2 de q utilisateurs Ud], Udq, dits utilisateurs déchiffreurs, aptes à le déchiffrer en collaborant. L'ensemble de p utilisateurs chiffreurs et l'ensemble de q utilisateurs déchiffreurs constituent le groupe 10 des n utilisateurs selon la figure 1, n étant donc égal à la somme de p et q.
Dans une étape E21 de calcul de vecteurs respectifs, chaque utilisateur déchiffreur υ¾· calcule un vecteur respectif vdJ comprenant sa matrice propre Mdj paramétrée par le vecteur aléatoire a . Dans une étape suivante E22, chaque utilisateur déchiffreur ajoute au vecteur respectif un vecteur de bruit edj de m bits généré par une source de bruit bernouillen B de paramètre η , la source de bruit étant indépendante d'un utilisateur à un autre. En d'autres termes, chaque utilisateur déchiffreur 1¾ calcule un vecteur bruité bdJ = a MdJ Θ edJ . Dans une étape E23 de transmission du vecteur bruité, chaque utilisateur déchiffreur 1¾ transmet son vecteur bruité respectif bdj à l'entité de déchiffrement 20.
Dans une étape de réception E24, l'entité de déchiffrement 20 reçoit l'ensemble des vecteurs bruités respectifs bd} des utilisateurs déchiffreurs 1¾.
Dans une étape E25 de déchiffrement, l'entité de déchiffrement 20 procède au déchiffrement de l'élément de message chiffré y . A cette fin, l'entité de déchiffrement 20 calcule dans une sous-étape E25-1 de calcul, la somme de l'élément de message chiffré y et des q vecteurs bruités respectifs bd- des utilisateurs déchiffreurs. En d'autres termes, l'entité 20 calcule :
^θ ^, θ ^ θ ... ©^ (1)
Puisque y = C(x) © a ( cl θ ...Θ M cp) θ εΛ Φ ...@ £cp , la somme (1) calculée par l'entité de déchiffrement 20 est égale à : où ε'= εΛ ® ... ® Bcp ® £dl θ ... ® ¾ = ε, ® ... ® εη , est le vecteur de bruit total, correspondant à la somme des vecteurs de bruits des utilisateurs chiffreurs et des utilisateurs déchiffreurs. En effet, la somme des matrices propres des p utilisateurs chiffreurs Uci et des matrices propres des q utilisateurs déchfifreurs est égale à la somme des matrices propres des n utilisateurs. Puisque la somme des matrices secrètes propres des n utilisateurs est égale à la matrice nulle, alors la somme (1) calculée par l'entité est égale à :
C(x) ® £' .
Dans une sous-étape E25-2 de décodage, l'entité de déchiffrement 20 procède au décodage de la somme (1) calculée à l'aide du code correcteur d'erreur C. Si le poids de
Hamming de l'erreur totale ε' est inférieur à la capacité t de correction du code correcteur, alors le décodage produit le message en clair x .
Dans un autre exemple de réalisation de l'invention, il n'y a pas d'entité de déchiffrement 20 dédiée à l'opération de déchiffrement. Dans ce mode de réalisation, ce sont les utilisateurs déchiffreurs qui procèdent au déchiffrement. Dans cet exemple de réalisation, en fin d'étape E22, chaque utilisateur déchiffreur transmet aux autres utilisateurs déchiffreurs son vecteur bruité respectif, par exemple par un mécanisme de diffusion.
Dans un autre exemple de réalisation, c'est un utilisateur déchiffreur particulier Udk qui effectue l'opération de déchiffrement. Dans ce cas, l'utilisateur Udk n'a pas besoin de transmettre son vecteur bruité aux autres utilisateurs déchiffreurs. Ainsi, dans cet exemple de réalisation, dans la sous-étape E25-1 de calcul, l'utilisateur ¾ déchiffreur calcule la somme de son vecteur respectif, de l'élément de message chiffré y , ainsi que des vecteurs bruités respectifs qu'il a reçus des autres utilisateurs déchiffreurs. En effet, on remarque que dans cette somme l'utilisateur Udj n'a pas besoin d'ajouter son vecteur de bruit respectif dont il connaît la valeur. Ainsi, l'utilisateur déchiffreur Udk calcule :
C(x) ® a ( , @ ... θ MH ) © εΛ ® ... © £„ Θ ¾, © ... © ¾(JW) © ¾(i.+0 © ... Θ ¾
Ainsi, le bruit total est réduit, ce qui facilite de fait l'opération de décodage effectuée au cours de la sous-étape E25-2. Bien sûr, dans ce mode de réalisation, l'opération de décodage est réalisée par l'utilisateur déchiffreur Udk- H est fourni maintenant quelques exemples de réalisation de ce procédé de chiffrement avec des paramètres concrets. On rappelle que la sécurité du système de chiffrement dépend de la difficulté de résolution du problème LPN. Or, cette difficulté repose sur les paramètres k et η , correspondant au nombre de bits du vecteur aléatoire a et à la probabilité pour un bit du vecteur de bruit ε de valoir 1 respectivement. Il convient donc de choisir des valeurs convenables pour ces paramètres, permettant de garantir une bonne sécurité du système. Deux exemples de valeurs convenables pour ces paramètres k et η sont les suivants :
- k = 768, η = 0.1.
On note que le code correcteur d'erreurs C utilisé a un impact sur l'efficacité du système, mais pas sur sa sécurité. En effet, si le code C est de dimension r , la taille totale de l'élément du chiffré y , pour un élément de message en clair x de r bits est de (m + k) bits. II y a donc une certaine expansion du chiffré qui incite, à k fixé, à prendre r le plus grand possible, et m , le plus petit possible. On note (7 = le facteur d'expansion. Ensuite, afin r
que l'entité en charge du déchiffrement, en l'espèce l'entité de déchiffrement 20 ou, dans un autre mode de réalisation, un utilisateur déchiffreur, puisse déchiffrer, la capacité de correction t et la longueur m du code C doivent vérifier t > μ * τη , άά β est le bruit total résultant de l'addition de tous les vecteurs de bruits des utilisateurs. On montre facilement que lorsqu'on additionne n vecteurs de bruit indépendants de paramètre de bruit 7] , le paramètre de bruit résu
Figure imgf000015_0001
Ainsi, pour un paramètre de bruit TJ = 0.1 , lorsque l'on additionne 3 vecteurs de bruit indépendants, le bruit résultant est J — 0.244. Ce cas correspond par exemple au cas où la fonctionnalité est partagée entre quatre utilisateurs et où le déchiffrement est effectué par un utilisateur déchiffreur ; dans ce cas, l'utilisateur déchiffreur peut retrancher le bruit qu'il a généré. Les paramètres du code C sont notés [/?z, r,<f] , où m est la longueur du code, r sa dimension et d sa dimension minimale, la capacité de correction t étant liée à la distance
"d - l
minimale par t = . On peut utiliser un code linéaire de paramètres [64,4,33] qui
2
corrige 16 erreurs, le paramètre d'expansion est alors £7 = 16. Une entité de chiffrement 12 apte à mettre en œuvre le procédé de chiffrement va maintenant être décrite en relation avec la figure 3. Une telle entité est par exemple un ordinateur de type serveur apte à communiquer avec une pluralité d'utilisateurs chiffreurs. L'entité de chiffrement 12 comprend plusieurs modules :
un processeur 121, ou « CPU » (de l'anglais « Central Processing Unit »), ou unité de traitement ; une mémoire 122 permet d'effectuer des calculs, de charger des instructions logicielles correspondant aux étapes du procédé de chiffrement décrites précédemment, et de les faire exécuter par le microprocesseur 121 ;
- des interfaces de communication 123 adaptées pour envoyer à des utilisateurs chiffreurs un vecteur aléatoire a , pour recevoir d'utilisateurs chiffreurs des vecteurs respectifs, et pour transmettre à une deuxième entité, par exemple une entité de déchiffrement, une paire (a, y) où a est le vecteur aléatoire et y un chiffré d'un message clair x . Les interfaces 123 permettent la mise en œuvre des étapes E13 d'envoi d'aléa, E16 de réception des vecteurs respectifs et E19 d'envoi du chiffré. Ces étapes ont été décrites en relation avec la figure 1 ;
L'entité de chiffrement 12 héberge également une application sous forme d'un programme, apte à mettre en œuvre les étapes du procédé de chiffrement décrites précédemment. A cette fin, l'entité 12 comprend aussi :
un générateur pseudo-aléatoire 124, adapté pour générer le vecteur aléatoire a . Le générateur 124 met en œuvre l'étape E12 de tirage d'un vecteur aléatoire décrite précédemment ;
- un module d'encodage 125 adapté pour encoder le message clair x au moyen d'un code correcteur d'erreurs C ;
• un module de calcul 126 adapté pour calculer le chiffré du message clair x à partir du message clair encodé et des vecteurs respectifs reçus des utilisateurs chiffreurs. Le calcul effectué par le module 126 est conforme à un chiffrement probabiliste symétrique dans lequel la matrice secrète est la somme des matrices secrètes respectives des utilisateurs chiffreurs, et le vecteur de bruit est égal à la somme des bruits respectifs produits par les p utilisateurs chiffreurs. Le module de calcul 126 coopère avec le module d'encodage pour obtenir le message clair encodé. Les modules d'encodage 125 et de calcul 126 mettent en œuvre l'étape E18 de calcul du chiffré.
Les modules 123, 124, 125 et 126 qui mettent en œuvre le procédé de chiffrement précédemment décrit sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé de chiffrement.
L'invention concerne donc aussi :
- un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de chiffrement tel que décrit précédemment lorsque ce programme est exécuté par un processeur, et - un support d'enregistrement lisible par un ordinateur sur lequel est enregistré le programme décrit ci-dessus.
Les modules logiciels peuvent être stockés dans ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal, ou un réseau de télécommunication.
Une entité de déchiffrement 20 apte à mettre en œuvre le déchiffrement d'un chiffré obtenu conformément au procédé de chiffrement précédemment décrit va maintenant être décrite en relation avec la figure 4. Une telle entité est par exemple un ordinateur de type serveur apte à communiquer avec une pluralité d'utilisateurs déchiffreurs. L'entité de déchiffrement 20 comprend plusieurs modules :
- un processeur 201, ou CPU ;
une mémoire 202 permet d'effectuer des calculs, de charger des instructions logicielles correspondant aux étapes du procédé de chiffrement décrite précédemment, et de les faire exécuter par le processeur 201 ;
des interfaces de communication 203 adaptées pour recevoir une paire (a, y) de l'entité de chiffrement 12, où a est le vecteur aléatoire et y un chiffré d'un message clair x et pour recevoir d'au moins (q-1) utilisateurs déchiffreurs un vecteur bruité respectif. Dans l'exemple de réalisation où l'entité de déchiffrement est une entité indépendante des utilisateurs, il est reçu par les interfaces 203 q vecteurs bruités des q utilisateurs déchiffreurs. Dans l'exemple de réalisation où le déchiffrement est réalisé par un dispositif d'utilisateur déchiffreur particulier, il n'est reçu par ces interfaces que (q-1) vecteurs bruités respectifs des (q-1) autres utilisateurs. Les interfaces 203 permettent la mise en œuvre des étapes E20 de réception d'un chiffré et E24 de réception des vecteurs bruités respectifs des utilisateurs déchiffreurs. Ces étapes ont été décrites en relation avec la figure 2 ; L'entité de déchiffrement 20 héberge également une application sous forme d'un programme, apte à mettre en œuvre les étapes du procédé de déchiffrement décrites précédemment, A cette fin, l'entité 20 comprend aussi :
un module de calcul 204 adapté pour calculer la somme de l'élément de message chiffré y et d'au moins (q-1) vecteurs bruités reçus des utilisateurs déchiffreurs. Dans l'exemple de réalisation où le déchiffrement est réalisé par un dispositif d'utilisateur déchiffreur particulier, et où il n'est reçu par les interfaces 203 que (q- 1) vecteurs bruités respectifs, il est calculé par le module de calcul 20 la somme du chiffré, des (q-1) vecteurs bruités et du vecteur non bruité propre au dispositif uitlisateur déchiffreur. Pour mémoire, le vecteur non bruité est égal à la matrice propre de cet utilisateur déchiffreur, paramétrée par le vecteur aléatoire. En effet, dans cet exemple de réalisation, il n'est pas utile que le dispositif utilisateur qui procède au déchiffrement ajoute son propre vecteur de bruit qu'il connaît. Le module 204 met en œuvre la sous-étape E25-1 de calcul précédemment décrite ;
- un module de décodage 205 adapté pour décoder le mot de code C(x) obtenu par le module de calcul 204 au moyen du code correcteur d'erreurs C . Le module 205 met en œuvre la sous-étape E25-2 de décodage décrite précédemment. Le module de calcul 204 et le module de décodage 205 réalisent l'étape de déchiffrement E25 décrite précédemment.
Les modules 203, 204 et 205 qui mettent en œuvre le procédé de déchiffrement précédemment décrit sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé de chiffrement.
L'invention concerne donc aussi :
- un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de chiffrement tel que décrit précédemment lorsque ce programme est exécuté par un processeur, et
- un support d'enregistrement lisible par un ordinateur sur lequel est enregistré le programme décrit ci-dessus.
Les modules logiciels peuvent être stockés dans ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal, ou un réseau de télécommunication.
L'invention n'est pas limitée à une entité de chiffrement, respectivement de déchiffrement de type serveur. Dans un exemple de réalisation, l'entité de chiffrement, respectivement de déchiffrement, est un terminal mobile d'utilisateur. En outre, s' agissant de chiffrement symétrique, on comprend qu'une entité apte à chiffrer est également apte à déchiffrer. Elle est donc apte à mettre en œuvre le procédé de chiffrement et le procédé de déchiffrement.

Claims

REVENDICATIONS
1. Procédé de chiffrement d'un élément de message clair ( x ) en un élément de message chiffré associé à un vecteur aléatoire ( (a, y)) par un premier sous-ensemble de p utilisateurs chiffreurs, dans lequel l'élément de message (x ) est encodé ( C( ) ) à l' aide d'un code correcteur d'erreur ( C ) puis chiffré au moyen d'une matrice secrète (M) paramétrée par le vecteur aléatoire ( a ) et bruitée par un vecteur de bruit { £ ), caractérisé en ce qu'il comprend une étape (El 8) d'obtention de la matrice secrète (M) paramétrée par le vecteur aléatoire et bruitée, par addition de matrices secrètes d'utilisateur propres aux p utilisateurs chiffreurs, lesdites matrices secrètes d'utilisateur étant paramétrées par le vecteur aléatoire et bruitées par des vecteurs de bruit propres aux p utilisateurs chiffreurs,
2. Procédé selon 3a revendication 1, dans lequel le premier sous-ensemble de p utilisateurs chiffreurs et un deuxième sous-ensemble de q utilisateurs déchiffreurs forment un ensemble de p + q utilisateurs et il est prévu une étape (E10-3) de réception par chaque utilisateur dudit ensemble d'une matrice secrète d'utilisateur propre, la somme des p + q matrices d'utilisateur propres étant égale à une matrice nulle.
3. Procédé selon la revendication 2, comprenant une étape de :
- génération pour chacun de p + q - 1 utilisateurs dudit ensemble d'une matrice secrète d'utilisateur propre aléatoire,
- génération pour le (p + q)-ième utilisateur d'une matrice secrète d'utilisateur propre adaptée pour que là somme de la matrice secrète du (p + q)-ième utilisateur et des p + q - 1 matrices secrètes aléatoires soit égale à la matrice nulle.
4. Procédé de déchiffrement par un deuxième sous-ensemble de q utilisateurs déchiffreurs de l'élément de message chiffré associé au vecteur aléatoire { {a, y)) et obtenu selon le procédé de la revendication 1, comprenant les étapes de :
- calcul (E21) par les q utilisateurs déchiffreurs de q vecteurs respectifs (vd- )> chaque vecteur d'utilisateur déchiffreur comprenant une matrice propre dudit utilisateur paramétrée par le vecteur aléatoire (a),
- pour au moins q - 1 utilisateurs déchiffreurs, génération (E22) d'un vecteur de bruit propre à l'utilisateur, - calcul (E25-1) de la somme de l'élément de message chiffré (y), des q vecteurs respectifs calculés, et des au moins q - 1 vecteurs de bruit générés,
- décodage (E25-2) de la somme calculée, à l'aide du code correcteur d'erreurs utilisé lors du chiffrement, afin d'obtenir l'élément de message en clair.
5. Procédé de déchiffrement selon la revendication précédente, dans lequel le calcul de la somme et le décodage sont réalisés par l'un des q utilisateurs dechiffreurs, dit utilisateur déchiffreur maître, et la somme contient les vecteurs de bruit générés pour les q - 1 autres utilisateurs, à l'exclusion du vecteur de bruit de l'utilisateur déchiffreur maître.
6. Entité de chiffrement (12) apte à chiffrer un élément de message clair ( x ) en un élément de message chiffré associé à un vecteur aléatoire ( (a, y)) pour un sous-ensemble de utilisateurs chiffreurs, comprenant :
- des moyens (124) d'obtention d'un vecteur aléatoire ( a ),
- des moyens (125) d'encodage, adaptés pour encoder l'élément de message au moyen d'un code correcteur d'erreurs ( C ),
- des moyens (126) de chiffrement, adaptés pour chiffrer ledit élément encodé au moyen d'une matrice secrète (M) paramétrée par le vecteur aléatoire et bruitée, la matrice paramétrée et bruitée étant obtenue par addition de matrices secrètes d'utilisateur propres aux p utilisateurs chiffreurs, lesdites matrices secrètes d'utilisateur étant paramétrées par le vecteur aléatoire ( ) et bruitées par des vecteurs de bruit propres aux p utilisateurs chiffreurs.
7. Système de chiffrement et de déchiffrement comprenant une entité de chiffrement (12) selon la revendication 6, et une entité de déchiffrement (20) comprenant :
- des moyens (203) de réception adaptés pour recevoir un élément de message chiffré associé à un vecteur aléatoire ( (a, y)), et pour recevoir au moins (q-1) vecteurs de bruit générés par (q-1) utilisateurs déchiffreurs,
- des moyens de calcul (204) adaptés pour calculer la somme de l'élément de message chiffré ( y ) et des au moins (q -1) vecteurs de bruit,
- des moyens (205) de décodage de la somme calculée, à l'aide du code correcteur d'erreurs utilisé lors du chiffrement, afin d'obtenir l'élément de message en clair.
8. Système selon la revendication précédente dans lequel l'entité de déchiffrement est un dispositif d'un utilisateur déchiffreur comprenant en outre :
- des moyens de calcul d'un vecteur respectif ( ^ ), comprenant une matrice propre dudit utilisateur paramétrée par le vecteur aléatoire ( a ).
9. Programme d'ordinateur destiné à être installé dans une mémoire d'une entité de chiffrement, comprenant des instructions pour la mise en œuvre des étapes du procédé de chiffrement selon l'une des revendications 1 à 3, lorsque le programme est exécuté par un processeur.
10. Support de données sur lequel est enregistré le programme d'ordinateur selon la revendication 9.
11. Programme d'ordinateur destiné à être installé dans une mémoire d'une entité de déchiffrement, comprenant des instructions pour la mise en œuvre des étapes du procédé de déchiffrement selon l'une des revendications 4 à 5, lorsque le programme est exécuté par un processeur.
12. Support de données sur lequel est enregistré le programme d'ordinateur selon la revendication 11.
PCT/FR2010/052693 2009-12-22 2010-12-13 Procede de chiffrement et de dechiffrement Ceased WO2011083232A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/517,905 US20130010953A1 (en) 2009-12-22 2010-12-13 Encryption and decryption method
EP10805718A EP2517397A1 (fr) 2009-12-22 2010-12-13 Procede de chiffrement et de dechiffrement

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0959425 2009-12-22
FR0959425 2009-12-22

Publications (1)

Publication Number Publication Date
WO2011083232A1 true WO2011083232A1 (fr) 2011-07-14

Family

ID=42320318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2010/052693 Ceased WO2011083232A1 (fr) 2009-12-22 2010-12-13 Procede de chiffrement et de dechiffrement

Country Status (3)

Country Link
US (1) US20130010953A1 (fr)
EP (1) EP2517397A1 (fr)
WO (1) WO2011083232A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400741A (zh) * 2020-04-07 2020-07-10 佛山市玖章智能科技有限公司 一种基于点阵排布可扩展样式的隐写信息加密方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639687B2 (en) * 2014-11-18 2017-05-02 Cloudfare, Inc. Multiply-encrypting data requiring multiple keys for decryption
US10496631B2 (en) * 2017-03-10 2019-12-03 Symphony Communication Services Holdings Llc Secure information retrieval and update
JP7132506B2 (ja) * 2019-01-07 2022-09-07 富士通株式会社 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
US10892891B2 (en) * 2019-03-13 2021-01-12 Digital 14 Llc System, method, and computer program product for zero round trip secure communications based on two noisy secrets
US10951415B2 (en) * 2019-03-13 2021-03-16 Digital 14 Llc System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme
WO2021061833A1 (fr) * 2019-09-26 2021-04-01 Visa International Service Association Signatures fondées sur un réseau présentant des secrets uniformes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009095574A2 (fr) 2008-01-11 2009-08-06 France Telecom Procede et entite de chiffrement symetrique probabiliste

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030223579A1 (en) * 2000-07-13 2003-12-04 Eran Kanter Secure and linear public-key cryptosystem based on parity-check error-correcting
FR2912019B1 (fr) * 2007-01-26 2009-04-10 Thales Sa Procede de codage de donnees.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009095574A2 (fr) 2008-01-11 2009-08-06 France Telecom Procede et entite de chiffrement symetrique probabiliste

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. SHAMIR.: "How to share a secret", COMMUNICATION OF THE ACM, vol. 22, no. LL, 1979, pages 612 - 613, XP000565227, DOI: doi:10.1145/359168.359176
SHAMIR ET AL: "HOW TO SHARE A SECRET", IP.COM JOURNAL, IP.COM INC., WEST HENRIETTA, NY, US, 30 March 2007 (2007-03-30), XP013119902, ISSN: 1533-0001 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400741A (zh) * 2020-04-07 2020-07-10 佛山市玖章智能科技有限公司 一种基于点阵排布可扩展样式的隐写信息加密方法
CN111400741B (zh) * 2020-04-07 2023-05-09 佛山市玖章智能科技有限公司 一种基于点阵排布可扩展样式的隐写信息加密方法

Also Published As

Publication number Publication date
EP2517397A1 (fr) 2012-10-31
US20130010953A1 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
EP2232765B1 (fr) Procede et entite de chiffrement symetrique probabiliste
EP3078155B1 (fr) Procédé de mise a jour d&#39;une arborescence de fichiers mémorisée sur un serveur de stockage
BE1003932A6 (fr) Systeme cryptographique par bloc de donnees binaires.
EP2951944A1 (fr) Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d&#39;une distance de hamming
WO2011083232A1 (fr) Procede de chiffrement et de dechiffrement
EP2537284B1 (fr) Procede cryptographique de communication d&#39;une information confidentielle
EP2168304B1 (fr) Verification de code mac sans revelation
EP2457344B1 (fr) Procede de conversion d&#39;un premier chiffre en un deuxieme chiffre
EP4150853A1 (fr) Procédé, systèmes et services cryptographiques d&#39;évaluation de fonctions à valeurs réelles sur des données chiffrées
Ravi et al. Security and quantum computing: An overview
EP1802022A1 (fr) Code correcteur d&#39;erreur sécurisé
FR3079045A1 (fr) Procede d’emission de donnees depuis un vehicule automobile et procede de reception desdites donnees par un autre vehicule, a travers un canal de communication radio.
EP4635126A1 (fr) Procedes de distribution quantique et dispositifs de telecommunication associes
FR3152937A1 (fr) Procédé et dispositif de partage de clés secrètes dans un réseau comprenant un satellite
EP2652899A2 (fr) Procédé et système d&#39;accès conditionnel à un contenu numérique, terminal et dispositif d&#39;abonné associés
WO2012089632A1 (fr) Procede et systeme permettant de tester une integrite cryptographique d&#39;une donnee tolerante aux erreurs
WO2007074296A1 (fr) Transmission securisee avec code correcteur d&#39;erreur
EP3785411B1 (fr) Procédé et système pour assurer l&#39;intégrité de données confidentielles diffusées
EP1642413A1 (fr) Procede de chiffrement/dechiffrement d un message et disposi tif associe
EP4576650A1 (fr) Procédé de traitement de données
WO2024018158A1 (fr) Procédé d&#39;échange d&#39;un secret résistant aux attaques par ordinateur quantique, système informatique et programme d&#39;ordinateur associés
FR3158003A1 (fr) Procédé amélioré d&#39;échange de clés s&#39;appuyant sur un réseau quantique ; infrastructure de communication associée.
FR3158001A1 (fr) Procédé d’échange de clés à intégrité garantie s’appuyant sur un réseau quantique ; infrastructure de communication associée.
WO2021165625A1 (fr) Procede de calcul d&#39;une cle de session, procede de recuperation d&#39;une telle cle de session
Kamel Security for wireless communications

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: 10805718

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010805718

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13517905

Country of ref document: US