EP2951944A1 - Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming - Google Patents

Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming

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)
English (en)
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
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 Institut Mines Telecom IMT, Morpho SA filed Critical Institut Mines Telecom IMT
Publication of EP2951944A1 publication Critical patent/EP2951944A1/fr
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.

Landscapes

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

Abstract

L'invention concerne un procédé de chiffrement d'une donnée binaire caractérisé en ce qu'il comprend les étapes consistant à : - 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 - générer une séquence binaire b comprenant m bits, telle que b=Mx+e+y où o x est un vecteur binaire aléatoire, o e est un vecteur de bruit binaire aléatoire, et o y est un encodage linéaire de la donnée c. L'invention concerne également un procédé de calcul d'une distance de Hamming sur des données chiffrées par le procédé de chiffrement.

Description

PROCEDE DE CHIFFREMENT HOMOMORPHE POUR LE OU EXCLUSIF ET CALCUL SECURISE D'UNE DISTANCE DE HAMMING
DOMAINE DE L'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.
L'invention trouve des applications notamment dans le domaine de l'identification ou de l'authentification biométrique. ETAT DE LA TECHNIQUE
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.
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.
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.
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.
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.
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.
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).
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.
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.
PRESENTATION DE L'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.
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 à :
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
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,
e est un vecteur de bruit binaire aléatoire, et
y est un encodage linéaire de la donnée 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.
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.
la génération de la clé publique et de la clé privée comprend :
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 ,
o la génération d'une matrice creuse M comprenant m lignes et n colonnes,
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 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,
la génération de la clé publique et de la clé privée comprend :
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 ,
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 :
chaque ensemble comprend q éléments, et
deux ensembles distincts ne comprennent aucun élément commun,
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 pour tout j compris entre 1 et I,
■ le remplacement des éléments de M tel que :
" MUkit = Hj k q pour tout uk e Uj, tq e 7}, et
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 :
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.
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.
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 à :
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,
b) appliquer une permutation σ aux I premiers bits du résultat obtenu à l'étape a), et
c) déchiffrer la séquence de bits obtenue à l'étape b), et déterminer le poids de Hamming de la donnée obtenue.
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 :
- 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 :
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é,
o la seconde unité met en œuvre les étapes a) et b) et transfère le résultat à la première unité, et
o la première unité met en œuvre l'étape 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
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..
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.
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 :
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
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é.
DESCRIPTION DES 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,
La figure 2 représente les principales étapes mises en œuvre pour le calcul sécurisé d'une distance de Hamming,
Les figures 3a et 3b représentent deux variantes de réalisation du calcul d'une distance de Hamming entre deux données.
DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE MISE EN ŒUVRE DE L'INVENTION
Contexte et formalisme
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.
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.
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é.
Procédé de chiffrement et de déchiffrement de données
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.
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.
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.
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.
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.
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 .
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.
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.
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.
La clé publique pk est donc M, et la clé privée sk est l'ensemble des Sj
¾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.
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).
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.
Au cours d'une étape 120', on génère une matrice d-creuse M comprenant m lignes et n colonnes.
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.
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.
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 .
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.
La clé publique pk obtenue est la matrice M et la clé privée sk est
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 -
RBer™.
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.
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 ».
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.
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.
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.
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).
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.
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.
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.
Cette propriété découle du caractère linéaire du code par classes latérales employé.
Procédé de calcul sécurisé de distance de Hamming
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.
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.
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.
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.
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.
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.
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.
Comme indiqué ci-avant, plusieurs implémentations de ce procédé par des unités de traitement Ui et U2 sont possibles.
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.
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.
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.
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.
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.
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.
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.
Optionnellement, l'unité U2 peut également transférer la distance de Hamming entre les données q à l'unité Ui.
Application à l'identification ou à l'authentification sécurisée
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.
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.
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é.
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.
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.
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,.
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.
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.
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.

Claims

REVENDICATIONS
1 . Procédé de chiffrement d'une donnée binaire (c) caractérisé en ce qu'il comprend les étapes consistant à :
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ù
o x est un vecteur binaire aléatoire,
o e est un vecteur de bruit binaire aléatoire, et
o y est un encodage linéaire de la donnée 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.
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.
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.
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 ,
la génération d'une matrice creuse M comprenant m lignes et n colonnes,
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
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.
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 :
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,
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 :
o chaque ensemble comprend q éléments, et
o deux ensembles distincts ne comprennent aucun élément commun,
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,
- pour tout j compris entre 1 et I,
o le remplacement des éléments de M tel que :
" MUkitq = Hjk q pour tout uk e Uj, tq e 7}, et
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.
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 :
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.
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 à :
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.
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 à :
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
f) déchiffrer la séquence de bits obtenue à l'étape b), et déterminer le poids de Hamming de la donnée obtenue.
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 :
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é,
la seconde unité met en œuvre les étapes a) et b) et transfère le résultat à la première unité, et
la première unité met en œuvre l'étape 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 :
l'unité-serveur met en œuvre les étapes a) et b) et transfère le résultat à l'unité client, et
l'unité-client met en œuvre l'étape 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,
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 .
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.
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,
le système étant caractérisé en ce que le serveur de contrôle et le serveur de gestion sont adaptés pour :
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
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é.
EP14701769.3A 2013-02-01 2014-01-30 Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming Withdrawn EP2951944A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1350904A FR3001848B1 (fr) 2013-02-01 2013-02-01 Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming
PCT/EP2014/051759 WO2014118257A1 (fr) 2013-02-01 2014-01-30 Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming

Publications (1)

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

Family

ID=49209453

Family Applications (1)

Application Number Title Priority Date Filing Date
EP14701769.3A Withdrawn EP2951944A1 (fr) 2013-02-01 2014-01-30 Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming

Country Status (4)

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

Families Citing this family (36)

* 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 (fr) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique de mise en oeuvre d'une opération de manière sécurisée dans un environnement iot
US11030618B1 (en) 2016-09-30 2021-06-08 Winkk, Inc. Authentication and personal data sharing for partner services using out-of-band optical mark recognition
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 (fr) * 2017-03-21 2018-09-27 日本電気株式会社 Système, procédé, dispositif et programme de classement
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
US11637694B2 (en) 2018-07-16 2023-04-25 Winkk, Inc. Secret material exchange and authentication cryptography operations
US10936703B2 (en) * 2018-08-02 2021-03-02 International Business Machines Corporation Obfuscating programs using matrix tensor products
SG11201903552PA (en) * 2018-11-07 2019-05-30 Alibaba Group Holding Ltd Blockchain data protection using homomorphic encryption
US11328042B2 (en) 2019-12-10 2022-05-10 Winkk, Inc. Automated transparent login without saved credentials or passwords
US11588794B2 (en) 2019-12-10 2023-02-21 Winkk, Inc. Method and apparatus for secure application framework and platform
US11574045B2 (en) 2019-12-10 2023-02-07 Winkk, Inc. Automated ID proofing using a random multitude of real-time behavioral biometric samplings
US12132763B2 (en) 2019-12-10 2024-10-29 Winkk, Inc. Bus for aggregated trust framework
US11928193B2 (en) 2019-12-10 2024-03-12 Winkk, Inc. Multi-factor authentication using behavior and machine learning
US11652815B2 (en) 2019-12-10 2023-05-16 Winkk, Inc. Security platform architecture
US11553337B2 (en) 2019-12-10 2023-01-10 Winkk, Inc. Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel
US12073378B2 (en) 2019-12-10 2024-08-27 Winkk, Inc. Method and apparatus for electronic transactions using personal computing devices and proxy services
US12335399B2 (en) 2019-12-10 2025-06-17 Winkk, Inc. User as a password
US12153678B2 (en) 2019-12-10 2024-11-26 Winkk, Inc. Analytics with shared traits
US12341790B2 (en) 2019-12-10 2025-06-24 Winkk, Inc. Device behavior analytics
US12143419B2 (en) 2019-12-10 2024-11-12 Winkk, Inc. Aggregated trust framework
US11657140B2 (en) 2019-12-10 2023-05-23 Winkk, Inc. Device handoff identification proofing using behavioral analytics
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
CN114448611B (zh) 2020-11-02 2025-07-29 中兴通讯股份有限公司 密钥生成方法、装置、电子设备及存储介质
US11843943B2 (en) 2021-06-04 2023-12-12 Winkk, Inc. Dynamic key exchange for moving target
US12095751B2 (en) 2021-06-04 2024-09-17 Winkk, Inc. Encryption for one-way data stream
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
KR20230161779A (ko) * 2022-05-19 2023-11-28 서울대학교산학협력단 동형자리바꿈 연산을 수행하는 방법 및 기기
US12425230B2 (en) 2022-09-21 2025-09-23 Winkk, Inc. System for authentication, digital signatures and exposed and unregistered public certificate use
US12536114B2 (en) 2023-08-02 2026-01-27 Dell Products Lp System and method for guarding bit data packet self-recovery with a data packet communication and polling system for wireless input/output (IO) devices
US20250192980A1 (en) * 2023-12-08 2025-06-12 Pienomial Inc. Compression-based homomorphic encryption data search
CN118034492B (zh) * 2023-12-29 2024-07-16 辉塔信息技术咨询(上海)有限公司 一种数字化多模态人机交互座舱模拟控制系统

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 (fr) * 2004-06-22 2006-09-22 Sagem Procede de codage de donnees biometriques, procede de controle d'identite et dispositifs pour la mise en oeuvre des procedes
FR2948518A1 (fr) * 2009-07-23 2011-01-28 France Telecom Procede de conversion d'un premier chiffre en un deuxieme chiffre
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
WO2014118257A1 (fr) 2014-08-07
FR3001848A1 (fr) 2014-08-08
FR3001848B1 (fr) 2015-01-09
US20150365229A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
EP2951944A1 (fr) Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming
EP2323306B1 (fr) Procédé de transmission de données sécurisé et système de chiffrement et de déchiffrement permettant une telle transmission
EP2819052B1 (fr) Procédé et serveur de traitement d'une requête d'accès d'un terminal à une ressource informatique
WO2020169542A1 (fr) Méthode cryptographique de vérification des données
FR3054905A1 (fr) Procede de generation de cle et procede de controle d'acces
EP2661715A1 (fr) Dispositif et procède de stockage en ligne, dispositif et procède d'émission, dispositif et procède de réception
CN103093411A (zh) 基于随机二态图像的加密-解密方法
EP2909963B1 (fr) Procédé de signature électronique à signature ephémère
EP4227832A1 (fr) Schema d'authentification post-quantique optimise sans signature, procedes et dispositifs
WO2023046557A1 (fr) Système et méthode de génération de clé secrète sûre
WO2011083232A1 (fr) Procede de chiffrement et de dechiffrement
EP2568406A1 (fr) Procédé de mise en oeuvre, a partir d'un terminal, de données cryptographiques d'un utilisateur stockées dans une base de données
FR3059445A1 (fr) Procede de chiffrement cherchable
EP3769461A1 (fr) Procede d'emission de donnees depuis un vehicule automobile et procede de reception desdites donnees par un autre vehicule, a travers un canal de communication radio
EP4635126A1 (fr) Procedes de distribution quantique et dispositifs de telecommunication associes
EP2659615A1 (fr) Procede et systeme permettant de tester une integrite cryptographique d'une donnee tolerante aux erreurs
WO2021156078A1 (fr) Procédé et dispositif d'évaluation de correspondance d'ensembles de données structurées protégées par le chiffrement
FR3158003A1 (fr) Procédé amélioré d'échange de clés s'appuyant sur un réseau quantique ; infrastructure de communication associée.
FR3158001A1 (fr) Procédé d’échange de clés à intégrité garantie s’appuyant sur un réseau quantique ; infrastructure de communication associée.
FR3158002A1 (fr) Procédé amélioré d’échange de clés s’appuyant sur un réseau quantique et un service de sécurité ; infrastructure de communication associée.
EP4099614A1 (fr) Procédés d'enrolement de données pour vérifier l'authenticité d'une donnée de sécurité ou de verification de l'authenticité d'une donnée de securité
FR3161085A1 (fr) Procédé et dispositif de communication sécurisé utilisant un identifiant dérivé de manière déterministe
FR3143148A1 (fr) Procédés d’authentification mutuelle, dispositif électronique, système et programmes d’ordinateur associés.
FR3107414A1 (fr) Procédé de calcul d’une clé de session, procédé de récupération d’une telle clé de session
WO2007125263A2 (fr) Procede de securisation de donnees

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