WO2021014081A1 - Method for secure data storage and system for implementing said method - Google Patents

Method for secure data storage and system for implementing said method Download PDF

Info

Publication number
WO2021014081A1
WO2021014081A1 PCT/FR2020/051295 FR2020051295W WO2021014081A1 WO 2021014081 A1 WO2021014081 A1 WO 2021014081A1 FR 2020051295 W FR2020051295 W FR 2020051295W WO 2021014081 A1 WO2021014081 A1 WO 2021014081A1
Authority
WO
WIPO (PCT)
Prior art keywords
crumbs
hash
encrypted
groups
data
Prior art date
Application number
PCT/FR2020/051295
Other languages
French (fr)
Inventor
Cyril DEVER
Original Assignee
Edgewhere
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
Priority claimed from FR1908258A external-priority patent/FR3098950B3/en
Application filed by Edgewhere filed Critical Edgewhere
Publication of WO2021014081A1 publication Critical patent/WO2021014081A1/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Definitions

  • the present invention relates to a secure data storage method and a system for implementing this method.
  • the encryption / decryption code is always susceptible to being broken.
  • the object of the present invention is to develop simple and particularly effective means for securing the storage of data.
  • C the data transformed as message (MC) combining the encrypted hash HX (DS) and the encrypted crumbs ⁇ (Kj (Gj)) concatenated.
  • the decryption request can come a priori from any participant and the latter could ask the other participants to send back the crumbs that they can decrypt so that he alone can recombine them and disobfuscate the result for obtain the decrypted data because this can only be done by the holder.
  • the data recovery process is carried out initially on the machines of the participants who are the only ones to hold their private keys.
  • the process ends on the machine of the requestor of the data which in general is normally the holder.
  • the H (DS) hash is encrypted with the encrypted crumb (KoGo) by the XOR function to obtain the H encrypted hash (DS).
  • the encrypted crumbs are divided into groups, including one group intended for the holder and containing at least one crumb which is not found in any of the other groups intended for the other participants.
  • the keys used in the Feistel network are the cardholder's keys, which further increases security.
  • the method for recovering the source data originating from the secure storage comprises the following steps consisting of
  • VF VF the integrity of the data retrieved by comparing the HX (DS) hash extracted from the combined message MC and the H (DS) hash kept by the holder To.
  • the subject of the invention is also a secure storage / retrieval system for source data for the implementation of the method.
  • This system includes - an obfuscation function (Ob) of the source data (DS) and its reciprocal function (Ob) to unobfuscate the obfuscated data.
  • Ob obfuscation function
  • DS source data
  • Ob reciprocal function
  • VF verification function
  • FIG. 2 Basic diagram of the process for recovering data from secure storage
  • FIG. 3 Diagram of the system for implementing the method DESCRIPTION OF AN EMBODIMENT
  • the data holder To is, as the case may be, a natural person or a legal person (company) to which the data will be entrusted or vice versa.
  • the holder can also be one or more natural or legal persons, as well as the persons to whom the given. However, this does not modify the principle of secure storage / retrieval, described below, for the sake of simplification, in the case of a single To holder.
  • the number of crumbs Mi is equal to the number of participants Pj.
  • the system uses at least three thirds T in addition to the holder To which is in priority situation and the recipient of the data Ds which is the security counterpart of the holder.
  • the fault of a third party is automatically compensated by the presence of the other two, which allows either to replace the faulty third party or to repair.
  • the crumbs Mi are divided into as many groups Gj as there are participants Pj, including the holder.
  • the crumbs Mi are distributed in the groups Gj so that each crumb Mi is present in at least two groups except the crumb Mo reserved for the holder To.
  • the groups Gj contain a variable, identical or different number of crumbs Mi.
  • the To holder assigns himself a Go group which contains one or more MB crumbs that are not in any other Gj (j1o) group.
  • the combined message MC can then be saved without risk by any service since it is indecipherable.
  • the holder To keeps the H (DS) hash of the source data to be able to verify the authenticity of the data that will be recovered. To do this, on recovery, it compares its hash H (DS) to the HX (DS) recovered from the combined data C.
  • the first step is that of obfuscation (Ob) which constitutes a first security.
  • Obfuscation transforms the data DS into a series of characters of the same length but no longer making it possible to understand the meaning directly, that is to say without disobfuscation.
  • Obfuscation uses Feistel's network implementation, requiring the size of the source DS data to consist of an even number of characters. If this is not the case, the data DS is completed by padding to add a character to the string of size im even.
  • the keys used in the Feistel network are keys of which only the holder To is the holder.
  • Obfuscated data Ob is cut into random length crumbs.
  • the number of crumbs depends on the number of participants Pj. For n participants P], there will be n crumbs; n must be strictly greater than 1 (n 3 2).
  • each crumb Mi depends on the number of crumbs to be obtained.
  • a random factor (deltaMax) is applied to the average length of the crumbs (equal to the length of the chain Ob (DS) di referred to by the number of crumbs n).
  • This DeltaMax factor must be less than or equal to the average size - 1, a crumb cannot be zero length. It can be equal to 0.
  • deltaMax - max (0,2 * (floor (length Ob (DS) / n) - SIZE-MINI)
  • the length of the largest crumb is taken into account, for example 16 characters, and the left padding is applied to each of the crumbs, using at least two padding characters. So, if the largest crumb is 16 characters long, all final padded crumbs will be 18 characters long.
  • Padding / "padding" is done by adding a special character to the header / to the left of the string recursively until you get a string of the desired length.
  • this special character depends on the value of the first two characters of the string to be padded. By default, this is the Unicode character ⁇ u0002, but if the value of the first or the last character of the string to be padded is equal to this character at the binary level, an alternative value is used, which must also be different of the first and last character of the string to be padded.
  • the crumb (Mi) thus obtained in the group Gj will be of identical length to the length before encryption.
  • the split distribution (RD) of the crumbs Mi in groups Gj constitutes an additional security because in the event of the disappearance of a third party Tx, the crumbs Mi of its group Gx are, by definition, contained in at least two other groups and therefore they can be collected separately from third parties to which the groups containing these crumbs have been assigned.
  • the last step is to create a unique HX (DS) hash of the DS source data object of the operation, then to concatenate this encrypted hash with all the groups of encrypted crumbs Kj (Gj); the HX (DS) hash is placed at the head of the character string thus formed.
  • DS unique HX
  • the source data DS is hashed with a hash algorithm using for example SHA-256 giving the hash H (DS).
  • the hash obtained is cut into two equal parts - the second part (the one on the right) is combined by an XOR function with the concatenation of the encrypted crumbs, making the result obtained unique to the operation since it depends on the encryption operation which generates unique crumbs by processing
  • This encrypted hash HX (DS) is then concatenated with the concatenation of the groups of encrypted crumbs ⁇ Kj (Gj) under their simplified reference M [l,
  • This MC character string can therefore be stored for future use by all or some of the participants, or even by another third party who does not have any key.
  • MC data cannot be deciphered without the presence of at least two participants (a priori a trusted third party and the initial holder of the data).
  • the HX (DS) hash placed in the header will be used for indexing the data in a database as well as for verifying the conformity of the decrypted data with the DS source data: the decrypted hash of the decrypted data must be equal to the hash of the source data.
  • Tl ... Tm can be of the same level or take priority.
  • the crumbs Mi of his group Go are also found in two or more groups Gj of third parties.
  • Mi crumbs can be recovered by third parties Tl ... Tm without intervention of the holder To. But Mi crumbs will only be available in this state of crumbs.
  • FIG. 2 shows the reciprocal part of the secure storage method for recovering the data stored in its combined form MC.
  • the combined data item MC is verified at the end of decryption by the verification function VF which verifies the integrity of this data by comparing its hash HX (DS) with the hash H (DS) kept by the holder To. hash of the combination MC with the hash of the holder To proves that the DS data has not been modified during its storage.
  • the verification function VF verifies the integrity of this data by comparing its hash HX (DS) with the hash H (DS) kept by the holder To. hash of the combination MC with the hash of the holder To proves that the DS data has not been modified during its storage.
  • the part ⁇ Kj (Mi) i.e. the concatenation of the groups Gj of encrypted crumbs is separated (separation function (C) inverse of the combination function (C )) then the crumbs are decrypted with the private keys Kj of the respective participants Pj.
  • the crumbs of the decrypted groups Kj (Gj) are recombined by the inverse fractionation function M to obtain the obfuscated datum Ob (DS) which can be processed by the deobfuscation function Ob by the holder To or the recipient and then obtain the disobfused data which is the source data DS.
  • decryption performs the various steps in reverse:
  • the system for implementing the method ( Figure 3) consists of a set of data processing functions applying processing to the data and reciprocal functions which perform a reverse processing from that of the direct functions.
  • the system also includes a set of public keys / private keys Kj, Kj used by third parties Tj.
  • the functions of the system are applied by the holder To of the source data DS or his proxy.
  • S system includes:
  • M a crumbling function (M) to split the obfuscated data into Mi crumbs.
  • the number of crumbs and the content of the crumbs depend on the adjustable parameters of this M function.
  • G grouping function
  • VF verification function to check the data returned after storage and verify its integrity by comparing the hash
  • H (DS) 1 extract from the combined message MC and the hash H (DS) 2 kept by the holder To.
  • Hash function (Hash function)

Landscapes

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

Abstract

The invention relates to a method for secure storage of a source data (DS) of an owner (To) with the participation of third parties (Tj (j=1…m)) each having a public key (Kj) and a private key (Kj). The characterised method consists of - obfuscating (Ob) the source data (DS) - splitting (Fr) the obfuscated data (Ob (MS)) into crumbs (Mi) (i = 1…n) - dividing the crumbs (Mi) into groups Gj (j=…m or j=0.1…m), each crumb being present in at least two groups Gj, the number of groups being equal to the number of participants, - assigning a group (Gj) to each participant (Pj) - encrypting (Kj) of the crumbs (Mi) of each group (Gj) by the assigned participant of the group using his public key (Kj) - regrouping the encrypted crumbs (Kj (Mi) → Σ Kj [Gj (Mi)]) - hashing (H) of the source data (DS) by the owner (To) and encrypting the hash - composing the transformed data as a message (MC) combining the encrypted hash HX (DS) and the encrypted crumbs (Kj (Mi)).

Description

PROCEDE DE STOCKAGE SECURISE DE DONNEES ET SYSTEME DE MISE EN ŒUVRE DU PROCEDE PROCESS FOR SECURE STORAGE OF DATA AND SYSTEM FOR IMPLEMENTING THE PROCESS
DOMAINE DE L’INVENTION FIELD OF THE INVENTION
La présente invention se rapporte à un procédé de stockage sécurisé de données et un système de mise en oeuvre de ce procédé. The present invention relates to a secure data storage method and a system for implementing this method.
ETAT DE LA TECHNIQUE STATE OF THE ART
Il existe de multiples façons de stocker des données après les avoir cryptées. There are multiple ways to store data after encrypting it.
Toutefois les techniques actuelles pour le cryptage des données en vue du stockage et pour la récupération des données stockées et les décryp ter, sont des opérations d’autant plus complexes que la sécurité doit être élevée. However, current techniques for encrypting data for storage and for retrieving and decrypting stored data are operations that are more complex as the security must be high.
En outre le code de cryptage/ décryptage est toujours susceptible d’être cassé. In addition, the encryption / decryption code is always susceptible to being broken.
BUT DE L’INVENTION PURPOSE OF THE INVENTION
La présente invention a pour but de développer des moyens simples et particulièrement efficaces pour sécuriser le stockage de données. The object of the present invention is to develop simple and particularly effective means for securing the storage of data.
EXPOSE ET AVANTAGES DE L’INVENTION DISCLOSURE AND ADVANTAGES OF THE INVENTION
A cet effet, l’invention a pour objet un procédé de stockage sécurisé d’une donnée source (DS) d’un détenteur (To) avec la participation de tiers (Tx (x= l ...m)) ayant chacun une clé publique (Kj) et une clé privée (Kj), constituant les participants Pj (To, Tx) (j=o...m) To this end, the invention relates to a method of secure storage of a source data (DS) of a holder (To) with the participation of third parties (Tx (x = l ... m)) each having a public key (Kj) and a private key (Kj), constituting the participants Pj (To, Tx) (j = o ... m)
procédé caractérisé en ce qu’il comprend les étapes consistant à method characterized in that it comprises the steps of
-obfusquer (Ob) la donnée source (DS) -obfuscate (Ob) the source data (DS)
- fractionner (M) la donnée obfusquée [Ob (MS)] en miettes (Mi) (i = 0...n) - split (M) the obfuscated data [Ob (MS)] into crumbs (Mi) (i = 0 ... n)
- attribuer un groupe (Gj) à chaque participant (Pj) - assign a group (Gj) to each participant (Pj)
- répartir les miettes (Mi) sauf la miette Mo en groupes Gj (j= l ...m), chaque miette (Mi) (i = l ...n) étant présente dans au moins deux groupes Gj, dont le groupe (Go) du détenteur (To) contenant au moins la miette (Mo) qui ne se trouve dans aucun des autres groupes (Gj - distribute the crumbs (Mi) except the crumb Mo into groups Gj (j = l ... m), each crumb (Mi) (i = l ... n) being present in at least two groups Gj, including the group (Go) of the holder (To) containing at least the crumb (Mo) which is not in any of the other groups (Gj
(j= l ...m)) destinés aux autres participants (Pj, j= l ...m) (j = l ... m)) intended for other participants (Pj, j = l ... m)
- crypter (K) les miettes (Mi) de chaque groupe (Gj) avec la clé publique (Kj) du participant (Pj) attributaire du groupe (Gj) pour obtenir les groupes cryptés Kj (Gj) - regrouper (å) les groupes cryptés (Kj (Gj) pour obtenir les groupes de miettes concaténées å Kj (Gj) (j=o...m) - encrypt (K) the crumbs (Mi) of each group (Gj) with the public key (Kj) of the participant (Pj) assigned to the group (Gj) to obtain the encrypted groups Kj (Gj) - regroup (å) the encrypted groups (Kj (Gj) to obtain the groups of concatenated crumbs å Kj (Gj) (j = o ... m)
- hacher (H) la donnée source (DS) par le détenteur (To) - hash (H) the source data (DS) by the holder (To)
- crypter le hash H (DS) de la donnée source (DS) par une fonction de cryptage avec la miette cryptée (KoGo) du titulaire (To) pour obtenir un hash crypté HX (DS), - encrypt the H (DS) hash of the source data (DS) by an encryption function with the encrypted crumb (KoGo) of the holder (To) to obtain an encrypted HX (DS) hash,
- composer (C) la donnée transformée comme message (MC) combinant le hash crypté HX (DS) et les miettes cryptées å (Kj (Gj)) concaténées. - compose (C) the data transformed as message (MC) combining the encrypted hash HX (DS) and the encrypted crumbs å (Kj (Gj)) concatenated.
Ce procédé de stockage sécurisé et son inverse pour la récupération de la donnée sont des procédures particulièrement sûres puisque certains éléments de cryptage/ décryptage sont répartis entre des détenteurs (tiers/ participants) et ne peuvent être découverts par aucune procédure qui permettrait de casser un code de cryptage unique. Cette répartition de fractions de données (miettes) et leurs cryptages séparément aug mente considérablement la sécurité du stockage puisqu’en l’absence de l’intervention d’un participant le message ne pourra être récupéré dans sa forme obfusquée que de façon partielle. En outre la présence parmi les participants du titulaire qui est le participant prioritaire, ne permet pas de récupérer la donnée source autrement que par le titulaire de la donnée source qui a été stockée. This secure storage process and its reverse for data recovery are particularly safe procedures since certain encryption / decryption elements are distributed between holders (third parties / participants) and cannot be discovered by any procedure that would allow a code to be broken. unique encryption. This distribution of fractions of data (crumbs) and their separate encryption greatly increases the security of the storage since, without the intervention of a participant, the message can only be partially recovered in its obfuscated form. Furthermore, the presence among the participants of the holder who is the priority participant, does not make it possible to recover the source data item other than by the holder of the source data item which has been stored.
Un même participant ne peut être utilisé pour crypter toutes les miettes et donc au final on ne pourra jamais reconstituer les miettes avec le procédé inverse. Aucun participant ne doit pouvoir décrypter l’ensemble des miettes. The same participant cannot be used to encrypt all the crumbs and therefore in the end we will never be able to reconstitute the crumbs with the reverse process. No participant should be able to decipher all the crumbs.
Dans ce procédé/ système, toutes les opérations s’effectuent chez le dé tenteur de la donnée source ; les tiers n’ont jamais accès à la donnée source ni aux miettes en clair, c’est-à-dire les miettes qui sont toujours obfusquées dans le sens du cryptage. In this method / system, all operations are carried out at the owner of the source data; third parties never have access to the source data or to the crumbs in the clear, that is to say the crumbs that are always obfuscated in the sense of encryption.
De façon générale, la demande de décryptage peut provenir à priori de n’importe quel participant et celui-ci pourrait demander aux autres par ticipants de lui renvoyer les miettes qu’ils peuvent décrypter pour que lui seul puisse les recombiner et désobfusquer le résultat pour obtenir la donnée décryptée car cela ne peut se faire que par le détenteur. In general, the decryption request can come a priori from any participant and the latter could ask the other participants to send back the crumbs that they can decrypt so that he alone can recombine them and disobfuscate the result for obtain the decrypted data because this can only be done by the holder.
Ainsi le procédé de récupération de la donnée s’effectue dans un pre mier temps sur les machines des participants qui sont les seuls à déte nir leurs clés privées. Le procédé se finit sur la machine du demandeur de la donnée qui en général est normalement le détenteur. Selon une caractéristique particulièrement intéressante, on crypte le hash H (DS) avec la miette cryptée (KoGo) par la fonction XOR pour ob tenir le hash crypté H (DS). Thus, the data recovery process is carried out initially on the machines of the participants who are the only ones to hold their private keys. The process ends on the machine of the requestor of the data which in general is normally the holder. According to a particularly interesting feature, the H (DS) hash is encrypted with the encrypted crumb (KoGo) by the XOR function to obtain the H encrypted hash (DS).
Suivant une caractéristique avantageuse, selon le procédé on répartit les miettes cryptées en groupes dont un groupe destiné au détenteur et contenant au moins une miette qui ne se trouve dans aucun des autres groupes destinés aux autres participants. According to an advantageous characteristic, according to the method, the encrypted crumbs are divided into groups, including one group intended for the holder and containing at least one crumb which is not found in any of the other groups intended for the other participants.
Suivant une caractéristique très avantageuse, on découpe (M) le mes sage obfusqué (Ob (DS)) en un nombre de miettes (Mi) correspondant au nombre de participants (Pj (j=0, l ...m)), et on répartit les miettes (Mi) : a) en formant des groupes (Gj) avec une paire de miettes (Mi) dont la première miette est la seconde miette de la paire du groupe (Gj- 1 ) précé dant de cette suite According to a very advantageous characteristic, we cut (M) the obfuscated wise mes (Ob (DS)) into a number of crumbs (Mi) corresponding to the number of participants (Pj (j = 0, l ... m)), and we distribute the crumbs (Mi): a) by forming groups (Gj) with a pair of crumbs (Mi) whose first crumb is the second crumb of the pair of the group (Gj- 1) preceding this sequence
b) le titulaire (To) conserve une miette (Mo) non répartie avec les autres miettes (Mi= l ...m) du découpage dans les autres groupes (Gj) j= l ...m). b) the holder (To) keeps a crumb (Mo) not distributed with the other crumbs (Mi = l ... m) of the division in the other groups (Gj) j = l ... m).
Selon une caractéristique avantageuse, pour obfusquer la chaîne de ca ractères constituant la donnée source DS on la complète pour avoir un nombre pair de caractères et on obfusqué par un réseau de Feistel en appliquant à chaque tour une clé intermédiaire. According to an advantageous characteristic, in order to obfuscate the string of characters constituting the source datum DS, it is completed to have an even number of characters and it is obfuscated by a Feistel network by applying an intermediate key at each turn.
Les clés utilisées dans le réseau Feistel sont des clés du titulaire ce qui augmente d’autant la sécurité. The keys used in the Feistel network are the cardholder's keys, which further increases security.
Selon l’invention le procédé de récupération de la donnée source prove nant du stockage sécurisé comprend les étapes suivantes consistant àAccording to the invention, the method for recovering the source data originating from the secure storage comprises the following steps consisting of
- séparer (C) le message combiné MC avec son hash HX (DS) et ses groupes de miettes cryptées å Kj (Gj) - separate (C) the combined message MC with its hash HX (DS) and its groups of encrypted crumbs å Kj (Gj)
- décrypter (K ) les miettes récupérées par les participants (Pj), avec leur clé privée (Kj) respective - decrypt (K) the crumbs recovered by the participants (Pj), with their respective private key (Kj)
- recombiner (M) les miettes décryptées Mi (i= l ...n) et ajouter la miette (Mo) pour obtenir la donnée obfusquée [Ob (DS] - recombine (M) the decrypted crumbs Mi (i = l ... n) and add the crumb (Mo) to obtain the obfuscated data [Ob (DS]
- désobfusquer (Ob) cette donnée obfusquée OB (DS) récupérée - disobfuscate (Ob) this obfuscated data OB (DS) recovered
- vérifier (VF) l’intégrité de la donnée récupérée en comparant le hash HX(DS) extrait du message combiné MC et le hash H(DS) conservé par le détenteur To. - check (VF) the integrity of the data retrieved by comparing the HX (DS) hash extracted from the combined message MC and the H (DS) hash kept by the holder To.
L’invention a également pour objet un système de stockage/ déstockage sécurisé d’une donnée source pour la mise en oeuvre du procédé. The subject of the invention is also a secure storage / retrieval system for source data for the implementation of the method.
Ce système comprend - une fonction d’obfuscation (Ob) de la donnée source (DS) et sa fonc tion réciproque (Ob) pour désobfusquer la données obfusquée. This system includes - an obfuscation function (Ob) of the source data (DS) and its reciprocal function (Ob) to unobfuscate the obfuscated data.
- une fonction d’émiettage (M) pour fractionner la donnée obfusquée en miettes (Mi) et sa fonction inverse (M) pour recomposer la donnée obfus quée à partir des miettes. - a crumbling function (M) to split the obfuscated data into crumbs (Mi) and its inverse function (M) to recompose the obfuscated data from the crumbs.
- une fonction de groupement (G) pour composer des groupes (Gj) de miettes (Mi) contenant un nombre déterminé de miettes et sa fonction inverse G - a grouping function (G) to compose groups (Gj) of crumbs (Mi) containing a determined number of crumbs and its inverse function G
-une fonction de concaténation (å) pour regrouper les miettes cryptées et sa fonction inverse å -a concatenation function (å) to group the encrypted crumbs and its inverse function å
- une fonction de hachage (H) pour hacher la donnée source (DS). - a hash function (H) to hash the source data (DS).
- une fonction de combinaison (C) pour combiner à la concaténation des groupes de miettes cryptées, le hash crypté HX(Ds) de la donnée source (DS) et sa fonction inverse (C) de séparation (C) pour séparer le hash HX(DS) et les groupes de miettes cryptées å Kj (Gj) - a combination function (C) to combine the concatenation of groups of encrypted crumbs, the encrypted hash HX (Ds) of the source data (DS) and its inverse function (C) of separation (C) to separate the hash HX (DS) and groups of encrypted crumbs å Kj (Gj)
- des paires de clés publique/ privées Kj, Kj. (j=o...m) - pairs of public / private keys Kj, Kj. (j = o ... m)
- une fonction de vérification (VF) pour comparer le hash HX(DS) récu péré du message combiné (MC), le décrypter et le comparer à la donnée source (DS) conservée par le titulaire To. a verification function (VF) for comparing the HX (DS) hash recovered from the combined message (MC), decrypting it and comparing it with the source data (DS) kept by the holder To.
BREVE DESCRIPTION DES DESSINS BRIEF DESCRIPTION OF THE DRAWINGS
La présente invention sera décrite ci-après de manière plus détaillée à l’aide d’exemple du procédé et système de stockage sécurisé selon l’in vention représentés dans les dessins annexés dans lesquels : The present invention will be described in more detail below using the example of the secure storage method and system according to the invention shown in the accompanying drawings in which:
[Fig. 1] Schéma de base du procédé de stockage sécurisé [Fig. 1] Basic diagram of the secure storage process
[Fig. 2] Schéma de base du procédé de récupération d’une donnée d’un stockage sécurisé [Fig. 2] Basic diagram of the process for recovering data from secure storage
[Fig. 3] Schéma du système pour la mise en oeuvre du procédé DESCRIPTION D’UN MODE DE REALISATION [Fig. 3] Diagram of the system for implementing the method DESCRIPTION OF AN EMBODIMENT
La présente invention a pour objet un procédé de stockage sécurisé d’une donnée DS d’un détenteur To avec l’intervention de m tiers Tx (x= l ...m) disposant chacun d’une paire de clés (clé publique Kj, clé pri vée Kj), et formant ainsi les participants Pj (j=o...m) composé du déten teur To et des tiers Tx. The subject of the present invention is a method for secure storage of data DS of a holder To with the intervention of m third parties Tx (x = 1 ... m) each having a pair of keys (public key Kj , private key Kj), and thus forming the participants Pj (j = o ... m) composed of the holder To and the third parties Tx.
Le détenteur To de la donnée est, selon le cas, une personne physique ou une personne morale (entreprise) à laquelle sera confiée la donnée ou réciproquement. The data holder To is, as the case may be, a natural person or a legal person (company) to which the data will be entrusted or vice versa.
Le détenteur peut également être une ou plusieurs personnes physiques ou morales, de même que les personnes auxquelles sera confiée la donnée. Mais cela ne modifie pas le principe de stockage/ déstockage sé curisé, décrit ci-après, dans un but de simplification, dans le cas d’un titulaire To unique. The holder can also be one or more natural or legal persons, as well as the persons to whom the given. However, this does not modify the principle of secure storage / retrieval, described below, for the sake of simplification, in the case of a single To holder.
A titre d’exemple dans un cas qui se produira fréquemment, il y a deux détenteurs, celui auquel appartient la donnée et celui auquel elle est destinée pour être traitée ainsi que trois tiers de confiance participant au procédé de stockage sécurisé et de déstockage. For example, in a case that will occur frequently, there are two holders, the one to whom the data belongs and the one to whom it is intended to be processed as well as three trusted third parties participating in the secure storage and destocking process.
Le détenteur To et les tiers Tx forment les participants Pj j=p...m) au procédé de stockage/ déstockage (procédé inverse) de la donnée. The holder To and the third parties Tx train the participants Pj j = p ... m) in the storage / retrieval process (reverse process) of the data.
Selon la figure 1 , le procédé de stockage sécurisé consiste pour le déten teur To de la donnée source DS, dans une première étape à obfusquer Ob la donnée DS pour obtenir une donnée obfusquée Ob (DS). Puis dans une deuxième étape le détenteur To fractionne M (découpe ; émiet tage) cette donnée obfusquée Ob (DS) en miettes Mi (i=o...n). According to FIG. 1, the secure storage method consists for the holder To of the source datum DS, in a first step in obfuscating Ob the datum DS to obtain an obfuscated datum Ob (DS). Then in a second step the holder To splits M (cutting; crumbling) this obfuscated datum Ob (DS) into crumbs Mi (i = o ... n).
De manière avantageuse mais non impérative, le nombre de miettes Mi est égal au nombre de participants Pj. Advantageously but not imperatively, the number of crumbs Mi is equal to the number of participants Pj.
Le nombre de participants est choisi librement. Pour le fonctionnement optimal, le système utilise au moins trois tiers T en plus du détenteur To qui lui est en situation prioritaire et le destinataire de la donnée Ds qui est l’homologue en sécurité du titulaire. The number of participants is freely chosen. For optimal operation, the system uses at least three thirds T in addition to the holder To which is in priority situation and the recipient of the data Ds which is the security counterpart of the holder.
Le défaut d’un tiers est compensé automatiquement par la présence des deux autres, ce qui permet soit de remplacer le tiers défaillant soit de réparer. The fault of a third party is automatically compensated by the presence of the other two, which allows either to replace the faulty third party or to repair.
Le défaut du détenteur To protège définitivement la donnée stockée car on ne peut plus appliquer le procédé inverse comme cela sera vu en suite. The default of the holder To definitively protects the stored data item because the reverse process can no longer be applied as will be seen below.
Dans l’étape suivante, les miettes Mi sont réparties en autant de groupes Gj qu’il y a de participants Pj, y compris le détenteur. In the next step, the crumbs Mi are divided into as many groups Gj as there are participants Pj, including the holder.
Les miettes Mi sont réparties dans les groupes Gj de façon que chaque miette Mi soit présente dans au moins deux groupes sauf la miette Mo réservée au titulaire To. The crumbs Mi are distributed in the groups Gj so that each crumb Mi is present in at least two groups except the crumb Mo reserved for the holder To.
En respectant cette condition et en fonction du nombre (n) de miettes Mi et du nombre (m) de participants Pj, les groupes Gj contiennent un nombre variable, identique ou différent de miettes Mi. Selon les exigences de sécurité, le titulaire To s’attribue un groupe Go qui contient une ou plusieurs miettes Mo qui ne se trouvent dans au cun autre groupe Gj (j¹o). By respecting this condition and as a function of the number (n) of crumbs Mi and of the number (m) of participants Pj, the groups Gj contain a variable, identical or different number of crumbs Mi. According to the security requirements, the To holder assigns himself a Go group which contains one or more MB crumbs that are not in any other Gj (j¹o) group.
Après l’attribution des groupes Gj aux participants Pj, les miettes Mi du groupe Gj de chaque participant (K) avec la clé publique Kj de ce partici pant. After assigning the groups Gj to the participants Pj, the crumbs Mi of the group Gj of each participant (K) with the public key Kj of that participant.
Gj (Mi) Kj (Gj) (j=o...m) Gj (Mi) Kj (Gj) (j = o ... m)
Ainsi une ou plusieurs miettes Mi des groupes sont cryptées avec la clé publique Kj du participant Pj. Thus one or more crumbs Mi of the groups are encrypted with the public key Kj of the participant Pj.
Après le cryptage, on regroupe (å) tous les groupes de miettes cryptées
Figure imgf000008_0001
After the encryption, we regroup (å) all the groups of encrypted crumbs
Figure imgf000008_0001
En parallèle, le détenteur To hache (H) la donnée source (DS) In parallel, the holder To hashes (H) the source data (DS)
(DS) H (DS) (DS) H (DS)
et ensuite la crypte par la fonction XOR avec sa miette Mo cryptée KoGo pour obtenir le hash spécial HX(DS). and then encrypts it by the XOR function with its encrypted Mo crumb KoGo to obtain the special HX (DS) hash.
Puis on forme le message combiné MC en combinant (C) par concaténa tion le hash HX(DS) et les groupes de miettes cryptées Kj (Gj) (j=o...m) MC = HX(DS), å Kj (Gj) Then we form the combined message MC by combining (C) by concatenation the hash HX (DS) and the groups of encrypted crumbs Kj (Gj) (j = o ... m) MC = HX (DS), å Kj ( Gj)
Le message combiné MC peut ensuite être sauvegardé sans risque par un service quelconque puisqu’il est indéchiffrable. The combined message MC can then be saved without risk by any service since it is indecipherable.
Le détenteur To conserve le hash H (DS) de la donnée source pour pou voir vérifier l’authenticité de la donnée qui sera récupérée. Pour cela, à la récupération, il compare son hash H (DS) au HX (DS) récupéré de la donnée combinée C. The holder To keeps the H (DS) hash of the source data to be able to verify the authenticity of the data that will be recovered. To do this, on recovery, it compares its hash H (DS) to the HX (DS) recovered from the combined data C.
Dans les différentes étapes de formation du message MC, aucun partici pant Pj, à l’exception du détenteur To, n’a connaissance de la donnée source DS. In the various stages of formation of the message MC, no participant Pj, with the exception of the holder To, has any knowledge of the source data DS.
La première étape est celle de l’obfuscation (Ob) qui constitue une pre mière sécurité. The first step is that of obfuscation (Ob) which constitutes a first security.
L’obfuscation (Ob) transforme la donnée DS en une suite de caractères de même longueur mais ne permettant plus d’en comprendre le sens di rectement, c’est-à-dire sans désobfuscation. L’obfuscation utilise l’implémentation du réseau de Feistel, nécessitant que la taille de la donnée DS source se compose d’un nombre pair de caractères. Si tel n’est pas le cas, la donnée DS est complétée par rem bourrage (padding) pour ajouter un caractère à la chaîne de taille im paire. Obfuscation (Ob) transforms the data DS into a series of characters of the same length but no longer making it possible to understand the meaning directly, that is to say without disobfuscation. Obfuscation uses Feistel's network implementation, requiring the size of the source DS data to consist of an even number of characters. If this is not the case, the data DS is completed by padding to add a character to the string of size im even.
L’obfuscation Ob s’effectue comme suit : Obfuscation is performed as follows:
- vérification de la taille de la donnée source DS - checking the size of the DS source data
- ajout d’un caractère spécial à gauche (« left padding ») si la taille est impaire - addition of a special character on the left ("left padding") if the size is odd
- application d’une implémentation du réseau de Feistel : - application of an implementation of the Feistel network:
* pour chaque tour, la donnée est découpée en deux parties égales * for each turn, the data is split into two equal parts
* la partie de droite est chiffrée par une clé intermédiaire dans un algo rithme de hachage (SHA-256 en l’occurrence). * the right part is encrypted by an intermediate key in a hash algorithm (SHA-256 in this case).
* les deux parties sont combinées par la fonction XOR puis concaténées à l’envers (la gauche à droite et la droite à gauche) pour donner nais sance à une nouvelle chaîne de caractères de longueur identique * the two parts are combined by the XOR function and then concatenated backwards (left to right and right to left) to give birth to a new character string of identical length
* cette opération est répétée x tours (x étant paramétrable et fixé par exemple à 10). * this operation is repeated x turns (x being configurable and fixed for example at 10).
* la chaîne de caractères ainsi obtenue forme la donnée obfusquée Ob (DS). * the character string thus obtained forms the obfuscated data Ob (DS).
Les clés utilisées dans le réseau de Feistel sont des clés dont seul le ti tulaire To est détenteur. The keys used in the Feistel network are keys of which only the holder To is the holder.
Le découpage (M) (encore appelé émiettage) de la donnée obfusquée Ob(DS), en miettes Mi (i= l ...n) confiées aux participants Pj qui les cryp tent avec leur clé publique Kj constitue une barrière supplémentaire car aucun des participants Pj ne peut lire les miettes cryptées par les autres participants. The splitting (M) (also called crumbling) of the obfuscated data Ob (DS), into crumbs Mi (i = l ... n) entrusted to the participants Pj who encrypt them with their public key Kj constitutes an additional barrier because no of participants Pj cannot read crumbs encrypted by other participants.
Il est rappelé qu’une miette Mo est réservée au titulaire To et ne sera pas combinée aux miettes Mi (i= l ...n) dans les groupes Gj formés en suite. It is recalled that a crumb Mo is reserved for the holder To and will not be combined with crumbs Mi (i = l ... n) in the groups Gj formed subsequently.
La donnée obfusquée Ob (DS) est découpée en miettes de longueur aléa toire. Le nombre de miettes dépend du nombre de participants Pj. Pour n participants P], il y aura n miettes ; n devant être strictement supé rieur à 1 (n 3 2). Obfuscated data Ob (DS) is cut into random length crumbs. The number of crumbs depends on the number of participants Pj. For n participants P], there will be n crumbs; n must be strictly greater than 1 (n 3 2).
La variation de longueur de chaque miette Mi dépend du nombre de miettes à obtenir. Un facteur d’aléa (deltaMax) est appliqué à la lon gueur moyenne des miettes (égale à la longueur de la chaîne Ob(DS) di visée par le nombre de miettes n). Ce facteur DeltaMax doit être inférieur ou égal à la taille moyenne - 1 , une miette ne pouvant être de longueur nulle. Il peut être égal à 0. A titre d’exemple on utilise la va leur la plus élevée possible compte tenu de la longueur de la taille de la chaîne Ob(DS) et d’une taille minimale de miette (TAILLE_MINI fixée à 2) : deltaMax - max (0,2 * (floor (length Ob(DS) / n) - TAILLE-MINI)) The variation in length of each crumb Mi depends on the number of crumbs to be obtained. A random factor (deltaMax) is applied to the average length of the crumbs (equal to the length of the chain Ob (DS) di referred to by the number of crumbs n). This DeltaMax factor must be less than or equal to the average size - 1, a crumb cannot be zero length. It can be equal to 0. By way of example we use the highest possible value taking into account the length of the size of the chain Ob (DS) and a minimum size of crumb (TAILLE_MINI fixed at 2) : deltaMax - max (0,2 * (floor (length Ob (DS) / n) - SIZE-MINI))
On prend en compte la longueur de la miette la plus grande par exemple 16 caractères et on applique le rembourrage à gauche (« left padding ») sur chacune des miettes, en utilisant au minimum deux ca ractères de rembourrage. Ainsi, si la plus grande miette étant de lon gueur 16 caractères, toutes les miettes rembourrées finales seront longues de 18 caractères. The length of the largest crumb is taken into account, for example 16 characters, and the left padding is applied to each of the crumbs, using at least two padding characters. So, if the largest crumb is 16 characters long, all final padded crumbs will be 18 characters long.
Le rembourrage/ »padding » s’effectue en ajoutant un caractère spécial en en-tête / à gauche de la chaîne de caractères de manière récursive jusqu’à obtenir une chaîne de la longueur souhaitée. Padding / "padding" is done by adding a special character to the header / to the left of the string recursively until you get a string of the desired length.
La valeur de ce caractère spécial dépend de la valeur des deux premiers caractères de la chaîne à rembourrer. Par défaut, il s’agit du caractère Unicode \u0002, mais si la valeur du premier ou du dernier caractère de la chaîne à rembourrer est égale à ce caractère au niveau binaire, on utilise une valeur alternative, qui doit elle aussi, être différente du pre mier et du dernier caractère de la chaîne à rembourrer. The value of this special character depends on the value of the first two characters of the string to be padded. By default, this is the Unicode character \ u0002, but if the value of the first or the last character of the string to be padded is equal to this character at the binary level, an alternative value is used, which must also be different of the first and last character of the string to be padded.
La miette (Mi) ainsi obtenue dans le groupe Gj sera de longueur iden tique à la longueur avant cryptage. The crumb (Mi) thus obtained in the group Gj will be of identical length to the length before encryption.
La répartition dédoublée (RD) des miettes Mi en groupes Gj constitue une sécurité supplémentaire car en cas de disparition d’un tiers Tx, les miettes Mi de son groupe Gx sont, par définition, contenues dans au moins deux autres groupes et donc elles peuvent être récupérées sépa rément chez les tiers auxquels les groupements contenant ces miettes ont été attribués. The split distribution (RD) of the crumbs Mi in groups Gj constitutes an additional security because in the event of the disappearance of a third party Tx, the crumbs Mi of its group Gx are, by definition, contained in at least two other groups and therefore they can be collected separately from third parties to which the groups containing these crumbs have been assigned.
La dernière étape consiste à créer un hash HX (DS) unique de la donnée source DS objet de l’opération, puis à concaténer ce hash crypté avec tous les groupes de miettes cryptée Kj (Gj) ; le hash HX(DS) est placé en tête de la chaîne de caractères ainsi constituée. The last step is to create a unique HX (DS) hash of the DS source data object of the operation, then to concatenate this encrypted hash with all the groups of encrypted crumbs Kj (Gj); the HX (DS) hash is placed at the head of the character string thus formed.
La génération du hash crypté HX (DS) s’effectue comme suit : The generation of the HX (DS) encrypted hash is carried out as follows:
- la donnée source DS est hachée avec un algorithme de hachage utili sant par exemple SHA-256 donnant le hash H (DS). - the source data DS is hashed with a hash algorithm using for example SHA-256 giving the hash H (DS).
- le hash obtenu est découpé en deux parties égales - la deuxième partie (celle de droite) est combinée par une fonction XOR avec la concaténation des miettes cryptées, rendant le résultat obtenu unique à l’opération puisque dépendant de l’opération de cryptage qui génère des miettes uniques par traitement - the hash obtained is cut into two equal parts - the second part (the one on the right) is combined by an XOR function with the concatenation of the encrypted crumbs, making the result obtained unique to the operation since it depends on the encryption operation which generates unique crumbs by processing
- la partie de gauche inchangée et la nouvelle partie de droite sont con- caténées pour former le hash crypté unique HX (DS). - the unchanged left part and the new right part are concatenated to form the unique encrypted hash HX (DS).
Ce hash crypté HX (DS) est ensuite concaténé avec la concaténation des groupes de miettes cryptés åKj(Gj) sous leur référence simplifiée M[l ,This encrypted hash HX (DS) is then concatenated with the concatenation of the groups of encrypted crumbs åKj (Gj) under their simplified reference M [l,
PI ] ... PI] ...
Ainsi, on a : Thus, we have:
représenté schématiquement que chaque miette Mi est attribuée ici à deux participants Pj
Figure imgf000011_0001
shown schematically that each crumb Mi is attributed here to two participants Pj
Figure imgf000011_0001
Cette chaîne de caractères MC peut dès lors être stockée pour une utili sation future par tous ou certains des participants, voire par un autre tiers ne disposant d’aucune clé. This MC character string can therefore be stored for future use by all or some of the participants, or even by another third party who does not have any key.
La donnée MC est indécryptable sans la présence d’au moins deux par ticipants (à priori un tiers de confiance et le détenteur initial de la don née). MC data cannot be deciphered without the presence of at least two participants (a priori a trusted third party and the initial holder of the data).
Le hash HX(DS) placé en en-tête servira à l’indexation de la donnée dans une base de données ainsi qu’à la vérification de la conformité de la donnée décryptée avec la donnée source DS : le hash déchiffré de la donnée décryptée doit être égal au hash de la donnée source. The HX (DS) hash placed in the header will be used for indexing the data in a database as well as for verifying the conformity of the decrypted data with the DS source data: the decrypted hash of the decrypted data must be equal to the hash of the source data.
La situation du détenteur To vis-à-vis des tiers Tl ...Tm peut être de même niveau ou être prioritaire. The situation of the holder To vis-à-vis third parties Tl ... Tm can be of the same level or take priority.
Dans ce cas, si le détenteur To est sur le même niveau que les tiers Tj, les miettes Mi de son groupe Go se trouvent également dans deux ou plusieurs groupes Gj de tiers. Les miettes Mi peuvent être récupérées par les tiers Tl ...Tm sans intervention du détenteur To. Mais les miettes Mi ne seront disponibles que dans cet état de miettes. In this case, if the holder To is on the same level as the third parties Tj, the crumbs Mi of his group Go are also found in two or more groups Gj of third parties. Mi crumbs can be recovered by third parties Tl ... Tm without intervention of the holder To. But Mi crumbs will only be available in this state of crumbs.
Si le détenteur To conserve une situation prioritaire selon laquelle il se réserve au moins une miette Mo dans son groupe Go et qui ne se trouve dans aucun des autres groupes Gj, cette miette Mo sera cryptée par le seul détenteur. En son absence la totalité des miettes Mi ne pourra être décryptée par les tiers Ti...Tj avec leur clé privée Kj et la donnée obfusquée Ob (DS) ne pourra être reconstituée. La donnée source DS reste protégée à ce niveau. If the holder To maintains a priority situation according to which he reserves at least one MB crumb in his Go group and which is not in any of the other Gj groups, this Mo crumb will be encrypted by the sole holder. In its absence, all of the crumbs Mi cannot be decrypted by third parties Ti ... Tj with their private key Kj and the data Obfuscated Ob (DS) cannot be reconstructed. The source data DS remains protected at this level.
La figure 2 montre la partie réciproque du procédé de stockage sécurisé pour récupérer la donnée stockée sous sa forme combinée MC. FIG. 2 shows the reciprocal part of the secure storage method for recovering the data stored in its combined form MC.
En particulier la donnée combinée MC est vérifiée en fin de décryptage par la fonction de vérification VF qui vérifie l’intégrité de cette donnée en comparant son hash HX(DS) au hash H (DS) conservé par le détenteur To. L’identité du hash de la combinaison MC avec le hash du détenteur To prouve que la donnée DS n’a pas été modifiée pendant son stockage. In particular, the combined data item MC is verified at the end of decryption by the verification function VF which verifies the integrity of this data by comparing its hash HX (DS) with the hash H (DS) kept by the holder To. hash of the combination MC with the hash of the holder To proves that the DS data has not been modified during its storage.
Avant cette vérification et pour permettre de la faire, la partie å Kj (Mi) c’est-à-dire la concaténation des groupes Gj de miettes cryptés est sépa rée (fonction de séparation (C) inverse de la fonction de combinaison (C)) puis les miettes sont décryptées avec les clés privées Kj des participants respectifs Pj. Les miettes des groupes décryptés Kj (Gj) sont recombinées par la fonction inverse de fractionnement M pour obtenir la donnée obfusquée Ob (DS) qui peut être traitée par la fonction de désobfusca- tion Ob par le détenteur To ou le destinataire et obtenir alors la donnée désobfusquée qui est la donnée source DS. Before this verification and to allow it to be done, the part å Kj (Mi) i.e. the concatenation of the groups Gj of encrypted crumbs is separated (separation function (C) inverse of the combination function (C )) then the crumbs are decrypted with the private keys Kj of the respective participants Pj. The crumbs of the decrypted groups Kj (Gj) are recombined by the inverse fractionation function M to obtain the obfuscated datum Ob (DS) which can be processed by the deobfuscation function Ob by the holder To or the recipient and then obtain the disobfused data which is the source data DS.
En résumé, le décryptage effectue les différentes étapes dans le sens in verse : In summary, decryption performs the various steps in reverse:
- extraction du hash crypté HX (DS) et des miettes Mi (i= l ...n) et récu pération du hash décrypté - extraction of the encrypted HX (DS) hash and Mi crumbs (i = l ... n) and recovery of the decrypted hash
- décryptage des miettes par chacune des parties prenantes [chaque tiers de confiance prenant soin d’enregistrer - dans un fichier de log - le fait que l’un des propriétaires de la donnée (généralement l’entreprise qui souhaite en jouir) demande ce décryptage] - decryption of the crumbs by each of the stakeholders [each trusted third party taking care to record - in a log file - the fact that one of the owners of the data (generally the company which wishes to use it) requests this decryption ]
- dé-rembourrage des miettes - un-stuffing of crumbs
- concaténation des miettes désembourrées - concatenation of unbuffered crumbs
- désobfuscation des miettes - deobfuscation of crumbs
- vérification de la conformité de la donnée DS par le hash de vérifica tion HX(DS) et le hash HX(DS) récupéré de la combinaison. - verification of the conformity of the data DS by the verification hash HX (DS) and the hash HX (DS) recovered from the combination.
Le système de mise en oeuvre du procédé (figure 3) se compose d’un en semble de fonctions de traitement de données appliquant un traitement aux données et des fonctions réciproques qui effectuent un traitement inverse de celui des fonctions directes. The system for implementing the method (Figure 3) consists of a set of data processing functions applying processing to the data and reciprocal functions which perform a reverse processing from that of the direct functions.
Le système englobe également un ensemble de clés publiques/ clés pri vées Kj, Kj utilisées par les tiers Tj. Les fonctions du système sont appliquées par le détenteur To de la don née source DS ou son mandataire. The system also includes a set of public keys / private keys Kj, Kj used by third parties Tj. The functions of the system are applied by the holder To of the source data DS or his proxy.
Ainsi le système S comprend : Thus the S system includes:
-une fonction d’obfuscation (Ob) de la donnée source DS et sa fonction réciproque (Ob) pour désobfusquer la données obfusquée. - an obfuscation function (Ob) of the source data DS and its reciprocal function (Ob) to disobfuscate the obfuscated data.
- une fonction d’émiettage (M) pour fractionner la donnée obfusquée en miettes Mi. Le nombre de miettes et le contenu des miettes dépendent des paramètres réglables de cette fonction M. - a crumbling function (M) to split the obfuscated data into Mi crumbs. The number of crumbs and the content of the crumbs depend on the adjustable parameters of this M function.
- une fonction inverse (M) qui permet, à partir des miettes, de recompo ser la donnée obfusquée. - an inverse function (M) which makes it possible, from the crumbs, to recompose the obfuscated data.
- une fonction de groupement (G) consistant à composer des groupes Gj de miettes Mi contenant un nombre déterminé de miettes. Cette réparti tion en groupes dépend également des paramètres de cette fonction se lon le nombre de miettes, le nombre de tiers Tj englobant ou non le détenteur To est le nombre identifié ou différent de miettes placées dans les groupes Gj. a grouping function (G) consisting in composing groups Gj of crumbs Mi containing a determined number of crumbs. This distribution into groups also depends on the parameters of this function according to the number of crumbs, the number of third parties Tj including or not the holder To is the identified or different number of crumbs placed in the groups Gj.
-une fonction de concaténation (å) pour regrouper les miettes cryptées par les tiers Tj avec leur clé publique Kj. -a concatenation function (å) to group together the crumbs encrypted by third parties Tj with their public key Kj.
- une fonction de hachage (H) pour hacher la donnée source (DS). - a hash function (H) to hash the source data (DS).
- une fonction de combinaison (C) pour combiner à la concaténation des miettes cryptées, le hash H (DS) 1 de la donnée source (DS). - a combination function (C) to combine with the concatenation of the encrypted crumbs, the hash H (DS) 1 of the source data (DS).
- des paires de clés publiques/ privées Kj, Kj à la disposition des partici pants Pj du traitement de la donnée DS, y compris le détenteur To qui dispose d’une paire de clés Ko, Ko - pairs of public / private keys Kj, Kj available to the participants Pj of the processing of data DS, including the holder To who has a pair of keys K, K
- une fonction de vérification VF pour contrôler la donnée retournée après le stockage et vérifier son intégrité par comparaison du hash - a VF verification function to check the data returned after storage and verify its integrity by comparing the hash
H (DS) 1 extrait du message combiné MC et du hash H (DS)2 conservé par le du titulaire To. H (DS) 1 extract from the combined message MC and the hash H (DS) 2 kept by the holder To.
NOMENCLATURE DES ELEMENTS PRINCIPAUX NOMENCLATURE OF THE MAIN ELEMENTS
DS Donnée source DS Source data
Ob Fonction“obfusquer” Ob Obfuscate function
Ôb Fonction « désobfusquer » Ôb "Unobfuscate" function
Ob (DS) Donnée source obfusquée Ob (DS) Obfuscated source data
M Fonction « découper en miettes » M "Cut into pieces" function
M Fonction « recombiner les miettes » M “Recombine the crumbs” function
Mi [Ob (DS)] Miette de la donnée source obfusquée Mi [Ob (DS)] Crumb of obfuscated source data
Mi Miette de la donnée source obfusquée (référence sim- plifïée) Crumb of obfuscated source data (simplified reference)
Fonction“répartir les miettes en groupes” “Divide the crumbs into groups” function
Groupe de miettes Mi Mi crumb group
Groupe du titulaire contenant la miette Mo Groupe crypté avec la clé publique Kj Holder group containing the crumb Mo Group encrypted with the public key Kj
Fonction « concaténer les groupes de miettes cryptés » Concaténation des groupes cryptés "Concatenate groups of encrypted crumbs" function Concatenation of encrypted groups
Fonction « hacher » (Fonction Hash) Hash function (Hash function)
Donnée source DS hachée Hashed DS source data
Figure imgf000014_0001
Donnée source DS hachée et cryptée par la fonction XOR avec la miette cryptée KoGo
Figure imgf000014_0001
DS source data hashed and encrypted by the XOR function with the KoGo encrypted crumb
KA Fonction « crypter » KA "Encrypt" function
KA Fonction « décrypter » KA "decrypt" function
Kj Clé publique du participant Pj Kj Participant's public key Pj
Kj Clé privée du participant Pj Kj Private key of participant Pj
MC Message combiné MC Combined message
To Détenteur de la donnée source To Owner of the source data
Tj Tiers Tj Third Party
Pj Participant au traitement Pj Participant in treatment
VF Fonction « vérifier » FI "Check" function

Claims

REVENDICATIONS
1. Procédé de stockage sécurisé d’une donnée source (DS) d’un déten teur (To) avec la participation de tiers (Tx (x= l ...m)) ayant chacun une clé publique (Kj) et une clé privée (Kj), constituant les participants Pj (To, Tx) (j=o...m) 1. Method for secure storage of a source data (DS) of a holder (To) with the participation of third parties (Tx (x = l ... m)) each having a public key (Kj) and a key private (Kj), constituting the participants Pj (To, Tx) (j = o ... m)
procédé caractérisé en ce qu’il comprend les étapes consistant à method characterized in that it comprises the steps of
-obfusquer (Ob) la donnée source (DS) -obfuscate (Ob) the source data (DS)
- fractionner (M) la donnée obfusquée [Ob (MS)] en miettes (Mi) (i = o...n) - split (M) the obfuscated data [Ob (MS)] into crumbs (Mi) (i = o ... n)
- attribuer un groupe (Gj) à chaque participant (Pj) - assign a group (Gj) to each participant (Pj)
- répartir les miettes (Mi) sauf la miette Mo en groupes Gj (j= l ...m), chaque miette (Mi) (i = l ...n) étant présente dans au moins deux groupes Gj, dont le groupe (Go) du détenteur (To) contenant au moins la miette (Mo) qui ne se trouve dans aucun des autres groupes (Gj - distribute the crumbs (Mi) except the crumb Mo into groups Gj (j = l ... m), each crumb (Mi) (i = l ... n) being present in at least two groups Gj, including the group (Go) of the holder (To) containing at least the crumb (Mo) which is not in any of the other groups (Gj
(j= l ...m)) destinés aux autres participants (Pj, j= l ...m) (j = l ... m)) intended for other participants (Pj, j = l ... m)
- crypter (K) les miettes (Mi) de chaque groupe (Gj) avec la clé publique (Kj) du participant (Pj) attributaire du groupe (Gj) pour obtenir les groupes cryptés Kj (Gj) - encrypt (K) the crumbs (Mi) of each group (Gj) with the public key (Kj) of the participant (Pj) assigned to the group (Gj) to obtain the encrypted groups Kj (Gj)
- regrouper (å) les groupes cryptés (Kj (Gj) pour obtenir les groupes de miettes concaténées å Kj (Gj) (j=o...m) - regroup (å) the encrypted groups (Kj (Gj) to obtain the groups of concatenated crumbs å Kj (Gj) (j = o ... m)
- hacher (H) la donnée source (DS) par le détenteur (To) - hash (H) the source data (DS) by the holder (To)
- crypter le hash H (DS) de la donnée source (DS) par une fonction de cryptage avec la miette cryptée (KoGo) du titulaire (To) pour obtenir un hash crypté HX (DS), - encrypt the H (DS) hash of the source data (DS) by an encryption function with the encrypted crumb (KoGo) of the holder (To) to obtain an encrypted HX (DS) hash,
- composer (C) la donnée transformée comme message (MC) combinant le hash crypté HX (DS) et les miettes cryptées å (Kj (Gj)) concaténées. - compose (C) the data transformed as message (MC) combining the encrypted hash HX (DS) and the encrypted crumbs å (Kj (Gj)) concatenated.
2. Procédé selon la revendication 1 , 2. Method according to claim 1,
caractérisé en ce que characterized in that
on crypte le hash H (DS) avec la miette cryptée (KoGo) par la fonction XOR pour obtenir le hash crypté hX (DS). we encrypt the hash H (DS) with the encrypted crumb (KoGo) by the XOR function to obtain the encrypted hash hX (DS).
3. Procédé selon la revendication 1 , 3. Method according to claim 1,
caractérisé en ce qu’ characterized in that
on découpe (M) le message obfusqué (Ob (DS)) en un nombre de miettes (Mi) correspondant au nombre de participants (Pj (j=0, l ...m)), et on ré partit les miettes (Mi) : we cut (M) the obfuscated message (Ob (DS)) into a number of crumbs (Mi) corresponding to the number of participants (Pj (j = 0, l ... m)), and we distribute the crumbs (Mi ):
a) en formant des groupes (Gj) avec une paire de miettes (Mi) dont la première miette est la seconde miette de la paire du groupe (Gj- 1 ) précé dant de cette suite a) by forming groups (Gj) with a pair of crumbs (Mi) whose first crumb is the second crumb of the pair of the group (Gj- 1) preceding this sequence
b) le titulaire (To) conserve une miette (Mo) non répartie avec les autres miettes (Mi= l ...m) du découpage dans les autres groupes (Gj) j= l ...m). b) the holder (To) keeps a crumb (Mo) not distributed with the other crumbs (Mi = l ... m) of the division in the other groups (Gj) j = l ... m).
4. Procédé selon la revendication 1 , 4. Method according to claim 1,
caractérisé en ce que pour obfusquer la chaîne de caractères constituant la donnée source (DS), on la complète pour avoir un nombre pair de caractères et on obfusque par un réseau de Feistel en appliquant à chaque tour une clé intermédiaire. characterized in that to obfuscate the character string constituting the source data (DS), it is completed to have an even number of characters and it is obfuscated by a Feistel network by applying an intermediate key at each turn.
5. Procédé de récupération de la donnée source (DS) du procédé de stockage sécurisé selon l’une quelconque des revendications 1 à 4, caractérisé en ce qu’il comprend les étapes suivantes consistant à :5. Method for recovering the source data (DS) of the secure storage method according to any one of claims 1 to 4, characterized in that it comprises the following steps consisting of:
- séparer (C) le message combiné MC avec son hash HX(DS) et ses groupes de miettes cryptées å Kj (Gj) - separate (C) the combined message MC with its hash HX (DS) and its groups of encrypted crumbs å Kj (Gj)
- décrypter (K ) les miettes récupérées par les participants (Pj), avec leur clé privée (Kj) respective - decrypt (K) the crumbs recovered by the participants (Pj), with their respective private key (Kj)
- recombiner (M) les miettes décryptées Mi (i= l ...n) et ajouter la miette (Mo) pour obtenir la donnée obfusquée [Ob (DS] - recombine (M) the decrypted crumbs Mi (i = l ... n) and add the crumb (Mo) to obtain the obfuscated data [Ob (DS]
- désobfusquer (Ob) cette donnée obfusquée Ob (DS) récupérée - disobfuscate (Ob) this obfuscated data Ob (DS) recovered
- vérifier (VF) l’intégrité de la donnée récupérée en comparant le hash HX(DS) extrait du message combiné MC et le hash H(DS) conservé par le détenteur To - check (VF) the integrity of the data retrieved by comparing the HX (DS) hash extracted from the combined message MC and the H (DS) hash kept by the holder To
6. Système de stockage/ destockage sécurisé d’une donnée source (DS) pour la mise en œuvre du procédé selon l’une quelconque des revendi cations 1 à 5, 6. Secure storage / destocking system for a source data (DS) for the implementation of the method according to any one of claims 1 to 5,
système comprenant : system including:
-une fonction d’obfuscation (Ob) de la donnée source (DS) et sa fonction réciproque (Ob) pour désobfusquer la données obfusquée. - an obfuscation function (Ob) of the source data (DS) and its reciprocal function (Ob) to disobfuscate the obfuscated data.
- une fonction d’émiettage (M) pour fractionner la donnée obfusquée en miettes (Mi) et sa fonction inverse (M) pour recomposer la donnée obfus quée à partir des miettes. - a crumbling function (M) to split the obfuscated data into crumbs (Mi) and its inverse function (M) to recompose the obfuscated data from the crumbs.
- une fonction de groupement (G) pour composer des groupes (Gj) de miettes (Mi) contenant un nombre déterminé de miettes et sa fonction inverse G - a grouping function (G) to compose groups (Gj) of crumbs (Mi) containing a determined number of crumbs and its inverse function G
-une fonction de concaténation (å) pour regrouper les miettes cryptées et sa fonction inverse å -a concatenation function (å) to group the encrypted crumbs and its inverse function å
- une fonction de hachage (H) pour hacher la donnée source (DS). - a hash function (H) to hash the source data (DS).
- une fonction de combinaison (C) pour combiner à la concaténation des groupes de miettes cryptées, le hash crypté HX(Ds) de la donnée source (DS) et sa fonction inverse (C) de séparation (C) pour séparer le hash HX(DS) et les groupes de miettes cryptées å Kj (Gj) - a combination function (C) to combine the concatenation of groups of encrypted crumbs, the encrypted hash HX (Ds) of the source data (DS) and its inverse function (C) of separation (C) to separate the hash HX (DS) and groups of encrypted crumbs å Kj (Gj)
- des paires de clés publique/ privées Kj, Kj. (j=o...m) - pairs of public / private keys Kj, Kj. (j = o ... m)
- une fonction de vérification (VF) pour comparer le hash HX(DS) récu péré du message combiné (MC), le décrypter et le comparer à la donnée source (DS) conservée par le titulaire To. a verification function (VF) for comparing the HX (DS) hash recovered from the combined message (MC), decrypting it and comparing it with the source data (DS) kept by the holder To.
PCT/FR2020/051295 2019-07-19 2020-07-17 Method for secure data storage and system for implementing said method WO2021014081A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FRFR1908258 2019-07-19
FR1908258A FR3098950B3 (en) 2019-07-19 2019-07-19 "Method for secure data storage and system for implementing the method"
FR2007516 2020-07-17
FR2007516A FR3098953B1 (en) 2019-07-19 2020-07-17 Method for secure data storage and system for implementing the method

Publications (1)

Publication Number Publication Date
WO2021014081A1 true WO2021014081A1 (en) 2021-01-28

Family

ID=72088335

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2020/051295 WO2021014081A1 (en) 2019-07-19 2020-07-17 Method for secure data storage and system for implementing said method

Country Status (1)

Country Link
WO (1) WO2021014081A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180234239A1 (en) * 2015-10-16 2018-08-16 Tohoku University Information processing system, information processing apparatus, method for information processing, and non-transitory computer-readable recording medium having stored therein information processing program
US20180278594A1 (en) * 2017-03-24 2018-09-27 Hewlett-Packard Development Company, L.P. Distributed authentication
US20180287782A1 (en) * 2015-10-07 2018-10-04 NEC Laboratories Europe GmbH Method for storing a data file

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180287782A1 (en) * 2015-10-07 2018-10-04 NEC Laboratories Europe GmbH Method for storing a data file
US20180234239A1 (en) * 2015-10-16 2018-08-16 Tohoku University Information processing system, information processing apparatus, method for information processing, and non-transitory computer-readable recording medium having stored therein information processing program
US20180278594A1 (en) * 2017-03-24 2018-09-27 Hewlett-Packard Development Company, L.P. Distributed authentication

Similar Documents

Publication Publication Date Title
EP3211823B1 (en) Method for confidential execution of a program operating on data encrypted by means of homomorphic encryption
FR2952778A1 (en) SECURE DATA TRANSMISSION METHOD AND ENCRYPTION AND ENCRYPTION SYSTEM FOR SUCH TRANSMISSION
EP2951944A1 (en) Method of xor homomorphic encryption and secure calculation of a hamming distance
FR2881900A1 (en) METHOD FOR CRYPTOGRAPHY OF PRIVATE KEY MESSAGES, AND APPLICATION TO A FACILITY
FR3097348A1 (en) Encryption Algorithm Execution Protection
RU2007148046A (en) ENCRYPTION PROCESSOR, ENCRYPTION METHOD, ENCRYPTION PROCESSOR, METHOD OF ENCRYPTION AND DATA STRUCTURE
WO2020169542A1 (en) Cryptographic data verification method
WO2012152607A1 (en) Device and method for generating keys with enhanced security for fully homomorphic encryption algorithm
EP3300292B1 (en) Encryption or decryption method protected against side channel attacks
FR2808948A1 (en) SYSTEM AND METHOD FOR UNIQUE AUTHENTICATION OF EACH REPRODUCTION OF A GROUP OF ELECTRONIC DOCUMENTS
EP2517397A1 (en) Encryption and decryption method
EP2904731B1 (en) Method and device for digital data blocks encryption and decryption
US6272225B1 (en) Key recovery condition encryption and decryption apparatuses
WO2021014081A1 (en) Method for secure data storage and system for implementing said method
FR3098953A1 (en) Method for secure data storage and system for implementing the method
CN107070900B (en) It can search for re-encryption method based on what is obscured
CN108256342A (en) Encryption method, device and the decryption method of Shader files, device
WO2013024230A2 (en) Device and method for compressing public keys for a fully homomorphic encryption algorithm
CA2867241C (en) Method for encrypting a plurality of data in a secure set
WO2000072504A1 (en) Private key recovery
EP2940922A1 (en) Symmetric cryptosystems with public key based on the symmetric group
Maulana et al. Analysis of multiple data hiding combined coloured visual cryptography and lsb
EP3821564A1 (en) Security governance of the processing of a digital request
EP1723791A1 (en) Method of securing a scrambled content sent by a broadcaster
FR3079989A1 (en) METHODS, DEVICES AND COMPUTER PROGRAMS FOR DATA ENCRYPTION AND DIFFERENCE FOR DATA TRANSMISSION OR STORAGE

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: CONSTATATION DE LA PERTE D'UN DROIT CONFORMEMENT A LA REGLE 112(1) CBE (OEB FORM 1205A EN DATE DU 18.04.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20757377

Country of ref document: EP

Kind code of ref document: A1