Brevet FR3099016A1 — publié le 20210122

Description Titre de l'invention : Procédé de génération de clé privée à partir de caractéristiques biométriques. [0001] L'invention concerne un procédé et un système pour générer une clé utilisée pour le chiffrement de données. La clé est par exemple utilisée comme clé privée pour le chiffrement de données dans un système asymétrique. Elle trouve son application dans le domaine des communications, pour sécuriser les transmissions de données, pour sécuriser les paiements en ligne, ou encore clans le domaine de l'identification pour authentifier des données ou un document. [0002] De nombreuses utilisations font appel au chiffrement de données, par exemple pour sécuriser la transmission de données dans des systèmes de communication, pour des transactions bancaires ou dans des dispositifs d'identification. [0003] L'art antérieur divulgue de nombreuses techniques de chiffrement de données. La cryptographie asymétrique utilise, par exemple, un chiffrement à clé publique et à clé privée. L'un des objectifs est de garantir la confidentialité d'une donnée. Dans la cryptographie asymétrique, on utilise deux dés dc chiffrement. L'utilisateur utilise une première clé de chiffrement, afin que les tiers qui ne possèdent pas la deuxième clé ne puissent accéder aux données chiffrées dc l'utilisateur. [0004] Lc brevet US 10050784 divulgue un système et un procédé permettant de générer une clé cryptographique à l'aide d'une séquence de segments dc données sélectionnés par un utilisateur parmi une ou plusieurs ressources de données. Les données brutes provenant dc la ou des ressources de données correspondant à chacun des segments de données sélectionnés, ainsi que la séquence dans laquelle ces segments de données sont sélectionnés, sont extraites et traitées pour générer une clé. La clé peut être utilisée à des fins d'authentification et de cryptographie. Cette technique améliore la sécurité tout en facilitant la création et l'utilisation d'une telle sécurité. [0005] Dans les systèmes décrits dans l'art antérieur la clé est générée à partir d'un flux d'images ou clip vidéo proposé d'une façon aléatoire à partir d'une base de données de ressources. [0006] L'expression « points d'intérêts » utilisée dans la suite est une expression connue dans le domaine de la biométrie qui caractérise un paramètre du visage ou d'une voix d'un individu. [0007] Le procédé de génération d'une clé de chiffrement selon l'invention exploite un ensemble de paramètres biométriques propres à un individu, issus d'un flux audio et d'un flux vidéo. [0008] L'invention concerne un procédé pour générer une ou plusieurs clés de chiffrement 2 caractérisé en ce qu'il comporte au moins les étapes suivantes : - extraire un ensemble de paramètres vocaux d'un flux audio propre à un individu et sélectionner un nombre N de paramètres vocaux par tirage aléatoire, - extraire un ensemble de N paramètres visuels d'un flux vidéo, - combiner les N paramètres visuels et les N paramètres vocaux issus du tirage aléatoire et générer une matrice A dc taille NxN, - effectuer une binarisation d'un ensemble de composantes de la matrice A afin de générer un vecteur binaire de taille T, - ajouter au moins deux bits dc valeur x au début et à la fin du vecteur binaire afin d'obtenir un nombre impair, - convertir le vecteur en nombre et vérifier si le nombre est un nombre premier, - si le nombre n'est pas un nombre premier, ajouter un nombre « y » afin d'obtenir le nombre impair suivant, - réitérer les étapes d'ajout de la valeur « y » jusqu'à obtenir un nombre premier, - à partir d'au moins ledit nombre premier trouvé, générer au moins une clé de chiffrement Kp. [0009] Selon un mode de réalisation, on va générer au moins deux nombres premiers pour générer un couple clé publique/clé privée Km, Ki), pour des usages de chiffrement asymétrique. [0010] Pour vérifier qu'un nombre est un nombre premier, le procédé utilise le test Miller- Rabin. [0011] Selon un mode de réalisation, on utilise les valeurs x=1 et y=2. [0012] Le procédé peut utiliser comme paramètres vocaux des coefficients cepstraux. [0013] Pour extraire un ensemble de paramètres vocaux, le procédé va par exemple exécuter les étapes suivantes : - découper le signal de parole en plusieurs segments et pondérer chaque segment par une fenêtre de Hamming, - appliquer une transformée de Fourrier rapide à chaque segment pondéré, - filtrer les segments transformés, - appliquer une transformation en cosinus discrète pour obtenir les coefficients cepstraux MFCC. [0014] On peut utiliser comme paramètres visuels des paramètres obtenus par la technique de transformée en cosinus discrète. [0015] L'invention concerne aussi un dispositif pour générer une ou plusieurs clés crypto- graphiques caractérisé en ce qu'il comporte au moins les éléments suivants : - un capteur adapté à capturer un ensemble de paramètres audio propres à un individu, - un capteur configuré pour capturer un ensemble de paramètres vidéo propres audit 3 individu, - un processeur recevant les paramètres audio et les paramètres vidéo, ledit processeur étant adapté à exécuter les étapes du procédé selon l'invention et générer au moins une clé de chiffrement ou clé cryptographique. [0016] Le processeur comprend, par exemple, un module adapté à extraire des paramètres cepstraux de l'ensemble des paramètres audio et un module configuré pour réaliser une transformée en cosinus discrète sur les paramètres vidéo [0017] D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la description qui suit, d'exemples de réalisation donnés à titre illustratif et nullement limitatif, annexée des figures qui représentent : [0018] [fig.1], un exemple de système de génération d'une clé privée selon l'invention, [0019] [fig.2], un exemple d'étapes mises en oeuvre par le procédé selon l'invention, [0020] [fig.3], un exemple d'extraction des paramètres vocaux, [0021] [fig.4], une succession d'étapes pour extraire des paramètres visuels [0022] La figure 1 illustre un exemple de dispositif 1 permettant la génération d'une clé privée selon l'invention comprenant, par exemple, un capteur audio 2 adapté à capturer une phrase prononcée par un individu, un capteur vidéo 3 configuré pour acquérir, en temps réel par exemple, un flux d'images caractérisant un individu. Lc capteur audio 2 et le capteur vidéo 3 sont reliés à un processeur 4 comprenant un logiciel configuré pour exécuter les étapes de génération d'une clé privée à partir de paramètres audio et vidéo propres à l'individu. Le dispositif peut comporter une mémoire 5 permettant le stockage de paramètres lors de l'exécution des étapes, ces données seront effacées en fin de processus. [0023] Le processeur peut comporter un module 6 adapté à extraire des paramètres cepstraux de l'ensemble des paramètres audio et un module 7 configuré pour réaliser une transformée en cosinus discrète sur les paramètres vidéo. [0024] Les paramètres audio et vidéo peuvent être acquis, enregistrés en temps réel ou bien avoir été stockés dans une base de données, le temps d'exécuter les étapes du procédé. [0025] Le procédé de génération d'une clé de chiffrement selon l'invention comporte par exemple les étapes génériques illustrées à la figure 2. [0026] A partir (lu flux audio acquis par le capteur audio, le processeur va extraire, plusieurs vecteurs caractéristiques 21, appelées vecteurs acoustiques (paramètres vocaux), issus des points d'intérêts de la voix. Les points d'intérêts de la voix sont des paramètres biométriques audio caractérisant la voix d'un individu. [0027] Ces vecteurs acoustiques Vu sont stockés dans une matrice MI de taille NxM, où N est la taille des vecteurs et M est le nombre des vecteurs extraits. [0028] Lors de l'étape suivante, 22, on utilise un logiciel de tirage aléatoire sur les com- posantes des vecteurs de la matrice MI, afin d'extraire un ensemble de paramètres Vu des caractéristiques vocales, se présentant sous la forme d'une matrice une colonne V de taille N. La valeur de N est choisie, par exemple, en fonction des caractéristiques du signal de parole échantillonné. [0029] En parallèle, le procédé extrait, 23, les paramètres visuels d'une image issue d'une vidéo acquise par le capteur vidéo 3 et représentant le visage d'un individu. Ces éléments sont mémorisés sous la forme d'un vecteur FI de taille N caractérisé par des vecteurs caractéristiques visuels -Cm,. Les paramètres visuels représentent des points d'intérêts qui correspondent à la position dans le visage des zones d'intérêts (yeux, nez, bouche, contour, sourcils). [0030] Puis, le procédé va multiplier le vecteur colonne de la matrice V avec le vecteur ligne F1 des caractéristiques visuelles, 24. Le résultat se présente sous la forme d'une matrice carrée A de taille NxN, avec des composantes A''1. [0031] En effectuant une hinarisation d'un ensemble {Ai} de valeurs de la matrice A choisies d'une façon aléatoire, un vecteur binaire de taille T est généré, 25. La taille T correspond au nombre de bits dans la clé générée, par exemple 510, 1022, 2046. Ensuite, on ajoute au moins deux bits ayant une valeur x= « 1 » au début et à la fin du vecteur binaire, 26. Un bit est ajouté au début (à droite) afin de garantir que le chiffre obtenu est impair et un bit est ajouté à la fin (à gauche) afin de garantir que le chiffre soit plus grand si cc bit est égal à zéro. [0032] La taille finale de vecteur correspond au nombre de bits dans la clé générée, et sera par exemple égale à 512, 1024, ou 2048. Puis, le vecteur binaire B obtenu est converti en nombre K assez grand, le nombre de chiffres choisi pour K est notamment fonction de la sécurité requise pour l'application. K est la représentation décimale du vecteur binaire [0033] Par exemple, pour un vecteur binaire de taille 512 bits, K est un nombre décimal avec 155 chiffres, pour 1024 bits K contient 309 chiffres et pour 2048 bits K contient 617 chiffres. [0034] On vérifie si ce nombre K est un nombre premier, 27. Si le résultat du test indique que le nombre K n'est pas premier, on ajoute un nombre y= « 2 », par exemple, au nombre K pour obtenir le nombre impair suivant et on recommence l'opération d'ajout du nombre « 2 ». Ceci est répété un nombre de fois suffisant pour trouver un nombre premier K11. La vérification peut se faire en utilisant le test de Miller-Rabin connu de l'homme du métier. [0035] Les opérations sont répétées un nombre de fois suffisant pour trouver au moins deux grands nombres premiers GPI, CP, d'au moins 1024 bits soit environ 308 chiffres. [0036] A partir des deux grands nombres premiers GPI, GP2 et en utilisant un algorithme de type RSA, il sera possible de trouver une clé privée et une clé publique Kpl, Kr,. [0037] Les valeurs x=1 et y=2 sont données à titre illustratif. La valeur de x est choisie de façon à obtenir un premier nombre premier et la valeur de y peut être égale à 2, 4, ou tout nombre pair qui permettra d'obtenir un nombre impair suivant. [0038] Après la génération des clés, les informations éventuellement contenues dans la mémoire sont supprimées par le procédé. [0039] Il existe, dans la littérature, plusieurs types de vecteurs acoustiques. Les vecteurs acoustiques les plus utilisés dans le traitement de parole sont basés sur les coefficients cepstraux connus sous l'abréviation anglo-saxonne « MFCCs » (Mcl-Frequency Cepstral Coefficients). Ces coefficients prennent en compte les propriétés du système auditif humain. La figure 3 illustre un exemple d'étapes exécutées par le processeur sur le flux audio, signal de parole par exemple, enregistré ou capté, par exemple : 30 - Le signal de parole est découpé en segments de tailles fixes (entre 20 et 50 ms), 31 - Chaque segment est pondéré par une fenêtre de Hamming, 32 - Une transformée de Fourrier rapide est appliquée à chaque segment, 33 - Un filtrage de type MEL est réalisé sur les segments transformés (Le filtre de MEL est un banc de filtres triangulaires qui se chevauchent et qui modélisent l'appareil auditif humain). La fonction de Mcl s'exprime en fonction de la fréquence par : M ( ) = 2595Iog ±100) La réponse de chacun des filtres est illustrée par : Y (1) = L f )mitf où 1=1, 2, ....,M, X(f) est le spectre du signal de parole, et Mt (.f ) la fonction de transfert du filtre, 34 - A la sortie de chaque filtre le logarithme du module (ou l'amplitude) de signal filtré est conservé, 35 - Puis l'étape suivante consiste à appliquer une transformation en cosinus discrète sur le logarithme du module pour obtenir les coefficients MFCC. Pendant cette étape le nombre des vecteurs cepstraux MFCCs par segment est défini - Aure ( i) = L 1". log ( I Y ( to )lco (ffi - 0.5 ) ) ) ()ù L est L = L le nombre de filtres de Mcl et i l'indice du coefficient MFCC. [0040] Par exemple, pour un signal de parole durant deux secondes, une taille de segment de 20 ms, un nombre de MFCCs par segment égal à N=30, on obtient M=200 vecteurs caractéristiques de taille 30. [0041] Comme pour la parole, il existe plusieurs types de paramètres visuels. L'une des techniques classiques pour extraire les paramètres visuels est la transformée en cosinus 6 discrète (Discretc Cosine Transform - DCT). Cette technique est très utilisée dans le domaine de compression d'image. [0042] La figure 4 illustre les étapes majeures. Une fois la zone d'intérêt déterminée, la technique DCT est appliquée sur l'intensité des pixels contenus dans cette zone. Le résultat de cette opération est une matrice DCT, 41. A partir de cette matrice le vecteur caractéristique visuel de taille N est extrait selon le principe du « zig-zag », 42. [0043] Le procédé selon l'invention permet la génération de clés cryptographiques pouvant être utilisées dans les domaines techniques suivants : [0044] La sécurisation des données d'identité, dans des systèmes d'identification, [0045] La sécurisation de données sensibles à stocker sur un terminal mobile, [0046] La sécurisation des échanges entre un terminal mobile et un équipement/serveur ap- plicatif, [0047] La signature électronique de données depuis un terminal mobile pour la vérification d'authenticité. [0048] Le procédé et le dispositif selon l'invention présentent notamment l'avantage de générer une clé privée à partir d'informations hiométriques propres à un individu, sans faire intervenir de paramètres externes en fonctionnement normal. Les données biométriques utilisées pour générer les nombres premiers sont immédiatement supprimées après l'opération. L'invention offre une sécurité importante. La variabilité intralocuteur, i.c., une personne ne peut pas prononcer la même phrase deux fois de la même façon, et infra-visage garantit que les données brutes (parole et visage) ne peuvent être reproduites. Si un tiers otient un enregistrement des données originales, les caractéristiques vocales et visuelles seront différentes des caractéristiques des données originales. Dans l'hypothèse d'un piratage des données d'origines, déterminer les nombres premiers par un tiers non autorisé reste difficile du fait du caractère aléatoire dans le choix des caractéristiques vocales et visuelles, leurs configurations, le choix de vecteur colonne pour la parole, la binarisation. 7 REVENDICATIONS[Revendication 1] Procédé pour générer une ou plusieurs clés de chiffrement caractérisé en cc qu'il comporte au moins les étapes suivantes : - extraire (21) un ensemble de paramètres vocaux d'un flux audio propre à un individu et sélectionner un nombre N de paramètres vocaux par tirage aléatoire (22), - extraire (23) un ensemble de N paramètres visuels d'une image d'un flux vidéo, - combiner (24) les N paramètres visuels et les N paramètres vocaux et générer une matrice A de taille NxN, - effectuer (25) une binarisation d'un ensemble de composantes de la matrice A afin de générer un vecteur binaire de taille T. - ajouter au moins deux bits de valeur x au début et à la fin du vecteur binaire afin d'obtenir un nombre impair, - convertir le vecteur en nombre, vérifier si le nombre est un nombre premier, (27), - si le nombre n'est pas un nombre premier, ajouter un nombre « y » afin d'obtenir le nombre impair suivant, - réitérer les étapes d'ajout de la valeur « y » jusqu'à obtenir un nombre premier, (28), - à partir d'au moins ledit nombre premier trouvé, générer au moins une clé de chiffrement Kp. [Revendication 2] Procédé selon la revendication 1 caractérisé en ce que l'on génère au moins deux nombres premiers pour générer un couple clé publique/clé privée Kpl, Kp7, pour des usages de chiffrement asymétrique. [Revendication 3] Procédé selon l'une des revendications 1 ou 2 caractérisé en ce que l'on utilise le test Miller-Rabin pour vérifier que le nombre est un nombre premier. [Revendication 4] Procédé selon l'une des revendications 1 à 3 caractérisé en ce que l'on ajoute les valeurs x=1 et y=2. [Revendication 5] Procédé selon l'une des revendications 1 à 4 caractérisé en ce que l'on utilise comme paramètres vocaux des coefficients cepstraux. [Revendication 6] Procédé selon la revendication 5 caractérisé en ce que l'on extrait un ensemble de paramètres vocaux en exécutant les étapes suivantes : - découper le signal de parole en plusieurs segments et pondérer chaque segment par une fenêtre de Hamming, (31), - appliquer une transformée de Fourrier rapide à chaque segment 8 [Revendication 7] [Revendication 8] [Revendication 9] pondéré (32), - filtrer (33) les segments transformes, - appliquer une transformation en cosinus discrète pour obtenir les coefficients ccpstraux MFCC (35). Procédé selon l'une des revendications 1 à 5 caractérise en ce que l'on utilise comme paramètres visuels des paramètres issus de la technique de transformée en cosinus discrète. Dispositif pour générer une ou plusieurs clés de chiffrement caractérisé en ce qu'il comporte au moins les éléments suivants : - un capteur (2) adapté à capturer un ensemble de paramètres audio propres à un individu, - un capteur (3) configure pour capturer un ensemble de paramètres vidéo propres audit individu, - un processeur (4) recevant les paramètres audio et les paramètres vidéo, ledit processeur étant adapté à exécuter les étapes du procédé selon l'une des revendications 1 à 7 et générer au moins une clé de chiffrement Dispositif selon la revendication 8 caractérise en ce que le processeur (4) comprend un module adapté à extraire des paramètres ccpstraux de l'ensemble des paramètres audio et un module configure pour réaliser une transformée en cosinus discrète sur les paramètres vidéo.