Brevet FR2984559A1 — publié le 20130621

DOMAINE DE L'INVENTION La présente invention concerne de manière générale l'identification d'individus ou d'objets, l'identification étant réalisée par comparaison d'une donnée d'un individu ou d'un objet que l'on souhaite identifier à un ensemble de données de même nature d'individus ou d'objets répertoriés, ces données étant stockées dans une base. L'invention s'applique notamment à l'identification biométrique d'un individu, dans laquelle les données comparées de l'individu et de la base de données sont des informations biométriques relatives par exemple à l'iris, à l'empreinte digitale, ou encore à la forme du visage du porteur. ETAT DE LA TECHNIQUE De nombreuses techniques d'identification sont déjà connues. Généralement, elles sont mises en oeuvre conjointement par un serveur de contrôle d'un individu ou d'un objet, qui peut procéder à l'acquisition d'une donnée d'un individu ou d'un objet, et par un serveur d'une base comprenant N données 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. Il existe deux problématiques majeures dans ce domaine, particulièrement dans le cas de l'identification biométrique d'individus. La première est liée à la sécurité et à la confidentialité du processus d'identification : en effet, la base de données biométriques comporte des informations privées, et le serveur de contrôle ne doit pas avoir accès à ces informations de la base. De même, le serveur de gestion de la base de données ne doit pas récupérer d'informations sur l'individu à identifier, en particulier la donnée biométrique de l'individu à identifier. Pour répondre à cette problématique, des systèmes de calcul sécurisé ont été développés. On connaît en particulier le calcul sécurisé multipartite, (connu sous l'acronyme anglais SMC pour Secure Multi-Party Computation), qui consiste à réaliser un calcul entre plusieurs participants détenant chacun une ou plusieurs entrées d'une fonction à calculer, de sorte que les participants apprennent à l'issue du calcul uniquement le résultat du calcul. De tels systèmes sont par exemple proposés dans les publications suivantes : Z. Erkin, M. Franz, J. Guajardo, S. Katzenbeisser, I. Lagendijk, and T. Toft. Privacy-preservinq face recognition. In Privacy Enhancing Technologies, 2009. A. C.-C. Yao. How to generate and exchange secrets (extended abstract). In FOCS, 1986. A.-R. Sadeghi, T. Schneider, and I. Wehrenberg. Efficient privacy- preserving face recognition. In ICISC, 2009. Le second article décrit une méthode de calcul sécurisé appelée « protocole de Yao ». Cette méthode est explicitée dans la suite. Le dernier article présente une méthode mettant en oeuvre ce protocole de Yao dans le contexte de l'identification 20 biométrique. Ces méthodes permettent d'assurer aux calculs de fonctions de comparaison une sécurité importante. En revanche, elles ne permettent pas de répondre à la deuxième problématique majeure : la minimisation du temps et de la capacité de calcul. 25 En effet, le calcul sécurisé appliqué N fois sur une donnée biométrique complète est très coûteux en temps de calcul et en quantité de données échangées. Il existe donc un besoin pour identifier un individu à partir d'une donnée biométrique de façon sécurisée, et de façon plus rapide et moins coûteuse en 30 capacité de calcul que dans les solutions déjà proposées. PRESENTATION DE L'INVENTION L'invention propose à cet égard un procédé d'identification sécurisé d'un individu ou d'un objet, par comparaison avec des données d'une base de données, qui comprend une première phase de filtrage rapide et sécurisé pour identifier les données de la base présentant le plus de similarité avec la donnée de l'individu ou de l'objet, et une deuxième étape de calcul sécurisé permettant d'identifier la ou les données présentant un taux de similarité avec la donnée de l'individu ou de l'objet qui dépasse un seuil prédéterminé. La première étape, de filtrage rapide et sécurisé, permet de raccourcir considérablement le temps de calcul car les opérations sont réalisées sur des données de taille réduites par rapport aux données originales. La seconde étape, de calcul sécurisé, n'est menée que sur les données sélectionnées, et comporte donc un nombre d'opérations de calcul inférieur à la taille de la base de données originale (N). La présente demande a pour objet un procédé d'identification d'un individu ou d'un objet, dans un système comprenant un serveur de contrôle, adapté pour acquérir une donnée de l'individu ou de l'objet à identifier, et un serveur de gestion d'une base de données comprenant N données de référence indexées de N individus répertoriés, dans lequel, pour identifier l'individu ou l'objet, on compare sa donnée avec chacune des N données de la base, afin de déterminer si la donnée de l'individu ou l'objet à identifier correspond à l'une des N données de référence des N individus répertoriés Le procédé comprend des étapes au cours desquelles: le serveur de contrôle acquiert la donnée de l'individu ou l'objet à identifier, on convertit les données de références de la base et la donnée de l'individu ou l'objet à identifier en données simplifiées de moindre taille, on détermine de façon sécurisée, par comparaison entre chacune des N données simplifiées de la base de données et la donnée simplifiée de l'individu ou l'objet à identifier, un ensemble de p index de données simplifiées de la base présentant le plus de similarités avec la donnée simplifiée de l'individu ou l'objet à identifier, le serveur de gestion brouille les N données de référence de la base de données, et transfère au serveur de contrôle p données brouillées correspondant aux données simplifiées identifiées précédemment, à partir des p données brouillées, le serveur de contrôle détermine, par calcul sécurisé multipartite entre chacune des p données brouillées et la donnée de l'individu ou l'objet, le ou les index d'une ou plusieurs données brouillées dont les données de référence correspondantes présentent un taux de similarité avec la donnée de l'individu ou l'objet qui excède un seuil prédéterminé. Avantageusement, mais facultativement, le procédé selon l'invention comprend en outre au moins l'une des caractéristiques suivantes : Le transfert des p données brouillées depuis le serveur de gestion vers le serveur de contrôle met en oeuvre une technique de transfert inconscient. Au cours du procédé, après que le serveur de contrôle a déterminé le ou les index des données brouillées dont les données de référence correspondantes présentent un taux de similarité avec la donnée de l'individu ou de l'objet qui excède un seuil prédéterminé, le serveur de contrôle communique ledit index au serveur de gestion, et à partir du ou des index, le serveur de gestion détermine la ou les données de référence de la base correspondant audit ou auxdits index, et identifie l'individu ou l'objet comme un individu ou un objet répertorié dans la base possédant la donnée de référence correspondant à ou aux index. Pour brouiller les N données de la base, le serveur de gestion génère, pour chacune des p données de référence correspondant aux données simplifiées sélectionnées, une base de données brouillée correspondante comprenant N données brouillées pour lesquelles, pour chaque position possible d'un bit dans la représentation binaire des données correspondantes, une permutation aléatoire, est appliquée au bit de ladite position. L'identification porte sur un individu, et les données de références de la base et la donnée de l'individu à identifier sont des données biométriques. Les données biométriques sont des codes binaires d'images d'iris. Chaque donnée comprend un ensemble de bits indexés, et, au cours de l'étape de conversion des données en données simplifiées, on définit un ensemble d'indexation comprenant des numéros d'indexation des bits des données, et on convertit les données en ne conservant pour les données simplifiées que les bits indexés par les numéros de l'ensemble d'indexation, lesdits numéros d'indexation étant choisis pour concerner les bits les plus pertinents. - La détermination des données simplifiées de la base présentant le plus de similarités avec la donnée simplifiée de l'individu ou de l'objet est réalisée par calcul de distances de Hamming entre les données simplifiées de la base et la donnée simplifiée de l'individu. - L'étape de détermination des N données simplifiées de la base présentant le plus de similarités avec la donnée simplifiée de l'individu à identifier est mise en oeuvre par calcul multipartite sécurisé. - Au cours de l'étape de calcul multipartite sécurisé entre les données brouillées de la base et la donnée de l'individu, on calcule un taux de similarité entre chaque donnée de la base correspondante à chaque donnée brouillée et la donnée de l'individu, on compare les taux de similarité obtenus au seuil prédéterminé, pour sélectionner le ou les index de la ou les données de la base présentant un taux de similarité excédant ledit seuil. - Chaque étape de calcul multipartite sécurisé comprend les sous-étapes suivantes : o le serveur de gestion génère au moins un circuit confus de calcul d'une fonction à évaluer, chaque circuit confus ayant pour entrées un ensemble de clés de chiffrement de bits de données d'entrée de la fonction à évaluer et pour sortie les clés de chiffrement correspondant aux bits du résultat de la fonction évaluée, et comprenant les étapes de calcul de la fonction décomposées sous forme d'opérations logiques élémentaires, et un ensemble de clés de codage de chacune des entrées et sorties possibles de chaque opération logique élémentaire, o le serveur de gestion génère aléatoirement lesdites clés de codage, o le serveur de gestion communique au serveur de contrôle, en mettant en oeuvre une technique de transfert inconscient, pour chaque circuit confus, des clés de codages correspondant aux valeurs des bits des entrées de la fonction à évaluer, et une table de décodage de la sortie de chaque circuit confus ou d'une ou plusieurs sorties d'une opération logique de celui-ci, et o à partir des clés obtenues, le serveur de contrôle évalue chaque circuit confus en utilisant comme entrée les clés obtenues. - Pour calculer et comparer les taux de similarité entre les données correspondant aux données brouillées et la donnée de l'individu, un calcul sécurisé multipartite est mis en oeuvre, dans lequel le serveur de gestion génère pour chacune des données de la base sélectionnées un circuit confus correspondant, o les entrées de chaque circuit confus étant des clés de chiffrement de la donnée brouillée correspondante et celles de la donnée de l'individu, o la fonction à évaluer de chaque circuit confus étant le calcul du taux de similarité entre la donnée de la base correspondante et la donnée de l'individu, et la comparaison du taux de similarité avec le seuil prédéterminé, et o la sortie de chaque circuit étant le résultat de la comparaison du taux de similarité avec le seuil prédéterminé, dans lequel le serveur de gestion génère et transfère au serveur de contrôle, pour chaque circuit confus, des clés de codage brouillées correspondant aux valeurs possibles des bits de la donnée brouillée et des clés de codage correspondant aux valeurs possibles des bits de la donnée de l'individu, et transfère au serveur de contrôle les valeurs des bits de la donnée brouillée, et dans lequel les transferts des valeurs des bits de la donnée brouillée et des clés de codage correspondantes mettent en oeuvre une méthode de transfert inconscient. La fonction à évaluer de chaque circuit confus comprend le calcul de la distance de Hamming normalisée entre chaque donnée correspondant à la donnée brouillée et la donnée de l'individu. - La génération des clés de codage brouillées d'une donnée brouillée est réalisée en appliquant à des clés de codage générées aléatoirement pour chaque bit de la donnée correspondante de la base, une réindexation suivant la même permutation que celle appliquée audit bit de la donnée pour obtenir la donnée brouillée. - Pour sélectionner les p données simplifiées de la base présentant le plus de similarités avec la donnée simplifiée de l'individu à identifier, on met en oeuvre une méthode de calcul sécurisé multipartite dans lequel le serveur de gestion génère un circuit confus, o le circuit confus ayant pour entrées l'ensemble des clés de chiffrements des bits des données simplifiées de la base et celles de la donnée simplifiée de l'individu, o la fonction à évaluer étant le calcul des taux de similarités entre les données simplifiées de la base et la donnée simplifiée de l'individu suivi d'une étape de recherche des p données simplifiées de la base présentant le plus de similarités avec la donnée simplifiée de l'individu, l'évaluation du circuit permettant de retrouver les index des données simplifiées présentant le plus de similarités avec la donnée simplifiée de l'individu. - Le procédé comprend une étape préliminaire au cours de laquelle les données de la base sont réindexées de manière aléatoire par le serveur de gestion. L'invention concerne en outre un système d'identification d'un individu, comportant au moins un serveur de contrôle d'un individu à identifier, et au moins un serveur de gestion d'une base de N 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 de l'individu, et dans lequel le serveur de contrôle et le serveur de gestion comportent des moyens de traitement adaptés pour o réaliser un filtrage sécurisé de p données parmi un ensemble de N données de référence de la base présentant le plus de similarités avec la donnée de l'individu à identifier, et o par calcul sécurisé, identifier la ou les données présentant des similarités avec la donnée de l'individu à identifier excédant un seuil prédéterminé, sans que le serveur de contrôle n'obtienne d'informations sur les données de référence stockées dans la base de données, ni que le serveur de gestion n'obtienne d'informations sur la donnée de l'individu à identifier. 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 schématiquement un système adapté pour mettre en oeuvre le procédé selon l'invention La figure 2 représente les principales étapes d'un exemple de mise en oeuvre de l'invention. La figure 3a illustre un circuit confus du type employé dans le procédé selon l'invention, sur l'exemple d'une fonction logique « ET » à évaluer, Les figures 3b à 3e illustrent la façon dont sont cryptées des tables de vérité d'un circuit confus sur l'exemple de la table de vérité de la fonction logique « ET », Les figures 4a à 4d illustrent un exemple de fonction de comparaison mise en oeuvre dans l'étape de filtrage rapide. La figure 5 représente un exemple de mise en oeuvre de l'étape de filtrage rapide, La figure 6 représente la mise en oeuvre de l'étape de comparaison et de sélection de données préalablement filtrées. DESCRIPTION DETAILLEE D'AU MOINS UN EXEMPLE DE MISE EN OEUVRE En référence à la figure 1, est représenté schématiquement un exemple de mise en oeuvre d'une identification d'un individu I ou d'un objet. Cette identification peut par exemple être un contrôle d'accès à un lieu sécurisé. On prendra dans la suite l'exemple non limitatif de l'identification biométrique d'un individu. Une base de données DB comprend un ensemble de N données biométriques indexées bi, i étant compris entre 0 et N-1, d'individus répertoriés comme étant par exemple autorisés à pénétrer dans un lieu, ou au contraire dont la présence est interdite dans ce lieu. Cette base de données DB est associée à un serveur de gestion SG, qui est doté de moyens de calculs mis en oeuvre par un programme informatique approprié. L'individu I s'identifie auprès d'un serveur de contrôle SC, qui est également doté de moyens de calculs mis en oeuvre par un programme informatique approprié, et comprend en outre des moyens d'acquisition et de traitement d'une donnée propre à l'individu, notamment une donnée biométrique b. La donnée b peut provenir de manière connue d'une image numérisée et encodée d'un caractère biométrique tel que le visage, ou une empreinte digitale, ou encore l'iris de l'individu, ou une combinaison de plusieurs de ces données. A titre d'exemple non limitatif, on prendra par la suite le cas d'une acquisition numérique de l'iris de l'individu I. La donnée b peut également être stockée sous forme numérique dans un document d'identité de l'individu. La donnée b de l'individu et les données bo à bN..1 de la base doivent être de même nature afin d'être comparées. En particulier, les informations qu'elles contiennent doivent concerner les mêmes caractères biométriques : dans le présent exemple l'iris. Dans ce cas, la base de données DB peut également comprendre, pour chaque donnée d'iris bi, un code de masque m, correspondant, et le serveur de contrôle peut également acquérir un code de masque m correspondant à l'image d'iris b, ou traiter la donnée b en vue de l'obtenir. Ces codes de masque indiquent les zones de l'iris visibles, et donc exploitables, ces zones étant typiquement celles qui ne sont pas masquées par les paupières. Les codes de masque m et m, ont été représentés entre parenthèses dans les figures 1, 5 et 6, car ils sont optionnels, n'étant typiquement employés que dans le cas où le procédé d'identification est réalisé sur la base d'une donnée d'iris. De façon analogue, le serveur de contrôle génère, à partir de l'image de l'iris acquise auprès de l'individu I, un code de masque m correspondant à la partie visible de l'iris. Ces types de données contiennent en général beaucoup d'information, elles sont typiquement codées sous un format de 256 octets, soit 2048 bits. Dans la suite on nomme n le nombre de bits des données b et b,. On va maintenant décrire un exemple de mise en oeuvre de procédé d'identification en référence à la figure 2. Avant chaque processus d'identification, le serveur de gestion SG réindexe de façon aléatoire l'ensemble des données b, de la base (étape 10) afin que le serveur de contrôle SC ne puisse mémoriser aucune information sur l'historique des identifications et leurs correspondances avec les données biométriques utilisées pour celles-ci. Au cours d'une étape 100, le serveur de contrôle SC procède à l'acquisition de la donnée b de l'individu. Puis, il déclenche une première étape 200 de filtrage rapide des N données biométriques de la base, en identifiant les p données, p étant inférieur à N et fixé à l'avance par les serveurs SC et SG, présentant les plus grandes similarités avec b. Filtrage rapide Afin de minimiser le temps de calcul pour cette étape, le serveur de contrôle SC et le serveur de données SG simplifient les données b et bo à bwi, typiquement en réduisant la taille de ces données au cours d'une étape 210. A titre d'exemple, dans le cas où les données sont des images d'iris codées sur 2048 bits, les serveurs SC et SG peuvent réduire les tailles des données à 128 bits. Pour ce faire, les serveurs SC et SG peuvent convenir d'un ensemble d'indexation A qui soit un sous-ensemble de l'ensemble {1, .., n}, tels que les bits des données b et b, indexés par les éléments de A soient parmi les plus significatifs des données. On nomme t le cardinal de A, t étant inférieur à n. Dans le cas de l'exemple ci-dessus, n vaut 2048 et t vaut 128. Les serveurs SG et SC génèrent alors des données simplifiées s et s' i étant compris entre 0 et N-1, ces données comprenant respectivement les bits de b et b, indexés par A, de sorte que les données s et s, sont codées sur t bits au lieu de n initialement. Avec ces données simplifiées, les serveurs SC et SG peuvent réaliser N opérations de comparaison 1 : 1 entre s et chacune des si, i étant compris entre 0 et N-1, pour identifier les p données simplifiées si de la base DB les plus proches de s. Les fonctions mathématiques de comparaison de données biométriques sont connues de l'Homme de l'art. On peut par exemple, dans le cas où les données sont des images d'iris, calculer une distance de Hamming Di entre s et chacune des si, la distance de Hamming étant le nombre de bits incohérents entre les deux données comparées. Une technique de filtrage analogue est décrite dans le document F. Hao, J. Daugman, and P. Zielinski. "A fast search algorithm for a large fuzzv database". IEEE Transactions on Information Forensics and Security, 3(2), 2008. Les p données les plus proches de s sont dans ce cas les p données présentant les distances de Hamming les plus faibles avec s. L'étape de filtrage est réalisée de façon sécurisée, c'est-à-dire de sorte que les serveurs SG et SC n'obtiennent aucune information sur les données de l'autres, respectivement la donnée biométrique b de l'individu ou celles bi de la base. Pour ce faire on utilise par exemple une méthode de calcul sécurisé multipartite mettant en oeuvre le protocole de Yao décrit ci-après dans la description de la sécurisation de l'étape de filtrage en référence à la figure 5. Au préalable il est nécessaire d'expliciter deux pré-requis employés dans le protocole de Yao : les transferts inconscients et les circuits confus. Transferts inconscients Le protocole de Yao met en oeuvre des transferts inconscients (connus en anglais sous le nom « oblivious transfers »), qui sont des opérations de calcul entre deux parties P1 et P2. Dans ce type d'opération, P1 dispose d'une liste de N éléments indexés X' et P2 connaît le nombre N d'éléments de la liste et choisit un indice i entre 0 et N-1. Par transfert inconscient, P2 récupère le ième élément de P1, c'est-à-dire l'élément de P1 indexé par i. P1 n'apprend aucune information sur l'indice de l'élément récupéré par P2. P2 ne récupère quant à lui aucune information sur les autres éléments de la liste détenus par P1. Circuits confus Le protocole de Yao met également en oeuvre des circuits confus (connus en anglais sous le nom « garbled circuits »). La figure 3 illustre un exemple de réalisation d'un tel circuit confus. En bref, un circuit confus, dont un schéma est représenté à titre d'exemple en figure 3a, est un circuit binaire crypté obtenu à partir d'un circuit de calcul binaire de base d'une fonction à évaluer, ce circuit étant décomposé en une succession de portes logiques élémentaires. Le schéma du circuit binaire illustré en figure 3a ne comprend que la fonction élémentaire « ET », qui comporte deux entrées x et y, chacune pouvant prendre la valeur binaire 0 ou 1, et une sortie z, pouvant également prendre la valeur binaire 0 ou 1. De manière traditionnelle, à chaque porte logique est attribuée une table de vérité, établissant le lien logique entre les sorties et les entrées. On a illustré à titre d'exemple en figure 3b la table de vérité de la fonction logique « ET ». Pour assurer la sécurisation de l'évaluation de la fonction, chaque entrée et chaque sortie possibles de chaque porte logique élémentaire sont chiffrées par le créateur du circuit confus, au moyen de paires de clés de chiffrement aléatoires, correspondant aux deux valeurs booléennes possibles, propres à chaque entrée ou sortie. On a par exemple en figure 3c remplacé les valeurs binaires 0 et 1 que peut prendre x par des clés correspondantes kô et k;' et de même pour les valeurs prises par y et z. Ceci permet d'obtenir une table de vérité où les valeurs binaires d'entrées et de sorties sont remplacées par des clés de chiffrement. Les sorties de chaque porte logique sont ensuite cryptées par les clés de chiffrement des valeurs des entrées correspondantes, pour obtenir une table de vérité cryptée ou confuse (« garbled ») en figure 3d. Ainsi par exemple, dans le cas de la fonction ET, la clé de chiffrement kt) correspondant à la valeur 0 de z apparaît dans tous les cas où x et y ne sont pas égaux à 1. En revanche, cette clé kâ n'est pas cryptée de la même manière selon les valeurs prises par x et y : en effet, si x et y valent tous deux 0, la clé kt) est cryptée au moyen des clés k>à et go : on note cette clé cryptée Enc4ky(kt)). Enfin, on retire les clés d'entrée de la table, et les clés obtenues pour chaque sortie sont réordonnées de façon aléatoire comme en figure 3e, la table de vérité cryptée et brouillée ainsi obtenue est ce que l'on appelle véritablement le circuit confus. Pour pouvoir évaluer la fonction du circuit à partir des clés de chiffrement, une table de concordance T entre les clés de chiffrement du résultat de la fonction qu'on évalue et les valeurs correspondantes des bits est générée par le créateur du circuit. Protocole de Yao Enfin, le protocole de Yao est une méthode de calcul sécurisé dans laquelle plusieurs parties souhaitent réaliser un calcul à partir de données dont elles disposent, sans communiquer entre elles la teneur de ces données. Pour ce faire, l'une des parties crée un circuit confus de calcul d'une fonction à évaluer, comme décrit ci-dessus, ainsi que des paires de clés de chiffrement (une pour la valeur binaire 0 et une pour la valeur binaire 1) pour chacun des bits d'entrées et de sorties des portes logiques du circuit. Le créateur du circuit confus génère également une table de concordance T entre les clés de chiffrement du résultat de la fonction et le résultat lui-même. Le créateur du circuit confus envoie ensuite à l'autre partie (ou aux autres parties) le circuit confus, la table de concordance, et les clés de chiffrement des bits des données d'entrée appartenant au créateur. Ainsi, pour chaque bit x d'entrée du créateur du circuit égal à 0 (respectivement 1), le créateur envoie uniquement la clé de chiffrement lc>, (resp. kD. Comme ces clés sont aléatoires, les utilisateurs du circuit confus ne peuvent obtenir aucune information sur les bits correspondant des données détenues par le créateur. En outre, les utilisateurs du circuit confus récupèrent auprès du créateur, par transfert inconscient, les clés correspondant aux bits des données d'entrée de la fonction qu'ils possèdent. Ainsi, pour chaque bit y d'entrée de l'utilisateur, le créateur prépare une liste à deux éléments composée de kY0 et kY/ et l'index choisi par l'utilisateur pour le transfert inconscient est la valeur du bit y. Le recours à la méthode du transfert inconscient permet que le créateur n'obtienne aucune information sur les valeurs des bits des données des utilisateurs du circuit. Enfin, l'utilisateur du circuit confus peut évaluer la fonction à l'aide des clés qu'il a obtenues, et traduire le résultat qu'il obtient en sortie de la fonction à l'aide de la table de concordance. Il peut optionnellement communiquer le résultat au créateur du circuit. De retour à l'étape de filtrage rapide 200, pour mettre en oeuvre le filtrage des données biométriques simplifiées si de la base, les serveurs de contrôle SC et de gestion SG utilisent le protocole de Yao pour le calcul d'une fonction de filtrage de façon sécurisée dont les éléments constitutifs sont illustrés en figure 4. La mise 10 en oeuvre de cette étape est représentée schématiquement en figure 5. Le serveur de gestion SG crée au cours d'une étape 220 un circuit confus C représentant une fonction f (noté C(f) en figure 5) qui réalise à la fois le calcul de la distance de Hamming entre deux données, et les comparaisons des distances de Hamming entre elles pour identifier les p distances minimales. 15 La fonction de calcul de la distance de Hamming est connue de l'Homme du métier. On peut la noter Di = 11(s ® si) Il Les distances de Hamming calculées de la sorte sont comparées entre elles par les opérations logiques illustrées en figure 4d. Ces opérations comportent des sous-fonctions illustrées dans les figures 4a, 4b et 4c. 20 En figure 4a, la fonction X' est une fonction comprenant trois bits d'entrée, xi, et c, et qui génère en sortie (xi, yi) si c vaut 0, et (yi, xi) si c vaut 1. Cette fonction X' est généralisée en figure 4b à une fonction MUX' dont les entrées sont des données comprenant une pluralité de bits d'entrées xi, yi. En figure 4c est représentée une fonction de comparaison appelée « 2-1 ». 25 Elle a pour entrées deux distances de Hamming, en l'occurrence notées Do et D1 pour la comparaison des données simplifiées so et s1 à la donnée s de l'individu. En sortie, elle donne la distance de Hamming minimale entre les deux comparées. Pour ce faire elle utilise une fonction de comparaison « > » dont la sortie (1 si Do est supérieure à D1 et 0 sinon) est l'entrée c d'une fonction MUX' consécutive. 30 Enfin, la fonction générale de comparaison des distances de Hamming D, implémente en référence à la figure 4d une méthode de tri traditionnelle dans laquelle toutes les distances sont comparées entre elles par paires à des niveaux successifs au niveau des cases « 2-1 », les distances minimales d'un premier niveau étant les entrées des comparaisons du niveau suivant. On obtient à la fin de ce schéma logique la distance minimale Drain parmi les N distances comparées. Cette étape de comparaison est itérée p fois, à chaque fois en excluant la distance minimale identifiée à l'étape précédente, de façon à obtenir finalement les p distances Di minimales. Une fois le circuit confus C généré, le serveur de gestion SG crée les clés de chiffrement de chacune des entrées de la fonction f, ainsi que les clés de chiffrement des sorties de chaque opération logique élémentaire de la fonction f, les sorties d'une opération logique étant les entrées d'une opération logique suivante. Il génère en particulier une paire de clés de chiffrement pour chaque bit de chaque donnée simplifiée s et si. Enfin, le serveur de gestion SG génère une table de concordance T mais, contrairement aux protocoles de Yao traditionnels, cette table de concordance ne porte pas sur les clés de sorties de la fonction évaluée, mais sur les sorties des étapes « > » de comparaison des distances de Hamming de chaque opération « 21 ». Le serveur de gestion SG envoie au serveur de contrôle SC le circuit confus C, la table de concordance T, et les clés de chiffrement des bits des données biométriques simplifiées si de la base DB, notées, pour chaque bit u de chaque donnée si, k°(e) ou kl(s,!') selon la valeur du bit u. On note plus simplement sur la figure 5 l'ensemble des clés de chiffrement k(s0),...k(swil). En outre, par transfert inconscient, le serveur de contrôle SC récupère les clés de chiffrement k(s) des bits de la donnée biométrique simplifiée de l'individu s. Le serveur de contrôle SC peut alors évaluer au cours d'une étape 230 la fonction de comparaison entre les données simplifiées s, de la base et la donnée simplifiée s de l'individu à l'aide du circuit confus C et des clés k, pour identifier les p données si présentant le plus de similarités avec la donnée s de l'individu. Comme le serveur de contrôle SC ne possède que la table de concordance T des clés des sorties des étapes de comparaison « > », le résultat qu'il obtient n'est pas la valeur des différentes distances de Hamming, qui le cas échéant lui fourniraient des informations sur les données, mais les index des p données sio...sip_ 1 sélectionnées. A la fin de cette étape de filtrage, le serveur SC ne connaît que la liste {i0, ip-1} des indices des p données simplifiées {sic), , sio} présentant les distances de Hamming minimales avec la donnée s de l'individu, de sorte que le serveur de contrôle SC n'apprend aucune information sur les données simplifiées sélectionnées {sic), - - - , sip_i} et a fortiori sur les données de la base correspondantes {dio, - - - , Le serveur de gestion SG quant à lui n'a obtenu aucune information sur la donnée biométrique simplifiée s de l'individu et a fortiori sur la donnée b d'origine. Comparaison et sélection L'étape de comparaison et de sélection 300 est opérée sur les donnéesbii, j étant compris entre 0 et p-1, correspondant aux données simplifiées sii identifiées lors de l'étape de filtrage rapide 200. Elle a pour but de déterminer, à partir des p données simplifiées les plus proches de la donnée biométrique de l'individu, s'il existe une ou plusieurs données dont les similarités avec la donnée de l'individu excèdent un seuil q prédéterminé. De façon connue de l'Homme du métier, ce seuil est choisi pour permettre d'établir la correspondance de données biométriques avec des taux de faux positifs et de faux négatifs optimaux. De façon similaire au protocole de Yao, le serveur de gestion SG crée, au cours d'une étape 310, p circuits confus Co...Cp_i, chacun étant utilisé pour évaluer une fonction de comparaison f' à une donnée biométrique blé sélectionnée précédemment, (j étant compris entre 0 et p-1) et son masque correspondant mir en n'utilisant que les données brouillées correspondantes. La fonction de comparaison f' utilisée dans l'étape de comparaison et de sélection 300 est distincte de la fonction f utilisée pour le filtrage 200. Dans le cas où les données biométriques sont des images d'iris, la fonction de comparaison f' peut être la distance de Hamming normalisée, c'est-à-dire la distance de Hamming calculée sur les codes de 2048 bits, et prenant en compte les masques associés aux images d'iris, c'est-à-dire les codes indiquant les zones de l'iris qui sont masquées, typiquement par une paupière, et qui ne sont donc pas pertinentes pour la comparaison. On pourra pour plus d'information sur la distance de Hamming normalisée se référer à la méthode de Daugman décrite dans le document J. Daugman, « How Iris Recognition Works » IEEE transactions on circuits and systems for video technology, Vol. 14, No. 1, JANUARY 2004. Si on note X et Y deux images d'iris codées sur 2048 bits, et m(X) et m(Y) leurs masques associés, la distance de Hamming normalisée s'écrit HD(X,Y) = 11(xeMm(x)rim(Y)11 iim(x)nmeoil - L'objet de cette étape est donc de calculer f(b, bii) = HD(b, blé) pour toutes les données b1 préalablement sélectionnées lors de l'étape de filtrage rapide, et de retenir celle pour laquelle HD (b, b1) Pour optimiser le calcul, les circuits Ci, j étant compris entre 0 et p-1, sont de préférence construits pour effectuer la comparaison (X Y)nm(x)nmmil Le serveur de contrôle SC doit enfin récupérer les valeurs des données bii de la base qui ont été sélectionnées, ainsi que les clés correspondantes, afin de pouvoir les comparer à la donnée b de l'individu, sans pour autant apprendre d'informations sur ces données. Pour ce faire, le serveur de gestion SG brouille d'abord l'ensemble des données bi, au cours d'une étape 320, pour obtenir des données brouillées b'i. Plus précisément, le serveur de gestion SG génère, pour chacune des p données de référence bie ..., bip_, correspondant aux données simplifiées sélectionnées sio, ..., si , et pour chaque position u possible d'un bit dans la représentation binaire de cette donnée, une permutation aléatoire Tu) de {0,1}, et applique ladite permutation aléatoire Tuii au bit de ladite position u de chacune des N données bide la base pour créer p bases de données brouillées correspondant aux données initiales (bi) de la base. Ces bases peuvent être notées DB'i =hi 0,ri,bN-1,i;1où pour tout u compris entre 1 et n, et pour tout k compris entre 0 et N-1, = tuji(b11). La permutation de {0,1} ne peut avoir que deux résultats, sur les bits des données b1: soit elle convertit les valeurs binaires des bits (1, 0) en leur opposée (0, 1) soit elle maintient les valeurs des bits. Le serveur de gestion peut de la même manière brouiller les masques m1 pour obtenir des masques brouillés Par transfert inconscient, le serveur de contrôle SC récupère les données brouillées c'est-à-dire les données d'index j compris entre 0 et p-1, et brouillées par les permutations respectives d'indices On notera b't les données brouillées correspondant aux données sélectionnées b11. D'autres méthodes de brouillage peuvent être envisagées. Le serveur de contrôle n'obtient aucune information sur les données sélectionnées, et le serveur de gestion SG n'obtient aucune information sur les index de ces données. Puis, afin que le serveur de contrôle puisse évaluer le circuit confus à l'aide des données brouillées eij, le serveur de gestion brouille les clés de chiffrement correspondantes. Les clés de chiffrement générées par le serveur de gestion SG pour un bit u 5 d'une donnée b, de la base sont notées respectivement k°(bu) et kl(e)) en fonction de la valeur binaire du bit u. Pour un bit d'une donnée brouillée b'iuj, les clés brouillées correspondantes sont k'° (b') = kr'ekbp et ka = kl(1)(b4), en fonction de la valeur binaire, 0 ou 1 du bit u. Avec ces clés de chiffrement, le serveur de contrôle SC peut 10 effectuer les calculs à partir des fonctions brouillées puisqu'on dispose de la relation k'(b'U) = k(b). Le serveur de gestion récupère enfin, par transfert inconscient, les clés de chiffrement k'° (b') ou lel (Viti), (notées plus simplement sur la figure 6 15 k'(b10...blip_i)) pour chacun des bits de chacune des données biométriques brouillées, en fonction des valeurs binaires respectives de ces bits. Il évalue enfin la fonction au cours d'une étape 330 à partir des clés de chiffrement obtenues, qui rend pour résultat le fait que la donnée biométrique bi; 20 correspondant à la donnée brouillée correspond ou non à b au-delà du seuil n prédéterminé. A l'issue de l'ensemble des évaluations réalisées sur les circuits confus CJ, le serveur de contrôle SC dispose de l'index i de la donnée biométrique b, stockée 25 dans la base qui correspond à la donnée de l'individu, si elle existe. Le serveur peut également disposer de plusieurs index, si plusieurs données de la base correspondent à celle de l'individu L Le serveur de contrôle SC communique l'index i1D obtenu au serveur de gestion SG au cours d'une étape 400, le serveur de gestion SG qui identifie alors la 30 donnée biométrique bo, et l'individu répertorié correspondant, qui a été identifié comme l'individu I. Si le système d'identification est placé en amont d'une zone à accès contrôlé, par exemple, le serveur de contrôle SC ou le serveur de gestion SG peuvent autoriser ou non l'accès de l'individu I à la zone. Ainsi le procédé selon l'invention permet une identification plus rapide que les procédés proposés jusqu'à présent, grâce à l'étape de filtrage rapide réalisée sur des données biométriques simplifiées. Elle reste pourtant tout à fait sûre, grâce à l'étape de brouillage des données sélectionnées après l'étape de filtrage rapide.10 REVENDICATIONS1. Procédé d'identification d'un individu ou d'un objet (I), dans un système comprenant un serveur de contrôle (SC), adapté pour acquérir une donnée (b) de l'individu (I) ou de l'objet à identifier, et un serveur de gestion (SG) d'une base de données (DB) comprenant N données de référence (b,) indexées de N individus répertoriés, dans lequel, pour identifier l'individu ou l'objet (I), on compare sa donnée (b) avec chacune des N données (b1) de la base, afin de déterminer si la donnée (b) de l'individu ou l'objet (I) à identifier correspond à l'une des N données (lai) de référence des N individus répertoriés, le procédé étant caractérisé en ce qu'il comprend des étapes au cours desquelles: - le serveur de contrôle (SC) acquiert la donnée (b) de l'individu ou l'objet à identifier, on convertit les données de références (b,) de la base et la donnée (b) de l'individu ou l'objet (I) à identifier en données simplifiées (s,, s) de moindre taille, - on détermine de façon sécurisée, par comparaison entre chacune des N données simplifiées (s1) de la base de données (DB) et la donnée simplifiée (s) de l'individu ou l'objet (I) à identifier, un ensemble de p index (i0,...,ip-1) de données simplifiées (si., ... sil, de la base (DB) présentant le plus de similarités avec la donnée simplifiée (s) de l'individu ou l'objet (I) à identifier, le serveur de gestion (SG) brouille les N données de référence (b1) de la base de données (DB), et transfère au serveur de contrôle p données brouillées (b' ip_1) correspondant aux données simplifiées (s10, ...,sip_1) identifiées précédemment, - à partir des p données brouillées (13:i0, ,19.ipi), le serveur de contrôle (SC) détermine, par calcul sécurisé multipartite entre chacune des p données brouillées (11', ..., b'- et la donnée (b) de l'individu ou l'objet, le ou les 10 p.1 ) index ('ID) d'une ou plusieurs données brouillées (b'ÎÏD) dont les données de référence correspondantes (bill)) présentent un taux de similarité avec la donnée (b) de l'individu ou l'objet qui excède un seuil (q) prédéterminé. 2. Procédé d'identification selon la revendication précédente, dans lequel le transfert des p données brouillées (b'i0, ...,1).1,) depuis le serveur de gestion (SG) vers le serveur de contrôle (SC) met en oeuvre une technique de transfert inconscient. 3. Procédé d'identification selon la revendication 1, dans lequel, après que le serveur de contrôle (SC) a déterminé le ou les index (iID) des données brouillées (Will)) dont les données de référence correspondantes (bill)) présentent un taux de similarité avec la donnée (b) de l'individu (I) ou de l'objet qui excède un seuil (q) prédéterminé, le serveur de contrôle (SC) communique ledit index (ilD) au serveur de gestion (SG), et à partir du ou des index (i10), le serveur de gestion (SG) détermine la ou les données de référence (bill)) de la base correspondant audit ou auxdits index, et identifie l'individu (i) ou l'objet comme un individu ou un objet répertorié dans la base (DB) possédant la donnée de référence (bill)) correspondant à ou aux index (iID). 4. Procédé d'identification selon la revendication 1, dans lequel, pour brouiller les N données (b,) de la base (DB), le serveur de gestion (SG) génère, pour 20 chacune des p données de référence (blé) correspondant aux données simplifiées sélectionnées( sit), une base de données brouillée (DBii) correspondante comprenant N données brouillées (b'1) pour lesquelles, pour chaque position (u) possible d'un bit dans la représentation binaire des données correspondantes (b,), une permutation aléatoire (Tuii), est appliquée au bit de ladite position (u) . 25 5. Procédé d'identification selon la revendication 1, dans lequel l'identification porte sur un individu, et les données de références (b1) de la base (DB) et la donnée (b) de l'individu (I) à identifier sont des données biométriques. 30 6. Procédé d'identification selon la revendication précédente, dans lequel les données biométriques (b, 1)1) sont des codes binaires d'images d'iris. 7. Procédé d'identification selon la revendication 1, dans lequel chaque donnée (b, b,) comprend un ensemble de bits indexés, et dans lequel, au cours de l'étape de conversion des données (b, bi) en données simplifiées (s, s,), on définit un ensemble d'indexation (A) comprenant des numéros d'indexation des bits des données (b, bi), et on convertit les données (b, b,) en ne conservant pour les données simplifiées (s, si) que les bits indexés par les numéros de l'ensemble d'indexation, lesdits numéros d'indexation étant choisis pour concerner les bits les plus pertinents. 8. Procédé selon la revendication précédente, dans lequel la détermination des données simplifiées (si) de la base (DB) présentant le plus de similarités avec la donnée simplifiée (s) de l'individu (I) ou de l'objet est réalisée par calcul de distances de Hamming entre les données simplifiées (si) de la base (DB) et la donnée simplifiée (s) de l'individu. 9. Procédé d'identification selon la revendication 1, dans lequel l'étape de détermination des N données simplifiées (si) de la base (DB) présentant le plus de similarités avec la donnée simplifiée (s) de l'individu (I) à identifier est mise en oeuvre par calcul multipartite sécurisé. 10. Procédé d'identification selon l'une des revendications précédentes, dans lequel, au cours de l'étape de calcul multipartite sécurisé entre les données brouillées (b'10, b'; P-1) de la base (DB) et la donnée (b) de l'individu, on calcule un taux de similarité entre chaque donnée de la base (b10, ...,131p.i) correspondante à chaque donnée brouillée (blio, b`; P-1) et la donnée de l'individu (b), on compare les taux de similarité obtenus au seuil (q) prédéterminé, pour sélectionner le ou les index de la ou les données de la base (DB) présentant un taux de similarité excédant ledit seuil (q). 11. Procédé selon l'une des revendications précédentes, dans lequel chaque étape de calcul multipartite sécurisé comprend les sous-étapes suivantes : - le serveur de gestion (SG) génère au moins un circuit confus (C) de calcul d'une fonction (f) à évaluer,chaque circuit confus (C) ayant pour entrées un ensemble de clés de chiffrement de bits de données d'entrée de la fonction (f) à évaluer et pour sortie les clés de chiffrement correspondant aux bits du résultat de la fonction (f) évaluée, et comprenant : o les étapes de calcul de la fonction (f) décomposées sous forme d'opérations logiques élémentaires, et o un ensemble de clés (k) de codage de chacune des entrées et sorties possibles de chaque opération logique élémentaire, le serveur de gestion (SG) génère aléatoirement lesdites clés de codage (k), le serveur de gestion (SG) communique au serveur de contrôle (SC), en mettant en oeuvre une technique de transfert inconscient, pour chaque circuit confus (C), o des clés de codages (k) correspondant aux valeurs des bits des entrées de la fonction (f) à évaluer, et o une table de décodage (T) de la sortie de chaque circuit confus (C) ou d'une ou plusieurs sorties d'une opération logique de celui-ci, et à partir des clés (k) obtenues, le serveur de contrôle (SC) évalue chaque circuit confus (C) en utilisant comme entrée les clés obtenues. 12. Procédé selon la revendication précédente, dans lequel, pour calculer et comparer les taux de similarité entre les données (bics, b; P-1) correspondant aux données brouillées (bvio, b'ip_i) et la donnée (b) de l'individu, un calcul sécurisé multipartite est mis en oeuvre, dans lequel le serveur de gestion (SG) génère pour chacune des données de la base sélectionnées un circuit confus correspondant, les entrées de chaque circuit confus (Co... Cp_i) étant des clés de chiffrement de la donnée brouillée (b'ie b'ip_i) correspondante et celles de la donnée (b) de l'individu (I), la fonction (f') à évaluer de chaque circuit confus étant le calcul du taux de similarité entre la donnée de la base correspondante (bics, et la donnée (b) de l'individu, et la comparaison du taux de similarité avec le seuil (r1) prédéterminé, et la sortie de chaque circuit (Co... Cp_i) étant le résultat de la comparaison du taux de similarité avec le seuil (r1) prédéterminé,dans lequel le serveur de gestion (SG) génère et transfère au serveur de contrôle (SC), pour chaque circuit confus (Co.' Co), des clés de codage brouillées (k') correspondant aux valeurs possibles des bits de la donnée brouillée (b'10, b'ip.i) et des clés de codage (k) correspondant aux valeurs possibles des bits de la donnée (b) de l'individu, et transfère au serveur de contrôle (SC) les valeurs des bits de la donnée brouillée, et dans lequel les transferts des valeurs des bits de la donnée brouillée et des clés de codage correspondantes mettent en oeuvre une méthode de transfert inconscient. 13. Procédé selon la revendication précédente dans lequel la fonction (f) à évaluer de chaque circuit confus (Co... Co) comprend le calcul de la distance de Hamming normalisée entre chaque donnée (bio, correspondant à la donnée brouillée (b'10, et la donnée (b) de l'individu (I). 14. Procédé d'identification selon l'une des revendications 11 ou 12 en combinaison avec la revendication 4, dans lequel la génération des clés de codage brouillées (k') d'une donnée brouillée (b'ii) est réalisée en appliquant à des clés de codage (k) générées aléatoirement pour chaque bit de la donnée (b11) correspondante de la base, une réindexation suivant la même permutation (Tuil) que celle appliquée audit bit de la donnée (b11) pour obtenir la donnée brouillée 15. Procédé d'identification selon la revendication 10, au cours duquel, pour sélectionner les p données simplifiées (si., sie j de la base (DB) présentant le plus de similarités avec la donnée simplifiée (s) de l'individu (I) à identifier, on met en oeuvre une méthode de calcul sécurisé multipartite dans lequel le serveur de gestion (SG) génère un circuit confus, o le circuit confus ayant pour entrées l'ensemble des clés de chiffrements des bits des données simplifiées (si., ..., s; P-1) de la base (DB) et celles de la donnée simplifiée (s) de l'individu (I),o la fonction à évaluer étant le calcul des taux de similarités entre les données simplifiées (s10, ...,sip_i) de la base (DB) et la donnée simplifiée (s) de l'individu (I) suivi d'une étape de recherche des p données simplifiées de la base présentant le plus de similarités avec la donnée simplifiée (s) de l'individu, l'évaluation du circuit permettant de retrouver les index (i0,...,ip-1) des données simplifiées (si., sip )présentant le plus de similarités avec la donnée simplifiée (s) de l'individu. 16. Procédé d'identification selon la revendication 1, comprenant une étape préliminaire au cours de laquelle les données (b0... bbil) de la base (DB) sont réindexées de manière aléatoire par le serveur de gestion (SG). 17. Système d'identification d'un individu, comportant au moins un serveur de contrôle (SC) d'un individu (I) à identifier, et au moins un serveur de gestion (SG) d'une base (DB) de N données de référence (b0...bw1) d'individus répertoriés, le serveur de contrôle (SC) étant adapté pour procéder à l'acquisition d'une donnée (b) de l'individu (I), le système étant caractérisé en ce que le serveur de contrôle (SC) et le serveur de gestion (SG) comportent des moyens de traitement adaptés pour réaliser un filtrage sécurisé de p données (1)10,...,bip_1) parmi un ensemble de N données de référence de la base (DB) présentant le plus de similarités avec la donnée (b) de l'individu (I) à identifier, et o par calcul sécurisé, identifier la ou les données (bilD) présentant des similarités avec la donnée (b) de l'individu (I) à identifier excédant un seuil (q) prédéterminé, sans que le serveur de contrôle (SC) n'obtienne d'informations sur les données de référence (b0...bw1) stockées dans la base de données (DB), ni que le serveur de gestion (SG) n'obtienne d'informations sur la donnée (b) de l'individu (I) à identifier.