EP2951944A1 - Method of xor homomorphic encryption and secure calculation of a hamming distance - Google Patents

Method of xor homomorphic encryption and secure calculation of a hamming distance

Info

Publication number
EP2951944A1
EP2951944A1 EP14701769.3A EP14701769A EP2951944A1 EP 2951944 A1 EP2951944 A1 EP 2951944A1 EP 14701769 A EP14701769 A EP 14701769A EP 2951944 A1 EP2951944 A1 EP 2951944A1
Authority
EP
European Patent Office
Prior art keywords
data
indexed
elements
individual
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP14701769.3A
Other languages
German (de)
French (fr)
Inventor
Alain PATEY
Hervé Chabanne
Gérard Cohen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia Identity and Security France SAS
Institut Mines Telecom IMT
Original Assignee
Telecom ParisTech
Institut Mines Telecom IMT
Morpho SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telecom ParisTech, Institut Mines Telecom IMT, Morpho SA filed Critical Telecom ParisTech
Publication of EP2951944A1 publication Critical patent/EP2951944A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina

Definitions

  • the data of the individual or of the object, acquired by the control server is compared with the set of data of the database in order to identify whether at least one datum of the database corresponds to the datum acquired, and thus identify the individual or object as an individual or an object listed in the database.
  • the generation of the public key and the private key includes:
  • the invention also proposes a method for decrypting an encrypted data obtained by applying to a binary data item the encryption method described above, the decryption method comprising:
  • k 0 for ⁇ k.
  • This type of coding makes it possible to ensure that even a partial knowledge of the encoded data B does not make it possible to obtain the decoded data A.
  • the encrypted data b obtained thus comprises m bits.
  • the sum of the bits of b indexed by the elements of S j for each j between 1 and I is calculated, which corresponds to a bit y j of the encoded data y.

Abstract

The invention concerns a method for encrypting a binary data item characterised in that it comprises the steps consisting of: - generating a public key and a private key, the public key being a sparse matrix comprising m rows and n columns, m being greater than the number I of bits of the binary data item, I being an integer strictly greater than 1, and the private key being a set of I indexed sets of integers between 1 and m such that for each set, the sum of the elements of the rows of the sparse matrix indexed by the elements of a set is zero, and - generating a binary sequence b comprising m bits, such that b=Mx+e+y in which o x is a random binary vector, o e is a random binary noise vector, and o y is a linear encoding of data item c. The invention also concerns a method for calculating a Hamming distance on data encrypted by the method of encryption.

Description

PROCEDE DE CHIFFREMENT HOMOMORPHE POUR LE OU EXCLUSIF ET CALCUL SECURISE D'UNE DISTANCE DE HAMMING  HOMOMORPHIC ENCRYPTION METHOD FOR EXCLUSIVE OR SECURE CALCULATION OF A HAMMING DISTANCE
DOMAINE DE L'INVENTION FIELD OF THE INVENTION
L'invention concerne de manière générale des procédés de chiffrement de données binaires, et leur application pour le calcul sécurisé de distances de Hamming entre deux données.  The invention generally relates to methods for encrypting binary data, and their application for the secure calculation of Hamming distances between two data.
L'invention trouve des applications notamment dans le domaine de l'identification ou de l'authentification biométrique. ETAT DE LA TECHNIQUE  The invention finds applications in particular in the field of identification or biometric authentication. STATE OF THE ART
De nombreuses techniques d'identification ou d'authentification biométrique sont déjà connues. Généralement, elles sont mises en œuvre conjointement par un serveur de contrôle d'un individu ou d'un objet, qui peut procéder à l'acquisition d'une donnée biométrique sur un individu ou d'un objet, et par un serveur de gestion d'une base comprenant N données biométriques de même nature.  Many techniques of identification or biometric authentication are already known. Generally, they are implemented jointly by a control server of an individual or an object, which can proceed to the acquisition of a biometric data on an individual or an object, and by a management server a base comprising N biometric data of the same nature.
La donnée de l'individu ou de l'objet, acquise par le serveur de contrôle, est comparée à l'ensemble des données de la base afin d'identifier si au moins une donnée de la base correspond à la donnée acquise, et ainsi identifier l'individu ou l'objet comme un individu ou un objet répertorié dans la base.  The data of the individual or of the object, acquired by the control server, is compared with the set of data of the database in order to identify whether at least one datum of the database corresponds to the datum acquired, and thus identify the individual or object as an individual or an object listed in the database.
Pour ce faire, il est courant de calculer la distance de Hamming entre la donnée de l'individu et une ou plusieurs données de la base, c'est-à-dire le nombre de bits différents d'une donnée à l'autre. Ce nombre peut classiquement être calculé en réalisant l'opération « OU exclusif » (connu en anglais sous l'acronyme XOR pour « exclusive OR ») entre les deux données, puis en comptant le poids de Hamming, c'est-à-dire le nombre de bits à 1 du résultat obtenu.  To do this, it is common to calculate the Hamming distance between the data of the individual and one or more data of the base, that is to say the number of bits different from one data to another. This number can conventionally be calculated by carrying out the operation "exclusive OR" (known in English under the acronym XOR for "exclusive OR") between the two data, then counting the weight of Hamming, that is to say the number of bits at 1 of the result obtained.
Une problématique majeure dans ce contexte est d'assurer la confidentialité des données utilisées. En effet, la base de données comporte des informations privées auxquelles le serveur de contrôle ne doit pas pouvoir accéder, et inversement le serveur de gestion ne doit pas obtenir d'informations sur l'individu, et notamment ne doit pas avoir accès la donnée biométrique qui est exploitée.  A major problem in this context is to ensure the confidentiality of the data used. Indeed, the database includes private information to which the control server must not be able to access, and vice versa the management server must not obtain information on the individual, and in particular must not have access to the biometric data. which is exploited.
Pour répondre à cette problématique, des techniques de calcul sécurisé ont été développées, qui permettent à des serveurs de réaliser des calculs sur des données chiffrées, de manière à obtenir le résultat des calculs sans déchiffrer les données ou y avoir accès. To address this issue, secure computing techniques have been developed that allow servers to perform calculations on encrypted data, so as to obtain the result of the calculations without decrypting the data or having access thereto.
Notamment, une technique de chiffrement de données et de calcul sécurisé sur les données chiffrées par cette technique a été développée pour réaliser l'opération « OU exclusif » entre deux données.  In particular, a technique of data encryption and secure computing on the data encrypted by this technique has been developed to perform the operation "exclusive OR" between two data.
Cette technique est décrite dans la publication de S. Goldwasser et S. Micali, Probabilistic encryption and how to play mental poker keeping secret ail partial information, in H.R. Lewis, B.B Simons, W.A. Burkhard, L.H. Landweber (eds.) STOC, pp. 365-377. ACM (1982).  This technique is described in the publication of S. Goldwasser and S. Micali, Probabilistic encryption and how to play mental poker keeping secret biased information, in H.R. Lewis, BS Simons B., W. A. Burkhard, L. H. Landweber (eds.) STOC, pp. 365-377. ACM (1982).
L'inconvénient principal de cette méthode est qu'elle ne permet que de chiffrer les données bit à bit, ce qui allonge considérablement le temps de calcul nécessaire à sa mise en œuvre.  The main disadvantage of this method is that it only allows to encrypt the data bit by bit, which considerably increases the calculation time required for its implementation.
Il existe donc un besoin pour le développement d'une méthode de chiffrement de données permettant le calcul sécurisé d'une distance de Hamming plus rapide.  There is therefore a need for the development of a data encryption method for the secure calculation of a faster Hamming distance.
PRESENTATION DE L'INVENTION PRESENTATION OF THE INVENTION
L'invention a pour but de pallier les insuffisances de l'art antérieur, en proposant un procédé de chiffrement de données et de calcul sécurisé de distance de Hamming sur des données entières, et non plus bit à bit.  The object of the invention is to overcome the shortcomings of the prior art, by proposing a method of data encryption and secure calculation of Hamming distance on integer data, and no longer bit by bit.
Un autre but de l'invention est de proposer un procédé d'identification ou d'authentification sécurisé d'un individu. A cet égard, l'invention a pour objet un procédé de chiffrement d'une donnée binaire caractérisé en ce qu'il comprend les étapes consistant à : Another object of the invention is to propose a method of identification or secure authentication of an individual. In this regard, the subject of the invention is a method for encrypting a binary data item, characterized in that it comprises the steps of:
générer une clé publique et une clé privée, la clé publique étant une matrice creuse comprenant m lignes et n colonnes, m étant supérieur au nombre I de bits de la donnée binaire, I étant un entier strictement supérieur à 1 , et la clé privée étant un ensemble de I ensembles indexés d'entiers compris entre 1 et m tels que pour chaque ensemble, la somme des éléments des lignes de la matrice creuse indexées par les éléments d'un ensemble est nulle, et  generating a public key and a private key, the public key being a hollow matrix comprising m rows and n columns, m being greater than the number I of bits of the binary data item, I being an integer strictly greater than 1, and the private key being a set of I indexed sets of integers between 1 and m such that for each set, the sum of the elements of the rows of the hollow matrix indexed by the elements of a set is zero, and
générer une séquence binaire b comprenant m bits, telle que b=Mx+e+y où x est un vecteur binaire aléatoire, generating a bit sequence b comprising m bits, such that b = Mx + e + y where x is a random binary vector,
e est un vecteur de bruit binaire aléatoire, et  e is a random binary noise vector, and
y est un encodage linéaire de la donnée c.  y is a linear encoding of the data c.
Avantageusement, mais facultativement, le procédé de chiffrement selon l'invention peut en outre comprendre au moins l'une des caractéristiques suivantes : les éléments du vecteur e de bruit aléatoire sont des variables de Bernoulli. l'encodage y de la donnée c est configuré pour qu'une connaissance partielle de la donnée codée y ne soit pas décodable. Advantageously, but optionally, the encryption method according to the invention may further comprise at least one of the following characteristics: the elements of the random noise vector e are Bernoulli variables. the encoding y of the data c is configured so that a partial knowledge of the coded data y is not decodable.
l'encodage y de la donnée c est un encodage linéaire par classes latérales, c'est-à-dire que y est un élément sélectionné au hasard parmi les éléments vérifiant la relation H'y=c, où H est une matrice de contrôle d'un code linéaire.  the encoding y of the data c is a linear encoding by lateral classes, that is to say that y is a randomly selected element among the elements satisfying the relation H'y = c, where H is a control matrix a linear code.
la génération de la clé publique et de la clé privée comprend :  the generation of the public key and the private key includes:
o la génération de I matrices indexées de q lignes et n colonnes, où q est strictement inférieur à m, les lignes de chaque matrice comprenant chacune trois 1 et les colonnes de chaque matrice comprenant chacune zéro ou deux 1 ,  the generation of indexed matrices of q rows and n columns, where q is strictly less than m, the rows of each matrix each comprising three 1 and the columns of each matrix each comprising zero or two 1,
o la génération d'une matrice creuse M comprenant m lignes et n colonnes,  o the generation of a hollow matrix M comprising m rows and n columns,
o la génération aléatoire de I ensembles indexés d'entiers compris entre 1 et m tels que chaque ensemble comprend q éléments dont son index et tels que deux ensembles distincts ne comprennent aucun élément commun, et  o the random generation of I indexed sets of integers between 1 and m such that each set comprises q elements whose index and such that two distinct sets do not comprise any common element, and
o pour chaque ensemble indexé, le remplacement des lignes de la matrice creuse M indexées par les éléments de l'ensemble, par les lignes de la matrice indexée correspondante,  o for each indexed set, the replacement of the rows of the hollow matrix M indexed by the elements of the set, by the rows of the corresponding indexed matrix,
la génération de la clé publique et de la clé privée comprend :  the generation of the public key and the private key includes:
o la génération de I matrices d-creuses indexées Hj, où d est un entier pair supérieur à 3, comprenant chacune q lignes et q/3 colonnes, où q est strictement inférieur à m, chaque ligne d'une matrice comprenant d 1 , the generation of indexed hollow matrices H j , where d is an even integer greater than 3, each comprising q rows and q / 3 columns, where q is strictly less than m, each row of a matrix comprising d 1 ,
o la génération d'une matrice d-creuse M comprenant m lignes et n colonnes, o la génération aléatoire de I premiers ensembles indexés Uj, j compris entre 1 et I, d'entiers compris entre 1+1 et m tels que : the generation of a hollow matrix M comprising m rows and n columns, o the random generation of I first indexed sets U j , j between 1 and I, of integers between 1 + 1 and m such that:
chaque ensemble comprend q éléments, et each set includes q elements, and
deux ensembles distincts ne comprennent aucun élément commun, two distinct sets do not include any common elements,
o la génération aléatoire de I seconds ensembles Tj, j compris entre 1 et I, d'entiers compris entre 1 et n, tels que chaque ensemble Tj comprend q/3 éléments, o the random generation of I second sets T j , j between 1 and I, of integers between 1 and n, such that each set T j comprises q / 3 elements,
o pour tout j compris entre 1 et I,  o for all j between 1 and I,
■ le remplacement des éléments de M tel que :  ■ the replacement of the elements of M such that:
" MUkit = Hj k q pour tout uk e Uj, tq e 7}, et "M Ukit = H jkq for all u k e Uj, t q e 7}, and
la permutation de la jeme ligne de M avec une ligne de M indexée par un élément de Uj qui est la somme des lignes de M indexées par les éléments d'un sous-ensemble Wj de Uj, o la clé publique obtenue étant la matrice creuse M et la clé privée étant l'ensemble, pour j compris entre 1 et I, des unions des ensembles Wj avec le singleton j. L'invention propose également un procédé de déchiffrement d'une donnée chiffrée obtenue par l'application à une donnée binaire du procédé de chiffrement décrit précédemment, le procédé de déchiffrement comprenant : the switching of the j th row of M with a line M indexed by a U j element which is the sum of the rows of M are indexed by the elements of a subset W j U j, o the public key obtained being the hollow matrix M and the private key being the set, for j between 1 and I, union of sets W j with the singleton j. The invention also proposes a method for decrypting an encrypted data obtained by applying to a binary data item the encryption method described above, the decryption method comprising:
pour chaque ensemble d'entiers indexés Sj, la sommation binaire des bits de la donnée chiffrée indexés par les éléments de Sj, chaque bit obtenu correspondant au bit indexé par j de la donnée binaire encodée, et l'ensemble des bits indexés obtenus formant la donnée binaire encodée, et le décodage de la donnée obtenue, la donnée décodée formant la donnée binaire déchiffrée. for each set of indexed integers S j , the binary summation of the bits of the encrypted data indexed by the elements of S j , each bit obtained corresponding to the bit indexed by j of the encoded binary data, and the set of indexed bits obtained forming the encoded binary data, and decoding the data obtained, the decoded data forming the decrypted binary data.
Une application proposée par l'invention est un procédé de calcul sécurisé de l'opération « ou exclusif » entre deux données binaires chiffrées par la mise en œuvre du procédé de chiffrement décrit ci-avant, comprenant les étapes consistant déterminer, à partir des données chiffrées, une séquence de bits correspondant au chiffrement, par ledit procédé de chiffrement, du résultat de l'opération « ou exclusif » entre les deux données binaires, et déchiffrer la séquence de bits obtenue par la mise en œuvre du procédé de déchiffrement. An application proposed by the invention is a method of secure calculation of the operation "or exclusive" between two binary data encrypted by the implementation of the encryption method described above, comprising the steps of determining, from the encrypted data, a sequence of bits corresponding to the encryption, by said encryption method, of the result of the "exclusive" operation between the two binary data, and deciphering the bit sequence obtained by the implementation the decryption method.
Une autre application proposée par l'invention est un procédé de calcul sécurisé d'une distance de Hamming entre deux données binaires chiffrées par la mise en œuvre du procédé de chiffrement décrit ci-avant, le procédé comprenant les étapes consistant à : Another application proposed by the invention is a method of secure calculation of a Hamming distance between two binary data encrypted by the implementation of the encryption method described above, the method comprising the steps of:
a) déterminer, à partir des données chiffrées, le résultat correspondant au chiffrement par le procédé de chiffrement, du résultat de l'opération « ou exclusif » entre les deux données non chiffrées,  a) determining, from the encrypted data, the result corresponding to the encryption by the encryption method, of the result of the operation "or exclusive" between the two unencrypted data,
b) appliquer une permutation σ aux I premiers bits du résultat obtenu à l'étape a), et  b) applying a permutation σ to the first I bits of the result obtained in step a), and
c) déchiffrer la séquence de bits obtenue à l'étape b), et déterminer le poids de Hamming de la donnée obtenue.  c) deciphering the bit sequence obtained in step b), and determining the Hamming weight of the data obtained.
Avantageusement, mais facultativement, le procédé de calcul sécurisé d'une distance de Hamming proposé par l'invention peut en outre comprendre au moins l'une des caractéristiques suivantes : Advantageously, but optionally, the method of secure calculation of a Hamming distance proposed by the invention may further comprise at least one of the following characteristics:
- le procédé est mis en œuvre conjointement par deux unités de traitement détenant chacune une des deux données binaires et une clé publique, une unité de traitement détenant en outre la clé secrète associée, et dans lequel :  the method is implemented jointly by two processing units each holding one of the two binary data and a public key, a processing unit also holding the associated secret key, and in which:
o chaque unité de traitement chiffre la donnée qu'elle détient à partir de la clé publique, l'unité détenant la clé secrète transmettant sa donnée chiffrée à la seconde unité,  each processing unit encrypts the data it holds from the public key, the unit holding the secret key transmitting its encrypted data to the second unit,
o la seconde unité met en œuvre les étapes a) et b) et transfère le résultat à la première unité, et  o the second unit implements steps a) and b) and transfers the result to the first unit, and
o la première unité met en œuvre l'étape c).  o the first unit implements step c).
le procédé est mis en œuvre conjointement par une unité-serveur détenant les deux données chiffrées et la clé publique, et une unité-client détenant la clé publique et la clé privée associée, et dans lequel : o Γ unité-serveur met en œuvre les étapes a) et b) et transfère le résultat à l'unité client, et the method is implemented jointly by a server unit holding the two encrypted data and the public key, and a client unit holding the public key and the associated private key, and wherein: o Γ server-unit implements steps a) and b) and transfers the result to the client unit, and
o l'unité-client met en œuvre l'étape c). L'invention propose encore un procédé d'authentification ou d'identification d'un individu, comprenant la comparaison d'une donnée binaire acquise sur l'individu à une ou plusieurs données binaire de référence acquises sur des individus répertoriés, chaque comparaison comprenant le calcul de la distance de Hamming entre la donnée de l'individu et une donnée de la base, ledit calcul étant réalisé par la mise en œuvre du procédé de calcul sécurisé d'une distance de Hamming décrit ci-avant..  o the client unit implements step c). The invention also proposes a method for authenticating or identifying an individual, comprising comparing a binary data item acquired on the individual with one or more reference binary data acquired on listed individuals, each comparison comprising the calculating the Hamming distance between the data of the individual and a datum of the database, said calculation being carried out by implementing the method of secure calculation of a Hamming distance described above.
Avantageusement, mais facultativement, dans le procédé d'authentification ou d'identification d'un individu, la donnée de l'individu et la ou les données de la base sont des données biométriques obtenues par encodage d'un même trait biométrique sur l'individu et le ou les individus répertoriés. Advantageously, but optionally, in the method of authentication or identification of an individual, the data of the individual and the data or data of the database are biometric data obtained by encoding the same biometric trait on the individual and the individual (s) listed.
L'invention propose enfin un système d'identification ou d'authentification d'un individu, comportant au moins un serveur de contrôle d'un individu à identifier ou authentifier, et au moins un serveur de gestion d'une base de données de référence d'individus répertoriés, le serveur de contrôle étant adapté pour procéder à l'acquisition d'une donnée binaire biométrique d'un individu, le serveur de contrôle et le serveur de gestion étant adaptés pour : The invention finally proposes a system for identifying or authenticating an individual, comprising at least one control server of an individual to identify or authenticate, and at least one management server of a reference database. of listed individuals, the control server being adapted to carry out the acquisition of a biometric binary data of an individual, the control server and the management server being adapted to:
calculer au moins une distance de Hamming entre la donnée de l'individu et au moins une donnée de la base, par la mise en œuvre du procédé de calcul sécurisé de distance de Hamming décrit ci-avant, et  calculating at least one Hamming distance between the data of the individual and at least one datum of the database, by implementing the Hamming distance secure calculation method described above, and
déterminer, à partir de la ou des distances de Hamming calculées, une ou plusieurs données de la base présentant des similarités avec la donnée de l'individu excédant un seuil prédéterminé.  determining, from the calculated Hamming distance (s), one or more data of the base having similarities with the data of the individual exceeding a predetermined threshold.
DESCRIPTION DES FIGURES DESCRIPTION OF THE FIGURES
D'autres caractéristiques, buts et avantages de la présente invention apparaîtront à la lecture de la description détaillée qui va suivre, au regard des figures annexées, données à titre d'exemples non limitatifs et sur lesquelles : La figure 1 représente les principales étapes mises en œuvre pour le chiffrement et le déchiffrement de données, Other features, objects and advantages of the present invention will appear on reading the detailed description which follows, with reference to the appended figures, given by way of non-limiting examples and in which: FIG. 1 represents the main steps implemented for encryption and decryption of data,
La figure 2 représente les principales étapes mises en œuvre pour le calcul sécurisé d'une distance de Hamming,  FIG. 2 represents the main steps implemented for the secure calculation of a Hamming distance,
Les figures 3a et 3b représentent deux variantes de réalisation du calcul d'une distance de Hamming entre deux données.  Figures 3a and 3b show two alternative embodiments of the calculation of a Hamming distance between two data.
DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE MISE EN ŒUVRE DE L'INVENTION DETAILED DESCRIPTION OF AT LEAST ONE MODE OF IMPLEMENTING THE INVENTION
Contexte et formalisme  Background and formalism
Dans toute la suite, les opérations sont réalisées sur des données binaires, c'est-à-dire que les calculs doivent être réalisés en numération en base 2. Ainsi notamment, la nullité d'une valeur correspond à la nullité en base 2 de ladite valeur, c'est-à-dire que la valeur doit être congrue à 0 modulo 2.  In all the following, the operations are carried out on binary data, that is to say that the calculations must be made in base 2 count. Thus, in particular, the nullity of a value corresponds to the nullity in base 2 of said value, i.e. the value must be congruent to 0 modulo 2.
On note également pour la suite la définition suivante : une matrice d-creuse, où d est un entier, est une matrice comprenant, sur chaque ligne, d éléments non- nuls, le reste de la matrice ne comprenant que des 0.  Note also for the following definition: a matrix d-hollow, where d is an integer, is a matrix comprising, on each line, non-zero elements, the rest of the matrix comprising only 0.
De plus, on introduit la fonction de chiffrement homomorphe pour une opération ° si, avec deux données chiffrées Ci et c2 obtenues par ledit chiffrement respectivement de données m-i et m2, il est possible de déterminer le chiffré c3 d'une donnée m3=m1 °m2 en connaissant uniquement la clé publique (et pas la clé secrète) du chiffrement employé. In addition, the homomorphic encryption function is introduced for an operation o if, with two encrypted data Ci and c 2 obtained by said encryption respectively of data mi and m 2 , it is possible to determine the cipher c 3 of a data m 3 = m 1 ° m2 by knowing only the public key (and not the secret key) of the encryption used.
Procédé de chiffrement et de déchiffrement de données Method of encrypting and decrypting data
En référence à la figure 1 , on a représenté les principales étapes d'un procédé de chiffrement 1000 et de déchiffrement 2000 de données binaires comprenant chacune I bits, I étant strictement supérieur à 1.  Referring to Figure 1, there is shown the main steps of a method of encryption 1000 and decryption 2000 binary data each comprising I bits, I being strictly greater than 1.
Le procédé de chiffrement est un procédé de chiffrement asymétrique, reposant sur l'utilisation d'une clé publique pk accessible à tous et permettant le chiffrement de données, et d'une clé secrète sk accessible seulement au destinataire des données, et nécessaire pour réaliser le déchiffrement des données. The encryption method is an asymmetric encryption method, based on the use of a public key p k accessible to all and allowing the encryption of data, and a secret key s k accessible only to the recipient of the data, and necessary to achieve the decryption of the data.
Le procédé comporte donc une première étape 100 de génération d'une clé publique pk et d'une clé secrète sk. La clé publique pk est une matrice d-creuse M e {0,l)mxn, c'est-à-dire que la matrice comprend m lignes et n colonnes, m et n étant des entiers, et qu'elle comprend sur chaque ligne d éléments égaux à 1 , le reste de la matrice ne comprenant que des 0. d est donc inférieur à n. The method therefore comprises a first step 100 of generating a public key p k and a secret key s k . The public key p k is a hollow matrix M e {0, l) mxn , that is to say that the matrix comprises m rows and n columns, m and n being integers, and that it comprises on each line of elements equal to 1, the remainder of the matrix including only 0. d is therefore less than n.
La clé secrète sk est un ensemble de I ensembles indexés (Sj)j= 1 . c, tels que pour tout j compris entre 1 et \, j e Sj et∑i£S] Mi = 0, où M, est la ième ligne de M. The secret key s k is a set of I indexed sets (Sj) j = 1 . c , such that for all j between 1 and \, I Sj etΣ i £ S] Mi = 0, where M, is the ith line of M.
La génération de la clé publique et de la clé secrète peut être mise en œuvre de différentes manières, dont deux modes de mise en œuvre préférentiels sont décrits ci-après.  The generation of the public key and the secret key can be implemented in different ways, of which two preferential modes of implementation are described below.
Selon un premier mode de mise en œuvre, cette étape 100 comprend la génération 1 10 de I matrices indexées Hj choisies uniformément parmi les matrices comprenant q lignes et n colonnes, et où chaque ligne de la matrice contient exactement trois 1 et chaque colonne contient zéro ou deux 1 . According to a first mode of implementation, this step 100 comprises the generation of indexed matrices H j chosen uniformly among the matrices comprising q rows and n columns, and where each row of the matrix contains exactly three 1s and each column contains zero or two 1.
Au cours d'une étape 120, on génère une matrice M 3-creuse comprenant m lignes et n colonnes, m étant supérieur à q, les lignes de M étant choisies suivant une loi de distribution uniforme.  During a step 120, a matrix M 3-hollow is generated comprising m rows and n columns, m being greater than q, the lines of M being chosen according to a uniform distribution law.
Au cours d'une étape 130, on génère de façon aléatoire I ensembles indexés Sj, j compris entre 1 et I, comprenant chacun q éléments entiers compris entre 1 et m, et tels que pour tout j, e Sj et Sj n Sk = 0 pour ≠ k. During a step 130, indexed sets S j , j between 1 and I, each comprising q integer elements between 1 and m, and such that for all j, e Sj and Sj n S are randomly generated. k = 0 for ≠ k.
Puis, au cours d'une étape 140, on remplace, pour tout j compris entre 1 et I, les lignes de M indexées par les éléments de Sj par les lignes de Hj. Then, during a step 140, for all j between 1 and I, the lines of M indexed by the elements of S j are replaced by the lines of H j .
La clé publique pk est donc M, et la clé privée sk est l'ensemble des Sj The public key p k is M, and the private key sk is the set of S j
¾eii,.,0-¾eii,., 0-
On obtient bien par ce procédé les caractéristiques de la clé publique et de la clé secrète décrites ci-avant, et notamment le fait que chaque somme des lignes de la matrice M indexées par les éléments d'un Sj est nulle. By this method, the characteristics of the public key and the secret key described above are obtained, and in particular the fact that each sum of the rows of the matrix M indexed by the elements of a S j is zero.
En effet, pour chaque j, on remplace q lignes de M par les q lignes de la matrice Hj correspondante. Or, chaque colonne de Hj ne comprend que 0 ou 2 éléments égaux à 1 . La sommation de ces lignes est donc nulle (c'est-à-dire congrue à 0 modulo 2). Indeed, for each j, q lines of M are replaced by the q lines of the corresponding matrix H j . However, each column of H j comprises only 0 or 2 elements equal to 1. The summation of these lines is therefore zero (that is to say congruent to 0 modulo 2).
Alternativement, l'étape 100 de génération de la clé publique pk et de la clé privée sk comprend la génération, au cours d'une étape 1 10', de I matrices d- creuses indexées Hj, j compris entre 1 et I, d étant un entier pair supérieur à 3, et les éléments desdites matrices étant choisis selon une loi de distribution uniforme, comprenant chacune q lignes et q/3 colonnes, où q est strictement inférieur à m. Alternatively, the step 100 of generating the public key p k and the private key s k comprises the generation, during a step 1 10 ', of I matrices d- indexed hollow H j , j between 1 and I, d being an even integer greater than 3, and the elements of said matrices being chosen according to a uniform distribution law, each comprising q lines and q / 3 columns, where q is strictly lower to m.
Au cours d'une étape 120', on génère une matrice d-creuse M comprenant m lignes et n colonnes.  During a step 120 ', a d-hollow matrix M is generated comprising m rows and n columns.
Au cours d'une étape 130', on génère de façon aléatoire I premiers ensembles indexés Uj c {Z + 1, ... , m), j compris entre 1 et I, comprenant chacun q éléments, et tels que deux ensembles distincts Uj et Uk ne comprennent aucun élément commun : Uj Uk = 0. During a step 130 ', I randomly generates I indexed first sets Uj c {Z + 1, ..., m), j between 1 and I, each comprising q elements, and such that two distinct sets U j and U k do not include any common element: Uj U k = 0.
Au cours d'une étape 140', on génère de façon aléatoire I seconds ensembles Tj, j compris entre 1 et I, d'entiers compris entre 1 et n, tels que chaque ensemble Tj comprend q/3 éléments. During a step 140 ', I randomly generates I second sets T j , j between 1 and I, integers between 1 and n, such that each set T j comprises q / 3 elements.
Puis, au cours d'une étape 150', on remplace des éléments de M par des éléments de chaque matrice Hj, j compris entre 1 et I, de la façon suivante : MUk q = Hjk q pour tout uk e Uj, tq e Tj, et MUk q = 0 si tq ί Tj . Then, during a step 150 ', elements of M are replaced by elements of each matrix H j , j between 1 and I, as follows: M Uk q = Hj kq for all u k e Uj , t q e Tj, and M Uk q = 0 if tq ί Tj.
Au cours d'une étape 160', on identifie une ligne j, de M indexée par un élément de Uj qui est la somme des lignes de M indexées par les éléments d'un sous-ensemble Wj de Uj, et on permute cette ligne avec la jeme ligne de M. Cette ligne existe compte-tenu des propriétés des matrices et des ensembles générés au cours des étapes précédentes. During a step 160 ', we identify a line j, of M indexed by an element of U j which is the sum of the lines of M indexed by the elements of a subset W j of U j , and we switches that line with the j th line of M. this line is in view of the properties of matrices and sets generated in previous steps.
La clé publique pk obtenue est la matrice M et la clé privée sk est The public key p k obtained is the matrix M and the private key s k is
Le fait que la somme des lignes de M indexées par les éléments des Sj soit nulle provient du fait que la jeme ligne de M est égale à la somme des lignes de Wj et que les additions sont réalisées en binaire. The fact that the sum of the rows of M are indexed by the elements of Sj is zero due to the fact that the j th row of M is equal to the sum of the line W j and the additions are made binary.
Suite à l'étape 100 de génération de la clé publique et de la clé privée, le procédé de chiffrement comprend l'encodage 200 de la donnée binaire c pour obtenir une donnée encodée y. Following step 100 of generating the public key and the private key, the encryption method includes the encoding 200 of the binary data c to obtain an encoded data y.
L'encodage est réalisé au moyen d'un codage linéaire permettant avantageusement de résoudre le problème dit du « wire-tap channel » (pouvant être traduit par « canal à jarretière »), exposé, présenté dans l'article Wyner, A.D. : The wire-tap channel, The Bell System Technical Journal 54(8), 1355-1387. Le problème exposé dans cet article est de proposer un codage linéaire qui permette d'encoder une donnée A, pour obtenir une donnée encodée B telle que, si B parvient à un destinataire via une ligne d'écoute non-bruitée, c'est-à-dire que B parvient à son destinataire sans avoir subi de modifications, le destinataire peut la décoder pour obtenir la donnée A. The encoding is performed by means of a linear coding which advantageously makes it possible to solve the so-called "wire-tap channel" problem, which is described in the article Wyner, AD: The wire-tap channel, The Bell System Technical Journal 54 (8), 1355-1387. The problem presented in this article is to propose a linear coding that allows to encode a data item A, to obtain an encoded data item B such that, if B reaches a recipient via a non-noisy listening line, that is that is to say that B reaches its destination without having undergone modifications, the recipient can decode it to obtain the data A.
En revanche, si B parvient à son destinataire via une ligne d'écoute bruitée, c'est-à-dire que le tiers ne dispose que d'une donnée B partielle, ce qui est typiquement le cas d'une attaque par un tiers, il est impossible de la décoder pour obtenir la donnée A.  On the other hand, if B reaches his addressee via a noisy line of listening, that is to say that the third party has only partial data B, which is typically the case of an attack by a third party , it is impossible to decode it to obtain the data A.
Ce type de codage permet d'assurer que même une connaissance partielle de la donnée encodée B ne permet pas d'obtenir la donnée décodée A.  This type of coding makes it possible to ensure that even a partial knowledge of the encoded data B does not make it possible to obtain the decoded data A.
Un codage vérifiant ces propriétés est par exemple le codage du type dit « par classes latérales » (appelé en anglais « coset coding »), également présenté dans l'article.  An encoding verifying these properties is for example the coding of the type called "by side classes" (called "coset coding"), also presented in the article.
De retour au procédé de chiffrement, l'étape d'encodage 200 de la donnée binaire c est avantageusement réalisée au moyen d'un codage linéaire du type par classes latérales.  Returning to the encryption method, the encoding step 200 of the binary data item c is advantageously performed by means of a linear coding of the type by lateral classes.
Ce type d'encodage exploite un code linéaire C de paramètres [n,k,d] avec une matrice de contrôle H de dimensions (n-k)*k. This type of encoding uses a linear code C of parameters [n, k, d] with a control matrix H of dimensions (nk) * k.
L'encodage d'une donnée m est une donnée x telle que H'x=m. Pour décoder la donnée encodée x, on réalise l'opération m=H'x.  The encoding of a given m is a datum x such that H'x = m. To decode the encoded data x, the operation m = H'x is carried out.
Dans le cas du procédé de chiffrement décrit en référence à la figure 1 , y est un vecteur de {0,1)' sélectionné aléatoirement parmi l'ensemble des vecteurs vérifiant H. y = c, où c est la donnée binaire à chiffrer, et H est une matrice de contrôle de dimension r*l du code linéaire sur lequel est basé le codage par classes latérales. In the case of the encryption method described with reference to FIG. 1, y is a vector of {0,1) 'randomly selected from among the set of vectors satisfying H. y = c, where c is the binary data item to be encrypted, and H is a dimension control matrix r * 1 of the linear code on which the lateral class coding is based.
Au cours d'une étape 300, on génère une donnée chiffrée b telle que b = M. x + e + (y1( ... , y;, 0, ... ,0), où M est la matrice publique, c'est-à-dire la matrice creuse obtenue à l'étape 100, x est un vecteur en colonne binaire généré aléatoirement, de taille n, e est un vecteur en ligne de bruit binaire généré aléatoirement, de taille m, et les I premiers bits du terme (y1( ... , y;, 0, ... ,0) sont les éléments de l'encodage y de la donnée c, et les m-l derniers bits sont des 0. Avantageusement, les éléments du vecteur de bruit e sont des variables de Bernoulli, c'est-à-dire qu'ils suivent une loi de Bernoulli de paramètre ε : les éléments de e présentent donc la valeur 1 avec une probabilité ε. On note e -During a step 300, an encrypted data item b is generated such that b = M. x + e + (y 1 ( ..., y ;, 0, ..., 0), where M is the public matrix i.e., the hollow matrix obtained in step 100, x is a randomly generated binary column vector of size n, e is a randomly generated binary noise line vector of size m, and I first bits of the term (y 1 ( ..., y ;, 0, ..., 0) are the elements of the encoding y of the data c, and the last ml bits are 0. Advantageously, the elements of the noise vector e are Bernoulli variables, that is to say that they follow a Bernoulli law of parameter ε: the elements of e thus have the value 1 with a probability ε. We note e -
RBer™. R Ber ™.
De préférence, ε est une valeur très faible, de l'ordre de n~0-2 .Le rôle de ce vecteur de bruit est de rendre difficile la recherche de y à partir de b. Preferably, ε is a very small value of the order of n ~ 0-2 .The role of this noise vector is to make it difficult to find it from b.
Le procédé de chiffrement mis en œuvre présente un niveau de sécurité élevé, notamment grâce à l'encodage de la donnée c par un codage vérifiant les propriétés du « wire-tap channel ».  The encryption method implemented has a high level of security, notably thanks to the encoding of the data c by a coding checking the properties of the "wire-tap channel".
En effet, comme indiqué précédemment, ce codage permet qu'un tiers qui obtiendrait une connaissance partielle de la donnée encodée y ne parviendrait pas à la décoder.  Indeed, as indicated above, this coding allows a third party who would obtain a partial knowledge of the encoded data y would not be able to decode it.
En l'espèce, un tiers qui obtiendrait la donnée chiffrée b ne pourrait donc pas parvenir à la déchiffrer car, même s'il obtient des informations partielles sur y, celles-ci ne lui donnent aucune information sur la donnée c. La donnée chiffrée b obtenue comprend donc m bits.  In this case, a third party who obtains the numerical data b can not therefore be able to decipher it because, even if it obtains partial information about y, it does not give it any information on the data c. The encrypted data b obtained thus comprises m bits.
On va maintenant décrire le déchiffrement 2000 d'une donnée b, comprenant m bits, obtenue par la mise en œuvre du procédé décrit ci-avant. Pour ce faire, il est nécessaire de disposer de la clé secrète sk, c'est-à-dire de l'ensemble des ensembles indexés Sj. We will now describe the decryption 2000 of a data item b, comprising m bits, obtained by the implementation of the method described above. To do this, it is necessary to have the secret key s k , that is to say, the set of indexed sets S j .
On calcule alors, au cours d'une étape 2100, la somme des bits de b indexés par les éléments de Sj, pour chaque j compris entre 1 et I, ce qui correspond à un bit yj de la donnée encodée y. La séquence des yj constitue la donnée encodée y= ( i yc). Then, during a step 2100, the sum of the bits of b indexed by the elements of S j for each j between 1 and I is calculated, which corresponds to a bit y j of the encoded data y. The sequence of y j constitutes the encoded data y = (iy c ).
En effet, la sommation des éléments de M.x indexés par les éléments de Sj est nulle, du fait du choix des Sj. La sommation des éléments de b indexés par Sj donnera donc yj, additionné à un terme d'erreur négligeable. Par conséquent, les bits obtenus par la sommation des éléments de b, indexés par les ensembles Sj, sont les bits de y, au bruit près. Indeed, the summation of the elements of Mx indexed by the elements of S j is zero, because of the choice of S j . The summation of the elements of b indexed by S j will thus give j , added to a negligible error term. Consequently, the bits obtained by the summation of the elements of b, indexed by the sets S j , are the bits of y, with the noise near.
Au cours d'une étape 2200, on décode la donnée y obtenue en appliquant le décodage du code linéaire de type par classes latérales, c'est-à-dire c=H.y, où c est la donnée binaire déchiffrée. Le procédé de chiffrement proposé présente l'avantage d'être homomorphe pour l'opération « XOR » (OU exclusif) symbolisée par l'opérateur®, c'est-à-dire que pour deux messages Ci et c2 de I bits à chiffrer, on peut obtenir le chiffré de c ®c2 à partir de bi et b2, les données obtenues respectivement par le chiffrement de Ci et c2. During a step 2200, the data obtained therefrom is decoded by applying the decoding of the linear code of type by lateral classes, that is to say c = Hy, where c is the decrypted binary data. The proposed encryption method has the advantage of being homomorphic for operation "XOR" (exclusive OR) symbolized by the operator®, that is to say that for two messages Ci and c 2 of I bits to to encrypt, one can obtain the c c c 2 cipher from bi and b 2 , the data obtained respectively by the cipher of Ci and c 2 .
En l'occurrence, le ou-exclusif de bi et b2 est un chiffré possible de ct( c2 par le procédé de chiffrement 1000, c'est-à-dire que la mise en œuvre de l'opération ou exclusif entre bi et b2 correspond au chiffrement de c1®c2 par le même procédé de chiffrement 1000 avec les mêmes paramètres. In this case, the exclusive-or bi and b 2 is a possible encrypted c t (c 2 by the encryption process 1000, that is to say that the implementation of the XOR operation between bi and b 2 corresponds to the encryption of c 1 ®c 2 by the same encryption method 1000 with the same parameters.
Cette propriété découle du caractère linéaire du code par classes latérales employé.  This property is derived from the linear character of the code by lateral classes used.
Procédé de calcul sécurisé de distance de Hamming Secure calculation method of Hamming distance
Le procédé de chiffrement et de déchiffrement décrit ci-avant permet la mise en œuvre d'un calcul sécurisé 3000 de distances de Hamming entre deux données binaires Ci et c2, ce calcul étant mis en œuvre conjointement par deux unités de traitement Ui et U2. The encryption and decryption method described above makes it possible to implement a secure calculation 3000 of Hamming distances between two binary data Ci and c 2 , this calculation being implemented jointly by two processing units Ui and U 2 .
La notion de calcul « sécurisé » indique que le résultat du calcul doit être obtenu sans que chaque unité de traitement puisse avoir accès aux données détenues par l'autre.  The concept of "secure" calculation indicates that the result of the calculation must be obtained without each processing unit having access to the data held by the other.
Ce calcul peut être mis en œuvre selon deux variantes représentées respectivement en figures 3a et 3b, les étapes communes auxdites variantes étant représentées en figure 2.  This calculation can be implemented according to two variants respectively represented in FIGS. 3a and 3b, the steps common to said variants being represented in FIG.
En référence à la figure 2, le calcul sécurisé d'une distance de Hamming entre deux données binaires Ci et c2 est mis en œuvre entre les chiffrés bi et b2 correspondant auxdites données, obtenus par la mise en œuvre du procédé de chiffrement décrit ci-avant. On notera par la suite bi=E(q) pour indiquer qu'une donnée b, est le chiffré d'une donnée q par ce procédé de chiffrement. With reference to FIG. 2, the secure calculation of a Hamming distance between two binary data Ci and c 2 is implemented between the digits bi and b 2 corresponding to said data, obtained by implementing the encryption method described. above. It will be noted later bi = E (q) to indicate that a data b, is the encrypted data q by this encryption method.
Le procédé de calcul comprend l'obtention 3100 du chiffré du résultat de l'opération OU exclusif entre les données binaires non chiffrées E(c1©c2), ce résultat étant obtenu par la mise en œuvre de l'opération « OU exclusif » entre les chiffrés :b1@b2 = Ε^ε^φΕ^), d'après les propriétés homomorphes du procédé de chiffrement pour l'opération OU exclusif décrites ci-avant. Le procédé comprend ensuite la permutation 3200 des I premiers bits du résultat obtenu à l'étape précédente, par la mise en œuvre d'une permutation σ choisie aléatoirement. Le résultat obtenu correspond au chiffré de la permutation du résultat de l'opération « OU exclusif » entre les deux données c, non chiffrées, c'est- à-dire £,(a(c1©c2)). Or la permutation ne modifie pas le poids de Hamming d'une séquence de bits. The calculation method comprises obtaining the encryption 3100 of the result of the exclusive OR operation between the unencrypted binary data E (c 1 c c 2 ), this result being obtained by the implementation of the "exclusive OR" operation Between the ciphers: b 1 @b 2 = Ε ^ ε ^ φΕ ^), based on the homomorphic properties of the encryption method for the exclusive OR operation described above. The method then comprises the permutation 3200 of the first I bits of the result obtained in the preceding step, by the implementation of a permutation σ chosen randomly. The result obtained corresponds to the encryption of the permutation of the result of the operation "exclusive OR" between the two data c, not encrypted, that is to say £ , (a (c 1 © c 2 )). But the permutation does not modify the Hamming weight of a sequence of bits.
Donc le message a(c1©c2) présente le même poids de Hamming que c1( c2 , ce poids de Hamming correspondant donc à la distance de Hamming entre Ci et c2. So the message a (c 1 © c 2 ) has the same Hamming weight as c 1 (c 2 , this Hamming weight corresponding to the Hamming distance between Ci and c 2 .
Il suffit donc, au cours d'une étape 3300 de déchiffrer le message E{O(C1@C2)) et déterminer le poids de Hamming du résultat obtenu pour obtenir la distance de Hamming entre Ci et c2. It is therefore sufficient, during a step 3300, to decipher the message E {O (C 1 @C 2 )) and to determine the Hamming weight of the result obtained to obtain the Hamming distance between Ci and c 2 .
Comme indiqué ci-avant, plusieurs implémentations de ce procédé par des unités de traitement Ui et U2 sont possibles. As indicated above, several implementations of this method by processing units Ui and U 2 are possible.
Selon un premier mode de mise en œuvre, illustré en figure 3a, chaque unité de traitement Ui et U2 dispose respectivement d'une donnée binaire Ci , c2 et d'une clé publique pk du type employé dans le procédé décrit ci-avant. La clé secrète correspondante sk est détenue par une seule des deux unités, par exemple Ui. According to a first embodiment, illustrated in FIG. 3a, each processing unit Ui and U 2 respectively have a binary data Ci, c 2 and a public key p k of the type used in the method described above. before. The corresponding secret key s k is held by only one of the two units, for example Ui.
Au cours d'une première étape 3010, chaque unité de traitement chiffre la donnée qu'elle détient par la mise en œuvre du procédé de chiffrement 1000 décrit ci-avant. L'unité Ui détenant la clé secrète transfère ensuite sa donnée chiffrée E(ci) à l'autre unité U2 au cours d'une étape 3020. During a first step 3010, each processing unit encrypts the data it holds by implementing the encryption method 1000 described above. The unit Ui holding the secret key then transfers its encrypted data E (ci) to the other unit U 2 in a step 3020.
Puis, l'unité U2 met en œuvre l'opération OU exclusif 3100 entre les deux données chiffrées, choisit et effectue la permutation σ 3200 des I premiers bits du résultat obtenu pour obtenir£'(a(c1©c2)). L'unité U2 transfère ce résultat à l'unité Ui au cours d'une étape 3210 et l'unité Ui déchiffre le résultat, par la mise en œuvre du procédé de déchiffrement 2000, grâce à la clé secrète sk qu'elle détient, pour obtenir o c1@c2) et compte son poids de Hamming, pour obtenir la distance de Hamming entre Ci et c2. Then, the unit U 2 implements the exclusive OR operation 3100 between the two encrypted data, chooses and performs the permutation σ 3200 of the first I bits of the result obtained to obtain '(a (c 1 c c 2 )) . The unit U 2 transfers this result to the unit Ui during a step 3210 and the unit Ui decrypts the result, by implementing the decryption method 2000, thanks to the secret key s k it holds, to obtain oc 1 @c 2 ) and counts its Hamming weight, to obtain the Hamming distance between Ci and c 2 .
Optionnellement, le résultat de la distance de Hamming entre les données peut être communiqué par l'unité Ui à l'unité U2. Selon un mode de mise en œuvre alternatif, représenté en figure 3b, l'unité de traitement Ui dispose à l'origine des deux données déjà chiffrées E(ci) et E(c2) et de la clé publique pk. L'unité de traitement U2 dispose quant à elle de la clé publique pk et de la clé privée sk. Optionally, the result of the Hamming distance between the data can be communicated by the unit Ui to the unit U 2 . According to an alternative implementation mode, represented in FIG. 3b, the processing unit Ui initially has the two already encrypted data E (ci) and E (c 2 ) and the public key p k . The processing unit U 2 has the public key p k and the private key s k .
Cette situation s'applique notamment au cas du traitement dématérialisé de données (en anglais, « cloud Computing »), où l'unité Ui est un serveur distant qui stocke des données confidentielles d'individus et ne doit pas y avoir accès.  This situation applies in particular to the case of cloud computing, where the unit Ui is a remote server that stores confidential data of individuals and must not have access to it.
Dans cette situation, c'est l'unité Ui qui effectue l'opération OU exclusif 3100 entre les deux données chiffrées, qui choisit et qui applique 3200 la permutation σ des I premiers bits du résultat obtenu. Puis, au cours d'une étape 3210, l'unité Ui transfère E(a(c1@c2j) obtenu à l'étape 3200 à l'unité U2. In this situation, it is the unit Ui that performs the exclusive OR operation 3100 between the two encrypted data, which chooses and applies 3200 the permutation σ of the first I bits of the result obtained. Then, during a step 3210, the unit Ui transfers E (a (c 1 @c 2 j) obtained in step 3200 to the unit U 2 .
Au cours d'une étape 3300, l'unité U2 déchiffre, par application du procédé 2000, grâce à la clé secrète qu'elle détient, la donnée reçue de l'unité U2 pour obtenir la donnée a(c1©c2), compte son poids de Hamming et obtient ainsi la distance de Hamming entre Ci et c2. During a step 3300, the unit U 2 decrypts, by application of the method 2000, thanks to the secret key that it holds, the data received from the unit U 2 to obtain the data item a (c 1 © c 2 ), counts its Hamming weight and thus obtains the Hamming distance between Ci and c 2 .
Optionnellement, l'unité U2 peut également transférer la distance de Hamming entre les données q à l'unité Ui. Optionally, the unit U 2 can also transfer the Hamming distance between the data q to the unit Ui.
Application à l'identification ou à l'authentification sécurisée Application to secure identification or authentication
Cette méthode 3000 de calcul d'une distance de Hamming est avantageusement appliquée à l'identification (comparaison d'un individu à une pluralité d'individus candidats pour détecter une correspondance entre l'individu et un des candidats) ou l'authentification (comparaison d'un individu avec un individu candidat pour détecter une correspondance) biométrique d'un individu.  This method 3000 for calculating a Hamming distance is advantageously applied to the identification (comparison of an individual to a plurality of candidate individuals to detect a correspondence between the individual and one of the candidates) or the authentication (comparison an individual with a candidate individual to detect a biometric match of an individual.
On compare alors une donnée biométrique d'un individu à une (dans le cas de l'authentification) ou plusieurs (dans le cas de l'identification) données d'individus répertoriés, chaque comparaison étant réalisée par calcul de la distance de Hamming entre les données.  A biometric datum of an individual is then compared to one (in the case of authentication) or several (in the case of identification) data of individuals listed, each comparison being made by calculating the Hamming distance between the data.
Les données biométriques sont des encodages numériques de traits biométriques d'individus. Elles doivent correspondre à un même trait biométrique pour pouvoir être comparables : ce trait peut être un ou deux iris, une ou plusieurs empreintes digitales, la forme du visage, la forme du réseau veineux, l'ADN, les empreintes palmaires, etc. Un système d'identification ou d'authentification biométrique 1 d'un individu adapté pour la mise en œuvre du procédé 3000 comprend avantageusement un serveur de contrôle SC d'un individu à identifier et un serveur de gestion SG d'une base de données biométriques, ladite base comprenant au moins une donnée biométrique de référence c, acquise sur un individu répertorié. Biometric data are digital encodings of biometric traits of individuals. They must correspond to the same biometric feature in order to be comparable: this feature may be one or two irises, one or more fingerprints, the shape of the face, the shape of the venous network, the DNA, the palm prints, etc. A biometric identification or authentication system 1 of an individual adapted for the implementation of the method 3000 advantageously comprises a control server SC of an individual to be identified and a management server SG of a biometric database , said base comprising at least one reference biometric datum c, acquired on a listed individual.
Le serveur de contrôle SC comporte avantageusement des moyens pour acquérir une donnée biométrique b sur un individu à identifier ou authentifier. Il peut s'agir par exemple d'un lecteur d'empreintes digitales ou de document d'identité biométrique, ou d'un appareil photo. The control server SC advantageously comprises means for acquiring a biometric data item b on an individual to identify or authenticate. This may be for example a fingerprint reader or a biometric identity document, or a camera.
Les serveurs de contrôle SC et de gestion SG sont avantageusement configurés pour mettre en œuvre l'une ou l'autre des variantes de mise en œuvre du procédé 3000 décrit ci-avant.  The SC control and management servers SG are advantageously configured to implement one or other of the implementation variants of the method 3000 described above.
Dans la mise en œuvre représentée en figure 3a, l'unité de traitement U1 correspond avantageusement au serveur de contrôle SC qui acquière une donnée b sur un individu à identifier et compare ladite donnée à une ou plusieurs données c, détenues par le serveur de gestion pour obtenir, pour chaque Q, la distance de Hamming entre la donnée b et la donnée c,.  In the implementation represented in FIG. 3a, the processing unit U1 advantageously corresponds to the control server SC which acquires data b on an individual to identify and compares said data with one or more data c held by the management server. to obtain, for each Q, the Hamming distance between the data b and the data c ,.
Typiquement, si une distance de Hamming entre b et une des données c, est inférieure à un seuil prédéterminé, une correspondance est détectée entre l'individu sur qui a été acquise la donnée b et l'individu de référence sur qui a été acquise la donnée Q.  Typically, if a Hamming distance between b and one of the data c is less than a predetermined threshold, a correspondence is detected between the individual on whom the data b was acquired and the reference individual on whom the data was acquired. Q.
Dans la mise en œuvre représentée en figure 3b, l'unité de traitement U2 correspond avantageusement au serveur de contrôle SC. Dans ce cas, les données de référence stockées dans la base sont déjà chiffrées, de sorte que le serveur de gestion SG ne puisse accéder qu'aux données chiffrées, et le serveur de contrôle chiffre la donnée b acquise sur l'individu avant de la transmettre au serveur de gestion. In the implementation shown in FIG. 3b, the processing unit U 2 advantageously corresponds to the control server SC. In this case, the reference data stored in the database is already encrypted, so that the management server SG can access only the encrypted data, and the control server encrypts the data b acquired on the individual before the transmit to the management server.
Au terme du procédé 3000, le serveur de contrôle obtient la distance de Hamming entre la donnée b et une ou plusieurs données Q de la base, et peut de la même manière détecter une correspondance entre l'individu et un ou plusieurs individus répertoriés. On a donc présenté un procédé de chiffrement permettant de calculer de manière sécurisée une distance de Hamming sur des données entières, et non plus bit à bit, ce calcul pouvant en outre être appliqué à l'identification ou l'authentification biométrique. At the end of the method 3000, the control server obtains the Hamming distance between the data item b and one or more data Q of the database, and can similarly detect a correspondence between the individual and one or more listed individuals. Thus, an encryption method has been presented that makes it possible to calculate a Hamming distance over integer data in a secure manner, and no longer bit by bit, this calculation can also be applied to the identification or the biometric authentication.

Claims

REVENDICATIONS
1 . Procédé de chiffrement d'une donnée binaire (c) caractérisé en ce qu'il comprend les étapes consistant à : 1. Method for encrypting a binary data item (c), characterized in that it comprises the steps of:
générer une clé publique (pk) et une clé privée (sk), la clé publique étant une matrice (M) creuse comprenant m lignes et n colonnes, m étant supérieur au nombre I de bits de la donnée binaire, I étant un entier strictement supérieur à 1 , et la clé privée étant un ensemble de I ensembles indexés (Sj) d'entiers compris entre 1 et m tels que pour chaque ensemble, la somme des éléments des lignes de la matrice creuse indexées par les éléments d'un ensemble est nulle, et générer une séquence binaire b comprenant m bits, telle que b=Mx+e+y où generate a public key (p k ) and a private key (s k ), the public key being a matrix (M) dig including m rows and n columns, m being greater than the number I of bits of the binary data, I being a an integer strictly greater than 1, and the private key being a set of I indexed sets (S j ) of integers between 1 and m such that for each set, the sum of the elements of the rows of the hollow matrix indexed by the elements d a set is zero, and generate a b bit sequence comprising m bits, such that b = Mx + e + y where
o x est un vecteur binaire aléatoire,  o x is a random binary vector,
o e est un vecteur de bruit binaire aléatoire, et  o e is a random binary noise vector, and
o y est un encodage linéaire de la donnée c.  o y is a linear encoding of the data c.
2. Procédé de chiffrement d'une donnée binaire selon la revendication précédente, dans lequel les éléments du vecteur e de bruit aléatoire sont des variables de Bernoulli. 2. A method of encrypting a binary data according to the preceding claim, wherein the elements of the random noise vector e are Bernoulli variables.
3. Procédé de chiffrement d'une donnée binaire selon l'une des revendications 1 ou 2, dans lequel l'encodage y de la donnée c est configuré pour qu'une connaissance partielle de la donnée codée y ne soit pas décodable. 3. A method of encrypting a binary data according to one of claims 1 or 2, wherein the encoding y of the data c is configured so that a partial knowledge of the coded data y is not decodable.
4. Procédé de chiffrement d'une donnée binaire selon l'une des revendications 1 à 3, dans lequel l'encodage y de la donnée c est un encodage linéaire par classes latérales, c'est-à-dire que y est un élément sélectionné au hasard parmi les éléments vérifiant la relation H'y=c, où H est une matrice de contrôle d'un code linéaire. 4. Method for encrypting a binary data item according to one of claims 1 to 3, wherein the encoding y of the data item c is a linear encoding by lateral classes, that is to say that y is an element randomly selected among the elements verifying the relation H'y = c, where H is a control matrix of a linear code.
5. Procédé de chiffrement selon l'une des revendications 1 à 4, dans lequel la génération de la clé publique et de la clé privée comprend : la génération de I matrices indexées (Hj) de q lignes et n colonnes, où q est strictement inférieur à m, les lignes de chaque matrice comprenant chacune trois 1 et les colonnes de chaque matrice comprenant chacune zéro ou deux 1 , The encryption method according to one of claims 1 to 4, wherein the generation of the public key and the private key comprises: generating indexed matrices (H j ) of q rows and n columns, where q is strictly less than m, the rows of each matrix each comprising three 1 and the columns of each matrix each comprising zero or two 1,
la génération d'une matrice creuse M comprenant m lignes et n colonnes,  the generation of a hollow matrix M comprising m rows and n columns,
la génération aléatoire de I ensembles indexés (Sj) d'entiers compris entre 1 et m tels que chaque ensemble comprend q éléments dont son index et tels que deux ensembles distincts ne comprennent aucun élément commun, et the random generation of indexed sets (S j ) of integers between 1 and m such that each set comprises q elements whose index and such that two distinct sets do not comprise any common element, and
pour chaque ensemble indexé, le remplacement des lignes de la matrice creuse M indexées par les éléments de l'ensemble, par les lignes de la matrice indexée correspondante.  for each indexed set, the replacement of the rows of the hollow matrix M indexed by the elements of the set, by the rows of the corresponding indexed matrix.
6. Procédé de chiffrement selon l'une des revendications 1 à 4 dans lequel la génération de la clé publique et de la clé privée comprend : 6. Encryption method according to one of claims 1 to 4 wherein the generation of the public key and the private key comprises:
la génération de I matrices d-creuses indexées Hj, où d est un entier pair supérieur à 3, comprenant chacune q lignes et q/3 colonnes, où q est strictement inférieur à m, chaque ligne d'une matrice comprenant d 1 , - la génération d'une matrice d-creuse M comprenant m lignes et n colonnes, the generation of indexed hollow matrices H j , where d is an even integer greater than 3, each comprising q rows and q / 3 columns, where q is strictly less than m, each row of a matrix comprising d 1, the generation of a hollow matrix M comprising m rows and n columns,
la génération aléatoire de I premiers ensembles indexés Uj, j compris entre 1 et I, d'entiers compris entre 1+1 et m tels que : the random generation of I first indexed sets U j , j between 1 and I, of integers between 1 + 1 and m such that:
o chaque ensemble comprend q éléments, et  o each set includes q elements, and
o deux ensembles distincts ne comprennent aucun élément commun,  o two distinct sets do not include any common element,
la génération aléatoire de I seconds ensembles Tj, j compris entre 1 et I, d'entiers compris entre 1 et n, tels que chaque ensemble Tj comprend q/3 éléments, the random generation of I second sets T j , j between 1 and I, of integers between 1 and n, such that each set T j comprises q / 3 elements,
- pour tout j compris entre 1 et I,  - for all j between 1 and I,
o le remplacement des éléments de M tel que :  o the replacement of the elements of M such that:
" MUkitq = Hjk q pour tout uk e Uj, tq e 7}, et "M Ukitq = H jk q for all u k e Uj, t q e 7}, and
MUk>q = 0 si q £ 7} o la permutation de la jeme ligne de M avec une ligne de M indexée par un élément de Uj qui est la somme des lignes de M indexées par les éléments d'un sous-ensemble Wj de II,, - la clé publique obtenue étant la matrice creuse M et la clé privée étant l'ensemble, pour j compris entre 1 et I, des unions des ensembles Wj avec le singleton j. M Uk> q = 0 if q £ 7} o the permutation of the j th row of M with a line M indexed by a U j element which is the sum of the rows of M are indexed by the elements of a subset W j II ,, - the public key obtained being the hollow matrix M and the private key being the set, for j between 1 and I, union of sets W j with the singleton j.
7. Procédé de déchiffrement d'une donnée chiffrée obtenue par l'application à une donnée binaire du procédé selon l'une des revendications précédentes, le procédé comprenant : 7. A method for decrypting an encrypted data obtained by applying a binary data item of the method according to one of the preceding claims, the method comprising:
pour chaque ensemble d'entiers indexés Sj, la sommation binaire des bits de la donnée chiffrée indexés par les éléments de Sj, chaque bit obtenu correspondant au bit indexé par j de la donnée binaire encodée, et l'ensemble des bits indexés obtenus formant la donnée binaire encodée, et for each set of indexed integers S j , the binary summation of the bits of the encrypted data indexed by the elements of S j , each bit obtained corresponding to the bit indexed by j of the encoded binary data, and the set of indexed bits obtained forming the encoded binary data, and
le décodage de la donnée obtenue, la donnée décodée formant la donnée binaire déchiffrée.  decoding the data obtained, the decoded data forming the decrypted binary data.
8. Procédé de calcul sécurisé de l'opération « ou exclusif » entre deux données binaires chiffrées par la mise en œuvre du procédé selon l'une des revendications 1 à 6, comprenant les étapes consistant à : 8. Secure calculation method of the operation "or exclusive" between two binary data encrypted by the implementation of the method according to one of claims 1 to 6, comprising the steps of:
déterminer, à partir des données chiffrées, une séquence de bits correspondant au chiffrement, par ledit procédé de chiffrement, du résultat de l'opération « ou exclusif » entre les deux données binaires, et - déchiffrer la séquence de bits obtenue par la mise en œuvre du procédé selon la revendication 7.  determining, from the encrypted data, a sequence of bits corresponding to the encryption, by said encryption method, of the result of the "exclusive" operation between the two binary data, and - decrypting the bit sequence obtained by setting process according to claim 7.
9. Procédé de calcul sécurisé d'une distance de Hamming entre deux données binaires chiffrées par la mise en œuvre du procédé selon l'une des revendications 1 à 6, le procédé comprenant les étapes consistant à : 9. A method of secure calculation of a Hamming distance between two binary data encrypted by the implementation of the method according to one of claims 1 to 6, the method comprising the steps of:
d) déterminer, à partir des données chiffrées, le résultat correspondant au chiffrement par le procédé selon l'une des revendications 1 à 6, du résultat de l'opération « ou exclusif » entre les deux données non chiffrées, e) appliquer une permutation σ aux I premiers bits du résultat obtenu à l'étape a), et d) determining, from the encrypted data, the result corresponding to the encryption by the method according to one of claims 1 to 6, of the result of the operation "or exclusive" between the two unencrypted data, e) applying a permutation σ to the first I bits of the result obtained in step a), and
f) déchiffrer la séquence de bits obtenue à l'étape b), et déterminer le poids de Hamming de la donnée obtenue.  f) decipher the bit sequence obtained in step b), and determine the Hamming weight of the data obtained.
10. Procédé de calcul sécurisé d'une distance de Hamming selon la revendication précédente, le procédé étant mis en œuvre conjointement par deux unités de traitement détenant chacune une des deux données binaires et une clé publique, une unité de traitement détenant en outre la clé secrète associée, et dans lequel : 10. A method for secure calculation of a Hamming distance according to the preceding claim, the method being implemented jointly by two processing units each holding one of the two binary data and a public key, a processing unit also holding the key. associated secret, and wherein:
chaque unité de traitement chiffre la donnée qu'elle détient à partir de la clé publique, l'unité détenant la clé secrète transmettant sa donnée chiffrée à la seconde unité,  each processing unit encrypts the data it holds from the public key, the unit holding the secret key transmitting its encrypted data to the second unit,
la seconde unité met en œuvre les étapes a) et b) et transfère le résultat à la première unité, et  the second unit implements steps a) and b) and transfers the result to the first unit, and
la première unité met en œuvre l'étape c).  the first unit implements step c).
1 1 . Procédé de calcul sécurisé d'une distance de Hamming selon la revendication 9, le procédé étant mis en œuvre conjointement par une unité-serveur détenant les deux données chiffrées et la clé publique, et une unité-client détenant la clé publique et la clé privée associée, et dans lequel : 1 1. A method of secure calculation of a Hamming distance according to claim 9, the method being implemented jointly by a server unit holding the two encrypted data and the public key, and a client unit holding the public key and the private key associated, and wherein:
l'unité-serveur met en œuvre les étapes a) et b) et transfère le résultat à l'unité client, et  the server unit implements steps a) and b) and transfers the result to the client unit, and
l'unité-client met en œuvre l'étape c).  the client unit implements step c).
12. Procédé d'authentification ou d'identification d'un individu I, comprenant la comparaison d'une donnée binaire acquise sur l'individu à une ou plusieurs données binaire de référence acquises sur des individus répertoriés, 12. A method for authenticating or identifying an individual I, comprising comparing a binary data item acquired on the individual with one or more reference binary data acquired on listed individuals,
caractérisé en ce que chaque comparaison comprend le calcul de la distance de Hamming entre la donnée de l'individu et une donnée de la base, ledit calcul étant réalisé par la mise en œuvre du procédé selon l'une des revendications 9 à 1 1 . characterized in that each comparison comprises calculating the Hamming distance between the data of the individual and a datum of the base, said calculation being made by the implementation of the method according to one of claims 9 to 11.
13. Procédé selon la revendication 12, dans lequel la donnée de l'individu et la ou les données de la base sont des données biométriques obtenues par encodage d'un même trait biométrique sur l'individu et le ou les individus répertoriés. 13. The method of claim 12, wherein the data of the individual and the data or data of the database are biometric data obtained by encoding the same biometric trait on the individual and the listed individual (s).
14. Système d'identification ou d'authentification d'un individu, comportant au moins un serveur de contrôle d'un individu à identifier ou authentifier, et au moins un serveur de gestion d'une base de données de référence d'individus répertoriés, le serveur de contrôle étant adapté pour procéder à l'acquisition d'une donnée binaire biométrique d'un individu, 14. An identification or authentication system of an individual, comprising at least one control server of an individual to be identified or authenticated, and at least one management server of a reference database of identified individuals the control server being adapted to acquire a biometric binary data of an individual,
le système étant caractérisé en ce que le serveur de contrôle et le serveur de gestion sont adaptés pour :  the system being characterized in that the control server and the management server are adapted to:
calculer au moins une distance de Hamming entre la donnée de l'individu et au moins une donnée de la base, par la mise en œuvre du procédé selon l'une des revendications 9 à 1 1 , et  calculating at least one Hamming distance between the data of the individual and at least one datum of the base, by implementing the method according to one of claims 9 to 1 1, and
déterminer, à partir de la ou des distances de Hamming calculées, une ou plusieurs données de la base présentant des similarités avec la donnée de l'individu excédant un seuil prédéterminé.  determining, from the calculated Hamming distance (s), one or more data of the base having similarities with the data of the individual exceeding a predetermined threshold.
EP14701769.3A 2013-02-01 2014-01-30 Method of xor homomorphic encryption and secure calculation of a hamming distance Withdrawn EP2951944A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1350904A FR3001848B1 (en) 2013-02-01 2013-02-01 HOMOMORPHIC ENCRYPTION METHOD FOR EXCLUSIVE OR SECURE CALCULATION OF A HAMMING DISTANCE
PCT/EP2014/051759 WO2014118257A1 (en) 2013-02-01 2014-01-30 Method of xor homomorphic encryption and secure calculation of a hamming distance

Publications (1)

Publication Number Publication Date
EP2951944A1 true EP2951944A1 (en) 2015-12-09

Family

ID=49209453

Family Applications (1)

Application Number Title Priority Date Filing Date
EP14701769.3A Withdrawn EP2951944A1 (en) 2013-02-01 2014-01-30 Method of xor homomorphic encryption and secure calculation of a hamming distance

Country Status (4)

Country Link
US (1) US20150365229A1 (en)
EP (1) EP2951944A1 (en)
FR (1) FR3001848B1 (en)
WO (1) WO2014118257A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201608601TA (en) * 2014-04-23 2016-11-29 Agency Science Tech & Res Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
EP3270321B1 (en) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique for securely performing an operation in an iot environment
US10812252B2 (en) 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
US10496631B2 (en) * 2017-03-10 2019-12-03 Symphony Communication Services Holdings Llc Secure information retrieval and update
WO2018174063A1 (en) * 2017-03-21 2018-09-27 日本電気株式会社 Collating system, method, device, and program
US11196539B2 (en) 2017-06-22 2021-12-07 Microsoft Technology Licensing, Llc Multiplication operations on homomorphic encrypted data
US10541805B2 (en) * 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10749665B2 (en) 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
US10936703B2 (en) * 2018-08-02 2021-03-02 International Business Machines Corporation Obfuscating programs using matrix tensor products
WO2019072269A2 (en) * 2018-11-07 2019-04-18 Alibaba Group Holding Limited Blockchain data protection using homomorphic encryption
US11553337B2 (en) 2019-12-10 2023-01-10 Winkk, Inc. Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel
US11328042B2 (en) 2019-12-10 2022-05-10 Winkk, Inc. Automated transparent login without saved credentials or passwords
US11928193B2 (en) 2019-12-10 2024-03-12 Winkk, Inc. Multi-factor authentication using behavior and machine learning
US11936787B2 (en) 2019-12-10 2024-03-19 Winkk, Inc. User identification proofing using a combination of user responses to system turing tests using biometric methods
US11574045B2 (en) 2019-12-10 2023-02-07 Winkk, Inc. Automated ID proofing using a random multitude of real-time behavioral biometric samplings
US11843943B2 (en) 2021-06-04 2023-12-12 Winkk, Inc. Dynamic key exchange for moving target
US11824999B2 (en) * 2021-08-13 2023-11-21 Winkk, Inc. Chosen-plaintext secure cryptosystem and authentication
US20230084574A1 (en) * 2021-09-16 2023-03-16 UncommonX Inc. Bit sequence storage method and system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295188A (en) * 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
FR2871910B1 (en) * 2004-06-22 2006-09-22 Sagem BIOMETRIC DATA ENCODING METHOD, IDENTITY CONTROL METHOD, AND DEVICES FOR IMPLEMENTING METHODS
FR2948518A1 (en) * 2009-07-23 2011-01-28 France Telecom METHOD OF CONVERTING A FIRST NUMBER TO A SECOND NUMBER
US20110047377A1 (en) * 2009-08-19 2011-02-24 Harris Corporation Secure digital communications via biometric key generation
US8310922B2 (en) * 2010-04-15 2012-11-13 International Business Machines Corporation Summarizing internet traffic patterns
US20120308089A1 (en) * 2011-06-03 2012-12-06 Korea Basic Science Institute Method of biometric authentication by using pupil border and apparatus using the method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2014118257A1 *

Also Published As

Publication number Publication date
US20150365229A1 (en) 2015-12-17
WO2014118257A1 (en) 2014-08-07
FR3001848B1 (en) 2015-01-09
FR3001848A1 (en) 2014-08-08

Similar Documents

Publication Publication Date Title
EP2951944A1 (en) Method of xor homomorphic encryption and secure calculation of a hamming distance
EP2323306B1 (en) Secured data transmission method and encryption and decryption system enabling such a transmission
EP2819052B1 (en) Method and server for processing a request for a terminal to access a computer resource
FR3054905B1 (en) KEY GENERATION METHOD AND ACCESS CONTROL METHOD
EP2909963B1 (en) Electronic signature method with ephemeral signature
EP2661715A1 (en) Device and method for online storage, transmission device and method, and receiving device and method
WO2020169542A1 (en) Cryptographic data verification method
WO2011083232A1 (en) Encryption and decryption method
EP2568406B1 (en) Implementation method, from a terminal, of cryptographic data for a user stored in a database
FR3059445A1 (en) CHIFFREMENT PROCESS
CA2613884C (en) Method for providing a secured communication between a user and an entity
EP3769461A1 (en) Method for transmitting data from a motor vehicle and method for another vehicle to receive the data through a radio communication channel
EP4012972A1 (en) Method for selective disclosure of data via a blockchain
WO2012089632A1 (en) Method and system making it possible to test a cryptographic integrity of an error tolerant data item
FR2925730A1 (en) METHOD AND SYSTEM FOR AUTHENTICATING INDIVIDUALS FROM BIOMETRIC DATA
FR3038759A1 (en) ENCRYPTION WITH EMBARKED GEOLOCATION
WO2021156078A1 (en) Method and device for evaluating the correspondence of structured data sets protected by encryption
EP4099614A1 (en) Methods of data enrolment to verify the authenticity of security data or verification of the authenticity of security data
WO2023046557A1 (en) System and method for generating a secure secret key
WO2021165625A1 (en) Method for calculating a session key, and method for recovering such a session key
EP4227832A1 (en) Signature-free optimized post-quantum authentication scheme, methods and devices
EP4088420A1 (en) Method for transmitting and receiving a message containing an encrypted identifier of the transmitter device
WO2007101966A1 (en) Authenticating a computer device at user level
FR2924551A1 (en) Access controlling method for e.g. data coding function of smart card, involves comparing mark obtained from value to be verified of decoded word with mark of decoded word to verify integrity of value

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20150827

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: MORPHO

Owner name: INSTITUT MINES-TELECOM

17Q First examination report despatched

Effective date: 20170407

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20171018