[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

FR3146220A1 - METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT - Google Patents

METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT Download PDF

Info

Publication number
FR3146220A1
FR3146220A1 FR2301721A FR2301721A FR3146220A1 FR 3146220 A1 FR3146220 A1 FR 3146220A1 FR 2301721 A FR2301721 A FR 2301721A FR 2301721 A FR2301721 A FR 2301721A FR 3146220 A1 FR3146220 A1 FR 3146220A1
Authority
FR
France
Prior art keywords
encrypted
online storage
message
relay server
pseudo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2301721A
Other languages
French (fr)
Inventor
Gilles SEGHAIER
Julien DOGET
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to FR2301721A priority Critical patent/FR3146220A1/en
Priority to PCT/FR2024/050236 priority patent/WO2024175864A1/en
Publication of FR3146220A1 publication Critical patent/FR3146220A1/en
Pending 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne un procédé et un système de stockage sécurisé zéro connaissance géré par un serveur relai connecté à une pluralité de services de stockage en ligne, le fichier à stocker étant divisé en une pluralité de fragments sauvegardés sur la pluralité de services de stockage en ligne. Le fichier à sauvegarder étant soumis à une fonction de transformation tout ou rien et à un chiffrement totalement homomorphe au moins partiel avant sa transmission pour sauvegarde au serveur relai. The present invention relates to a method and system for secure zero-knowledge storage managed by a relay server connected to a plurality of online storage services, the file to be stored being divided into a plurality of fragments saved on the plurality of online storage services. The file to be saved is subjected to an all-or-nothing transformation function and to at least partial fully homomorphic encryption before its transmission for backup to the relay server.

Description

PROCEDE ET DISPOSITIF DE STOCKAGE EN LIGNE REPARTI DE FICHIERS DANS UN CONTEXTE ZERO CONFIANCEMETHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT

La présente invention concerne le domaine du stockage de fichiers informatiques en ligne auprès d’une pluralité de services de stockage dans un contexte où la sécurité du service n’implique pas de relation de confiance entre les différents acteurs.The present invention relates to the field of storing computer files online with a plurality of storage services in a context where the security of the service does not imply a relationship of trust between the different actors.

Les services de stockage en ligne de fichiers informatiques se sont développés ces dernières années. Les grands noms de l’informatique, proposent presque tous leur propre service. Aux côtés de ses grands acteurs, de multiples sociétés ont également développé leur propre service à destination tant des particuliers que des entreprises. Ces dernières sont nombreuses aujourd’hui à adopter ces services pour sauvegarder leurs données.Online computer file storage services have grown in recent years. The big names in IT almost all offer their own service. Alongside these major players, many companies have also developed their own service for both individuals and businesses. Many of the latter are now adopting these services to save their data.

L’utilisation d’un service de stockage en ligne permet en effet d’éviter la mise en place et la gestion au quotidien d’un stockage, de ses sauvegardes et de sa sécurité. Il permet également de mutualiser les coûts du service entre les différents clients.Using an online storage service allows you to avoid setting up and managing storage, its backups and its security on a daily basis. It also allows you to share the costs of the service between different customers.

La sécurité informatique est également un sujet de plus en plus sensible. Les exemples de piratage d’entreprises et de services en ligne se multiplient. Même sans intention malveillante, un exemple récent d’incendie dans un centre de données d’un important acteur de services en ligne a pu provoquer la perte de leurs données pour un nombre important de ses clients.IT security is also an increasingly sensitive topic. Examples of hacking of companies and online services are increasing. Even without malicious intent, a recent example of a fire in a data center of a major online services player could have caused the loss of data for a significant number of its customers.

Dans ce contexte, l’amélioration de la sécurité et de la fiabilité des services de stockage en ligne est un souci constant.In this context, improving the security and reliability of online storage services is a constant concern.

L’invention se place dans le contexte où un service sécurisé de stockage en ligne est géré par un serveur relai (proxy serveren anglais) qui fait le lien entre l’utilisateur du service et une pluralité de services de stockage en ligne. Le terme serveur est ici utilisé de manière fonctionnelle et peut référer à diverses implémentations physiques du serveur relai comprenant un ou plusieurs serveurs physiques. Le terme utilisateur désigne un terminal informatique utilisé par l’utilisateur humain pour accéder au service. Lorsque nous utilisons ce terme d’utilisateur dans la description des procédés proposés, il s’agit d’actions effectuées par le terminal de l’utilisateur sous son contrôle et non pas d’actions faites par l’utilisateur humain.The invention is placed in the context where a secure online storage service is managed by a proxy server which provides the link between the user of the service and a plurality of online storage services. The term server is used here in a functional manner and can refer to various physical implementations of the relay server comprising one or more physical servers. The term user designates a computer terminal used by the human user to access the service. When we use this term user in the description of the proposed methods, it refers to actions performed by the user's terminal under his control and not to actions performed by the human user.

L’utilisateur du service sécurisé de stockage en ligne ne communique qu’avec le serveur relai et n’a pas connaissances des différents services de stockage en ligne utilisés. De même, chaque service de stockage en ligne ne communique qu’avec le serveur relai et n’a pas connaissance des autres services en ligne ni de l’utilisateur.The user of the secure online storage service communicates only with the relay server and has no knowledge of the different online storage services used. Similarly, each online storage service communicates only with the relay server and has no knowledge of the other online services or the user.


Le fonctionnement général du service sécurisé de stockage en ligne est illustré par la . L’utilisateur 101 transmet au serveur relai 102 un fichier 106 à stocker. Le serveur relai 102 applique au fichier 106 une fonction de dispersion générant des fragments 107, 108, 109 à partir du fichier initial 106. Ces fragments sont stockés par le serveur relai 102 sur les différents services de stockage en ligne 103, 104, 105. C’est l’opération de téléversement (uploaden anglais).

The general operation of the secure online storage service is illustrated by the . The user 101 transmits to the relay server 102 a file 106 to be stored. The relay server 102 applies to the file 106 a dispersion function generating fragments 107, 108, 109 from the initial file 106. These fragments are stored by the relay server 102 on the various online storage services 103, 104, 105. This is the upload operation.

Lorsque l’utilisateur 101 veut retrouver le fichier stocké, il soumet une requête en téléchargement (downloaden anglais) au serveur relai 102. Le serveur relai 102 requiert alors les différents fragments 107, 108, 109 aux différents services de stockage en ligne 103, 104, 105. A partir de ces fragments 107, 108, 109, il reconstitue le fichier initial 106 et le transmet à l’utilisateur 101.When the user 101 wants to find the stored file, he submits a download request to the relay server 102. The relay server 102 then requests the different fragments 107, 108, 109 from the different online storage services 103, 104, 105. From these fragments 107, 108, 109, it reconstitutes the initial file 106 and transmits it to the user 101.

La figure illustre trois services de stockage en ligne. Cette figure n’est qu’un exemple et le nombre de services en ligne utilisé par un mode de réalisation particulier de l’invention peut être quelconque avec un minimum de deux services. De manière similaire, la figure illustre la sauvegarde d’un seul fragment par service de stockage en ligne. Dans la pratique, plusieurs fragments peuvent être stockés sur un même service de stockage en ligne.The figure illustrates three online storage services. This figure is only an example and the number of online services used by a particular embodiment of the invention can be any with a minimum of two services. Similarly, the figure illustrates the backup of a single fragment per online storage service. In practice, multiple fragments can be stored on a single online storage service.

Avantageusement, ces fragments comportent un certain degré de redondance pour permettre la reconstitution du fichier initial à partir seulement d’un sous-ensemble de l’intégralité des fragments disponibles pour ce fichier. Cette propriété apporte la résilience du système face à la perte potentielle ou la compromission d’un service de stockage en ligne.Advantageously, these fragments include a certain degree of redundancy to allow the reconstruction of the initial file from only a subset of the entirety of the fragments available for this file. This property provides the resilience of the system in the face of the potential loss or compromise of an online storage service.

Avantageusement, les communications entre l’utilisateur et le serveur relai ainsi qu’entre le serveur relai et les services de stockage en ligne utilisent des tunnels chiffrés permettant de garantir la confidentialité des échanges. Chaque acteur du système est authentifié auprès des acteurs avec lesquels il communique. L’utilisateur, en particulier, doit être authentifié auprès du système qui lui délivre un jeton d’accès qui peut être vérifié par le serveur relai et/ou les services de stockage en ligne.Advantageously, communications between the user and the relay server as well as between the relay server and the online storage services use encrypted tunnels to ensure the confidentiality of the exchanges. Each actor in the system is authenticated with the actors with whom it communicates. The user, in particular, must be authenticated with the system which issues him an access token that can be verified by the relay server and/or the online storage services.

L’utilisateur dispose également d’une clé de signature lui permettant de signer ses messages. Cette signature peut être vérifiée, et donc les messages authentifiés comme provenant bien de l’utilisateur par le serveur relai et les services de stockage en ligne. Cette clé de signature peut être symétrique ou asymétrique.The user also has a signature key that allows him to sign his messages. This signature can be verified, and therefore the messages authenticated as coming from the user by the relay server and online storage services. This signature key can be symmetric or asymmetric.

Avantageusement, la fonction de dispersion permet de garantir que la connaissance d’un seul fragment ne permet pas à un service de stockage en ligne de reconstituer le fichier initial. Dans le cas où le système utilise de la redondance et où plusieurs fragments sont stockés sur un même service de stockage en ligne, le système assure que le nombre de fragments stockés sur un même service de stockage en ligne ne permet pas de reconstituer le fichier.Advantageously, the dispersion function ensures that knowledge of a single fragment does not allow an online storage service to reconstruct the initial file. In the case where the system uses redundancy and where several fragments are stored on the same online storage service, the system ensures that the number of fragments stored on the same online storage service does not allow the file to be reconstructed.

En termes de sécurité, il est avantageux de proposer un service de stockage dit zéro confiance entre les différents acteurs. Ainsi la compromission de l’un des acteurs ne compromet pas la sécurité de la solution. Dans le cas présent, nous nous intéressons à la confidentialité des échanges et aux moyens mis en œuvre pour assurer que le serveur relai et les services de stockage ne puissent pas accéder à l’information sauvegardée par l’utilisateur. Cette confidentialité doit être assurée sans requérir la gestion de clés dans le temps par l’utilisateur. Pour ce faire, cinq contraintes sont imposées au système.In terms of security, it is advantageous to offer a so-called zero-trust storage service between the different actors. Thus, the compromise of one of the actors does not compromise the security of the solution. In this case, we are interested in the confidentiality of the exchanges and the means implemented to ensure that the relay server and the storage services cannot access the information saved by the user. This confidentiality must be ensured without requiring the management of keys over time by the user. To do this, five constraints are imposed on the system.

Selon une première contrainte, l’utilisateur ne doit pas devoir gérer de clés persistantes.According to a first constraint, the user must not have to manage persistent keys.

Selon une seconde contrainte, l’utilisateur ne doit pas avoir la connaissance des services de stockage en ligne.According to a second constraint, the user must not have knowledge of online storage services.

Selon une troisième contrainte, les services de stockage en ligne ne doivent pas pouvoir acquérir de connaissance, même partielle du contenu original stocké par l’utilisateur.According to a third constraint, online storage services must not be able to acquire knowledge, even partial, of the original content stored by the user.

Selon une quatrième contrainte, le serveur relai ne doit pas être en mesure d’acquérir la moindre information sur le contenu original de l’utilisateur.A fourth constraint is that the relay server must not be able to acquire any information about the user's original content.

Selon une cinquième contrainte, l’utilisateur ne doit avoir besoin que d’une requête pour obtenir une réponse valide du service.A fifth constraint is that the user should only need one request to get a valid response from the service.

L’invention vise à offrir un service sécurisé de stockage en ligne sur la base d’un serveur relai et d’une pluralité de services de stockage en ligne respectant ces contraintes.The invention aims to offer a secure online storage service based on a relay server and a plurality of online storage services respecting these constraints.

Selon un aspect de l’invention il est proposé un procédé de stockage sécurisé d’un fichier original caractérisé en ce qu’il comprend les étapes suivantes pour téléverser un fichier original:
- réception du fichier original, transmis par un dispositif utilisateur, par un serveur relai connecté à une pluralité de services de stockage en ligne ;
- application d’une fonction de dispersion par le serveur relai pour générer une pluralité de fragments à partir du fichier original reçu ;
- transmission pour sauvegarde par le serveur relai de chaque fragment à un service de stockage en ligne parmi la pluralité de service de stockage en ligne ;
caractérisé en ce que :
- le fichier original est transformé en pseudo-message par le dispositif utilisateur à l’aide d’une fonction de transformation tout ou rien ;
- le pseudo-message est chiffré, au moins en partie, par le dispositif utilisateur à l’aide d’une clés secrète partagée avec la pluralité de service de stockage en ligne, le chiffrement étant homomorphe, le fichier original reçu par le serveur relai étant le pseudo-message chiffré ;
- la fonction de dispersion est appliquée sur le pseudo-message chiffré et génère des fragments chiffrés ;
- les fragments chiffrés sont déchiffrés par les services de stockage en ligne avant stockage.
According to one aspect of the invention, a method for securely storing an original file is provided, characterized in that it comprises the following steps for uploading an original file:
- reception of the original file, transmitted by a user device, by a relay server connected to a plurality of online storage services;
- application of a dispersion function by the relay server to generate a plurality of fragments from the original file received;
- transmission for backup by the relay server of each fragment to an online storage service among the plurality of online storage services;
characterized in that:
- the original file is transformed into a pseudo-message by the user device using an all-or-nothing transformation function;
- the pseudo-message is encrypted, at least in part, by the user device using a secret key shared with the plurality of online storage services, the encryption being homomorphic, the original file received by the relay server being the encrypted pseudo-message;
- the dispersion function is applied to the encrypted pseudo-message and generates encrypted fragments;
- encrypted fragments are decrypted by online storage services before storage.

Un mode de réalisation est caractérisé en ce que :
- la clé secrète est partagée entre le dispositif utilisateur et les services de stockage en ligne par un protocole d’échange de clé sécurisé.
One embodiment is characterized in that:
- the secret key is shared between the user device and the online storage services by a secure key exchange protocol.

Un mode de réalisation est caractérisé en ce que :One embodiment is characterized in that:

- le protocole d’échange de clé sécurisé est le protocole de Diffie-Hellman.- the secure key exchange protocol is the Diffie-Hellman protocol.

Un mode de réalisation est caractérisé en ce que :
- le protocole d’échange de clé sécurisé est le protocole d’échange de clé sécurisé.
Un mode de réalisation est caractérisé en ce que :
- le protocole de Diffie-Hellman est basé sur une première clé asymétrique générée par le dispositif utilisateur et une seconde clé asymétrique partagée par les services de stockage en ligne.
One embodiment is characterized in that:
- Secure Key Exchange Protocol is the Secure Key Exchange Protocol.
One embodiment is characterized in that:
- the Diffie-Hellman protocol is based on a first asymmetric key generated by the user device and a second asymmetric key shared by the online storage services.

Un mode de réalisation est caractérisé en ce que :
- une nouvelle première clé asymétrique est générée avant chaque échange par le dispositif utilisateur.
One embodiment is characterized in that:
- a new first asymmetric key is generated before each exchange by the user device.

Un mode de réalisation est caractérisé en ce qu’il comporte en outre les étape suivantes pour le téléchargement :
- chiffrement des fragments par les services de stockage en ligne à l’aide d’une clé secrète partagée avec le dispositif utilisateur;
- réception par le serveur relai des fragments chiffrés ;
- application de la fonction de dispersion inverse par le serveur relai sur les fragments chiffrés pour générer un pseudo-message chiffré ;
- transmission du pseudo-message chiffré au dispositif utilisateur ;
- déchiffrement du pseudo-message chiffré par le dispositif utilisateur ;
- application de la fonction inverse de transformation tout ou rien par le dispositif utilisateur pour retrouver le fichier original.
One embodiment is characterized in that it further comprises the following steps for downloading:
- encryption of fragments by online storage services using a secret key shared with the user device;
- reception by the relay server of encrypted fragments;
- application of the inverse dispersion function by the relay server on the encrypted fragments to generate a pseudo-encrypted message;
- transmission of the encrypted pseudo-message to the user device;
- decryption of the encrypted pseudo-message by the user device;
- application of the inverse all-or-nothing transformation function by the user device to find the original file.

Selon un autre aspect de l’invention il est proposé un programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’invention lorsque ledit programme est exécuté sur un ordinateur.According to another aspect of the invention, a computer program is provided comprising instructions adapted to the implementation of each of the steps of the method according to the invention when said program is executed on a computer.

Selon un autre aspect de l’invention il est proposé un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l’invention.According to another aspect of the invention, there is provided a means of storing information, removable or not, partially or totally readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the method according to the invention.

Selon un autre aspect de l’invention il est proposé un système comprenant un dispositif utilisateur, un serveur relai et une pluralité de service de stockage en ligne configurés pour mettre en œuvre un procédé selon l’invention.According to another aspect of the invention, there is provided a system comprising a user device, a relay server and a plurality of online storage services configured to implement a method according to the invention.


Selon un autre aspect de l’invention il est proposé un programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’invention lorsque ledit programme est exécuté sur un ordinateur.

According to another aspect of the invention, a computer program is provided comprising instructions adapted to the implementation of each of the steps of the method according to the invention when said program is executed on a computer.


Selon un autre aspect de l’invention il est proposé un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l’invention.

According to another aspect of the invention, there is provided a means of storing information, removable or not, partially or totally readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the method according to the invention.


Selon un autre aspect de l’invention il est proposé un système comprenant un dispositif utilisateur, un serveur relai et une pluralité de service de stockage en ligne configurés pour mettre en œuvre un procédé selon l’invention.

According to another aspect of the invention there is provided a system comprising a user device, a relay server and a plurality of online storage services configured to implement a method according to the invention.


Aux dessins annexés, donnés à titre d'exemples non limitatifs :

In the attached drawings, given as non-limiting examples:

la illustre l’architecture générale et le fonctionnement d’un service sécurisé de stockage en ligne selon un mode de réalisation de l’invention ;there illustrates the general architecture and operation of a secure online storage service according to one embodiment of the invention;

les figures 2a et 2b illustrent le fonctionnement général du téléversement et du téléchargement d’un fichier ;Figures 2a and 2b illustrate the general operation of uploading and downloading a file;

les figures 3a et 3b illustrent un mode de réalisation de l’invention ;Figures 3a and 3b illustrate one embodiment of the invention;

la est un bloc-diagramme schématique d'un dispositif de traitement de l’information pour la mise en œuvre d'un ou plusieurs modes de réalisation de l'invention.there is a schematic block diagram of an information processing device for implementing one or more embodiments of the invention.

Les figures 2a et 2b illustrent le fonctionnement général du téléversement, , et du téléchargement, figure 2b, d’un fichier.Figures 2a and 2b illustrate the general operation of the upload, , and downloading, figure 2b, a file.

Sur ces figures un seul service de stockage en ligne 203 est représenté. Le même fonctionnement s’applique à la pluralité de services de stockage en ligne connectés au serveur relai 202.In these figures only one online storage service 203 is shown. The same operation applies to the plurality of online storage services connected to the relay server 202.

Le téléversement du fichier est illustré par la . L’utilisateur 201 transmet le fichier original à sauvegarder 204 au serveur relai 202. Ce dernier attribue un identifiant 207 Id_o au fichier original, le transmet à l’utilisateur 201 qui le stocke 210.The file upload is illustrated by the . The user 201 transmits the original file to be saved 204 to the relay server 202. The latter assigns an identifier 207 Id_o to the original file, transmits it to the user 201 who stores it 210.

Le serveur relai applique la fonction de dispersion pour générer les fragments à partir du fichier original. Le fonctionnement de la fonction de dispersion n’est pas le sujet du présent document. La figure illustre un fragment 205 de cette pluralité de fragments. Le fragment 205 est transmis au service de stockage en ligne 203 qui lui attribue un identifiant de fragment Id_f 206 et mémorise le lien 208 entre le fragment 205 et son identifiant Id_f 206. Le service de stockage en ligne transmet cet identifiant de fragment 206 au serveur relai qui mémorise l’association 209 entre l’identifiant du fichier original Id_o et l’identifiant de fragment Id_f. Les autres fragments générés par le serveur relai reçoivent le même traitement non représenté sur la figure.The relay server applies the dispersion function to generate the fragments from the original file. The operation of the dispersion function is not the subject of this document. The figure illustrates a fragment 205 of this plurality of fragments. The fragment 205 is transmitted to the online storage service 203 which assigns it a fragment identifier Id_f 206 and stores the link 208 between the fragment 205 and its identifier Id_f 206. The online storage service transmits this fragment identifier 206 to the relay server which stores the association 209 between the identifier of the original file Id_o and the fragment identifier Id_f. The other fragments generated by the relay server receive the same processing not shown in the figure.

Le téléchargement illustré par la figure 2b présente un fonctionnement symétrique. L’utilisateur 201 transmet au serveur relai 202 une requête comprenant l’identifiant Id_o 207 du fichier qu’il souhaite télécharger. Le serveur relai retrouve l’identifiant de fragment associé Id_f qu’il utilise pour construire une requête comprenant cet identifiant qu’il transmet au service de stockage en ligne 203. A l’aide de l’identifiant de fragment Id_f, le service de stockage en ligne 203 retrouve le fragment associé 205 et le transmet au serveur relai 202. Ce dernier, quand il a récupéré la totalité des fragments, ou au moins un nombre suffisant si la redondance est mise en œuvre, reconstruit le fichier original 204 en utilisant la fonction inverse de la fonction de dispersion. Le serveur relai peut alors transmettre le fichier original 204 ainsi obtenu à l’utilisateur.The download illustrated in Figure 2b has a symmetrical operation. The user 201 transmits to the relay server 202 a request comprising the identifier Id_o 207 of the file that he wishes to download. The relay server finds the associated fragment identifier Id_f that it uses to construct a request comprising this identifier that it transmits to the online storage service 203. Using the fragment identifier Id_f, the online storage service 203 finds the associated fragment 205 and transmits it to the relay server 202. The latter, when it has recovered all of the fragments, or at least a sufficient number if redundancy is implemented, reconstructs the original file 204 using the inverse function of the dispersion function. The relay server can then transmit the original file 204 thus obtained to the user.

Les solutions proposées dans ce document pour permettre de répondre aux contraintes de sécurité exposées sont basée sur l’utilisation d’outils cryptographiques. Parmi ces outils nous citerons les fonctions suivantes :The solutions proposed in this document to meet the security constraints outlined are based on the use of cryptographic tools. Among these tools we will cite the following functions:

La fonction KEYGEN qui permet de générer une clé cryptographique. La clé générée peut être une clé symétrique ou asymétrique.The KEYGEN function which allows to generate a cryptographic key. The generated key can be a symmetric or asymmetric key.

Une clé symétrique est une clé partagée entre deux acteurs qui permet le chiffrement d’un contenu pour obtenir un contenu chiffré. La même clé est nécessaire pour déchiffrer le contenu chiffré et retrouver le contenu d’origine. Cette clé constitue un secret partagé entre l’émetteur du contenu chiffré qui procède au chiffrement et le récepteur du contenu chiffré qui procède au déchiffrement.A symmetric key is a key shared between two parties that allows the encryption of content to obtain encrypted content. The same key is needed to decrypt the encrypted content and retrieve the original content. This key constitutes a secret shared between the sender of the encrypted content who performs the encryption and the receiver of the encrypted content who performs the decryption.

Une clé asymétrique est composée d’une paire de clés, une clé dite privée et une clé dite publique. Pour échanger du contenu chiffré entre deux acteurs, chacun possède sa propre clé asymétrique. Chaque acteur garde secret sa clé privée et diffuse sa clé publique. Dans ce cas, l’émetteur qui procède au chiffrement d’un contenu chiffre celui-ci à l’aide de la clé publique du récepteur. Ce dernier déchiffre le contenu à l’aide de sa propre clé privée .An asymmetric key is composed of a pair of keys, a so-called private key and a so-called public key. To exchange encrypted content between two actors, each has their own asymmetric key. Each actor keeps their private key secret and broadcasts their public key. In this case, the sender who encrypts content encrypts it using the receiver's public key. The latter decrypts the content using their own private key.

La fonction ENC(k, m) représente le chiffrement d’un contenu ‘m’ à l’aide de la clé ‘k’. Il s’agit ici d’une clé symétrique, typiquement issue de la fonction KEYGEN. Une clé asymétrique peut également être utilisée.The ENC(k, m) function represents the encryption of a content ‘m’ using the key ‘k’. This is a symmetric key, typically from the KEYGEN function. An asymmetric key can also be used.

La fonction DEC(k, c) représente le déchiffrement d’un contenu chiffré ‘c’ à l’aide de la clé ‘k’. C’est la fonction inverse de la fonction ENC(k, m).The function DEC(k, c) represents the decryption of an encrypted content ‘c’ using the key ‘k’. It is the inverse function of the function ENC(k, m).

La fonction SIGN(k, m) produit une signature cryptographique du contenu ‘m’ à l’aide de la clé ‘k’. Cette fonction ne chiffre pas le contenu et le laisse lisible. L’émetteur d’un contenu ‘m’ peut signer ce contenu à l’aide de cette fonction. Il transmet alors le contenu ‘m’ et la signature ainsi calculée. Le récepteur du contenu ‘m’ peut vérifier la signature, par exemple à l’aide de la même fonction et de la même clé ou des fonctions de vérification selon le mode de réalisation. Si la signature ainsi obtenue correspond à la signature reçue, cela signifie que le contenu ‘c’ n’a pas été altéré et qu’il a bien été signé par le possesseur de la clé ‘k’. Dans le mode de réalisation privilégié, la clé de signature est différente de la clé utilisée pour chiffrer/déchiffrer les messages.The function SIGN(k, m) produces a cryptographic signature of the content ‘m’ using the key ‘k’. This function does not encrypt the content and leaves it readable. The sender of a content ‘m’ can sign this content using this function. He then transmits the content ‘m’ and the signature thus calculated. The receiver of the content ‘m’ can verify the signature, for example using the same function and the same key or the verification functions according to the embodiment. If the signature thus obtained corresponds to the signature received, this means that the content ‘c’ has not been altered and that it has indeed been signed by the owner of the key ‘k’. In the preferred embodiment, the signature key is different from the key used to encrypt/decrypt the messages.

La fonction HASH(m) est une fonction mathématique non inversible qui produit à partir d’un contenu ‘m’ de longueur quelconque une valeur de taille fixe. La probabilité que deux contenus différents m1 et m2 produise la même valeur de hash est suffisamment faible pour que l’on considère la fonction HASH comme permettant de vérifier l’intégrité du contenu ‘m’.The HASH(m) function is a non-invertible mathematical function that produces a fixed-size value from a content ‘m’ of any length. The probability that two different contents m1 and m2 produce the same hash value is low enough that the HASH function is considered to be a way to verify the integrity of the content ‘m’.

La fonction AONT (pourAll Or Nothing Transformen anglais) est une fonction de transformation tout ou rien, c’est-à-dire sans clé, inversible, aléatoire ayant la propriété d’être très difficilement inversible si l’on ne connaît pas l’intégralité de son résultat. Cette fonction prend en entrée un message et génère un pseudo-message. L’opération inverse permettant de retrouver le message original à partir du pseudo-message nécessite de connaître l’intégralité du pseudo-message. Un simple fragment du pseudo-message ne permet pas de reconstruire, même partiellement, le message d’origine. Différents exemples de telles fonctions sont connus de l’homme du métier, dont la fonction décrite par Ronald L. Rivest dans son article de 1997 intitulé « All-Or-Nothing Encryption and The Package Transform ». La transformation proposée par Rivest consiste à prétraiter le texte en clair en effectuant un XOR de chaque bloc de texte en clair avec l'index de ce bloc chiffré par une clé choisie au hasard, puis en ajoutant un bloc supplémentaire calculé en effectuant un XOR de cette clé aléatoire et des hashs de tous les blocs prétraités. Le résultat de ce prétraitement est appelé le pseudo-message et sert d'entrée à l'algorithme de chiffrement. Pour annuler la transformation du paquet, il faut hacher tous les blocs du pseudo-message sauf le dernier, faire un XOR de tous les hachages avec le dernier bloc pour récupérer la clé aléatoire, puis utiliser la clé aléatoire pour reconvertir chaque bloc prétraité en son bloc original en clair. De cette façon, il est impossible de récupérer le texte en clair original sans avoir accès à l’intégralité des blocs du pseudo-message. D’autres fonctions AONT ont été proposées depuis. Dans le cadre de ce document, toute fonction AONT peut être utilisée indifféremment.The AONT function (for All Or Nothing Transform in English) is an all-or-nothing transformation function, i.e. without a key, invertible, random, having the property of being very difficult to invert if the entirety of its result is not known. This function takes a message as input and generates a pseudo-message. The inverse operation allowing the original message to be found from the pseudo-message requires knowing the entirety of the pseudo-message. A simple fragment of the pseudo-message does not allow the original message to be reconstructed, even partially. Various examples of such functions are known to those skilled in the art, including the function described by Ronald L. Rivest in his 1997 article entitled "All-Or-Nothing Encryption and The Package Transform". The transformation proposed by Rivest consists of preprocessing the plaintext by performing an XOR of each plaintext block with the index of this block encrypted by a randomly chosen key, then adding an additional block calculated by performing an XOR of this random key and the hashes of all the preprocessed blocks. The result of this preprocessing is called the pseudo-message and serves as input to the encryption algorithm. To undo the transformation of the packet, one must hash all the blocks of the pseudo-message except the last one, perform an XOR of all the hashes with the last block to recover the random key, then use the random key to convert each preprocessed block back to its original plaintext block. In this way, it is impossible to recover the original plaintext without having access to all the blocks of the pseudo-message. Other AONT functions have been proposed since. For the purposes of this document, any AONT function can be used interchangeably.

La fonction HEenc(k, m) est une fonction de chiffrement homomorphe d’un message m par une clé k ayant la propriété suivante par rapport à une loi définie par deux opérateurs ( , ) :The HEenc(k, m) function is a homomorphic encryption function of a message m by a key k having the following property with respect to a law defined by two operators ( , ) :

HEenc(k, m1) HEenc(k, m2) = HEenc(k, m1 m2) ;HEenc(k, m1) HEenc(k, m2) = HEenc(k, m1 m2);

La fonction HEenc(k, m) est dite totalement homomorphe si la propriété d’homomorphisme est valable vis-à-vis de deux lois et qui permettent d’exprimer toute fonction calculable. Le chiffrement homomorphe permet d’effectuer des calculs sur des données chiffrées sans nécessiter leur déchiffrement. Le cas d’usage connu de ces méthodes de chiffrement est la sous-traitance de calculs à une entité non sûre. Les données à traiter sont chiffrées par une telle fonction totalement homomorphe avant leur transmission à l’entité. Cette dernière peut alors effectuer les traitements demandés sur les données chiffrées sans pouvoir accéder à ces données. Le résultat reçu de l’entité peut être décodé par le donneur d’ordre. Un exemple de fonction d’encodage totalement homomorphe est décrit dans l’article scientifique: I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33.The function HEenc(k, m) is said to be totally homomorphic if the homomorphism property is valid with respect to two laws And which allow to express any computable function. Homomorphic encryption allows to perform calculations on encrypted data without requiring their decryption. The known use case of these encryption methods is the outsourcing of calculations to an insecure entity. The data to be processed are encrypted by such a fully homomorphic function before their transmission to the entity. The latter can then perform the requested processing on the encrypted data without being able to access these data. The result received from the entity can be decoded by the ordering party. An example of a fully homomorphic encoding function is described in the scientific article: I. Chillotti, N. Gama, M. Georgieva, and M. Izabachène. TFHE: Fast Fully Homomorphic Encryptionover the Torus. In Journal of Cryptology, volume 33.

La fonction Diffie Hellman DH-Key permet un échange de clés entre deux agents, nommés par convention Alice et Bob, tel que cet échange permet aux deux agents de partager un secret sans que les échanges ne révèlent ce secret. Si Alice dispose d’une clé secrète DH_S_A et d’une clé publique correspondante DH_P_A, tandis que Bob dispose de la clé secrète DH_S_B et de la clé publique correspondante DH_P_B, et que Alice et Bob s’échangent leurs clés publiques DH_P_A et DH_P_B, la fonction Diffie Hellman permet aux deux agents Alice et Bob de calculer la même valeur K, pouvant servir de clé, de la façon suivante :The Diffie Hellman DH-Key function allows a key exchange between two agents, conventionally named Alice and Bob, such that this exchange allows the two agents to share a secret without the exchanges revealing this secret. If Alice has a secret key DH_S_A and a corresponding public key DH_P_A, while Bob has the secret key DH_S_B and the corresponding public key DH_P_B, and Alice and Bob exchange their public keys DH_P_A and DH_P_B, the Diffie Hellman function allows the two agents Alice and Bob to calculate the same value K, which can be used as a key, as follows:

K = DH-Key(DH_P_B, DH_S_A) = DH-Key(DH_P_A, DH_S_B) ;K = DH-Key(DH_P_B, DH_S_A) = DH-Key(DH_P_A, DH_S_B);

Un agent malveillant interceptant les échanges entre Alice et Bob n’acquière la connaissance que des clés publiques de Alice et Bob qui ne permettent pas, en l’absence des clés privées, le calcul de K. La clé K permet ensuite à Alice et Bob, par exemple, de chiffrer leurs communications.A malicious agent intercepting the exchanges between Alice and Bob only acquires knowledge of Alice and Bob's public keys which, in the absence of the private keys, do not allow the calculation of K. The key K then allows Alice and Bob, for example, to encrypt their communications.

L’invention repose sur la mise en œuvre d’un chiffrement du fichier à sauvegarder par l’utilisateur. Nous rappelons que l’une des contraintes est de ne pas devoir imposer une gestion de clés persistantes à l’utilisateur. Les fragments issus du fichier à sauvegarder sont donc stockés en clair par les services de stockage. Ce chiffrement vise à protéger la confidentialité du fichier d’origine pendant les communications et en particulier lors de la manipulation du fichier par le serveur relai pour générer les fragments. De ce fait, le fichier ne doit pas être déchiffrer par le serveur relai qui doit travailler sur la version chiffrée du fichier. Pour permettre cette manipulation du fichier chiffré par le serveur relai sans compromettre le déchiffrement des fragments par les services de stockage, un chiffrement totalement homomorphe est privilégié. Toutefois, dans certains modes de réalisation, en fonction du type d’opérations mathématiques mises en œuvre par la fonction de dispersion, un chiffrement simplement homomorphe peut être utilisé.The invention is based on the implementation of encryption of the file to be saved by the user. We recall that one of the constraints is not to have to impose persistent key management on the user. The fragments from the file to be saved are therefore stored in clear text by the storage services. This encryption aims to protect the confidentiality of the original file during communications and in particular during manipulation of the file by the relay server to generate the fragments. As a result, the file must not be decrypted by the relay server which must work on the encrypted version of the file. To allow this manipulation of the encrypted file by the relay server without compromising the decryption of the fragments by the storage services, a fully homomorphic encryption is preferred. However, in certain embodiments, depending on the type of mathematical operations implemented by the dispersion function, a simply homomorphic encryption can be used.

Il est également souhaité que le serveur relai ne puisse pas déchiffrer le fichier et accéder à son contenu. De plus, l’utilisateur n’a pas de connaissance à priori des services de stockage utilisés, il communique uniquement avec le serveur relai. Ces contraintes doivent tout de même permettre le chiffrement du fichier par l’utilisateur et le déchiffrement par le service de stockage des fragments qui lui sont confiés. Pour permettre de respecter ces contraintes, il est proposé d’utiliser un protocole sécurisé d’échange de clé privée entre l’utilisateur et les services de stockage. Plusieurs protocoles peuvent être utilisés, par exemple le protocole d’échange de clé dit de Diffie-Hellman, ou encore l’algorithme de Kyber décrit dans l’article « CRYSTALS-Kyber Algorithm Specifications And Supporting Documentation (version 3.02) », par Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé, et soumis au concours NIST. Avantageusement les services de stockage en ligne partagent une même clé asymétrique, c’est-à-dire composée d’une clé publique et d’une clé secrète. L’utilisateur peut, quant à lui, générer une nouvelle clé asymétrique pour chaque échange. Cette génération d’une nouvelle clé par l’utilisateur n’est pas obligatoire mais permet de changer la clé partagée K servant à chiffrer le fichier à chaque échange. Ainsi, lors de chaque échange, le protocole de Diffie-Hellman permet de générer une clé K dédiée à l’échange, partagée entre l’utilisateur et l’ensemble des services de stockage et inconnue du serveur relai, bien que ce dernier ait la connaissance de tous les échanges entre l’utilisateur et les services de stockage en ligne. Cette génération d’une nouvelle clé par l’utilisateur n’est pas obligatoire mais permet de changer la clé partagée K servant à chiffrer le fichier à chaque échange. La façon dont les services de stockage en ligne obtiennent la clé asymétrique qu’ils partagent est en dehors de la portée de ce document. Cette clé peut être configurée à l’initialisation du système ou partagée ensuite. La seule contrainte est qu’il faut garantir que le serveur relai ne puisse pas en acquérir la connaissance.It is also desired that the relay server cannot decrypt the file and access its content. In addition, the user has no a priori knowledge of the storage services used; he communicates only with the relay server. These constraints must still allow the user to encrypt the file and the storage service to decrypt the fragments entrusted to it. To allow these constraints to be respected, it is proposed to use a secure private key exchange protocol between the user and the storage services. Several protocols can be used, for example the Diffie-Hellman key exchange protocol, or the Kyber algorithm described in the article "CRYSTALS-Kyber Algorithm Specifications And Supporting Documentation (version 3.02)", by Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé, and submitted to the NIST competition. Advantageously, online storage services share the same asymmetric key, i.e. composed of a public key and a secret key. The user can, for his part, generate a new asymmetric key for each exchange. This generation of a new key by the user is not mandatory but allows to change the shared key K used to encrypt the file at each exchange. Thus, during each exchange, the Diffie-Hellman protocol generates a key K dedicated to the exchange, shared between the user and all storage services and unknown to the relay server, although the latter has knowledge of all exchanges between the user and the online storage services. This generation of a new key by the user is not mandatory but allows changing the shared key K used to encrypt the file at each exchange. How online storage services obtain the asymmetric key they share is outside the scope of this document. This key can be configured at system initialization or shared afterwards. The only constraint is that it must be guaranteed that the relay server cannot acquire knowledge of it.

Il est de plus souhaité que les services de stockage en ligne utilisés pour stocker les fragments ne puissent pas acquérir de connaissances sur le fichier original. Or les fragments sont stockés non chiffrés par ces services de stockage en ligne. Pour respecter ces contraintes, il est proposé que l’utilisateur encode le fichier original en utilisant une fonction AONT pour générer un pseudo-message à partir du fichier original. C’est ce pseudo-message et non le fichier original qui est alors chiffré et transmis au serveur relai pour stockage par les services de stockage en ligne. Du fait des propriétés de la fonction AONT, l’ensemble du pseudo-message est nécessaire pour le décoder et retrouver le fichier original. Ainsi, chaque service de stockage en ligne ne possédant par définition que d’un ou plusieurs fragments du pseudo-message est incapable d’accéder ne serait-ce qu’à un fragment du fichier original.It is further desired that the online storage services used to store the fragments cannot acquire knowledge about the original file. However, the fragments are stored unencrypted by these online storage services. To comply with these constraints, it is proposed that the user encodes the original file using an AONT function to generate a pseudo-message from the original file. It is this pseudo-message and not the original file that is then encrypted and transmitted to the relay server for storage by the online storage services. Due to the properties of the AONT function, the entire pseudo-message is necessary to decode it and find the original file. Thus, each online storage service that by definition only has one or more fragments of the pseudo-message is unable to access even one fragment of the original file.

De plus, l’utilisation de la fonction AONT possède un avantage supplémentaire. En effet, comme il est nécessaire d’accéder à l’intégralité du pseudo-message pour le décoder, il n’est pas nécessaire de chiffrer l’intégralité du pseudo-message pour en protéger l’accès. Le chiffrement d’une seule partie, même minime, du pseudo-message offre le même degré de protection que le chiffrement de l’intégralité du pseudo-message. Cette propriété peut être mise en œuvre pour limiter les ressources en calcul nécessaires à la méthode proposée en ne chiffrant qu’une partie minime du pseudo-message. Ceci est d’autant plus intéressant que les fonctions de chiffrement totalement homomorphes sont coûteuses en calcul.Moreover, using the AONT function has an additional advantage. Indeed, since it is necessary to access the entire pseudo-message to decode it, it is not necessary to encrypt the entire pseudo-message to protect access to it. Encrypting only a small part of the pseudo-message offers the same degree of protection as encrypting the entire pseudo-message. This property can be implemented to limit the computational resources required by the proposed method by encrypting only a small part of the pseudo-message. This is all the more interesting since fully homomorphic encryption functions are computationally expensive.

Pour résumer, le procédé de stockage proposé, comprend pour l’opération de téléversement une première étape d’application d’une fonction AONT par l’utilisateur sur le fichier original pour obtenir un pseudo-message correspondant au fichier original. Ensuite, l’utilisateur chiffre au moins une partie du pseudo message pour obtenir un pseudo-message chiffré. Ce chiffrement est du type totalement homomorphe. Il est effectué à l’aide d’une clé secrète partagée entre l’utilisateur et les services de stockage en ligne. Dans un mode de réalisation, cette clé secrète est échangée à l’aide du protocole de Diffie-Hellman entre l’utilisateur et les services de stockage. Le pseudo-message chiffré est transmis au serveur relai. Il est à noter ici que l’on qualifie le pseudo-message de pseudo-message chiffré même dans le cas d’un chiffrement partiel du pseudo-message. En effet, du fait de l’utilisation de la fonction AONT, même dans le cas d’un chiffrement partiel, les parties non chiffrées du pseudo-message ne sont pas accessibles sans déchiffrement de la partie chiffrée. Le serveur relai applique alors la fonction de dispersion pour obtenir une pluralité de fragments chiffrés. Les fragments sont qualifiés de chiffrés ici, bien qu’en toute rigueur, le chiffrement pouvant n’affecter qu’une partie du pseudo-message, certains fragments peuvent correspondre à une partie non chiffrée du pseudo-message, ceci pour la raison expliquée ci-dessus à propos du pseudo-message chiffré. Ces fragments chiffrés sont répartis sur les différents services de stockage en ligne. Ils sont alors déchiffrés et stockés en clair par le service de stockage en ligne.To summarize, the proposed storage method comprises, for the upload operation, a first step of application of an AONT function by the user on the original file to obtain a pseudo-message corresponding to the original file. Then, the user encrypts at least part of the pseudo-message to obtain an encrypted pseudo-message. This encryption is of the fully homomorphic type. It is performed using a secret key shared between the user and the online storage services. In one embodiment, this secret key is exchanged using the Diffie-Hellman protocol between the user and the storage services. The encrypted pseudo-message is transmitted to the relay server. It should be noted here that the pseudo-message is referred to as an encrypted pseudo-message even in the case of partial encryption of the pseudo-message. Indeed, due to the use of the AONT function, even in the case of partial encryption, the unencrypted parts of the pseudo-message are not accessible without decrypting the encrypted part. The relay server then applies the dispersion function to obtain a plurality of encrypted fragments. The fragments are called encrypted here, although strictly speaking, since encryption may only affect part of the pseudo-message, some fragments may correspond to an unencrypted part of the pseudo-message, for the reason explained above regarding the encrypted pseudo-message. These encrypted fragments are distributed across the various online storage services. They are then decrypted and stored in clear text by the online storage service.

L’opération de téléchargement est symétrique. Elle est également basée sur un chiffrement homomorphe utilisant une clé partagée entre l’utilisateur est les services de stockage en ligne. Cette clé secrète peut, dans un exemple de réalisation, être échangée par le protocole de Diffie-Hellman suite à une éventuelle génération d’une nouvelle clé asymétrique par l’utilisateur. Les services de stockage en ligne chiffrent alors tout ou partie des fragments à leur disposition. Ces fragments sont alors transmis au serveur relai sur requête. Le serveur relai ayant reçu les fragments chiffrés applique la fonction de dispersion inverse pour retrouver le pseudo-message chiffré. La manipulation des données chiffrées étant rendue possible par l’utilisation d’un chiffrement totalement homomorphe. Ce pseudo-message chiffré est alors transmis sur requête à l’utilisateur qui peut le déchiffrer pour obtenir le pseudo-message non chiffré et décoder ce dernier pour retrouver le fichier original.The download operation is symmetrical. It is also based on homomorphic encryption using a key shared between the user and the online storage services. This secret key can, in an exemplary embodiment, be exchanged by the Diffie-Hellman protocol following a possible generation of a new asymmetric key by the user. The online storage services then encrypt all or part of the fragments at their disposal. These fragments are then transmitted to the relay server upon request. The relay server having received the encrypted fragments applies the inverse dispersion function to find the encrypted pseudo-message. The manipulation of the encrypted data is made possible by the use of fully homomorphic encryption. This encrypted pseudo-message is then transmitted upon request to the user who can decrypt it to obtain the unencrypted pseudo-message and decode the latter to find the original file.


Les figures 3a et 3b illustrent un premier mode de réalisation de l’invention. La illustre le téléversement selon ce mode de réalisation, tandis que la illustre le téléchargement.

Figures 3a and 3b illustrate a first embodiment of the invention. The illustrates the upload according to this embodiment, while the illustrates the download.

Pour réaliser le téléversement, l’utilisateur 201, commence par générer le pseudo-message par application de la fonction AONT au fichier original. Ensuite, il obtient la clé secrète K partagée avec les services de stockage en ligne, ici le service de stockage 203. Dans un exemple de réalisation, l’utilisateur génère une clé asymétrique (DH_P_U, DH_S_U), typiquement à l’aide de la fonction KEYGEN et applique le protocole de Diffie-Hellman pour calculer la clé secrète K. Cette clé est alors utilisée pour chiffrer au moins partiellement le pseudo-message à l’aide d’un chiffrement totalement homomorphe et obtenir un pseudo-message chiffré. L’utilisateur transmet alors le pseudo-message chiffré 204 à stocker au serveur relai 202. Ce dernier applique la fonction de dispersion et génère les fragments chiffrés issus du pseudo-message chiffré. Il associe également le pseudo-message chiffré à l’identifiant de fichier original 207 Id_o qu’il transmet en retour à l’utilisateur 201. Nous décrivons le traitement d’un de ces fragments chiffrés, le fragment 205 qui est transmis au service de stockage en ligne 203 pour stockage. Ce fragment issu d’un pseudo-message chiffré est également chiffré. Le service de stockage en ligne 203 déchiffre le fragment chiffré 205, le mémorise et l’associe à un identifiant de fragment Id_f qui est renvoyé au serveur relai. Alternativement, l’identifiant de fragment Id_f peut être généré directement par le serveur relai qui peut alors calculer le hash directement afin d’éviter un aller-retour avec le service de stockage.To perform the upload, the user 201 begins by generating the pseudo-message by applying the AONT function to the original file. Then, he obtains the secret key K shared with the online storage services, here the storage service 203. In an exemplary embodiment, the user generates an asymmetric key (DH_P_U, DH_S_U), typically using the KEYGEN function and applies the Diffie-Hellman protocol to calculate the secret key K. This key is then used to at least partially encrypt the pseudo-message using a fully homomorphic encryption and obtain an encrypted pseudo-message. The user then transmits the encrypted pseudo-message 204 to be stored to the relay server 202. The latter applies the dispersion function and generates the encrypted fragments resulting from the encrypted pseudo-message. It also associates the encrypted pseudo-message with the original file identifier 207 Id_o that it transmits back to the user 201. We describe the processing of one of these encrypted fragments, the fragment 205 which is transmitted to the online storage service 203 for storage. This fragment from an encrypted pseudo-message is also encrypted. The online storage service 203 decrypts the encrypted fragment 205, stores it and associates it with a fragment identifier Id_f which is sent back to the relay server. Alternatively, the fragment identifier Id_f can be generated directly by the relay server which can then calculate the hash directly in order to avoid a round trip with the storage service.

Concernant le téléchargement, dans ce mode de réalisation, l’utilisateur génère une nouvelle clé asymétrique à l’aide de la fonction KEYGEN pour calculer une nouvelle clé secrète K’ partagée avec les services de stockage en ligne à l’aide du protocole de Diffie-Hellman. Pour télécharger le fichier, l’utilisateur transmet, étape 307, l’identificateur du fichier original Id_o, sa clé publique DH_P_U et possiblement sa signature. La signature permet au service de stockage en ligne de vérifier que cette clé publique n’a pas été usurpée par le serveur relai. Le serveur relai relaye ces informations au service de stockage en ligne, étape 306.Regarding the download, in this embodiment, the user generates a new asymmetric key using the KEYGEN function to calculate a new secret key K’ shared with the online storage services using the Diffie-Hellman protocol. To download the file, the user transmits, step 307, the identifier of the original file Id_o, its public key DH_P_U and possibly its signature. The signature allows the online storage service to verify that this public key has not been usurped by the relay server. The relay server relays this information to the online storage service, step 306.

A l’aide de cette clé, le service de stockage en ligne peut également calculer la clé secrète K’. Le service de stockage peut alors chiffrer le fragment pour reconstituer un fragment chiffré. Ici encore, le chiffrement du pseudo-message pouvant être partiel, il est possible que tous les fragments ne soient pas effectivement chiffrés. Ces fragments seront tout de même qualifiés de fragments chiffrés car ils correspondent à des fragments issus d’un pseudo-message chiffré au moins partiellement.Using this key, the online storage service can also calculate the secret key K’. The storage service can then encrypt the fragment to reconstruct an encrypted fragment. Here again, since the encryption of the pseudo-message may be partial, it is possible that not all the fragments are actually encrypted. These fragments will still be called encrypted fragments because they correspond to fragments from a pseudo-message that is at least partially encrypted.

Ce fragment chiffré est alors transmis au serveur relai, lors de l’étape 205, accompagné de la clé publique du service de stockage en ligne DH_P_S.This encrypted fragment is then transmitted to the relay server, during step 205, accompanied by the public key of the DH_P_S online storage service.

Alors le serveur relai, une fois en possession de l’ensemble des fragments chiffrés applique la fonction de dispersion inverse pour obtenir le pseudo-message chiffré HE(K’, AONT(fichier)). Ce dernier est transmis accompagné de la clé publique du service de stockage en ligne à l’utilisateur.Then the relay server, once in possession of all the encrypted fragments, applies the inverse dispersion function to obtain the encrypted pseudo-message HE(K’, AONT(file)). The latter is transmitted accompanied by the public key of the online storage service to the user.

A l’aide de la clé publique du stockage et en appliquant le protocole de Diffie-Hellman, l’utilisateur peut calculer la clé K’ et ainsi déchiffrer le pseudo-message qu’il ne reste alors qu’à décoder, c’est-à-dire à appliquer la fonction inverse AONT pour retrouver le fichier d’origine.Using the public key of the storage and applying the Diffie-Hellman protocol, the user can calculate the key K' and thus decrypt the pseudo-message which then only needs to be decoded, i.e. apply the inverse function AONT to find the original file.

Il peut être constaté que les cinq contraintes énoncées sont respectées par le système lors de l’étape de téléchargement. L’utilisateur n’est pas contraint de gérer des clés persistantes. L’utilisateur n’acquiert aucune information sur les services de stockage en ligne utilisés. Ces derniers ne peuvent acquérir aucune information sur le fichier original stocké. De même, le serveur relai bien qu’ayant connaissance de tous les échanges, ne peut acquérir d’information sur le fichier original stocké. Enfin, l’ensemble du procédé ne requiert qu’une occurrence d’échanges entre les différents acteurs du système depuis la requête émise par l’utilisateur à la réponse lui transmettant le pseudo-message chiffré à partir duquel il peut retrouver le fichier original.It can be seen that the five stated constraints are respected by the system during the download stage. The user is not forced to manage persistent keys. The user does not acquire any information on the online storage services used. The latter cannot acquire any information on the original file stored. Similarly, the relay server, although aware of all the exchanges, cannot acquire information on the original file stored. Finally, the entire process only requires one occurrence of exchanges between the different actors of the system from the request issued by the user to the response transmitting the encrypted pseudo-message from which the original file can be found.

Le système proposé permet de garantir la sécurité des données des utilisateurs, même en cas de compromission du serveur relai ou d’un ou des services de stockage en ligne utilisés.The proposed system ensures the security of user data, even in the event of compromise of the relay server or one or more online storage services used.

La est un bloc-diagramme schématique d'un dispositif de traitement de l’information 400 pour la mise en œuvre d'un ou plusieurs modes de réalisation de l'invention. Le dispositif 400 de traitement de l’information peut être un périphérique tel qu'un micro-ordinateur, un poste de travail ou un terminal mobile de télécommunication. Le dispositif 400 comporte un bus de communication connecté à :There is a schematic block diagram of an information processing device 400 for implementing one or more embodiments of the invention. The information processing device 400 may be a peripheral such as a microcomputer, a workstation or a mobile telecommunications terminal. The device 400 comprises a communication bus connected to:

- une unité centrale de traitement 401, tel qu'un microprocesseur, notée CPU;- a central processing unit 401, such as a microprocessor, denoted CPU;

- une mémoire à accès aléatoire 402, notée RAM, pour mémoriser le code exécutable du procédé de réalisation de l'invention ainsi que les registres adaptés à enregistrer des variables et des paramètres nécessaires pour la mise en œuvre du procédé selon des modes de réalisation de l'invention ; la capacité de mémoire du dispositif peut être complétée par une mémoire RAM optionnelle connectée à un port d'extension, par exemple ;- a random access memory 402, denoted RAM, for storing the executable code of the method for implementing the invention as well as the registers adapted to record variables and parameters necessary for implementing the method according to embodiments of the invention; the memory capacity of the device can be supplemented by an optional RAM memory connected to an extension port, for example;

- une mémoire morte 403, notée ROM, pour stocker des programmes informatiques pour la mise en œuvre des modes de réalisation de l'invention ;- a read-only memory 403, denoted ROM, for storing computer programs for implementing the embodiments of the invention;

- une interface réseau 404 est normalement connectée à un réseau de communication sur lequel des données numériques à traiter sont transmis ou reçus. L'interface réseau 404 peut être une seule interface réseau, ou composée d'un ensemble d'interfaces réseau différentes (par exemple filaire et sans fil, interfaces ou différents types d'interfaces filaires ou sans fil). Des paquets de données sont envoyés sur l'interface réseau pour la transmission ou sont lues à partir de l'interface de réseau pour la réception sous le contrôle de l'application logiciel exécuté dans le processeur 401 ;- a network interface 404 is normally connected to a communication network over which digital data to be processed are transmitted or received. The network interface 404 may be a single network interface, or composed of a set of different network interfaces (e.g. wired and wireless interfaces or different types of wired or wireless interfaces). Data packets are sent over the network interface for transmission or are read from the network interface for reception under the control of the software application running in the processor 401;

- une interface utilisateur 405 pour recevoir des entrées d'un utilisateur ou pour afficher des informations à un utilisateur ;- a user interface 405 for receiving input from a user or for displaying information to a user;

- un dispositif de stockage 406 tel que décrit dans l’invention et noté HD ;- a storage device 406 as described in the invention and denoted HD;

- un module d’entrée/sortie 407 pour la réception / l'envoi de données depuis / vers des périphériques externes tels que disque dur, support de stockage amovible ou autres.- an input/output module 407 for receiving/sending data from/to external devices such as hard disk, removable storage media or others.

Le code exécutable peut être stocké dans une mémoire morte 403, sur le dispositif de stockage 406 ou sur un support amovible numérique tel que par exemple un disque. Selon une variante, le code exécutable des programmes peut être reçu au moyen d'un réseau de communication, via l'interface réseau 404, afin d'être stocké dans l'un des moyens de stockage du dispositif de communication 400, tel que le dispositif de stockage 406, avant d'être exécuté.The executable code may be stored in a read-only memory 403, on the storage device 406 or on a removable digital medium such as for example a disk. According to a variant, the executable code of the programs may be received by means of a communication network, via the network interface 404, in order to be stored in one of the storage means of the communication device 400, such as the storage device 406, before being executed.

L'unité centrale de traitement 401 est adaptée pour commander et diriger l'exécution des instructions ou des portions de code logiciel du programme ou des programmes selon l'un des modes de réalisation de l'invention, instructions qui sont stockées dans l'un des moyens de stockage précités. Après la mise sous tension, le CPU 401 est capable d'exécuter des instructions de la mémoire RAM principale 402, relatives à une application logicielle. Un tel logiciel, lorsqu'il est exécuté par le processeur 401, provoque l’exécution des procédés décrits.The central processing unit 401 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to one of the embodiments of the invention, instructions which are stored in one of the aforementioned storage means. After power-up, the CPU 401 is capable of executing instructions from the main RAM 402, relating to a software application. Such software, when executed by the processor 401, causes the execution of the methods described.

Dans ce mode de réalisation, l'appareil est un appareil programmable qui utilise un logiciel pour mettre en œuvre l'invention. Toutefois, à titre subsidiaire, la présente invention peut être mise en œuvre dans le matériel (par exemple, sous la forme d'un circuit intégré spécifique ou ASIC).In this embodiment, the apparatus is a programmable apparatus that uses software to implement the invention. However, alternatively, the present invention may be implemented in hardware (e.g., as a specific integrated circuit or ASIC).

Claims (9)

Procédé de stockage sécurisé d’un fichier original caractérisé en ce qu’il comprend les étapes suivantes pour téléverser un fichier original:
- réception du fichier original, transmis par un dispositif utilisateur, par un serveur relai connecté à une pluralité de services de stockage en ligne ;
- application d’une fonction de dispersion par le serveur relai pour générer une pluralité de fragments à partir du fichier original reçu ;
- transmission pour sauvegarde par le serveur relai de chaque fragment à un service de stockage en ligne parmi la pluralité de service de stockage en ligne ;
caractérisé en ce que :
- le fichier original est transformé en pseudo-message par le dispositif utilisateur à l’aide d’une fonction de transformation tout ou rien ;
- le pseudo-message est chiffré, au moins en partie, par le dispositif utilisateur à l’aide d’une clés secrète partagée avec la pluralité de service de stockage en ligne, le chiffrement étant homomorphe, le fichier original reçu par le serveur relai étant le pseudo-message chiffré ;
- la fonction de dispersion est appliquée sur le pseudo-message chiffré et génère des fragments chiffrés ;
- les fragments chiffrés sont déchiffrés par les services de stockage en ligne avant stockage.
A method of securely storing an original file, characterized in that it comprises the following steps for uploading an original file:
- reception of the original file, transmitted by a user device, by a relay server connected to a plurality of online storage services;
- application of a dispersion function by the relay server to generate a plurality of fragments from the original file received;
- transmission for backup by the relay server of each fragment to an online storage service among the plurality of online storage services;
characterized in that:
- the original file is transformed into a pseudo-message by the user device using an all-or-nothing transformation function;
- the pseudo-message is encrypted, at least in part, by the user device using a secret key shared with the plurality of online storage services, the encryption being homomorphic, the original file received by the relay server being the encrypted pseudo-message;
- the dispersion function is applied to the encrypted pseudo-message and generates encrypted fragments;
- encrypted fragments are decrypted by online storage services before storage.
Procédé selon la revendication 1, caractérisé en ce que :
- la clé secrète est partagée entre le dispositif utilisateur et les services de stockage en ligne par un protocole d’échange de clé sécurisé.
Method according to claim 1, characterized in that:
- the secret key is shared between the user device and the online storage services by a secure key exchange protocol.
Procédé selon la revendication 2, caractérisé en ce que :
- le protocole d’échange de clé sécurisé est le protocole de Diffie-Hellman.
Method according to claim 2, characterized in that:
- the secure key exchange protocol is the Diffie-Hellman protocol.
Procédé selon la revendication 3, caractérisé en ce que :
- le protocole de Diffie-Hellman est basé sur une première clé asymétrique générée par le dispositif utilisateur et une seconde clé asymétrique partagée par les services de stockage en ligne.
Method according to claim 3, characterized in that:
- the Diffie-Hellman protocol is based on a first asymmetric key generated by the user device and a second asymmetric key shared by the online storage services.
Procédé selon la revendication 4, caractérisé en ce que :
- une nouvelle première clé asymétrique est générée avant chaque échange par le dispositif utilisateur.
Method according to claim 4, characterized in that:
- a new first asymmetric key is generated before each exchange by the user device.
Procédé selon la revendication 1, caractérisé en ce qu’il comporte en outre les étape suivantes pour le téléchargement :
- chiffrement des fragments par les services de stockage en ligne à l’aide d’une clé secrète partagée avec le dispositif utilisateur;
- réception par le serveur relai des fragments chiffrés ;
- application de la fonction de dispersion inverse par le serveur relai sur les fragments chiffrés pour générer un pseudo-message chiffré ;
- transmission du pseudo-message chiffré au dispositif utilisateur ;
- déchiffrement du pseudo-message chiffré par le dispositif utilisateur ;
- application de la fonction inverse de transformation tout ou rien par le dispositif utilisateur pour retrouver le fichier original.
Method according to claim 1, characterized in that it further comprises the following steps for downloading:
- encryption of fragments by online storage services using a secret key shared with the user device;
- reception by the relay server of encrypted fragments;
- application of the inverse dispersion function by the relay server on the encrypted fragments to generate a pseudo-encrypted message;
- transmission of the encrypted pseudo-message to the user device;
- decryption of the encrypted pseudo-message by the user device;
- application of the inverse all-or-nothing transformation function by the user device to find the original file.
Programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’une quelconque des revendications 1 à 6 lorsque ledit programme est exécuté sur un ordinateur.Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of claims 1 to 6 when said program is executed on a computer. Moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 6.Information storage means, removable or not, partially or totally readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the method according to any one of claims 1 to 6. Système comprenant un dispositif utilisateur, un serveur relai et une pluralité de service de stockage en ligne configurés pour mettre en œuvre un procédé selon l’une des revendications 1 à 6.System comprising a user device, a relay server and a plurality of online storage services configured to implement a method according to one of claims 1 to 6.
FR2301721A 2023-02-24 2023-02-24 METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT Pending FR3146220A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2301721A FR3146220A1 (en) 2023-02-24 2023-02-24 METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT
PCT/FR2024/050236 WO2024175864A1 (en) 2023-02-24 2024-02-23 Method and device for distributed online storage of files in a zero-trust context

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2301721 2023-02-24
FR2301721A FR3146220A1 (en) 2023-02-24 2023-02-24 METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT

Publications (1)

Publication Number Publication Date
FR3146220A1 true FR3146220A1 (en) 2024-08-30

Family

ID=87136599

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2301721A Pending FR3146220A1 (en) 2023-02-24 2023-02-24 METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT

Country Status (2)

Country Link
FR (1) FR3146220A1 (en)
WO (1) WO2024175864A1 (en)

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"Chapter 12: Key Establishment Protocols ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1 October 1996 (1996-10-01), XP001525012, ISBN: 978-0-8493-8523-0, Retrieved from the Internet <URL:http://www.cacr.math.uwaterloo.ca/hac/> *
I. CHILLOTTIN. GAMAM. GEORGIEVAM. IZABACHÈNE: "TFHE: Fast Fully Ho-momorphic Encryptionover the Torus", JOURNAL OF CRYPTOLOGY, vol. 33
JASON K RESCH DEVELOPMENT CLEVERSAFE ET AL: "AONT-RS: Blending Security and Performance in Dispersed Storage Systems", USENIX, USENIX, THE ADVANCED COMPUTING SYSTEMS ASSOCIATION, 17 December 2010 (2010-12-17), pages 1 - 12, XP061009899 *
RIVEST R L: "All-or-nothing encryption and the package transform", FAST SOFTWARE ENCRYPTION. 4TH INTERNATIONAL WORKSHOP, FSE'97 PROCEEDING, SPRINGER-VERLAG, BERLIN, GERMANY, 20 January 1997 (1997-01-20), pages 210 - 218, XP007907068, ISBN: 978-3-540-63247-4 *
ROBERTO AVANZIJOPPE BOSLÉO DUCASEIKE KILTZTANCRÈDE LEPOINTVADIM LYUBASHEVSKYJOHN M. SCHANCKPETER SCHWABEGREGOR SEILERDAMIEN STEHLÉ, CRYSTALS-KYBER ALGORITHM SPÉCIFICATIONS AND SUPPORTING DOCUMENTATION (VERSION 3.02
RONALD L. RIVEST, ALL-OR-NOTHING ENCRYPTION AND THE PACKAGE TRANSFORM, 1997

Also Published As

Publication number Publication date
WO2024175864A1 (en) 2024-08-29

Similar Documents

Publication Publication Date Title
EP1305948B1 (en) Method for secure distribution of digital data representing a multimedia content
FR2930390A1 (en) METHOD FOR SECURE DIFFUSION OF DIGITAL DATA TO AN AUTHORIZED THIRD PARTY
FR2952778A1 (en) SECURE DATA TRANSMISSION METHOD AND ENCRYPTION AND ENCRYPTION SYSTEM FOR SUCH TRANSMISSION
EP3391585B1 (en) Method for securing a recording of multimedia content in a storage medium
EP3928232A1 (en) Cryptographic data verification method
FR2930391A1 (en) AUTHENTICATION TERMINAL OF A USER.
EP1946552A2 (en) Method for securing data exchanged between a multimedia processing device and a security module
FR2804561A1 (en) METHOD OF COMMUNICATION WITH SEQUESTRE AND RECOVERY OF ENCRYPTION KEY
CA3142763A1 (en) Method for encrypting and storing system files and associated encryption and storage device
EP2827601A1 (en) Method and device for protecting decryption keys of a decoder
EP1419640B1 (en) Local digital network, methods for installing new devices and data broadcast and reception methods in such a network
EP3777007A1 (en) Methods, devices and computer programs for the encipherment and decipherment of data for the transmission or storage of data
WO2024175864A1 (en) Method and device for distributed online storage of files in a zero-trust context
FR2965431A1 (en) SYSTEM FOR EXCHANGING DATA BETWEEN AT LEAST ONE TRANSMITTER AND ONE RECEIVER
EP1723791B1 (en) Method of securing a scrambled content sent by a broadcaster
EP3266148B1 (en) Device and method for administering a digital escrow server
FR3022716A1 (en) METHOD FOR SHARING DIGITAL FILES BETWEEN SEVERAL COMPUTERS, AND COMPUTER, DATA STORAGE ASSEMBLY AND SYSTEM FOR SHARING DIGITAL FILES THEREOF
EP1642413B1 (en) Method for encoding/decoding a message and associated device
FR3141538A1 (en) METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT
FR2786049A1 (en) Information transmission dynamic key encryption coding technique having defined word generated key encryption used and receiver generation same key decoding producing.
FR2947072A1 (en) DIGITAL RIGHTS MANAGEMENT SYSTEM USING A DIVERSIFIED CONTENT PROTECTION PROCESS
FR2850223A1 (en) Digital signal transferring method for use in public communication network e.g. Internet, involves encoding digital signal with encryption key obtained in response to request of transfer of digital signal by client station
WO2010133459A1 (en) Method for encrypting specific portions of a document for superusers
FR2956272A1 (en) PASSWORD AUTHENTICATION FOR SINGLE USE
FR2985626A1 (en) Method for transmission of confidential data divided into segments to e.g. fixed terminals, in network gaming field, involves decoding segments actually transmitted by error correction code to find value of segments of data

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240830