Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OR EXTRACTING A SECRET FROM BIOMETRIC DATA
Document Type and Number:
WIPO Patent Application WO/2008/081136
Kind Code:
A2
Abstract:
The invention relates a regeneration process of a secret from at least one current biometric data of a user, the secret being represented by a polynomial (P) of n power, the method being characterized in that it comprises: - a correction step (15) during which, for a stable and ordonate (F1) representation of the current biometric data of the user segmented in k parts (f0',..., fk-1'), k code words of an error correction code are looked for (Co',..., Ck-1'), such as a current comparison between the i-th looked for code (Ci') and the i-th part (fi') of the current representation (F') is the closest to a reference comparison (ci - fi), the reference comparison (Ci - fi) being calculated following an enrollment step during which k points (P01..., Pk-1) of the polynomial (P), k>n randomly chosen are coded in k coded words (co,..., Ck-1) of an error correction code and a stable representation is segmented in k parts (fo,..., fk-1), and - an authentication step (16) during which a verification is made that the image H(ci') of the code word (ci') of the current representation (F') by a hashing function (H), is equal to the image H(ci) of the code word (ci) of the reference representation (F) by the hashing function (H) for n+1 values of i.

Inventors:
VIET TRIEM TONG VALERIE (FR)
SIBERT HERVE (FR)
GIRAULT MARC (FR)
Application Number:
PCT/FR2007/052482
Publication Date:
July 10, 2008
Filing Date:
December 11, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
VIET TRIEM TONG VALERIE (FR)
SIBERT HERVE (FR)
GIRAULT MARC (FR)
International Classes:
H04L9/32; H04L9/08
Foreign References:
US20020120592A12002-08-29
EP1043862A22000-10-11
Other References:
See references of EP 2104990A2
Attorney, Agent or Firm:
FRANCE TELECOM/R & D/PIV/BREVETS (38/40 rue du Général Leclerc, Issy Moulineaux Cedex 9, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé de représentation d'un secret à partir d'une donnée biométrique d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le procédé étant caractérisé en ce qu'il comprend :

- une étape (11) d'enrôlement au cours de laquelle k points (p 0 , ... , PM) du polynôme (P), k > n, choisis aléatoirement sont encodés en k mots de code (C 0 , ..., c k- i) d'un code de correction d'erreur, et une représentation (F) stable et ordonnée d'une donnée biométrique de référence de l'utilisateur est découpée en k parties (f 0 fk-i), et

- une étape (12) de calcul de k couples de valeurs ((Q - fi), H(c)), tels que le i-ème couple comprend une comparaison de référence (Q - fj) entre le i-ième mot de code (Q) et la i-ième partie (fi) de la représentation (F) de référence, et une image du i-ième mot de code (Q) par une fonction (H) de hachage.

2. Procédé de représentation selon la revendication 1 comprenant une étape (11 -c) de calcul de la représentation stable et ordonnée (F) de la donnée biométrique de référence de l'utilisateur.

3. Procédé de représentation selon la revendication 1 ou la revendication

2, dans lequel les k couples de valeurs ((Q -fj), H(Q)) sont publiés (13).

4. Procédé de régénération d'un secret à partir d'au moins une donnée biométrique courante d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le procédé étant caractérisé en ce qu'il comprend :

- une étape (15) de correction au cours de laquelle, pour une représentation stable et ordonnée (F') de la donnée biométrique courante de l'utilisateur découpée en k parties (V, ..., f k-i ') , il est cherché k mots de code (C 0 ' c k- i') d'un code de correction d'erreur, tel qu'une comparaison courante entre le i-ième mot de code cherché (Q') et la i-ième partie (fi 1 ) de la représentation (F 1 ) courante est la plus proche d'une comparaison de référence (Q - fi), la comparaison de référence (Q -fj) étant calculée consécutivement à

une étape d'enrôlement au cours de laquelle k points (p Ol ... , pk-i) du polynôme (P), k>n choisis aléatoirement sont encodés en k mots de code (C 0 , ... , c k- i) d'un code de correction d'erreur et une représentation stable et ordonnée (F) d'une donnée biométrique de référence de l'utilisateur est découpée en k parties (f 0 f k -i), et

- une étape (16) d'authentification au cours de laquelle il est vérifié que l'image H(cι') du mot de code (Cj') de la représentation courante (F') par une fonction (H) de hachage est égale à l'image H (Q) du mot de code (Q) de la représentation de référence (F) par la fonction (H) de hachage pour n+1 valeurs de i.

5. Procédé de régénération selon la revendication 4, comprenant une étape (14) de calcul de la représentation (F 1 ) stable et ordonnée de la donnée biométrique courante de l'utilisateur.

6. Procédé de régénération selon l'une des revendications 4 à 5, dans lequel pour une valeur de k égale à 16, le degré n du polynôme est égal à 8.

7. Utilisation du procédé de régénération d'un secret selon l'une des revendications 4 à 6 pour régénérer une clé privée d'un couple clé privée/clé publique.

8. Dispositif (21 ) de représentation d'un secret à partir d'une donnée biométrique d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le dispositif étant caractérisé en ce qu'il comprend :

- des moyens (210) d'enrôlement agencés pour encoder k points du polynôme choisis aléatoirement en k mots de code d'un code de correction d'erreur, et pour découper une représentation stable et ordonnée d'une donnée biométrique de référence de l'utilisateur en k parties (f 0 , ... , fκ-i), et - des moyens (21 1) de calcul agencés pour calculer k couples de valeurs

((Cj-fj), H(Cj)), tels que le i-ème couple comprend une comparaison de référence (Ci - fi) entre le i-ième mot de code (Q) et la i-ième partie (fi) de la représentation

(F) de référence, et une image du i-ième mot de code (c) par une fonction (H) de hachage.

9. Dispositif (22) de régénération d'un secret à partir d'au moins une donnée biométrique courante d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le dispositif étant caractérisé en ce qu'il comprend :

- des moyens (220) de correction agencés pour chercher, pour une représentation stable et ordonnée (F 1 ) de la donnée biométrique courante de l'utilisateur découpée en k parties (f 0 ', ..., fk-i'), k mots de code (Co 1 , ... , c k -i') d'un code de correction d'erreur, tel qu'une comparaison courante entre le i- ième mot de code cherché (Q 1 ) et la i-ième partie (fi 1 ) de la représentation (F 1 ) courante est la plus proche d'une comparaison de référence (Q — fi), la comparaison de référence (c, - ή) étant calculée consécutivement à une étape d'enrôlement au cours de laquelle k points (po PM) du polynôme (P), k>n choisis aléatoirement sont encodés en k mots de code (C 0 , ... , CM) d'un code de correction d'erreur et une représentation stable et ordonnée (F) d'une donnée biométrique de référence de l'utilisateur est découpée en k parties (f 0 , ... , f k -i),

- des moyens (221) d'authentification agencés pour vérifier que l'image H(Ci) du mot de code (ci 1 ) de la représentation courante (F') par une fonction (H) de hachage est égale à l'image H (Q) du mot de code (Q) de la représentation de référence (F) par la fonction (H) de hachage pour n+1 valeurs de i.

10. Dispositif (30) capteur d'une donnée biométrique d'un utilisateur, caractérisé en ce qu'il comprend des moyens (301) de calcul d'une représentation stable et ordonnée (F, F 1 ) d'une donnée biométrique d'un utilisateur, adaptée à être :

- découpée en k-parties ((f 0 , ... , fk-i), (fσ, — , fk-r)), k étant le nombre de points choisis aléatoirement dans un polynôme de degré n, k>n, ledit polynôme représentant un secret d'un utilisateur, les k points du polynôme étant encodés en k mot de code ((Co, ... , Ck-i), (Co' Q < -i') d'un code de correction d'erreur,

- et comparée auxdits mots de code.

11. Système (20) d'authentification comprenant :

- un dispositif de représentation d'un secret selon la revendication 8,

- un dispositif de régénération d'un secret selon la revendication 9.

12. Programme d'ordinateur sur un support de données et chargeable dans la mémoire interne d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé de représentation d'un secret à partir d'une donnée biométrique selon l'une quelconque des revendications 1 à 3 lorsque le programme est exécuté sur ledit ordinateur.

13. Moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de représentation selon l'une quelconque des revendications 1 à 3.

14. Programme d'ordinateur sur un support de données et chargeable dans la mémoire interne d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé de régénération d'un secret à partir d'au moins une donnée biométrique selon l'une quelconque des revendications 4 à 6 lorsque le programme est exécuté sur ledit ordinateur.

15. Moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de régénération d'un secret selon l'une quelconque des revendications 4 à 6.

Description:

Procédé d'extraction d'un secret à partir de données biométriques

L'invention se situe dans le domaine de la cryptographie. Elle concerne plus précisément une méthode pour régénérer un secret à l'aide de données biométriques d'un l'utilisateur, le secret ayant été choisi au préalable par l'utilisateur ou par un système auprès duquel l'utilisateur s'authentifiera dans l'avenir.

L'invention trouve une application particulièrement intéressante dans l'authentification et l'identification d'utilisateurs. Elle peut également être utilisée pour régénérer des données personnelles de l'utilisateur, par exemple pour régénérer une clé privée d'un couple clé privée/clé publique.

Un système d'authentification biométrique est un système de mesure basé sur la reconnaissance de caractéristiques propres à l'individu, comme par exemple son empreinte digitale, la forme de sa main, l'iris de son œil, sa voix, la forme de son visage. L'authentification biométrique peut se faire par comparaison d'une donnée biométrique courante avec une donnée biométrique de référence, ou par comparaison d'un secret généré à partir des caractéristiques de la donnée biométrique. La première famille d'authentification présente l'inconvénient de devoir stocker les données biométriques de référence : le stockage centralisé de telles données est très contrôlé dans certains pays comme la France, et le stockage sur un support utilisateur est vulnérable au vol ou à la perte de support. La protection des données biométriques est cruciale puisque les données biométriques ne sont pas révocables : on ne peut pas remplacer son empreinte par une autre. En outre, ce sont des données personnelles qui ne doivent pas circuler sans le consentement de leur propriétaire.

La seconde famille pallie le problème du stockage de données biométriques car l'authentification se fait par comparaison de secrets générés à partir des données biométriques, et non par comparaison des données biométriques elles-mêmes.

On connaît plusieurs méthodes d'authentification basées sur la génération d'une clé à partir des données biométriques.

Une première méthode appelée "Fuzzy Commitment" ("A Fuzzy commitment scheme", A.Juels, M.Wattenberg. In 6th ACM Conférence on Computer and Communication Security, 1999. http://citeseer.ist.psu.edu/iuels99fuzzv.htmn propose de générer à partir d'une donnée biométrique E de référence de l'utilisateur, un mot de code c d'un code de correction d'erreur, de publier la différence entre la donnée biométrique et le mot de code, ainsi que l'image h(c) de c par une fonction de hachage, ou fonction de hachage, h. Ainsi, l'authentification de l'utilisateur est réussie si son empreinte courante E' est suffisamment proche de E pour qu'un mot de code c 1 le plus proche de ((c-E)+E') soit égal à c. Ce qui est vérifié en testant si h(c)=h(c'). Avec cette méthode seule une information partielle (c-E) de la donnée biométrique est publiée. Cependant, cette méthode est peu adaptée à une représentation d'empreinte par un ensemble de points. Elle n'est en outre pas prévue pour tenir compte de variations biométriques trop importantes.

La demande de brevet publiée sous le n°US2002/0120592 divulgue une méthode d'authentification d'un utilisateur à partir de données qui peuvent légèrement varier, comme par exemple des données biométriques. La méthode consiste à générer un secret pour l'utilisateur, le secret étant représenté par un polynôme P, et à cacher la valeur de P de telle sorte que seul l'utilisateur légitime est capable de retrouver la valeur du secret représenté par P. Pour cela, des données biométriques de référence de l'utilisateur sont représentées par un ensemble secret A = { x,}, O≤i≤t. Un premier ensemble R1 = { (x h P(x,)) } pour i variant de 0 à t est calculé, un second ensemble R2 = { (a,, b,) } de faux points tels que a, ≠ x,, et b, ≠ P(x,) est généré et l'ensemble R, qui est la réunion des ensembles R1 et R2 est publié. L'ensemble R2 est destiné à brouiller l'information issue de l'ensemble R1. L'authentification d'un utilisateur est réussie si ses données biométriques courantes A' = { x, 1 }, O≤ i ≤t permettent d'extraire suffisamment de vrais points de l'ensemble R pour reconstruire le polynôme P par interpolation de Lagrange. L'extraction se fait de la façon suivante : si (a, b) est un point de l'ensemble R et s'il existe x appartenant à A'

tel que a et x soient à une distance inférieure à un seuil fixé au préalable, alors on extrait (a, b) de R. Ainsi, si le polynôme P est de degré k, il faut extraire k + 1 points de l'ensemble R pour que l'authentification de l'utilisateur soit réussie.

Cette méthode donne de bons résultats en pratique, cependant elle présente l'inconvénient de publier des données biométriques réelles parmi de fausses données. Or, cacher de vraies données parmi des fausses n'est pas un problème facile. D'autre part, si on est amené à modifier régulièrement l'ensemble de points publiés, l'ensemble de vrais points se définit alors facilement comme l'ensemble des points appartenant à tous les ensembles publiés.

La présente invention permet de pallier tout ou partie des inconvénients cités. A cette fin, l'invention concerne un procédé de représentation d'un secret à partir d'une donnée biométrique d'un utilisateur, le secret étant représenté par un polynôme P de degré n, le procédé étant caractérisé en ce qu'il comprend :

- une étape d'enrôlement au cours de laquelle k points (p 0 , ... , P M ) du polynôme P, k > n, choisis aléatoirement sont encodés en k mots de code

(co CM) d'un code de correction d'erreur, et une représentation (F) stable et ordonnée d'une donnée biométrique de référence de l'utilisateur est découpée en k parties (f 0 , ... , fk-i),

- une étape de calcul de k couples de valeurs ((q - fi), H(Q)), tels que le i-ème couple comprend une comparaison de référence (ci - fj) entre le i-ième mot de code (d) et la i-ième partie (fi) de la représentation (F) de référence, et une image du i-ième mot de code (Cj) par une fonction (H) de hachage. Le procédé de représentation selon l'invention ne fournit que des informations partielles sur le secret et sur la donnée biométrique de référence de l'utilisateur, plus précisément sur l'écart toléré entre la donnée biométrique de référence et une donnée biométrique courante afin de pouvoir assimiler la donnée biométrique courante à la donnée biométrique de référence. Le calcul de cet écart repose sur l'utilisation des codes de correction d'erreur. De façon avantageuse, si les données fournies par le procédé de représentation selon

l'invention sont publiées, celles-ci ne fournissent pas d'information permettant d'obtenir la donnée biométrique de référence de l'utilisateur. En outre, il n'est fourni aucune information sur le code de correction d'erreur puisque c'est l'image de ce code par une fonction de hachage qui est publiée. Une telle fonction ayant comme propriété que pour tout x dont on connaît l'image H(x) par la fonction de hachage, alors il est très difficile de calculer y tel que H(x) = H(y).

La représentation stable et ordonnée de la donnée biométrique de l'utilisateur est découpée en k parties. Avantageusement, cette découpe permet de rendre moins sensible le procédé aux variations biologiques inhérentes aux données biométriques. Par exemple, une prise d'empreinte est sensible à de nombreux facteurs : température ambiante, position du doigt sur le capteur, coupure au doigt.

Dans un mode particulier de réalisation de l'invention, le procédé de représentation comprend une étape de calcul de la représentation stable et ordonnée (F) de la donnée biométrique de référence de l'utilisateur.

Dans un mode particulier de réalisation de l'invention, les k couples de valeurs ((q - fi), H(q)) sont publiés. De façon avantageuse, la publication des couples de valeurs n'entraîne aucunement la publication de la donnée biométrique de l'utilisateur. Il est crucial qu'une telle donnée ne soit pas publiée. En effet, la donnée biométrique n'étant pas révocable, son vol représente un risque énorme pour tout accès sécurisé à des systèmes ou applications basés sur cette donnée biométrique. Ici, le risque de vol des données biométriques de l'utilisateur est nul. L'invention concerne aussi un procédé de régénération d'un secret à partir d'au moins une donnée biométrique courante d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le procédé étant caractérisé en ce qu'il comprend :

- une étape de correction au cours de laquelle, pour une représentation stable et ordonnée (F') de la donnée biométrique courante de l'utilisateur découpée en k parties (fo 1 , ... , fk-i'), il est cherché k mots de code (C 0 ', ... , CM') d'un code de correction d'erreur, tel qu'une comparaison courante entre le i-

ième mot de code cherché (c, 1 ) et la i-ième partie (f, 1 ) de la représentation (F 1 ) courante est la plus proche d'une comparaison de référence (c, — f,), la comparaison de référence (c, - f,) étant calculée consécutivement à une étape d'enrôlement au cours de laquelle k points (p 0 , ... , pκ-i) du polynôme (P), k>n choisis aléatoirement sont encodés en k mots de code (c 0 , ... , c k-1 ) d'un code de correction d'erreur et une représentation stable et ordonnée (F) d'une donnée biométrique de référence de l'utilisateur est découpée en k parties (f 0 , ... , f k -i), et

- une étape d'authentification au cours de laquelle il est vérifié que l'image H(C 1 ') du mot de code (c, 1 ) de la représentation courante (F') par une fonction (H) de hachage est égale à l'image H(c,) du mot de code (c,) de la représentation de référence (F) par la fonction (H) de hachage pour n+1 valeurs de i.

Le secret que l'utilisateur doit retrouver est le polynôme P, de degré n. Pour qu'un utilisateur soit capable de retrouver P, il faut et il suffit qu'il retrouve au moins n+1 points parmi k. Il sera alors capable de reconstruire le polynôme par interpolation de Lagrange.

Avec ce procédé, un secret, associé dans une étape préalable à un utilisateur, est encodé de telle façon qu'il ne peut être reconstruit qu'à l'aide des données biométriques de l'utilisateur légitime.

Pendant l'étape de correction, il s'agit de trouver un mot de code c,' tel que si la i-ième partie f, 1 de la représentation F' de la donnée biométrique courante de l'utilisateur est suffisamment proche de la i-ième partie f, de la représentation F de la donnée biométrique de référence de l'utilisateur, alors le mot de code c' est égale à ci. En effet, si l'empreinte courante est suffisamment proche de l'empreinte de référence, alors, on peut utiliser c-f, pour aller de la représentation F' courante vers la représentation F de référence. Ne disposant pas du mot de code c,, la vérification de l'égalité de mots de code c,, c,' se fait par comparaison des images de ces mots de code par la fonction de hachage qui a été appliquée à C 1 .

De façon avantageuse, le procédé selon l'invention permet

d'authentifier/identifier un utilisateur grâce à ses données biométriques en utilisant un secret qui est révocable et paramétrable. Ainsi, si le secret est compromis : volé ou dévoilé, alors il est possible avec le procédé de représentation d'un secret selon l'invention de changer le secret sans avoir compromis les données biométriques de l'utilisateur, et d'authentifier/identifier l'utilisateur en appliquant le procédé de régénération du secret selon l'invention. Le secret est en outre paramétrable puisqu'un secret différent peut être choisi pour chaque application, système ou réseau qui met en œuvre le procédé selon l'invention. Dans une mode de réalisation particulier de l'invention le procédé de régénération comprend une étape de calcul de la représentation (F') stable et ordonnée de la donnée biométrique courante de l'utilisateur.

Dans une réalisation avantageuse de l'invention, pour une valeur de k égale à 16, le degré n du polynôme est égal à 8. II a été remarqué qu'en divisant les représentations des données biométriques des utilisateurs utilisées dans les procédés de représentation d'un secret et de régénération d'un secret selon l'invention en 16 parties, un utilisateur illégitime ne retrouvait jamais 8 points du polynôme, alors qu'un utilisateur légitime retrouvait plus de 8 points du polynôme dans 60% des cas. Ainsi, en choisissant de représenter le secret par un polynôme de degré 8 et en choisissant de découper les représentations des données biométriques des utilisateurs en 16 parties, on pallie un problème de faux positifs : on n'identifie/n'authentifie pas un utilisateur par rapport à une représentation de référence d'une donnée biométrique d'un autre utilisateur. L'invention concerne aussi l'utilisation du procédé de régénération d'un secret selon l'invention pour régénérer une clé privée d'un couple clé privée/clé publique.

Le procédé de représentation d'un secret et le procédé de régénération du secret selon l'invention ont été appliqués à un système cryptographique à clés publiques de type "RSA" (du nom des inventeurs Rivest, Shamir et

Adleman). Avec un tel système, un couple clé privée/clé publique est associé à

un utilisateur. L'utilisateur garde sa clé secrète en sa possession, par exemple sur un support qui lui est personnel, par exemple une clé USB (de l'anglais "Universal Sériai Bus"). Il accède à son support pour chaque opération cryptographique nécessitant sa clé secrète, par exemple au cours d'une authentification ou lors d'une signature cryptographique. De façon avantageuse, en utilisant les procédés selon l'invention, un utilisateur nomade peut régénérer sa clé privée à la demande, ce qui évite d'avoir à la stocker.

L'invention concerne également un dispositif de représentation d'un secret à partir d'une donnée biométrique d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le dispositif étant caractérisé en ce qu'il comprend :

- des moyens d'enrôlement agencés pour encoder k points du polynôme choisis aléatoirement en k mots de code d'un code de correction d'erreur, et pour découper une représentation stable et ordonnée d'une donnée biométrique de référence de l'utilisateur en k parties (fo, ... , fk-i), et

- des moyens de calcul agencés pour calculer k couples de valeurs ((q- fi), H(Ci)), tels que le i-ème couple comprend une comparaison de référence (ci - fi) entre le i-ième mot de code (Q) et la i-ième partie (fi) de la représentation (F) de référence, et une image du i-ième mot de code (Cj) par une fonction (H) de hachage.

L'invention concerne également un dispositif de régénération d'un secret à partir d'au moins une donnée biométrique courante d'un utilisateur, le secret étant représenté par un polynôme (P) de degré n, le dispositif étant caractérisé en ce qu'il comprend : - des moyens de correction agencés pour chercher, pour une représentation stable et ordonnée (F') de la donnée biométrique courante de l'utilisateur découpée en k parties (f o \ ... , W), k mots de code (C 0 ', ... , Ck-1 1 ) d'un code de correction d'erreur, tel qu'une comparaison courante entre le i- ième mot de code cherché (Q 1 ) et la i-ième partie (fi 1 ) de la représentation (F') courante est la plus proche d'une comparaison de référence (Cj - fj), la comparaison de référence (c, - fi) étant calculée consécutivement à une étape d'enrôlement au cours de laquelle k points (po, ... , PM) du polynôme (P), k>n

choisis aléatoirement sont encodés en k mots de code (Co C M ) d'un code de correction d'erreur et une représentation stable et ordonnée (F) d'une donnée biométrique de référence de l'utilisateur est découpée en k parties (f 0 , ... , f k -i), et - des moyens d'authentification agencés pour vérifier que l'image H(Cr) du mot de code (ci 1 ) de la représentation courante (F') par une fonction (H) de hachage est égale à l'image H(q) du mot de code (ci) de la représentation de référence (F) par la fonction (H) de hachage pour n+1 valeurs de i.

L'invention concerne aussi un dispositif capteur d'une donnée biométrique d'un utilisateur, caractérisé en ce qu'il comprend des moyens de calcul d'une représentation stable et ordonnée (F, F 1 ) d'une donnée biométrique d'un utilisateur, adaptée à être :

- découpée en k-parties ((f 0 , ... , fk-i), (fo-, .... fk-r)), k étant le nombre de points choisis aléatoirement dans un polynôme de degré n, k>n, ledit polynôme représentant un secret d'un utilisateur, les k points du polynôme étant encodés en k mot de code ((C 0 , ... , c k- i), (C 0 ', ... , c k- i') d'un code de correction d'erreur, et

- comparée auxdits mots de code.

L'invention concerne aussi un système d'authentification comprenant :

- un dispositif de représentation d'un secret à partir d'une donnée biométrique d'un utilisateur selon l'invention, et

- un dispositif de régénération d'un secret à partir d'au moins une donnée biométrique courante d'un utilisateur selon l'invention.

L'invention concerne également un programme d'ordinateur sur un support de données et chargeable dans la mémoire interne d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé de représentation d'un secret à partir d'une donnée biométrique selon l'invention lorsque le programme est exécuté sur ledit ordinateur.

L'invention concerne aussi un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de représentation selon l'invention.

L'invention concerne également un programme d'ordinateur sur un support de données et chargeable dans la mémoire interne d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé de régénération d'un secret à partir d'au moins une donnée biométrique selon l'invention lorsque le programme est exécuté sur ledit ordinateur.

L'invention concerne aussi un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de régénération d'un secret selon l'invention.

De nombreux détails et avantages de l'invention seront mieux compris à la lecture de la description d'un mode particulier de réalisation en référence aux schémas annexés donnés à titre non limitatif et dans lesquels : - la figure 1 présente les étapes du procédé selon l'invention ;

- la figure 2 est une représentation fonctionnelle d'un système d'authentification selon l'invention comprenant un dispositif de représentation d'un secret d'un utilisateur à partir d'une donnée biométrique de référence et un dispositif de régénération d'un secret à partir d'au moins une donnée biométrique courante de l'utilisateur ;

- la figure 3 est une représentation fonctionnelle d'un dispositif capteur d'une donnée biométrique de l'utilisateur selon l'invention.

Parmi les caractéristiques biométriques utilisées, celle concernant les empreintes digitales est la plus étudiée.

Différentes techniques permettent de caractériser des empreintes digitales. La première utilise des points caractéristiques d'une empreinte digitale appelés minuties. Une minutie est un point qui se situe sur le changement de continuité de lignes papillaires. L'authentification d'une empreinte se fait alors en comparant la position des minuties par rapport à un gabarit de référence (le terme couramment utilisé est le terme anglais "template"). Une deuxième caractérisation d'une empreinte digitale se fait par analyse de texture. L'analyse

de texture est décrite en détail dans A.K.Jain, S.Prabhakar, L. Hong and S.Pankanti; "FingerCode : A Filterbank for Fingerprint Représentation and Matching", in Proc. IEEE Conf. Computer Vision and Pattern récognition, volume 2, pages 187-195, Fort Collin, CO, June 23-25 1999, et dans A.Jain, S.Prabhakar, L.Hong and S.Pankanti, "Filterbank-based Fingerprint Matching", 2000. L'analyse de texture permet de caractériser une empreinte digitale par analyse de l'image autour du centre morphologique de l'empreinte après application de filtres de Gabor. L'empreinte est ensuite caractérisée par un ensemble de 8 vecteurs de 80 composantes chacun, les composantes étant des nombres compris entre 0 et 7. Chacun des vecteurs correspond à la transformation de l'image après application d'un filtre de Gabor. La composante est alors la moyenne des écarts à la moyenne de gris de l'image dans un secteur de pavage. Ainsi, l'empreinte digitale est caractérisée par un vecteur de 640 composantes. Le vecteur ainsi obtenu est appelé "fingercode". L'authentification d'une empreinte digitale se fait alors par comparaison des représentations vectorielles des empreintes. Un utilisateur est authentifié si la distance entre la représentation vectorielle courante et la représentation vectorielle de référence est inférieure à un seuil fixé. La distance utilisée est la distance euclidienne. C'est la technique par analyse de texture qui est utilisée dans l'invention.

La figure 1 présente les étapes du procédé d'extraction d'un secret à partir de données biométriques. L'invention vise à associer un secret à un utilisateur de telle sorte que seul l'utilisateur légitime puisse retrouver le secret à partir de ses données biométriques.

Le procédé comprend deux grandes phases 1 , 2. Une première phase 1 correspond à la représentation d'un secret propre à un utilisateur à partir d'une donnée biométrique de l'utilisateur. Cette phase est à effectuer pour chaque secret que l'utilisateur détient, notamment dans le cas où différents secrets sont utilisés pour protéger l'accès à différents systèmes ou applications. La seconde phase 2 correspond à la régénération du secret à partir d'une donnée biométrique courante de l'utilisateur. Avec la seconde phase 2, il est vérifié que

le secret de l'utilisateur est retrouvé grâce à sa donnée biométrique courante. La seconde phase correspond à une phase d'authentification de l'utilisateur ; elle est effectuée à chaque contrôle d'accès de l'utilisateur à un système ou une application dont l'accès est protégé par le procédé selon l'invention. La phase 1 du procédé selon l'invention comprend les étapes 10, 11 et

12 et une étape optionnelle 13.

Dans une étape initiale 10, il est choisi un secret s sous la forme d'une suite de chiffres. Le secret s est représenté sous la forme d'un polynôme P de degré n. Une étape 11 d'enrôlement de l'utilisateur, consécutive au choix du polynôme P effectué à l'étape 10, comprend des sous-étapes 11-a, 11-b et 11- c. Dans la sous-étape 11-a, il est choisi aléatoirement k points p 0 , ... , pκ-i sur le polynôme P, avec k > n.

Dans la sous-étape 11-b, consécutive au choix des k points sur le polynôme P effectué à la sous-étape 11-a, les k points du polynôme P sont encodés en k mots de code C 0 , ... c k- i d'un code de correction d'erreur. Ainsi, C 0 = encode(po), ... , en = encode(p k- i), où encode représente le code de correction d'erreur utilisé. Dans un exemple de réalisation de l'invention, le code de Reed Solomon est utilisé. Dans la sous-étape 11-c, consécutive à l'encodage par le code de correction d'erreur des k points du polynôme P effectué à l'étape précédente, il est calculé la représentation vectorielle F, ou fingercode F, d'une donnée biométrique de référence de l'utilisateur. La donnée biométrique utilisée est par exemple l'empreinte digitale de l'utilisateur. Le calcul du fingercode correspond à une caractérisation de l'empreinte de référence de l'utilisateur par la technique d'analyse de texture. La représentation F ainsi obtenue de la donnée biométrique de référence est stable et ordonnée. La représentation F stable et ordonnée de la donnée biométrique de référence de l'utilisateur est découpée en k parties f 0 , ... , fk-i. La prise de l'empreinte de référence de l'utilisateur nécessaire pour réaliser la sous-étape 11-c est effectuée indépendamment de l'étape 10 et des

sous-étapes 11 -a et 11-b, mais préalablement à la sous-étape 11-c de calcul du fingercode.

Dans une étape 12 de calcul, consécutive à l'étape 11 , il est calculé k couples de valeurs tels que le i-ième couple, 0 ≤ i ≤ k-1 , correspond à ((f, - c,), H(C)), où H est une fonction de hachage. Ainsi, le i-ième couple comprend comme première valeur, une comparaison entre le i-ième mot de code c, et la i- ième partie f, de la représentation de référence F de la donnée biométrique, et comme deuxième valeur l'image par la fonction de hachage du i-ième mot de code C,. Un exemple de fonction de hachage est "SHA-1" (de l'anglais "Secure Hash Algorithm-1").

Dans une étape optionnelle 13, représentée en pointillés, il est procédé à la publication des couples de valeurs obtenus à l'étape 12. Par exemple, les couples de valeurs sont mis à disposition sur un serveur accessible d'un réseau public comme l'Internet ou d'un réseau de type Intranet. La seconde phase 2 correspond à la phase d'authentification de l'utilisateur et comprend les étapes 14, 15 et 16.

Dans une étape 14, il est procédé à la capture d'une donnée biométrique courante de l'utilisateur. Il est procédé au calcul de la représentation vectorielle F', ou fingercode F', de la donnée biométrique courante de l'utilisateur. La représentation F' ainsi obtenue de la donnée biométrique courante de l'utilisateur est stable et ordonnée. La représentation F' stable et ordonnée de la donnée biométrique courante de l'utilisateur est découpée en k parties fo', ... , fk-

Dans une étape 15, consécutive au calcul et au découpage de la représentation stable et ordonnée de la donnée biométrique courante de l'utilisateur effectué à l'étape 14, il est cherché k mots de code c,', 0 ≤ i ≤ k-1 , d'un code de correction d'erreur tel que le i-ième mot de code c,' soit le plus proche de (c, - f,) + f,'. L'étape 15 correspond à une étape de correction : si f,', issu de la donnée biométrique courante de l'utilisateur est suffisamment proche de f h issu de la donnée biométrique de référence de l'utilisateur, alors le mot de code c/ est égale au mot de code c ( .

Dans une étape 16, consécutive à l'étape 15 de correction, s'il est vérifié que H(Cj') = H(Cj) pour au moins n+1 valeurs de i, alors on dispose d'au moins n+1 points pi du polynôme. Il est ainsi possible de reconstruire ledit polynôme par interpolation de Lagrange. En effet, une fonction de hachage possède de manière connue plusieurs propriétés. Une fonction de hachage est difficilement inversible. Ainsi, connaissant l'image de x par H, H(x), il est difficile de retrouver x. En outre, une fonction de hachage résiste aux collusions : connaissant l'image de x par H, H(x), il est très difficile de trouver par calcul au moins une valeur y telle que H(y) = H(x), car H(x) prend ses valeurs dans un ensemble très grand. Et pour trouver une valeur y on ne peut qu'essayer toutes les valeurs possibles. Ainsi, si l'on vérifie que H(q') = H(Cj), alors des c \ tels que Ci 1 = Cj ont su être trouvés grâce aux calculs sur les empreintes.

Dans une variante de réalisation de l'invention, on peut souhaiter obtenir plusieurs secrets différents si, s , .., s m à partir des mêmes couples de valeurs ((ή - ci), H(Q)), le jeu de secrets si, S 2 , ... , s m servant à régénérer un secret maître s suivant les étapes du procédé selon l'invention. A cette fin, l'utilisateur choisit m phrases secrètes (le terme couramment utilisé est le terme anglais "passphrase") m-i, m 2 , ... m m et, après avoir régénéré le secret maître s, il est dérivé à partir du secret maître s les m secrets dérivés s-i, S 2 , ... , s m . Par exemple S j = hash(s, ιτi j ), 1 ≤ j ≤ m. Ainsi, il est possible, à partir d'un secret maître, d'obtenir autant de secrets que nécessaires pour des accès à des applications ou systèmes sécurisés, en choisissant pour chacun des accès une phrase secrète. De cette façon, il suffit, lorsque l'on définit un nouvel accès, de choisir une nouvelle phrase secrète ; il n'est ainsi pas nécessaire d'effectuer l'étape 11 d'enrôlement du procédé selon l'invention.

La sécurité du procédé selon l'invention repose sur le choix de certains paramètres. Ainsi, plus la longueur des paramètres fj sera grande, plus il sera difficile de trouver de manière exhaustive des fi' qui, à partir des valeurs publiées (ci - fi, H(Cj)) permettront de retrouver les q tels que H(decode(Ci - fj + fj')) = H(Ci). De même, plus le pouvoir correcteur du code correcteur sera faible, et plus la recherche exhaustive sera difficile. Ainsi, l'homme de l'art peut aisément augmenter ou diminuer la sécurité du procédé en faisant varier les

longueurs des paramètres fi et des mots de code Cj, ainsi que le pouvoir correcteur du code correcteur.

La figure 2 est une représentation fonctionnelle d'un système 20 d'authentification selon l'invention. Le système 20 comprend un dispositif 21 de représentation d'un secret à partir d'une donnée biométrique de référence, et un dispositif 22 de régénération du secret à partir d'au moins une donnée biométrique courante de l'utilisateur. Le secret de l'utilisateur est représenté par un polynôme P de degré n. Les dispositifs 20 et 21 sont reliés entre eux via un réseau 23, par exemple le réseau Internet ou un réseau Intranet.

Le dispositif 21 de représentation du secret comprend des moyens 210 d'enrôlement agencés pour encoder k points du polynôme choisis aléatoirement, k > n, en k mots de code d'un code de correction d'erreur, et pour découper une représentation stable et ordonnée d'une donnée biométrique de référence de l'utilisateur en k parties (fo, ... , f k- i). Dans un exemple de réalisation, le code de correction d'erreur est le code de Reed Solomon.

La représentation stable et ordonnée de la donnée biométrique de référence de l'utilisateur est obtenue par exemple par un capteur biométrique, connecté au dispositif 21. Le capteur biométrique n'est pas représenté figure 2. Une représentation fonctionnelle du capteur biométrique est fournie avec la figure 3.

Le dispositif 21 de représentation du secret comprend également des moyens 211 de calcul agencés pour calculer k couples de valeurs, ((Cj-fj), H(Cj)), tels que le i-ième couple comprend une comparaison de référence (Cj-fj) entre le i-ième mot de code Ci et la i-ième partie fi de la représentation de référence F de la donnée biométrique, et une image du i-ième mot de code Q par une fonction de hachage.

Le dispositif 22 de régénération du secret à partir d'une donnée biométrique courante de l'utilisateur comprend des moyens 220 de correction agencés pour chercher, pour une représentation stable et ordonnée F' d'au moins une donnée biométrique courante de l'utilisateur découpée en k parties

fo', ... , fk-1 1 , k mots de code Co' CM' d'un code de correction d'erreur, tel qu'une comparaison courante entre le i-ième mot de code cherché Q 1 et la i- ième et la i-ième partie fi' de la représentation F' courante est la plus proche d'une comparaison de référence Cj-fj . . La comparaison de référence Cj-fj est calculée consécutivement à une étape d'enrôlement au cours de laquelle k points po PM du polynôme P qui représente le secret de l'utilisateur, choisis aléatoirement, k>n, sont encodés en k mots de code Co, ... , CM d'un code de correction d'erreur. Au cours de l'étape d'enrôlement, il est également calculé une représentation stable et ordonnée F d'une donnée biométrique de référence de l'utilisateur qui est découpée en k parties fo, ... f k -i. La comparaison de référence Cj-fj est rendue accessible aux moyens 220 de correction.

Le dispositif 22 de régénération du secret comprend également des moyens 221 d'authentification agencés pour vérifier que l'image H(Cj) du mot de code ci' de la représentation courante F' par une fonction de hachage H est égale à l'image H(ci) du mot de code ci de la représentation de référence F par la fonction de hachage H. Un exemple de fonction de hachage H est la fonction SHA-1.

La figure 3 est une représentation fonctionnelle d'un capteur 30 biométrique selon l'invention.

Le capteur biométrique 30 comprend des moyens 301 de calcul d'une représentation stable et ordonnée d'une donnée biométrique d'un utilisateur. La représentation stable et ordonnée est obtenue par exemple par analyse de texture de la donnée biométrique. La représentation stable et ordonnée de la donnée biométrique de l'utilisateur est adaptée à être découpée en k parties, k correspondant à un nombre de points choisis aléatoirement dans un polynôme de degré n, k>n, le polynôme représentant un secret propre à l'utilisateur et les k points du polynôme étant encodés en k mots de code d'un code de correction d'erreur. Dans une réalisation de l'invention, le code de correction d'erreur choisi est le code de Reed Solomon. La représentation stable et ordonnée de la

donnée biométrique de l'utilisateur est en outre adaptée à être comparée aux mots de code du code de correction d'erreur.

Le capteur biométrique 30 comprend en outre des moyens 302 de connexion agencés pour connecter le capteur biométrique 30 à un dispositif de représentation d'un secret à partir d'une donnée biométrique selon l'invention ou à un dispositif de régénération d'un secret selon l'invention. Les moyens 302 sont par exemple une liaison de type "USB" (de l'anglais "Universal Sériai Bus").

Le procédé selon l'invention a été appliqué à un système cryptographique à clés publiques de type "RSA" (du nom des inventeurs Rivest, Shamir et Adleman) afin que des utilisateurs nomades puissent régénérer la clé privée de leur couple clé privée/clé publique RSA attribué au préalable, à la demande, afin de ne pas avoir à stocker la clé privée sur un support. Dans cet exemple d'application du procédé selon l'invention, on choisit k=16, et comme degré du polynôme représentant le secret de l'utilisateur n=8. Avec de telles valeurs il a été constaté qu'en divisant la représentation stable et ordonnée d'une donnée biométrique de l'utilisateur, ou fingercode, en 16 parties, un utilisateur illégitime ne retrouvait jamais 8 points du polynôme, alors que l'utilisateur légitime retrouvait plus de 8 points du polynôme dans 60% des cas.

Dans la première étape 10 du procédé selon l'invention, il est choisi un secret s pour un utilisateur U, par exemple s = 123456789. La contrainte sur le secret est que le secret doit être représentable sous la forme d'un polynôme de degré n = 8. Il est choisi de représenter le secret s par le polynôme P : P = X 8 + 2X 7 + 3X 6 + 4X 5 + 5X 4 + 6X 3 + 7X 2 + 8X + 9 Dans la sous-étape 11-a du procédé, il est choisi k = 16 points p 0 , ... , P15 sur ce polynôme, par exemple, po = (0, 9), pi = (1 , 45), etc.

Dans la sous-étape 11-b du procédé, les points p 0 pis sont encodés en mots de code d'un code de correction d'erreur. Le code de correction d'erreur choisi dans cet exemple d'application le code de Reed Solomon. Le code obtenu à partir du point pi est noté q, 0 ≤ i ≤ 15.

Dans la sous-étape 11-c du procédé, l'utilisateur U applique plusieurs fois son doigt sur un capteur biométrique en vue de calculer une représentation stable et ordonnée F, ou fingercode, de la donnée biométrique représentative.

Le fingercode F obtenu est ensuite découpé en k = 16 parties fo fis. Dans l'étape 12 du procédé, il est calculé les k = 16 couples de valeurs :

((C 0 - fθ, H(C 0 ) ((C15 - fis), H(C 15 ))

Dans l'étape optionnelle 13 du procédé, les 16 couples de valeurs ainsi calculés sont rendus publics, en étant par exemple mis à disposition sur un serveur accessible d'un réseau public comme l'intemet. Les couples de valeurs peuvent également être stockés sur un support utilisateur de type carte à puce.

Au préalable à la seconde phase du procédé selon l'invention, il est procédé à une première génération du couple clé publique/clé privée RSA pour l'utilisateur, conformément à l'algorithme de génération de couples de clés RSA.

A cette fin, le secret s de l'utilisateur U est utilisé comme graine d'un générateur aléatoire de nombres premiers pour choisir des entiers premiers p et q. Il est ensuite calculé n = p x q, et φ(n) = (p - 1) x (q - 1), et il est choisi un exposant public, e, puis calculé un couple de clés publique/privée (n, e), (d, n). La clé publique (n, e) est mise à disposition de tous, par exemple sur un serveur de clés, le reste est effacé.

L'utilisateur souhaitant utiliser sa clé privée, par exemple pour accéder à une application protégée, il est procédé, conformément à la seconde phase du procédé selon l'invention à la régénération de la clé privée de l'utilisateur. Dans l'étape 14 du procédé, il est procédé à l'aide d'un capteur biométrique à une ou plusieurs captures d'empreinte digitale de l'utilisateur, puis calculé une représentation stable et ordonnée F', ou fingercode, de la donnée biométrique. La représentation F' ainsi obtenue est découpée en 16 parties f 0 ', ... , fis'. Il est ensuite calculé, à partir des couples de valeurs récupérés sur le serveur accessible d'un réseau ou sur le support utilisateur de type carte à puce et calculés à l'étape 12 :

C 0 ' = (C 0 - fθ) + fθ' : = : + :

C15' = (C15 - fis) + fi5

Comme les codes de correction d'erreur Cj ont été obtenus par encodage de Reed Solomon, un algorithme de correction des erreurs peut être appliqué sur les valeurs c \ calculées. Si la représentation stable et ordonnée de la donnée biométrique courante de l'utilisateur F' est assez proche de la représentation F de la donnée biométrique de référence, alors il est retrouvé au moins n = 9 mots de code ci parmi les k = 16. Pour savoir si la correction des erreurs d'un code q 1 a réussi, il suffit de vérifier que H(cι') = H(C 1 ). Si on obtient au moins 9 succès dans le décodage, alors on retrouve 9 points pi qui permettent de reconstruire le polynôme P par interpolation de Lagrange.

Une fois le polynôme P calculé, il est appliqué l'inverse de l'algorithme qui a permis de coder le secret s en le polynôme P, et il est ainsi retrouvé le secret s.

Ainsi, pour que l'utilisateur puisse retrouver sa clé privée à la demande, il suffit qu'il réutilise le secret s comme graine de son générateur aléatoire pour recalculer p et q et retrouver φ(n) = (p - 1) x (q - 1). La clé privée (d, n) se calcule à partir de la clé publique (e, n) disponible sur le serveur ou sur la carte à puce de l'utilisateur en cherchant l'inverse e modulo φ(n). L'utilisateur dispose alors de sa clé privée.