FR 2925729 A1 20090626 FR 0709046 A 20071221 1 PROCEDE ET SYSTEME POUR GENERER DES DONNEES BIOMETRIQUES STABLES L'invention concerne un procédé et un système permettant de générer des données considérées comme stables lorsque l'on reproduit la capture d'une caractéristique biométrique associée à un individu. Elle s'applique, par exemple, pour authentifier un individu et pour générer des clés cryptographiques stables à partir de ses données biométriques non stables. Elle est utilisée en particulier pour l'authentification des individus à partir de leurs empreintes digitales. Le problème général de l'authentification est d'associer de manière aussi fiable que possible une identité à une donnée qui lui est propre. Actuellement, trois classes d'authentification sont connues, un mot clé connu de l'utilisateur, une clé ou une carte appartenant à un individu, ou encore une caractéristique accrochée à la personne ou individu. Certaines combinaisons sont assez populaires. La carte bancaire est une combinaison de ce que possède un individu, la carte, et de ce qu'il connaît, le code ou numéro d'identification de la personne plus connu sous l'acronyme anglo-saxon � PIN � pour Persona) Identification Number. Cette technique n'empêche toutefois pas une personne mal intentionnée de retirer de l'argent si cette personne dérobe la carte après avoir observé le code PIN. Ceci nécessite alors une révocation de carte afin d'éviter toute autre utilisation frauduleuse. Par ailleurs, si l'utilisateur oublie le code PIN, sa carte devient inutilisable, ce qui nécessite une procédure de régénération du code plus connue sous l'acronyme anglo-saxon de � pin recovery �. La biométrie offre notamment comme avantage de renforcer les sécurités offertes par les systèmes précités. L'empreinte digitale, ou toute autre caractéristique biométrique associée à un individu, est stockée lors d'une phase d'enrôlement à l'initialisation de la carte, par exemple. Lorsque la personne souhaite utiliser la carte et s'identifier auprès d'un système, ce 2 dernier collecte les données biométriques liées à l'empreinte de l'utilisateur et les compare avec les données biométriques situées sur la carte. La comparaison peut être effectuée hors de la carte, ou bien sur la carte, cette dernière technique étant plus connue sous l'expression anglo-saxonne match on card. Dans le premier cas, cela signifie qu'il existe une fonction permettant d'extraire les données biométriques de la carte avant de les comparer aux éléments d'une base de données situées dans un système séparé de la carte et généralement éloigné. Ainsi en cas de vol, il est possible d'extraire les données et d'en faire une copie pour utiliser la carte. Cette technique n'offre donc pas une sécurité élevée. La technique � match on card � offre une plus grande sécurité puisque les données biométriques ne peuvent sortir de la carte. Les performances obtenues par cette technique � Match on card � ne sont toutefois pas satisfaisantes, les données pouvant être compromises en cas de vol de la carte. D'autre part, cette technique a un coût élevé. Quoi qu'il en soit dans les deux cas, en cas de vol de la carte, les données biométriques restent accessibles plus ou moins facilement à partir de la carte pour des utilisateurs malveillants. Une autre difficulté rencontrée dans les systèmes de biométrie est relative à la non stabilité ou évolution des données biométriques. Ces données ne peuvent être considérées comme étant des données reproductibles d'une lecture ou capture à une autre. En effet, les données biométriques, notamment les empreintes digitales, sont des données qui sont sujettes à l'évolution, elles ne sont pas systématiquement identiques. Par exemple, dans le cas d'une empreinte, l'humidité du doigt, la mauvaise position d'un doigt lors de la prise d'une empreinte ou d'autres paramètres peuvent engendrer des différences entre deux captures d'une même empreinte. La cryptographie classique utilise des données exactes et reproductibles. La sécurité qu'elle offre repose notamment sur le fait qu'une faible variation des variables et des paramètres d'entrées induit un résultat différent sur la donnée de sortie. L'utilisation en cryptographie de données biométriques 3 nécessite donc de tenir compte des variations possibles des données biométriques précitées. II faut donc, soit protéger les données biométriques pouvant identifier une personne ou un individu, soit protéger l'association entre une identité et sa biométrie, idéalement les deux. Le brevet US 6 782 120 décrit un procédé et un système pour générer un PIN code servant à l'authentification d'un individu. L'art antérieur repose en général sur une technique permettant de générer une données stable ayant une complexité de 4 digits (inférieur à 14 bits). Cette complexité n'est en général pas suffisante pour définir une clé cryptographique offrant une sécurité élevée. Par exemple, dans l'état de l'art il est connu d'extraire un PIN code à partir de la forme globale de l'empreinte digitale. D'une saisie de l'empreinte à l'autre, cette forme varie peu et ainsi le PIN code est correctement retrouvé. Trouver 14 bits stables dans une empreinte digitale ne requiert pas d'algorithme complexe, pas de stockage de données issues de l'empreinte de référence, pas de CRC. L'art antérieur connu du Demandeur n'offre toutefois pas de solution complète au problème de l'authentification biométrique, c'est-à-dire, une solution efficace (temps d'encodage et de décodage des données), sécurisée, robuste (tolérance aux erreurs d'une capture à une autre), respectant les règles imposées par la CNIL (commission ..), c'est-à-dire l'absence dans le système de base de données biométriques permettant d'associer une identité et sa donnée biométrique. L'invention repose sur un procédé présentant notamment comme particularité de stocker dans un support des données qui représentent la caractéristique biométrique et un code correcteur d'erreur, l'ensemble de ces données: • ne permet pas de reconstituer un ensemble de points ou � template �, correspondant à une image A, • permet de reconstituer une clé cryptographique (au moins 60 bits) à partir de la donnée biométrique, • évite la reproduction de la donnée biométrique même si le support est volé et analysé. De cette manière, le procédé s'affranchit en grande partie de l'évolution des données biométriques dans le temps. L'invention concerne un procédé pour générer des données biométriques stables associées à des données biométriques appartenant à un individu caractérisé en ce qu'il comporte au moins les étapes suivantes : • lors de l'enrôlement biométrique d'un individu capturer les données biométriques de l'individu et déterminer à partir des ces données ou image A, un ensemble appelé �template � TA de points particuliers correspondant, • créer une constellation CA en utilisant un aléa et un code correcteur d'erreur ou syndrome SA associés à l'ensemble ou � template � TA, • effacer les données capturées ou image A et conserver la constellation CA et le syndrome SA, sur un support associé à un individu. Le procédé selon l'invention peut comporter une étape de recouvrement d'une donnée biométrique représentative d'un individu, comportant par exemple les étapes suivantes : • capturer une caractéristique biométrique B de l'individu, et générer un ensemble ou �template� TB, • utiliser un ensemble ou � template � TB correspondant à la donnée biométrique capturée et à partir de la constellation CA mémorisée lors de la phase d'enrôlement selon la revendication 1, comparer les 25 données du � template � TB avec la constellation CA, • si une coordonnée de minutie de TB est proche d'une minutie de la constellation CA, la coordonnée de minutie de TB prend les coordonnées de la constellation CA, réitérer pour un nombre donné de coordonnées de minutie de TB créer un ensemble � template � T'A 30 correspondant au � template � TA à quelques minuties non intersectées, • déterminer le syndrome S'A à partir du �template � T'A, • utiliser le syndrome SA et le syndrome S'A et le � template � T'A afin de retrouver un �template�, • si le � template � trouvé est voisin de TA, alors décréter que l'individu 5 est reconnu. L'invention concerne aussi un système comportant des moyens permettant de mettre en oeuvre les étapes précitées du procédé selon l'invention. D'autres caractéristiques et avantages apparaîtront à la lecture de la 10 description détaillée donnée à titre d'exemple et non limitative qui suit faite en regard de dessins annexés qui représentent : • La figure 1, un schéma d'enrôlement biométrique lors de l'initialisation, • La figure 2, un schéma de recouvrement de la donnée biométrique, et • La figure 3, un procédé de diversification avec aléa à l'enrôlement. 15 Afin de mieux faire comprendre le principe mis en oeuvre dans le procédé et le système selon l'invention, la description qui suit est donnée dans le cas où la donnée biométrique utilisée pour identifier un individu est une empreinte digitale. Toute autre type de caractéristiques biométriques représentatives 20 d'un individu peut être utilisé, par exemple la structure de l'iris. Il est aussi envisageable d'utiliser la signature d'un individu qui est reconnue comme une donnée biométrique dans le domaine. Pour mémoire, une empreinte digitale peut être représentée par un ensemble de minuties, ou d'autres données caractéristiques. Une minutie, terme connu 25 de l'Homme du métier correspond à des points caractéristiques d'une empreinte, par exemple la fin d'une ligne, des croisements de lignes, des bifurcations, etc.. dans l'image de l'empreinte. Le procédé selon l'invention utilise, par exemple, des extracteurs flous plus connus sous l'acronyme anglo-saxon � fuzzy extractors �. Ces objets 30 permettent de générer de façon reproductible des données issues de données biométriques. Tout autre algorithme présentant les mêmes caractéristiques pourra être mis en oeuvre. En résumé, le procédé selon l'invention repose sur l'utilisation d'une information plus complexe que celle utilisée dans l'art antérieur et qui de plus est stabilisée. La complexité de l'information traitée est au moins de l'ordre de 60 bits. La forme globale de l'empreinte digitale devient insuffisante en fonctionnement normal. Ainsi, le procédé va s'intéresser à des caractéristiques plus complexes que sont les coordonnées des minuties. D'une saisie à l'autre les minuties ne seront pas aux même endroits (même coordonnées) et, de plus des minuties auront disparues et d'autre auront été trouvées. Afin de remédier à ce problème, le procédé stocke les coordonnées des minuties de références dans un support ou � token �. Afin d'assurer la sécurité de l'ensemble, les minuties vraies, c'est-à-dire, celles qui sont déductibles de la prise de l'empreinte digitale sont noyées dans de nombreuses fausses minuties, c'est la constellation. Cette étape est réalisée par exemple lors de la fabrication du �token�. Lors de l'utilisation du �token�, le système va faire l'intersection entre les minuties présentées à un capteur de prise d'empreinte et les minuties de la constellation enregistrées sur le �token�. S'il y a intersection, ce sont les coordonnées des minuties de la constellation restante qui sont gardées. A ce stade, les coordonnées exactes des minuties d'origine sont pratiquement retrouvées. Des erreurs peuvent néanmoins survenir, des minuties peuvent avoir été ratées, et des fausses minuties avoir été fortuitement ajoutées. C'est le code correcteur d'erreur ou � CRC � qui se charge de corriger les erreurs. Les figures 1 et 2 décrivent un exemple de mise en oeuvre du procédé selon l'invention, permettant tout d'abord d'enrôler une personne dans un système, puis de reconnaître un individu. La figure 1 schématise un système selon l'invention comportant un périphérique 1 comprenant, par exemple, des moyens tels qu'un processeur 2 adapté à exécuter les étapes du procédé selon l'invention, et un capteur 3 7 permettant la lecture ou capture de l'empreinte digitale 4 d'un individu. Un support 5 ou �token� permet la sauvegarde des données générées lors du procédé, ce support 5 étant en liaison avec le périphérique 1. Les étapes du procédé représentées sur la figure 1 se déroulent de la manière décrite ci-après. Lors de la phase d'enrôlement biométrique (initialisation du support plus communément désigné par le mot anglo-saxon � token �), le capteur d'empreinte 3 capture les données issues et représentatives de l'empreinte digitale d'un individu et les transfère au processeur 2 qui fabrique une image A. A partir de l'image A le processeur 2 détermine un objet ou �template � TA correspondant aux coordonnées des minuties de l'empreinte. L'image A, le � template � TA sont par exemple stockés dans une mémoire 6 pour générer une clé de chiffrement et/ou une constellation CA et un syndrome SA. Ce � template � TA est ensuite transformé en une constellation CA qui est fabriquée par un processus connu de l'Homme du métier consistant à ajouter aux points du � template � TA des points de façon à permettre le masquage du � template � initial A. La constellation CA, le syndrome SA, éventuellement la clé de chiffrement KA et l'aléa générés à partir de l'image A et du � template � TA sont stockés dans le support 5. A la fin du processus, le processeur 2 efface les différentes données se trouvant sur le périphérique 1, notamment dans la mémoire 6, et seules la constellation et le syndrome obtenu à partir de l'image A sont conservées dans le support 5. Ce support peut être une carte, un enregistrement (une ligne, si la base est vue comme un tableau, dédiée à un utilisateur) dans une base de données intégrée à un serveur. Une manière de générer une constellation CA consiste à ajouter de fausses minuties entre les vraies minuties associées à une empreinte d'un individu. Il peut, n'y avoir jamais deux minuties à moins d'une distance de l'ordre de 6 pixels à 500 dpi (Digit par inch).30 8 Le � template � TA issu de l'empreinte lors de l'enrôlement ou initialisation du �token� peut aussi être utilisé pour générer une clé cryptographique KA, éventuellement avec un aléa comme il est décrit en relation avec la figure 3. Cette clé pourra être utiliser pour une application de chiffrement ou de signature. Cette clé cryptographique repose sur une complexité d'au moins 60 bits. La clé cryptographique est alors fonction des vrais minuties et de l'aléa, et non uniquement des seules vrais minuties. Ainsi si un utilisateur crée deux � tokens � avec un même doigt, la clé cryptographique sera radicalement différente. Car cette clé est aussi fonction d'un aléa. A la fin d'une phase d'enrôlement d'un individu, sur le � token � ne restent, par exemple, que les éléments suivants : • Le Secret protégé par la clé biométrique (KA), • Le Syndrome de l'empreinte SA, • La Constellation permettant la reconstruction de l'empreinte originale à partir d'une nouvelle capture CA, • L'aléa servant à diversifier la clé cryptographique. La constellation CA étant constituée du � template � TA et de nombreuses fausses minuties ajoutées, il devient donc difficile de remonter de la constellation CA vers le �template � TA. De même le syndrome SA est le code correcteur du �template� TA, il est donc difficile de remonter du syndrome SA au �template� TA sans autres informations. La figure 2 illustre les étapes mises en oeuvre par le procédé pour l'authentification d'un individu et le recouvrement d'une donnée biométrique. L'individu qui cherche à être identifié, pose son doigt 4' sur un capteur d'empreinte 10. Les données issues de ce capteur d'empreinte digitale se présentent sous la forme d'une image B transmise à un dispositif 11 comprenant des moyens de stockage temporaires 12 des données à traiter, un processeur ou calculateur 13 recevant les informations issues du capteur biométrique et les informations stockées dans le support 5 contenant les 9 données obtenues lors de l'enrôlement de l'individu, à savoir la constellation A et le syndrome A. Le procédé exécute alors les étapes décrites ci-après : • le processeur 13 génère à partir de l'image B un � template � TB, • il compare ensuite les coordonnées de minutie du �template � TB avec les données correspondant à la constellation CA stockée dans le support 5. Si une coordonnée d'une minutie du � template � TB est proche d'une minutie de la constellation CA, cette minutie est retenue comme étant une donnée d'origine de TA et les autres minuties ne sont pas prises en compte. Cette comparaison est exécutée pour toutes les coordonnées du � template � TB. Il en résulte une liste de minuties T'A proches de la liste de minuties d'origine TA à quelques ajouts ou absence près. Les mécanismes ou algorithme de contrôle de correction d'erreur ou CRC permettent de supprimer les ajouts et d'ajouter les minuties manquantes. Cette étape est effectuée selon l'association de deux procédés connus de l'Homme du métier qui consiste à retrouver les minuties dans une constellation et à corriger les erreurs par l'utilisation du syndrome. A la fin de l'opération, un processeur 15 connaît le � template � TA', 14, qui correspond au � template � TA à quelques minuties non intersectées. A partir du syndrome SA, du � template � TA ', du syndrome SA' et en utilisant les propriétés des fuzzy extracteurs mécanismes connus de l'Homme du métier, il est alors possible de retrouver le �template� initial TA, ceci dans son intégralité. Dans le cas où les différences sont trop importantes, l'individu n'est pas reconnu. Ceci se traduit par un � template � TA' composée essentiellement de minuties différentes de TA. Le syndrome SA' et SA ne permettent pas, alors, de reconstituer le � template � TA. L'algorithme � Pintsketch � est décrit dans le document de Y. Dodis, R. Ostrovsky, L. Reyzin and A. Smith . Fuzzy extractors : How to generate strong keys from biometrics and other noisy data. Cryptology ePrint Archive , Report 2003/235,2003. http://eprint.iacr.orq L'algorithme "Point set Hidding" est par exemple exposé dans le document de E-C. Chang and Q. Li. Hiding secret points amidst chaff. In Eurocrypt 2006 LNCS 4404 pages 59-72, 2006. Le processeur 15 est capable en utilisant un logiciel connu de l'Homme du métier de remonter du � template � TB à la clé de chiffrement KA, si et seulement si le � template � TB est suffisamment similaire au � template � TA. Cette clé KA, de chiffrement est utilisée par la suite pour chiffrer des données. La figure 3 représente une variante de mise en oeuvre dans le cas où une personne utilise son doigt pour plusieurs applications. Dans ce cas, il peut être intéressant de générer plusieurs clés cryptographiques différentes (un doigt générant plusieurs clés, chaque clé générée pouvant ouvrir une porte différente, dans le cas d'une application où la reconnaissance d'une empreinte est associée à un accès à une zone). Pour cela, un aléa est utilisé pour diversifier chaque clé que génère chaque support ou �token�. Chaque aléa est stocké dans un � token �. Les étapes du procédé peuvent être les suivantes : le procédé de recouvrement est identique à celui décrit à la figure 2 excepté qu'un aléa AI est stocké dans une carte 5 permettant de reconstituer la clé KI tandis que dans les étapes de recouvrement décrites à la figure 2, il n'y a pas d'aléa permettant de reconstituer la clé KA1. Par ailleurs, l'introduction de l'aléa permet une révocation de la clé KA1 sans avoir à révoquer l'instance du doigt A. II est ainsi possible d'imaginer un �token� possédant plusieurs aléal , aléa2, ... et donc permettant de générer plusieurs clés (KAS, KA2, ...) avec un même doigt et un même support ou �token�. Le procédé et le système selon l'invention présentent notamment les 30 avantages suivants : o Aucune donnée sensible n'est stockée, seules des données permettant la reconstitution des données sensibles sont mémorisées, o La possession du support ou de mémorisation des données seule, ne permet pas de s'authentifier, il faut le �token� et l'empreinte correspondante, o Le schéma utilise des algorithmes de type � PinSketch � connus de l'Homme du métier et qui utilise des propriétés des codes correcteurs d'erreurs pour assurer à la fois la confidentialité des données et la tolérance aux variations entre deux captures d'une même donnée biométrique. La complexité de l'algorithme assure des calculs rapides à l'enrôlement comme lors de la vérification. o L'utilisation d'un algorithme extracteur flou � fuzzy extractor � permet en outre de ne pas stocker de données brutes, mais seulement des données dites de correction qui ne permettent pas de retrouver l'empreinte originale sans la connaissance d'une nouvelle capture. REVENDICATIONS 1 - Procédé pour générer des données biométriques stables associées à des données biométriques appartenant à un individu caractérisé en ce qu'il 5 comporte au moins les étapes suivantes : • lors de l'enrôlement biométrique d'un individu capturer les données biométriques de l'individu et déterminer à partir des ces données ou image A, un ensemble appelé � template � TA de points particuliers correspondant, 10 • créer une constellation CA en utilisant un aléa et un code correcteur d'erreur ou syndrome SA associés à l'ensemble ou �template� TA, • effacer les données capturées ou image A et conserver au moins la constellation CA et le syndrome SA, sur un support (5) associé à un individu. 15 2 ù Procédé selon la revendication 1 caractérisé en ce qu'il comporte une étape de génération d'une clé de chiffrement KA correspondant au �template� TA ladite clé étant stockée dans le support associé à un individu. 20 3 ù Procédé selon la revendication 1 caractérisé en ce que l'on utilise une empreinte digitale d'un individu comme donnée biométrique. 4 ù Procédé selon la revendication 1 caractérisé en ce qu'il utilise l'algorithme � Pintsketch afin de générer une constellation. ù Procédé selon l'une des revendications 2 à 4 caractérisé en ce qu'il utilise les propriétés des extracteurs flous. 25 6 û Procédé selon l'une des revendications 3 à 5 caractérisé en ce qu'il génère plusieurs clés en utilisant plusieurs aléas à partir d'une même donnée biométrique. 7 - Procédé pour identifier un individu utilisant le procédé selon la revendication 1 caractérisé en ce que lors de l'étape de recouvrement d'une donnée biométrique représentative d'un individu, le procédé comporte les étapes suivantes : • capturer une caractéristique biométrique B de l'individu, et générer un 10 � template � TB, • utiliser le � template � TB correspondant à la donnée biométrique capturée et à partir de la constellation CA mémorisée lors de la phase d'enrôlement selon la revendication 1, comparer les données du �template � TB avec la constellation CA, 15 • si une coordonnée de minutie de TB est proche d'une minutie de la constellation CA, la coordonnée de minutie de TB prend les coordonnées de la constellation CA, réitérer pour un nombre donnée de coordonnées de minutie de TB créer un �template� T'A correspondant au � template � TA à quelques minuties non 20 intersectées, • déterminer le syndrome S'A à partir du template T'A, • utiliser le syndrome SA et le syndrome S'A et le � template � T'A afin de retrouver un � template �, • si le � template � trouvé est voisin de TA, alors décréter que l'individu 25 est reconnu 8 û Système pour générer des données biométriques stables associées à des données biométriques appartenant à un individu caractérisé en ce qu'il comporte au moins les éléments suivants : 30 • un capteur (3) adapté à capter une donnée biométrique relative à un individu,• un moyen (2) permettant de créer une constellation CA en utilisant un aléa et un code correcteur d'erreur ou syndrome SA associés à l'ensemble ou � template � TA, et d'effacer les données capturées ou image A et conserver au moins la constellation CA et le syndrome SA, sur un support (5) associé à un individu. 9 ù Système selon la revendication 8 caractérisé en ce qu'il comporte au moins les éléments suivants : • un capteur (10) adapté à capter une donnée biométrique relative à un individu, • un processeur (13) recevant les informations issues du capteur (10) et des informations stockées dans le support (5), ledit processeur (13) étant adapté à exécuter les étapes du procédé selon la revendication 7. 10 ù Système selon l'une des revendications 8 ou 9 caractérisé en ce que le capteur est un capteur d'empreinte digitale.15