FR 3146361 A1 20240906 FR 2301900 A 20230301 Procédé comprenant : calcul (204) d’un chiffré ( ) d’un score représentant une distance entre une donnée biométrique d’épreuve ( ) et une donnée de référence ( ) ; mise en œuvre des étapes suivantes par un dispositif d’indice i=1,2: traitement de déchiffrement et de masquage au chiffré ( ) du score à l’aide d’une clé de déchiffrement secondaire ( ) d’indice i et d’un masque secondaire ( ) d’indice i, le traitement produisant une donnée ( ) représentant le score sous une forme déchiffrée et masquée par un masque primaire ( ) sans avoir calculé le score en clair, et génération (308) d’un résultat partiel ( ) d’indice i à partir de la donnée ( ) et d’une donnée de démasquage ( ) d’indice i; dans lequel les résultats partiels ( , ) permettent le calcul d’un résultat ( ) indiquant si la donnée biométrique d’épreuve correspond à la donnée de référence. Figure pour l’abrégé : Fig. 3 Procédé de contrôle d’identité partiellement distribué DOMAINE DE L'INVENTION La présente divulgation concerne un procédé de contrôle d’identité. ETAT DE LA TECHNIQUE Un procédé conventionnel pour vérifier si un individu est enrôlé dans une base de données comprend les étapes suivantes. Il est acquis une donnée biométrique d’épreuve se rapportant à l’individu à contrôler. Ensuite, il est calculé un score représentatif d’une distance entre la donnée biométrique d’épreuve et une donnée biométrique de référence contenue dans la base de données. Ce score est ensuite comparé avec un seuil. Un résultat de contrôle indiquant si la donnée biométrique d’épreuve correspond ou non à la donnée biométrique de référence est obtenu à l’issue de cette comparaison. Dans le document ayant pour titre « Colmade : Collaborative Masking in Auditable Decryption for BFV-based Homomorphic Encryption », il a été décrit un procédé reprenant ce principe général, avec toutefois les particularités suivantes. Premièrement, le procédé Colmade réalise le calcul du score et la comparaison avec un seuil dans le domaine chiffré. Deuxièmement, le procédé Colmade comprend des étapes centralisées, et des étapes distribuées sur plusieurs entités : ces entités réalisent des calculs en parallèle produisant des résultats partiels, ces résultats partiels devant être ensuite recombinés afin d’aboutir au résultat de contrôle. Or, la durée d’exécution du procédé Colmade s’avère longue. Un but d’invention est de vérifier si un individu est enrôlé dans une base de données sans requérir une durée d’exécution excessive et de manière sécurisée. Ce but est atteint par un procédé comprenant les étapes suivantes : calcul d’un chiffré d’un score représentant une distance entre une donnée biométrique d’épreuve se rapportant à un individu et une donnée biométrique de référence, le chiffré du score étant préalablement calculé à partir de la donnée biométrique d’épreuve et d’un chiffré de la donnée biométrique de référence, le chiffré de la donnée biométrique de référence résultant d’un chiffrement de la donnée biométrique de référence à l’aide d’une clé de chiffrement primaire, pour i étant égal à 1 et 2, mise en œuvre des étapes suivantes par un dispositif d’indice i: application d’un traitement de déchiffrement et de masquage au chiffré du score à l’aide d’une clé de déchiffrement secondaire d’indice i et d’un masque secondaire d’indice i, le traitement de déchiffrage et de masquage produisant une donnée représentant le score sous une forme déchiffrée et masquée par un masque primaire, et ce sans avoir calculé le score en clair, génération d’un résultat partiel d’indice i à partir de la donnée et d’une donnée de démasquage d’indice i associée au masque secondaire d’indice i, dans lequel : les dispositifs d’indices respectifs 1 et 2 sont distincts, les clés de déchiffrement secondaires d’indices respectifs 1 et 2 sont issues d’une clé de déchiffrement primaire associée à la clé de chiffrement, les masques secondaires d’indices respectifs 1 et 2 sont issus du masque primaire. Dans le procédé proposé, l’étape de calcul du chiffré du score constitue une étape centralisée beaucoup plus rapide d’exécution que l’étape centralisée réalisée dans le procédé Colmade. Les inventeurs ont pu constater que cette étape centralisée en combinaison avec les traitements distribués sur au moins une paire de dispositifs participants permettent d’obtenir un résultat de contrôle de manière plus rapidement qu’avec le procédé Colmade, à ressources de calcul égales. En particulier, le masquage réalisé apporte de la sécurité car le score en clair n’est jamais calculé. Un autre avantage du procédé proposé est qu’elle peut être mise en œuvre dans un système où les données biométriques de référence sont stockées dans une seule base de données. Ceci constitue un avantage par rapport à des procédés requérant l’utilisation conjointe de plusieurs bases de données différentes. Le procédé proposé peut également comprendre les caractéristique suivantes, prises seules ou combinées entre elles à chaque fois que cela est possible. De préférence, le traitement de déchiffrement et de masquage mis en en œuvre par le dispositif d’indice i comprend les étapes suivantes : calcul d’une donnée intermédiaire d’indice i à partir des données suivantes : une première partie du chiffré du score, la clé de déchiffrement secondaire d'indice i, le masque secondaire d’indice i, et un aléa généré par le dispositif d’indice i, réception d’une donnée intermédiaire d’indice j envoyée par le dispositif d’indice j≠i, calcul de la donnée représentant le score sous une forme déchiffrée à l’aide de la clé de déchiffrement secondaire d'indice i puis masquée par le masque, à partir des données suivantes : les données intermédiaires d’indices respectifs 1 et 2, une deuxième partie du chiffré du score. De préférence, la donnée intermédiaire d’indice i est calculée comme suit : dans lequel est la première partie du chiffré du score, est la clé de déchiffrement secondaire d'indice i, est le masque secondaire d’indice i, est l’aléa généré par le dispositif d’indice i. De préférence, la donnée représentant le score sous une forme déchiffrée à l’aide de la clé de déchiffrement secondaire d'indice i puis masquée à l’aide du masque primaire est calculée comme suit : dans lequel est la donnée intermédiaire d’indice 1, est la donnée intermédiaire d’indice 2, est la deuxième partie du chiffré du score, et sont deux entiers constituant des paramètres d’un schéma de chiffrement de Brakerski/Fan-Vercauteren, désigne l’opérateur d’arrondi à l’entier le plus proche, désigne l’opérateur modulo q, désigne l’opérateur modulo t. De préférence, le résultat de contrôle est égal à la somme des résultats partiels d’indices respectifs 1 et 2. De préférence, au moins une des données suivantes est une donnée à usage unique pour la donnée biométrique d’épreuve, voire pour le chiffré du score : le masque secondaire d’indice i, la donnée de démasquage d’indice i, la clé de déchiffrement secondaire d’indice i. De préférence, le calcul du chiffré du score est un calcul linéaire ou polynômial. De préférence, le calcul du chiffré est mis en œuvre mis en œuvre par un serveur distinct des dispositifs d’indices 1 et 2, et/ou le résultat de sortie est calculé à partir des résultats partiels d’indices respectifs 1 et 2 par un dispositif de sortie distinct des dispositifs d’indices 1 et 2. Il est également proposé un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé proposé, lorsque ce programme est exécuté par un dispositif ou un ensemble de dispositifs. Il est encore proposé une mémoire lisible par ordinateur stockant des instructions exécutables par un dispositif pour l’exécution des étapes du procédé proposé. Il est également proposé un système comprenant : un serveur configuré pour calculer un chiffré d’un score représentant une distance entre une donnée biométrique d’épreuve se rapportant à un individu et une donnée biométrique de référence, le chiffré du score étant préalablement calculé à partir de la donnée biométrique d’épreuve et d’un chiffré de la donnée biométrique de référence, le chiffré de la donnée biométrique de référence résultant d’un chiffrement de la donnée biométrique de référence à l’aide d’une clé de chiffrement primaire, deux dispositifs d’indices respectifs 1 et 2, dans lequel pour i étant égal à 1 et 2, le dispositif d’indice i est configuré pour : appliquer un traitement de déchiffrement et de masquage au chiffré du score à l’aide d’une clé de déchiffrement secondaire d’indice i et d’un masque secondaire d’indice i, le traitement de déchiffrage et de masquage produisant une donnée représentant le score sous une forme déchiffrée et masquée par un masque primaire, et ce sans avoir calculé le score en clair, génération d’un résultat partiel d’indice i à partir de la donnée et d’une donnée de démasquage d’indice i associée au masque secondaire d’indice i, dans lequel : les clés de déchiffrement secondaires d’indices respectifs 1 et 2 sont issues d’une clé de déchiffrement primaire associée à la clé de chiffrement, les masques secondaires d’indices respectifs 1 et 2 sont issus du masque primaire, les résultats partiels d’indices respectifs 1 et 2 permettent le calcul d’un résultat de contrôle indiquant si la donnée biométrique d’épreuve correspond ou non à la donnée biométrique de référence. DESCRIPTION DES FIGURES D’autres caractéristiques, buts et avantages de l’invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels : La et la illustrent de façon schématique différents dispositifs faisant partie d’un système selon un mode de réalisation, utilisable pour contrôler l’identité d’individus. La est un organigramme d’étapes d’un procédé de contrôle d’identité selon un mode de réalisation. Sur l’ensemble des figures, les éléments similaires portent des références identiques. DESCRIPTION DETAILLEE DE L'INVENTION Système pour contrôler l’identité d’un individu En référence à la et à la , un système comprend un dispositif de contrôle 1, un serveur de stockage 2, et au moins une paire de dispositifs participants 3, un serveur de confiance 4 et un dispositif d’enrôlement 6. Le dispositif de contrôle 1 comprend un processeur 10, une interface de communication 12 pour communiquer avec le serveur de stockage 2 et chaque dispositif participant, une mémoire 14 et un capteur biométrique 16. Le processeur 10 est configuré pour mettre en œuvre certaines étapes d’un procédé qui sera décrit plus loin. Le processeur peut avoir n’importe quelle structure. Le processeur comprend un ou plusieurs cœurs, chaque cœur étant configuré pour exécuter les instructions de code d’un programme de manière à mettre en œuvre les étapes précitées. L’interface de communication 12 est par exemple de type radio sans fil, et utilise un protocole de communication quelconque (Wi-Fi, Bluetooth, etc.). La mémoire 14 est adaptée pour mémoriser des données manipulées ou produites par le processeur. La mémoire 14 est de type quelconque. Conventionnellement, la mémoire comprend une mémoire volatile pour stocker des données temporairement, et une mémoire non-volatile pour stocker des données de manière persistante, c’est-à-dire d’une manière qui conserve les données lors d’une mise hors tension de la mémoire non volatile. Le capteur biométrique 16 est configuré pour acquérir des données biométriques se rapportant à des individus. Par exemple, le capteur biométrique comprend une caméra configurée pour acquérir des images montrant le visage d’un individu, et pour extraire des données biométriques de telles images. Alternativement ou à titre complémentaire, le capteur biométrique comprend un capteur d’empreinte digitale et/ou un capteur d’iris. Dans un mode de réalisation, le dispositif de contrôle 1 comprend en outre un portique 18 pouvant être fermé pour empêcher un individu d’accéder à une zone sécurisée, et être ouvert pour autoriser un tel accès. Le processeur 10 est dans ce cas configuré pour commander l’ouverture et la fermeture du portique 18. Par exemple, le dispositif de contrôle 1 se trouve dans un aéroport, et la zone sécurisée est une zone d’embarquement ; dans cette application particulière, les individus souhaitant accéder à la zone d’embarquement sont les passagers d’un vol, dont l’identité est à contrôler avant d’embarquer. Le serveur de stockage 2 comprend un processeur 20, une interface de communication 22 pour communiquer avec le dispositif de contrôle 1, et une mémoire 24. Les informations fournies ci-dessus à propos du processeur 10 et de l’interface de communication 12 sont applicables également au processeur 20 et à l’interface de communication 22. La mémoire 24 stocke une base de données biométriques protégées en confidentialité. Sont référencées dans la base de données des données biométriques se rapportant à des individus précédemment enrôlés. Les données biométriques d’un individu enrôlé ne sont pas en clair dans la base de données, mais sont au contraire protégées en confidentialité, c’est-à-dire sont une forme chiffrée, grâce à un chiffrement qui sera décrit dans la suite. Chaque dispositif participant 3 comprend un processeur 30, une interface de communication 32 pour communiquer avec le dispositif de contrôle 1 et/ou les autres dispositifs participants 3, et une mémoire 34. Les informations fournies ci-dessus à propos du processeur 10 et de l’interface de communication 12 sont applicables également au processeur 30 et à l’interface de communication 32. Les communications entre les interfaces 12, 22 et les communications entre les interfaces 12, 32 peuvent utiliser des protocoles identiques ou bien différents. Les dispositifs participants 3 sont distincts les uns des autres. Dans la suite, on va détailler un mode de réalisation dans lequel les dispositifs participants 3 sont distincts du dispositif de contrôle 1, du serveur de stockage 2, du dispositif d’enrôlement 4 et du dispositif d’enrôlement 6, comme cela est représenté sur la . Toutefois, dans d’autres modes de réalisation, il peut être envisagé que le dispositif de contrôle 1, le serveur de stockage 2, le dispositif d’enrôlement 4 et/ou le dispositif d’enrôlement 6 constitue l’un des dispositifs participants 3. Le serveur de confiance 4 a pour fonction de générer des clés cryptographiques dont certaines sont utilisées par d’autres composants du système. Le serveur de confiance 4 comprend un processeur 40, une interface de communication 42 pour communiquer avec le dispositif d’enrôlement 6 et avec chaque dispositif participant 3, et une mémoire 44. Les informations fournies ci-dessus à propos du processeur 10, de l’interface de communication 12 et de la mémoire 14 sont applicables également au processeur 40, à l’interface de communication 42 et à la mémoire 44. Le dispositif d’enrôlement 6 comprend un processeur 60, une interface de communication 62 pour communiquer avec le serveur de confiance 4 et avec le serveur de stockage 2, une mémoire 64 et un capteur biométrique 66. Les informations fournies ci-dessus à propos du processeur 10, de l’interface de communication 12, de la mémoire 14 et du capteur biométrique 16 sont applicables également au processeur 60, à l’interface 62, à la mémoire 64 et au capteur biométrique 66. Dans la suite, on va détailler un mode de réalisation dans le dispositif d’enrôlement 6 est distinct du dispositif de contrôle 1. Toutefois, dans d’autres modes de réalisation, le dispositif de contrôle 1 pourrait être utilisé comme dispositif d’enrôlement. Génération de clés Les étapes suivantes sont mises en œuvre à titre préliminaire au sein du système. Le processeur 40 du serveur de confiance 4 génère une clé de chiffrement et une clé de déchiffrement associée, les deux clés formant une paire de clés cryptographiques, typiquement une paire de clés asymétriques. Les clés sont par exemple générées aléatoirement. Les clés , sont mémorisées dans la mémoire 44. Le serveur de confiance 4 envoie au dispositif d’enrôlement la clé de chiffrement , qui est par conséquent une clé publique. La clé de déchiffrement est au contraire une clé privée propre au serveur de confiance 4, et qui n’est donc pas communiquée à l’extérieur du serveur de confiance 4. Enrôlement On suppose qu’un individu de référence à enrôler se présente à proximité du dispositif d’enrôlement 6. En pratique, l’individu de référence peut être un individu ayant obtenu le droit d’accéder à la zone sécurisée discutée précédemment. Lorsque le dispositif de contrôle 1 est placé dans un aéroport, la zone sécurisée peut donner accès à un avion, auquel cas le droit d’accéder à la zone sécurisée est conféré par un titre de transport attribué à l’individu de référence. Le capteur biométrique 66 du dispositif d’enrôlement 6 acquiert une donnée biométrique de référence se rapportant à l’individu de référence. Le processeur 60 chiffre la donnée biométrique de référence à l’aide de la clé de chiffrement , de sorte à obtenir un chiffré de la donnée biométrique . En notant la fonction de chiffrement utilisée lors de cette étape, on a : En particulier, il est possible d’utiliser lors de cette étape un chiffrement selon le schéma Brakerski/Fan-Vercauteren (BFV). Le chiffré est transmis par le dispositif d’enrôlement 6 au serveur de stockage 2 via l’interface de communication 62. Le serveur de stockage reçoit le chiffré via son interface de communication 22, et l’ajoute dans la base de données contenue dans sa mémoire 24. L’individu de référence est alors enrôlé. Les étapes qui précèdent sont répétées par le dispositif d’enrôlement 6 pour plusieurs individus de référence à enrôler, moyennant quoi la base de données contenues dans la mémoire 24 stocke une pluralité de chiffrés se rapportant à différents individus de références. A chaque fois, la même clé de chiffrement est utilisée par le processeur 60. Contrôle d’identité En référence à la , un procédé réalisé au moyen du système comprend les étapes suivantes. Lorsqu’il sera mentionné dans la suite que le dispositif de contrôle 1, le serveur 2, un dispositif participant 3 ou le serveur de confiance 4 met en œuvre un traitement, on comprendra que ce traitement est plus précisément mis en œuvre par le processeur correspondant 10, 20, 30, 40. On suppose qu’un individu dont l’identité est à contrôler se présente à proximité du dispositif de contrôle 1. Par exemple, l’individu à contrôler se présente à une porte d’embarquement d’un aéroport où a été installé le dispositif de contrôle 1, avec la volonté de monter à bord d’un avion. Dans une étape 102, le capteur biométrique 16 acquiert une donnée biométrique se rapportant l’individu à contrôler. Dans la suite, cette donnée biométrique est appelée « donnée biométrique d’épreuve » afin de la distinguer des données biométriques de référence discutées précédemment, et dont les chiffrés respectifs sont stockés par le serveur de stockage 2. Dans une étape 104, le dispositif de contrôle 1 envoie au serveur 2 la donnée biométrique d’épreuve , via l’interface de communication 12. Dans une étape 202, le serveur 2 reçoit la donnée biométrique d’épreuve via l’interface de communication 22. Dans une étape 204, le serveur 2 applique un traitement prenant en entrée la donnée biométrique d’épreuve et le chiffré , le traitement produisant le chiffré d’un score , ce score représentant une distance entre la donnée biométrique d’épreuve et la donnée biométrique de référence : Le calcul du chiffré est réalisé lors de cette étape dans le domaine chiffré. Autrement dit, cette étape ne comprend pas de calcul du score en clair. L’homme du métier peut utiliser les méthodes de chiffrement homomorphe connue de l’état de la technique. La fonction est préférentiellement une fonction linéaire ou polynomiale. Par exemple, la distance représentée par le score est un produit scalaire entre la donnée biométrique d’épreuve et la donnée biométrique de référence . Ainsi, le chiffré est le chiffré d’un tel produit scalaire. Dans ce qui suit, on considérera un mode de réalisation dans lequel le chiffré du score se présente sous la forme d’une paire de données , . Ces deux données constituent deux portions différentes du chiffré. Dans une étape 206, le serveur de stockage envoie le chiffré au dispositif 1 en réponse à la donnée biométrique d’épreuve . Dans une étape 106, le dispositif de contrôle 1 reçoit le chiffré . Dans une étape 108, le dispositif de contrôle 1 envoie au serveur de confiance 4 une requête associée au chiffré . Dans une étape 110, le dispositif de contrôle 1 envoie le chiffré à chacun des dispositifs participants 3. Les étapes 108, 110 peuvent être réalisées dans n’importe quel ordre ou bien être simultanées. Dans une étape 402, le serveur de confiance 4 reçoit la requête émise lors de l’étape 108. Dans une étape 404, le serveur de confiance 4 génère deux clés de déchiffrement secondaires , issues de la clé de déchiffrement . Par ailleurs, dans une étape 406, le serveur de confiance 4 génère un masque primaire . Le masque primaire est généré par une fonction . La fonction peut par exemple être la fonction décrit dans le document « Funshade: Functional Secret Sharing for Two-Party Secure Thresholded Distance Evaluation ». Dans une étape 408, le serveur génère : deux masques secondaires , issus du masque primaire , et deux données de démasquage , qui leur sont associés. Les étapes 404 et 406 peuvent être mises en œuvre dans n’importe quel ordre. En particulier, l’étape 404 peut être réalisée avant, pendant ou après les étapes 406, 408. Dans une étape 410 mise en œuvre pour i étant égal à 1 et 2, le serveur de confiance 4 transmet au dispositif participant 3 d’indice i : la clé de déchiffrement secondaire d’indice i, le masque secondaire d’indice i, et la donnée de démasquage d’indice i qui est associée au masque secondaire d’indice i. En revanche, une quelconque donnée d’indice 1 générée par le serveur de confiance 4 dans les étapes 402, 404 n’est pas envoyé au dispositif participant 3 d’indice 2, et vice versa. Pour i étant égal à 1 et 2, le dispositif participant 3 d’indice i met en œuvre les étapes suivantes. Dans une étape 302, le dispositif participant 3 d’indice i reçoit le chiffré . Dans une étape 304, le dispositif participant 3 d’indice i reçoit : la clé de déchiffrement secondaire d’indice i, le masque secondaire d’indice i, et la donnée de démasquage d’indice i, qui est associée au masque secondaire d’indice i. Les étapes 302 et 304 peuvent survenir dans n’importe quel ordre, selon la façon dont le dispositif de contrôle 1 opère. Dans une étape 306, le dispositif participant 3 d’indice i applique un traitement de déchiffrement et de masquage au chiffré du score. Ce traitement produit une donnée représentant le score sous une forme déchiffrée à l’aide de la clé de déchiffrement primaire puis masquée à l’aide du masque . On peut ainsi noter : Si l’on déchiffrait le chiffré à l’aide de la clé de déchiffrement primaire , on obtiendrait le score en clair. Si l’on appliquait ensuite un masquage au score en clair à l’aide du masque primaire , on obtiendrait la donnée . Or, le traitement de déchiffrement et de masquage ne fonctionne pas selon cette séquence d’opérations. Le traitement de déchiffrement et de masquage a pour propriété particulière de parvenir à la donnée sans réaliser de calcul intermédiaire du score en clair. On va maintenant détailler un mode de réalisation du traitement de déchiffrement et de masquage dans lequel cette propriété est obtenue. Dans ce mode de réalisation, le chiffré du score se présente sous la forme d’une paire de données , . Ces deux données constituent deux portions différentes du chiffré . Le dispositif participant 3 d’indice i calcule une donnée intermédiaire d’indice i à partir des données suivantes : la partie du chiffré , la clé de déchiffrement secondaire d'indice i, le masque d’indice i, et un aléa généré par le dispositif d’indice i. Ce calcul peut être le suivant : Le dispositif participant 3 d’indice i envoie la donnée intermédiaire d’indice i à l’autre dispositif participant 3 d’indice j≠i . Par ailleurs, le dispositif participant 3 d’indice i reçoit une donnée intermédiaire d’indice j≠i produite par l’autre dispositif participant d’indice j≠i. En définitive, deux données intermédiaires sont échangées entre les deux dispositifs participants 3 d’indices respectifs 1 et 2. Le dispositif participant 3 d’indice i calcule la donnée à partir des données intermédiaires , et à partir de la partie du chiffré ( ) du score. Ce calcul peut être réalisé comme suit : dans lequel est la donnée intermédiaire d’indice 1, est la donnée intermédiaire d’indice 2, est la deuxième partie du chiffré ( ) du score, et sont deux entiers constituant des paramètres d’un schéma de chiffrement de Brakerski/Fan-Vercauteren, désigne l’opérateur d’arrondi à l’entier le plus proche, désigne l’opérateur modulo q, désigne l’opérateur modulo t. Dans ce mode de réalisation, on a : Dans cette équation, le signe représente une égalité. Ainsi, la donnée s’avère être égale à la somme du score en clair et du masque primaire . Toutefois ce n’est pas ce calcul de somme qui est mis en œuvre par le dispositif participant 3 d’indice i. D’ailleurs, le dispositif participant 3 d’indice i n’a pas connaissance du masque primaire r, mais seulement du masque secondaire qui en est issu. Dans une étape 308, le dispositif participant 3 d’indice i calcule un résultat partiel d’indice i à partir de la donnée et de la donnée de démasquage d’indice i : Dans une étape 310, le dispositif participant 3 d’indice i envoie le résultat partiel au dispositif de contrôle 1. Le traitement mis en œuvre par le dispositif participant 3 d’indice i est terminé. Comme indiqué précédemment, le traitement constitué par les étapes 302 à 310 est mis en œuvre deux fois : une fois par le dispositif participant d’indice 1 et une fois par le dispositif participant d’indice 2. Ainsi, deux résultats partiels , sont générés. La paire de résultats partiels , a pour propriété de permettre le calcul d’un résultat de contrôle indiquant si la donnée biométrique d’épreuve correspond ou non à la donnée biométrique de référence . En revanche, il n’est pas possible de calculer ce résultat de contrôle sur la base d’un seul des deux résultats partiels , . Dans une étape 112, le dispositif de contrôle 1 reçoit les deux résultats partiels , respectivement générés et envoyés par les deux dispositifs participants 3. Dans une étape 114, le dispositif de contrôle 1 calcule le résultat de contrôle à partir des deux résultats partiels , reçus. Comme indiqué ci-dessus, le résultat de contrôle indique si la donnée biométrique d’épreuve correspond ou non à la donnée biométrique de référence. Dans un mode de réalisation, le résultat de contrôle est obtenu en sommant les résultats partiels, comme suit : En définitive, les traitements cryptographiques réalisés conjointement par les deux dispositifs participants 3 et l’étape de calcul du résultat de contrôle o représentent une comparaison entre un seuil et la distance entre la donnée biométrique d’épreuve et la donnée biométrique de référence. Le seuil est défini dans la fonction FSS.Setup() utilisée pour la génération du masque primaire , des clés de déchiffrement secondaire et des données de démasquage (le seuil est en quelque sorte encodé par ces données). En pratique, le résultat de contrôle peut être un booléen. Si le résultat de contrôle indique que la donnée biométrique d’épreuve correspond à la donnée biométrique de référence, alors il est considéré que l’individu auquel se rapporte la donnée biométrique d’épreuve a préalablement été enrôlé auprès du serveur 2. Dans ces conditions, le processeur 10 peut commander dans une étape 116 une ouverture du portique 18, afin de permettre à l’individu d’accéder à une zone sécurisée. Si le résultat de contrôle indique que la donnée biométrique d’épreuve ne correspond pas à la donnée biométrique de référence, alors il est considéré que l’individu contrôlé n’est pas l’individu de référence auquel se rapporte la donnée biométrique de référence . Les étapes qui précèdent (en particulier celles mises en œuvre les dispositifs participants 3) peuvent être mise en œuvre U fois pour différents chiffrés stockés par le serveur de stockage 2, et se rapportant à des données biométriques de référence différentes . Ces U mises en œuvre peuvent être séquentielles. En variante, on peut donc lancer U processus en parallèle mettant chacun en œuvre les étape 202 à 116 décrites précédemment, et agréger les résultats finaux à l'étape 308 (donc ), ou à l’étape 114 (donc ). Le procédé décrit précédemment peut faire l’objet d’autres variantes. On remarquera que dans le mode de réalisation de procédé représenté sur la et discuté jusqu’ici, des nouveaux masques, de nouvelles données de démasquage et des nouvelles clés de déchiffrement secondaires sont générés aux étapes 404, 408 à chaque fois qu’un chiffré de score est généré lors d’une mise en œuvre de l’étape 204. Ainsi, pour i étant égal à 1 et 2, le masque secondaire d’indice i, la donnée de démasquage d’indice i et la clé de déchiffrement secondaire d’indice i associées constitues des données à usage unique pour un chiffré particulier calculé lors d’une mise en œuvre d’une étape 204. Ce mode de réalisation est particulièrement robuste à des attaques par rejeu. Dans un autre mode de réalisation, il pourrait être envisagé que les données générées aux étapes 404, 408 soient des données à usage unique pour une donnée biométrique d’épreuve , ce qui implique que ces données sont réutilisées plusieurs fois pour différents utilisateurs de référence référencés dans la base de données du serveur de stockage 2, lors d’un contrôle d’identité de l’individu auquel se rapporte. Dans cet autre mode de réalisation, le dispositif de contrôle 1 peut requérir la génération de nouvelles données à usage unique auprès du serveur de confiance 4 à chaque fois qu’une nouvelle donnée biométrique d’épreuve est acquise. Bien que cela soit avantageux en termes de sécurité, le masque secondaire d’indice i, la donnée de démasquage d’indice i et la clé de déchiffrement secondaire d’indice i associées peuvent ne pas être des données à usage unique. Par ailleurs, il a été supposé jusqu’ici que les données fournies par le serveur 4 (clés secondaires, masques, données de démasquage) sont générées après la réception d’une donnée biométrique . Toutefois, ceci n’est pas obligatoire. En variante, ces données peuvent être générées au cours de la phase préliminaire durant laquelle les clés pk et sk sont générées et être mémorisées dans les mémoires respectives des dispositifs participants 3 en avance, donc avant l’acquisition de la donnée biométrique . Ainsi, tout ou partie des étapes 404, 406, 408 ,410 et 304 peut survenir avant l’étape 102 (dans ce cas, l’étape 108 n'est pas mise en œuvre, et l’étape 402 non plus). Dans un mode de réalisation particulièrement avantageux, seulement une paire de dispositifs participants 3 d’indices respectifs 1 et 2 est utilisée. Les inventeurs ont pu constater que ce mode de réalisation est simple de mise en œuvre, tout en étant raisonnablement rapide et sécurisé. Toutefois, il est également possible d’utiliser plusieurs paires de dispositifs participants mettant en œuvre le procédé décrit plus haut. Les des dispositifs participants 3 d’une paire, ne sont échangés qu’entre les dispositifs participants 3 de ladite paire. Par ailleurs, pour chaque paire de dispositifs participants 3, la somme des résultats partiels de la paire est égale au résultat de contrôle . En revanche, le serveur de confiance 4 peut fournir à des paires de participants différentes des clés secondaire et des données de masquage/démasquage différentes. Le bénéfice d’utiliser plusieurs paires de dispositifs 3 est de faire de la redondance pour s’assurer qu’il n’y a pas eu une erreur de calcul par une paire, par exemple en cas d’attaques. Dans ce qui précède, il a été discuté une application particulière du procédé de contrôle d’identité, dans laquelle le résultat du contrôle conditionne un accès à une zone sécurisé. Il est toutefois entendu que le procédé décrit peut être utilisé pour d’autres applications. Procédé comprenant : calcul (204) d’un chiffré ( ) d’un score représentant une distance entre une donnée biométrique d’épreuve ( ) se rapportant à un individu et une donnée biométrique de référence ( ), le chiffré ( ) du score étant préalablement calculé à partir de la donnée biométrique d’épreuve et d’un chiffré ( ) de la donnée biométrique de référence, le chiffré de la donnée biométrique de référence résultant d’un chiffrement de la donnée biométrique de référence ( ) à l’aide d’une clé de chiffrement primaire ( ), pour i étant égal à 1 et 2, mise en œuvre des étapes suivantes par un dispositif d’indice i: application (306) d’un traitement de déchiffrement et de masquage au chiffré ( ) du score à l’aide d’une clé de déchiffrement secondaire ( ) d’indice i et d’un masque secondaire ( ) d’indice i, le traitement de déchiffrage et de masquage produisant une donnée ( ) représentant le score sous une forme déchiffrée et masquée par un masque primaire ( ), et ce sans avoir calculé le score en clair, génération (308) d’un résultat partiel ( ) d’indice i à partir de la donnée ( ) et d’une donnée de démasquage ( ) d’indice i associée au masque secondaire ( ) d’indice i, dans lequel : les dispositifs d’indices respectifs 1 et 2 sont distincts, les clés de déchiffrement secondaires ( , ) d’indices respectifs 1 et 2 sont issues d’une clé de déchiffrement primaire ( ) associée à la clé de chiffrement ( ), les masques secondaires ( ) d’indices respectifs 1 et 2 sont issus du masque primaire ( ), les résultats partiels ( , ) d’indices respectifs 1 et 2 permettent le calcul d’un résultat de contrôle ( ) indiquant si la donnée biométrique d’épreuve correspond ou non à la donnée biométrique de référence. Procédé selon la revendication précédente, dans lequel le traitement de déchiffrement et de masquage mis en en œuvre par le dispositif d’indice i comprend les étapes suivantes : calcul d’une donnée intermédiaire ( ) d’indice i à partir des données suivantes : une première partie ( ) du chiffré ( ) du score, la clé de déchiffrement secondaire ( ) d'indice i, le masque secondaire ( ) d’indice i, et un aléa ( ) généré par le dispositif d’indice i, réception d’une donnée intermédiaire ( ) d’indice j envoyée par le dispositif d’indice j≠i, calcul de la donnée ( ) représentant le score sous une forme déchiffrée à l’aide de la clé de déchiffrement secondaire d'indice i puis masquée par le masque ( ), à partir des données suivantes : les données intermédiaires ( ) d’indices respectifs 1 et 2, une deuxième partie ( ) du chiffré ( ) du score. Procédé selon la revendication précédente, dans lequel la donnée intermédiaire d’indice i est calculée comme suit : dans lequel est la première partie du chiffré ( ) du score, est la clé de déchiffrement secondaire d'indice i, est le masque secondaire d’indice i, est l’aléa généré par le dispositif d’indice i. Procédé selon l’une quelconque des revendications 2 et 3, dans lequel la donnée ( ) représentant le score sous une forme déchiffrée à l’aide de la clé de déchiffrement secondaire d'indice i puis masquée à l’aide du masque primaire ( ) est calculée comme suit : dans lequel est la donnée intermédiaire d’indice 1, est la donnée intermédiaire d’indice 2, est la deuxième partie du chiffré ( ) du score, et sont deux entiers constituant des paramètres d’un schéma de chiffrement de Brakerski/Fan-Vercauteren, désigne l’opérateur d’arrondi à l’entier le plus proche, désigne l’opérateur modulo q, désigne l’opérateur modulo t. Procédé selon l’une quelconque des revendications précédentes, dans le résultat de contrôle ( ) est égal à la somme des résultats partiels ( ) d’indices respectifs 1 et 2. Procédé selon l’une quelconque des revendications précédentes, dans lequel au moins une des données suivantes est une donnée à usage unique pour la donnée biométrique d’épreuve ( ), voire pour le chiffré ( ) du score : le masque secondaire d’indice i, la donnée de démasquage d’indice i, la clé de déchiffrement secondaire d’indice i. Procédé selon l’une quelconque des revendications précédentes, dans lequel le calcul du chiffré ( ) du score est un calcul linéaire ou polynômial. Procédé selon l’une quelconque des revendications précédentes, dans lequel le calcul du chiffré ( ) est mis en œuvre mis en œuvre par un serveur distinct des dispositifs d’indices 1 et 2, et/ou le résultat de sortie est calculé à partir des résultats partiels ( ) d’indices respectifs 1 et 2 par un dispositif de sortie distinct des dispositifs d’indices 1 et 2. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l’une quelconques des revendications précédentes, lorsque ce programme est exécuté par un système comprenant les dispositifs d’indices respectifs 1 et 2. Mémoire lisible par ordinateur stockant des instructions exécutables par un dispositif pour l’exécution des étapes du procédé selon l’une quelconque des revendications 1 à 8. Système comprenant : un serveur (2) configuré pour calculer un chiffré ( ) d’un score représentant une distance entre une donnée biométrique d’épreuve ( ) se rapportant à un individu et une donnée biométrique de référence ( ), le chiffré ( ) du score étant préalablement calculé à partir de la donnée biométrique d’épreuve et d’un chiffré ( ) de la donnée biométrique de référence, le chiffré de la donnée biométrique de référence résultant d’un chiffrement de la donnée biométrique de référence ( ) à l’aide d’une clé de chiffrement primaire ( ), deux dispositifs (3) d’indices respectifs 1 et 2, dans lequel pour i étant égal à 1 et 2, le dispositif d’indice i est configuré pour : appliquer un traitement de déchiffrement et de masquage au chiffré ( ) du score à l’aide d’une clé de déchiffrement secondaire ( ) d’indice i et d’un masque secondaire ( ) d’indice i, le traitement de déchiffrage et de masquage produisant une donnée ( ) représentant le score sous une forme déchiffrée et masquée par un masque primaire ( ), et ce sans avoir calculé le score en clair, génération d’un résultat partiel ( ) d’indice i à partir de la donnée ( ) et d’une donnée de démasquage ( ) d’indice i associée au masque secondaire ( ) d’indice i, dans lequel : les clés de déchiffrement secondaires ( , ) d’indices respectifs 1 et 2 sont issues d’une clé de déchiffrement primaire ( ) associée à la clé de chiffrement ( ), les masques secondaires ( ) d’indices respectifs 1 et 2 sont issus du masque primaire ( ), les résultats partiels ( , ) d’indices respectifs 1 et 2 permettent le calcul d’un résultat de contrôle ( ) indiquant si la donnée biométrique d’épreuve correspond ou non à la donnée biométrique de référence.