Brevet FR3039948A1 (20170210)
REVENDICATIONS1. Procédé de partage d'une donnée secrète, comprenant des étapes consistant à : générer dans un processeur graphique d'un terminal (MT) une donnée secrète (RN1), chiffrer la donnée secrète, et transmettre la donnée secrète chiffrée à un processeur sécurisé (SRV, SE), caractérisé en ce que : les étapes de génération et de chiffrement de la donnée secrète (RN1) sont réalisées par un circuit brouillé (RNG1, ENC) exécuté par le processeur graphique (GP) et comprenant des portes logiques réparties en plusieurs rangs ordonnés, comprenant un premier rang rassemblant des portes logiques recevant exclusivement des valeurs d'entrée du circuit brouillé, les portes logiques d'un certain rang recevant exclusivement des valeurs issues de portes logiques appartenant à des rangs inférieurs ou des valeurs d'entrée du circuit brouillé, chaque porte logique étant associée à des valeurs brouillées représentant chaque valeur binaire possible de chaque bit d'entrée et de chaque bit de sortie de la porte logique, chaque porte logique étant associée à une table de vérité comprenant pour chaque combinaison possible des valeurs binaires d'entrée de la porte logique une valeur obtenue par chiffrement de la valeur brouillée représentant la valeur de sortie de la porte logique correspondant à la combinaison des valeurs binaires d'entrée de la porte logique, l'exécution du circuit brouillé par le processeur graphique comprenant des étapes consistant à : exécuter successivement les rangs de portes logiques en respectant l'ordre des rangs, l'exécution de chacun des rangs de portes logiques consistant à exécuter simultanément toutes les portes logique du rang, l'exécution d'une porte logique comprenant des étapes de sélection d'une ligne de la table de vérité associée à la porte logique, en fonction des valeurs brouillées d'entrée de la porte logique, et de déchiffrement de la ligne sélectionnée pour obtenir une valeur brouillée de sortie de la porte logique, et transférer les valeurs brouillées de sortie obtenues, qui sont appliquées à une entrée d'une porte logique appartenant à un rang 3039948 28 supérieur, d'une mémoire de sortie (VMEM) du processeur graphique vers une mémoire d'entrée (GMEM) du processeur graphique, de manière à être prises en compte lors de l'exécution du rang supérieur. 5\n<CLM>\1\tProcédé selon la revendication 1, dans lequel la donnée secrète (RN1) est générée aléatoirement ou pseudo-aléatoirement, le circuit brouillé (RNG1, ENC) comprenant un circuit (RNG1) de génération de nombres aléatoires ou pseudo-aléatoire. 10\n<CLM>\1\tProcédé selon l'une des revendications 1 et 2, dans lequel la donnée secrète (RN1) est générée aléatoirement en lançant simultanément l'exécution de plusieurs opérations identiques s'exécutant en parallèle, la donnée secrète dépendant de l'ordre dans lequel se terminent les opérations. 15\n<CLM>\1\tProcédé selon l'une des revendications 1 à 3, dans lequel la donnée secrète (RN1) est générée à l'aide d'un circuit brouillé (RNG1) configuré pour générer des nombres aléatoires ou pseudo-aléatoires, le circuit brouillé comprenant un premier rang de portes associées à des tables 20 de vérité présentant des lignes identiques mais ordonnées différemment, de manière à fournir des données de sortie différentes pour de mêmes données d'entrée, les données de sortie du rang de portes étant fournies à un rang de portes suivant en fonction d'un ordre dans lequel elles sont fournies par le premier rang de portes. 25\n<CLM>\1\tProcédé selon l'une des revendications 1 à 4, dans lequel l'exécution du circuit brouillé est réalisée par un interpréteur réalisé lui-même au moins en partie sous la forme d'un circuit brouillé. 30\n<CLM>\1\tProcédé selon l'une des revendications 1 à 5, comprenant une étape d'établissement d'une liaison entre le processeur graphique (GP) et le processeur sécurisé (SRV), la liaison étant sécurisée au moyen de la donnée secrète (RN1) partagée uniquement entre le processeur graphique et le processeur sécurisé. 3039948 29\n<CLM>\1\tProcédé d'authentification d'un utilisateur par un serveur (SRV), à partir d'un terminal connecté au serveur, le terminal (MT) comprenant un processeur principal (HP), un processeur graphique (GP) contrôlant un écran d'affichage (DSP), et un organe de commande (CM), le procédé comprenant 5 des étapes consistant à : charger dans le processeur graphique un programme (RN1, ENC, FCC) configurant le processeur graphique pour exécuter le procédé selon l'une des revendications 1 à 6, afin de générer une donnée secrète (RN1) partagée uniquement entre le processeur graphique et le serveur, et pour 10 afficher à l'écran d'affichage une image (IM) d'un clavier ayant une répartition de touches définie et déterminable à l'aide de la donnée secrète partagée, exécuter le programme par le processeur graphique pour générer la donnée secrète partagée et afficher l'image du clavier à l'écran d'affichage, l'image du clavier étant affichée sous la forme de trames complémentaires 15 (IM1) non intelligibles individuellement pour un utilisateur, générées par un algorithme de cryptographie visuelle et affichées successivement à une cadence adaptée pour exploiter la rémanence du système visuel de l'utilisateur afin qu'une image combinant les trames complémentaires apparaisse d'une manière intelligible pour l'utilisateur, 20 recueillir par le processeur principal des positions de l'écran d'affichage (Pos ) désignées par l'utilisateur au moyen de l'organe de commande, en relation avec le clavier virtuel affiché, transmettre par le processeur principal au serveur les positions désignées par l'utilisateur, et 25 vérifier une cohérence entre les positions désignées, et un code secret d'authentification de l'utilisateur, connu du serveur, l'utilisateur étant authentifié si la cohérence est vérifiée.\n<CLM>\1\tProcédé selon la revendication 7, dans lequel la donnée secrète 30 (RN1) partagée définit la répartition des touches de l'image du clavier (IM1).\n<CLM>\1\tProcédé selon la revendication 7 ou 8, dans lequel l'affichage de l'image du clavier (IM1) comprend : 3039948 30 des étapes successives de sélection d'une décomposition en motifs de pixels complémentaires pour chaque pixel ou groupe de pixels de l'image du clavier, représentant des libellés de touches du clavier, des étapes successives de génération de motifs de pixels 5 complémentaires (EP1, EP2) pour chaque décomposition sélectionnée, de manière à ce que les libellés des touches ne soient visibles à l'écran d'affichage que si les motifs de pixels complémentaires sont superposés, et des étapes successives d'affichage des motifs de pixels générés à des instants sélectionnés aléatoirement, espacés d'une durée variable telle 10 que le système visuel humain puisse les combiner bien qu'ils soient affichés successivement, les instants d'affichage des motifs de pixels formant une image affichée du clavier étant distincts et indépendants les uns des autres.\n<CLM>\1\tProcédé selon la revendication 9, dans lequel l'affichage de 15 l'image du clavier (IM1) est effectué par un circuit brouillé (FCC) exécuté par le processeur graphique (GP).\n<CLM>\1\tTerminal configuré pour mettre en oeuvre le procédé selon l'une des revendications 1 à\n<CLM>\1\t20\n<CLM>\1\tProgramme d'ordinateur qui, lorsqu'il est chargé et exécuté par un terminal comprenant un processeur principal (HP) et un processeur graphique (GP), configure le terminal pour mettre en oeuvre le procédé selon l'une des revendications 1 à\n<CLM>\1\t25