FR 2957168 A1 20110909 FR 1051666 A 20100308 PROCEDES, SYSTEMES ET DISPOSITIFS DE VERIFICATION BIOMETRIQUE La présente invention concerne la vérification biométrique. La vérification biométrique s'entend généralement de l'authentification ou de l'identification d'individus, humains ou animaux, à partir de données biométriques, c'est-à-dire de caractéristiques biologiques de ces individus, telles que des empreintes digitales, une forme générale de doigts de la main, des caractéristiques de la voix, des caractéristiques de l'iris de l'ceil, etc. Une telle vérification biométrique utilise conventionnellement une base de données stockant des données biométriques - ou des données dérivées de données biométriques - relatives à des individus préalablement enrôlés, c'est-à-dire déclarés selon une procédure spécifique pour se voir délivrer, lors d'une vérification biométrique, un droit quelconque (délivrance d'un permis de conduire, d'un titre de transport, d'une indemnisation, autorisation d'accès à un local, etc.). Un exemple très simple de vérification biométrique est illustré sur la figure 1, où l'on distingue une base de données 1 stockant un ensemble de données biométriques b1, b2,..., bN relatives à des individus enrôlés. Ces données biométriques b1, b2,..., bN sont par exemple des images représentant telle ou telle caractéristique biologique d'individus respectifs, des points remarquables d'une caractéristique biologique (par exemple des minuties dans le cas d'empreintes digitales), ou autre. Avantageusement, une représentation numérique des données biométriques peut être utilisée, de façon à en simplifier la manipulation et à 25 rendre ces données intégrables dans un algorithme cryptographique. A titre d'exemple non limitatif, les données b1, b2,..., bN stockées dans la base de données 1 peuvent consister chacune en un vecteur numérique, par exemple binaire, correspondant à une donnée biométrique d'un individu respectif. De nombreuses façons d'obtenir un vecteur numérique à partir d'une 30 donnée biométrique sont connues. Dans l'exemple de la figure 1, la vérification biométrique se passe de la 2957168 -2- manière suivante relativement à un individu donné. On obtient une donnée biométrique, ou sa représentation sous forme de vecteur numérique, b' de l'individu considéré. Cette donnée b' est comparée à tout ou partie des données b1, b2,..., bN stockées dans la base de données 1 (référence 2). 5 En cas de concordance ou de proximité suffisante, on peut en déduire que l'individu considéré correspond à un individu enrôlé (cas d'une identification) ou à l'individu enrôlé qu'il prétend être (cas d'une authentification). Ce résultat est noté R sur la figure 1. Un problème de cette technique de vérification biométrique est que les ~o données biométriques, ou leur représentation numérique, b1, b2,..., bN sont stockées en clair dans la base de données 1. Une personne indélicate qui parviendrait à accéder au contenu de la base de données 1, disposerait ainsi d'informations pertinentes sur les individus enrôlés. Ceci va à l'encontre de la protection de liberté individuelle et de la vie privée. 15 Pour pallier cet inconvénient majeur, il est connu de protéger les données b1, b2,..., bN à l'aide d'un algorithme cryptographique. A titre d'exemple, seule une version chiffrée des données b1, b2,..., bN pourrait être stockée dans la base de données 1. Toutefois, cette solution requiert d'utiliser un module supplémentaire S 20 3, avantageusement sécurisé, pour stocker par exemple une clé de chiffrement et/ou de déchiffrement appropriée. En plus de complexifier la vérification biométrique, cette solution n'assure pas une protection efficace des données b1, b2,..., bN vis-à-vis d'une personne qui aurait accès à la clé de chiffrement et/ou de déchiffrement via le module S 3 ou par tout autre moyen. Un autre inconvénient de la technique décrite en référence à la figure 1 est que les captures de données biométriques sont par nature non reproductibles. La comparaison 2 entre b' et une des données b1i b2,..., bN stockées dans la base de données 1 peut donc révéler une absence de concordance, alors que les données comparées se rapportent en réalité à un même individu. Une technique d'identification biométrique plus évoluée a été développée et décrite par Hao, Daugman et Zielinski dans l'article de juin 2008, 2957168 -3- intitulé "A fast search algorithm for a large fuzzy database," IEEE Transactions on Information Forensics and Security. Cette technique est basée sur l'utilisation de l'iris de l'oeil. La figure 2 en montre schématiquement les grands principes. 5 Soient b1, b2,..., bN, des vecteurs binaires de taille n dérivés respectivement des iris d'individus enrôlés, n étant un entier très supérieur à 128. Plutôt que de stocker b1, b2,..., bN, comme dans l'exemple précédent, la base de données 4 ne stocke que 128 projections de ces vecteurs en utilisant des fonctions de projection h1, h2,..., h128i la projection d'un vecteur étant ~o définie comme une réduction de dimension de ce vecteur (la longueur de ce vecteur dans ce cas). A titre d'exemple, la projection d'un vecteur peut consister en une restriction de ce vecteur à un nombre m de ses n coordonnées, m étant très inférieur à n. Un ordre de grandeur typique est par exemple n=2048 et m=10. 15 La base de données 4 stocke ainsi h1(b1), h2(b1),.••, h128(b1) ; h1(b2), h2(b2),..., h128(b2), et ainsi de suite jusqu'à hl(bN), h2(bN),..., h128(bN). Lors de la capture de l'iris d'un individu se présentant pour une vérification biométrique, on calcule les 128 projections du vecteur binaire b' correspondant, c'est-à-dire h1(b'), h2(b'),..., h128(b'). 20 Une comparaison 5 est alors effectuée entre les projections h1(b'), h2(b'),..., h128(b') et les projections stockées dans la base de données 4 correspondant à tout ou partie des individus enrôlés. On retient comme candidats, les vecteurs binaires, parmi b1i b2,..., bN, dont un nombre déterminé de projections égalent les projections 25 correspondantes de b'. Dans l'exemple illustré sur la figure 2, ce nombre a été fixé à 3, de telle sorte que s'il existe trois collisions quelconques entre hi(ba), h2(ba),..., h128(ba) d'une part et h1(b'), h2(b'),..., h128(b') d'autre part, avec 0 2). Leur obtention à partir des données biométriques peut mettre en oeuvre toute méthode connue. De façon similaire à la technique de Hao, Daugman et Zielinski 25 mentionnée plus haut, on applique à chacun de ces vecteurs numériques un nombre p de fonctions de projection h1, h2,..., hp, de façon à obtenir, pour chacun des vecteurs numériques, p projections. On rappelle que la projection d'un vecteur est définie comme une application réduisant l'espace de départ de ce vecteur à un espace de dimension plus petite. Chacune des p projections 30 d'un vecteur numérique est donc de plus petite dimension que ledit vecteur numérique. Un exemple non-limitatif de projection d'un vecteur, qui sera plus particulièrement considéré par la suite, consiste en une restriction de ce 2957168 -9- vecteur à un nombre m de ses n coordonnées, m étant inférieur à n. En remplacement ou en complément d'une restriction, la projection d'un vecteur pourrait comprendre une projection suivant une base de vecteurs orthogonaux. Les fonctions de projection h1, h2,..., hp peuvent être identifiées chacune par un 5 identifiant numérique respectif, comme l'illustrent les indices 1 à p. Selon un exemple de réalisation, les projections d'un vecteur numérique sont obtenues à l'aide d'un ensemble de vecteurs v1, ..., vp de taille n chacun et éventuellement orthogonaux deux à deux. Ces projections sont construites chacune comme le produit scalaire entre le vecteur numérique 10 considéré et un des vecteurs v1i ..., vp. Ainsi, h1(bi) pourrait correspondre au produit scalaire entre b1 et un v1, h2(b1) pourrait correspondre au produit scalaire entre b1 et un v2,..., et hp(b1) pourrait correspondre au produit scalaire entre b1 et un vp. L'ensemble des projections h1(b1), h2(b1),..., hp (b1) forme ainsi un vecteur de m bits, consistant par exemple en des signes binaires 15 (+=>O, -=>1). Selon un exemple de réalisation plus particulier, chaque projection d'un vecteur numérique correspond à un ensemble de coordonnées données au sein de ce vecteur numérique. Ainsi, h1(b1) pourrait correspondre aux coordonnées de b1 de positions m1, m2, ..., mm, h2(b1) pourrait correspondre 20 aux coordonnées de b1 de positions m'1, m'2, ..., m'm, etc., m1, m2, ..., mm, m'1, m'2, ..., m'm étant des entiers quelconques compris entre 1 et n. C'est cet exemple de réalisation qui est retenu pour la suite de la description, sans que ceci constitue une quelconque limitation de la portée de l'invention, laquelle peut mettre en oeuvre n'importe quel type de projection envisageable. 25 Dans cet exemple, le nombre p peut par exemple être égal à 128 comme dans l'exemple décrit en introduction, mais toute autre valeur peut être envisagée. Avantageusement, p est très inférieur à n, par exemple d'un facteur de l'ordre de la dizaine ou de la centaine. Par ailleurs, m est avantageusement très inférieur à n, par exemple 30 d'un facteur de l'ordre de la centaine ou du millier. Un ordre de grandeur typique est par exemple n=2048 et m=10, bien que toute autre valeur puisse être envisagée. 2957168 -10- A l'issue de cette étape, on dispose donc des projections suivantes : h1(b1), h2(bi),..., hp (b1) ; h1(b2), h2(b2),..., hp(b2), et ainsi de suite jusqu'à hi(bN), h2(bN),..., hp(bN). On calcule ensuite, pour chacun des vecteurs numériques, des 5 données numériques relatives respectivement à toutes les combinaisons d'un nombre c de projections parmi les p projections calculées pour ledit vecteur numérique et aux identifiants numériques identifiant les c fonctions de projection correspondantes, c étant un entier inférieur à p. Supposons par exemple que c soit égal à 3, étant entendu que toute 10 autre valeur de c est envisageable, les données numériques mentionnées ci-dessus tiennent donc compte chacune d'un triplet de projections d'un vecteur numérique, ainsi que des identifiants numériques identifiant les trois fonctions de projection correspondantes. Soient i, j et k trois entiers quelconques compris entre 1 et p, tels que 15 i On peut alors apporter une conclusion à la vérification biométrique de l'individu considéré (résultat R2) Dans le cas d'une identification, on peut par exemple conclure que l'individu considéré correspond à un individu enrôlé. Des étapes supplémentaires peuvent éventuellement être mises en oeuvre, dans le cas d'une authentification, pour vérifier que cet individu correspond bien à celui qu'il prétend être. On notera que d'autres critères que celui qui vient d'être exposé peuvent être utilisés pour apporter une conclusion à la vérification biométrique, comme cela apparaîtra à l'homme du métier. A titre d'exemple non limitatif, on 3o pourrait requérir que plusieurs données numériques i II j II k II h;(b') Il h1(b') Il hk(b') ne se retrouvent pas dans la base de données négative NDB 10 pour considérer que l'individu considéré correspond à un - 20 - individu enrôlé. La vérification biométrique telle qu'elle vient d'être décrite peut être réalisée à l'aide d'un système ou d'un dispositif comprenant des unités appropriées à cet effet. Ce système ou dispositif peut par exemple consister en un terminal de capture biométrique associé à un module de traitement de données. Tout ou partie des opérations de vérification biométrique mentionnées plus haut peuvent être mises en oeuvre à l'aide d'un programme d'ordinateur comprenant des instructions appropriées, lorsqu'il est chargé et exécuté sur ~o des moyens informatiques. REVENDICATIONS1. Procédé de construction d'une base de données (10) relative à des individus enrôlés à des fins de vérification biométrique, comprenant les étapes suivantes : - obtenir des vecteurs numériques (b,, b2,..., bN) dérivés de données biométriques relatives auxdits individus respectivement ; - appliquer à chacun des vecteurs numériques un nombre p de fonctions de projection (h,, h2,..., hp) identifiées chacune par un identifiant numérique respectif, de façon à obtenir, pour chacun des vecteurs ~o numériques, p projections de plus petite dimension que ledit vecteur numérique ; - calculer, pour chacun des vecteurs numériques, des données numériques (i II j II k II h;(bt) Il hi(bt) (I hk(bt)) relatives respectivement à toutes les combinaisons d'un nombre c de projections parmi les p 15 projections calculées pour ledit vecteur numérique et aux identifiants numériques identifiant les c fonctions de projection correspondantes, c étant inférieur à p ; - déterminer l'ensemble des données complémentaires de l'ensemble desdites données numériques ; 20 - stocker l'ensemble des données complémentaires dans une base de données (10). 2. Procédé selon la revendication 1, dans lequel, pour chacun des vecteurs numériques (b,, b2,..., bN), les données numériques (i II j II k Il h;(bt) Il hi(bt) Il hk(bt)) calculées correspondantes comprennent 25 chacune une concaténation de c projections dudit vecteur numérique et des identifiants numériques identifiant les c fonctions de projection correspondantes. 2957168 - 22 - 3. Procédé selon la revendication 1 ou 2, dans lequel ledit ensemble des données complémentaires est stocké dans la base de données (10) sous une forme condensée. 4. Procédé selon la revendication 2, dans lequel la forme condensée 5 dudit ensemble des données complémentaires est obtenue par application d'un algorithme de type préfixe. 5. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit ensemble des données complémentaires est stocké dans la base de données (10) sous une forme randomisée. 6. Système ou dispositif pour la construction d'une base de données (10) relative à des individus enrôlés à des fins de vérification biométrique selon l'une quelconque des revendications précédentes, le système ou dispositif comprenant : - une unité d'obtention de vecteurs numériques (b1, b2,..., bN) dérivés de 15 données biométriques relatives auxdits individus respectivement ; - une unité pour appliquer à chacun des vecteurs numériques un nombre p de fonctions de projection (h1, h2,..., hp) identifiées chacune par un identifiant numérique respectif, de façon à obtenir, pour chacun des vecteurs numériques, p projections de plus petite dimension que ledit 20 vecteur numérique ; - une unité de calcul, pour chacun des vecteurs numériques, de données numériques (i Ii j Il k 11 h;(bt) 11 hi(bt) Il hk(bt)) relatives respectivement à toutes les combinaisons d'un nombre c de projections parmi les p projections calculées pour ledit vecteur numérique et aux identifiants 25 numériques identifiant les c fonctions de projection correspondantes, c étant inférieur à p ; - une unité de détermination de l'ensemble des données complémentaires de l'ensemble desdites données numériques ; une unité de transmission de l'ensemble des données 30 complémentaires dans une base de données (10). 2957168 - 23 - 7. Procédé de vérification biométrique relativement à un individu, utilisant une base de données (10) construite selon l'une quelconque des revendications 1 à 5, le procédé de vérification biométrique comprenant les étapes suivantes : 5 - obtenir un vecteur numérique (b') dérivé d'une donnée biométrique relative audit individu ; - appliquer audit vecteur numérique un nombre p' desdites fonctions de projection (h,, h2,..., hp), de façon à obtenir p' projections de plus petite dimension que ledit vecteur numérique ; io - calculer des données numériques (i II j II k II h1(b') Il hi(b') Il hk(b')) relatives respectivement à au moins une combinaison d'un nombre c de projections parmi les p' projections calculées pour ledit vecteur numérique et aux identifiants numériques identifiant les c fonctions de projection correspondantes, c étant inférieur à p' ; - vérifier (11) si certaines au moins des données numériques calculées appartiennent ou non à l'ensemble des données complémentaires stocké dans la base de données (10). 8. Système ou dispositif pour la mise en oeuvre d'une vérification biométrique relativement à un individu selon la revendication 7, le système ou dispositif comprenant : - une unité d'obtention d'un vecteur numérique (b') dérivé d'une donnée biométrique relative audit individu ; - une unité pour appliquer audit vecteur numérique un nombre p' desdites fonctions de projection (h,, h2,..., hp), de façon à obtenir p' projections de plus petite dimension que ledit vecteur numérique ; - une unité de calcul de données numériques (i II j II k ll h;(b') Il hi(b') ll hk(b')) relatives respectivement à au moins une combinaison d'un nombre c de projections parmi les p' projections calculées pour ledit vecteur numérique et aux identifiants numériques identifiant les c fonctions de projection correspondantes, c étant inférieur àp'; 2957168 - 24 - - une unité de vérification (11) pour vérifier si certaines au moins des données numériques calculées appartiennent ou non à l'ensemble des données complémentaires stocké dans la base de données.