FR 3000332 A1 20140627 FR 1203565 A 20121221 PROCEDE DE RECONSTRUCTION D'UNE MESURE DE REFERENCE D'UNE DONNEE CONFIDENTIELLE A PARTIR D'UNE MESURE BRUITEE DE CETTE DONNEE La présente invention concerne un procédé sécurisé et un dispositif associé permettant de reconstruire une mesure de référence d'une donnée confidentielle ayant une taille variable à partir d'une mesure bruitée de cette donnée. Elle s'applique notamment à la génération de clés cryptographiques. Les applications faisant appel à la cryptographie nécessitent généralement le stockage d'une clé dans un appareil électronique. Cependant, bien qu'il soit recommandé d'employer des clés cryptographiques de taille de plus en plus grande pour garantir la sécurité des systèmes d'information, certains appareils ne disposent que d'un faible espace mémoire pour l'enregistrement d'une clé. A titre illustratif, il est courant d'utiliser une clé cryptographique d'au moins 2048 bits pour l'algorithme RSA à clé publique (acronyme construit à partir du nom des trois inventeurs de l'algorithme Rivest, Shamir et Adleman). Par ailleurs, lorsque la clé à utiliser est secrète, son stockage peut constituer une faille de sécurité face à un attaquant. Le besoin dans ce domaine consiste à gérer les contraintes imposées par les codes correcteurs d'erreurs tout en générant une clé cryptographique ne dépendant que de la donnée bruitée non stockée dans les appareils. L'art antérieur décrit plusieurs méthodes permettant d'éviter le stockage d'une clé secrète. Ces méthodes montrent en général les deux problèmes suivants : un caractère non uniforme dans les données mesurées et la présence de bruit au niveau de ces données. Ces deux problèmes ont été traités notamment par Dodis et al. dans l'article intitulé :"Fuzzy extractors : How to generate strong keys fronn biometrics and other noisy data" publié dans les comptes-rendus de la conférence Eurocrypt 2004, LCNS, vol. 3027, pp 523-540. Pour rendre les données stables malgré la présence de bruit, les auteurs de cet article proposent l'utilisation d'un extracteur flou composé de deux primitives. Un premier module, désigné par l'expression anglo-saxonne « secure sketch » permet la conciliation de l'information, c'est-à-dire le rétablissement d'une valeur systématiquement identique en sortie pour une donnée d'entrée bruitée et un second module permet de rendre uniforme la sortie du secure sketch par application d'une fonction d'extraction d'aléa sur ladite sortie préalablement stabilisée, l'ensemble formant un extracteur flou. Le module « secure sketch » va fonctionner en deux phases : l'enrôlement et la correction. La phase d'enrôlement peut n'être exécutée qu'une seule fois ; elle produit, à partir d'une donnée de référence notée w issue d'une mesure d'une donnée confidentielle W fournie en entrée, une donnée publique, notée s, parfois qualifiée de « sketch ». Classiquement, la donnée de référence w peut être obtenue par une première mesure issue d'un traitement d'une donnée confidentielle W reçue par un capteur. Seule la donnée publique s est enregistrée, la donnée de référence w étant confidentielle. Par la suite, la phase de correction est exécutée à chaque fois que l'on souhaite retrouver la donnée issue d'un traitement de la donnée confidentielle W. A cette fin, une donnée bruitée w' provenant d'une mesure issue d'un traitement de la donnée confidentielle W - par exemple une seconde mesure d'une même empreinte digitale - est combinée à la donnée publique s. La donnée publique s joue un rôle de reconstruction de la donnée confidentielle de référence w à partir d'une donnée bruitée w'. Si la donnée bruitée est trop éloignée de la donnée de référence w, cette dernière ne peut être reconstruite. C'est le cas, par exemple, lorsque la donnée bruitée w' est obtenue par une mesure de traitement d'une donnée X différente de la donnée confidentielle. La reconstruction de la donnée de référence w implique l'utilisation d'un code correcteur d'erreur. L'utilisation de secure sketches implique l'utilisation de codes correcteurs qui entraînent certaines contraintes. Par exemple, pour le secure sketch appelé code offset, dans la phase d'enrôlement un code correcteur est sélectionné puis on choisit aléatoirement un mot c de ce code. Ce mot de code est ensuite combiné avec la donnée de référence w pour obtenir la donnée publique de sketch s. Dans la phase de correction, cette donnée s est combinée à la mesure w' pour obtenir un mot c', qui n'appartient pas forcément au code, que l'on peut corriger à condition de w' soit assez proche de w. Il ne reste plus qu'à combiner c avec s pour retrouver la donnée de référence w. Cependant, certaines contraintes sont imposées par les codes correcteurs. Un code correcteur est caractérisé par trois paramètres : sa longueur « n », sa dimension « k » et sa distance minimale « d ». La capacité de correction « t » du code, nombre d'erreurs que le code peut corriger, est proportionnelle à la distance minimale. Le niveau de bruit subi par la donnée w' impose donc une première contrainte sur le code, à savoir une borne inférieure pour d. Une deuxième contrainte est de choisir une dimension « k » pour le code assez grande car la sécurité du code est une fonction exponentielle en k. De plus, la longueur n du code est majorée par la longueur de la donnée de référence w et la borne de Singleton nous donne que n-lcd-1 dont on déduit l'inégalité l(longueur(w)-d+1. Le paramètre k possède donc deux contraintes antagonistes, ce qui fait qu'il est parfois difficile voire impossible de trouver un code correcteur approprié aux données, c'est-à-dire qui permette à la fois de débruiter correctement la donnée w' tout en gardant un bon niveau de sécurité. L'un des objectifs du secure sketch généralisé tel que décrit dans la demande de brevet EP 2 282 441 du Demandeur est de palier à ces contraintes en sélectionnant un code correcteur de longueur n+k supérieure à la taille n de la donnée w. Ensuite, grâce à une « clé » Sk, la donnée w est étendu en we de taille n+k : la fonction qui réalise cette « élongation » ou extension de taille est appelée Extend. A partir de là, le procédé décrit met en oeuvre un secure sketch classique connu de l'Homme du métier et le tout forme le secure sketch généralisé. Il y a donc en sortie du système, après correction de la donnée w', la donnée we qui correspond à la donnée w étendue avec Sk: we=Extend(w,Sk) où Extend est une fonction qui sera définie plus loin et qui peut être vue comme une fonction de Sk et de la variable w : elle sera notée Extend(w,Sk). La donnée we est de taille n+k>n donc tant que Sk est secret la sécurité sur we est augmentée par rapport à w. Lorsque l'on a besoin que ce soit une fonction de w paramétrée par Sk, elle sera notée Extendsk(w). Lorsque l'on souhaite retrouver la donnée d'origine à partir de la donnée étendue, nous noterons w=Extendsk-1(we). Cette manière de procéder permet de résoudre notamment les problèmes liés aux contraintes sur les codes correcteurs d'erreurs. Un autre problème subsiste, à savoir le fait que les secure sketches généralisés tels que définis n'ont pas exactement les mêmes propriétés que les secure sketches standards notamment parce que la taille de la donnée en sortie est plus grande avec un secure sketch généralisé qu'avec un secure sketch standard et elle dépend de Sk. Le procédé décrit dans la demande FR 2 969 874 du Demandeur permet de corriger les problèmes liés aux contraintes sur les codes correcteurs d'erreur en proposant un secure sketch généralisé recentré. Le principe mis en oeuvre est de créer un secure sketch généralisé recentré qui consiste en un secure sketch généralisé suivi de la fonction Extendsk-1. La fonction Extendsk-lpermet notamment à la donnée en sortie du système de retrouver sa taille d'origine et de perdre sa dépendance en la clé Sk. Ce procédé ne prend toutefois pas en compte le cas où les données sont de taille variable. Dans la suite de la description, l'expression « Secure Sketch 30 Flexible » définit un Secure Sketch qui va prendre en compte des données de tailles variables et dont la clef associée est publique ou secrète. L'un des objectifs de la présente invention est de pouvoir utiliser des données d'entrées de taille variable, ce qui permet d'avoir la possibilité d'utiliser des modalités différentes de type biométriques ou PUF avec un même schéma, et donc de faire apparaître un caractère variable à la taille de la donnée floue. Un autre objectif de l'invention est la possibilité d'avoir, en fonction du contexte d'utilisation, une donnée publique ou secrète pour la clef notée Sik associée à la modalité de taille variable W. En effet, pour certains types de PUFs, il est possible d'obtenir une taille quelconque et donc de dimensionner cette taille en fonction de l'entropie désirée pour la qualité de la clef à générer, dans ce cas il n'est pas nécessaire d'utiliser la clef Sik pour rajouter de l'entropie et par conséquent il est possible d'utiliser une clé secrète ou non secrète. Il est à noter que la taille de la donnée d'entrée étant variable, il en va de même pour la taille de la clef. L'invention concerne un procédé d'enrôlement d'une donnée de référence w, de taille variable dans un dispositif destiné à retrouver une mesure de référence d'une donnée confidentielle à partir d'une mesure bruitée de ladite donnée, caractérisé en ce qu'il comporte au moins les étapes suivantes : al) définir la taille de la donnée de référence a2) sélectionner une clé Sik, ayant une taille adaptée à la taille de la donnée de référence wh a3) effectuer une mesure de référence de ladite donnée w; confidentielle, a4) appliquer une fonction Extend adaptée à augmenter la taille de la donnée mesurée en utilisant la clé Sik et la fonction Extend afin de générer une donnée étendue w,e, a5) appliquer une fonction secure sketch dans sa phase d'enrôlement afin de trouver une donnée de reconstruction si. Le procédé peut comporter une étape supplémentaire de reconstruction de la donnée de référence étendue wie comportant au moins les étapes suivantes : b1) mesurer une donnée bruitée w', et appliquer une fonction Extend à ladite donnée bruitée w', afin de générer une donnée bruitée étendue w',e, en utilisant une clé Sike b2) utiliser la donnée s, trouvée à l'étape a5) et appliquer une fonction 5 secure sketch dans sa phase de correction en prenant en entrée la donnée bruitée étendue w',e, la clef Sik et la donnée de reconstruction s, afin de générer une valeur débruitée wie, b3) si distance (w'ie, wie) est inférieure à un seuil donné, alors la donnée wie est reconstruite, 10 b4) sinon la donnée n'est pas reconstruite. La fonction Extend est, par exemple, définie dans un espace de Hamming et le procédé peut comporter au moins les étapes suivantes : le secure sketch flexible dans un espace de Hamming SSfH de paramètres ((d, n),m,,t,S,') est défini ci-après : 15 travailler dans un espace de Hamming avec M = F* où F est un alphabet, soit (SS*, Rec*) un secure sketch classique de paramètres (Fn ,m,,t) avec n la longueur du code correcteur, l'étape d'exécution du secure sketch prend en entrée We E F* et Sike 20 leur applique ExtendH pour obtenir wie puis applique SS* à w,e, en sortie on a Si E F * , l'étape b1) prend en entrée WI E Sik et Si E F * , elle applique ExtendH à w', et Sik pour en déduire w' E F', l'étape b2) applique ensuite Rec* à \die et si, 25 où la fonction ExtendH prend en entrée wi e F* et Sik de la forme Sik , en sortie on a w,, e F', qui a les propriétés suivantes : V(i,j)e [[1;1(Sik)]]2 posé La fonction ExtendE est, par exemple, définie par la distance symétrique avec M=P(U) l'ensemble des parties d'un ensemble U, wi,w'iE CIA(Wi,Wi')=I{X E Wi W'i, X « Wi n w'i}I et la fonction ExtendA consiste à ajouter dans l'ensemble vvi des éléments déterminés z de la manière suivante : soit M l'espace métrique (ensemble des parties d'un ensemble U) muni de la différence symétrique dA et S,k=z un ensemble de k éléments de U, on définit ExtendA de la façon suivante : ExtendA (wi,S,k) = Extend {sik,A}(wi) = wi u z, et on fabrique un secure sketech flexible SSf avec cette fonction ExtendA : 15 choisir un ensemble z et poser wie=wu z, appliquer un secure sketch de différence symétrique avec wie. La fonction ExtendE mise en oeuvre est, par exemple, définie en fonction de la distance d'édition qui correspond entre deux chaînes de caractères au nombre minimum de suppressions et d'insertions 20 nécessaires pour passer d'une chaîne à l'autre, la fonction ExtendE étant définie de la manière suivante : soit M un espace métrique muni de la distance d'édition dE sur l'alphabet F, soit Sik = i(sik)), i(sik))] et soit n la longueur de la chaîne de caractères de M la plus courte. 25 - V i {1 ,... ,I(Sik) }, val; E F, - V i,j, l Le procédé comporte, par exemple, une étape supplémentaire dans laquelle on utilise la fonction inverse de la fonction Extendsik, en prenant en entrée la donnée étendue \me et en paramètre la clé Sik afin de retrouver la donnée mi,. La fonction inverse est, par exemple, la fonction (Extend -1{sik,H}) définie de la manière suivante : la fonction Extend -1{sk,H} prend en entrée Wre E P" et un paramètre Sk de la forme S,k = Kposi,---,posxs,k) ),(va/i,---, va/i(sik) y en sortie on a w, e F* qui a les propriétés suivantes : - pour i=1 à l(S,k), supprimer les bits en position posi, - concaténer les bits restants dans leur ordre d'apparition. Selon une variante de réalisation, la fonction Extend-i{sk,E} prend en entrée ww e Fn+k et Sik un paramètre de la forme Sik =[(posi,---, posl(sik)),(vair,---, va/1(sec) y et en sortie génère wi e , qui a les propriétés suivantes : - pour i=1 à l(S,k), supprimer les bits en position posh - concaténer les bits restants dans leur ordre d'apparition. Le procédé peut utiliser pour chaque modalité une clé Sik secrète et/ou une clé Sik publique. L'invention concerne aussi un système électronique d'authentification comportant un capteur biométrique ou un dispositif d'extraction de données bruitées w, ayant une taille variable à partir de caractéristiques physiques, caractérisé en ce qu'il comporte un support d'enregistrement mémorisant une clé Sik, une unité de calcul mettant en oeuvre les étapes du procédé présentant l'une des caractéristiques précédentes, ladite unité de calcul étant adaptée à recevoir la clé Sik et une mesure d'une donnée bruitée ou non bruitée du capteur. D'autres caractéristiques et avantages de la présente invention apparaitront mieux à la lecture de la description qui suit annexée des figures qui représentent : - La figure 1A, un schéma représentant les étapes d'une procédure d'enrôlement selon l'invention utilisant un secure sketch flexible et la figure 1B une phase de correction, - La figure 2A, un schéma représentant les étapes d'une procédure d'enrôlement et la figure 2B, une phase de correction mettant en oeuvre les secures sketches flexibles selon l'invention, - La figure 3, un exemple de dispositif permettant la mise en oeuvre du procédé selon l'invention. Le procédé selon l'invention se déroule en deux phases : - Une phase d'enrôlement, qui peut n'être exécutée qu'une seule fois, par exemple lors de l'initialisation de l'équipement. - Une phase de vérification de la phase utilisée lors du fonctionnement normal du système. Le procédé utilise un code correcteur d'erreurs (n,k,d) un code correcteur d'erreurs, n, k, d étant les paramètres du code. L'un des objectifs du procédé selon l'invention est de disposer pour l'identification, l'authentification et/ou la génération de clefs de qualité cryptographiques, à partir de données floues, des possibilités suivantes : 20 - L'utilisation de différentes modalités de types biométriques ou PUF de longueurs potentiellement différentes Nous noterons \Ar; ces modalités et 1(w1) pour i variant de 1 à p, les tailles associées (longueur ou cardinal). - Considérer ou non la clef Sil Ainsi pour toute donnée wh différentes options pour définir sa taille (longueur ou cardinal), sont possibles, par exemple : - Mesure de la longueur de w, par le module lors de son injection dans le système, - Déclaration de la longueur de w, lors de l'injection de la modalité wi dans le système. Le procédé et le système ont donc connaissance pour toute donnée indicée i de sa longueur 1(%). La contrainte de longueur pour la clef S1 associée à la donnée w, est, pour tout i variant de 1 à p, définie de la façon suivante : 1(w1)+I(S1)= ai.n où a, est un entier strictement positif. Plusieurs options sont possibles pour le choix de l'entier ai, par exemple, on choisit 1(s1) de telle sorte que ai soit le plus petit entier possible, ce qui permet d'optimiser les temps de calcul. La valeur de la clé Sik est définie, par exemple, en utilisant un opérateur externe au système ou encore en utilisant un générateur pseudo-aléatoire ou PRNG (Pseudo-Random Number Generator). Le procédé selon l'invention s'applique pour des clés secrètes Sik et/ou des clés publiques, selon les modalités. La figure lA représente un exemple d'enchaînement des étapes d'une phase d'enrôlement mettant en oeuvre le procédé selon l'invention dans le cas de l'utilisation d'un secure sketch flexible. Un secure sketch flexible est défini comme une paire de procédures « enrôlement et correction » qui font appel à une fonction que l'on appelle Extend ainsi qu'à un secure sketch classique. La taille ou la longueur de la donnée wi est déclarée par un élément extérieur au système ou déterminée par le système interne (étape al)). Le procédé va ensuite, étape a2) sélectionner une clé Sik dont la taille est choisie en fonction de la taille de la donnée \mi, selon un processus classique. Au cours d'une troisième étape a3), le procédé va augmenter la taille de la donnée. Lors de l'enrôlement, la donnée wi en entrée du système est étendue grâce à la fonction Extend adaptée à augmenter la taille de la donnée mesurée en utilisant la clé Sik, afin de générer une donnée étendue wie, puis traitée avec un secure sketch dans sa phase d'enrôlement pour en déduire un sketch s. Une clé Sik est créée (sa taille ou longueur dépend de la taille ou longueur de la modalité) et peut par exemple être représentée sous forme de deux listes V1 et Pi. La première liste V={vi, v2, ...v{i(sik)} définit l(Sik) valeurs à insérer dans la donnée de référence vvi pour augmenter sa taille et la seconde liste PF{pi, P2, ...P{I(Sik)} définit, pour chacune des valeurs de la liste V1, la position à laquelle cette valeur doit être insérée. Cet exemple est non limitatif, mais ce mode de définition de la clé Sik comporte notamment l'avantage de pouvoir stocker séparément les deux listes V, et P, afin d'accroître le niveau de sécurité du procédé. Les l(S,k)k valeurs de la liste V, sont insérées 102 dans la donnée de référence w, , de façon à obtenir une donnée wie étendue de longueur souhaitée. Ensuite, une fonction 104 de « secure sketch » classique dans sa phase d'enrôlement est exécutée sur la donnée étendue wie pour produire la donnée publique de reconstruction s, de même taille. Un exemple est explicité où a1=1. Un exemple de secure sketch est la construction dite décalage de code ou « code-offset « décrite ci-après. Un mot de code c dans le code C est choisi aléatoirement puis l'opération Si = wie c est effectuée, le symbole e désignant l'opérateur « ou » exclusif, les opérandes w,e et c étant considérées, dans l'exemple, comme des données binaires. La donnée s, est une donnée publique non sensible, donc stockée, par exemple dans l'appareil électronique exécutant le secure sketch. La figure 1B est un synoptique illustrant les étapes d'une phase de correction avec une première mise en oeuvre du procédé selon l'invention. La phase de correction permet, à partir d'une mesure bruitée w', d'une donnée confidentielle, de la clef Sik et de la donnée publique s, de reconstruction générée lors de la phase d'enrôlement exécutant le secure sketch, de reconstruire ladite donnée confidentielle. Dans un premier temps, la donnée bruitée w', à traiter est modifiée de manière analogue à celle dont la donnée de référence wia été modifiée lors de la phase d'enrôlement, en utilisant la clé secrète Sik. Dans l'exemple, les valeurs de la liste V, sont insérées 112 dans la donnée bruitée w', aux positions précisées par la liste P, étape b1). Une donnée bruitée étendue w'ie de taille n+k est ainsi obtenue et une fonction de décodage par « secure sketch » classique peut être appliquée sur la donnée bruitée étendue w',e. Dans l'exemple, un mot c' de taille n+k est déterminé 114 comme suit : c1=w,e' s,. Puis, la fonction de décodage 116 du code correcteur C est utilisée pour retrouver le mot de code c choisi lors de la phase d'enrôlement : c"=Decode(c'). Le mot code c n'est pas retrouvé si le mot c' lui est trop éloigné selon un critère de distance, autrement dit si la donnée bruitée étendue était trop éloignée de la donnée de référence étendue wie. En d'autres termes, le mot c" issu du décodage 116 appartient au code correcteur C sélectionné mais n'est pas identique au mot c initialement choisi lors de la phase d'enrôlement. Enfin, dans le cas contraire où le mot code c a été retrouvé, la donnée étendue wie est rétablie avec l'opération 118 suivante wis =si c, wis étant une donnée stabilisée égale à wie, étape b2), b3). Dans le cas où le mot c" issu du décodage n'est pas le même que le mot initial c, l'opération 118 de combinaison avec la donnée de reconstruction s, produit une donnée wis différente de la donnée étendue wie, étape b4). L'utilisation d'un secure sketch flexible permet donc d'allonger la donnée bruitée w', sans augmenter le bruit subi par la donnée, puisque les valeurs de V insérées dans la donnée bruitée w', sont identiques et aux mêmes positions dans la phase d'enrôlement et dans la phase de correction. Aussi, la valeur du paramètre d peut être laissée inchangée tandis que la valeur maximale atteignable par le paramètre k du code correcteur d'erreur, égale à longueur(w,e)-d+1, c'est-à-dire n+k-d+1 est augmentée de la valeur k. Par conséquent, l'ensemble des codes correcteurs répondant à la fois aux exigences de correction de bruit et de sécurité est élargi. En outre la clé Sik est beaucoup plus courte en taille que la clé cryptographique à produire, ce qui la rend enregistrable dans un appareil électronique à faible capacité de mémorisation. Pour une donnée binaire, une clé Sik définie par un coupe de listes Wh Pi) mobilise l(S,k)k bits pour la mémorisation des bits de valeurs de la première liste V,. La phase de correction consiste à étendre la nouvelle mesure wi' avec Extend puis, en se servant du sketch si et de la clef Sik, la traiter avec un secure sketch pour obtenir wie si w'i est assez proche de wi. La donnée wie est alors la donnée \Ni étendue grâce à la fonction Extend. Comme indiqué précédemment, un des objectifs de la présente invention est de présenter différentes fonctions Extend adaptées à augmenter la taille des données. Un autre objectif est de proposer un « secure sketch flexible recentré» permettant de retrouver toutes les propriétés des secure sketches standards sans les contraintes liées aux codes. Le principe mis en oeuvre est de créer un secure sketch flexible recentré qui consiste en un secure sketch flexible suivi de la fonction Extendsik-1 (si elle est définie) obtenue à partir de la fonction Extend. La fonction Extendsil (lorsqu'elle est définie) permet notamment à la donnée en sortie du système de retrouver sa taille d'origine et de perdre sa dépendance en la clé Sik. La construction de la fonction Extend est décrite ci-après, suivant plusieurs exemples dépendant notamment de l'espace dans lequel on travaille (ensemble de chaînes binaires de taille fixe, ensemble de points, ensemble de chaînes binaires de taille variable) et de la distance utilisée sur cet espace (distance de Hamming, différence symétrique et distance d'édition pour lesquelles sont définis des secure sketches). La construction des secure sketches flexibles recentrés lorsque la fonction Extendsk est inversible sera aussi détaillée plus loin dans la présente description. Une des applications possibles des secure sketches flexibles recentrés (abrégés SSfr dans la suite) est l'utilisation dans un système qui requiert un renouvellement régulier de la clé Sik car, étant donné que la sortie du système est indépendante de Sik, le renouvellement est possible sans modifier la donnée en sortie du système. Cette application a un avantage certain lorsque la donnée en sortie sert à générer une clé cryptographique : il est alors possible de modifier Sik sans modifier la clé cryptographique. Propriétés de la fonction Extend : - Enrôlement : Extend(w,,Sik)=wie - Correction : soit d la distance, on veut que d(w,e,w',e) = d(Extend(whSk), Extend(w'i,Sik)) = Si d(Extend(wi,S,k), Extend(w'i,Sik)) = d(w,,w',) Selon une première variante de réalisation, la fonction Extend est donnée pour la distance de Hamming connue de l'Homme du métier. La définition suivante est celle du secure sketch flexible dans le cas d'un espace de Hamming avec l'alphabet F. Définition : (Secure sketch flexible dans un espace de Hamming, abrégé 20 SSfH) Un SSfH de paramètres ((M,n),m,îii,t,S,k) est un secure sketch classique auquel on a apporté les modifications suivantes : On travaille dans un espace de Hamming avec M = F * où F est un alphabet, M est donc l'ensemble des chaînes finies sur l'alphabet F, 25 les modalités sont de tailles variables, Soit (SS*, Rec*) un secure sketch classique de paramètres (Fn ,n1,171,t) avec un code correcteur d'errreur de longueur n, La procédure SS prend en entrée wi E F* et Sik, leur applique ExtendH pour obtenir wie puis applique SS* à wie. En sortie on 30 asiEF*, - Etape b1), la procédure Rec prend en entrée Wi'E F * , Sik et Si E F* . Elle applique ExtendH à w'i et Sik pour en déduire WielE Fn- Etape b2), on applique ensuite Rec* à w'ie et si. 1(w1)+I(S1k)= ai.n où ai est un entier strictement positif. La fonction ExtendH qui correspond à cette définition est la suivante : Définition : On définit la fonction ExtendH qui prend en entrée wieF* et Sik de la forme Sik , en sortie on a Wie e Fn qui a les propriétés suivantes : j) [[1; pose La suite de la description concerne une variante de mise en oeuvre utilisant en lieu et place d'un secure sketch flexible, un secure sketch flexible recentré qui consiste en un secure sketch flexible suivit de la fonction Extends,k-1 et permet notamment à la donnée en sortie du système de retrouver sa taille d'origine et de perdre sa dépendance en la clé Sik. Les figures 2A et 2B schématisent respectivement la phase d'enrôlement et la phase de correction lors de l'utilisation d'un secure sketch flexible recentré. Définition : secure sketch flexible recentré (SSfr) : Comme il a été vu précédemment, la fonction Extend utilisée dans la définition des secure sketches généralisés est utilisée pour définir la fonction Extendsik, cette fonction peut ne pas être inversible. La fonction Extendsik est inversible pour les distances de Hamming et d'édition. Il est alors possible d'appliquer son inverse Extenesik à la sortie du système pour inverser l'élongation de la donnée et perdre ainsi la dépendance en la clé Sik. Nous obtenons alors ce que nous appelons un Secure Sketch flexible recentré (SSfr). La donnée en sortie d'un secure sketch flexible recentré est indépendante de la clé Sik et possède la même taille que la donnée en 25 entrée ce qui n'est pas le cas pour un secure sketch généralisé. Rappel : Extendsik(wi)=Extend(S,k,w,) et Extencrisik(w,) est l'inverse de Extendsik(wi). Un secure sketch flexible recentré est un secure sketch flexible auquel on a ajouté la fonction Extend-1 sik à la sortie. La donnée en sortie 30 est exactement wi (si w', assez proche de wi) et ce indépendamment de la clé Sik. Remarques : Un SSf auquel on applique Extend-lsik sera appelé un SSfr (secure sketch flexible recentré). Un SSf dont la fonction Extendsik est non inversible pourra être noté SSf ou SSfni (ni pour non-inversible). Dans le cas du secure sketch flexible recentré, deux possibilités peuvent se présenter: Sik publique : il n'est dans ce cas pas nécessaire d'avoir une clé Sik de bonne qualité du point de vue de la sécurité (elle sert juste à s'affranchir des contraintes liées aux codes correcteurs) et on peut la stocker sans se soucier de sa protection. - Sit( secrète : le sortie du système reste indépendante de Sik mais il n'est pas possible de corriger w'; en wi pour un attaquant qui ignore Sik- De plus, la sécurité du secure sketch flexible recentré est la même que celle d'un secure sketch, laquelle peut être maîtrisée. Construction du secure sketch flexible recentré dans le cas d'un espace muni de la Distance de Hamming D'un secure sketch flexible ayant une fonction Extend {sik,H} inversible, il est possible de dériver un secure sketch flexible recentré SSfr. Pour inverser cette fonction Extend {sik,H}, il suffit de supprimer les bits qui ont été rajoutés aux positions que l'on connaît grâce à Sik. Définition : (Extend -1{sik,H}) On définit la fonction Extend -1{sik,H} qui prend en entrée w,, E F" et un paramètre Sk de la forme Sic = Posksil()),(vall,...,vali(sik))j en sortie on a Wi E F * , qui a les propriétés suivantes : - Pour i=1 à l(Sik), supprimer les bits en position posi. - Concaténer les bits restants dans leur ordre d'apparition. Construction du secure sketch flexible recentré dans le cas où l'espace est muni de la distance d'édition La fonction Extend{sik,E} est parfaitement inversible pour les mêmes raisons que dans le cas de la distance de Hamming. Il est donc possible de fabriquer un SSfr avec la distance d'édition. Il faut noter que cette fonction se base sur la chaîne de caractères la plus courte dans l'ensemble des chaînes possibles. Il est donc préférable que la chaîne la plus courte ait quand même une certaine longueur sinon on ne peut pas beaucoup jouer sur les pos,. Dans le pire des cas, celui où la chaîne de caractères la plus courte est de taille nulle, les posi sont tous prédéterminés (posi=i ; il n'y a pas d'autre possibilité) mais il reste encore le façons de réaliser l'élongation sur les 0+k=k premiers bits. Définition : (Extend -1{sik,E}) On définit la fonction Extend -1{s,k,E) qui prend en entrée w,e e Fn+k et Sik un paramètre de la forme Sik , en sortie on a w e , qui a les propriétés suivantes : - Pour i=1 à l(Sik), supprimer les bits en position pos,. - Concaténer les bits restants dans leur ordre d'apparition. Système électronique de mise en oeuvre de la présente invention La figure 3 présente un système électronique mettant en oeuvre une ou plusieurs variantes de procédés d'authentification selon l'invention. Le système 301 comprend par exemple un capteur biométrique ou un dispositif d'extraction d'une donnée bruitée à partir de caractéristiques physiques d'un dispositif (connu sous la dénomination anglo-saxonne PUF), un support d'enregistrement 305 mémorisant une clé secrète Sik et une unité de calcul 307 mettant en oeuvre le procédé selon l'invention. L'unité de calcul est adaptée à recevoir la clé Sik issue du support d'enregistrement 305 et une donnée bruitée w'i issue du module capteur 303. A titre d'illustration, un individu ou un dispositif à identifier génère, via le capteur 303, une donnée w', qui lui est propre. Le support d'enregistrement 305 (par exemple une mémoire ou une clé USB, un disque réseau) est connecté à l'unité de calcul et fournit la clé secrète Se. L'unité de calcul 307 tente à partir de ces deux données w', et Sik, de reconstruire la donnée de référence w, produite lors d'une phase d'enrôlement préalable. L'un des avantages du procédé selon l'invention est de reconstruire une donnée de référence w à partir d'une mesure bruitée w', de cette donnée w tout en préservant l'inaccessibilité à cette donnée w, si la mesure bruitée w', n'est pas effectuée sur ladite donnée de référence w,. Un autre avantage est de retrouver les propriétés d'un secure sketch (standard). Ceci permet de mettre un secure sketch flexible recentré (SSfr) dans tout système qui utilise des secure sketches à distance de Hamming ou distance d'édition et ce de façon transparente. Le tout en s'acquittant des problèmes liés aux contraintes des codes. Un avantage du secure sketch flexible recentré est d'offrir en sortie une donnée de la même taille que la mesure et que cette sortie est indépendante de la clé Sik. Un autre avantage est de pouvoir maîtriser la sécurité de la donnée en sortie en maîtrisant parfaitement la clé Sik. Le secure sketch flexible permet dans le cas d'un espace muni de la distance appelée différence symétrique de s'affranchir des contraintes liées au code correcteur, même s'il est vrai que la taille de la donnée en sortie est supérieure à celle de la donnée d'entrée. Le secure sketch flexible recentré ne peut pas être défini pour la différence symétrique. REVENDICATIONS1 - Procédé d'enrôlement d'une donnée de référence wi de taille variable dans un dispositif destiné à retrouver une mesure de référence d'une 5 donnée confidentielle à partir d'une mesure bruitée de ladite donnée, caractérisé en ce qu'il comporte au moins les étapes suivantes : al) définir la taille de la donnée de référence a2) sélectionner une clé Sil(' ayant une taille adaptée à la taille de la donnée de référence mil, 10 a3) effectuer une mesure de référence de ladite donnée wi confidentielle, a4) appliquer une fonction Extend adaptée à augmenter la taille de la donnée mesurée en utilisant la clé Sik et la fonction Extend afin de générer une donnée étendue wie, a5) appliquer une fonction secure sketch dans sa phase d'enrôlement afin 15 de trouver une donnée de reconstruction si. 2 - Procédé selon la revendication 1 caractérisé en ce qu'il comporte une étape supplémentaire de reconstruction de la donnée de référence étendue %mie comportant au moins les étapes suivantes : 20 131) mesurer une donnée bruitée w'i et appliquer une fonction Extend à ladite donnée bruitée Mil afin de générer une donnée bruitée étendue wiie, en utilisant une clé Sik, b2) utiliser la donnée si trouvée à l'étape a5) et appliquer une fonction secure sketch dans sa phase de correction en prenant en entrée la 25 donnée bruitée étendue mile, la clef Sik et la donnée de reconstruction si afin de générer une valeur débruitée b3) si distance (w'ie, wie) est inférieure à un seuil donné, alors la donnée wie est reconstruite, b4) sinon la donnée n'est pas reconstruite. 30 3 - Procédé selon la revendication 2 caractérisé en ce que la fonction Extend est définie dans un espace de Hamming et en ce que le procédé comporte au moins les étapes suivantes : le secure sketch flexible dans un espace de Hamming SSfH de paramètres ((M,n),m,îii,t,S,k) est défini ci-après : travailler dans un espace de Hamming avec M F* où F est un alphabet, soit (SS*, Rec*) un secure sketch classique de paramètres (F" avec n la longueur du code correcteur, l'étape d'exécution du secure sketch prend en entrée wi E F* et Sil(' leur applique ExtendH pour obtenir \mie puis applique SS* à \me, en sortie on a si E F* , l'étape b1) prend en entrée 14,1i E Sik et si E F * , applique ExtendH à w'; et Sik pour en déduire "Wie E F", l'étape b2) applique ensuite Rec* à w'ie et si, où la fonction ExtendH prend en entrée IN1 E F. et Sik de la forme S,k =Kpos,,..-,pose,k)),411,---,val(Sk)11, en sortie on a wie E F", qui a les propriétés suivantes : j)e[11;1(Sik)F ,1 pos, 4 - Procédé selon la revendication 2 caractérisé en ce que la fonction Extend est définie par la distance symétrique avec M=P(U) l'ensemble des parties d'un ensemble U, %A/6w'; EM, dà(wbwi')=I{x x win %l'al eten ce que la fonction Extendâ consiste à ajouter dans l'ensemble wi des éléments déterminés z de la manière suivante : soit M l'espace métrique (ensemble des parties d'un ensemble U) muni de la différence symétrique dâ et Sik=z un ensemble de k éléments de U. 5 On définit Extendâ de la façon suivante : Extendâ (wi,Sik) = Extend {sik,t,}(wi) = w1 u z, Fabrication d'un SSf avec cette fonction Extendâ : choisir un ensemble z et poser wiewu z, appliquer un secure sketch de différence symétrique avec Wie. 10 - Procédé selon l'une des revendications 1 et 2 caractérisé en ce que la fonction ExtendE mise en oeuvre est définie en fonction de la distance d'édition qui correspond entre deux chaînes de caractères au nombre minimum de suppressions et d'insertions nécessaires pour passer d'une 15 chaîne à l'autre, la fonction ExtendE étant définie de la manière suivante : Soit M un espace métrique muni de la distance d'édition dE sur l'alphabet F, soit Sik = RPOSlt ,POS l(Sik)), i(sik))] et soit n la longueur de la chaîne de caractères de M la plus courte. - V i E {1,- }s %talle F, 20 - V i,j, 1