WO2016207527A1 - Procédé de conversion d'un premier chiffré en un deuxième chiffré - Google Patents

Procédé de conversion d'un premier chiffré en un deuxième chiffré Download PDF

Info

Publication number
WO2016207527A1
WO2016207527A1 PCT/FR2016/051499 FR2016051499W WO2016207527A1 WO 2016207527 A1 WO2016207527 A1 WO 2016207527A1 FR 2016051499 W FR2016051499 W FR 2016051499W WO 2016207527 A1 WO2016207527 A1 WO 2016207527A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
encryption
encrypted
server
user
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/FR2016/051499
Other languages
English (en)
Inventor
Sébastien CANARD
Olivier Sanders
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
Orange 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 Orange SA filed Critical Orange SA
Publication of WO2016207527A1 publication Critical patent/WO2016207527A1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • 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)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords

Definitions

  • the present invention relates to the field of protection of personal and / or sensitive data by means of public key cryptography. More specifically, the invention relates to a method adapted for re-enciphering, or transcribing, or converting, a first encrypted content specific to a first user into a second encrypted content specific to a second user, and an associated system in which the second user n is initially not registered in the public key cryptography system.
  • the invention finds a particularly interesting application in the context of cloud computing, or "cloud computing", in which a service provider offers users storage or transfer solutions. secure data without the service provider being able to access this data in the clear.
  • the re-encryption key thus combines the the delegate's private key, for example Alice, and the delegate's public key, Bob, and then allow a proxy device (the term usually used to be the English term "proxy”) to transform Alice's own encrypted, obtained by means of the public key of Alice, in a cipher specific to Bob, without the confidentiality of the manipulated data being at a given moment compromised.
  • a proxy device the term usually used to be the English term "proxy”
  • One of the aims of the invention is to remedy the shortcomings / disadvantages of the state of the art and / or to make improvements thereto.
  • the invention proposes a method of converting a first encrypted into a second encrypted, the method comprising the following steps, implemented by a secure storage server:
  • said first cipher being obtained by encrypting a piece of data by means of a public key of the user of a first device
  • a re-encryption key being calculated by applying an encryption key generation algorithm to the private key associated with the user's public key and a second public key associated with a second private key, said second private key being derived from a password chosen by the user of the first device,
  • the conversion method thus enables the user of the first device and the user of the second device to securely share data via the secure storage server.
  • This sharing is done without the server accessing the data in clear and especially without it being necessary for the user of the second device to register with the secure storage service delivered by the server.
  • the secure storage service thus offered is very flexible to use for both users.
  • the first user is not forced to check prior to the sharing of data with the second user that it is subscribed to the same secure storage service than him.
  • the second user is not obliged to register for the service to securely access data of the first user.
  • This service is thus very advantageous in the context of a one-time, secure sharing of data between the two users.
  • the invention also relates to a method of securely storing data on a secure server, said method being implemented by a first user device for a second user device, the user of the first device holding a key and an associated public key, said method comprising:
  • the method is implemented here the first user device.
  • the password is sent by the user of the first device to the second user on a channel independent communication channel used between the devices and the secure server. This ensures a high level of security for the second keys that are generated and used for the calculation of the re-encryption key and for the decryption by the second user.
  • the invention also relates to a method of obtaining a first encrypted generated by a first device and converted into a second encrypted for a second user device, said first encrypted being stored on a server, the method comprising the following steps, implemented implemented by the second device:
  • the method is implemented here by the second user device.
  • the method for obtaining a first cipher includes, in a definitive enrollment phase, the following steps implemented by the second device:
  • calculating a second re-encryption key intended to convert an encryption obtained by application of the encryption algorithm to the public key into a second encryption intended to be decrypted by means of the third private key, said second key to be re-encrypted; encryption being calculated from the re-encryption key, the second private key and the third private key.
  • the method allows the user of the second device, which has exchanged one or more encrypted data obtained by means of the public key of the user of the first device, in accordance with the steps of the conversion process, to definitively register for the service.
  • the user of the second device thus generates a cryptographic material, in this case the third private key and the third public key, and calculates the second re-encryption key that enables him to exchange data in a sustainable, secure and unidirectional manner with the user of the first device.
  • the steps of this method are carried out without the user of the second device involving the user of the first device. This process is very flexible. Moreover, the user of the second device does not lose access to the data he has previously shared with the user of the first device.
  • At least one access right is associated with the first encrypted by the first device, one of said rights defining a validity period of the first encryption after which the server erases the re-encryption key.
  • An access right associated with the encrypted data that the user of the first device wishes to share with the user of the second device makes it possible to define in a fine manner how the user of the second device accesses the data.
  • the sharing between the two users is limited in time.
  • the invention also relates to a secure storage server, intended to convert a first encrypted into a second encrypted, the server comprising:
  • first receiving means arranged to receive the first encrypted, said first encrypted being obtained by encrypting a piece of data by means of a public key of the user of the first device,
  • second receiving means arranged to receive from the first device a re-encryption key, said re-encryption key being calculated by applying a re-encryption key generation algorithm to the private key associated with the key public the user and a second public key associated with a second private key, said second private key being derived from a password chosen by the user of the first device,
  • conversion means arranged to convert the first encrypted into a second encrypted by applying a re-encryption algorithm to the first encrypted and the re-encryption key, said second encryption being arranged to be decrypted by a second device user by means of the second public key, said second device receiving the password of the first device on a communication channel independent of the secure server, deriving the second private key of said password and obtaining from the server the second associated public key.
  • the invention also relates to a secure storage terminal for data on a secure server, a user of the first device holding a private key and an associated public key, said storage terminal comprising:
  • generation and obtaining means arranged to generate a second private key, said second private key being derived from a password chosen by the user of the storage terminal, and to obtain the associated second public key,
  • first sending means arranged to send said password to a user of a second device on a communication channel independent of the secure server
  • calculating means arranged to calculate a re-encryption key by applying a re-encryption key generation algorithm to the private key associated with the user's public key and the associated second public key, and
  • second means of sending arranged to send said re-encryption key to the secure server.
  • the invention also relates to a terminal for obtaining a content, intended to obtain a first encrypted generated by a first device and converted into a second encrypted for the obtaining terminal, said first encrypted being stored on a secure server, the obtaining terminal comprising:
  • first reception means arranged to receive a password from the first device, said password being received on a communication channel independent of the secure server,
  • generation and obtaining means arranged to generate a private key, said private key being derived from the password, and to obtain the associated second public key,
  • second reception means arranged to receive the encrypted data from the server, decryption means, arranged to decrypt the encrypted data by means of the associated second public key.
  • the invention also relates to a secure storage system comprising:
  • At least one access terminal to a data stored securely as described above.
  • the invention also relates to a computer program on a data carrier and loadable in the memory of a server, the program comprising code instructions for the execution of the steps of the method of converting a first encrypted into a second encrypted implemented by the server, when the program is run on said server.
  • the invention also relates to a computer program on a data carrier and loadable in the memory of a storage terminal, the program comprising code instructions for the execution of the steps of the method for the secure storage of data on a secure server, implemented by the storage terminal, when the program is executed on said terminal.
  • the invention also relates to a computer program on a data medium and loadable in the memory of a second terminal for obtaining a content, the program comprising code instructions for executing the steps of the method of obtaining a first encryption implemented by the terminal for obtaining a content, when the program is executed on said terminal.
  • FIG. 1 shows the steps of a method of converting a first encrypted into a second encrypted, according to a first embodiment
  • FIG. 2 presents the steps of a method of definitive registration with a secure storage service for an initially unsubscribed person, according to an exemplary embodiment
  • FIG. 3 is a schematic representation of a secure storage server, according to an exemplary embodiment
  • FIG. 4 is a schematic representation of a secure storage terminal, according to an exemplary embodiment
  • FIG. 5 is a schematic representation of a terminal for obtaining a content, according to an exemplary embodiment.
  • the steps of a method of converting a first cipher into a second cipher, according to a first exemplary embodiment, will now be described in relation to FIG.
  • the storage server S is arranged to store data; it also defines cryptographic primitives that allow the implementation of secure storage.
  • the data is for example files such as photos, movies, etc.
  • Cryptographic primitives conventionally define a key generation algorithm, an algorithm for generating a re-encryption key, encryption, re-encryption, decryption algorithms, etc. Sharing data securely via a storage server is particularly beneficial for large files.
  • the terminals T A and T B are computer equipment, such as PCs, smart mobile terminals (we speak of "smartphone" in English), etc. arranged to implement those process steps specific to each of the user terminals.
  • the cryptographic primitives associated with the server S are conforming to the primitives described in the document "Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption", by Benoît Libert and Damien Vergnaud, PKC 2008, LNCS 4939, pp.360-379, 2008 which defines a cryptographic scheme called "schema" of Libert-Vergnaud ".
  • Alice transmitted to the storage server S one or more encrypted data for secure storage For example, Alice transmitted in encrypted form the file F, noted in its enciphered form Enc A (F). Alice encrypted the F file using her own Kpub A public key. At this point, only Alice, who owns the associated Kpriv A private key, is able to decrypt the Enc A (F) encrypted file.
  • the encrypted file is received and stored by the server S in a reception step El. It is assumed that Alice wants to share this encrypted data with Bob while Bob is not known to the secure storage server S. In particular Bob did not follow the standard key generation procedure such as previously described. However, it has received at least a description of the decryption algorithms used as part of the secure storage on the server S.
  • another user sends the encrypted data that it generates using Alice's public key.
  • a password pwd A includes for example a few characters, or corresponds to a complete sentence (in this case, we speak of "passphrase" in English). This password is intended to be passed to Bob so that Alice and Bob share the knowledge of the same password, and to generate a second pair of private / public keys to be used to calculate a password. encryption.
  • a next key generation step E3 Alice controls the derivation of a second private key Kpriv p from the password pwd A , then the generation of a second associated public key Kpub p .
  • the second private key Kpriv p is thus generated using a tried and tested key derivation algorithm from a password.
  • the key derivation algorithm used conforms to the specifications described in NIST Special Publication 800-132: http://csfc.nist.gov/publications/nistpubs/800- 132 / nist-sp800- 132.pdf.
  • the second private key Kpriv p has the same structure as a secret key generated as part of the storage system S; it is of the form x p .
  • the associated second public key Kpub p is calculated by means of the key generation algorithm used by the storage server S, in this case the key generation algorithm of the Libert-Vergnaud scheme.
  • the second associated public key Kpub p is of the form g x p.
  • a next step E4 of calculating a re-encryption key Alice controls the generation of a re-encryption key rk ⁇ p .
  • Alice applies by means of its terminal T A the algorithm for generating a re-encryption key from the storage server S to Alice's private key Kpriv A and to the newly generated public key Kpub p .
  • This re-encryption key rk ⁇ p is intended to allow the re-encryption of encrypted data for Alice in encrypted data for the holder of the second private key Kpriv p .
  • a step E5 of sending a message Alice sends to the storage server S a message M which comprises the newly calculated re-encryption key rk ⁇ p , as well as associated rights Dt p intended to specify the frame of use of this re-encryption key.
  • the associated rights Dt p comprise an identifier of the encrypted data to be shared with Bob and a Bob identifier.
  • the associated rights Dt B include the name of the encrypted file Enc A (F) that Alice has previously stored on the storage server S and the second public key Kpub p associated with the second private key Kpriv p , derived from password pwd A in the context of sharing data with Bob.
  • the associated rights Dt p also include a maximum duration of use of the key and / or a maximum number of use of the key.
  • the re-encryption key rk ⁇ p and the associated rights Dt p are received and stored by the server S in a receiving step E6.
  • a step E7 of sending the password Alice sends Bob the password pwd A that she chose during the initial step E2 of choosing a password by a communication channel independent of the password.
  • Alice sends the password to Bob by e-mail, or SMS (Short Message Service).
  • SMS Short Message Service
  • the use of an independent channel is intended to ensure a high level of security. Indeed, an attacker who intercepts data for the server S would not access the password pwd A.
  • the password pwd A is received by Bob, specifically Bob's terminal T B in a receiving step E8.
  • step E7 for sending the password is independent of the previous steps E3 for generating keys, E4 for calculating a re-encryption key and 53 for sending a message. It can thus be implemented at any time after the step E2 of generating a password.
  • the steps E0 to E7 are implemented by Alice by means of its terminal T A and by the server S, and concern the configuration of the data sharing with Bob.
  • a second phase following the steps described above, Bob, who was informed by Alice that she had made available to him on the storage server S encrypted sensitive data Enc A (F) implements the following steps in order to accessing the sensitive data F.
  • Bob is informed by Alice at the same time that Alice sends the password to him during the step E7 of sending the password.
  • the generation of the second private key Kpriv p from the password pwd A and the associated second public key Kpub p uses the same generation algorithms than those used by Alice, here the key derivation algorithm specified in the NIST Special Publication 800-132 for the second private key and the key generation algorithm of the Libert-Vergnaud scheme for the second public key .
  • a next step El i sending a request, Bob sends to the storage server S a request to obtain sensitive data that Alice or another user has stored encrypted for her attention on the storage server S
  • the request is received by the server S in a receiving step E12.
  • the storage server S retrieves, from Bob's identifier, the re-encryption key rk ⁇ p associated by Alice with Bob and the rights Dt p associated with the sensitive data. that Alice wants to share with Bob.
  • the storage server S proceeds to re-encrypt Enc A (F) encrypted data associated with Bob by Alice, by means of the re-encryption key rk Ap .
  • the server S applies the re-encryption algorithm of the Libert-Vergnaud scheme to the re-encryption key rk ⁇ p and the encrypted data EncA (F).
  • Bob is thus able to access the data F in clear by decrypting the encrypted data by means of the second private key Kpriv p which he derived from the password.
  • the re-encrypted data is noted Enc p (F).
  • a sending step E15 the storage system sends the re-encrypted data Enc p (F) to Bob. It is received by Bob, more precisely by the terminal T B Bob in a step El 6 reception.
  • the storage server S erases the re-encryption key rk ⁇ p at the end of the validity period. It is no longer possible for Bob to obtain the re-encrypted data for him. In another exemplary embodiment, the storage server S does not proceed to re-encryption when Bob's request is received as soon as the validity period has expired. In an exemplary embodiment where the associated rights define a number of use of the re-encryption key, the server counts the number of accesses by Bob to the re-encrypted data that is no longer accessible by Bob when the number of key usage has been reached.
  • the password chosen by Alice during step E2 is very short, of the order of a few characters, it is possible, before calculating the second private key Kpriv P to diversify this word.
  • password by applying a diversification algorithm to the password and, for example, the identity of Bob or Alice, or a date, etc. This allows Alice to keep the same password for secure sharing with different people, or at different times.
  • the re-encryption key rk ⁇ calculated by the server S is a key that can be described as ephemeral in the sense that it is intended only for one-off use. Indeed, apart from the validity period that may be associated with it, it is also explicitly associated by Alice with a data F and Bob, and is only valid for the password that Alice sent to Bob. It is also not desirable that Bob in turn use this key to store data securely. Indeed, such data would then be accessible by Alice, regardless of the rights that Bob would associate with this data, since Alice also knows the password pwd A.
  • Bob after having obtained from Alice access to some sensitive data, according to the steps of the process of converting a cipher described in connection with FIG. 1, wishes to register with the service offered by the storage server S definitively.
  • Bob wants to follow the standard key generation procedure in order to hold cryptographic data that allows him to share sensitive data with Alice in a conventional way, that is, by means of a key. Long-lasting re-encryption that allows Alice to re-encrypt Alice's encrypted data directly, regardless of the use of a password associated with content.
  • Alice and Bob implemented at least once the conversion process steps described above and that Bob knows at least one word of pass it used to derive the second private key Kpriv p and the second public key associated Kpub p .
  • a next step E23 requesting an existing re-encryption key E22 Bob sends the storage server S a request to obtain the re-encryption key rk ⁇ p previously generated for secure exchanges between Bob and Alice. .
  • the server S sends the re-encryption key rk ⁇ during a next step of sending E24.
  • the key recopy rk ⁇ is a public key whose transmission does not require special precautions.
  • the re-encryption key rk ⁇ is received by Bob, more precisely by the terminal T B of Bob, in a reception step E24
  • a new re-encryption key rk ⁇ for transforming Alice's encryption, calculated by Alice by means of his public key Kpub A , into a cipher for Bob that he will be able to decipher by means of his new secret key Kpriv B.
  • the key to re-encrypting Alice's encrypted content into an encrypted content for Bob is in the form: g ⁇ ⁇ ⁇ ).
  • Bob does not know Alice's secret key x A.
  • Bob gets the new re-encryption key rk ⁇ Alice to Bob. We note that Bob did not have to ask Alice to calculate this new re-encryption key.
  • a sending step E27 Bob sends the new re-encryption key rk ⁇ to the server S for recording.
  • the new key is received and registered by the server S in a receiving step E28.
  • the server S can then re-encrypt Alice's data for Bob, as soon as Alice wants to securely share this data with Bob.
  • a secure storage server S is a computer equipment which conventionally comprises:
  • microprocessor 30 intended to load instructions in memory, to execute them, to perform operations
  • RAM Random Access Memory
  • a storage memory 32 of the flash memory type or "EEPROM” (of the English “Read-Only Memory” and “Electronically-Erasable Programmable Read-Only Memory”).
  • the storage memory 32 is arranged to store code instructions intended to implement the steps of the conversion method as described above.
  • the storage memory 32 is also arranged to store the primitives of the public key cryptographic scheme used. In an exemplary embodiment, it stores the primitives of the Libert-Vergnaud scheme;
  • the communication interfaces 33 arranged to communicate with the terminals T A and T B of Alice and Bob.
  • the server S is a cloud computing environment, that is to say a virtual machine hosted by a host server (not shown in FIG. 3)
  • the microprocessor 30, the memories 31, 32 , the communication interfaces 33 are virtualized resources made available to the virtual machine by a hypervisor from hardware resources of a hardware execution layer of the host server.
  • the server S also comprises:
  • first receiving means 34 arranged to receive from a first user device a first encrypted Enc A (F), said first encrypted being obtained by encrypting a piece of data by means of a public key Kpub A of the user of the first device.
  • the first reception means 34 are arranged to implement the step E1 of the conversion method described above;
  • second reception means 35 arranged to receive from the first device a re-encryption key rk A / p , said re-encryption key being calculated by applying a key-encryption key generation algorithm to the key private Kpriv A associated with the public key of the user and a second public key Kpub p associated with a second private key Kpriv p , said second private key being derived from a password pwd A chosen by the user of the first device.
  • the second reception means 35 are arranged to implement the step E6 of the conversion method described above;
  • conversion means 36 arranged to convert the first encrypted Enc A (F) into a second encrypted Enc p (F) by applying a re-encryption algorithm to the first encrypted and to the re-encryption key, said second encrypted being arranged to be decrypted by a second user device by means of the second public key, said second device receiving the password of the first device on a communication channel independent of the secure server, deriving the second private key from said password and obtaining from the server the second associated public key.
  • the conversion means 36 are arranged to implement the conversion process step E14 described above;
  • the communication interfaces 33, the first reception means 34, the second reception means 35, the conversion means 36 are preferably software modules comprising software instructions for executing the steps of the conversion method of a first encrypted device. a second cipher as described above.
  • the invention therefore also relates to:
  • a computer program comprising instructions for implementing the method of converting a first encrypted into a second encrypted as described above when this program is executed by a processor of the secure server S, a readable recording medium on which is recorded the computer program described above.
  • 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 secure storage terminal T A will now be described in relation with FIG. 4.
  • the secure storage terminal T A is intended to control the secure storage of data on a server for the attention of another terminal.
  • the storage terminal T A is a computer equipment such as a PC or a smart mobile terminal which comprises:
  • processing unit 40 or CPU
  • a set of memories including a volatile memory 41, or RAM and a storage memory 42 of the flash memory or EEPROM type.
  • the volatile memory 41 is arranged to execute code instructions, store variables, and so on.
  • the storage memory 42 is arranged to store data.
  • the storage memory 42 stores a secure storage application that includes code instructions for implementing those steps of the secure storage method on a server as described above.
  • the storage memory 42 is also arranged to store a private / public key pair Kpriv A / Kpub A obtained from the secure server during a registration phase to a secure storage service on the server S;
  • the secure storage terminal T A also comprises:
  • generation means 44 arranged to generate a second private key Kpriv p , said second private key being derived from a password pwd A chosen by the user of the storage terminal T A , and to obtain the second public key associated Kpub p .
  • the generation means 44 are arranged to implement the step E3 of the encryption conversion method as described above;
  • first sending means 45 arranged to send said password to a user of the other terminal on a communication channel independent of the secure server.
  • the first sending means 45 are arranged to implement the step E7 of the encryption conversion method as described above;
  • calculation means 46 arranged to calculate a re-encryption key rk p by applying a re-encryption key generation algorithm to the private key Kpriv A associated with the public key of the user and the second associated public key Kpub p .
  • the calculating means 46 are arranged to implement the step E4 of the encryption conversion method as described above;
  • the second sending means 47 arranged to send said re-encryption key to the secure server.
  • the second sending means 47 are arranged to implement the step E5 of the encryption conversion method as described above.
  • the terminal TA also comprises:
  • third sending means (not shown in the figure), arranged to send to the secure server a first encrypted Enc A (F), said first encrypted being obtained by encryption of the data by means of the public key Kpub A of the user of the storage terminal T A.
  • the second sending means are arranged to implement the step E0 of the encryption conversion method as described above.
  • the communication interfaces 43, the first sending means 45, the generating means 44, the second sending means 47 and the calculating means 46 are preferably software modules comprising software instructions for executing the steps of the method converting a first encrypted into a second encrypted as previously described.
  • 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.
  • a terminal T B for obtaining a content will now be described in relation to FIG.
  • the terminal T B for obtaining content is intended to obtain from a secure storage server S a first encrypted data previously generated by a first terminal T A and converted to a second encryption for the obtaining terminal, said first encrypted data being stored on the secure server to the attention of the terminal T B for obtaining a content.
  • the terminal T B for obtaining content is a computer equipment such as a PC or an intelligent mobile terminal which comprises:
  • a processing unit 50 or CPU
  • a set of memories including a volatile memory 51, or RAM and a storage memory 52 of the flash memory or EEPROM type.
  • the volatile memory 51 is arranged to execute code instructions, store variables, and so on.
  • the storage memory 52 is arranged to store data.
  • the storage memory 52 stores an application for obtaining a first cipher generated by the first terminal and converted into a second cipher for the obtaining terminal, which includes code instructions to implement those steps of the method of converting a first encrypted into a second encrypted as described above;
  • the terminal T B for obtaining a content also comprises:
  • first receiving means 54 arranged to receive from the first terminal a password pwd A , said password being received on a communication channel independent of the secure server.
  • the first reception means 54 are arranged to implement the step E8 of the conversion method described above;
  • the generation and obtaining means 55 are arranged to implement the step E10 of the conversion method described above;
  • the sending means 56 arranged to send to the secure server S a request to obtain the encrypted data.
  • the sending means 56 are arranged to implement the step El 1 of the conversion method described above;
  • the second receiving means 57 are arranged to receive from the server S the encrypted data.
  • the second receiving means 57 are arranged to implement the step E16 of the conversion method described above;
  • Decryption means 58 arranged to decrypt the encrypted data by means of the associated second public key.
  • the decryption means 58 are arranged to implement the step E17 of the conversion method as described above.
  • the communication interfaces 53, the first reception means 54, the generation and obtaining means 55, the sending means 56, the second receiving means 57, the decryption means 58 are preferably software modules comprising software instructions for executing those of the steps of the method for converting a first encrypted into a second encryption previously described and which are implemented by the terminal T B for obtaining content.
  • the terminal T B for obtaining a content also comprises the following means (not shown in FIG. 5):
  • second generation and obtaining means arranged to generate a third private key Kpriv B and to obtain a third associated public key Kpub B ;
  • second sending means arranged to send to the secure server a request to obtain the re-encryption key rk ⁇ p ;
  • obtaining means arranged to obtain said re-encryption key
  • calculating means arranged to calculate a second re-encryption key rk ⁇ intended to convert an encryption obtained by application of the encryption algorithm to the public key Kpub A into a second encryption intended to be decrypted by means of the third private key, said second re-encryption key being calculated from the re-encryption key, the second private key Kpriv p and the third private key Kpriv B.
  • These means are preferably software means comprising software instructions for executing those of the steps of the method of converting a first encrypted into a second encryption previously described and which are implemented by the terminal T B for obtaining a content during the final registration phase of the secure storage service.
  • the invention also relates to:
  • a computer program comprising instructions for implementing the method of converting a first encrypted into a second encrypted as described above when this program is executed by a processor of the terminal T B for obtaining a content ,
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical 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 conversion d'un premier chiffré (F) en un deuxième chiffré, le procédé comprenant les étapes suivantes, mises en œuvre par un serveur de stockage sécurisé (S) : - réception (E1) du premier chiffré (EncA(F)), ledit premier chiffré étant obtenu par chiffrement d'une donnée au moyen d'une clé publique (KpubA) de l'utilisateur d'un premier dispositif, - réception (E6) en provenance du premier dispositif d'une clé de re-chiffrement (rkA/p), ladite clé de re-chiffrement étant calculée en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée (KprivA) associée à la clé publique de l'utilisateur et à une deuxième clé publique (Kpubp) associée à une deuxième clé privée (Kprivp), ladite deuxième clé privée étant dérivée d'un mot de passe (pwdA) choisi par l'utilisateur du premier dispositif, - conversion (E14) du premier chiffré (EncA(F)) en un deuxième chiffré (Encp(F)) par application d'un algorithme de re-chiffrement au premier chiffré et à la clé de re-chiffrement, ledit deuxième chiffré étant agencé pour être déchiffré par un deuxième dispositif utilisateur au moyen de la deuxième clé publique, ledit deuxième dispositif recevant le mot de passe du premier dispositif sur un canal de communication indépendant du serveur sécurisé, dérivant la deuxième clé privée dudit mot de passe et obtenant du serveur la deuxième clé publique associée.

Description

Procédé de conversion d'un premier chiffré en un deuxième chiffré
La présente invention porte sur le domaine de la protection des données personnelles et/ou sensibles au moyen de cryptographie à clé publique. Plus précisément l'invention concerne un procédé adapté pour re -chiffrer, ou transchiffrer, ou convertir, un premier contenu chiffré propre à un premier utilisateur en un deuxième contenu chiffré propre à un deuxième utilisateur, et un système associé dans lequel le deuxième utilisateur n'est initialement pas inscrit au système de cryptographie à clé publique.
L'invention trouve une application particulièrement intéressante dans le cadre de l'informatique dématérialisée, ou « informatique dans le nuage » (« cloud Computing » en anglais), dans lequel un fournisseur de services propose à des utilisateurs des solutions de stockage ou de transfert de données sécurisées sans que le fournisseur de services n'ait la possibilité d' accéder à ces données en clair.
On connaît des solutions de re-chiffrement ou de conversion de contenus chiffrés à base de cryptographie à clé publique qui permettent à plusieurs utilisateurs, par exemple Bob et Alice, d'échanger de façon sécurisée des documents sans qu'un fournisseur de services, intermédiaire dans l'échange, ne prenne connaissance des documents. Dans un tel système, Bob et Alice détiennent respectivement une paire de clés cryptographiques asymétriques : une clé privée et une clé publique associée. Ces paires de clés sont associées à un algorithme de chiffrement, à un algorithme de déchiffrement et à un algorithme de calcul d'une clé de rechiffrement. L'algorithme de re-chiffrement permet de convertir un contenu chiffré propre à Alice en un contenu chiffré propre à Bob sans que l'entité qui procède au re-chiffrement n'accède au contenu en clair. Un tel exemple est décrit dans le document « Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption », de Benoît Libert et Damien Vergnaud, PKC 2008, LNCS 4939, pp.360-379, 2008. La clé de re-chiffrement associe ainsi la clé privée du déléguant, par exemple Alice, et la clé publique du délégué, Bob et permet ensuite à un équipement mandataire (le terme habituellement utilisé est le terme anglais « proxy ») de transformer un chiffré propre à Alice, obtenu au moyen de la clé publique d'Alice, en un chiffré propre à Bob, sans que la confidentialité des données manipulées ne soit à un instant donné compromise.
Habituellement, il est nécessaire que les utilisateurs impliqués soient connus du système qui met en œuvre le re-chiffrement. En ce sens, il faut que les utilisateurs soient préalablement inscrits de manière à avoir obtenus des données d' accréditation (le terme habituellement utilisés est le terme anglais « credentials »), typiquement des clés cryptographiques et plus précisément en cryptographie à clé publique, un couple clé privée/clé publique. Ainsi, pour qu'Alice puisse partager un document avec Bob, elle doit nécessairement utiliser la clé publique de Bob. Or, si Bob n'est pas connu du système, cette clé publique n'existe pas et Alice ne peut pas procéder de manière classique au re -chiffrement d'un document pour le partager de manière sécurisée avec Bob.
Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des améliorations.
A cette fin, l'invention propose un procédé de conversion d'un premier chiffré en un deuxième chiffré, le procédé comprenant les étapes suivantes, mises en œuvre par un serveur de stockage sécurisé :
- réception du premier chiffré, ledit premier chiffré étant obtenu par chiffrement d'une donnée au moyen d'une clé publique de l'utilisateur d'un premier dispositif,
- réception en provenance du premier dispositif d'une clé de re -chiffrement, ladite clé de re -chiffrement étant calculée en appliquant un algorithme de génération de clés de re- chiffrement à la clé privée associée à la clé publique de l'utilisateur et à une deuxième clé publique associée à une deuxième clé privée, ladite deuxième clé privée étant dérivée d'un mot de passe choisi par l'utilisateur du premier dispositif,
- conversion du premier chiffré en un deuxième chiffré par application d'un algorithme de re -chiffrement au premier chiffré et à la clé de re -chiffrement, ledit deuxième chiffré étant agencé pour être déchiffré par un deuxième dispositif utilisateur au moyen de la deuxième clé publique, ledit deuxième dispositif recevant le mot de passe du premier dispositif sur un canal de communication indépendant du serveur sécurisé, dérivant la deuxième clé privée dudit mot de passe et obtenant du serveur la deuxième clé publique associée.
Le procédé de conversion permet ainsi à l'utilisateur du premier dispositif et à l'utilisateur du deuxième dispositif de partager des données de manière sécurisée par l'intermédiaire du serveur de stockage sécurisé. Ce partage se fait sans que le serveur n'accède à la donnée en clair et surtout sans qu'il soit nécessaire que l'utilisateur du deuxième dispositif s'inscrire au service de stockage sécurisé délivré par le serveur. Le service de stockage sécurisé ainsi offert est très souple d'utilisation pour les deux utilisateurs. Le premier utilisateur n'est pas contraint de vérifier préalablement au partage d'une donnée avec le deuxième utilisateur que celui-ci est abonné au même service de stockage sécurisé que lui. Le deuxième utilisateur n'est quant à lui pas obliger de s'inscrire au service pour accéder de manière sécurisée à des données du premier utilisateur. Ce service est ainsi très avantageux dans le cadre d'un partage ponctuel, et sécurisé, de données entre les deux utilisateurs. L'invention concerne aussi un procédé de stockage sécurisé d'une donnée sur un serveur sécurisé, ledit procédé étant mis en œuvre par un premier dispositif utilisateur à l'attention d'un deuxième dispositif utilisateur, l'utilisateur du premier dispositif détenant une clé privée et une clé publique associée, ledit procédé comprenant :
- génération d'une deuxième clé privée, ladite deuxième clé privée étant dérivée d'un mot de passe choisi par l'utilisateur du premier dispositif, et obtention de la deuxième clé publique associée,
- envoi dudit mot de passe à un utilisateur du deuxième dispositif sur un canal de communication indépendant du serveur sécurisé,
- calcul d'une clé de re -chiffrement en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée associée à la clé publique de l'utilisateur et à la deuxième clé publique associée,
- envoi de ladite clé de re-chiffrement au serveur sécurisé.
Le procédé est mis en œuvre ici le premier dispositif utilisateur.
Le mot de passe est envoyé par l'utilisateur du premier dispositif au deuxième utilisateur sur un canal de communication indépendant du canal utilisé entre les dispositifs et le serveur sécurisé. Cela garantit un niveau de sécurité élevé pour les deuxièmes clés qui sont générées et utilisées pour le calcul de la clé de re-chiffrement et pour le déchiffrement par le deuxième utilisateur.
L'invention concerne aussi un procédé d'obtention d'un premier chiffré généré par un premier dispositif et converti en un deuxième chiffré pour un deuxième dispositif utilisateur, ledit premier chiffré étant stocké sur un serveur, le procédé comprenant les étapes suivantes, mises en œuvre par le deuxième dispositif :
- réception en provenance du premier dispositif d'un mot de passe, ledit mot de passe étant reçu sur un canal de communication indépendant du serveur sécurisé,
- génération d'une clé privée, ladite clé privée étant dérivée du mot de passe, et obtention de la deuxième clé publique associée,
- envoi au serveur d'une requête d'obtention de la donnée chiffrée,
- réception en provenance du serveur de la donnée chiffrée,
- déchiffrement de la donnée chiffrée au moyen de la deuxième clé publique associée.
Le procédé est mis en œuvre ici par le deuxième dispositif utilisateur.
Le deuxième utilisateur déchiffre ainsi la donnée chiffrée stockée sur le serveur par le premier utilisateur à son attention sans prérequis par rapport au serveur en termes d'inscription éventuelle au service. Avantageusement, le procédé d'obtention d'un premier chiffré comprend, dans une phase d'inscription définitive, les étapes suivantes mise en œuvre par le deuxième dispositif :
- génération d'une troisième clé privée et d'une troisième clé publique associée,
- envoi au serveur sécurisé d'une requête d'obtention de la clé de re-chiffrement, - obtention de ladite clé de re-chiffrement,
- calcul d'une deuxième clé de re-chiffrement destinée à convertir un chiffré obtenu par application de l'algorithme de chiffrement à la clé publique en un deuxième chiffré destiné à être déchiffré au moyen de la troisième clé privée, ladite deuxième clé de re-chiffrement étant calculée à partir de la clé de re-chiffrement, de la deuxième clé privée et de la troisième clé privée.
Le procédé permet à l'utilisateur du deuxième dispositif, qui a échangé une ou plusieurs données chiffrées obtenues au moyen de la clé publique de l'utilisateur du premier dispositif, conformément aux étapes du procédé de conversion, de s'inscrire définitivement au service. L'utilisateur du deuxième dispositif génère ainsi un matériel cryptographique, en l'espèce la troisième clé privée et la troisième clé publique et calcule la deuxième clé de re-chiffrement qui lui permet d'échanger de façon pérenne, sécurisée et unidirectionnelle des données avec l'utilisateur du premier dispositif. Les étapes de ce procédé s'effectuent sans que l'utilisateur du deuxième dispositif ne fasse intervenir l'utilisateur du premier dispositif. Ce procédé est donc très souple. Par ailleurs, l'utilisateur du deuxième dispositif ne perd pas l'accès aux données qu'il a préalablement partagées avec l'utilisateur du premier dispositif.
Dans un exemple de réalisation, au moins un droit d' accès est associé au premier chiffré par le premier dispositif, un desdits droits définissant une période de validité du premier chiffré au terme de laquelle le serveur efface la clé de re-chiffrement.
Un droit d'accès associé au chiffré de la donnée que l'utilisateur du premier dispositif souhaite partager avec l'utilisateur du deuxième dispositif permet de définir de manière fine la façon dont l'utilisateur du deuxième dispositif accède à la donnée. Dans cet exemple, le partage entre les deux utilisateurs est limité dans le temps.
L'invention concerne aussi un serveur de stockage sécurisé, destiné à convertir un premier chiffré en un deuxième chiffré, le serveur comprenant :
- des premiers moyens de réception, agencés pour recevoir le premier chiffré, ledit premier chiffré étant obtenu par chiffrement d'une donnée au moyen d'une clé publique de l'utilisateur du premier dispositif,
- des deuxièmes moyens de réception, agencés pour recevoir en provenance du premier dispositif une clé de re-chiffrement, ladite clé de re-chiffrement étant calculée en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée associée à la clé publique de l'utilisateur et à une deuxième clé publique associée à une deuxième clé privée, ladite deuxième clé privée étant dérivée d'un mot de passe choisi par l'utilisateur du premier dispositif,
- des moyens de conversion, agencés pour convertir le premier chiffré en un deuxième chiffré par application d'un algorithme de re -chiffrement au premier chiffré et à la clé de re- chiffrement, ledit deuxième chiffré étant agencé pour être déchiffré par un deuxième dispositif utilisateur au moyen de la deuxième clé publique, ledit deuxième dispositif recevant le mot de passe du premier dispositif sur un canal de communication indépendant du serveur sécurisé, dérivant la deuxième clé privée dudit mot de passe et obtenant du serveur la deuxième clé publique associée.
L'invention porte également sur un terminal de stockage sécurisé d'une donnée sur un serveur sécurisé, un utilisateur du premier dispositif détenant une clé privée et une clé publique associée, ledit terminal de stockage comprenant :
- des moyens de génération et d'obtention, agencés pour générer une deuxième clé privée, ladite deuxième clé privée étant dérivée d'un mot de passe choisi par l'utilisateur du terminal de stockage, et pour obtenir la deuxième clé publique associée,
- des premiers moyens d'envoi, agencés pour envoyer ledit mot de passe à un utilisateur d'un deuxième dispositif sur un canal de communication indépendant du serveur sécurisé,
- des moyens de calcul, agencés pour calculer une clé de re-chiffrement en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée associée à la clé publique de l'utilisateur et à la deuxième clé publique associée, et
- des deuxièmes moyens d'envoi, agencés pour envoyer ladite clé de re-chiffrement au serveur sécurisé.
L'invention porte également sur un terminal d'obtention d'un contenu, destiné à obtenir un premier chiffré généré par un premier dispositif et converti en un deuxième chiffré pour le terminal d'obtention, ledit premier chiffré étant stocké sur un serveur sécurisé, le terminal d'obtention comprenant :
- des premiers moyens de réception, agencés pour recevoir en provenance du premier dispositif un mot de passe, ledit mot de passe étant reçu sur un canal de communication indépendant du serveur sécurisé,
- des moyens de génération et d'obtention, agencés pour générer une clé privée, ladite clé privée étant dérivée du mot de passe, et pour obtenir la deuxième clé publique associée,
- des moyens d'envoi, agencés pour envoyer au serveur sécurisé une requête d'obtention de la donnée chiffrée,
- des deuxièmes moyens de réception, agencés pour recevoir en provenance du serveur la donnée chiffrée, - des moyens de déchiffrement, agencés pour déchiffrer la donnée chiffrée au moyen de la deuxième clé publique associée.
L'invention concerne aussi un système de stockage sécurisé comprenant :
- un serveur de stockage sécurisé tel que décrit précédemment,
- au moins un terminal d'envoi d'une donnée tel que décrit précédemment, et
- au moins un terminal d' accès à une donnée stockée de manière sécurisée tel que décrit précédemment.
L'invention concerne aussi un programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un serveur, le programme comprenant des instructions de code pour l'exécution des étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré mises en œuvre par le serveur, lorsque le programme est exécuté sur ledit serveur.
L'invention concerne aussi un programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un terminal de stockage, le programme comprenant des instructions de code pour l'exécution des étapes du procédé de stockage sécurisé d'une donnée sur un serveur sécurisé, mises en œuvre par le terminal de stockage, lorsque le programme est exécuté sur ledit terminal.
L'invention concerne aussi un programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un deuxième terminal d'obtention d'un contenu, le programme comprenant des instructions de code pour l'exécution des étapes du procédé d'obtention d'un premier chiffré mises en œuvre par le terminal d'obtention d'un contenu, lorsque le programme est exécuté sur ledit terminal.
D'autres caractéristiques et avantages de la présente invention seront mieux compris de la description et des dessins annexés parmi lesquels :
- la figure 1 présente les étapes d'un procédé de conversion d'un premier chiffré en un deuxième chiffré, selon un premier exemple de réalisation ;
- la figure 2 présente les étapes d'un procédé d'inscription définitive à un service de stockage sécurisé pour une personne initialement non abonnée, selon un exemple de réalisation ;
- la figure 3 est une représentation schématique d'un serveur de stockage sécurisé, selon un exemple de réalisation ;
- la figure 4 est une représentation schématique d'un terminal de stockage sécurisé, selon un exemple de réalisation ;
- la figure 5 est une représentation schématique d'un terminal d'obtention d'un contenu, selon un exemple de réalisation. Les étapes d'un procédé de conversion d'un premier chiffré en un deuxième chiffré, selon un premier exemple de réalisation, vont maintenant être décrites en relation avec la figure 1.
On considère que des utilisateurs, Alice et Bob, détenteurs respectivement des terminaux TA, TB, souhaitent partager des données de manière sécurisée en passant par l'intermédiaire d'un serveur de stockage sécurisé S. Le serveur de stockage S est agencé pour stocker des données ; il définit également des primitives cryptographiques qui permettent la mise en œuvre d'un stockage sécurisé. Les données sont par exemple des fichiers tels que des photos, des films, etc. Les primitives cryptographiques définissent de manière classique un algorithme de génération de clés, un algorithme de génération d'une clé de re-chiffrement, des algorithmes de chiffrement, de re-chiffrement, de déchiffrement, etc. Partager des données de façon sécurisée via un serveur de stockage est particulièrement avantageux dans le cas de fichiers volumineux. Les terminaux TA et TB sont des équipements informatiques, tels que des PC, des terminaux mobiles intelligents (on parle de « smartphone » en anglais), etc. agencés pour mettre en œuvre celles des étapes du procédé propres à chacun des terminaux d'utilisateur.
On suppose qu'Alice est connue du serveur de stockage sécurisé S. En ce sens elle s'est préalablement enregistrée auprès du serveur S afin d'accéder à un service de stockage sécurisé et a généré une première paire de clés asymétriques : une première clé privée KprivA et une première clé publique associée KpubA générées au moyen de algorithme de génération de clés défini pour le serveur S. Alice a transmis la première clé publique KpubA au serveur S. Par exemple, les primitives cryptographiques associées au serveur S sont conformes aux primitives décrites dans le document « Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption », de Benoît Libert and Damien Vergnaud, PKC 2008, LNCS 4939, pp.360-379, 2008 qui définit un schéma cryptographique appelé par la suite « schéma de Libert- Vergnaud ». Dans cet exemple, la clé secrète d'Alice, KprivA = xA, où xA est un aléa dans l'ensemble Έρ des entiers relatifs inférieurs à p et supérieurs à 0, et la clé publique associée est définie par : KpubA = gXA, où g est un élément d'un groupe bilinéaire G.
On suppose également que dans une phase initiale E0, Alice a transmis au serveur de stockage S une ou plusieurs données chiffrées pour stockage sécurisé. Par exemple, Alice a transmis sous forme chiffrée le fichier F, noté dans sa forme chiffrée EncA(F). Alice a chiffré le fichier F au moyen de sa propre clé publique KpubA. A ce stade, seule Alice, qui détient la clé privée KprivA associée, est capable de déchiffrer le fichier chiffré EncA(F). Le fichier chiffré est reçu et stocké par le serveur S dans une étape El de réception. On suppose qu'Alice souhaite partager cette donnée chiffrée avec Bob alors que Bob n'est pas connu du serveur S de stockage sécurisé. En particulier Bob n'a pas suivi la procédure standard de génération de clés telle que décrite précédemment. Il a cependant reçu au moins une description des algorithmes de déchiffrement utilisés dans le cadre du stockage sécurisé sur le serveur S.
Dans un autre exemple de réalisation, c'est un autre utilisateur qui envoie les données chiffrées qu'il générées au moyen de la clé publique d'Alice.
Dans une étape suivante E2 de choix d'un mot de passe, Alice choisit un mot de passe pwdA. Le mot de passe pwdA comprend par exemple quelques caractères, ou correspond à une phrase complète (dans ce cas, on parle de « passphrase » en anglais). Ce mot de passe est destiné à être transmis à Bob afin qu'Alice et Bob partagent la connaissance d'un même mot de passe, et à générer un deuxième couple de clés privée/publique destiné à être utilisé pour calculer une clé de re-chiffrement.
Dans une étape suivante E3 de génération de clés, Alice commande la dérivation d'une deuxième clé privée Kprivp à partir du mot de passe pwdA, puis la génération d'une deuxième clé publique associée Kpubp. La deuxième clé privée Kprivp est ainsi générée au moyen d'un algorithme éprouvé de dérivation de clés à partir d'un mot de passe. Dans un exemple de réalisation, l'algorithme de dérivation de clés utilisé est conforme aux spécifications décrites dans le NIST Spécial Publication 800-132 : http://csfc.nist.gov/publications/nistpubs/800- 132/nist-sp800- 132.pdf. La deuxième clé privée Kprivp a la même structure qu'une clé secrète générée dans le cadre du système de stockage S ; elle est de la forme xp. La deuxième clé publique Kpubp associée est calculée au moyen de l'algorithme de génération de clés utilisé par le serveur de stockage S, en l'espèce l'algorithme de génération de clés du schéma de Libert- Vergnaud. Ainsi, la deuxième clé publique associée Kpubp est de la forme gxp . Au terme de l'étape E3 de génération de clés, Alice dispose du couple de clés KprivA = XA , KpubA = g A et du deuxième couple de clés Kprivp = xp , Kpubp = gxp, obtenu à partir du mot de passe pwdA choisi par Alice.
Dans une étape suivante E4 de calcul d'une clé de re-chiffrement, Alice commande la génération d'une clé de re-chiffrement rk^p. A cette fin Alice applique au moyen de son terminal TA l'algorithme de génération d'une clé de re-chiffrement du serveur de stockage S à la clé privée KprivA d'Alice et à la clé deuxième publique Kpubp nouvellement générée. Cette clé de re-chiffrement rk^p est destinée à permettre le re-chiffrement de données chiffrées pour Alice en données chiffrées pour le détenteur de la deuxième clé privée Kprivp. Dans l'exemple de réalisation décrit ici, et conformément au schéma de Libert-Vergnaud, la clé de re-chiffrement rkpjp est calculée comme suit : rkA/p = (^¾P)1/¾ = g 1** La clé de re-chiffrement d'une clé initiale, ici la clé publique d'Alice, vers une clé finale, ainsi calculée, ici la deuxième clé publique Kpubp, a la forme d'un élément dont l'exposant est un quotient dans lequel le numérateur correspond à la clé privée finale et le dénominateur à la clé privée initiale.
Dans une étape E5 d'envoi d'un message, Alice envoie au serveur de stockage S un message M qui comprend la clé de re-chiffrement rk^p nouvellement calculée, ainsi que des droits associés Dtp destinés à préciser le cadre d'utilisation de cette clé de re-chiffrement. Plus précisément, les droits associés Dtp comprennent un identifiant de la donnée chiffrée destinée à être partagée avec Bob et un identifiant de Bob. Dans cet exemple, les droits associés DtB comprennent le nom du fichier chiffré EncA(F) qu'Alice a préalablement stocké sur le serveur de stockage S et la deuxième clé publique Kpubp associée à la deuxième clé privée Kprivp, dérivée du mot de passe pwdA dans le cadre du partage de données avec Bob. Dans un exemple de réalisation, les droits associés Dtp comprennent également une durée maximale d'utilisation de la clé ou/et un nombre maximal d'utilisation de la clé. La clé de re-chiffrement rk^p et les droits associés Dtp sont reçus et stockés par le serveur S dans une étape E6 de réception.
Dans une étape E7 d'envoi du mot de passe, Alice envoie à Bob le mot de passe pwdA qu'elle a choisi au cours de l'étape initiale E2 de choix d'un mot de passe par un canal de communication indépendant du serveur de stockage S. Par exemple Alice envoie le mot de passe à Bob par e-mail, ou par SMS (de l'anglais « Short Message Service »). L'utilisation d'un canal indépendant est destinée à garantir un niveau de sécurité élevé. En effet, un attaquant qui intercepterait des données destinées au serveur S n'accéderait pas pour autant au mot de passe pwdA. Le mot de passe pwdA est reçu par Bob, plus précisément part le terminal TB de Bob dans une étape E8 de réception.
On remarque que l'étape E7 d'envoi du mot de passe est indépendante des étapes précédentes E3 de génération de clés, E4 de calcul d'une clé de re-chiffrement et 53 d'envoi d'un message. Elle peut ainsi être mise en œuvre à n'importe quel moment après l'étape E2 de génération d'un mot de passe.
Les étapes E0 à E7 sont mises en œuvre par Alice au moyen de son terminal TA et par le serveur S, et concernent la configuration du partage de données avec Bob.
Dans une deuxième phase, consécutive aux étapes décrites précédemment, Bob qui a été informé par Alice qu'elle avait mis à sa disposition sur le serveur de stockage S une donnée sensible chiffrée EncA(F) met en œuvre les étapes suivantes afin d'accéder à la donnée sensible F. Typiquement, Bob est informé par Alice en même temps que celle-ci lui envoie le mot de passe au cours de l'étape E7 d'envoi du mot de passe. Dans une étape ElO de génération de clés, Bob commande la génération de la deuxième clé privée Kprivp = xp à partir du mot de passe pwdA reçu d'Alice au cours de l'étape E8, puis le calcul de la deuxième clé publique associée Kpubp = gxv en appliquant l'algorithme de génération de clés du serveur S. La génération de la deuxième clé privée Kprivp à partir du mot de passe pwdA et de la deuxième clé publique associée Kpubp utilise les mêmes algorithmes de génération que ceux utilisés par Alice, ici l'algorithme de dérivation de clés spécifié dans le NIST Spécial Publication 800-132 pour la deuxième clé privée et l'algorithme de génération de clés du schéma de Libert-Vergnaud pour la deuxième clé publique. Au terme de l'étape E10 de génération de clés, Bob dispose du deuxième couple de clés Kprivp = xp et Kpubp = gxp, détenu également par Alice.
Dans une étape suivante El i d'envoi d'une requête, Bob envoie au serveur de stockage S une requête d'obtention d'une donnée sensible qu'Alice ou un autre utilisateur a stockée chiffrée à son attention sur le serveur de stockage S. La requête comprend un identifiant de Bob, dans cet exemple la deuxième clé publique Kpubp = pkp. La requête est reçue par le serveur S dans une étape E12 de réception.
Dans une étape E13 d'obtention de données, le serveur de stockage S récupère, à partir de l'identifiant de Bob, la clé de re-chiffrement rk^p associée par Alice à Bob et les droits Dtp associés à la donnée sensible qu'Alice souhaite partager avec Bob.
Dans une étape E14 de conversion, le serveur de stockage S procède au re-chiffrement de la donnée chiffrée EncA(F) associée à Bob par Alice, au moyen de la clé de re-chiffrement rkAp. A cette fin, le serveur S applique l'algorithme de re-chiffrement du schéma de Libert- Vergnaud à la clé de re-chiffrement rk^p et à la donnée chiffrée EncA(F). Au terme de cette étape de conversion, la donnée chiffrée initialement chiffrée avec la clé publique d'Alice KpubA = g A est chiffrée au moyen de la deuxième clé publique Kpubp = gxv associée à la deuxième clé privée Kprivp =xp générée à partir du mot de passe pwdA qu'Alice a transmis à Bob. Bob est ainsi capable d'accéder à la donnée F en clair en déchiffrant la donnée chiffrée au moyen de la deuxième clé privée Kprivp qu'il a dérivée du mot de passe. Le donnée re-chiffrée est notée Encp(F).
Dans une étape E15 d'envoi, le système de stockage envoie la donnée re-chiffrée Encp(F) à Bob. Elle est reçue par Bob, plus précisément par le terminal TB de Bob dans une étape El 6 de réception.
Dans une étape E17 de déchiffrement, Bob déchiffre la donnée Encp(F) re-chiffrée à son attention au cours de l'étape 14 de conversion. Il applique à cette fin l'algorithme de déchiffrement du serveur S à la donnée re-chiffrée Encp(F) et à la deuxième clé privée Kprivp = Xp qu'il a générée à partir du mot de passe pwdA. Il peut ainsi accéder à la donnée sensible F en clair.
Dans un exemple de réalisation où les droits DtB associés à la donnée sensible définissent une période de validité de la donnée sensible, le serveur de stockage S efface la clé de re-chiffrement rk^p au terme de la période de validité. Il n'est alors plus possible pour Bob d'obtenir la donnée re-chiffrée à son attention. Dans un autre exemple de réalisation, le serveur de stockage S ne procède pas au re-chiffrement lors de la réception de la requête de Bob dès lors que la période de validité a expiré. Dans un exemple de réalisation où les droits associés définissent un nombre d'utilisation de la clé de re-chiffrement, le serveur comptabilise le nombre d' accès par Bob à la donnée re-chiffrée qui n'est plus accessible par Bob dès lors que le nombre d'utilisation de la clé a été atteint.
Dans un exemple de réalisation où le mot de passe choisi par Alice au cours de l'étape E2 est très court, de l'ordre de quelques caractères, il est possible, avant le calcul de la deuxième clé privée KprivP de diversifier ce mot de passe en appliquant un algorithme de diversification au mot de passe et à, par exemple, l'identité de Bob ou d'Alice, ou une date, etc. Cela permet à Alice de garder un même mot de passe pour un partage sécurisé avec différentes personnes, ou à différents moments.
La clé de re-chiffrement rk^ calculée par le serveur S est une clé que l'on peut qualifier d'éphémère dans le sens où elle n'est destinée qu'à une utilisation ponctuelle. En effet, hormis la période de validité qui peut lui être associée, elle est également explicitement associée par Alice à une donnée F et à Bob, et n'est valable que pour le mot de passe qu'Alice a transmis à Bob. Il n'est par ailleurs pas souhaitable que Bob utilise à son tour cette clé pour stocker des données de manière sécurisée. En effet, de telles données seraient alors accessibles par Alice, indépendamment de droits que Bob associerait à ces données, puisqu'Alice connaît également le mot de passe pwdA.
Dans un exemple de réalisation, décrit en relation avec la figure 2, on suppose que Bob, après avoir obtenu d'Alice l'accès à quelques données sensibles, conformément aux étapes du procédé de conversion d'un chiffré décrit en relation avec la figure 1 , souhaite s'inscrire au service offert par le serveur de stockage S de façon définitive. En d' autres termes, Bob souhaite suivre la procédure standard de génération de clés afin de détenir des données cryptographiques qui lui permettent de partager avec Alice des données sensibles de façon classique, c'est-à-dire au moyen d'une clé de re-chiffrement pérenne qui permet de re-chiffrer directement des données chiffrées pour Alice à l' attention de Bob, indépendamment de l'utilisation d'un mot de passe associé à un contenu. On suppose qu'Alice et Bob ont mis en œuvre au moins une fois les étapes du procédé de conversion décrit précédemment et que Bob connaît au moins un mot de passe qu'il a utilisé pour dériver la deuxième clé privée Kprivp et la deuxième clé publique associée Kpubp.
Dans une étape initiale E20 d'inscription au service, Bob génère son propre couple de clés privée/publique, conformément au schéma cryptographique utilisé par le serveur S. Bob génère ainsi aléatoirement sa propre clé privée KprivB = ½ et calcule au moyen de algorithme de génération de clés du schéma de Libert-Vergnaud la clé publique associée KpubB = g B . Il conserve sa clé privée KprivB et envoie au serveur de stockage S, dans une étape E21 d'envoi, sa clé publique KprivB ainsi que son identifiant, dans le cas où celui-ci est différent de la clé publique. La clé publique de Bob et le cas échéant son identifiant sont reçus par le serveur S dans une étape E22 de réception.
Dans une étape suivante E23 de demande d'une clé de re -chiffrement existante E22, Bob envoie au serveur de stockage S une requête d'obtention de la clé de re-chiffrement rk^p préalablement générée pour des échanges sécurisés entre Bob et Alice. Le serveur S envoie la clé de re-chiffrement rk^ au cours d'une étape suivante d'envoi E24. A noter que la clé de re- chiffrement rk^ est une clé publique dont la transmission ne nécessite pas de précaution particulière. La clé de re-chiffrement rk^ est reçue par Bob, plus précisément par le terminal TB de Bob, dans une étape E24 de réception
Dans une étape suivante E26 de génération d'une nouvelle clé de re-chiffrement, Bob calcule une nouvelle clé de re-chiffrement rk^ permettant de transformer un chiffré d'Alice, calculé par Alice au moyen de sa clé publique KpubA, en un chiffré pour Bob qu'il pourra déchiffrer au moyen de sa nouvelle clé secrète KprivB.
Conformément au schéma de Libert-Vergnaud, la clé de re-chiffrement d'un contenu chiffré d'Alice en un contenu chiffré pour Bob est de la forme : g^ Ιχ ) . Or, Bob ne connaît pas la clé secrète xA d'Alice. Il connaît par contre la clé de re-chiffrement rk^p précédemment reçue du serveur f^Aj = g . Il calcule donc :
rkA/B = rkA/p /XP = (g IXA) >XV = g Ιχ Α
Bob obtient ainsi la nouvelle clé de re-chiffrement rk^ d'Alice vers Bob. On remarque que Bob n'a pas eu à solliciter Alice pour calculer cette nouvelle clé de re-chiffrement.
Bien sûr, il est laissé la possibilité de procéder de manière classique en demandant à Alice de calculer la nouvelle clé de re-chiffrement au moyen de sa clé privée xA et de la nouvelle clé publique de Bob, KpubB = g B .
Dans une étape E27 d'envoi, Bob envoie la nouvelle clé de re-chiffrement rk^ au serveur S pour enregistrement. La nouvelle clé est reçue et enregistrée par le serveur S dans une étape E28 de réception. Le serveur S peut alors procéder au re-chiffrement de données d'Alice pour Bob, dès lors qu'Alice souhaite partager de manière sécurisée ces données avec Bob.
Avec cette inscription définitive au service, Bob ne perd pour autant pas l'accès aux données préalablement partagées avec Alice qu'il peut déchiffrer au moyen de la nouvelle clé de re-chiffrement.
Les étapes relatives à l'inscription définitive de Bob au service de stockage sécurisé sont décrites ici dans le cadre du schéma de Libert-Vergnaud. L'invention n'est cependant pas limitée à ce schéma. Tout schéma compatible avec un algorithme de transformation de clé qui prend en entrée une première clé de re-chiffrement rk^c d'une entité A vers une entité C, la clé privée de l'entité C et la clé privée d'une entité B et qui, à partir de ces données propose de calculer une deuxième clé de re-chiffrement rk^ de l'entité A vers l'entité B peut être utilisé. En effet, la clé de re-chiffrement
Figure imgf000015_0001
ainsi obtenue est une clé de re-chiffrement valide. Ainsi par exemple, le schéma proposé par Ateniese, FU, Green et Hohenberger dans l'article « Improved Proxy Re-Encryption Schemes with Applications to Secure Distributed Storage », NDSS 2005 peut également être utilisé pour la mise en œuvre du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment.
Un serveur de stockage sécurisé S, selon un exemple de réalisation, va maintenant être décrit en relation avec la figure 3. Un tel serveur est un équipement informatique qui comprend de manière classique :
- un microprocesseur 30, ou « CPU » (de l'anglais « Central Processing Unit »), destiné à charger des instructions en mémoire, à les exécuter, à effectuer des opérations,
- une ensemble de mémoires, dont une mémoire volatile 31, ou « RAM » (pour « Random Access Memory ») utilisée pour exécuter des instructions de code, stocker des variables, etc.,
- une mémoire de stockage 32 de type mémoire flash ou « EEPROM » (de l'anglais « Read-Only Memory » et « Electronically-Erasable Programmable Read-Only Memory). La mémoire de stockage 32 est agencée pour mémoriser des instructions de code destinées à mettre en œuvre les étapes du procédé de conversion tel que décrit précédemment. La mémoire de stockage 32 est également agencée pour mémoriser les primitives du schéma cryptographique à clé publique utilisé. Dans un exemple de réalisation, elle mémorise les primitives du schéma de Libert-Vergnaud ;
- des interfaces de communication 33, agencées pour communiquer avec les terminaux TA et TB d'Alice et de Bob. Dans un cas où le serveur S est un environnement en cloud Computing, c'est-à-dire une machine virtuelle hébergée par un serveur hôte (non représenté sur la figure 3), on comprend que le microprocesseur 30, les mémoires 31, 32, les interfaces de communication 33 sont des ressources virtualisées mises à disposition de la machine virtuelle par un hyperviseur à partir de ressources matérielles d'une couche d'exécution matérielle du serveur hôte.
Le serveur S comprend également :
- des premiers moyens de réception 34, agencés pour recevoir d'un premier dispositif utilisateur un premier chiffré EncA(F), ledit premier chiffré étant obtenu par chiffrement d'une donnée au moyen d'une clé publique KpubA de l'utilisateur du premier dispositif. Les premiers moyens de réception 34 sont agencés pour mettre en œuvre l'étape El du procédé de conversion décrit précédemment ;
- des deuxièmes moyens de réception 35, agencés pour recevoir en provenance du premier dispositif une clé de re-chiffrement rkA/p, ladite clé de re -chiffrement étant calculée en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée KprivA associée à la clé publique de l'utilisateur et à une deuxième clé publique Kpubp associée à une deuxième clé privée Kprivp, ladite deuxième clé privée étant dérivée d'un mot de passe pwdA choisi par l'utilisateur du premier dispositif. Les deuxièmes moyens de réception 35 sont agencés pour mettre en œuvre l'étape E6 du procédé de conversion décrit précédemment ;
- des moyens de conversion 36, agencés pour convertir le premier chiffré EncA(F) en un deuxième chiffré Encp(F) par application d'un algorithme de re-chiffrement au premier chiffré et à la clé de re-chiffrement, ledit deuxième chiffré étant agencé pour être déchiffré par un deuxième dispositif utilisateur au moyen de la deuxième clé publique, ledit deuxième dispositif recevant le mot de passe du premier dispositif sur un canal de communication indépendant du serveur sécurisé, dérivant la deuxième clé privée dudit mot de passe et obtenant du serveur la deuxième clé publique associée. Les moyens de conversion 36 sont agencés pour mettre en œuvre l'étape E14 de conversion du procédé de conversion décrit précédemment ;
Les interfaces de communication 33, les premiers moyens de réception 34, les deuxièmes moyens de réception 35, les moyens de conversion 36 sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment.
L'invention concerne donc aussi :
- un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment lorsque ce programme est exécuté par un processeur du serveur sécurisé S, - un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur 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.
Un terminal de stockage sécurisé TA, selon un exemple de réalisation de l'invention, va maintenant être décrit en relation avec la figure 4.
Le terminal de stockage sécurisé TA est destiné à commander le stockage sécurisé d'une donnée sur un serveur à l'attention d'un autre terminal. Le terminal de stockage TA est un équipement informatique tel qu'un PC ou un terminal mobile intelligent qui comprend :
- une unité de traitement 40, ou CPU,
- un ensemble de mémoires, dont une mémoire volatile 41, ou RAM et une mémoire de stockage 42 de type mémoire flash ou EEPROM. La mémoire volatile 41 est agencée pour exécuter des instructions de code, stocker des variables, etc. La mémoire de stockage 42 est agencée pour mémoriser des données. En particulier, la mémoire de stockage 42 mémorise une application de stockage sécurisé qui comprend des instructions de code pour mettre en œuvre celles des étapes du procédé de stockage sécurisé sur un serveur tel que décrit précédemment. La mémoire de stockage 42 est également agencée pour stocker un couple de clés privée/publique KprivA/KpubA obtenu du serveur sécurisé lors d'une phase d'inscription à un service de stockage sécurisé sur le serveur S ;
- des interfaces de communication 43, agencées pour communiquer avec le serveur de stockage S et l'autre terminal TB.
Le terminal de stockage sécurisé TA comprend également :
- des moyens de génération 44, agencés pour générer une deuxième clé privée Kprivp, ladite deuxième clé privée étant dérivée d'un mot de passe pwdA choisi par l'utilisateur du terminal de stockage TA, et pour obtenir la deuxième clé publique associée Kpubp. Les moyens de génération 44 sont agencés pour mettre en œuvre l'étape E3 du procédé de conversion de chiffré tel que décrit précédemment ;
- des premiers moyens d'envoi 45, agencés pour envoyer ledit mot de passe à un utilisateur de l'autre terminal sur un canal de communication indépendant du serveur sécurisé. Les premiers moyens d'envoi 45 sont agencés pour mettre en œuvre l'étape E7 du procédé de conversion de chiffré tel que décrit précédemment ; - des moyens de calcul 46, agencés pour calculer une clé de re -chiffrement rk^p en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée KprivA associée à la clé publique de l'utilisateur et à la deuxième clé publique associée Kpubp. Les moyens de calcule 46 sont agencés pour mettre en œuvre l'étape E4 du procédé de conversion de chiffré tel que décrit précédemment ;
- des deuxièmes moyens d'envoi 47, agencés pour envoyer de ladite clé de rechiffrement au serveur sécurisé. Les deuxièmes moyens d'envoi 47 sont agencés pour mettre en œuvre l'étape E5 du procédé de conversion de chiffré tel que décrit précédemment.
Dans un exemple de réalisation dans lequel le premier chiffré EncA(F) est envoyé par Alice, le terminal TA comprend également :
- des troisièmes moyens d'envoi (non représentés sur la figure), agencés pour envoyer au serveur sécurisé un premier chiffré EncA(F), ledit premier chiffré étant obtenu par chiffrement de la donnée au moyen de la clé publique KpubA de l'utilisateur du terminal de stockage TA. Les deuxièmes moyens d'envoi sont agencés pour mettre en œuvre l'étape E0 du procédé de conversion de chiffré tel que décrit précédemment.
Les interfaces de communication 43, les premiers moyens d'envoi 45, les moyens de génération 44, les deuxièmes moyens d'envoi 47 et les moyens de calcul 46 sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment.
L'invention concerne donc aussi :
- un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment lorsque ce programme est exécuté par un processeur du terminal TA de stockage sécurisé,
- un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur 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.
Un terminal TB d'obtention d'un contenu, selon un exemple de réalisation, va maintenant être décrit en relation avec la figure 5.
Le terminal TB d'obtention d'un contenu est destiné à obtenir d'un serveur de stockage sécurisé S une première donnée chiffrée préalablement générée par un premier terminal TA et convertie en un deuxième chiffré pour le terminal d'obtention, ladite première donnée chiffrée étant stockée sur le serveur sécurisé à l'attention du terminal TB d'obtention d'un contenu. Le terminal TB d'obtention d'un contenu est un équipement informatique tel qu'un PC ou un terminal mobile intelligent qui comprend :
- une unité de traitement 50, ou CPU ;
- un ensemble de mémoires, dont une mémoire volatile 51 , ou RAM et une mémoire de stockage 52 de type mémoire flash ou EEPROM. La mémoire volatile 51 est agencée pour exécuter des instructions de code, stocker des variables, etc. La mémoire de stockage 52 est agencée pour mémoriser des données. En particulier, la mémoire de stockage 52 mémorise une application d'obtention d'un premier chiffré généré par le premier terminal et converti en un deuxième chiffré à l'attention du terminal d'obtention, qui comprend des instructions de code pour mettre en œuvre celles des étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment ;
- des interfaces de communication 53, agencées pour communiquer avec le serveur sécurisé S et le premier terminal TA.
Le terminal TB d'obtention d'un contenu comprend également :
- des premiers moyens de réception 54, agencés pour recevoir en provenance du premier terminal un mot de passe pwdA, ledit mot de passe étant reçu sur un canal de communication indépendant du serveur sécurisé. Les premiers moyens de réception 54 sont agencés pour mettre en œuvre l'étape E8 du procédé de conversion décrit précédemment ;
- des moyens 55 de génération et d'obtention, agencés pour générer une clé privée KpriVp, ladite clé privée étant dérivée du mot de passe pwdA, et pour obtenir la deuxième clé publique associée Kpubp. Les moyens 55 de génération et d'obtention sont agencés pour mettre en œuvre l'étape E10 du procédé de conversion décrit précédemment ;
- des moyens d'envoi 56, agencés pour envoyer au serveur sécurisé S une requête d'obtention de la donnée chiffrée. Les moyens d'envoi 56 sont agencés pour mettre en œuvre l'étape El 1 du procédé de conversion décrit précédemment ;
- des deuxièmes moyens de réception 57, agencés pour recevoir en provenance du serveur S la donnée chiffrée. Les deuxièmes moyens de réception 57 sont agencés pour mettre en œuvre l'étape E16 du procédé de conversion décrit précédemment ;
- des moyens de déchiffrement 58, agencés pour déchiffrer la donnée chiffrée au moyen de la deuxième clé publique associée. Les moyens de déchiffrement 58 sont agencés pour mettre en œuvre l'étape E17 du procédé de conversion tel que décrit précédemment.
Les interfaces de communication 53, les premiers moyens de réception 54, les moyens 55 de génération et d'obtention, les moyens d'envoi 56, les deuxièmes moyens de réception 57, les moyens de déchiffrement 58 sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter celles des étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré précédemment décrit et qui sont mises en œuvre par le terminal TB d'obtention d'un contenu.
Dans un exemple de réalisation, comprenant une phase d'inscription définitive au service de stockage sécurisé, le terminal TB d'obtention d'un contenu comprend également les moyens suivants (non représentés sur la figure 5) :
- des deuxièmes moyens de génération et d'obtention, agencés pour générer une troisième clé privée KprivB et pour obtenir une troisième clé publique associée KpubB ;
- des deuxièmes moyens d'envoi, agencés pour envoyer au serveur sécurisé une requête d'obtention de la clé de re-chiffrement rk^p ;
- des moyens d'obtention, agencés pour obtenir ladite clé de re-chiffrement ;
- des moyens de calcul, agencés pour calculer une deuxième clé de re-chiffrement rk^ destinée à convertir un chiffré obtenu par application de l' algorithme de chiffrement à la clé publique KpubA en un deuxième chiffré destiné à être déchiffré au moyen de la troisième clé privée, ladite deuxième clé de re-chiffrement étant calculée à partir de la clé de re-chiffrement, de la deuxième clé privée Kprivp et de la troisième clé privée KprivB.
Ces moyens sont de préférence des moyens logiciels comprenant des instructions logicielles pour faire exécuter celles des étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré précédemment décrit et qui sont mises en œuvre par le terminal TB d'obtention d'un contenu lors de la phase d'inscription définitive au service de stockage sécurisé.
L'invention concerne aussi :
- un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de conversion d'un premier chiffré en un deuxième chiffré tel que décrit précédemment lorsque ce programme est exécuté par un processeur du terminal TB d'obtention d'un contenu,
- un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur 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.

Claims

REVENDICATIONS
1. Procédé de conversion d'un premier chiffré (F) en un deuxième chiffré, le procédé comprenant les étapes suivantes, mises en œuvre par un serveur de stockage sécurisé (S) :
- réception (El) du premier chiffré (EncA(F)), ledit premier chiffré étant obtenu par chiffrement d'une donnée au moyen d'une clé publique (KpubA) de l'utilisateur d'un premier dispositif,
- réception (E6) en provenance du premier dispositif d'une clé de re-chiffrement (rkA/p), ladite clé de re-chiffrement étant calculée en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée (KprivA) associée à la clé publique de l'utilisateur et à une deuxième clé publique (Kpubp) associée à une deuxième clé privée (Kprivp), ladite deuxième clé privée étant dérivée d'un mot de passe (pwdA) choisi par l'utilisateur du premier dispositif,
- conversion (El 4) du premier chiffré (EncA(F)) en un deuxième chiffré (Encp(F)) par application d'un algorithme de re-chiffrement au premier chiffré et à la clé de re-chiffrement, ledit deuxième chiffré étant agencé pour être déchiffré par un deuxième dispositif utilisateur au moyen de la deuxième clé publique, ledit deuxième dispositif recevant le mot de passe du premier dispositif sur un canal de communication indépendant du serveur sécurisé, dérivant la deuxième clé privée dudit mot de passe et obtenant du serveur la deuxième clé publique associée.
2. Procédé de stockage sécurisé d'une donnée sur un serveur sécurisé, ledit procédé étant mis en œuvre par un premier dispositif utilisateur à l'attention d'un deuxième dispositif utilisateur, l'utilisateur du premier dispositif détenant une clé privée (KprivA) et une clé publique associée (KpubA), ledit procédé comprenant :
- génération (E3) d'une deuxième clé privée (Kprivp), ladite deuxième clé privée étant dérivée d'un mot de passe (pwdA) choisi par l'utilisateur du premier dispositif, et obtention de la deuxième clé publique associée (Kpubp),
- envoi (E7) dudit mot de passe à un utilisateur du deuxième dispositif sur un canal de communication indépendant du serveur sécurisé,
- calcul (E4) d'une clé de re-chiffrement (rk^p) en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée (KprivA) associée à la clé publique de l'utilisateur et à la deuxième clé publique associée (Kpubp),
- envoi (E5) de ladite clé de re-chiffrement au serveur sécurisé.
3. Procédé d'obtention d'un premier chiffré généré par un premier dispositif (TA) et converti en un deuxième chiffré (EncB(F)) pour un deuxième dispositif utilisateur (TB), ledit premier chiffré étant stocké sur un serveur S, le procédé comprenant les étapes suivantes, mises en œuvre par le deuxième dispositif :
- réception (E8) en provenance du premier dispositif d'un mot de passe (pwdA), ledit mot de passe étant reçu sur un canal de communication indépendant du serveur sécurisé,
- génération (E10) d'une clé privée (Kprivp), ladite clé privée étant dérivée du mot de passe (pwdA), et obtention de la deuxième clé publique associée (Kpubp),
- envoi (El 1) au serveur d'une requête d'obtention de la donnée chiffrée,
- réception (El 6) en provenance du serveur de la donnée chiffrée,
- déchiffrement (El 7) de la donnée chiffrée au moyen de la deuxième clé publique associée.
4. Procédé d'obtention d'un premier chiffré selon la revendication 3 comprenant, dans une phase d'inscription définitive, les étapes suivantes mise en œuvre par le deuxième dispositif :
- génération (E20) d'une troisième clé privée (KprivB) et d'une troisième clé publique associée (KprivB),
- envoi (E23) au serveur sécurisé d'une requête d'obtention de la clé de re -chiffrement (rkA/p),
- obtention (E25) de ladite clé de re-chiffrement,
- calcul (E26) d'une deuxième clé de re-chiffrement (rk^) destinée à convertir un chiffré obtenu par application de l'algorithme de chiffrement à la clé publique (KpubA) en un deuxième chiffré destiné à être déchiffré au moyen de la troisième clé privée, ladite deuxième clé de re-chiffrement étant calculée à partir de la clé de re-chiffrement, de la deuxième clé privée (Kprivp) et de la troisième clé privée (KprivB).
5. Procédé de conversion selon la revendication 1 , dans lequel au moins un droit d'accès est associé au premier chiffré par le premier dispositif, un desdits droits définissant une période de validité du premier chiffré au terme de laquelle le serveur efface la clé de re-chiffrement.
6. Serveur de stockage sécurisé (S), destiné à convertir un premier chiffré (EncA(F)) en un deuxième chiffré, le serveur comprenant : - des premiers moyens de réception (34), agencés pour recevoir le premier chiffré (EncA(F)), ledit premier chiffré étant obtenu par chiffrement d'une donnée au moyen d'une clé publique (KpubA) de l'utilisateur du premier dispositif,
- des deuxièmes moyens de réception (35), agencés pour recevoir en provenance du premier dispositif une clé de re -chiffrement (rk^p), ladite clé de re -chiffrement étant calculée en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée (KprivA) associée à la clé publique de l'utilisateur et à une deuxième clé publique (Kpubp) associée à une deuxième clé privée (Kprivp), ladite deuxième clé privée étant dérivée d'un mot de passe (pwdA) choisi par l'utilisateur du premier dispositif,
- des moyens de conversion (36), agencés pour convertir le premier chiffré (EncA(F)) en un deuxième chiffré (Encp(F)) par application d'un algorithme de re-chiffrement au premier chiffré et à la clé de re-chiffrement, ledit deuxième chiffré étant agencé pour être déchiffré par un deuxième dispositif utilisateur au moyen de la deuxième clé publique, ledit deuxième dispositif recevant le mot de passe du premier dispositif sur un canal de communication indépendant du serveur sécurisé, dérivant la deuxième clé privée dudit mot de passe et obtenant du serveur la deuxième clé publique associée.
7. Terminal (TA) de stockage sécurisé d'une donnée sur un serveur sécurisé (S), un utilisateur du premier dispositif détenant une clé privée (KprivA) et une clé publique associée (KpubA), ledit terminal de stockage comprenant :
- des moyens (44) de génération et d'obtention, agencés pour générer une deuxième clé privée (Kprivp), ladite deuxième clé privée étant dérivée d'un mot de passe (pwdA) choisi par l'utilisateur du terminal de stockage, et pour obtenir la deuxième clé publique associée (Kpubp),
- des premiers moyens d'envoi (45), agencés pour envoyer ledit mot de passe à un utilisateur d'un deuxième dispositif (TB) sur un canal de communication indépendant du serveur sécurisé,
- des moyens de calcul (46), agencés pour calculer une clé de re-chiffrement (rk^p) en appliquant un algorithme de génération de clés de re-chiffrement à la clé privée (KprivA) associée à la clé publique de l'utilisateur et à la deuxième clé publique associée (Kpubp), et - des deuxièmes moyens d'envoi (47), agencés pour envoyer ladite clé de re-chiffrement au serveur sécurisé.
8. Terminal (TB) d'obtention d'un contenu, destiné à obtenir un premier chiffré généré par un premier dispositif (TA) et converti en un deuxième chiffré (EncB(F)) pour le terminal d'obtention, ledit premier chiffré étant stocké sur un serveur sécurisé (S), le terminal d'obtention comprenant :
- des premiers moyens de réception (54), agencés pour recevoir en provenance du premier dispositif un mot de passe (pwdA), ledit mot de passe étant reçu sur un canal de communication indépendant du serveur sécurisé,
- des moyens de génération et d'obtention (55), agencés pour générer une clé privée (KpriVp), ladite clé privée étant dérivée du mot de passe (pwdA), et pour obtenir la deuxième clé publique associée (Kpubp),
- des moyens d'envoi (56), agencés pour envoyer au serveur sécurisé une requête d'obtention de la donnée chiffrée,
- des deuxièmes moyens de réception (57), agencés pour recevoir en provenance du serveur la donnée chiffrée,
- des moyens de déchiffrement (58), agencés pour déchiffrer la donnée chiffrée au moyen de la deuxième clé publique associée.
9. Système de stockage sécurisé comprenant :
- un serveur de stockage sécurisé selon la revendication 6,
- au moins un terminal d'envoi d'une donnée selon la revendication 7, et
- au moins un terminal d'accès à une donnée stockée de manière sécurisée selon la revendication 8.
10. Programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un ordinateur, le programme comprenant des instructions de code pour l'exécution des étapes du procédé de conversion d'un premier chiffré en un deuxième chiffré selon la revendication 1, lorsque le programme est exécuté sur ledit ordinateur.
11. Programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un terminal utilisateur, le programme comprenant des instructions de code pour l'exécution des étapes du procédé de stockage sécurisé d'une donnée sur un serveur sécurisé, selon la revendication 2, lorsque le programme est exécuté sur ledit terminal.
12. Programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un terminal utilisateur, le programme comprenant des instructions de code pour l'exécution des étapes du procédé d'obtention d'un premier chiffré selon l'une des revendications 3 à 4, lorsque le programme est exécuté sur ledit terminal.
PCT/FR2016/051499 2015-06-22 2016-06-20 Procédé de conversion d'un premier chiffré en un deuxième chiffré Ceased WO2016207527A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1555726A FR3037687A1 (fr) 2015-06-22 2015-06-22 Procede de conversion d’un premier chiffre en un deuxieme chiffre
FR1555726 2015-06-22

Publications (1)

Publication Number Publication Date
WO2016207527A1 true WO2016207527A1 (fr) 2016-12-29

Family

ID=54356453

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2016/051499 Ceased WO2016207527A1 (fr) 2015-06-22 2016-06-20 Procédé de conversion d'un premier chiffré en un deuxième chiffré

Country Status (2)

Country Link
FR (1) FR3037687A1 (fr)
WO (1) WO2016207527A1 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108206892A (zh) * 2017-12-29 2018-06-26 努比亚技术有限公司 联系人隐私的保护方法、装置、移动终端及存储介质
US20190296893A1 (en) * 2016-12-29 2019-09-26 Intel Corporation Techniques for cipher system conversion
CN111031352A (zh) * 2019-12-02 2020-04-17 北京奇艺世纪科技有限公司 音视频加密方法、安全处理方法、装置及存储介质
CN111953484A (zh) * 2020-08-03 2020-11-17 上海移远通信技术股份有限公司 通信方法、装置及客户端
CN112733130A (zh) * 2021-01-18 2021-04-30 成都质数斯达克科技有限公司 账户注册方法、装置、电子设备及可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472835B (zh) * 2020-08-17 2024-09-03 海信集团控股股份有限公司 数据读取、上传方法及设备
CN115062316B (zh) * 2022-01-06 2024-09-24 广州城建职业学院 数据加密方法、装置及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140140508A1 (en) * 2012-11-16 2014-05-22 Deepak Kamath Method, System and Program Product for Secure Storage of Content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140140508A1 (en) * 2012-11-16 2014-05-22 Deepak Kamath Method, System and Program Product for Secure Storage of Content

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
BENOÎT LIBERT ET AL: "Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption", 9 March 2008, PUBLIC KEY CRYPTOGRAPHY - PKC 2008; [LECTURE NOTES IN COMPUTER SCIENCE], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 360 - 379, ISBN: 978-3-540-78439-5, XP047030395 *
BENOÎT LIBERT; DAMIEN VERGNAUD: "Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption", PKC 2008, LNCS, vol. 4939, 2008, pages 360 - 379, XP047030395, DOI: doi:10.1007/978-3-540-78440-1_21
BILLY LAU ET AL: "Mimesis Aegis: A Mimicry Privacy Shield- A System's Approach to Data Privacy on Public Cloud", 23RD USENIX SECURITY SYMPOSIUM, 1 January 2014 (2014-01-01), pages 33 - 48, XP055267498 *
GOICHIRO HANAOKA ET AL: "Methodology for designing cryptographic systems with advanced functionality based on a modular approach", SYNTHESIOLOGY, vol. 7, no. 2, 1 September 2014 (2014-09-01), pages 92 - 104, XP055266053 *
MARC RENNHARD ET AL: "SecureSafe", PROCEEDINGS OF THE FIRST WORKSHOP ON MEASUREMENT, PRIVACY, AND MOBILITY, MPM '12, 1 January 2012 (2012-01-01), New York, New York, USA, pages 1 - 6, XP055267495, ISBN: 978-1-4503-1163-2, DOI: 10.1145/2181196.2181197 *
MELTEM SÖNMEZ TURAN ET AL: "NIST Special Publication 800-132 Recommendation for Password-Based Key Derivation Part 1: Storage Applications National Institute of Standards and Technology", 1 December 2010 (2010-12-01), XP055267552, Retrieved from the Internet <URL:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.697.7177&rep=rep1&type=pdf> [retrieved on 20160421] *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190296893A1 (en) * 2016-12-29 2019-09-26 Intel Corporation Techniques for cipher system conversion
US11239997B2 (en) * 2016-12-29 2022-02-01 Intel Corporation Techniques for cipher system conversion
CN108206892A (zh) * 2017-12-29 2018-06-26 努比亚技术有限公司 联系人隐私的保护方法、装置、移动终端及存储介质
CN108206892B (zh) * 2017-12-29 2021-04-09 努比亚技术有限公司 联系人隐私的保护方法、装置、移动终端及存储介质
CN111031352A (zh) * 2019-12-02 2020-04-17 北京奇艺世纪科技有限公司 音视频加密方法、安全处理方法、装置及存储介质
CN111031352B (zh) * 2019-12-02 2022-10-18 北京奇艺世纪科技有限公司 音视频加密方法、安全处理方法、装置及存储介质
CN111953484A (zh) * 2020-08-03 2020-11-17 上海移远通信技术股份有限公司 通信方法、装置及客户端
CN112733130A (zh) * 2021-01-18 2021-04-30 成都质数斯达克科技有限公司 账户注册方法、装置、电子设备及可读存储介质
CN112733130B (zh) * 2021-01-18 2022-11-29 成都质数斯达克科技有限公司 账户注册方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
FR3037687A1 (fr) 2016-12-23

Similar Documents

Publication Publication Date Title
US11381398B2 (en) Method for re-keying an encrypted data file
US11985239B2 (en) Forward secrecy in transport layer security (TLS) using ephemeral keys
US11909868B2 (en) Orthogonal access control for groups via multi-hop transform encryption
WO2016207527A1 (fr) Procédé de conversion d&#39;un premier chiffré en un deuxième chiffré
CN106664202B (zh) 提供多个设备上的加密的方法、系统和计算机可读介质
CN106713508B (zh) 一种基于云服务器的数据存取方法及系统
US11451523B2 (en) Methods and systems for secure sharing of data between user devices using a proxy re-encryption key (PRE)
EP3673610B1 (fr) Système et procédé mis en oeuvre par ordinateur pour un cryptage et une transmission hautement sécurisés, à grande vitesse, de données
CN111868728A (zh) 用于静止数据的免密码保全系统
CN102185694A (zh) 基于指纹信息的电子文件加密的方法及其系统
CN111355702B (zh) 安全传输数据集的方法和系统、医学设施和程序产品
CN107919958B (zh) 一种数据加密的处理方法、装置及设备
CN109525388B (zh) 一种密钥分离的组合加密方法及系统
CN110032874A (zh) 一种数据存储方法、装置及设备
JP2014175970A (ja) 情報配信システム、情報処理装置及びプログラム
US8265270B2 (en) Utilizing cryptographic keys and online services to secure devices
EP3724799A1 (fr) Technique de protection d&#39;une clé cryptographique au moyen d&#39;un mot de passe utilisateur
KR20140033824A (ko) 스마트 디바이스에서 해쉬값 기반 대칭키 암호화 시스템 및 방법
US10050943B2 (en) Widely distributed parameterization
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
CN113779629A (zh) 密钥文件共享方法、装置、处理器芯片及服务器
FR3018371A1 (fr) Procede et systeme de chiffrement/dechiffrement de donnees a cle distante et verification prealable de jeton
WO2007066039A2 (fr) Recouvrement de cles de dechiffrement perimees
US12047496B1 (en) Noncustodial techniques for granular encryption and decryption
Hlaing et al. Secure One Time Password OTP Generation for user Authentication in Cloud Environment

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16738483

Country of ref document: EP

Kind code of ref document: A1