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

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

Info

Publication number
WO2023203301A1
WO2023203301A1 PCT/FR2023/050568 FR2023050568W WO2023203301A1 WO 2023203301 A1 WO2023203301 A1 WO 2023203301A1 FR 2023050568 W FR2023050568 W FR 2023050568W WO 2023203301 A1 WO2023203301 A1 WO 2023203301A1
Authority
WO
WIPO (PCT)
Prior art keywords
fbi
blocks
block
file
trusted server
Prior art date
Application number
PCT/FR2023/050568
Other languages
French (fr)
Inventor
Bastien CONFAIS
Gustavo ROSTIROLLA
François MARQUES
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
Publication of WO2023203301A1 publication Critical patent/WO2023203301A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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

Definitions

  • 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.
  • 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, I D-P-FBi.
  • This method includes the implementation of the following steps by the receiving device:
  • o 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 verification of the contested block; and o 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.
  • the trusted server includes the implementation of the following steps by the trusted server: o verification of the validity of the V-R-FBi of the protest blocks; o in the event of unverified validity, the rejection of the challenge; o in case of verified validity:
  • the receiving device includes the preliminary steps consisting for the receiving device to carry out: o downloading the encoding of the file from the storage server; o for each block of the plurality of blocks of the file encoding, determination and transmission to the V-R-FBi trusted server.
  • the receiving device includes the preliminary steps consisting for the receiving device to carry out: o downloading the encoding of the file from the storage server; o for each block of the plurality of blocks of the file encoding:
  • the proprietary device includes the steps consisting for the proprietary device to carry out: o the generation of the first set of blocks by cutting the file; o the construction of the first Merkle tree from the first set of blocks; o generating the second set of blocks from the nodes of the first Merkle tree; o generating the encoding of the file comprising, for each of the blocks of the first and second set, the encryption of the block by I D-P-FBi; o transmission of the file encoding to the storage server.
  • FIG. 2 is a diagram illustrating the different stages of the process according to the invention.
  • FIG. 3 illustrates the different blocks constituting the encoding of the file
  • FIG. 4 illustrates the encryption of the different blocks of file encoding by the proprietary device
  • the memories M, M', M are present, a common naming space is used.
  • the memories M, M', M" belong to a distributed storage system, for example produced using help from a collection network.
  • the VR-FBi value is calculated using the identification function ID presented above.
  • VR-FBi ID(U r, F, Bi) and the first Diffie-Hellman value associated with the i-th encrypted block is written g ID ( Ur ' F ' Bi )[p].
  • 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.
  • 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.
  • step 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.
  • 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.
  • the proprietary device P retrieves from the trusted server T the VR-FBi values (possibly encrypted using the public key of the proprietary device) and, where applicable, the associated hash values.
  • the proprietary device P if necessary, decrypts the VR-FBi using its private key Up.
  • the owner device can, for each block of the plurality of blocks, calculate a hash value of VR-FBi (possibly after decryption) and compare the calculated value to the corresponding hash value received from the trusted server. 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 I DP-FBi and VR -FBI.
  • This ACL-R-FBi access entry is then transmitted to the trusted server T (step no. 6 in Figure 1).
  • 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 VR FBi [p].
  • the proprietary device P generates a random value T and determines a second Diffie-Hellman value g T [p].
  • This ACL-R-FBi access entry is then transmitted to the trusted server T with the second Diffie-Hellman value g T [p].
  • 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 block I D-P-FBi from ACL-R-FBi.
  • step no. 8 designated by DEC in Figure 1
  • Figure 5 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).
  • 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.
  • 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.
  • 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.
  • 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 rejects the challenge.
  • the access input of the second receiving device R2 to a block Bj of the second file F2 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 RI to a block Bi of the first file Fl, denoted ACL-Rl-FIBi).
  • 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 PI and the first receiver RI goes correctly.
  • a possible use case is that of a data calculation where the first receiver RI is also the second owner P2.
  • first owner sends source data to the calculation node (first receiver).
  • the worker performs some processing of the source data and, in a second transaction, returns the result (as the second owner) to another user (second recipient).
  • the sending of the result can only be valid if the reception of the source data was successful.
  • 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.
  • the invention also relates to a digital data sharing system, comprising a proprietary device, a recipient device and a trusted server as previously described.

Abstract

The invention relates to a method for accessing a set of encrypted blocks comprising data blocks and blocks corresponding to nodes of a first Merkle tree, each block being encrypted by an identification value specific to a proprietary device (P) and specific to the file and the block, ID-P-FBi. A receiving device (R) implements the following steps: - for each block, receiving, from a trusted server (T), 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 by means of ID-P-FBi; - building a second Merkle tree (MT2) from the decrypted blocks and checking that the Merkle trees match; - if there is no match, transmitting, to the trusted server (T), a challenge comprising a set of non-decrypted blocks and, for each of said blocks, an identification value specific to the receiving device and specific to the file and the block, V-R-FBi.

Description

Procédé et système de gestion des droits d'accès dans une transaction équitable de données numériques Method and system for managing access rights in a fair transaction of digital data
DOMAINE TECHNIQUE TECHNICAL AREA
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.
TECHNIQUE ANTÉRIEURE PRIOR ART
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 type fairswap car dans ce dernier chaque transaction doit reposer sur une clé unique. Upstream encryption of the file 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 of the blocks and decrypt them (at least for those of the blocks involved in the fairswap protocol), which risks compromising security.
EXPOSÉ DE L'INVENTION STATEMENT OF THE INVENTION
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 type fairswap, 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, I D-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, I D-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 I D-P-FBi à partir de ACL-R-FBi et le déchiffrement du bloc au moyen de I D-P-FBi ; - for each block of the plurality of blocks, the reception, from a trusted server, of an access entry specific to the receiving device and specific to the file and the block, ACL-R-FBi, the determination of I D-P- FBi from ACL-R-FBi and decrypting the block using I D-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 concordance of the second Merkle tree with the decrypted blocks of the second set of blocks of the plurality of blocks blocks;
- en absence de concordance : o 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 o 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: o 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 verification of the contested block; and o 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 : o la vérification d'une validité des V-R-FBi des blocs de la contestation ; o en cas de validité non vérifiée, le rejet de la contestation ; o en cas de validité vérifiée : - it includes the implementation of the following steps by the trusted server: o verification of the validity of the V-R-FBi of the protest blocks; o in the event of unverified validity, the rejection of the challenge; o in case of verified validity:
■ pour chacun des blocs de la contestation, la détermination de I D-P- FBi à partir de V-R-FBi et de ACL-R-FBi et le déchiffrement du bloc au moyen de I D-P-FBi ; ■ for each of the blocks in the dispute, the determination of I D-P-FBi from V-R-FBi and ACL-R-FBi and the decryption of the block by means of I D-P-FBi;
■ une vérification de Merkle de chacun des blocs contestés déchiffrés.■ a Merkle verification of each of the decrypted contested blocks.
- il comprend les étapes préalables consistant pour le dispositif receveur à réaliser : o le téléchargement de l'encodage du fichier depuis le serveur de stockage ; o 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 receiving device to carry out: o downloading the encoding of the file from the storage server; o for each block of the plurality of blocks of the file encoding, determination and transmission to the V-R-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 : o réception, depuis le serveur de confiance, de V-R-FBi ; o la génération de ACL-R-FBi, à partir de I D-P-FBi et de V-R-FBi ; o 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: o reception, from the trusted server, of V-R-FBi; o the generation of ACL-R-FBi, from I D-P-FBi and V-R-FBi; o 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. - 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 carrying out by the owner device, for each block of the plurality of blocks, of a decryption of VR-FBi by means of a private key of the owner. - it further comprises the realization by the receiving device, for each block of the plurality of blocks, of a calculation and a transmission to the trusted server of a hash value of VR-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 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.
- 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 includes, 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 : o le téléchargement de l'encodage du fichier depuis le serveur de stockage ; o pour chaque bloc de la pluralité de blocs de l'encodage du fichier : - it includes the preliminary steps consisting for the receiving device to carry out: o downloading the encoding of the file from the storage server; o for each block of the plurality of blocks of the file encoding:
■ la détermination de V-R-FBi ; ■ determination of 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. ■ the calculation and transmission to the trusted server of a first Diffie-Hellman value based on V-R-FBi.
- Il comprend en outre par le dispositif propriétaire, les étapes préalables de : o calcul et transmission au serveur de confiance d'une deuxième valeur de Diffie- Hellman ; et o pour chaque bloc de la pluralité de blocs : - It further includes, through the proprietary device, the preliminary steps of: o calculation and transmission to the trusted server of a second Diffie-Hellman value; and o for each block of the plurality of blocks:
■ réception, depuis le serveur de confiance, de la première valeur de Diffie-Hellman basée sur V-R-FBi; ■ reception, from the trusted server, of the first Diffie-Hellman value based on V-R-FBi;
■ détermination d'une clé partagée de Diffie-Hellman ; ■ determination of a shared Diffie-Hellman key;
■ génération de ACL-R-FBi, à partir de I D-P-FBi et de la clé partagée de Diffie-Hellman ; ■ generation of ACL-R-FBi, from I D-P-FBi and the Diffie-Hellman shared key;
■ transmission, au serveur de confiance, de 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. ■ transmission, to the trusted server, of ACL-R-FBi. - the verification, by the trusted server, of the validity of the VR-FBi of the challenge blocks includes, for each of the challenge blocks, the calculation of a third Diffie-Hellman value based on VR-FBi transmitted by the receiving device 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 : o la génération du premier ensemble de blocs par découpage du fichier ; o la construction du premier arbre de Merkle à partir du premier ensemble de blocs ; o la génération du deuxième ensemble de blocs à partir des nœuds du premier arbre de Merkle ; o 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 I D-P-FBi ; o la transmission de l'encodage du fichier au serveur de stockage. - it includes the steps consisting for the proprietary device to carry out: o the generation of the first set of blocks by cutting the file; o the construction of the first Merkle tree from the first set of blocks; o generating the second set of blocks from the nodes of the first Merkle tree; o generating the encoding of the file comprising, for each of the blocks of the first and second set, the encryption of the block by I D-P-FBi; o transmission of the file encoding to the storage server.
BRÈVE DESCRIPTION DES DESSINS BRIEF DESCRIPTION OF THE DRAWINGS
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 figure 1 est un schéma représentant un système de partage de fichiers informatiques entre dispositifs informatiques de plusieurs organisations ; - Figure 1 is a diagram representing a computer file sharing system between computer devices of several organizations;
- la figure 2 est un schéma illustrant les différentes étapes du procédé selon l'invention ; - Figure 2 is a diagram illustrating the different stages of the process according to the invention;
- la figure 3 illustre les différents blocs constituant l'encodage du fichier ; - Figure 3 illustrates the different blocks constituting the encoding of the file;
- la figure 4 illustre le chiffrement des différents blocs de l'encodage du fichier par le dispositif propriétaire ; - Figure 4 illustrates the encryption of the different blocks of file encoding by the proprietary device;
- la figure 5 illustre le déchiffrement du fichier par le dispositif propriétaire ; - Figure 5 illustrates the decryption of the file by the proprietary device;
- la figure 6 illustre une vérification de preuve de Merkle par le serveur de confiance. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS - Figure 6 illustrates a Merkle proof verification by the trusted server. DETAILED 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. We consider that the entities have previously shared together an access rights management protocol.
La figure 1 représente schématiquement un système 1 de partage de fichiers entre des dispositifs informatiques de plusieurs organisations Orgl, 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. Figure 1 schematically represents a system 1 for sharing files between computer devices from several organizations Orgl, Org2, Org3, 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 Orgl, 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 Orgl, 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 Orgl, Org2, Org3 sont par exemples distantes les unes des autres, et peuvent appartenir à des territoires différents. Chacune des organisations Orgl, 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 Orgl, Org2, Org3 are, for example, distant from each other, and can belong to different territories. Each of the organizations Orgl, 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 Orgl, 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. En outre, ici, l'organisation Orgl possède un serveur de calcul 13 et l'organisation Org2 possède un serveur de calcul 13'. Par « serveur de calcul » on entend un serveur possédant une puissance de calcul très importante, typiquement plus importante que chacun des dispositifs 11, 11', 12, 12', 12'', .... On souhaite pouvoir mettre sélectivement l'un et/ou l'autre de ces serveurs 13 et 13' à disposition des autres organisations du réseau afin d'exécuter des traitements sur des données géophysiques et/ou environnementales. We consider here that each of the organizations Orgl, Org2, Org3 is independent. For example, organizations want 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. Furthermore, here, organization Orgl has a calculation server 13 and organization Org2 has a calculation server 13'. By "computation server" we mean a server having very significant computing power, typically greater than each of the devices 11, 11', 12, 12', 12'', etc. We wish to be able to selectively put the one and/or the other of these servers 13 and 13' 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 Orgl, 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 Orgl, Org2, Org3, ... 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 11, 11', 12, 12', 12'', ...) peuvent accéder à chacun des fichiers chiffrés fl, 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 fl, 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 11, 11', 12, 12', 12'', etc.) can access each of the encrypted files fl, f2 , ... without control, for example through a distributed storage system, for example conforming to the IPFS protocol, managing memories M, M', M''. The encrypted files fl, f2, ... 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. Ici, le système 1 comprend en outre : 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. Here, system 1 further includes:
• pour l'organisation Orgl, un serveur propriétaire 11 et un serveur utilisateur 12. Le serveur propriétaire 11 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 12 et/ou à d'autres dispositifs présents sur le réseau N pour ces fichiers ; l'organisation Orgl 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 11. • for the organization Orgl, an owner server 11 and a user server 12. The owner server 11 is configured to create encrypted files and to calculate access entries specific to itself and/or the user server 12 and/ or to other devices present on the N network for these files; the Orgl organization further comprises, in the present example, a sensor Sa intended to collect geophysical and/or environmental data. The Sa sensor can here exchange data with the server 11.
• pour l'organisation Org2, un serveur propriétaire 11' et un serveur utilisateur 12'. Le serveur propriétaire 11' 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 12' 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 11'. • for the Org2 organization, an owner server 11' and a user server 12'. The owner server 11' is configured to create encrypted files and to calculate access entries specific to itself and/or to the user server 12' and/or to other devices present on the network N for these files; the Org2 organization further comprises, in the present 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 11'.
• pour l'organisation Org3, un serveur utilisateur 12". 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, a 12" user server. The Org3 organization does not have significant computing power 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 Orgl. En alternative, la mémoire M pourrait être intégrée à l'un quelconque des dispositifs de l'une des organisations Orgl, Org2, Org3, ..., ou distante de chacun de ces dispositifs. System 1 further includes a storage memory M. Here, memory M belongs to the organization Orgl. Alternatively, the memory M could be integrated into any of the devices of one of the organizations Orgl, 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 a storage memory M' here, and the organization Org3 has a storage memory M' here.
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 naming space is used. The memories M, M', M" belong to a distributed storage system, for example produced using help from a collection network.
De manière préférée, chaque dispositif 11, 11', 12, 12', ... sollicite la mémoire qui est disponible dans son serveur local ; ainsi, dans l'exemple illustré sur la Figure 1, le dispositif Il peut interroger la mémoire M et le dispositif 11' 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 11, 11', 12, 12', ... uses the memory which is available in its local server; thus, in the example illustrated in Figure 1, the device It can interrogate the memory M and the device 11' can interrogate the memory M'. In the Since 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 fl est stocké sur la mémoire M de l'organisation Orgl 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", ..., or on a remote memory. In the present example, the file fl is stored on the memory M of the organization Orgl and the file f2 is stored on the memory M' of the organization Org2. Other files, preferably encrypted or possibly unencrypted, can be saved in memory.
Chacun des dispositifs 11, 11', 12, 12', 12'', 13, 13' comprend des moyens de traitement comme par exemple une unité de traitement, non représentée sur la Figure 1. 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 11, 11', 12, 12', 12'', 13, 13' comprises processing means such as for example a processing unit, not shown in Figure 1. Each of these processing means can comprise in memory one or more computer program products comprising code instructions for implementing the methods described below, and/or can read one or more computer-readable storage means on which are recorded code instructions for the implementation of the processes described below.
Revenant à l'exemple précédent, les organisations Orgl, Org2, Org3 souhaitent pouvoir solliciter les serveurs de calcul 13, 13' 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 11, 11', 12, 12', 12''. Pour ce faire, on souhaite attribuer un accès (typiquement uniquement en lecture) à l'un des fichiers chiffrés fl et/ou f2 pour l'un des serveurs de calcul 13 et/ou 13', de manière sélective et préférentiellement temporaire. Returning to the previous example, the organizations Orgl, Org2, Org3 wish to be able to request the calculation servers 13, 13' in order to have their computing power to carry out processing on the geophysical and/or environmental data to which any one devices 11, 11', 12, 12', 12''. To do this, we wish to assign access (typically only for reading) to one of the encrypted files fl and/or f2 for one of the calculation servers 13 and/or 13', in a selective and preferably temporary manner.
En référence à la figure 2, on considère ci-après un dispositif propriétaire P d'un fichier (par exemple le serveur 12" de l'organisation Org3) et un dispositif receveur R (par exemple le serveur de calcul 13 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 type fairswap par l'intermédiaire d'un serveur de confiance T. With reference to Figure 2, we consider below a device owner P of a file (for example the server 12 "of the organization Org3) and a recipient device R (for example the calculation server 13 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 in the sense of a fairswap type protocol via a trusted server T.
En référence à la figure 2, le fichier a préalablement été chiffré par le dispositif propriétaire (étape n°l 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 Bl, 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 Hl, H2, ..., Hm qui forme un deuxième ensemble de blocs. Les blocs Bl, B2, B3, B4, ..., Bn du premier ensemble et les blocs Hl, 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 Bl, 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 Hl, 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. With reference to Figure 2, 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. Encryption of the file F is more particularly produced as follows, with reference to Figures 3 and 4. The proprietary device P first cuts the file into a plurality of n blocks Bl, 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 comprises a plurality of nodes Hl, H2, ..., Hm which forms a second set of blocks. The blocks Bl, B2, B3, B4, ..., Bn of the first set and the blocks Hl, 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 noted 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, ..., ZBn resulting from the encryption of the blocks Bl, B2, B3, B4, ..., 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 the blocks Hl, 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, I D-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, I D-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 I D-P-FBi = I D(Up, F, Bi). Dans un exemple de réalisation, la valeur I D-P-FBi est obtenue comme suit : I D-P-FBi = I D(U p, 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 I DP-FBi = ID(Up, F, Bi). In an exemplary embodiment, the value I DP-FBi is obtained as follows: I DP-FBi = ID(U p, F, Bi) = Up+ sha256(concatenation(Up, F, Bi)), where Up is the key private of the proprietary device, F is the name of the file, Bi is the i-th block of the vector Y, “concatenation” corresponds to the concatenation function and “sha256” corresponds to a known cryptographic hash function operating on a word size of 32-bit. We understand that it is possible to use another hash function here.
Toujours en référence à la figure 2, 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 Figure 2, 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 Merkle tree.
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 to 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 VR-FBi values and to have to post to the trusted server all of the hash values of these VR-FBi values. In this second embodiment, the VR-FBi value is used to determine a first Diffie-Hellman value, ie 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 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 g VR FBi [p] and transmits this first Diffie-Hellman value to the trusted third party T. Hellman g VR 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= I D(U r, F, Bi) et la première valeur de Diffie-Hellman associée au i-ème bloc chiffré s'écrit gID(UrF' 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(U r, 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 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. 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 I D-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 figure 1). 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. In the context of the first embodiment, the proprietary device P retrieves from the trusted server T the VR-FBi values (possibly encrypted using the public key of the proprietary device) and, where applicable, the associated hash values. The proprietary device P, if necessary, decrypts the VR-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 VR-FBi (possibly after decryption) and compare the calculated value to the corresponding hash value received from the trusted server. 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 I DP-FBi and VR -FBI. This ACL-R-FBi access entry is then transmitted to the trusted server T (step no. 6 in Figure 1). 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 I D-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 = I D-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 VR 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 VR FBi [p])T [p] = gV-R-FBi*T [p], generates an access entry specific to the recipient device and file and block specific, ACL-R-FBi, from I DP-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 = I DP -FBi - g VR 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 I D-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 block I D-P-FBi from ACL-R-FBi.
Dans le premier mode de réalisation, ce calcul peut ainsi consister en I D-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 I DP-FBi = ACL-R-FBi + VR-FBi. In the second embodiment, the receiving device also retrieves the second Diffie-Hellman value g T [p], calculates the Diffie-Hellman shared key according to (g T [p]) VR FBi [p])= g T * VR FBi [p] and the value ID-P-FBi according to for example ID-P-FBi = ACL-R-FBi + g T * 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 figure 1) au déchiffrement du bloc correspondant. La figure 5 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 in Figure 1) at decryption of the corresponding block. Figure 5 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 Bl, ..., 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 Hl, ..., 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 Bl, ..., 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 Hl, ..., 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 Bl, ..., Bn du premier ensemble de blocs de la pluralité de blocs. In case of a match, the decrypted blocks correspond to the expected file. The file can then be reconstructed by bringing together the decrypted blocks Bl, ..., 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 figure 5, 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 Figure 5, 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 figureThis dispute is then transmitted (step no. 9 designated by CONST in the figure
1) 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. 1) by the receiving device R to the trusted server T with, for each of the blocks of the dispute, the identification value specific to the receiving 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 figure 6, pour chacun des blocs de la contestation (ici ZB3, ZB4 et ZH2), à la détermination de la valeur I D-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 the event of verified validity, the trusted server proceeds as illustrated in Figure 6, for each of the dispute blocks (here ZB3, ZB4 and ZH2), to determine the value I D-P-FBi from the value V-R -FBi transmitted by the receiving device with the challenge and the ACL-R-FBi input previously transmitted by the owner 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 I D-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 + VR-FBi. In the second embodiment, the trusted server T calculates the Diffie-Hellman shared key according to (g T [p]) VR FBi [p])= g T * VR FBi [p] and the value ID- P-FBi according for example I DP-FBi = ACL-R -FBi + g T * VR FBi [p].
Une fois déterminées les valeurs I D-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 figure 6, 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 I D-P-FBi values of the contested blocks have been determined, the trusted server decrypts the contested blocks and then carries out a Merkle verification of each of the decrypted contested blocks. As illustrated in Figure 6, this verification consists for example of verifying that the decrypted contested 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 I D-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 I D-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, the 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 PI d'un fichier Fl et un premier receveur RI 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 RI à un bloc Bi du premier fichier Fl, notée ACL-Rl-FIBi). Prenant l'exemple d'un secret partagé par Diffie-Hellman, on a alors ACL-R2-F2Bj = ID-P2- F2Bj - g'V-R2-F2Bj*T- [p . ACL-Rl-FIBi où ACL-Rl-FIBi = I D-Pl-FIBi - gvR1F1Bi*T [p], On notera que les fichiers Fl 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 what follows we take the example of two transactions: a first transaction between a first owner PI of a file Fl and a first recipient RI and a second transaction between a second owner P2 of a file F2 and a second recipient 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 RI to a block Bi of the first file Fl, denoted ACL-Rl-FIBi). Taking the example of a secret shared by Diffie-Hellman, we then have ACL-R2-F2Bj = ID-P2- F2Bj - g'V-R2-F2Bj*T- [ p . ACL-Rl-FIBi where ACL-Rl-FIBi = I D-Pl-FIBi - g v ' R1 ' F1Bi * T [p], Note that files Fl 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 PI et le premier receveur RI 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 PI and the first receiver RI goes correctly.
Un cas d'utilisation possible est celui d'un calcul de données où le premier receveur RI 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 RI 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 worker performs some processing of the source data and, in a second transaction, returns the result (as the second owner) to another user (second recipient). 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 recipient device and a trusted server as previously described.

Claims

REVENDICATIONS
1. 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 (Bl, Bn) et d'un deuxième ensemble de blocs correspondant à des valeurs des nœuds (H 1, 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, I D-P-FBi, le procédé comprenant la mise en œuvre des étapes suivantes par le dispositif receveur (R) : 1. 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 (Bl, Bn) and a second set of blocks corresponding to values of the nodes (H 1, 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 the block, I D-P -FBi, the method comprising the implementation of the following steps by the receiving device (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 I D-P-FBi à partir de ACL-R-FBi et le déchiffrement du bloc au moyen de I D-P-FBi ; - for each block of the plurality of blocks, the 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, the determination of I D-P-FBi from ACL-R-FBi and decrypting the block using I D-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 ; - the construction of a second Merkle tree (MT2) from the decrypted blocks of the first set of blocks of the plurality of blocks and the verification of a concordance of the second Merkle tree with the decrypted blocks of the second set of blocks of the plurality of blocks;
- en absence de concordance : o 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 o 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. - in the absence of a match: o the creation of a dispute 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 d 'a Merkle verification of the contested block; and o 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.
2. Procédé selon la revendication 1, comprenant la mise en œuvre des étapes suivantes par le serveur de confiance (T) : 2. Method according to claim 1, comprising the implementation of the following steps by the trusted server (T):
- la vérification d'une validité des V-R-FBi des blocs de la contestation ; - verification of the validity of the V-R-FBi of the protest blocks;
- en cas de validité non vérifiée, le rejet de la contestation ; - in the event of unverified validity, rejection of the challenge;
- en cas de validité vérifiée : o pour chacun des blocs de la contestation, la détermination de I D-P-FBi à partir de V-R-FBi et de ACL-R-FBi et le déchiffrement du bloc au moyen de ID-P-FBi ; o une vérification de Merkle de chacun des blocs contestés déchiffrés. - in the event of verified validity: o for each of the blocks in the dispute, the determination of I D-P-FBi from V-R-FBi and ACL-R-FBi and the decryption of the block using ID-P-FBi; o a Merkle verification of each of the decrypted contested blocks.
3. 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. 3. Method according to one of claims 1 and 2, comprising the preliminary steps consisting for the receiving device to carry out: downloading the encoding of the file from the storage server; for each block of the plurality of blocks of the file encoding, determining and transmitting to the trusted server of V-R-FBi.
4. 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 : o réception, depuis le serveur de confiance, de V-R-FBi ; o la génération de ACL-R-FBi, à partir de I D-P-FBi et de V-R-FBi ; o la transmission, au serveur de confiance, de ACL-R-FBi. 4. Method according to claim 3, further comprising by the proprietary device, for each block of the plurality of blocks, the preliminary steps of: o reception, from the trusted server, of V-R-FBi; o the generation of ACL-R-FBi, from I D-P-FBi and V-R-FBi; o the transmission, to the trusted server, of ACL-R-FBi.
5. 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. 5. Method according to one of claims 3 and 4, further comprising the production 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 .
6. 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. 6. Method according to claim 5, further comprising carrying out by the owner device, for each block of the plurality of blocks, a decryption of VR-FBi by means of a private key of the owner.
7. 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. 7. 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 a transmission to the trusted server of a value of hash of V-R-FBi.
8. 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. 8. Method according to claim 7, further comprising 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 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.
9. 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. 9. 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 blocks of challenge, calculating 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.
10. 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 : o la détermination de V-R-FBi ; o le calcul et la transmission au serveur de confiance d'une première valeur de Diffie-Hellman basée sur V-R-FBi. 10. Method according to one of claims 1 and 2, comprising the preliminary steps consisting for the receiving device to carry out: downloading the encoding of the file from the storage server; for each block of the plurality of blocks of the file encoding: o determining V-R-FBi; o calculating and transmitting to the trusted server a first Diffie-Hellman value based on V-R-FBi.
11. 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 : o réception, depuis le serveur de confiance, de la première valeur de Diffie- Hellman basée sur V-R-FBi; o détermination d'une clé partagée de Diffie-Hellman ; o génération de ACL-R-FBi, à partir de I D-P-FBi et de la clé partagée de Diffie- Hellman ; o transmission, au serveur de confiance, de ACL-R-FBi . 11. 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: o reception, from the trusted server, of the first Diffie-Hellman value based on VR-FBi; o determination of a shared Diffie-Hellman key; o generation of ACL-R-FBi, from I DP-FBi and the Diffie-Hellman shared key; o transmission, to the trusted server, of ACL-R-FBi.
12. 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. 12. 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 blocks of challenge, calculating a third Diffie-Hellman value based on V-R-FBi transmitted by the receiving device to the trusted server with the challenge and comparing the third Diffie-Hellman value with the first Diffie-Hellman value previously transmitted to the trusted server by the receiving device.
13. 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 I D-P-FBi ; la transmission de l'encodage du fichier au serveur de stockage. 13. Method according to one of claims 1 to 12, comprising the steps consisting for the proprietary device to be produced: generating the first set of blocks by cutting 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 I D-P-FBi; transmitting the file encoding to the storage server.
14. 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. 14. 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.
15. 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. 15. Computer program product comprising instructions which, when the program is executed by a computer, lead it 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 implemented by the trusted server.
16. 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. 16. 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.
PCT/FR2023/050568 2022-04-21 2023-04-20 Method and system for managing access rights in a fair digital data transaction WO2023203301A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2203709 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
WO2023203301A1 true WO2023203301A1 (en) 2023-10-26

Family

ID=82019711

Family Applications (1)

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

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.: "Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18", 2018, ASSOCIATION FOR COMPUTING MACHINERY, article "FairSwap: How To Fairly Exchange Digital Goods", pages: 967 - 984

Also Published As

Publication number Publication date
FR3134908A1 (en) 2023-10-27

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
FR2937484A1 (en) DIGITAL SIGNATURE METHOD IN TWO STEPS
CA2895189C (en) Group signature using a pseudonym
WO2019115936A1 (en) Device for storing digital keys for signing transactions on a 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
CN111680013A (en) Data sharing method based on block chain, electronic equipment and device
WO2019092327A1 (en) Method for obtaining a digital id with a high level of security
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
WO2023203301A1 (en) Method and system for managing access rights in a fair digital data transaction
WO2022200726A1 (en) Management of access rights to digital files with possible delegation of the rights
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
FR3107416A1 (en) EFFECTIVE RANDOM TOKENIZATION IN A DEMATERIALIZED ENVIRONMENT
FR2786049A1 (en) Information transmission dynamic key encryption coding technique having defined word generated key encryption used and receiver generation same key decoding producing.

Legal Events

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

Ref document number: 23723621

Country of ref document: EP

Kind code of ref document: A1