FR3134908A1 - Method and system for managing access rights in a fair transaction of digital data - Google Patents

Method and system for managing access rights in a fair transaction of digital data Download PDF

Info

Publication number
FR3134908A1
FR3134908A1 FR2203709A FR2203709A FR3134908A1 FR 3134908 A1 FR3134908 A1 FR 3134908A1 FR 2203709 A FR2203709 A FR 2203709A FR 2203709 A FR2203709 A FR 2203709A FR 3134908 A1 FR3134908 A1 FR 3134908A1
Authority
FR
France
Prior art keywords
fbi
blocks
block
file
trusted server
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
FR2203709A
Other languages
French (fr)
Inventor
Bastien CONFAIS
Gustavo ROSTIROLLA
François Marques
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.)
Inatysco
Original Assignee
Inatysco
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 Inatysco filed Critical Inatysco
Priority to FR2203709A priority Critical patent/FR3134908A1/en
Priority to PCT/FR2023/050568 priority patent/WO2023203301A1/en
Publication of FR3134908A1 publication Critical patent/FR3134908A1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

L’invention porte sur un procédé d’accès à un ensemble de blocs chiffrés comprenant des blocs de données et des blocs correspondant à des nœuds d’un premier arbre de Merkle, chaque bloc étant chiffré par une valeur d’identification propre à un dispositif propriétaire (P) et spécifique du fichier et du bloc, ID-P-FBi. Un dispositif receveur (R) met en œuvre les étapes suivantes : pour chaque bloc, la réception, depuis un serveur de confiance (T), d’une entrée d’accès propre au dispositif receveur et spécifique du fichier et du bloc, ACL-R-FBi, la détermination de ID-P-FBi à partir de ACL-R-FBi et le déchiffrement du bloc au moyen de ID-P-FBi ;la construction d’un deuxième arbre de Merkle (MT2) à partir des blocs déchiffrés et la vérification d’une concordance des arbres de Merkle ;en absence de concordance, la transmission, au serveur de confiance (T), d’une contestation comprenant un ensemble de blocs non déchiffrés et, pour chacun desdits blocs, d’une valeur d’identification propre au dispositif receveur et spécifique du fichier et du bloc, V-R-FBi. Figure pour l’abrégé : Figure 2A method of accessing a set of encrypted blocks comprising data blocks and blocks corresponding to nodes of a first Merkle tree, each block being encrypted by a device-specific identification value is disclosed. owner (P) and specific of the file and the block, ID-P-FBi. A recipient device (R) implements the following steps: for each block, reception, from a trusted server (T), of an access entry specific to the recipient device and specific to the file and the block, ACL- R-FBi, determining ID-P-FBi from ACL-R-FBi and decrypting the block using ID-P-FBi; constructing a second Merkle tree (MT2) from the blocks decrypted and the verification of a concordance of the Merkle trees; in the absence of concordance, the transmission, to the trusted server (T), of a challenge comprising a set of undecrypted blocks and, for each of said blocks, of a identification value specific to the receiving device and specific to the file and the block, V-R-FBi. Figure for abstract: Figure 2

Description

Procédé et système de gestion des droits d’accès dans une transaction équitable de données numériquesMethod and system for managing access rights in a fair transaction of digital data

Le domaine de l’invention est celui des systèmes informatiques distribués pour la transmission et le partage de données numériques. L’invention se rapporte plus particulièrement à la régulation de l’accès à un fichier informatique.The field of the invention is that of distributed computer systems for the transmission and sharing of digital data. The invention relates more particularly to the regulation of access to a computer file.

Un protocole de gestion des droits d’accès est par exemple nécessaire lorsqu’un utilisateur d’un serveur de calcul souhaite réaliser des calculs à partir d’un fichier chiffré par son propriétaire. Selon un tel protocole, le propriétaire peut en amont chiffrer le fichier et le téléverser sur un serveur de stockage. L’utilisateur peut ensuite télécharger le fichier chiffré depuis le serveur de stockage et demander un droit d’accès au propriétaire.An access rights management protocol is, for example, necessary when a user of a calculation server wishes to perform calculations from a file encrypted by its owner. According to such a protocol, the owner can encrypt the file upstream and upload it to a storage server. The user can then download the encrypted file from the storage server and request access rights from the owner.

Par ailleurs, l’obtention du fichier peut être soumis à une contrepartie, par exemple financière. Il convient alors d’assurer que la transaction entre l’utilisateur et le propriétaire est équitable en ce sens que ni l’utilisateur ni le propriétaire n’utilise l’échange du fichier à son avantage en récupérant les données de l’autre mais sans envoyer ce qu’il aurait dû. Pour prendre un parallèle avec le monde réel, on ne souhaite pas qu’un vendeur livre un bien sans que l’acheteur donne de l’argent en échange ou au contraire que l’acheteur donne l’argent mais que le vendeur ne donne pas le bien en échange. Le protocole “fairswap”, proposé par Stefan Dziembowski, Lisa Eckey, and Sebastian Faust. 2018. FairSwap: How To Fairly Exchange Digital Goods. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). Association for Computing Machinery, New York, NY, USA, 967–984, répond à ce besoin pour l’échange de données informatiques. Ce protocole introduit un tiers de confiance faisant office de juge des conflits entre le vendeur et l’acheteur.Furthermore, obtaining the file may be subject to compensation, for example financial. It is then necessary to ensure that the transaction between the user and the owner is fair in the sense that neither the user nor the owner uses the exchange of the file to their advantage by recovering the other's data but without send what he should have. To draw a parallel with the real world, we do not want a seller to deliver a good without the buyer giving money in exchange or, on the contrary, for the buyer to give the money but the seller does not give the good in exchange. The “fairswap” protocol, proposed by Stefan Dziembowski, Lisa Eckey, and Sebastian Faust. 2018. FairSwap: How To Fairly Exchange Digital Goods. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). Association for Computing Machinery, New York, NY, USA, 967–984, addresses this need for computer data exchange. This protocol introduces a trusted third party acting as judge of conflicts between the seller and the buyer.

Le chiffrement du fichier en amont par le propriétaire avant d’être téléversé sur le serveur de stockage complique l’intégration du protocole de gestion des droits d’accès à un protocole de transaction équitable de typefairswapcar dans ce dernier chaque transaction doit reposer sur une clé unique.The encryption of the file upstream by the owner before being uploaded to the storage server complicates the integration of the access rights management protocol into a fair transaction protocol of the fairswap type because in the latter each transaction must be based on a unique key.

Par ailleurs, en cas de conflit, le tiers de confiance prend connaissance de certains blocs du fichier. Or en laissant ce fichier sur un serveur de stockage, le tiers de confiance pourrait y télécharger l’ensemble des blocs et les déchiffrer (au moins pour ceux des blocs impliqués dans le protocole fairswap), ce qui risque de compromettre la sécurité.Furthermore, in the event of a conflict, the trusted third party becomes aware of certain blocks of the file. However, by leaving this file on a storage server, the trusted third party could download all the blocks and decrypt them (at least for those blocks involved in the fairswap protocol), which risks compromising security.

L’invention a pour objectif de proposer un protocole de gestion des droits d’accès à un fichier chiffré par son propriétaire intégré à un protocole de transaction équitable de typefairswap, qui permette de surmonter les difficultés précédemment évoquées sans pour autant s’accompagner d’un temps de calcul trop important.The invention aims to propose a protocol for managing access rights to a file encrypted by its owner integrated into a fair transaction protocol of the fairswap type, which makes it possible to overcome the difficulties previously mentioned without being accompanied by 'too much calculation time.

Pour ce faire, l’invention propose un procédé d’accès à un fichier par un dispositif receveur, dans lequel un encodage du fichier est stocké sur un serveur de stockage, l’encodage du fichier comprenant une pluralité de blocs chiffrés constituée d’un premier ensemble de blocs correspondant à un découpage du fichier en blocs et d’un deuxième ensemble de blocs correspondant à des valeurs des nœuds d’un premier arbre de Merkle construit à partir des blocs du premier ensemble, chaque bloc de la pluralité de blocs étant chiffré par une valeur d’identification propre à un dispositif propriétaire et spécifique du fichier et du bloc, ID-P-FBi. Ce procédé comprend la mise en œuvre des étapes suivantes par le dispositif receveur :To do this, the invention proposes a method of accessing a file by a receiving device, in which an encoding of the file is stored on a storage server, the encoding of the file comprising a plurality of encrypted blocks consisting of a first set of blocks corresponding to a division of the file into blocks and a second set of blocks corresponding to values of the nodes of a first Merkle tree constructed from the blocks of the first set, each block of the plurality of blocks being encrypted by an identification value specific to a proprietary device and specific to the file and the block, ID-P-FBi. This method includes the implementation of the following steps by the receiving device:

  • pour chaque bloc de la pluralité de blocs, la réception, depuis un serveur de confiance, d’une entrée d’accès propre au dispositif receveur et spécifique du fichier et du bloc, ACL-R-FBi, la détermination de ID-P-FBi à partir de ACL-R-FBi et le déchiffrement du bloc au moyen de ID-P-FBi ;for each block of the plurality of blocks, receiving, from a trusted server, an access entry specific to the receiving device and specific to the file and the block, ACL-R-FBi, determining ID-P- FBi from ACL-R-FBi and decrypting the block using ID-P-FBi;
  • la construction d’un deuxième arbre de Merkle à partir des blocs déchiffrés du premier ensemble de blocs de la pluralité de blocs et la vérification d’une concordance du deuxième arbre de Merkle avec les blocs déchiffrés du deuxième ensemble de blocs de la pluralité de blocs ;constructing a second Merkle tree from the decrypted blocks of the first set of blocks of the plurality of blocks and verifying a match of the second Merkle tree with the decrypted blocks of the second set of blocks of the plurality of blocks ;
  • en absence de concordance :
    • la création d’une contestation comprenant un ensemble de blocs non déchiffrés de la pluralité de blocs, ledit ensemble étant constitué au moins d’un bloc contesté et d’un bloc d’une vérification de Merkle du bloc contesté ; et
    • la transmission, au serveur de confiance, de la contestation et, pour chacun des blocs de la contestation, d’une valeur d’identification propre au dispositif receveur et spécifique du fichier et du bloc, V-R-FBi.
    in the absence of a match:
    • creating a challenge comprising a set of undecrypted blocks of the plurality of blocks, said set consisting of at least one contested block and a block of a Merkle check of the contested block; And
    • the transmission, to the trusted server, of the challenge and, for each of the blocks of the challenge, of an identification value specific to the receiving device and specific to the file and the block, VR-FBi.

Certains aspects préférés mais non limitatifs de ce procédé sont les suivants :Some preferred but non-limiting aspects of this process are as follows:

  • il comprend la mise en œuvre des étapes suivantes par le serveur de confiance :
    • la vérification d’une validité des V-R-FBi des blocs de la contestation ;
    • en cas de validité non vérifiée, le rejet de la contestation ;
    • en cas de validité vérifiée :
      • pour chacun des blocs de la contestation, la détermination de ID-P-FBi à partir de V-R-FBi et de ACL-R-FBi et le déchiffrement du bloc au moyen de ID-P-FBi ;
      • une vérification de Merkle de chacun des blocs contestés déchiffrés.
    it includes the implementation of the following steps by the trusted server:
    • verifying the validity of the VR-FBi of the protest blocks;
    • in the event of unverified validity, the rejection of the challenge;
    • in case of verified validity:
      • for each of the blocks in the dispute, determining ID-P-FBi from VR-FBi and ACL-R-FBi and decrypting the block using ID-P-FBi;
      • a Merkle verification of each of the decrypted contested blocks.
  • il comprend les étapes préalables consistant pour le dispositif receveur à réaliser :
    • le téléchargement de l’encodage du fichier depuis le serveur de stockage ;
    • pour chaque bloc de la pluralité de blocs de l’encodage du fichier, la détermination et la transmission au serveur de confiance de V-R-FBi.
    it includes the preliminary steps consisting for the recipient device to be carried out:
    • downloading the file encoding from the storage server;
    • for each block of the plurality of blocks of the file encoding, determining and transmitting to the VR-FBi trusted server.
  • il comprend en outre par le dispositif propriétaire, pour chaque bloc de la pluralité de blocs, les étapes préalables de :
    • réception, depuis le serveur de confiance, de V-R-FBi ;
    • la génération de ACL-R-FBi, à partir de ID-P-FBi et de V-R-FBi ;
    • la transmission, au serveur de confiance, de ACL-R-FBi.
    it further comprises, through the proprietary device, for each block of the plurality of blocks, the preliminary steps of:
    • reception, from the trusted server, of VR-FBi;
    • the generation of ACL-R-FBi, from ID-P-FBi and VR-FBi;
    • the transmission, to the trusted server, of ACL-R-FBi.
  • il comprend en outre la réalisation par le dispositif receveur, pour chaque bloc de la pluralité de blocs, d’un chiffrement de V-R-FBi au moyen d’une clé publique du dispositif propriétaire.it further comprises the realization by the receiving device, for each block of the plurality of blocks, of an encryption of V-R-FBi by means of a public key of the proprietary device.
  • il comprend en outre la réalisation par le dispositif propriétaire, pour chaque bloc de la pluralité de blocs, d’un déchiffrement de V-R-FBi au moyen d’une clé privée du propriétaire.it further comprises the carrying out by the owner device, for each block of the plurality of blocks, of a decryption of V-R-FBi by means of a private key of the owner.
  • il comprend en outre la réalisation par le dispositif receveur, pour chaque bloc de la pluralité de blocs, d’un calcul et d’une transmission au serveur de confiance d’une valeur de hachage de V-R-FBi.it further comprises the realization by the receiving device, for each block of the plurality of blocks, of a calculation and transmission to the trusted server of a hash value of V-R-FBi.
  • Il comprend en outre la réalisation par le dispositif propriétaire, pour chaque bloc de la pluralité de blocs avant de générer ACL-R-FBi, d’une réception depuis le serveur de confiance de la valeur de hachage de V-R-FBi calculée par le dispositif receveur, d’un calcul d’une valeur de hachage à partir de V-R-FBi reçu du serveur de confiance et d’une comparaison de la valeur de hachage reçue et de la valeur de hachage calculée.It further comprises the realization by the proprietary device, for each block of the plurality of blocks before generating ACL-R-FBi, of a reception from the trusted server of the hash value of V-R-FBi calculated by the device recipient, a calculation of a hash value from V-R-FBi received from the trusted server and a comparison of the received hash value and the calculated hash value.
  • la vérification, par le serveur de confiance, d’une validité des V-R-FBi des blocs de contestation comprend, pour chacun des blocs de contestation, le calcul d’une valeur de hachage à partir de V-R-FBi transmis par le dispositif receveur au serveur de confiance avec la contestation et la comparaison de la valeur calculée avec la valeur de hachage de V-R-FBi préalablement transmise au serveur de confiance par le dispositif receveur.the verification, by the trusted server, of the validity of the V-R-FBi of the challenge blocks comprises, for each of the challenge blocks, the calculation of a hash value from V-R-FBi transmitted by the receiving device to the trusted server with the challenge and comparison of the calculated value with the hash value of V-R-FBi previously transmitted to the trusted server by the receiving device.
  • il comprend les étapes préalables consistant pour le dispositif receveur à réaliser :
    • le téléchargement de l’encodage du fichier depuis le serveur de stockage ;
    • pour chaque bloc de la pluralité de blocs de l’encodage du fichier :
      • la détermination de V-R-FBi ;
      • le calcul et la transmission au serveur de confiance d’une première valeur de Diffie-Hellman basée sur V-R-FBi.
    it includes the preliminary steps consisting for the recipient device to be carried out:
    • downloading the file encoding from the storage server;
    • for each block of the plurality of blocks of the file encoding:
      • the determination of VR-FBi;
      • calculating and transmitting to the trusted server a first Diffie-Hellman value based on VR-FBi.
  • Il comprend en outre par le dispositif propriétaire, les étapes préalables de :
    • calcul et transmission au serveur de confiance d’une deuxième valeur de Diffie-Hellman ; et
    • pour chaque bloc de la pluralité de blocs :
      • réception, depuis le serveur de confiance, de la première valeur de Diffie-Hellman basée sur V-R-FBi;
      • détermination d’une clé partagée de Diffie-Hellman ;
      • génération de ACL-R-FBi, à partir de ID-P-FBi et de la clé partagée de Diffie-Hellman ;
      • transmission, au serveur de confiance, de ACL-R-FBi .
    It also includes, through the proprietary device, the preliminary steps of:
    • calculation and transmission to the trusted server of a second Diffie-Hellman value; And
    • for each block of the plurality of blocks:
      • receiving, from the trusted server, the first Diffie-Hellman value based on VR-FBi;
      • determination of a shared Diffie-Hellman key;
      • generation of ACL-R-FBi, from ID-P-FBi and the Diffie-Hellman shared key;
      • transmission, to the trusted server, of ACL-R-FBi.
  • la vérification, par le serveur de confiance, d’une validité des V-R-FBi des blocs de contestation comprend, pour chacun des blocs de contestation, le calcul d’une troisième valeur de Diffie-Hellman basée sur V-R-FBi transmis par le dispositif receveur au serveur de confiance avec la contestation et la comparaison de la troisième valeur de Diffie-Hellman avec la première valeur de Diffie-Hellman préalablement transmise au serveur de confiance par le dispositif receveur.the verification, by the trusted server, of the validity of the V-R-FBi of the challenge blocks comprises, for each of the challenge blocks, the calculation of a third Diffie-Hellman value based on V-R-FBi transmitted by the device recipient to the trusted server with the challenge and comparison of the third Diffie-Hellman value with the first Diffie-Hellman value previously transmitted to the trusted server by the receiving device.
  • il comprend les étapes consistant pour le dispositif propriétaire à réaliser :
    • la génération du premier ensemble de blocs par découpage du fichier ;
    • la construction du premier arbre de Merkle à partir du premier ensemble de blocs ;
    • la génération du deuxième ensemble de blocs à partir des nœuds du premier arbre de Merkle ;
    • la génération de l’encodage du fichier comprenant, pour chacun des blocs du premier et du deuxième ensemble, le chiffrement du bloc par ID-P-FBi ;
    • la transmission de l’encodage du fichier au serveur de stockage.
    it includes the steps consisting for the proprietary device to carry out:
    • generating the first set of blocks by splitting the file;
    • constructing the first Merkle tree from the first set of blocks;
    • generating the second set of blocks from the nodes of the first Merkle tree;
    • generating the encoding of the file comprising, for each of the blocks of the first and second set, the encryption of the block by ID-P-FBi;
    • transmitting the file encoding to the storage server.

D'autres aspects, buts, avantages et caractéristiques de l’invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels :Other aspects, aims, advantages and characteristics of the invention will appear better on reading the following detailed description of preferred embodiments thereof, given by way of non-limiting example, and made with reference to the appended drawings. on which ones :

- la est un schéma représentant un système de partage de fichiers informatiques entre dispositifs informatiques de plusieurs organisations ;- there is a diagram representing a system for sharing computer files between computer devices of several organizations;

- la est un schéma illustrant les différentes étapes du procédé selon l’invention ;- there is a diagram illustrating the different stages of the process according to the invention;

- la illustre les différents blocs constituant l’encodage du fichier ;- there illustrates the different blocks constituting the file encoding;

- la illustre le chiffrement des différents blocs de l’encodage du fichier par le dispositif propriétaire ;- there illustrates the encryption of the different blocks of file encoding by the proprietary device;

- la illustre le déchiffrement du fichier par le dispositif propriétaire ;- there illustrates the decryption of the file by the proprietary device;

- la illustre une vérification de preuve de Merkle par le serveur de confiance.- there illustrates a verification of Merkle proof by the trusted server.

EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERSDETAILED DESCRIPTION OF PARTICULAR EMBODIMENTS

L’invention porte sur la réalisation de transactions équitables entre des entités d’un réseau intégrant une gestion de droits d’accès à des fichiers chiffrés. On considère que les entités ont préalablement partagé ensemble un protocole de gestion des droits d’accès.The invention relates to the realization of fair transactions between entities of a network integrating management of access rights to encrypted files. The entities are considered to have previously shared an access rights management protocol together.

La représente schématiquement un système 1 de partage de fichiers entre des dispositifs informatiques de plusieurs organisations Org1, Org2, Org3, …, connectés sur un même réseau N, de préférence un réseau de télécommunications à distance. Le réseau N est typiquement un réseau Internet, Intranet, téléphonique 3G, 4G, 5G, DECT, Bluetooth, etc.There schematically represents a system 1 for sharing files between computer devices from several organizations Org1, Org2, Org3, etc., connected to the same network N, preferably a remote telecommunications network. The N network is typically an Internet, Intranet, 3G, 4G, 5G, DECT, Bluetooth, etc. telephone network.

Dans le présent exemple, les organisations Org1, Org2, Org3 sont des organisations de gestion de données géophysiques et/ou environnementales. On entend par « données géophysiques » des données relatives aux caractéristiques physiques de la Terre, typiquement issues de mesures. Il peut s’agir de données géologiques et/ou sismiques et/ou gravimétriques et/ou atmosphériques et/ou spatiales, etc. On entend par « données environnementales » des données ayant trait à l'environnement biologique et humain d’une zone, par exemple des données biologiques et/ou sonores et/ou chimiques et/ou hydrologiques et/ou énergétiques et/ou relatives au traitement de déchets. Ces données sont typiquement des données sensibles mises sélectivement à disposition des organisations.In this example, the organizations Org1, Org2, Org3 are geophysical and/or environmental data management organizations. By “geophysical data” we mean data relating to the physical characteristics of the Earth, typically resulting from measurements. This may be geological and/or seismic and/or gravimetric and/or atmospheric and/or spatial data, etc. “Environmental data” means data relating to the biological and human environment of an area, for example biological and/or sound and/or chemical and/or hydrological and/or energy and/or processing data. of waste. This data is typically sensitive data made selectively available to organizations.

Les organisations Org1, Org2, Org3 sont par exemples distantes les unes des autres, et peuvent appartenir à des territoires différents. Chacune des organisations Org1, Org2, Org3 est par exemple une collectivité territoriale et/ou une société privée intervenant pour la collecte ou le traitement de données et/ou une association intervenant pour la collecte ou le traitement de données et/ou une organisation propriétaire de serveurs de stockage et/ou de calcul.The organizations Org1, Org2, Org3 are, for example, distant from each other, and can belong to different territories. Each of the organizations Org1, Org2, Org3 is for example a local authority and/or a private company involved in the collection or processing of data and/or an association involved in the collection or processing of data and/or an organization that owns storage and/or calculation servers.

On considère ici que chacune des organisations Org1, Org2, Org3 est indépendante. Les organisations souhaitent par exemple mettre en commun sélectivement une partie de leur matériel et de leurs données, afin que chacune d’entre elles puisse s’appuyer sur au moins une partie des ressources et des données des autres organisations.We consider here that each of the organizations Org1, Org2, Org3 is independent. For example, organizations wish to selectively pool some of their hardware and data, so that each of them can rely on at least some of the resources and data of the other organizations.

En outre, ici, l’organisation Org1 possède un serveur de calcul I3 et l’organisation Org2 possède un serveur de calcul I3’. Par « serveur de calcul » on entend un serveur possédant une puissance de calcul très importante, typiquement plus importante que chacun des dispositifs I1, I1’, I2, I2’, I2’’, …. On souhaite pouvoir mettre sélectivement l’un et/ou l’autre de ces serveurs I3 et I3’ à disposition des autres organisations du réseau afin d’exécuter des traitements sur des données géophysiques et/ou environnementales.Additionally, here, organization Org1 has a compute server I3 and organization Org2 has a compute server I3'. By “computation server” we mean a server having very significant computing power, typically greater than each of the devices I1, I1’, I2, I2’, I2’’, etc. We would like to be able to selectively make one and/or the other of these servers I3 and I3' available to other organizations in the network in order to carry out processing on geophysical and/or environmental data.

L’invention n’est cependant pas limitée au cas de données géophysiques et/ou environnementales. Elle peut avantageusement être mise en œuvre quel que soit le type de contenu des fichiers ou le type d’organisations Org1, Org2, Org3, … ou également pour deux organisations. Une application à des données géophysiques et/ou environnementales est avantageuse car les traitements calculatoires desdites données peuvent nécessiter une puissance de calcul élevée. Il convient que les collectivités territoriales puissent confier temporairement certains traitements à des serveurs de calcul, sans pour autant remettre en cause l’intégrité et la confidentialité des données contenues dans les fichiers.The invention is, however, not limited to the case of geophysical and/or environmental data. It can advantageously be implemented regardless of the type of file content or the type of organizations Org1, Org2, Org3, etc. or also for two organizations. An application to geophysical and/or environmental data is advantageous because the computational processing of said data may require high computing power. Local authorities should be able to temporarily entrust certain processing to calculation servers, without calling into question the integrity and confidentiality of the data contained in the files.

De manière avantageuse, tous les nœuds du système 1 (c’est-à-dire ici notamment les dispositifs I1, I1’, I2, I2’, I2’’, …) peuvent accéder à chacun des fichiers chiffrés f1, f2, … sans contrôle, par exemple en passant par un système de stockage distribué, par exemple conforme au protocole IPFS, gérant les mémoires M, M’, M’’. Les fichiers chiffrés f1, f2, … sont alors disponibles. L’accès aux informations contenues dans le fichier est régulé par la présence des clés de chiffrement, mais l’accès au fichier lui-même n’est de préférence pas régulé.Advantageously, all the nodes of system 1 (that is to say here in particular the devices I1, I1', I2, I2', I2'', etc.) can access each of the encrypted files f1, f2, etc. without control, for example through a distributed storage system, for example conforming to the IPFS protocol, managing memories M, M', M''. The encrypted files f1, f2, etc. are then available. Access to the information contained in the file is regulated by the presence of encryption keys, but access to the file itself is preferably not regulated.

Dans une réalisation possible, des métadonnées sont associées à chacun des fichiers, par exemple le nom du fichier, son type, sa taille, la valeur racine (i.e. le hash-sommet) d’un arbre de Merkle construit pour le fichier (voir infra). Ces métadonnées sont transmises par le système de stockage en même temps que la liste des fichiers disponibles et permettent à un nœud de sélectionner le fichier qu'il souhaite télécharger.In one possible embodiment, metadata is associated with each of the files, for example the name of the file, its type, its size, the root value (i.e. the vertex hash) of a Merkle tree constructed for the file (see below). ). This metadata is transmitted by the storage system along with the list of available files and allows a node to select the file it wishes to download.

Des clés privées appartenant aux différents dispositifs sont, quant à elles, stockées de façon très sécurisée. Il s’agit par exemple de valeurs numériques propres à chaque dispositif. On suppose qu’aucun des dispositifs ne partage sa clé privée, ni sur le réseau N, ni avec l’un quelconque des autres dispositifs.Private keys belonging to the different devices are stored very securely. These are, for example, numerical values specific to each device. It is assumed that none of the devices share their private key, neither on network N, nor with any of the other devices.

Ici, le système 1 comprend en outre :Here, system 1 further includes:

• pour l’organisation Org1, un serveur propriétaire I1 et un serveur utilisateur I2. Le serveur propriétaire I1 est configuré pour créer des fichiers chiffrés et pour calculer des entrées d’accès propres à lui-même et/ou au serveur utilisateur I2 et/ou à d’autres dispositifs présents sur le réseau N pour ces fichiers ; l’organisation Org1 comprend en outre, dans le présent exemple, un capteur Sa prévu pour collecter des données géophysiques et/ou environnementales. Le capteur Sa peut ici échanger des données avec le serveur I1.• for the organization Org1, an owner server I1 and a user server I2. The owner server I1 is configured to create encrypted files and to calculate access entries specific to itself and/or to the user server I2 and/or to other devices present on the network N for these files; the organization Org1 further includes, in this example, a sensor Sa intended to collect geophysical and/or environmental data. The sensor Sa can here exchange data with the server I1.

• pour l’organisation Org2, un serveur propriétaire I1’ et un serveur utilisateur I2’. Le serveur propriétaire I1’ est configuré pour créer des fichiers chiffrés et pour calculer des entrées d’accès propres à lui-même et/ou au serveur utilisateur I2’ et/ou à d’autres dispositifs présents sur le réseau N pour ces fichiers ; l’organisation Org2 comprend en outre, dans le présent exemple, deux capteurs Sb et Sc prévu pour collecter des données géophysiques et/ou environnementales. Les deux capteurs Sb et Sc peuvent ici échanger des données avec le serveur I1’.• for the organization Org2, an owner server I1’ and a user server I2’. The owner server I1' is configured to create encrypted files and to calculate access entries specific to itself and/or to the user server I2' and/or to other devices present on the network N for these files; the Org2 organization also includes, in this example, two sensors Sb and Sc intended to collect geophysical and/or environmental data. The two sensors Sb and Sc can here exchange data with the server I1’.

• pour l’organisation Org3, un serveur utilisateur I2’’. L’organisation Org3 ne possède pas ici de puissance de calcul importante adaptée pour effectuer des traitements lourds sur des données géophysiques et/ou environnementales.• for the Org3 organization, an I2” user server. The Org3 organization does not have significant computing power here suitable for carrying out heavy processing on geophysical and/or environmental data.

Le système 1 comprend en outre une mémoire M de stockage. Ici, la mémoire M appartient à l’organisation Org1. En alternative, la mémoire M pourrait être intégrée à l’un quelconque des dispositifs de l’une des organisations Org1, Org2, Org3, …, ou distante de chacun de ces dispositifs.System 1 further includes a storage memory M. Here, memory M belongs to the organization Org1. Alternatively, the memory M could be integrated into any of the devices of one of the organizations Org1, Org2, Org3, etc., or remote from each of these devices.

Par ailleurs, l’organisation Org2 possède ici une mémoire M’ de stockage, et l’organisation Org3 possède ici une mémoire M’’ de stockage.Furthermore, the organization Org2 has here a storage memory M', and the organization Org3 has here a storage memory M''.

De préférence, lorsque plusieurs mémoires (ici M, M’, M’’) sont présentes, un espace de nommage commun est utilisé. Les mémoires M, M’, M’’ appartiennent à un système de stockage distribué, par exemple réalisé à l’aide d’un réseau de recouvrement.Preferably, when several memories (here M, M’, M’’) are present, a common name space is used. The memories M, M’, M’’ belong to a distributed storage system, for example produced using an overlay network.

De manière préférée, chaque dispositif I1, I1’, I2, I2’, … sollicite la mémoire qui est disponible dans son serveur local ; ainsi, dans l’exemple illustré sur la , le dispositif I1 peut interroger la mémoire M et le dispositif I1’ peut interroger la mémoire M’. Dans la mesure où les mémoires M, M’, et M’’ appartiennent à un même système de stockage distribué, les fichiers stockés dans les autres mémoires sont également accessibles.Preferably, each device I1, I1', I2, I2', etc. requests the memory which is available in its local server; thus, in the example illustrated on the , the device I1 can interrogate the memory M and the device I1' can interrogate the memory M'. To the extent that the memories M, M', and M'' belong to the same distributed storage system, the files stored in the other memories are also accessible.

De manière préférée, les enregistrements sur une mémoire ne sont pas modifiables ultérieurement. Cette dernière propriété est par exemple assurée comme service par la solution de stockage distribué utilisée.Preferably, the recordings on a memory cannot be modified subsequently. This last property is for example provided as a service by the distributed storage solution used.

Chaque fichier chiffré est enregistré soit sur l’une quelconque des mémoires M, M’, M’’, …, soit sur une mémoire distante. Dans le présent exemple, le fichier f1 est stocké sur la mémoire M de l’organisation Org1 et le fichier f2 est stocké sur la mémoire M’ de l’organisation Org2. D’autres fichiers, de préférence chiffrés ou éventuellement non chiffrés, peuvent être enregistrés en mémoire.Each encrypted file is recorded either on any of the memories M, M’, M’’, etc., or on a remote memory. In this example, file f1 is stored on memory M of organization Org1 and file f2 is stored on memory M' of organization Org2. Other files, preferably encrypted or possibly unencrypted, can be saved in memory.

Chacun des dispositifs I1, I1’, I2, I2’, I2’’, I3, I3’ comprend des moyens de traitement comme par exemple une unité de traitement, non représentée sur la . Chacun de ces moyens de traitement peut comprendre en mémoire un ou plusieurs produits programmes d’ordinateur comprenant des instructions de code pour la mise en œuvre des procédés décrits ci-après, et/ou peut lire un ou plusieurs moyens de stockage lisibles par ordinateur sur lesquels sont enregistrées des instructions de code pour la mise en œuvre des procédés décrits ci-après.Each of the devices I1, I1', I2, I2', I2'', I3, I3' comprises processing means such as for example a processing unit, not shown on the . Each of these processing means may comprise in memory one or more computer program products comprising code instructions for implementing the methods described below, and/or may read one or more computer-readable storage means on which are recorded code instructions for implementing the methods described below.

Revenant à l’exemple précédent, les organisations Org1, Org2, Org3 souhaitent pouvoir solliciter les serveurs de calcul I3, I3’ afin de disposer de leur puissance de calcul pour effectuer des traitements sur les données géophysiques et/ou environnementales auxquelles l’un quelconque des dispositifs I1, I1’, I2, I2’, I2’’. Pour ce faire, on souhaite attribuer un accès (typiquement uniquement en lecture) à l’un des fichiers chiffrés f1 et/ou f2 pour l’un des serveurs de calcul I3 et/ou I3’, de manière sélective et préférentiellement temporaire.Returning to the previous example, the organizations Org1, Org2, Org3 wish to be able to request the calculation servers I3, I3' in order to have their computing power to carry out processing on the geophysical and/or environmental data to which any one devices I1, I1', I2, I2', I2''. To do this, we wish to assign access (typically only for reading) to one of the encrypted files f1 and/or f2 for one of the calculation servers I3 and/or I3', in a selective and preferably temporary manner.

En référence à la , on considère ci-après un dispositif propriétaire P d’un fichier (par exemple le serveur I2’’ de l’organisation Org3) et un dispositif receveur R (par exemple le serveur de calcul I3 de l’organisation Org3) qui souhaite disposer d’un accès au fichier. Le fichier, chiffré par le dispositif propriétaire P, est stocké sur un serveur de stockage S. Le dispositif propriétaire P et le dispositif receveur R mettent en œuvre une transaction équitable au sens d’un protocole de typefairswappar l’intermédiaire d’un serveur de confiance T.In reference to the , we consider below a device owner P of a file (for example the server I2'' of the organization Org3) and a recipient device R (for example the calculation server I3 of the organization Org3) which wishes to have access to the file. The file, encrypted by the owner device P, is stored on a storage server S. The owner device P and the recipient device R implement a fair transaction within the meaning of a fairswap type protocol via a trusted server T.

En référence à la , le fichier a préalablement été chiffré par le dispositif propriétaire (étape n°1 désignée par ENC) et transmis sous sa forme chiffrée Z (étape n°2) au serveur de stockage S. Le chiffrement du fichier F est plus particulièrement réalisé comme suit, en référence aux figures 3 et 4. Le dispositif propriétaire P vient tout d’abord découper le fichier en une pluralité de n blocs B1, B2, B3, B4, …, Bn formant un premier ensemble de blocs. Le dispositif propriétaire P vient ensuite construire un premier arbre de Merkle MT1 à partir du premier ensemble de blocs. Ce premier arbre de Merkle MT1 comprend une pluralité de nœuds H1, H2, …, Hm qui forme un deuxième ensemble de blocs. Les blocs B1, B2, B3, B4, …, Bn du premier ensemble et les blocs H1, H2, …, Hm sont réunis dans un vecteur Y. Le dispositif propriétaire vient ensuite générer un encodage Z du fichier en chiffrant, lors d’une opération ENC, chacun des blocs du premier et du deuxième ensemble, par une valeur d’identification propre au dispositif propriétaire et spécifique du fichier et du bloc (valeur notée ID-P-FBi pour le bloc Bi dans ce qui suit). L’encodage Z comprend ainsi un premier ensemble de blocs chiffrés ZB1, ZB2, ZB3, ZB4, …, ZBn résultant du chiffrement des blocs B1, B2, B3, B4, …, Bn issus du découpage du fichier Z et un deuxième ensemble de blocs chiffrés ZH1, ZH2, ZH3, …, ZBm résultant du chiffrement des blocs H1, H2, H3, …, Hm correspondant aux nœuds du premier arbre de Merkle MT1. Cet encodage Z est transmis au serveur de stockage S, le cas échéant avec la valeur racine Hm de l'arbre de Merkle MT1 du fichier F.In reference to the , the file has previously been encrypted by the proprietary device (step no. 1 designated by ENC) and transmitted in its encrypted form Z (step no. 2) to the storage server S. The encryption of the file F is more particularly carried out as follows , with reference to Figures 3 and 4. The proprietary device P first divides the file into a plurality of n blocks B1, B2, B3, B4, …, Bn forming a first set of blocks. The proprietary device P then constructs a first Merkle tree MT1 from the first set of blocks. This first Merkle tree MT1 includes a plurality of nodes H1, H2, …, Hm which forms a second set of blocks. The blocks B1, B2, B3, B4, ..., Bn of the first set and the blocks H1, H2, ..., Hm are united in a vector Y. The proprietary device then generates a Z encoding of the file by encrypting, during an ENC operation, each of the blocks of the first and second set, by an identification value specific to the proprietary device and specific to the file and the block (value denoted ID-P-FBi for the block Bi in what follows). The encoding Z thus comprises a first set of encrypted blocks ZB1, ZB2, ZB3, ZB4, etc., ZBn resulting from the encryption of blocks B1, B2, B3, B4, etc., Bn resulting from the cutting of the file Z and a second set of encrypted blocks ZH1, ZH2, ZH3, …, ZBm resulting from the encryption of blocks H1, H2, H3, …, Hm corresponding to the nodes of the first Merkle tree MT1. This Z encoding is transmitted to the storage server S, where applicable with the root value Hm of the Merkle tree MT1 of the file F.

La valeur d’identification propre au dispositif propriétaire P et spécifique du fichier F et du bloc Bi, ID-P-FBi, dépend de la clé privée Up du dispositif propriétaire. Cette valeur d’identification est construite de telle sorte qu’un tiers ne peut pas obtenir cette valeur en connaissant simplement une identité du bloc Bi, sans connaître la clé privée Up. La valeur d’identification dépend ici également de l’identité du fichier F et de l’identité du bloc Bi. Autrement dit, les valeurs d’identification du dispositif propriétaire diffèrent pour chaque fichier, et pour chaque bloc au sein d’un même fichier.The identification value specific to the owner device P and specific to the file F and the block Bi, ID-P-FBi, depends on the private key Up of the owner device. This identification value is constructed in such a way that a third party cannot obtain this value by simply knowing an identity of the block Bi, without knowing the private key Up. The identification value here also depends on the identity of the file F and the identity of the block Bi. In other words, the identification values of the owner device differ for each file, and for each block within the same file.

De préférence, les différentes valeurs d’identification semblent aléatoires du point de vue d’un tiers qui ne connaîtrait pas la clé privée utilisée, mais ces valeurs sont déterministes pour l’utilisateur ayant connaissance de la clé privée utilisée. Ces valeurs peuvent correspondre aux résultats d’une fonction d’identification ID telle que ID-P-FBi = ID(Up, F, Bi). Dans un exemple de réalisation, la valeur ID-P-FBi est obtenue comme suit : ID-P-FBi = ID(Up, F, Bi) = Up+ sha256(concatenation(Up, F, Bi)), où Up est la clé privée du dispositif propriétaire, F est le nom du fichier, Bi est le i-ème bloc du vecteur Y, « concatenation » correspond à la fonction concaténation et « sha256 » correspond à une fonction de hachage cryptographique connue opérant sur une taille de mots de 32 bits. On comprend qu’il est possible d’employer une autre fonction de hachage ici.Preferably, the different identification values appear random from the point of view of a third party who does not know the private key used, but these values are deterministic for the user having knowledge of the private key used. These values can correspond to the results of an ID identification function such as ID-P-FBi = ID(Up, F, Bi). In an exemplary embodiment, the value ID-P-FBi is obtained as follows: ID-P-FBi = ID(Up, F, Bi) = Up+ sha256(concatenation(Up, F, Bi)), where Up is the private key of the proprietary device, F is the name of the file, Bi is the i-th block of vector Y, “concatenation” corresponds to the concatenation function and “sha256” corresponds to a known cryptographic hash function operating on a word size of 32 bits. We understand that it is possible to use another hash function here.

Toujours en référence à la , le dispositif receveur R vient ensuite (étape n°3) télécharger l’encodage Z du fichier depuis le serveur de stockage S, le cas échéant avec certaines métadonnées associées au fichier comme par exemple son nom et la valeur racine Hm du premier arbre de Merkle.Still with reference to the , the receiving device R then (step no. 3) downloads the encoding Z of the file from the storage server S, if necessary with certain metadata associated with the file such as for example its name and the root value Hm of the first tree of Merkle.

Puis, pour chaque bloc de la pluralité de blocs chiffrés ZB1, …, ZBn, ZH1, …, ZHm de l’encodage du fichier, le dispositif receveur R vient déterminer une valeur d’identification du dispositif receveur associée au fichier et au bloc chiffré (notée V-R-FBi pour le bloc n°i).Then, for each block of the plurality of encrypted blocks ZB1, ..., ZBn, ZH1, ..., ZHm of the encoding of the file, the receiving device R determines an identification value of the receiving device associated with the file and the encrypted block (noted V-R-FBi for block n°i).

Dans un premier mode de réalisation, la valeur V-R-FBi est calculée au moyen de la fonction d’identification ID présentée ci-dessus. Ainsi, V-R-FBi = ID(Ur, F, Bi) = Ur+ sha256(concatenation(Ur, F, Bi)) où Ur est la clé privée du dispositif receveur, F est le nom du fichier, Bi est le i-ème bloc chiffré de l’encodage Z. Cette valeur est ensuite transmise (étape n°4) au tiers de confiance T, par exemple après chiffrement au moyen d’une clé publique du dispositif propriétaire. Le dispositif receveur R peut par ailleurs calculer, pour chaque bloc chiffré de l’encodage Z, une valeur de hachage de V-R-FBi et transmettre cette valeur de hachage au serveur de confiance T.In a first embodiment, the V-R-FBi value is calculated using the ID identification function presented above. Thus, V-R-FBi = ID(Ur, F, Bi) = Ur+ sha256(concatenation(Ur, F, Bi)) where Ur is the private key of the receiving device, F is the name of the file, Bi is the i-th encrypted block of encoding Z. This value is then transmitted (step no. 4) to the trusted third party T, for example after encryption using a public key of the proprietary device. The receiving device R can also calculate, for each encrypted block of encoding Z, a hash value of V-R-FBi and transmit this hash value to the trusted server T.

Un deuxième mode de réalisation permet d’éviter le chiffrement à clé publique pour transmettre les valeurs V-R-FBi et de devoir poster au serveur de confiance l’ensemble des valeurs de hachages de ces valeurs V-R-FBi. Dans ce deuxième mode de réalisation, la valeur V-R-FBi est exploitée pour déterminer une première valeur de Diffie-Hellman, i.e. un nombre transmis par l’un des agents d’un protocole de Diffie-Hellman à l’autre des agents afin que ces agents puissent élaborer une clé partagée de Diffie-Hellman. Toute variante du protocole de Diffie-Hellman peut ici être utilisée, comme par exemple celle basée sur les courbes elliptiques (de l'anglais « Elliptic curve Diffie–Hellman », abrégé ECDH). Dans ce deuxième mode de réalisation, le dispositif receveur procède au tirage aléatoire de deux nombres g et p, détermine la première valeur de Diffie-Hellman selon gV -R- FBi [p] et transmet au tiers de confiance T cette la première valeur de Diffie-Hellman gV -R- FBi[p] ainsi que les nombres g et p.A second embodiment makes it possible to avoid public key encryption to transmit the V-R-FBi values and to have to post to the trusted server all of the hash values of these V-R-FBi values. In this second embodiment, the V-R-FBi value is used to determine a first Diffie-Hellman value, i.e. a number transmitted by one of the agents of a Diffie-Hellman protocol to the other of the agents so that these agents can develop a shared Diffie-Hellman key. Any variation of the Diffie-Hellman protocol can be used here, such as for example that based on elliptic curves (from the English “Elliptic curve Diffie–Hellman”, abbreviated ECDH). In this second embodiment, the receiving device randomly draws two numbers g and p, determines the first Diffie-Hellman value according to gV -R- FBI [p] and transmits to the trusted third party T this first Diffie-Hellman value gV -R- FBI[p] as well as the numbers g and p.

Dans une première variante, la valeur V-R-FBi est calculée au moyen de la fonction d’identification ID présentée ci-dessus. Ainsi, V-R-FBi= ID(Ur, F, Bi) et la première valeur de Diffie-Hellman associée au i-ème bloc chiffré s’écrit gID(Ur, F, Bi)[p]. Dans une seconde variante, le dispositif receveur R procède, pour chacun des blocs chiffrés de l’encodage Z, au tirage aléatoire d’une valeur xi. La première valeur de Diffie-Hellman associée au i-ème bloc chiffrée s’écrit alors g(xi)mod p.In a first variant, the VR-FBi value is calculated using the identification function ID presented above. Thus, VR-FBi= ID(Ur, F, Bi) and the first Diffie-Hellman value associated with the i-th encrypted block is written g ID(Ur, F, Bi) [p]. In a second variant, the receiving device R proceeds, for each of the encrypted blocks of encoding Z, to randomly draw a value xi. The first Diffie-Hellman value associated with the i-th encrypted block is then written g (xi) mod p.

Lors d’une étape optionnelle, le dispositif receveur R peut par ailleurs transmettre au serveur de confiance T la valeur du nœud-racine de l'arbre de Merkle du fichier attendu (dont il a par exemple connaissance au moyen des métadonnées) et/ou la valeur du nœud-racine d’un arbre de Merkle construit sur l’ensemble des blocs chiffrés ZB1, …, Zbn et ZH1, …, ZHm.During an optional step, the recipient device R can also transmit to the trusted server T the value of the root node of the Merkle tree of the expected file (of which it is aware, for example, by means of the metadata) and/or the value of the root node of a Merkle tree constructed on the set of encrypted blocks ZB1, …, Zbn and ZH1, …, ZHm.

Lors d’une étape n°5, le dispositif propriétaire P vient récupérer depuis le serveur de confiance T l’ensemble des informations postées par le dispositif receveur R sur le serveur de confiance T.During step no. 5, the owner device P retrieves from the trust server T all of the information posted by the recipient device R on the trust server T.

Lorsque l’étape optionnelle mentionnée ci-dessus est mise en œuvre, le dispositif propriétaire P vient vérifier que la ou les valeurs des nœud-racines transmis par le dispositif receveur R au serveur de confiance sont correctes. Dans la négative, l’échange est arrêté.When the optional step mentioned above is implemented, the owner device P verifies that the value(s) of the root node transmitted by the recipient device R to the trusted server are correct. If not, the exchange is stopped.

Dans le cadre du premier mode de réalisation, le dispositif propriétaire P vient récupérer du serveur de confiance T les valeurs V-R-FBi (éventuellement chiffrées au moyen de la clé publique du dispositif propriétaire) et le cas échéant les valeurs de hachage associées. Le dispositif propriétaire P procède si besoin au déchiffrement des V-R-FBi au moyen de sa clé privée Up. Le cas échéant, le dispositif propriétaire peut, pour chaque bloc de la pluralité de blocs, calculer une valeur de hachage de V-R-FBi (éventuellement après déchiffrage) et comparer la valeur calculée à la valeur de hachage correspondante reçue du serveur de confiance.In the context of the first embodiment, the proprietary device P retrieves from the trusted server T the V-R-FBi values (possibly encrypted using the public key of the proprietary device) and, where appropriate, the associated hash values. The proprietary device P, if necessary, decrypts the V-R-FBi using its private key Up. If necessary, the owner device can, for each block of the plurality of blocks, calculate a hash value of V-R-FBi (possibly after decryption) and compare the calculated value to the corresponding hash value received from the trusted server.

Puis, pour chaque bloc de la pluralité de blocs, le dispositif propriétaire P vient générer une entrée d’accès propre au dispositif receveur et spécifique du fichier et du bloc, ACL-R-FBi, à partir de ID-P-FBi et de V-R-FBi. Cette entrée d’accès ACL-R-FBi est ensuite transmise au serveur de confiance T (étape n°6 sur la ). Dans un exemple de réalisation, cette entrée d’accès correspond à la différence des deux valeurs d’identification ACL-R-FBi = ID-P-FBi - V-R-FBi.Then, for each block of the plurality of blocks, the owner device P generates an access entry specific to the recipient device and specific to the file and the block, ACL-R-FBi, from ID-P-FBi and VR-FBi. This ACL-R-FBi access entry is then transmitted to the trusted server T (step no. 6 on the ). In an exemplary embodiment, this access entry corresponds to the difference of the two identification values ACL-R-FBi = ID-P-FBi - VR-FBi.

Dans le cadre du deuxième mode de réalisation, le dispositif propriétaire P vient récupérer du serveur de confiance les nombres g et p, et pour chaque bloc de la pluralité de blocs, la première valeur de Diffie-Hellman correspondante gV -R- FBi[p]. Le dispositif propriétaire P génère une valeur aléatoire T et détermine une deuxième valeur de Diffie-Hellman gT[p]. Le dispositif propriétaire P vient par ailleurs déterminer la clé partagée de Diffie-Hellman selon (gV -R- FBi[p])T[p] = gV -R- FBi *T[p], générer une entrée d’accès propre au dispositif receveur et spécifique du fichier et du bloc, ACL-R-FBi, à partir de ID-P-FBi et de la clé partagée de Diffie-Hellman. Cette entrée d’accès ACL-R-FBi est ensuite transmise au serveur de confiance T avec la deuxième valeur de Diffie-Hellman gT[p]. Dans un exemple de réalisation, l’entrée d’accès correspond à la différence entre la valeur d’identification propre au dispositif propriétaire et spécifique du fichier et du bloc et la clé partagée de Diffie-Hellman : ACL-R-FBi = ID-P-FBi - gV -R- FBi *T[p].In the context of the second embodiment, the proprietary device P retrieves from the trusted server the numbers g and p, and for each block of the plurality of blocks, the first corresponding Diffie-Hellman value g V -R- FBi [ p]. The proprietary device P generates a random value T and determines a second Diffie-Hellman value g T [p]. The proprietary device P also determines the Diffie-Hellman shared key according to (g V -R- FBi [p]) T [p] = g V -R- FBi *T [p], generate an access entry specific to the receiving device and specific to the file and the block, ACL-R-FBi, from ID-P-FBi and the Diffie-Hellman shared key. This ACL-R-FBi access entry is then transmitted to the trusted server T with the second Diffie-Hellman value g T [p]. In an exemplary embodiment, the access entry corresponds to the difference between the identification value specific to the proprietary device and specific to the file and the block and the shared Diffie-Hellman key: ACL-R-FBi = ID- P-FBi - g V -R- FBi *T [p].

Ensuite, au cours d’une étape n°7, le dispositif receveur R reçoit, depuis le serveur de confiance T, pour chaque bloc de la pluralité de blocs, l’entrée d’accès propre au dispositif receveur et spécifique du fichier et du bloc, ACL-R-FBi. Le dispositif receveur R calcule alors, pour chaque bloc de la pluralité de blocs, la valeur d’identification propre au dispositif propriétaire et spécifique du fichier et du bloc ID-P-FBi à partir de ACL-R-FBi.Then, during a step no. 7, the recipient device R receives, from the trust server T, for each block of the plurality of blocks, the access entry specific to the recipient device and specific to the file and the block, ACL-R-FBi. The receiving device R then calculates, for each block of the plurality of blocks, the identification value specific to the proprietary device and specific to the file and the ID-P-FBi block from ACL-R-FBi.

Dans le premier mode de réalisation, ce calcul peut ainsi consister en ID-P-FBi = ACL-R-FBi + V-R-FBi. Dans le second mode de réalisation, le dispositif receveur récupère également la deuxième valeur de Diffie-Hellman gT[p], calcule la clé partagée de Diffie-Hellman selon (gT[p]) V-R- FBi[p])= gT * V-R- FBi[p] et la valeur ID-P-FBi selon par exemple ID-P-FBi = ACL-R-FBi + gT * V-R- FBi[p].In the first embodiment, this calculation can thus consist of ID-P-FBi = ACL-R-FBi + V-R-FBi. In the second embodiment, the receiving device also recovers the second Diffie-Hellman value gT[p], calculates the Diffie-Hellman shared key according to (gT[p]) VR- FBI[p])= gT * VR- FBI[p] and the value ID-P-FBi according to for example ID-P-FBi = ACL-R-FBi + gT * VR- FBI[p].

Une fois la valeur ID-P-FBi déterminée pour chacun des blocs, le dispositif receveur procède au moyen de cette valeur (étape n°8 désignée par DEC sur la ) au déchiffrement du bloc correspondant. La illustre cette opération, les blocs déchiffrés se répartissant en un premier ensemble de blocs déchiffrés (correspondant aux blocs du fichier) et un deuxième ensemble de blocs déchiffrés (correspondant aux blocs construits avec les nœuds du premier arbre de Merkle MT1).Once the ID-P-FBi value has been determined for each of the blocks, the receiving device proceeds using this value (step no. 8 designated by DEC on the ) upon decryption of the corresponding block. There illustrates this operation, the decrypted blocks being distributed into a first set of decrypted blocks (corresponding to the blocks in the file) and a second set of decrypted blocks (corresponding to the blocks constructed with the nodes of the first Merkle tree MT1).

Puis, le dispositif receveur construit un deuxième arbre de Merkle MT2 à partir des blocs déchiffrés B1, …, Bn du premier ensemble de blocs de la pluralité de blocs et vérifie la concordance du deuxième arbre de Merkle MT2 avec les blocs déchiffrés H1, …, Hm du deuxième ensemble de blocs de la pluralité de blocs. En particulier, la vérification de cette concordance peut consister à vérifier que le nœud-racine H’m du deuxième arbre de Merkle MT2 concorde avec le bloc déchiffré Hm du deuxième ensemble de blocs de la pluralité de blocs correspondant au nœud-racine du premier arbre de Merkle MT1.Then, the receiving device constructs a second Merkle tree MT2 from the decrypted blocks B1, …, Bn of the first set of blocks of the plurality of blocks and verifies the concordance of the second Merkle tree MT2 with the decrypted blocks H1, …, Hm of the second set of blocks of the plurality of blocks. In particular, checking this concordance may consist of verifying that the root node H'm of the second Merkle tree MT2 matches the decrypted block Hm of the second set of blocks of the plurality of blocks corresponding to the root node of the first tree by Merkle MT1.

En cas de concordance, les blocs déchiffrés correspondent bien au fichier attendu. Le fichier peut alors être reconstruit en réunissant les blocs déchiffrés B1, …, Bn du premier ensemble de blocs de la pluralité de blocs.If there is a match, the decrypted blocks correspond to the expected file. The file can then be reconstructed by bringing together the decrypted blocks B1, ..., Bn of the first set of blocks of the plurality of blocks.

En l’absence de concordance, le dispositif receveur R procède à la création d’une contestation comprenant un ensemble de blocs non déchiffrés de la pluralité de blocs (des blocs du vecteur Z avant son déchiffrement DEC), ledit ensemble étant constitué au moins d’un bloc contesté et d’un bloc d’une vérification de Merkle du bloc contesté. A titre d’exemple et en référence à la , l’absence de concordance peut être liée au fait que le nœud H’2 du deuxième arbre de Merkle diffère du bloc déchiffré H2 représentant le nœud correspondant du premier arbre de Merkle. La contestation comprend alors le bloc contesté non déchiffré ZH2 et des blocs permettant de réaliser une vérification de Merkle du bloc contesté, en l’occurrence ZB3 et ZB4. Cette contestation peut en outre comprendre un certain nombre de nœuds d’un arbre de Merkle construit sur l’ensemble des blocs chiffrés de l’encodage Z. Ces nœuds constituent une preuve de Merkle qui permet au serveur de confiance de vérifier que les blocs de la contestation (ZH2 ; ZB3 et ZB4) n'ont pas été modifiés par le receveur.In the absence of a match, the receiving device R proceeds to create a challenge comprising a set of undecrypted blocks of the plurality of blocks (blocks of the vector Z before its decryption DEC), said set being made up of at least 'a contested block and a block of a Merkle check of the contested block. By way of example and with reference to the , the lack of concordance can be linked to the fact that the node H'2 of the second Merkle tree differs from the deciphered block H2 representing the corresponding node of the first Merkle tree. The challenge then includes the undecrypted contested block ZH2 and blocks allowing a Merkle verification of the contested block to be carried out, in this case ZB3 and ZB4. This challenge may also include a certain number of nodes of a Merkle tree constructed on all the encrypted blocks of encoding Z. These nodes constitute a proof of Merkle which allows the trusted server to verify that the blocks of the dispute (ZH2; ZB3 and ZB4) have not been modified by the recipient.

Cette contestation est ensuite transmise (étape n°9 désignée par CONST sur la ) par le dispositif receveur R au serveur de confiance T avec, pour chacun des blocs de la contestation, la valeur d’identification propre au dispositif receveur et spécifique du fichier et du bloc, V-R-FBi.This dispute is then transmitted (step no. 9 designated by CONST on the ) by the recipient device R to the trusted server T with, for each of the blocks in the dispute, the identification value specific to the recipient device and specific to the file and the block, VR-FBi.

Le serveur de confiance exploite les nœuds de la preuve de Merkle et les blocs de la contestation pour recalculer la valeur du nœud racine de l’arbre de Merkle construit sur l’ensemble des blocs chiffrés de l’encodage Z. Le serveur de confiance compare alors cette valeur recalculée à la valeur qu’il connaît. Le serveur de confiance T procède ensuite (étape n°10 désignée par JUG) au traitement de la contestation. Ce traitement comprend tout d’abord la vérification d’une validité des V-R-FBi des blocs de la contestation.The trust server uses the Merkle proof nodes and the challenge blocks to recalculate the value of the root node of the Merkle tree built on all the encrypted blocks of the Z encoding. The trust server compares then this value recalculated to the value he knows. The trusted server T then proceeds (step no. 10 designated by JUG) to process the dispute. This processing first includes checking the validity of the V-R-FBi of the protest blocks.

Dans le cadre du premier mode de réalisation, cette vérification peut comprendre, pour chacun des blocs de contestation, le calcul d’une valeur de hachage à partir de V-R-FBi transmis par le dispositif receveur au serveur de confiance avec la contestation et la comparaison de la valeur calculée avec la valeur de hachage de V-R-FBi préalablement transmise (à l’étape n°4) au serveur de confiance par le dispositif receveur.In the context of the first embodiment, this verification may include, for each of the challenge blocks, the calculation of a hash value from V-R-FBi transmitted by the receiving device to the trusted server with the challenge and the comparison of the value calculated with the hash value of V-R-FBi previously transmitted (in step no. 4) to the trusted server by the receiving device.

Dans le cadre du deuxième mode de réalisation, cette vérification peut comprendre, pour chacun des blocs de la contestation, le calcul d’une troisième valeur de Diffie-Hellman basée sur V-R-FBi transmis par le dispositif receveur R au serveur de confiance T avec la contestation et la comparaison de la troisième valeur de Diffie-Hellman avec la première valeur de Diffie-Hellman préalablement transmise (à l’étape n°4) au serveur de confiance T par le dispositif receveur R. La troisième valeur de Diffie-Hellman s’écrit par exemple gV -R- FBi[p].In the context of the second embodiment, this verification may include, for each of the blocks of the dispute, the calculation of a third Diffie-Hellman value based on VR-FBi transmitted by the receiving device R to the trusted server T with contesting and comparing the third Diffie-Hellman value with the first Diffie-Hellman value previously transmitted (in step no. 4) to the trusted server T by the receiving device R. The third Diffie-Hellman value is written for example g V -R- FBi [p].

En cas de validité non vérifiée, c’est que le dispositif receveur a menti sur une valeur V-R-FBi transmise avec la contestation (ou avait transmis une mauvaise valeur lors de l’étape n°4). Le serveur de confiance procède alors au rejet de la contestation.In the event of unverified validity, it is because the receiving device lied about a V-R-FBi value transmitted with the challenge (or had transmitted a wrong value during step no. 4). The trusted server then rejects the challenge.

En cas de validité vérifiée, le serveur de confiance procède comme illustré par la , pour chacun des blocs de la contestation (ici ZB3, ZB4 et ZH2), à la détermination de la valeur ID-P-FBi à partir de la valeur V-R-FBi transmise par le dispositif receveur avec la contestation et de l’entrée ACL-R-FBi préalablement transmise par le dispositif propriétaire (étape n°6).In case of verified validity, the trusted server proceeds as illustrated by the , for each of the protest blocks (here ZB3, ZB4 and ZH2), determining the ID-P-FBi value from the VR-FBi value transmitted by the receiving device with the protest and the ACL input -R-FBi previously transmitted by the proprietary device (step no. 6).

Dans le premier mode de réalisation, cette détermination peut ainsi consister en ID-P-FBi = ACL-R-FBi + V-R-FBi. Dans le second mode de réalisation, le serveur de confiance T calcule la clé partagée de Diffie-Hellman selon (gT[p]) V-R- FBi[p])= gT * V-R- FBi[p] et la valeur ID-P-FBi selon par exemple ID-P-FBi = ACL-R-FBi + gT * V-R- FBi[p].In the first embodiment, this determination can thus consist of ID-P-FBi = ACL-R-FBi + V-R-FBi. In the second embodiment, the trust server T calculates the Diffie-Hellman shared key according to (gT[p]) VR- FBI[p])= gT * VR- FBI[p] and the value ID-P-FBi according to for example ID-P-FBi = ACL-R-FBi + gT * VR- FBI[p].

Une fois déterminées les valeurs ID-P-FBi des blocs de la contestation, le serveur de confiance déchiffre les blocs de la contestation puis procède à une vérification de Merkle de chacun des blocs contestés déchiffrés. Comme illustré sur la , cette vérification consiste par exemple à vérifier que le bloc contesté déchiffré H2 concorde avec une valeur de hachage H’’2 déterminée à partir des autres blocs déchiffrés de la contestation B3, B4.Once the ID-P-FBi values of the contested blocks have been determined, the trusted server decrypts the contested blocks then carries out a Merkle verification of each of the decrypted contested blocks. As illustrated on the , this verification consists for example of verifying that the decrypted disputed block H2 matches a hash value H''2 determined from the other decrypted blocks of the dispute B3, B4.

Plus particulièrement, si un bloc contesté correspond à un nœud-feuille du premier arbre de Merkle, la vérification de Merkle de ce bloc peut comprendre le calcul d’une valeur de hachage d’un bloc de la vérification de Merkle déchiffré (en l’occurrence un bloc du premier ensemble) et la comparaison de la valeur calculée avec le bloc contesté déchiffré. Par ailleurs, si un bloc contesté correspond à un nœud du premier arbre de Merkle qui n’est pas un nœud-feuille, la vérification de Merkle de ce bloc peut comprendre le calcul d’une valeur de hachage à partir de blocs de la vérification de Merkle déchiffrés (en l’occurrence deux blocs du deuxième ensemble, enfants du bloc contesté) et la comparaison de la valeur de hachage calculée avec le bloc contesté déchiffré.More particularly, if a contested block corresponds to a leaf node of the first Merkle tree, the Merkle verification of this block may include the calculation of a hash value of a decrypted Merkle verification block (by occurrence a block from the first set) and comparing the calculated value with the decrypted contested block. Furthermore, if a contested block corresponds to a node of the first Merkle tree which is not a leaf node, the Merkle verification of this block may include the calculation of a hash value from blocks of the verification decrypted Merkle blocks (in this case two blocks from the second set, children of the contested block) and the comparison of the calculated hash value with the decrypted contested block.

Si la vérification de Merkle de chacun des blocs contestés est positive, la contestation est acceptée. La contestation est rejetée dans le cas contraire.If the Merkle verification of each of the contested blocks is positive, the challenge is accepted. Otherwise, the challenge is rejected.

On notera que conformément à l’invention, le serveur de confiance n’a connaissance des valeurs ID-P-FBi permettant le déchiffrement qu’en cas de contestation. Par ailleurs, chaque bloc étant chiffré avec une valeur ID-P-FBi différente, en cas de contestation le serveur de confiance ne peut déchiffrer que les blocs qui lui sont transmis avec la contestation. Il ne peut donc pas télécharger le fichier depuis le serveur de stockage et le déchiffrer entièrement.Note that in accordance with the invention, the trusted server is only aware of the ID-P-FBi values allowing decryption in the event of a dispute. Furthermore, each block being encrypted with a different ID-P-FBi value, in the event of a dispute the trusted server can only decrypt the blocks which are transmitted to it with the dispute. So it cannot download the file from the storage server and decrypt it completely.

Dans une mise en œuvre possible de l’invention, les transactions peuvent être chaînées en ce sens qu’une transaction peut être reliée à une autre transaction (qui elle-même peut être reliée à une autre transaction) et ne peut valablement s’opérer que si la ou les autres transactions en amont dans la chaîne ont été validées.In a possible implementation of the invention, transactions can be chained in the sense that a transaction can be linked to another transaction (which itself can be linked to another transaction) and cannot validly take place only if the other transaction(s) upstream in the chain have been validated.

On prend dans ce qui suit l’exemple de deux transactions : une première transaction entre un premier propriétaire P1 d’un fichier F1 et un premier receveur R1 et une deuxième transaction entre un deuxième propriétaire P2 d’un fichier F2 et un deuxième receveur R2. Dans cette mise en œuvre de l’invention, les valeurs ACL de la deuxième transaction dépendent des valeur ACL de la première transaction. Plus précisément, l’entrée d’accès du deuxième dispositif receveur R2 à un bloc Bj du deuxième fichier F2 (notée ACL-R2-F2Bj) ne dépend pas uniquement de la clé de chiffrement du bloc Bj (i.e., la valeur d’identification du deuxième propriétaire P2 pour ce bloc Bj notée ID-P2-F2Bj) et du secret partagé (échangé par chiffrement à clé publique ou par Diffie-Hellman) mais également de la valeur d’une entrée d’accès de la première transaction (en l’occurrence l’entrée d’accès du premier dispositif receveur R1 à un bloc Bi du premier fichier F1, notée ACL-R1-F1Bi). Prenant l’exemple d’un secret partagé par Diffie-Hellman, on a alors ACL-R2-F2Bj = ID-P2-F2Bj – g’V-R 2 -F 2 B j* T’[p’] - ACL-R1-F1Bi où ACL-R1-F1Bi = ID-P1-F1Bi - gV-R 1 -F 1 Bi *T[p]. On notera que les fichiers F1 et F2 peuvent avoir le même nombre de blocs ou pas. Dans le cas général en effet, une fonction peut être exploitée qui prend en entrée un numéro de bloc de la deuxième transaction et qui retourne en sortie un numéro de bloc de la première transaction. La fonction la plus évidente est : bloc n°X de la deuxième transaction -> X modulo le nombre de blocs de la première transaction.In the following we take the example of two transactions: a first transaction between a first owner P1 of a file F1 and a first receiver R1 and a second transaction between a second owner P2 of a file F2 and a second receiver R2 . In this implementation of the invention, the ACL values of the second transaction depend on the ACL values of the first transaction. More precisely, the access input of the second receiving device R2 to a block Bj of the second file F2 (denoted ACL-R2-F2Bj) does not depend solely on the encryption key of the block Bj (ie, the identification value of the second owner P2 for this block Bj denoted ID-P2-F2Bj) and the shared secret (exchanged by public key encryption or by Diffie-Hellman) but also of the value of an access entry of the first transaction (in the occurrence of the access input of the first receiving device R1 to a block Bi of the first file F1, denoted ACL-R1-F1Bi). Taking the example of a secret shared by Diffie-Hellman, we then have ACL-R2-F2Bj = ID-P2-F2Bj – g' VR 2 -F 2 B j* T' [p'] - ACL-R1- F1Bi where ACL-R1-F1Bi = ID-P1-F1Bi - g VR 1 -F 1 Bi *T [p]. Note that files F1 and F2 may or may not have the same number of blocks. In the general case in fact, a function can be used which takes as input a block number of the second transaction and which returns as output a block number of the first transaction. The most obvious function is: block #X of the second transaction -> X modulo the number of blocks of the first transaction.

On a vu que la valeur ACL de la deuxième transaction dépend de la valeur ACL de la première transaction. Le deuxième receveur doit donc récupérer du serveur de confiance la valeur ACL de la première transaction pour calculer la clé de déchiffrement des blocs échangés lors de la deuxième transaction. L’intérêt d’une telle approche est que si une transaction est révoquée, le serveur de confiance peut refuser de nouveaux accès à la valeur d’ACL ce qui invalide automatiquement toute la chaîne qui démarre de cette dernière. Autrement dit, l’échange entre le deuxième propriétaire P2 et le deuxième receveur R2 ne peut se faire que si l’échange entre le premier propriétaire P1 et le premier receveur R1 se passe correctement.We have seen that the ACL value of the second transaction depends on the ACL value of the first transaction. The second recipient must therefore retrieve from the trusted server the ACL value of the first transaction to calculate the decryption key of the blocks exchanged during the second transaction. The advantage of such an approach is that if a transaction is revoked, the trusted server can refuse new access to the ACL value, which automatically invalidates the entire chain that starts from the latter. In other words, the exchange between the second owner P2 and the second receiver R2 can only be done if the exchange between the first owner P1 and the first receiver R1 goes correctly.

Un cas d’utilisation possible est celui d’un calcul de données où le premier receveur R1 est également le deuxième propriétaire P2. Dans ce cas d’utilisation, lors d’une première transaction un utilisateur (premier propriétaire) envoie des données sources à nœud de calcul (premier receveur). Le nœud de calcul effectue un traitement des données source et, lors d’une deuxième transaction, renvoie le résultat (en tant que deuxième propriétaire) à un autre utilisateur (deuxième receveur). Dans cette situation, l’envoi du résultat ne peut être valide que si la réception des données sources a réussi.A possible use case is that of a data calculation where the first receiver R1 is also the second owner P2. In this use case, during a first transaction a user (first owner) sends source data to the calculation node (first receiver). The compute node performs processing of the source data and, in a second transaction, returns the result (as the second owner) to another user (second receiver). In this situation, the sending of the result can only be valid if the reception of the source data was successful.

L’invention n’est pas limitée au procédé tel que précédemment décrit et s’étend également à un dispositif informatique, comprenant une unité de traitement configurée pour mettre en œuvre les étapes du procédé précédemment décrit qui sont mises en œuvre par le dispositif propriétaire, par le dispositif receveur ou par le serveur de confiance. L’invention vise également un produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé précédemment décrit qui sont mises en œuvre par le dispositif propriétaire, par le dispositif receveur ou par le serveur de confiance. Et l’invention concerne également un système de partage de données numériques, comprenant un dispositif propriétaire, un dispositif receveur et un serveur de confiance tels que précédemment décrits.The invention is not limited to the method as previously described and also extends to a computing device, comprising a processing unit configured to implement the steps of the method previously described which are implemented by the proprietary device, by the receiving device or by the trusted server. The invention also relates to a computer program product comprising instructions which, when the program is executed by a computer, lead it to implement the steps of the method previously described which are implemented by the proprietary device, by the receiving device or by the trusted server. And the invention also relates to a digital data sharing system, comprising a proprietary device, a receiving device and a trusted server as previously described.

Claims (16)

Procédé d’accès à un fichier (F) par un dispositif receveur (R), dans lequel un encodage du fichier est stocké sur un serveur de stockage (M), l’encodage du fichier comprenant une pluralité de blocs chiffrés (ZB1, …, ZBn, ZH1, …, ZHm) constituée d’un premier ensemble de blocs correspondant à un découpage du fichier en blocs (B1, …, Bn) et d’un deuxième ensemble de blocs correspondant à des valeurs des nœuds (H1, …, Hm) d’un premier arbre de Merkle (MT1) construit à partir des blocs du premier ensemble, chaque bloc de la pluralité de blocs étant chiffré par une valeur d’identification propre à un dispositif propriétaire (P) et spécifique du fichier et du bloc, ID-P-FBi,
le procédé comprenant la mise en œuvre des étapes suivantes par le dispositif receveur (R) :
  • pour chaque bloc de la pluralité de blocs, la réception, depuis un serveur de confiance (T), d’une entrée d’accès propre au dispositif receveur et spécifique du fichier et du bloc, ACL-R-FBi, la détermination de ID-P-FBi à partir de ACL-R-FBi et le déchiffrement du bloc au moyen de ID-P-FBi ;
  • la construction d’un deuxième arbre de Merkle (MT2) à partir des blocs déchiffrés du premier ensemble de blocs de la pluralité de blocs et la vérification d’une concordance du deuxième arbre de Merkle avec les blocs déchiffrés du deuxième ensemble de blocs de la pluralité de blocs ;
  • en absence de concordance :
    • la création d’une contestation comprenant un ensemble de blocs non déchiffrés de la pluralité de blocs (ZB3, ZB4, ZH2), ledit ensemble étant constitué au moins d’un bloc contesté et d’un bloc d’une vérification de Merkle du bloc contesté ; et
    • la transmission, au serveur de confiance (T), de la contestation et, pour chacun des blocs de la contestation, d’une valeur d’identification propre au dispositif receveur et spécifique du fichier et du bloc, V-R-FBi.
Method of accessing a file (F) by a receiving device (R), in which an encoding of the file is stored on a storage server (M), the encoding of the file comprising a plurality of encrypted blocks (ZB1, … , ZBn, ZH1, …, ZHm) consisting of a first set of blocks corresponding to a division of the file into blocks (B1, …, Bn) and a second set of blocks corresponding to values of the nodes (H1, … , Hm) of a first Merkle tree (MT1) constructed from the blocks of the first set, each block of the plurality of blocks being encrypted by an identification value specific to a proprietary device (P) and specific to the file and of the block, ID-P-FBi,
the method comprising the implementation of the following steps by the receiving device (R):
  • for each block of the plurality of blocks, reception, from a trusted server (T), of an access entry specific to the receiving device and specific to the file and the block, ACL-R-FBi, determination of ID -P-FBi from ACL-R-FBi and decrypting the block using ID-P-FBi;
  • constructing a second Merkle tree (MT2) from the decrypted blocks of the first set of blocks of the plurality of blocks and verifying a match of the second Merkle tree with the decrypted blocks of the second set of blocks of the plurality of blocks;
  • in the absence of a match:
    • creating a challenge comprising a set of undecrypted blocks of the plurality of blocks (ZB3, ZB4, ZH2), said set consisting of at least one contested block and a block of a Merkle verification of the block disputed; And
    • the transmission, to the trusted server (T), of the challenge and, for each of the blocks of the challenge, of an identification value specific to the receiving device and specific to the file and the block, VR-FBi.
Procédé selon la revendication 1, comprenant la mise en œuvre des étapes suivantes par le serveur de confiance (T) :
  • la vérification d’une validité des V-R-FBi des blocs de la contestation ;
  • en cas de validité non vérifiée, le rejet de la contestation ;
  • en cas de validité vérifiée :
    • pour chacun des blocs de la contestation, la détermination de ID-P-FBi à partir de V-R-FBi et de ACL-R-FBi et le déchiffrement du bloc au moyen de ID-P-FBi ;
    • une vérification de Merkle de chacun des blocs contestés déchiffrés.
Method according to claim 1, comprising the implementation of the following steps by the trusted server (T):
  • verifying the validity of the VR-FBi of the protest blocks;
  • in the event of unverified validity, the rejection of the challenge;
  • in case of verified validity:
    • for each of the blocks in the dispute, determining ID-P-FBi from VR-FBi and ACL-R-FBi and decrypting the block using ID-P-FBi;
    • a Merkle verification of each of the decrypted contested blocks.
Procédé selon l’une des revendications 1 et 2, comprenant les étapes préalables consistant pour le dispositif receveur à réaliser :
  • le téléchargement de l’encodage du fichier depuis le serveur de stockage ;
  • pour chaque bloc de la pluralité de blocs de l’encodage du fichier, la détermination et la transmission au serveur de confiance de V-R-FBi.
Method according to one of claims 1 and 2, comprising the preliminary steps consisting for the recipient device of carrying out:
  • downloading the file encoding from the storage server;
  • for each block of the plurality of blocks of the file encoding, determining and transmitting to the VR-FBi trusted server.
Procédé selon la revendication 3, comprenant en outre par le dispositif propriétaire, pour chaque bloc de la pluralité de blocs, les étapes préalables de :
  • réception, depuis le serveur de confiance, de V-R-FBi ;
  • la génération de ACL-R-FBi, à partir de ID-P-FBi et de V-R-FBi ;
  • la transmission, au serveur de confiance, de ACL-R-FBi.
Method according to claim 3, further comprising by the proprietary device, for each block of the plurality of blocks, the preliminary steps of:
  • reception, from the trusted server, of VR-FBi;
  • the generation of ACL-R-FBi, from ID-P-FBi and VR-FBi;
  • the transmission, to the trusted server, of ACL-R-FBi.
Procédé selon l’une des revendications 3 et 4, comprenant en outre la réalisation par le dispositif receveur, pour chaque bloc de la pluralité de blocs, d’un chiffrement de V-R-FBi au moyen d’une clé publique du dispositif propriétaire.Method according to one of claims 3 and 4, further comprising the realization by the receiving device, for each block of the plurality of blocks, of an encryption of V-R-FBi by means of a public key of the proprietary device. Procédé selon la revendication 5, comprenant en outre la réalisation par le dispositif propriétaire, pour chaque bloc de la pluralité de blocs, d’un déchiffrement de V-R-FBi au moyen d’une clé privée du propriétaire.The method of claim 5, further comprising the proprietary device performing, for each block of the plurality of blocks, a decryption of V-R-FBi using a private key of the owner. Procédé selon l’une des revendications 3 à 6, comprenant en outre la réalisation par le dispositif receveur, pour chaque bloc de la pluralité de blocs, d’un calcul et d’une transmission au serveur de confiance d’une valeur de hachage de V-R-FBi.Method according to one of claims 3 to 6, further comprising the realization by the receiving device, for each block of the plurality of blocks, of a calculation and transmission to the trusted server of a hash value of V-R-FBi. Procédé selon la revendication 7, comprenant en outre la réalisation par le dispositif propriétaire, pour chaque bloc de la pluralité de blocs avant de générer ACL-R-FBi, d’une réception depuis le serveur de confiance de la valeur de hachage de V-R-FBi calculée par le dispositif receveur, d’un calcul d’une valeur de hachage à partir de V-R-FBi reçu du serveur de confiance et d’une comparaison de la valeur de hachage reçue et de la valeur de hachage calculée.Method according to claim 7, further comprising the proprietary device performing, for each block of the plurality of blocks before generating ACL-R-FBi, a reception from the trusted server of the hash value of V-R- FBi calculated by the receiving device, a calculation of a hash value from V-R-FBi received from the trusted server and a comparison of the received hash value and the calculated hash value. Procédé selon l’une des revendications 7 et 8 prise en combinaison avec la revendication 2, dans lequel la vérification, par le serveur de confiance, d’une validité des V-R-FBi des blocs de contestation comprend, pour chacun des blocs de contestation, le calcul d’une valeur de hachage à partir de V-R-FBi transmis par le dispositif receveur au serveur de confiance avec la contestation et la comparaison de la valeur calculée avec la valeur de hachage de V-R-FBi préalablement transmise au serveur de confiance par le dispositif receveur.Method according to one of claims 7 and 8 taken in combination with claim 2, in which the verification, by the trusted server, of the validity of the V-R-FBi of the challenge blocks comprises, for each of the challenge blocks, calculating a hash value from V-R-FBi transmitted by the receiving device to the trusted server with contesting and comparing the calculated value with the hash value of V-R-FBi previously transmitted to the trusted server by the receiving device. Procédé selon l’une des revendications 1 et 2, comprenant les étapes préalables consistant pour le dispositif receveur à réaliser :
  • le téléchargement de l’encodage du fichier depuis le serveur de stockage ;
  • pour chaque bloc de la pluralité de blocs de l’encodage du fichier :
    • la détermination de V-R-FBi ;
    • le calcul et la transmission au serveur de confiance d’une première valeur de Diffie-Hellman basée sur V-R-FBi.
Method according to one of claims 1 and 2, comprising the preliminary steps consisting for the recipient device of carrying out:
  • downloading the file encoding from the storage server;
  • for each block of the plurality of blocks of the file encoding:
    • the determination of VR-FBi;
    • calculating and transmitting to the trusted server a first Diffie-Hellman value based on VR-FBi.
Procédé selon la revendication 10, comprenant en outre par le dispositif propriétaire, les étapes préalables de :
  • calcul et transmission au serveur de confiance d’une deuxième valeur de Diffie-Hellman ; et
  • pour chaque bloc de la pluralité de blocs :
    • réception, depuis le serveur de confiance, de la première valeur de Diffie-Hellman basée sur V-R-FBi;
    • détermination d’une clé partagée de Diffie-Hellman ;
    • génération de ACL-R-FBi, à partir de ID-P-FBi et de la clé partagée de Diffie-Hellman ;
    • transmission, au serveur de confiance, de ACL-R-FBi .
Method according to claim 10, further comprising, through the proprietary device, the preliminary steps of:
  • calculation and transmission to the trusted server of a second Diffie-Hellman value; And
  • for each block of the plurality of blocks:
    • receiving, from the trusted server, the first Diffie-Hellman value based on VR-FBi;
    • determination of a shared Diffie-Hellman key;
    • generation of ACL-R-FBi, from ID-P-FBi and the Diffie-Hellman shared key;
    • transmission, to the trusted server, of ACL-R-FBi.
Procédé selon l’une des revendications 10 et 11 prise en combinaison avec la revendication 2, dans lequel la vérification, par le serveur de confiance, d’une validité des V-R-FBi des blocs de contestation comprend, pour chacun des blocs de contestation, le calcul d’une troisième valeur de Diffie-Hellman basée sur V-R-FBi transmis par le dispositif receveur au serveur de confiance avec la contestation et la comparaison de la troisième valeur de Diffie-Hellman avec la première valeur de Diffie-Hellman préalablement transmise au serveur de confiance par le dispositif receveur.Method according to one of claims 10 and 11 taken in combination with claim 2, in which the verification, by the trusted server, of the validity of the V-R-FBi of the challenge blocks comprises, for each of the challenge blocks, calculating a third Diffie-Hellman value based on V-R-FBi transmitted by the receiving device to the trusted server with contesting and comparing the third Diffie-Hellman value with the first Diffie-Hellman value previously transmitted to the trusted server by the receiving device. Procédé selon l’une des revendications 1 à 12, comprenant les étapes consistant pour le dispositif propriétaire à réaliser :
  • la génération du premier ensemble de blocs par découpage du fichier ;
  • la construction du premier arbre de Merkle à partir du premier ensemble de blocs ;
  • la génération du deuxième ensemble de blocs à partir des nœuds du premier arbre de Merkle ;
  • la génération de l’encodage du fichier comprenant, pour chacun des blocs du premier et du deuxième ensemble, le chiffrement du bloc par ID-P-FBi ;
  • la transmission de l’encodage du fichier au serveur de stockage.
Method according to one of claims 1 to 12, comprising the steps consisting for the proprietary device of carrying out:
  • generating the first set of blocks by splitting the file;
  • constructing the first Merkle tree from the first set of blocks;
  • generating the second set of blocks from the nodes of the first Merkle tree;
  • generating the encoding of the file comprising, for each of the blocks of the first and second set, the encryption of the block by ID-P-FBi;
  • transmitting the file encoding to the storage server.
Dispositif informatique, comprenant une unité de traitement configurée pour mettre en œuvre les étapes du procédé selon la revendication 1 ou celles des étapes du procédé selon la revendication 2 qui sont mises en œuvre par le serveur de confiance.Computer device, comprising a processing unit configured to implement the steps of the method according to claim 1 or those of the steps of the method according to claim 2 which are implemented by the trusted server. Produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon la revendication 1 ou celles des étapes du procédé selon la revendication 2 qui sont mises en œuvre par le serveur de confiance.Computer program product comprising instructions which, when the program is executed by a computer, cause the latter to implement the steps of the method according to claim 1 or those of the steps of the method according to claim 2 which are implemented by the trusted server. Système de partage de données numériques, comprenant au moins un dispositif propriétaire d’un fichier, au moins un dispositif receveur du fichier comprenant une unité de traitement configurée pour mettre en œuvre les étapes du procédé selon la revendication 1 et un serveur de confiance comprenant une unité de traitement configurée pour mettre en œuvre celles des étapes du procédé selon la revendication 2 qui sont mises en œuvre par le serveur de confiance.Digital data sharing system, comprising at least one device owner of a file, at least one device receiving the file comprising a processing unit configured to implement the steps of the method according to claim 1 and a trusted server comprising a processing unit configured to implement those of the steps of the method according to claim 2 which are implemented by the trusted server.
FR2203709A 2022-04-21 2022-04-21 Method and system for managing access rights in a fair transaction of digital data Pending FR3134908A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2203709A FR3134908A1 (en) 2022-04-21 2022-04-21 Method and system for managing access rights in a fair transaction of digital data
PCT/FR2023/050568 WO2023203301A1 (en) 2022-04-21 2023-04-20 Method and system for managing access rights in a fair digital data transaction

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2203709 2022-04-21
FR2203709A FR3134908A1 (en) 2022-04-21 2022-04-21 Method and system for managing access rights in a fair transaction of digital data

Publications (1)

Publication Number Publication Date
FR3134908A1 true FR3134908A1 (en) 2023-10-27

Family

ID=82019711

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2203709A Pending FR3134908A1 (en) 2022-04-21 2022-04-21 Method and system for managing access rights in a fair transaction of digital data

Country Status (2)

Country Link
FR (1) FR3134908A1 (en)
WO (1) WO2023203301A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947556B1 (en) * 2000-08-21 2005-09-20 International Business Machines Corporation Secure data storage and retrieval with key management and user authentication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947556B1 (en) * 2000-08-21 2005-09-20 International Business Machines Corporation Secure data storage and retrieval with key management and user authentication

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PACHECO ANDRE E A ET AL: "Secure Dynamic Data Storage with Third Party Arbitration in Cloud", 2018 SECOND INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING AND CONTROL SYSTEMS (ICICCS), IEEE, 14 June 2018 (2018-06-14), pages 118 - 122, XP033528824, DOI: 10.1109/ICCONS.2018.8663191 *
STEFAN DZIEMBOWSKILISA ECKEYSEBASTIAN FAUST: "FairSwap: How To Fairly Exchange Digital Goods", PRO-CEEDINGS OF THE 2018 ACM SIGSAC CONFÉRENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS '18). ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, NY, USA, 2018, pages 967 - 984, XP058636290, DOI: 10.1145/3243734.3243857

Also Published As

Publication number Publication date
WO2023203301A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
EP2323306B1 (en) Secured data transmission method and encryption and decryption system enabling such a transmission
WO2018131004A9 (en) Methods and systems for executing smart contracts in secure environments
WO2009130089A1 (en) Method of secure broadcasting of digital data to an authorized third party
Thompson The preservation of digital signatures on the blockchain
WO2019233951A1 (en) A software application and a computer server for authenticating the identity of a digital content creator and the integrity of the creator's published content
WO2009130088A1 (en) Terminal for strong authentication of a user
US20220337392A1 (en) Automatic digital media authenticator
FR3059802A1 (en) METHOD FOR GENERATING AN ELECTRONIC SIGNATURE OF A DOCUMENT ASSOCIATED WITH A CONDENSATE
FR2951842A1 (en) IDENTIFICATION BY CONTROLLING USER DATA
EP1011223A1 (en) Method and system for creating and managing at least one cryptographic key
CN112732695A (en) Cloud storage data security deduplication method based on block chain
Bhargav et al. A review on cryptography in cloud computing
Manjula et al. Division of data in cloud environment for secure data storage
FR2892876A1 (en) Data e.g. digital data, deposition method for mobile communication field, involves encrypting data with key using symmetric encrypting method, and encrypting transfer key with public key of third party by asymmetric encrypting method
CN111680013A (en) Data sharing method based on block chain, electronic equipment and device
FR2742617A1 (en) METHODS OF REDUCTION AND PROVISION OF ENCRYPTION KEYS, AND STRUCTURE AND SUPPORT OF DATA FOR THEIR IMPLEMENTATION
FR3113800A1 (en) Data exchange between a client and a remote device, for example a secure module
CN108632257B (en) Method and system for acquiring encrypted health record supporting hierarchical search
WO2022200726A1 (en) Management of access rights to digital files with possible delegation of the rights
FR3134908A1 (en) Method and system for managing access rights in a fair transaction of digital data
FR2965431A1 (en) SYSTEM FOR EXCHANGING DATA BETWEEN AT LEAST ONE TRANSMITTER AND ONE RECEIVER
EP4012972A1 (en) Method for selective disclosure of data via a blockchain
Li et al. Achieving forward unforgeability in keyword-field-free conjunctive search
Sivanantham et al. Reliable Data Storage and Sharing using Block chain Technology and Two Fish Encryption
WO2019196042A1 (en) Hierarchical search-supported method and system for obtaining encrypted health record

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20231027