Brevet FR3031641A1 — publié le 20160715

Procédé d'identification d'une entité DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine de l'identification d'une entité, individus ou objets. Plus précisément, elle concerne un procédé d'identification sécurisée d'une entité. ETAT DE LA TECHNIQUE Afin de réaliser une identification d'une entité telle qu'un individu, une donnée biométrique de cet individu peut être utilisée afin d'identifier cette entité par rapport à une base de données biométriques, ou bien au moins afin de déterminer un nombre restreint d'entités candidates pour une telle identification parmi celles enregistrées dans une telle base de données. Pour cela, une donnée biométrique de l'entité à identifier est généralement acquise et comparée à des données biométriques de référence acquises préalablement et stockées dans une base de données. Une telle comparaison permet de déterminer si cette base de données contient une donnée biométrique de référence identique, à une erreur tolérable près, à celle de l'individu à identifier ou plusieurs données proches de celle de l'individu à identifier. Une telle identification peut présenter un niveau élevé de sécurité grâce à l'unicité des données biométriques d'un individu comme son empreinte ADN ou le dessin de son iris. En contrepartie, de telles données peuvent être volumineuses, rendant alors très couteuse leur comparaison une à une à l'ensemble des données de référence d'une base de données pouvant en contenir des millions. Afin de diminuer le coût d'une identification biométrique, des procédés existants, tel que celui divulgué dans W02013/092916 « Biometric identification using filters and by secure multipart calculation », Morpho, A. Patey, proposent d'effectuer tout d'abord un filtrage des données biométriques acquises et de référence afin d'obtenir des données simplifiées, moins lourdes, dont la comparaison est moins couteuse. Une telle comparaison permet de déterminer rapidement les données de référence de la base de données les plus proches de la donnée biométrique acquise. Ces données de référence sont de bons candidats dans la recherche d'une donnée biométrique de référence correspondant à celle de l'individu. La donnée biométrique acquise, complète, peut ensuite être par 3031641 2 exemple comparée uniquement à ces données de référence les plus proches afin de déterminer si la base de données contient une donnée biométrique de référence correspondant à l'individu et si celui-ci est identifié avec succès. 5 Un tel processus d'identification peut être mis en oeuvre par un échange d'informations entre un serveur de contrôle réalisant l'acquisition de la donnée biométrique de l'individu à identifier et un serveur de gestion ayant accès au contenu de la base de données biométriques de référence. Afin d'éviter de compromettre la sécurité du mécanisme d'identification, il 10 est nécessaire de maintenir la confidentialité des données de référence stockées dans une telle base de données. Un attaquant ne doit par exemple apprendre aucune information, par l'intermédiaire du serveur de contrôle, concernant ces données en tentant de s'identifier, même en le faisant à de multiples reprises. De même, afin de garantir l'anonymat et la vie privée des individus tentant de 15 s'identifier, le serveur de gestion ne doit apprendre aucune information les concernant lors d'une tentative d'identification, pas même la donnée biométrique acquise par le serveur de contrôle. Pour cela, des protocoles de calcul sécurisés peuvent être employés. De tels protocoles, tels que le protocole GMW (O. Goldreich, S. Micali, and A. 20 Wigderson, "How to play any mental game or a completeness theorem for protocols with honest majority", Symposium on Theory of Computing (STOC), pages 218-229. ACM, 1987) ou le protocole de Yao (Andrew Chi-Chih Yao, « How to generate and exchange secrets », Foundations of Computer Science, 1986, 27th Annual Symposium, pages 162-167, IEEE, 1986) permettent de 25 calculer le résultat de l'application d'une fonction à des données partagées entre deux entités sans qu'aucune de ces identités n'obtienne d'informations sur les données possédées par l'autre entité ou sur les résultats des calculs intermédiaires nécessaires au calcul du résultat final. De tels protocoles peuvent ainsi être appliqués à la recherche parmi les données de référence simplifiées de 30 celles présentant une distance minimale avec la donnée biométrique simplifiée acquise auprès de l'individu à authentifier afin que ni le serveur de contrôle, ni le serveur de gestion n'apprenne d'informations concernant les données fournies par l'autre serveur, et qu'aucun des deux serveurs n'ait connaissance de 3031641 3 l'ordonnancement des distances minimales correspondant aux données de référence fournies en résultat. Plus précisément, de tels protocoles peuvent être appliqués à un algorithme 5 de tri des distances entre la donnée biométrique simplifiée de l'individu et les données biométriques simplifiées de référence. Ces distances peuvent ainsi être triées de manière sécurisée par ordre croissant ou décroissant, et le nombre désiré de distances minimales peut être déterminé une fois l'ensemble des distances, correspondant à l'ensemble des données biométriques de référence, 10 triées. Alternativement, de tels protocoles peuvent être appliqués à un algorithme de recherche de valeur minimale. La distance minimale parmi l'ensemble des distances correspondant à l'ensemble des données biométriques de référence peut ainsi être déterminée de manière sécurisée. Une fois la distance minimale 15 ainsi déterminée soustraite de l'ensemble des distances évaluées, une telle recherche peut être conduite à nouveau parmi ce nouvel ensemble de distances afin de déterminer une deuxième distance minimale. Un tel processus peut être répété autant de fois que nécessaire jusqu'à obtenir le nombre souhaité de distances minimales. 20 Néanmoins, de tels procédés sécurisés d'évaluation d'un certain nombre de valeurs minimales parmi un grand ensemble de distances peuvent s'avérer très couteux. En effet, de tels protocoles sont basés sur l'évaluation sécurisée d'un circuit 25 booléen représentant les opérations de calcul à réaliser. Le coût d'une telle évaluation augmente alors avec le nombre de portes de ce circuit ne correspondant pas à une opération ou exclusif XOR (Kolesnikov, V., Schneider, T., Improved garbled circuit: Free XOR gates and applications, International Colloquium on Automata, Languages and Programming (ICALP'08). LNCS, vol. 30 5126, pp. 486-498. Springer (2008)), et avec la profondeur du circuit. Or les procédés existants de détermination de plusieurs distances minimales sécurisés par des protocoles à base de circuits booléens augmentent fortement le nombre de portes non-XOR du circuit booléen employé et la profondeur de ce circuit en requérant un tri de l'ensemble des distances parmi 3031641 4 lesquelles les distances minimales sont recherchées, ou bien en requérant le parcours de l'intégralité de ces distances autant de fois que le nombre de distances minimales à déterminer. L'application de tels procédés pour l'identification sécurisée d'un individu à 5 partir d'une base de données contenant un nombre important de données biométriques de référence présente alors un coût très élevé. Il existe donc un besoin d'un procédé d'identification sécurisée d'une entité permettant d'identifier un individu à l'aide d'un protocole de sécurisation à base de 10 circuits booléens pour un coût de calcul moindre, en minimisant le nombre de portes non-XOR et la profondeur du circuit booléen employé pour déterminer plusieurs distances minimales entre une donnée biométrique de l'individu et des données biométriques de référence. 15 PRESENTATION DE L'INVENTION La présente invention propose selon un premier aspect un procédé d'identification d'une entité, mis en oeuvre par un système d'identification comprenant un serveur de gestion susceptible d'être relié à un dispositif de stockage stockant des données biométriques de référence indexées 20 correspondant à des entités de référence et un serveur de contrôle susceptible d'acquérir une donnée biométrique de l'entité à identifier, ledit serveur de gestion et ledit serveur de contrôle étant susceptibles d'être reliés entre eux, à partir de données de distance indexées, lesdites données de distances indexées étant des distances calculées à partir des données biométriques de référence indexées 25 stockées et de la donnée biométrique de l'entité à identifier acquise, lesdites données de distance indexées étant partagées entre ledit serveur de contrôle et ledit serveur de gestion de sorte qu'aucune desdites données de distance ne soit connue du serveur de gestion ou du serveur de contrôle, lesdites données de distance indexées étant des entiers binaires de longueur q', ledit procédé 30 d'identification étant caractérisé en ce qu'il comprend : - une phase de détermination d'un ensemble d'indices de minima, ledit ensemble d'indices de minima comprenant au plus un nombre prédéterminé d'indices de données de distance minimales parmi lesdites données de distance indexées, ladite phase de détermination comprenant : 3031641 5 - préalablement, une étape d'initialisation lors de laquelle : o une liste de données à traiter est déterminée, ladite liste de données à traiter comprenant lesdites données de distance indexées, 5 o un nombre restant de données de distance indexées à écarter est déterminé, ledit nombre restant de données de distance indexées à écarter étant égal à la différence entre le nombre de données de distance indexées et le nombre prédéterminé d'indices, - une étape d'exécution comprenant, 10 pour chaque ensemble des jème bits, dits bits courants, des données de distance indexées comprises dans ladite liste de données à traiter, dites données à traiter, j étant un entier variant de q'-1 à 0, la mise en oeuvre des étapes suivantes, en commençant par l'ensemble des bits de poids fort des données à 15 traiter et en terminant par l'ensemble des bits de poids faible des données à traiter : o comparaison d'un nombre d'indices d'un premier groupe d'indices de données de distance indexées au nombre restant de données indexées à écarter, 20 ledit premier groupe d'indices comprenant les indices des données de distance indexées parmi ladite liste de données à traiter pour lesquelles ledit bit courant est égal à 1, o recherche d'indices de minima comprenant : ^ si le nombre d'indices du premier groupe est inférieur au 25 nombre restant de données indexées à écarter : - retrait, de ladite liste de données à traiter, des données dont les indices appartiennent au premier groupe et, - détermination d'un nouveau nombre restant de données indexées à écarter en soustrayant du nombre restant de 30 données indexées à écarter le nombre d'indices du premier groupe ; ^ sinon : - retrait, de ladite liste de données à traiter, des données de distance indexées dont les indices font partie d'un 3031641 6 deuxième groupe d'indices de données de distance indexées, ledit deuxième groupe comprenant les indices des données de distance indexées parmi ladite liste de 5 données à traiter pour lesquelles ledit bit courant est égal à 0, et - ajout desdits indices du deuxième groupe à l'ensemble d'indices de minima; - une phase d'identification de l'entité à identifier parmi les entités de 10 référence correspondant aux données biométriques de références stockées associées aux indices de données de distance minimales déterminés lors de la phase de détermination, les opérations sur des entiers binaires pour la mise en oeuvre d'au moins ladite étape d'exécution dudit procédé d'identification, étant traduites sous la forme 15 d'au moins un circuit booléen, ledit circuit booléen étant ensuite utilisé pour mettre en oeuvre au moins ladite étape d'exécution dudit procédé, cette mise en oeuvre étant réalisée de manière sécurisée entre le serveur de contrôle et le serveur de gestion à l'aide d'un protocole de calcul sécurisé multipartite (« Secure Multi party Computation » ou (SMC)) permettant une évaluation 20 sécurisée dudit circuit booléen. Un tel procédé permet de minimiser le coût d'une identification sécurisée d'une entité en ne lisant chaque bit de chaque donnée de distance indexée qu'une unique fois. La taille du circuit logique à évaluer de manière sécurisée est ainsi grandement réduite. 25 La phase d'identification peut comprendre une détermination d'au moins une donnée biométrique de référence similaire à la donnée biométrique acquise de l'entité à identifier, parmi les données biométriques de références stockées associées aux indices de données de distance minimales déterminés lors de la 30 phase de détermination. L'entité à identifier peut ainsi être identifiée uniquement à partir de sa donnée biométrique acquise en ne comparant celle-ci de manière précise qu'à un nombre limité de données biométriques de référence. 3031641 7 Le procédé d'identification selon le premier aspect peut comprendre, à l'issue de la phase de détermination, si le nombre d'indices de l'ensemble d'indices de minima déterminé est inférieur au nombre prédéterminé d'indices de données de distance minimales, une étape de complétion au cours de laquelle 5 des indices de données de distance indexées appartenant à la liste de données à traiter sont ajoutés à l'ensemble d'indices de minima, de sorte que ledit ensemble comprenne un nombre d'indices égal au nombre prédéterminé d'indices de données de distance minimales. Ceci permet d'obtenir le nombre souhaité de données de distance 10 minimales, même lorsque plusieurs données de distance indexées sont égales et qu'une partie seulement de ces distances égales doivent être considérées comme données de distance minimales. Dans un mode de mise en oeuvre, l'appartenance des données de distance 15 indexées à ladite liste de données à traiter est mémorisée sous la forme d'un marqueur de données à traiter, ledit marqueur de données à traiter étant un entier binaire de longueur égale au nombre de données de distance indexées et la valeur du ième bit dudit marqueur indiquant l'appartenance ou non de la ième donnée de distance indexée à ladite liste de données à traiter. 20 L'appartenance des indices des données de distance indexées à l'ensemble d'indices de minima peut également être mémorisée sous la forme d'un marqueur de minima, ledit marqueur de minima étant un entier binaire de longueur égale au nombre de données de distance indexées, la valeur du ième bit dudit marqueur indiquant l'appartenance ou non de l'indice i à l'ensemble d'indices de minima. 25 L'utilisation de tels marqueurs permet de déterminer à tout instant pour chaque donnée de distance indexée si elle doit continuer à être traitée ou non lors des étapes ultérieures de recherche et si elle a été déterminée comme une donnée de distance minimale sans avoir à ne relire aucune donnée de distance indexée. Chaque bit de chaque donnée de distance indexée n'est donc toujours lu qu'une 30 unique fois au cours de la détermination des k données de distance minimales. Ainsi le nombre de données de distance indexées dl, ..., d, étant égal à n : 3031641 8 - l'étape d'initialisation du procédé selon le premier aspect peut comprendre en outre l'initialisation de tous les bits du marqueur de données à traiter b et du marqueur de minima c à la valeur 1, - l'étape de comparaison du procédé selon le premier aspect peut comprendre des 5 étapes de : - détermination du nombre p d'indices du premier groupe en comptant le nombre d'éléments égaux à la valeur 1 parmi l'ensemble (di AND b1, , dr, AND bu), la notation d, représentant la valeur du jème bit de la donnée de distance indexée d'indice i, 10 - si le nombre p d'indices du premier groupe est inférieur au nombre restant de données indexées à écarter r, fixation d'un bit de comparaison e à la valeur 1, - sinon, fixation dudit bit de comparaison e à la valeur 0, - l'étape de recherche du procédé selon le premier aspect peut être mise en 15 oeuvre en réalisant : - la mise à jour du nombre restant de données indexées à écarter r, le nombre restant de données indexées à écarter r étant remplacé par la valeur [((r-p) XOR r) AND e] XOR r, - la mise à jour de chaque bit du marqueur de minima c, chaque ième bit 20 ci du marqueur de minima c étant remplacé par la valeur [(d OR e) OR (b XOR 1)] AND ci, - la mise à jour de chaque bit du marqueur de données à traiter b, chaque ième bit ID, du marqueur de données à traiter b étant remplacé par la valeur (e XOR d ,i) AND ID, 25 Ceci permet de mettre les opérations à réaliser sous la forme d'un circuit logique, et de minimiser la taille de celui-ci, afin de pouvoir évaluer celui-ci de manière sécurisée pour un coût réduit. Ladite étape de complétion peut alors comprendre successivement pour 30 chaque indice i des données de distance indexées : - si le nombre restant de données indexées à écarter r est supérieur à zéro, la détermination d'une nouvelle valeur du nombre restant de données indexées à écarter en soustrayant le ième bit ID, du marqueur de données à traiter b du nombre 3031641 9 restant de données indexées à écarter, et la mise à zéro de la valeur du ième bit b du marqueur de données à traiter b, - la mise à jour du ième bit c du marqueur de minima c par la valeur ci = ci AND (bi XOR 1). 5 L'intégration de ces opérations au sein du circuit logique à évaluer permet d'obtenir le nombre voulu de données de distance minimales de manière sécurisée, sans avoir à divulguer aucune donnée, notamment le marqueur de minima c, avant la fin de la détermination de l'ensemble des données de distance minimales à déterminer. 10 Lesdites données biométriques de référence peuvent être des entiers binaires et le procédé selon le premier aspect peut comprendre préalablement : - une phase d'acquisition par le serveur de contrôle de la donnée biométrique de l'entité à identifier, 15 - une phase d'obtention d'une donnée d'identité de l'entité à identifier et de données d'identité de références, à partir respectivement de la donnée biométrique acquise et des données biométriques de référence indexées, de sorte que ladite donnée d'identité de l'entité à identifier et les données d'identité de références soient des entiers binaires de moindre taille que celle 20 desdites données biométriques, les indices des données d'identité de référence étant associés aux indices des données biométriques de référence, - une phase de calcul des données de distance comprenant pour chaque donnée d'identité de référence le calcul sécurisé d'une distance entre la donnée d'identité 25 de l'entité à identifier et ladite donnée d'identité de référence. La phase d'identification du procédé selon le premier aspect peut comprendre en outre des étapes de : - calcul, pour chaque donnée biométrique de référence dont l'indice est associé à 30 un indice de l'ensemble de minima déterminé, d'un taux de similarité entre la donnée biométrique acquise de l'entité à identifier et ladite donnée biométrique de référence; - détermination d'au moins une donnée biométrique de référence dont le taux de similarité dépasse un seuil prédéterminé ; 3031641 10 - identification de l'entité à identifier à partir des données biométriques de référence déterminées. L'utilisation de données de distance simplifiées de moindre longueur que les données biométriques de référence permet de réaliser plus rapidement la 5 détermination des données de distance minimales et donc d'accélérer l'identification de l'entité à identifier. Dans une variante de mise en oeuvre : - le calcul d'un taux de similarité entre la donnée biométrique acquise de l'entité à 10 identifier et ladite donnée biométrique de référence comprend le calcul d'une distance entre la donnée biométrique acquise de l'entité à identifier et ladite donnée biométrique de référence ; - ladite au moins une donnée biométrique de référence déterminée est ladite au moins une donnée biométrique de référence pour laquelle la distance calculée est 15 inférieure à un seuil prédéterminé. Le protocole de calcul sécurisé multipartite (Secure Multi party Computation (SMC)) peut être le protocole de Yao ou le protocole GMW. 20 Selon un deuxième aspect, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé d'identification selon le premier aspect lorsque ce programme est exécuté par un processeur. 25 Selon un troisième aspect, l'invention concerne un système d'identification d'une entité comprenant un serveur de gestion susceptible d'être relié à un dispositif de stockage stockant des données biométriques de référence indexées correspondant à des entités de référence et un serveur de contrôle susceptible d'acquérir une donnée biométrique de l'entité à identifier, ledit serveur de gestion 30 et ledit serveur de contrôle étant susceptibles d'être reliés entre eux et partageant des données de distance indexées, de sorte qu'aucune desdites données de distance ne soit connue du serveur de gestion ou du serveur de contrôle, lesdites données de distances indexées étant des distances calculées à partir des données biométriques de référence indexées stockées et de la donnée 3031641 11 biométrique de l'entité à identifier acquise caractérisé en ce que : ledit serveur de contrôle et ledit serveur de gestion comprennent un processeur configuré pour mettre en oeuvre les phases et étapes d'un procédé d'identification selon le premier aspect. 5 De tels produit programme d'ordinateur et système d'identification présentent les mêmes avantages que ceux évoqués pour le procédé selon le premier aspect. 10 PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels : - la figure 1 représente un système d'identification selon un mode de 15 réalisation de l'invention ; - la figure 2 est un diagramme schématisant une mise en oeuvre d'un procédé d'identification selon l'invention. DESCRIPTION DETAILLEE 20 La présente invention concerne une mise en oeuvre d'un procédé d'identification d'une entité 1 par un système d'identification 2 comprenant un serveur de gestion 3 et un serveur de contrôle 4 susceptibles d'être reliés entre eux, comme représenté en Figure 1. Une telle entité peut être un individu ou bien un objet possédant des données biométriques tel qu'un passeport biométrique. Le 25 serveur de gestion peut être relié à un dispositif de stockage 5 stockant n données biométriques de référence indexées (Y1, ... pouvant être des entiers binaires de longueur Q, correspondant à n entités de référence enregistrées auprès du serveur de gestion. 30 Une telle identification peut être réalisée à partir d'un nombre n de données de distance indexées (d1,... ,d,) partagées entre le serveur de contrôle et le serveur de gestion. Ces données de distance peuvent être des données binaires 3031641 12 de longueur q' correspondant à des distances, par exemple de Hamm ing, calculées à partir d'une donnée biométrique de l'entité à identifier acquise par le serveur de contrôle et des données biométriques de référence indexées stockées dans le dispositif de stockage 5. 5 Les serveurs de contrôle et de gestion peuvent chacun comprendre une mémoire vive et des moyens de stockage internes tels qu'une mémoire non volatile réinscriptible (mémoire flash ou mémoire EEPROM) et des moyens de traitement comportant un processeur. Les serveurs peuvent également 10 comprendre des moyens d'interface leur permettant de dialoguer entre eux, de type filaire tel qu'une liaison Ethernet, ou sans-fil tel qu'une connexion Wifi ou Bluetooth. Le serveur de gestion peut également être connecté par le biais d'une connexion USB, Ethernet, Firewire, eSata, etc... au dispositif de stockage 5 tel qu'un disque dur externe ou un disque dur en réseau (« NAS »). 15 A titre d'exemple, de telles données biométriques peuvent être des empreintes digitales, ADN, vocales ou bien encore des images d'iris ou de réseaux veineux. Le serveur de contrôle peut comprendre un dispositif de capture 6 de telles données biométriques, tel qu'un lecteur d'empreinte digitale, un microphone, ou 20 un dispositif d'imagerie d'iris. Ce dispositif de capture peut être employé pour acquérir la donnée biométrique acquise pour l'entité 1. Afin d'identifier l'entité à identifier en un temps raisonnable, le procédé propose de déterminer parmi ces données de distance indexées un nombre 25 prédéterminé k d'indices des données de distance minimales parmi les données de distance indexées. Une fois ces k données de distance minimales déterminées, l'identification de l'entité peut par exemple être réalisée en ne comparant à la donnée biométrique acquise pour l'entité 1 que les k données biométriques de référence correspondant à ces données de distance minimale. 30 Afin de réaliser une telle détermination de k données de distance minimales de manière sécurisée, un protocole de sécurisation multipartite, tel que le protocole GMW ou le protocole de Yao, utilisant des circuits booléens peut être employé. Les étapes de calcul nécessaires à cette détermination doivent alors être mises sous la forme d'un circuit booléen. 3031641 13 Le procédé propose de limiter la taille de ce circuit booléen, c'est-à-dire le nombre de portes non-XOR de ce circuit et sa profondeur afin de limiter le coût d'une telle détermination sécurisée de k données de distance minimales parmi les données de distance indexées (Kolesnikov, V., Schneider, T., Improved garbled 5 circuit: Free XOR gates and applications, International Colloquium on Automata, Languages and Programming (ICALP'08). LNCS, vol. 5126, pp. 486-498. Springer (2008)). Pour cela, le procédé propose tout d'abord de traiter simultanément des 10 ensembles des données de distance indexées en analysant simultanément la valeur du jème bit, dit bit courant, de ces données de distance indexées, en commençant par le bit de poids fort de ces données de distance. L'analyse du bit de poids fort de l'ensemble des données de distance indexées (d1,... ,d,) permet en effet de séparer ces données de distances en deux groupes : un groupe A dont 15 le bit de poids fort est égal à 1 et un groupe B dont le bit de poids fort est égal à 0. Quelle que soit la valeur des autres bits de ces données, les distances du groupe A sont nécessairement toutes plus grandes que celles du groupe B. La recherche d'un nombre k de données de distance minimales parmi un ensemble de n données de distance indexées équivaut à la recherche dans 20 l'ensemble des n données de distance indexées d'un nombre (n-k) de données de distance non-minimales. Si le nombre de données du groupe A est inférieur au nombre (n-k) de données de distance non-minimales à rechercher, les données du groupe A peuvent être écartées pour le reste de la recherche : les k données de distance minimales à déterminer se trouvent nécessairement parmi les 25 données du groupe B. Les nA données du groupe A sont alors toutes des données de distance non minimales. A l'inverse, si le nombre de données du groupe A est supérieur au nombre (n-k) de données de distance non-minimales à rechercher, toutes ces données de distance non-minimales font nécessairement partie du groupe A. En conséquence toutes les nB données du groupe B font partie des k 30 données de distance minimales à déterminer. Ces données du groupe B peuvent donc être mémorisées et écartées pour le reste de la recherche. Une fois le bit de poids fort de toutes les données de distance indexées analysé, une telle analyse peut être reconduite en analysant le bit courant suivant des données de distance indexées restant à analyser, c'est-à-dire n'ayant pas été 3031641 14 écartées du reste de la recherche au cours de l'étape précédente, pour y chercher (k-nB) données de distance minimales ou bien (n-k-nA) données de distance non minimales selon le résultat de l'analyse ci-dessus. Une telle analyse peut ensuite réitérée jusqu'à ce que le bit courant analysé 5 ait atteint le bit de poids faible des données de distance. Chaque analyse d'un ensemble de données de distance restant à traiter pour une position du bit courant permet ainsi de séparer ces données de distance en deux groupes et d'écarter du reste de la recherche les données d'un de ces deux groupes, soit en tant que données de distance minimales, soit en tant que 10 données de distance non-minimales. La détermination des k données de distance minimales ne requiert ainsi qu'un seul parcours des données de distance indexées : chaque bit d'une donnée de distance indexée n'est lu qu'une unique fois. 15 De plus, afin de pouvoir mettre les opérations à réaliser sous la forme d'un circuit booléen, et de limiter la taille et la complexité de ce circuit booléen, le procédé propose d'employer un marqueur de données à traiter b et un marqueur de minima c afin de mémoriser l'appartenance d'une donnée de distance indexée respectivement à un ensemble des données de distance à traiter pour la 20 recherche des données de distance minimales, c'est-à-dire non écartée du processus de recherche, et à l'ensemble des données de distance minimales recherchées. De tels marqueurs peuvent être des entiers binaires de longueur égale au nombre n de données de distance indexées. La valeur du ième bit du marqueur de données b et du marqueur de minima c peut ainsi indiquer 25 l'appartenance de la donnée de distance indexée di d'indice i respectivement à l'ensemble des données de distance à traiter et à l'ensemble des données de distance minimales recherchées. L'utilisation de tels marqueurs permet lors de la recherche des k données de distance minimales de mémoriser si une donnée de distance indexée doit 30 continuer à être traitée ou non et si elle fait partie des k données de distance minimales déterminées ou non sans avoir à relire aucune donnée de distance indexée. Chaque bit de chaque donnée de distance indexée n'est donc toujours lu qu'une unique fois au cours de la détermination des k données de distance minimales. 3031641 15 Le procédé d'identification peut comprendre, en référence à la figure 2, une phase d'acquisition P1 au cours de laquelle le serveur de contrôle acquiert une donnée biométrique X de l'entité 1 à identifier. Une telle acquisition peut être mise 5 en oeuvre par le dispositif de capture 6. Une telle donnée biométrique peut être un entier binaire de longueur Q. Le procédé d'identification peut ensuite comprendre une phase d'obtention P2 au cours de laquelle une donnée d'identité de l'entité à identifier x est obtenue 10 à partir de la donnée biométrique acquise de l'entité à identifier X et des données d'identité de références (yi, ..., yn) sont obtenues à partir des données biométriques de référence indexées (Y1, .- - , Yri). Ladite donnée d'identité de l'entité à identifier x et les données d'identité de références , yn) peuvent être des entiers binaires de taille q moindre que 15 celle Q desdites données biométriques. Les indices des données d'identité de référence sont associés aux indices des données biométriques de référence. Une donnée biométrique et la donnée d'identité dérivée peuvent par exemple avoir le même indice. A titre d'exemple, dans le cas où les données biométriques sont des 20 images d'iris codées sur 2048 bits, les serveurs de contrôle et de gestion peuvent réduire les tailles des données d'identité à 128 bits. Pour ce faire, les serveurs de contrôle et de gestion peuvent convenir d'un ensemble d'indexation A de cardinal q qui soit un sous-ensemble de l'ensemble {1, .., Q}, tels que les q bits d'une donnée biométrique Yi indexés par les éléments de A soient parmi les bits les plus 25 significatifs de la donnée biométrique Y. Dans le cas de l'exemple ci-dessus, Q vaut 2048 et q vaut 128. Les serveurs de contrôle et de gestion génèrent alors des données d'identité de taille réduite x et yi, i étant compris entre 1 et n, ces données comprenant respectivement les bits de X et Yi indexés par A, de sorte que les 30 données x et yi sont codées sur q bits. Le procédé d'identification peut ensuite comprendre une phase de calcul P3 au cours de laquelle les serveurs de contrôle et de gestion calculent les données de distance (dl, , de), comprenant pour chaque donnée d'identité de référence yi 3031641 16 le calcul sécurisé d'une distance, par exemple de Hamming, entre la donnée d'identité de l'entité à identifier x et ladite donnée d'identité de référence yi. La sécurisation d'un tel calcul peut également être assurée par l'emploi d'un protocole de calcul sécurisé multipartite. 5 Les données de distance ainsi obtenues sont des données de distance simplifiées de longueur q' inférieure à la taille des données biométriques de référence. De telles données de distance ne permettent pas de déterminer de manière sûre la donnée biométrique correspondant à l'entité à identifier mais elles peuvent être employées pour déterminer k données biométriques candidates 10 correspondant à des données de distance minimales. La légèreté de ces données de distance simplifiées permet de réaliser plus rapidement cette détermination des données de distance minimales. A partir des données de distance indexées calculées (d1,...,dn), entiers 15 binaires de longueur q', les serveurs de contrôle et de gestion réalisent, lors d'une phase de détermination P4, la détermination d'un ensemble I d'indices de minima (indexl , indexk). Ledit ensemble I d'indices de minima comprend au plus un nombre prédéterminé k d'indices de données de distance minimales parmi lesdites 20 données de distance indexées. Cette phase de détermination P4 peut comprendre préalablement, une étape d'initialisation E41 lors de laquelle : o une liste de données à traiter est déterminée, ladite liste de données à 25 traiter comprenant lesdites données de distance indexées, o un nombre restant de données de distance indexées à écarter r est déterminé, ledit nombre restant de données de distance indexées à écarter étant égal à la différence entre le nombre de données de distance indexées n et le nombre prédéterminé d'indices k. 30 Aucune donnée de distance n'ayant encore été traitée à ce moment du procédé, toutes les données de distance (d1,...,d,) peuvent encore être des données de distance minimales ou de distance non-minimales. Toutes ces données sont donc pour l'instant ajoutées à la liste de données à traiter. 3031641 17 Au cours de la mise en oeuvre de l'étape suivante, certaines de ces données de distance vont être reconnues comme des données de distance non-minimales et écartées du processus de recherche. Afin de garder le compte du nombre de données de distance ainsi écartées le nombre restant de données de 5 distance indexées à écarter r va être progressivement mis à jour. A ce moment du procédé, puisqu'aucune donnée n'a encore été traitée, ce nombre est initialisé à la valeur n-k. La phase de détermination P4 peut ensuite comprendre une étape 10 d'exécution E42 comprenant, pour chaque ensemble des jème bits, dits bits courants, des données de distance indexées comprises dans ladite liste de données à traiter, dites données à traiter, j étant un entier variant de q'-1 à 0, une recherche de données de distance minimales parmi ces données de distance à traiter en fonction de la valeurs de ces bits courants. Une telle recherche est 15 réalisée en commençant par l'ensemble des bits de poids fort des données à traiter et en terminant par l'ensemble des bits de poids faible des données à traiter. Les données de distance minimales sont ainsi cherchées tout d'abord dans la liste de données à traiter créée lors de l'étape d'initialisation E41 et comprenant 20 toutes les données de distance indexées, en analysant la valeur du bit de poids fort des données à traiter. En fonction du résultat de cette première recherche, la liste de données à traiter peut être mise à jour et la recherche peut être reconduite sur la liste de données à traiter mise à jour en analysant cette fois-ci la valeur du bit suivant le bit 25 de poids fort des données à traiter. Plus précisément, l'étape d'exécution E42 peut comprendre pour chaque ensemble des jème bits, dits bits courants, des données de distance indexées comprises dans la liste de données à traiter une étape de comparaison E421 et 30 une étape de recherche E422. Cette étape de comparaison E421 réalise la comparaison d'un nombre d'indices p d'un premier groupe d'indices de données de distance indexées au nombre restant de données indexées à écarter r, ledit premier groupe d'indices 3031641 18 comprenant les indices des données de distance indexées parmi ladite liste de données à traiter pour lesquelles ledit bit courant est égal à 1. L'analyse du bit courant des données à traiter permet ainsi de les 5 partitionner en deux groupes. Un de ces deux groupes ne comprend nécessairement que des données de distance minimales ou que des données de distance non-minimales. Les données de ce groupe vont donc pouvoir être catégorisées et écartées du processus de recherche. 10 L'étape de recherche E422 mise en oeuvre suite à chaque étape de comparaison E421 réalise les opérations suivantes. Si le nombre d'indices du premier groupe p est inférieur au nombre restant de données indexées à écarter r, les données dont les indices appartiennent au premier groupe sont retirées de ladite liste de données à traiter. Dans un tel cas 15 de figure, les données de distance minimales restant à trouver sont en effet toutes comprises dans le deuxième groupe. Un nouveau nombre restant de données indexées à écarter r peut alors être déterminé en soustrayant du nombre restant de données indexées à écarter r le nombre d'indices du premier groupe p. Sinon, c'est-à-dire si p est supérieur ou égal à r, les données de distance 20 indexées dont les indices font partie du deuxième groupe d'indices de données de distance indexées, c'est-à-dire les données de distance indexées parmi la liste de données à traiter dont le bit courant est égal à 0, sont retirées de ladite liste de données à traiter. En effet, toutes les données de distance non-minimales restant à déterminer font alors partie du premier groupe et le deuxième groupe ne 25 comprend que des données de distance minimales. Les indices du deuxième groupe peuvent alors être ajoutés à l'ensemble d'indices de minima. A chaque analyse d'un ensemble de bits courants, tous placés à la même position, des données de la liste de données à traiter courante, les données à 30 traiter sont ainsi partitionnées en deux groupes et les données d'un des deux groupes sont identifiées comme données de distance minimales ou non-minimales et retirées de la liste de données à traiter. Si des données de distance non-minimales ont été identifiées et écartées, le nombre restant r de données de distance indexées à écarter est mis à jour. 3031641 19 Une telle détermination de k données de distance minimale tout particulièrement intéressante pour des données biométriques, pourrait également être mise en oeuvre sur des données de distance obtenues à partir d'autres types 5 de données que des données biométriques, par exemple à partir de données de média telles que des données d'image ou de vidéos dans le cadre d'un procédé de reconnaissance d'objet, de classification d'image ou de suivi de mouvement dans une vidéo. 10 A l'issue de la phase de détermination, il est possible que le nombre d'indices de minima déterminés ne soit pas exactement égal au nombre prédéterminé d'indices de données de distance minimales recherché, par exemple si plusieurs données de distance indexées sont égales à la même valeur. Le procédé peut alors comprendre une étape de complétion E43 au cours 15 de laquelle, si le nombre d'indices de l'ensemble d'indices de minima déterminé est inférieur au nombre prédéterminé k d'indices de données de distance minimales, des indices de données de distance indexées appartenant à la liste de données à traiter sont ajoutés à l'ensemble d'indices de minima pour que l'ensemble d'indices de données de distance minimales comprenne exactement le 20 nombre prédéterminé k d'indices de minima. Un tel procédé peut être mis en oeuvre à l'aide du marqueur de données à traiter b et du marqueur de minima c tels que définis ci-dessus. L'appartenance des données de distance indexées à ladite liste de données à traiter est alors 25 mémorisée sous la forme du marqueur de données à traiter b, ledit marqueur de données à traiter étant un entier binaire de longueur égale au nombre n de données de distance indexées et la valeur du ième bit dudit marqueur indiquant l'appartenance ou non de la ième donnée de distance indexée à ladite liste de données à traiter. 30 De même, l'appartenance des indices des données de distance indexées à l'ensemble d'indices de minima I est mémorisée sous la forme du marqueur de minima c, ledit marqueur de minima étant un entier binaire de longueur égale au nombre n de données de distance indexées, la valeur du ième bit dudit marqueur indiquant l'appartenance ou non de l'indice i à l'ensemble d'indices de minima I. 3031641 20 L'étape d'initialisation E41 comprend alors en outre l'initialisation de tous les bits du marqueur de données à traiter b et du marqueur de minima c à la valeur 1. Une telle initialisation indique alors qu'aucune donnée n'a pour l'instant 5 été traitée ni reconnue comme donnée de distance minimale. L'étape de comparaison E421 comprend alors, lors de sa mise en oeuvre pour un ensemble de jème bits courants des données de la liste de données à traiter, des étapes de : 10 - détermination du nombre p d'indices du premier groupe en comptant le nombre d'éléments égaux à la valeur 1 parmi l'ensemble (di AND b1, , dr, AND bu), la notation d, représentant la valeur du jème bit de la donnée de distance indexée d'indice i, - si le nombre p d'indices du premier groupe est inférieur au nombre 15 restant de données indexées à écarter r, fixation d'un bit de comparaison e à la valeur 1, - sinon, fixation dudit bit de comparaison e à la valeur O. La valeur du bit de comparaison e permet de mémoriser le résultat de la comparaison du nombre p d'indices du premier groupe et du nombre restant de 20 données indexées à écarter r, afin de permettre la transformation de ce procédé en un circuit booléen pouvant être évalué de manière sécurisée. Enfin, l'étape de recherche E422 est mise en oeuvre en réalisant : - la mise à jour du nombre restant de données indexées à écarter r, le nombre 25 restant de données indexées à écarter r étant remplacé par la valeur [((r-p) XOR r) AND e] XOR r, - la mise à jour de chaque bit du marqueur de minima c, chaque ième bit c, du marqueur de minima c étant remplacé par la valeur [(d OR e) OR (b XOR 1)] AND ci, 30 - la mise à jour de chaque bit du marqueur de données à traiter b, chaque ième bit ID, du marqueur de données à traiter b étant remplacé par la valeur (e XOR d ,J) AND bi. 3031641 21 L'utilisation du bit de comparaison e, des marqueurs de données à traiter b et de minima c, et des formules logiques ci-dessus permet de ne pas avoir besoin de distinguer plusieurs formules logiques en fonction du résultat de la comparaison entre le nombre p d'indices du premier groupe et du nombre restant 5 de données indexées à écarter r. Ceci permet de traduire les opérations à réaliser pour mettre en oeuvre ce procédé sous la forme d'un circuit booléen à évaluer de manière sécurisée à l'aide d'un protocole de calcul sécurisé multipartite, et de minimiser la taille du circuit booléen généré. 10 Pour que l'ensemble d'indices de données de distance minimales comprennent exactement le nombre prédéterminé k d'indices de minima, l'étape de complétion peut alors comprendre successivement pour chaque indice i des données de distance indexées : - si le nombre restant de données indexées à écarter r est supérieur à zéro, la 15 détermination d'une nouvelle valeur du nombre restant de données indexées à écarter en soustrayant le ième bit bi du marqueur de données à traiter b du nombre restant de données indexées à écarter, et la mise à zéro de la valeur du ième bit b du marqueur de données à traiter b, - la mise à jour du ième bit c du marqueur de minima c par la valeur ci = ci AND (b 20 XOR 1). Les r premières données de distance restant à traiter sont ainsi considérées comme des données de distance non minimales et écartées en passant les bits correspondant du marqueur de données à traiter b à zéro, puis les données de distance restant à traiter suivantes sont considérées comme des données de 25 distance minimales et les bits correspondants du marqueur de minima c sont mis à zéro. A l'issue de cette phase de détermination, k indices de minima ont été déterminés. Ces indices correspondent aux k données d'identité de référence les 30 plus proches de la donnée d'identité de l'entité à identifier. Ces k données d'identité sont alors considérées comme étant les meilleures candidates pour tenter d'identifier l'entité. 3031641 22 Un exemple de mise en oeuvre de la phase de détermination P4 est donné en annexe. On suppose dans cet exemple qu'on cherche à déterminer k=4 données de distance minimales parmi les n=6 valeurs suivantes (y1,...,y6) = (56, 12, 44, 41, 5 26, 44). Lors de l'étape d'initialisation, on fixe tous les bits des marqueurs b et c à 1. On calcule également la valeur initiale du nombre restant de données de distance indexées à écarter r = n-k = 6- 4 = 2. La liste des données à traiter comprend alors toutes les données de distance. 10 L'étape d'exécution est ensuite mise en oeuvre. Une première étape de comparaison et une première étape de recherche sont mises en oeuvre pour les bits de poids forts des données de distance. Le nombre d'élément du premier groupe de données de distance, dont le bit de poids fort est égal à 1, s'élève à 4 et est donc supérieur ou égal au nombre 15 restant de données de distance indexées r = 2. En conséquence, les données de deuxième groupe (12 et 26) sont des données de distance minimales et peuvent être écartées de la recherche pour les étapes ultérieures. Les bits correspondants des marqueurs b et c sont alors mis à zéro. 20 Une nouvelle étape de comparaison et une nouvelle étape de recherche sont alors mises en oeuvre pour les bits suivants, les 5ème bits, des données restant à traiter (56, 44, 41, 44). Une seule donnée (56) présente alors un bit courant égal à 1. En conséquence, cette donnée n'est pas une donnée de distance minimale et peut 25 être écartée. Le bit correspondant du marqueur b est alors mis à zéro et le nombre restant de données de distance indexées est mis à jour à la valeur 1. Une nouvelle étape de comparaison et une nouvelle étape de recherche sont alors mises en oeuvre pour les bits suivants, les 4èmes bits, des données restant à traiter (44, 41, 44). 30 Tous ces bits étant égaux à 1, la dernière donnée de distance non-minimale à identifier fait partie de ces données de distance et aucune donnée de distance minimale supplémentaire n'est identifiée à cette étape. 3031641 23 Une nouvelle étape de comparaison et une nouvelle étape de recherche sont alors mises en oeuvre pour les bits suivants, les 3èmes bits, des données restant à traiter (44, 41, 44). Le nombre d'élément du premier groupe de données de distance, dont le bit 5 courant est égal à 1, s'élève à 2 et est donc supérieur ou égal au nombre restant de données de distance indexées r = 1. En conséquence, la donnée du deuxième groupe (41) est une donnée de distance minimale et peut être écartée de la recherche pour les étapes ultérieures. Les bits correspondants des marqueurs b et c sont alors mis à zéro. 10 Il reste alors une donnée de distance minimale et une donnée de distance non-minimale parmi les deux données de distance restant à traiter (44, 44). Ces données étant égales, la mise en oeuvre de nouvelles étapes de comparaison et de recherche pour le 2ème bit de ces données puis pour le bit de poids faible de ces données ne permet pas d'identifier la dernière donnée de distance minimale à 15 identifier. L'étape de complétion est alors mise en oeuvre afin de désigner la première des deux données, dans leur ordre d'indexation, comme données de distance non minimale et la deuxième de ces données de distance comme donnée de distance minimale. Le bit correspondant du marqueur de minima c est alors mis à zéro et 20 les quatre données de distance minimales identifiées sont les deuxième, quatrième, cinquième et sixième données de distance minimale, c'est-à-dire les valeurs 12, 41, 26 et 44. Le serveur de contrôle et de gestion mettent ensuite en oeuvre une phase 25 d'identification P5 de l'entité à identifier parmi les entités de référence correspondant aux données biométriques de références stockées associées aux indices de données de distance minimales (index1, indexk) déterminés lors de la phase de détermination. Une telle phase d'identification peut comprendre une détermination d'au 30 moins une donnée biométrique de référence, parmi les données biométriques de références stockées associées aux indices de données de distance minimales (index1, indexk) déterminés lors de la phase de détermination, similaire à la donnée biométrique acquise de l'entité à identifier. 3031641 24 Le nombre de comparaisons à effectuer entre la donnée de l'entité et les données de référence étant réduit à k, ces comparaisons peuvent cette fois être faites sur les données biométriques complètes afin de réaliser une identification avec la précision la plus élevée possible. 5 Alternativement, l'entité à identifier peut être identifiée sans réutiliser la donnée biométrique acquise et les données biométriques de référence. Par exemple, une seconde donnée relative à l'entité à identifier peut être acquise, telle qu'une photographie ou un mot de passe, et comparée à des données de même type, qui peuvent par exemple être enregistrées dans le dispositif de stockage 5, 10 pour les entités de référence. Grâce à la mise en oeuvre de la phase de détermination, cette seconde donnée peut n'être comparée qu'aux données de même types enregistrées pour les entités de référence associées aux indices de données de distance minimales (index1, indexk) déterminés lors de la phase de détermination. La donnée biométrique acquise peut ainsi être employée pour faire 15 un premier tri parmi les entités de référence enregistrées auprès du serveur de gestion, puis une deuxième donnée de type différent peut être employée pour l'identification finale de l'entité à identifier. Une telle phase d'identification peut comprendre une étape de calcul E51 20 au cours de laquelle est mis en oeuvre un calcul, pour chaque donnée biométrique de référence Yi dont l'indice est associé à un indice de l'ensemble de minima déterminé I, d'un taux de similarité entre la donnée biométrique acquise de l'entité à identifier X et ladite donnée biométrique de référence Y. La phase d'identification peut ensuite comprendre une étape de 25 détermination E52 d'au moins une donnée biométrique de référence dont le taux de similarité dépasse un seuil prédéterminé, et une étape d'identification E53 de l'entité à identifier à partir des données biométriques de référence déterminées. Le calcul d'un taux de similarité entre la donnée biométrique acquise de l'entité à identifier X et une donnée biométrique de référence Yi peut comprendre 30 le calcul d'une distance, par exemple de Hamming, entre la donnée biométrique acquise de l'entité à identifier et ladite donnée biométrique de référence. L'au moins une donnée biométrique de référence déterminée lors de l'étape de détermination E52 est alors ladite au moins une donnée biométrique de référence pour laquelle la distance calculée est inférieure à un seuil prédéterminé. 3031641 25 Si aucun taux de similarité calculé n'atteint le seuil prédéterminé requis, aucune donnée biométrique de référence n'est suffisamment proche de la donnée biométrique acquise pour identifier positivement l'entité à identifier. Son identification peut alors être refusée. 5 Une telle identification pourrait être mise en oeuvre à partir de données de distance minimales correspondant à des distances entre d'autres types de données, par exemple des données d'image telles que des portraits d'individus. 10 Comme indiqué précédemment, au moins une partie du procédé est mis en oeuvre de façon sécurisée de sorte que les serveurs de gestion et de contrôle n'obtiennent respectivement aucune information sur la donnée biométrique acquise de l'entité ou sur les données biométriques de référence stockées dans le dispositif de stockage. 15 Pour cela, les opérations sur des entiers binaires pour la mise en oeuvre d'au moins ladite étape d'exécution du procédé, peuvent être traduites sous la forme d'au moins un circuit booléen, et ce circuit booléen peut ensuite être utilisé pour mettre en oeuvre au moins ladite étape d'exécution du procédé de manière sécurisée entre le serveur de contrôle et le serveur de gestion à l'aide d'un 20 protocole de calcul sécurisé multipartite (« Secure Multi party Computation » ou (SMC)) tel que le protocole de Yao (Andrew Chi-Chih Yao, « How to generate and exchange secrets », Foundations of Computer Science, 1986., 27th Annual Symposium, pages 162-167. IEEE, 1986) ou le protocole GMW (O. Goldreich, S. Micali, and A. Wigderson, "How to play any mental game or a completeness 25 theorem for protocols with honest majority", Symposium on Theory of Computing (STOC), pages 218-229. ACM, 1987). L'étape d'exécution du procédé n'est pas la seule à pouvoir être mise en oeuvre de manière sécurisée à l'aide d'un tel protocole. Un tel protocole peut également être appliqué aux autres phases et étapes du procédé, notamment à la 30 phase de calcul des données de distance. Ceci permet de partager les données de distance indexées entre le serveur de contrôle et le serveur de gestion de sorte qu'aucune desdites données de distance ne soit connue du serveur de gestion ou du serveur de contrôle. 3031641 26 Afin de traduire les étapes du procédé sous forme de circuit booléen, chaque opération réalisée sur les données de distance indexées, les marqueurs de données à traiter b et de minima c ou sur le bit de comparaison e doit être traduite sous forme de circuit logique. 5 Les paragraphes ci-dessous donnent à titre d'exemple non-limitatif un exemple de mise en oeuvre sécurisée à l'aide du protocole de Yao du procédé selon l'invention à partir de la donnée d'identité de l'entité à identifier x et des données d'identité de références obtenues à l'issue de la phase 10 d'obtention P2. Les opérations sur des entiers binaires correspondant à la phase de calcul P3, à la phase de détermination P4 et à la phase d'identification P5 doivent alors être traduites sous la forme d'un circuit logique f, à évaluer de manière sécurisée par le protocole de Yao. Alternativement, un tel protocole pourrait être employé pour la mise en oeuvre d'un ensemble plus restreint de 15 phases et d'étapes du procédé. Par exemple un tel protocole pourrait être appliqué uniquement à la mise en oeuvre des phases de calcul P3 et de détermination P4 à partir la donnée d'identité de l'entité à identifier x et des données d'identité de références obtenues à l'issue de la phase d'obtention P2. Selon un autre exemple un tel procédé pourrait être appliqué 20 uniquement à la mise en oeuvre de la phase de détermination P4 et de la phase d'identification P5, à partir des données de distance (d1,...,d,) calculées lors de la phase de calcul P3. Le protocole de Yao peut donc être mis en oeuvre entre le serveur de gestion et le serveur de contrôle afin d'évaluer de manière sécurisée le circuit 25 booléen f correspondant à la mise en oeuvre des phases de calcul P3, de détermination P4 et d'identification P5 du procédé. Pour ce faire, un des deux serveurs, par exemple le serveur de gestion, crée un circuit confus correspondant au circuit f à évaluer ainsi que des paires de clés de chiffrement (une pour la valeur binaire 0 et une pour la valeur binaire 1) 30 pour chacun des bits d'entrées du circuit f, c'est-à-dire pour chaque bit des données d'identité de référence et de la donnée d'identité de l'entité à identifier x. Le serveur de gestion génère également une paire de clés de chiffrement pour chaque sortie chaque porte non-XOR du circuit f. Le créateur du circuit confus 3031641 27 génère enfin une table de concordance T entre les clés de chiffrement du résultat du circuit f et le résultat lui-même. Une fois le circuit créé, le serveur de gestion envoie au serveur de contrôle la table de concordance T, la table sécurisée de chaque porte non XOR du circuit 5 et ses propres entrées sécurisées du circuit : si par exemple, une donnée d'identité de référence a la valeur b sur un fil d'entrée Wi du circuit alors le serveur de gestion envoie wbi. Ainsi, pour chaque bit y d'entrée d'une donnée d'identité de référence égal à 0 (respectivement 1) en entrée du circuit, le créateur envoie uniquement la clé 10 de chiffrement kYo (resp. kYi). Comme ces clés sont aléatoires, le serveur de contrôle utilisateur du circuit confus n'obtient aucune information sur les bits correspondant des données d'identité de référence et donc aux données biométriques de référence détenues par le serveur de gestion. En outre, le serveur de contrôle récupère auprès du serveur de gestion, par 15 transfert inconscient, les clés correspondant aux bits des données d'entrée du circuit f qu'il possède, c'est-à-dire correspondant aux bits de la donnée d'identité x de l'entité à identifier. Ainsi, pour chaque bit xi de la donnée d'identité x de l'entité à identifier, le serveur de gestion prépare une liste à deux éléments composée de k)(;' et WIci et 20 l'index choisi par l'utilisateur pour le transfert inconscient est la valeur du bit xi. Le recours à la méthode du transfert inconscient permet que le serveur gestion n'obtienne aucune information sur les valeurs des bits de la donnée d'identité x de l'entité à identifier. Enfin, le serveur de contrôle peut évaluer le circuit confus à l'aide des clés 25 qu'il a obtenues, et traduire le résultat qu'il obtient en sortie à l'aide de la table de concordance. Un tel procédé permet ainsi d'identifier une entité à l'aide d'un protocole de sécurisation à base de circuits booléens pour un coût de calcul moindre, en 30 minimisant le nombre de portes non-XOR et la profondeur du circuit booléen employé pour déterminer plusieurs distances minimales entre une donnée biométrique de l'individu acquise et des données biométriques de référence. REVENDICATIONS1 Procédé d'identification d'une entité, mis en oeuvre par un système d'identification comprenant un serveur de gestion susceptible d'être relié à un dispositif de stockage stockant des données biométriques de référence indexées (Y1,..., Y,,,) correspondant à des entités de référence et un serveur de contrôle susceptible d'acquérir une donnée biométrique de l'entité à identifier (X), ledit serveur de gestion et ledit serveur de contrôle étant susceptibles d'être reliés entre eux, à partir de données de distance indexées lesdites données de distances indexées étant des distances calculées à partir des données biométriques de référence indexées stockées et de la donnée biométrique de l'entité à identifier acquise, lesdites données de distance indexées étant partagées entre ledit serveur de contrôle et ledit serveur de gestion de sorte qu'aucune desdites données de distance ne soit connue du serveur de gestion ou du serveur de contrôle, lesdites données de distance indexées étant des entiers binaires de longueur q', ledit procédé d'identification étant caractérisé en ce qu'il comprend : - une phase de détermination (P4) d'un ensemble (I) d'indices de minima (index1, indexé), ledit ensemble (I) d'indices de minima comprenant au plus un nombre prédéterminé (k) d'indices de données de distance minimales parmi lesdites données de distance indexées, ladite phase de détermination comprenant : - préalablement, une étape d'initialisation (E41) lors de laquelle : o une liste de données à traiter est déterminée, ladite liste de données à traiter comprenant lesdites données de distance indexées, o un nombre restant de données de distance indexées à écarter (r) est déterminé, ledit nombre restant de données de distance indexées à écarter étant égal à la différence entre le nombre de données de distance indexées (n) et le nombre prédéterminé d'indices (k), 3031641 30 - une étape d'exécution (E42) comprenant, pour chaque ensemble des jème bits, dits bits courants, des données de distance indexées comprises dans ladite liste de données à traiter, dites données à traiter, j étant un entier variant de q'-1 à 0, 5 la mise en oeuvre des étapes suivantes, en commençant par l'ensemble des bits de poids fort des données à traiter et en terminant par l'ensemble des bits de poids faible des données à traiter : o comparaison (E421) d'un nombre d'indices d'un premier 10 groupe d'indices de données de distance indexées (p) au nombre restant de données indexées à écarter (r), ledit premier groupe d'indices comprenant les indices des données de distance indexées parmi ladite liste de données à traiter pour lesquelles ledit bit courant est égal à 1, 15 o recherche (E422) d'indices de minima comprenant : ^ si le nombre d'indices du premier groupe (p) est inférieur au nombre restant de données indexées à écarter (r) : - retrait, de ladite liste de données à traiter, des données dont les indices appartiennent au premier groupe et, 20 - détermination d'un nouveau nombre restant de données indexées à écarter (r) en soustrayant du nombre restant de données indexées à écarter (r) le nombre d'indices du premier groupe (p) ; ^ sinon : 25 - retrait, de ladite liste de données à traiter, des données de distance indexées dont les indices font partie d'un deuxième groupe d'indices de données de distance indexées, ledit deuxième groupe comprenant les indices des 30 données de distance indexées parmi ladite liste de données à traiter pour lesquelles ledit bit courant est égal à 0, et - ajout desdits indices du deuxième groupe à l'ensemble d'indices de minima; 3031641 31 - une phase d'identification (P5) de l'entité à identifier parmi les entités de référence correspondant aux données biométriques de références stockées associées aux indices de données de distance minimales (index1, indexk) déterminés lors de la phase de détermination, 5 les opérations sur des entiers binaires pour la mise en oeuvre d'au moins ladite étape d'exécution dudit procédé d'identification, étant traduites sous la forme d'au moins un circuit booléen, ledit circuit booléen étant ensuite utilisé pour mettre en oeuvre au moins ladite étape d'exécution dudit procédé, cette mise en oeuvre étant réalisée de manière sécurisée entre le serveur de contrôle et le 10 serveur de gestion à l'aide d'un protocole de calcul sécurisé multipartite (« Secure Multi party Computation » ou (SMC)) permettant une évaluation sécurisée dudit circuit booléen. 2. Procédé d'identification selon la revendication précédente dans lequel la phase 15 d'identification (P5) comprend une détermination d'au moins une donnée biométrique de référence similaire à la donnée biométrique acquise de l'entité à identifier, parmi les données biométriques de références stockées associées aux indices de données de distance minimales (index1, indexk) déterminés lors de la phase de détermination. 20 3. Procédé d'identification selon l'une des revendications précédentes comprenant, à l'issue de la phase de détermination, si le nombre d'indices de l'ensemble d'indices de minima déterminé est inférieur au nombre prédéterminé (k) d'indices de données de distance minimales, une étape de complétion 25 (E43) au cours de laquelle des indices de données de distance indexées appartenant à la liste de données à traiter sont ajoutés à l'ensemble d'indices de minima, de sorte que ledit ensemble comprenne un nombre d'indices égal au nombre prédéterminé (k) d'indices de données de distance minimales. 30 4. Procédé d'identification selon l'une quelconque des revendications précédentes dans lequel l'appartenance des données de distance indexées à ladite liste de données à traiter est mémorisée sous la forme d'un marqueur de données à traiter, ledit marqueur de données à traiter étant un entier binaire (b) de longueur égale au nombre de données de distance indexées (n) et la valeur du 3031641 32 ème bit dudit marqueur indiquant l'appartenance ou non de la ième donnée de distance indexée à ladite liste de données à traiter. 5. Procédé d'identification selon l'une quelconque des revendications précédentes 5 dans lequel l'appartenance des indices des données de distance indexées à l'ensemble d'indices de minima (I) est mémorisée sous la forme d'un marqueur de minima, ledit marqueur de minima étant un entier binaire (c) de longueur égale au nombre de données de distance indexées (n), la valeur du ième bit dudit marqueur indiquant l'appartenance ou non de l'indice i à l'ensemble 10 d'indices de minima. 6. Procédé d'identification selon la revendication précédente dans lequel, le nombre de données de distance indexées dl, ..., d, étant égal à n : - l'étape d'initialisation (E41) comprend en outre l'initialisation de tous les 15 bits du marqueur de données à traiter b et du marqueur de minima c à la valeur 1, - l'étape de comparaison (E421) comprend des étapes de : - détermination du nombre (p) d'indices du premier groupe en comptant le nombre d'éléments égaux à la valeur 1 parmi l'ensemble (di AND 20 b1, ..., dr, AND bu), la notation d, représentant la valeur du jème bit de la donnée de distance indexée d'indice i, - si le nombre (p) d'indices du premier groupe est inférieur au nombre restant de données indexées à écarter (r), fixation d'un bit de comparaison e à la valeur 1, 25 - sinon, fixation dudit bit de comparaison e à la valeur 0, - l'étape de recherche (E422) est mise en oeuvre en réalisant : - la mise à jour du nombre restant de données indexées à écarter r, le nombre restant de données indexées à écarter r étant remplacé par la valeur [((r-p) XOR r) AND e] XOR r, 30 - la mise à jour de chaque bit du marqueur de minima c, chaque ième bit c, du marqueur de minima c étant remplacé par la valeur [(d OR e) OR (b XOR 1)] AND ci, 3031641 33 - la mise à jour de chaque bit du marqueur de données à traiter b, chaque ième bit bi du marqueur de données à traiter b étant remplacé par la valeur (e XOR d i') AND bi. 5 7. Procédé d'identification selon la revendication précédente dans lequel ladite étape de complétion (E43) comprend successivement pour chaque indice i des données de distance indexées : - si le nombre restant de données indexées à écarter (r) est supérieur à zéro, la détermination d'une nouvelle valeur du nombre restant de données 10 indexées à écarter en soustrayant le ième bit bi du marqueur de données à traiter b du nombre restant de données indexées à écarter, et la mise à zéro de la valeur du ième bit b du marqueur de données à traiter b, - la mise à jour du ième bit c du marqueur de minima c par la valeur ci = ci AND (bi XOR 1). 15 8. Procédé d'identification selon l'une quelconque des revendications précédentes, dans lequel lesdites données biométriques de référence sont des entiers binaires, et comprenant préalablement : 20 - une phase d'acquisition (P1) par le serveur de contrôle de la donnée biométrique (X) de l'entité à identifier, - une phase d'obtention (P2) d'une donnée d'identité de l'entité à identifier (x) et de données d'identité de références (yi, yn), à partir respectivement de la donnée biométrique acquise (X) et des données biométriques de référence 25 indexées (Y1, , Yri), de sorte que ladite donnée d'identité de l'entité à identifier (x) et les données d'identité de références , yn) soient des entiers binaires de moindre taille que celle desdites données biométriques, les indices des données d'identité de référence étant associés aux indices des 30 données biométriques de référence, - une phase de calcul (P3) des données de distance (dl, , dn) comprenant pour chaque donnée d'identité de référence (yi) le calcul sécurisé d'une distance entre la donnée d'identité de l'entité à identifier (x) et ladite donnée d'identité de référence (yi) ; 3031641 34 9. Procédé d'identification selon l'une des revendications 2 à 8, dans lequel la phase d'identification comprend en outre des étapes de : - calcul (E51), pour chaque donnée biométrique de référence (Yi) dont l'indice 5 est associé à un indice de l'ensemble de minima déterminé (I), d'un taux de similarité entre la donnée biométrique acquise de l'entité à identifier (X) et ladite donnée biométrique de référence (Yi) ; - détermination (E52) d'au moins une donnée biométrique de référence dont le taux de similarité dépasse un seuil prédéterminé ; 10 - identification (E53) de l'entité à identifier à partir des données biométriques de référence déterminées. 10. Procédé d'identification selon la revendication précédente dans lequel : - le calcul d'un taux de similarité entre la donnée biométrique acquise de l'entité 15 à identifier (X) et ladite donnée biométrique de référence (Yi) comprend le calcul d'une distance entre la donnée biométrique acquise de l'entité à identifier et ladite donnée biométrique de référence ; - ladite au moins une donnée biométrique de référence déterminée est ladite au moins une donnée biométrique de référence pour laquelle la distance calculée 20 est inférieure à un seuil prédéterminé. 11. Procédé d'identification selon l'une des revendications précédentes, dans lequel le protocole de calcul sécurisé multipartite (Secure Multi party Computation (SMC)) est le protocole de Yao ou le protocole GMW. 25 12. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon l'une quelconque des revendications précédentes lorsque ce programme est exécuté par un processeur. 30 13. Système d'identification d'une entité comprenant un serveur de gestion susceptible d'être relié à un dispositif de stockage stockant des données biométriques de référence indexées (Y1,..., Yn) correspondant à des entités de référence et un serveur de contrôle susceptible d'acquérir une donnée biométrique de l'entité à identifier (X), ledit serveur de gestion et ledit serveur 3031641 de contrôle étant susceptibles d'être reliés entre eux et partageant des données de distance indexées (d1,... ,d,), de sorte qu'aucune desdites données de distance ne soit connue du serveur de gestion ou du serveur de contrôle, lesdites données de distances indexées étant des distances 5 calculées à partir des données biométriques de référence indexées stockées et de la donnée biométrique de l'entité à identifier acquise, caractérisé en ce que : ledit serveur de contrôle et ledit serveur de gestion comprennent un processeur configuré pour mettre en oeuvre les phases et étapes d'un procédé 10 d'identification selon l'une quelconque des revendications 1 à 11.