WO2021014081A1 - Procede de stockage securise de donnees et systeme de mise en oeuvre du procede - Google Patents
Procede de stockage securise de donnees et systeme de mise en oeuvre du procede Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013500 data storage Methods 0.000 title description 2
- 238000012795 verification Methods 0.000 claims description 7
- 238000000926 separation method Methods 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 abstract 4
- 238000011084 recovery Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation 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
Procédé de stockage sécurisé d'une donnée source (DS) d'un détenteur (To) avec la participation de tiers (Tj (j=1…m)) ayant chacun une clé pu- blique (Kj) et une clé privée (Kj). Le procédé caractérisé consiste à -obfusquer (Ob) la donnée source (DS) - fractionner (Fr) la donnée obfusquée (Ob (MS)) en miettes (Mi) (i = 1…n) - répartir les miettes (Mi) en groupes Gj (j=…m ou j=0,1…m), chaque miette étant présente dans au moins deux groupes Gj, le nombre de groupes étant égal au nombre de participants, - attribuer un groupe (Gj) à chaque participants (Pj) - crypter (Kj) les miettes (Mi) de chaque groupe (Gj) par le participant attri- butaire du groupe avec sa clé publique (Kj) - regrouper les miettes cryptées (Kj (Mi) → Σ Kj [Gj (Mi)]) - hacher (H) la donnée source (DS) par le détenteur (To) et crypter le hash - composer la donnée transformée comme message (MC) combinant le hash HX (DS) crypté et les miettes cryptées (Kj (Mi)).
Description
PROCEDE DE STOCKAGE SECURISE DE DONNEES ET SYSTEME DE MISE EN ŒUVRE DU PROCEDE
DOMAINE DE L’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é.
ETAT DE LA TECHNIQUE
Il existe de multiples façons de stocker des données après les avoir cryptées.
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.
En outre le code de cryptage/ décryptage est toujours susceptible d’être cassé.
BUT DE L’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.
EXPOSE ET AVANTAGES DE L’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)
procédé caractérisé en ce qu’il comprend les étapes consistant à
-obfusquer (Ob) la donnée source (DS)
- fractionner (M) la donnée obfusquée [Ob (MS)] en miettes (Mi) (i = 0...n)
- attribuer un groupe (Gj) à chaque 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
(j= l ...m)) destinés aux autres 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)
- hacher (H) la donnée source (DS) par le détenteur (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),
- 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.
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.
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.
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.
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.
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).
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.
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
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).
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.
Les clés utilisées dans le réseau Feistel sont des clés du titulaire ce qui augmente d’autant la sécurité.
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 à
- séparer (C) le message combiné MC avec son hash HX (DS) et ses groupes de miettes cryptées å Kj (Gj)
- décrypter (K ) les miettes récupérées par les participants (Pj), avec leur clé privée (Kj) respective
- 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]
- désobfusquer (Ob) cette donnée obfusquée OB (DS) récupérée
- 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.
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é.
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.
- 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.
- 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
-une fonction de concaténation (å) pour regrouper les miettes cryptées et sa fonction inverse å
- une fonction de hachage (H) pour hacher la donnée source (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)
- des paires de clés publique/ privées 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.
BREVE DESCRIPTION DES DESSINS
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 :
[Fig. 1] Schéma de base du procédé de stockage sécurisé
[Fig. 2] Schéma de base du procédé de récupération d’une donnée d’un stockage sécurisé
[Fig. 3] Schéma du système pour la mise en oeuvre du procédé DESCRIPTION D’UN MODE DE REALISATION
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.
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.
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.
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.
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.
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).
De manière avantageuse mais non impérative, le nombre de miettes Mi est égal au nombre de 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.
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.
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.
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.
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.
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).
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.
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.
En parallèle, le détenteur To hache (H) la donnée source (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).
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)
Le message combiné MC peut ensuite être sauvegardé sans risque par un service quelconque puisqu’il est indéchiffrable.
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.
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.
La première étape est celle de l’obfuscation (Ob) qui constitue une pre mière sécurité.
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.
L’obfuscation Ob s’effectue comme suit :
- vérification de la taille de la donnée source DS
- ajout d’un caractère spécial à gauche (« left padding ») si la taille est impaire
- application d’une implémentation du réseau de Feistel :
* pour chaque tour, la donnée est découpée en deux parties égales
* la partie de droite est chiffrée par une clé intermédiaire dans un algo rithme de hachage (SHA-256 en l’occurrence).
* 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
* cette opération est répétée x tours (x étant paramétrable et fixé par exemple à 10).
* la chaîne de caractères ainsi obtenue forme la donnée obfusquée 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.
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.
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.
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).
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))
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.
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.
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.
La miette (Mi) ainsi obtenue dans le groupe Gj sera de longueur iden tique à la longueur avant cryptage.
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.
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.
La génération du hash crypté HX (DS) s’effectue comme suit :
- la donnée source DS est hachée avec un algorithme de hachage utili sant par exemple SHA-256 donnant le 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
- 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).
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 ,
PI ] ...
Ainsi, on a :
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é.
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).
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.
La situation du détenteur To vis-à-vis des tiers Tl ...Tm peut être de même niveau ou être prioritaire.
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.
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.
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.
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.
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.
En résumé, le décryptage effectue les différentes étapes dans le sens in verse :
- extraction du hash crypté HX (DS) et des miettes Mi (i= l ...n) et récu pération du hash décrypté
- 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]
- dé-rembourrage des miettes
- concaténation des miettes désembourrées
- désobfuscation des miettes
- 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.
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.
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.
Ainsi le système S comprend :
-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.
- 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.
- une fonction inverse (M) qui permet, à partir des miettes, de recompo ser la donnée obfusquée.
- 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.
-une fonction de concaténation (å) pour regrouper les miettes cryptées par les tiers Tj avec leur clé publique Kj.
- une fonction de hachage (H) pour hacher la donnée source (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).
- 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
- 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
H (DS) 1 extrait du message combiné MC et du hash H (DS)2 conservé par le du titulaire To.
NOMENCLATURE DES ELEMENTS PRINCIPAUX
DS Donnée source
Ob Fonction“obfusquer”
Ôb Fonction « désobfusquer »
Ob (DS) Donnée source obfusquée
M Fonction « découper en miettes »
M Fonction « recombiner les miettes »
Mi [Ob (DS)] Miette de la donnée source obfusquée
Mi Miette de la donnée source obfusquée (référence sim- plifïée)
Fonction“répartir les miettes en groupes”
Groupe de miettes Mi
Groupe du titulaire contenant la miette Mo Groupe crypté avec la clé publique Kj
Fonction « concaténer les groupes de miettes cryptés » Concaténation des groupes cryptés
Fonction « hacher » (Fonction Hash)
Donnée source DS hachée
KA Fonction « crypter »
KA Fonction « décrypter »
Kj Clé publique du participant Pj
Kj Clé privée du participant Pj
MC Message combiné
To Détenteur de la donnée source
Tj Tiers
Pj Participant au traitement
VF Fonction « vérifier »
Claims
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)
procédé caractérisé en ce qu’il comprend les étapes consistant à
-obfusquer (Ob) la donnée source (DS)
- fractionner (M) la donnée obfusquée [Ob (MS)] en miettes (Mi) (i = o...n)
- attribuer un groupe (Gj) à chaque 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
(j= l ...m)) destinés aux autres 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)
- hacher (H) la donnée source (DS) par le détenteur (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),
- 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.
2. Procédé selon la revendication 1 ,
caractérisé en ce que
on crypte le hash H (DS) avec la miette cryptée (KoGo) par la fonction XOR pour obtenir le hash crypté hX (DS).
3. Procédé selon la revendication 1 ,
caractérisé en ce qu’
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) :
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
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).
4. Procédé selon la revendication 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.
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 à :
- séparer (C) le message combiné MC avec son hash HX(DS) et ses groupes de miettes cryptées å Kj (Gj)
- décrypter (K ) les miettes récupérées par les participants (Pj), avec leur clé privée (Kj) respective
- 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]
- désobfusquer (Ob) cette donnée obfusquée Ob (DS) récupérée
- 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
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,
système comprenant :
-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.
- 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.
- 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
-une fonction de concaténation (å) pour regrouper les miettes cryptées et sa fonction inverse å
- une fonction de hachage (H) pour hacher la donnée source (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)
- des paires de clés publique/ privées 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.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FRFR1908258 | 2019-07-19 | ||
FR1908258A FR3098950B3 (fr) | 2019-07-19 | 2019-07-19 | « Procédé de stockage sécurisé de données et système de mise en œuvre du procédé » |
FR2007516 | 2020-07-17 | ||
FR2007516A FR3098953B1 (fr) | 2019-07-19 | 2020-07-17 | Procédé de stockage sécurisé de données et système de mise en œuvre du procédé |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021014081A1 true WO2021014081A1 (fr) | 2021-01-28 |
Family
ID=72088335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2020/051295 WO2021014081A1 (fr) | 2019-07-19 | 2020-07-17 | Procede de stockage securise de donnees et systeme de mise en oeuvre du procede |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2021014081A1 (fr) |
Citations (3)
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 |
-
2020
- 2020-07-17 WO PCT/FR2020/051295 patent/WO2021014081A1/fr active Application Filing
Patent Citations (3)
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 (fr) | Méthode d'exécution confidentielle d'un programme opérant sur des données chiffrées par un chiffrement homomorphe | |
FR2952778A1 (fr) | Procede de transmission de donnees securise et systeme de chiffrement et de dechiffrement permettant une telle transmission | |
WO2014118257A1 (fr) | Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming | |
FR2789829A1 (fr) | Procede de verification de l'usage de cles publiques engendrees par un systeme embarque | |
FR2881900A1 (fr) | Procede de cryptographie de messages a cle privee, et application a une installation | |
FR2737370A1 (fr) | Procede de communication cryptographique | |
FR3097348A1 (fr) | Protection d’exécution d’algorithmes de chiffrement | |
RU2007148046A (ru) | Процессор шифрования, способ шифрования, процессор дешифрования, способ дешифрования и структура данных | |
EP3928232A1 (fr) | Méthode cryptographique de vérification des données | |
WO2012152607A1 (fr) | Dispositif et procede de generation de cles a securite renforcee pour algorithme de chiffrement pleinement homomorphique | |
EP3300292B1 (fr) | Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés | |
FR2808948A1 (fr) | Systeme et methode pour authentifier de maniere unique chaque reproduction d'un groupe de documents electroniques | |
EP1524795B1 (fr) | Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques | |
WO2021014081A1 (fr) | Procede de stockage securise de donnees et systeme de mise en oeuvre du procede | |
FR2742617A1 (fr) | Procedes de reduction et de mise a disposition de cles de chiffrage, et structure et support de donnees pour leur mise en oeuvre | |
FR3098953A1 (fr) | Procédé de stockage sécurisé de données et système de mise en œuvre du procédé | |
FR3059445A1 (fr) | Procede de chiffrement cherchable | |
CN107070900B (zh) | 基于混淆的可搜索重加密方法 | |
WO2013024230A2 (fr) | Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique | |
CA2867241C (fr) | Procede de cryptage d'une pluralite de donnees en un ensemble securise | |
WO2000072504A1 (fr) | Extraction de cle privee | |
Maulana et al. | Analysis of multiple data hiding combined coloured visual cryptography and lsb | |
CN112910638A (zh) | 一种区块链***密钥的找回方法 | |
Naskar et al. | Ultra secured and authentic key distribution protocol using a novel secret sharing technique | |
EP3821564A1 (fr) | Gouvernance de sécurité du traitement d'une requête numérique |
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 |