Brevet FR3048086A1 (20170825)
REVENDICATIONS1. Procédé de test comprenant des étapes consistant à : acquérir une pluralité d'ensembles de valeurs (Ci), chaque ensemble comprenant des valeurs d'une grandeur physique ou de signaux logiques, liés à l'activité d'un circuit à tester (CT) durant l'exécution par le circuit d'une opération (OPRK) d'un ensemble d'opérations cryptographiques distinctes appliquées à une même donnée secrète (SD), pour chaque ensemble de valeurs, compter, par une unité de traitement (PC), des nombres d'occurrences (HT) de transformées par une première fonction surjective (F1) appliquée à des valeurs (ECi) de l'ensemble de valeurs, pour chaque opération de l'ensemble d'opérations, et chacune des valeurs possibles (g) d'une partie de la donnée secrète, calculer, par l'unité de traitement, un résultat partiel d'opération, calculer, par l'unité de traitement, des sommes de nombres d'occurrences (CH), chaque somme étant obtenue en additionnant les nombres d'occurrences correspondant aux opérations de l'ensemble d'opérations, qui appliquées à une même valeur ou valeur équivalente des valeurs possibles de la partie de la donnée secrète, fournissent un résultat partiel d'opération ayant une même valeur transformée (VL) par une seconde fonction surjective (F2), et analyser, par l'unité de traitement, les sommes de nombres d'occurrences pour déterminer la partie de la donnée secrète, sachant que si la donnée secrète a fui dans les ensembles de valeurs, elle se trouve dans les cumuls de nombres d'occurrences correspondant à la valeur de la partie de la donnée secrète.\n<CLM>\1\tProcédé selon la revendication 1, comprenant une étape de sélection de valeurs (ECi) dans chaque ensemble de valeurs (Ci), le comptage de nombres d'occurrences (HT) étant effectué sur les valeurs sélectionnées.\n<CLM>\1\tProcédé selon la revendication 1 ou 2, comprenant des étapes consistant à : 3048086 30 transmettre au circuit une pluralité de commandes distinctes (OPRK), chaque commande déclenchant l'exécution par le circuit d'une des opérations de l'ensemble d'opérations, appliquée à la donnée secrète (SD), et 5 pendant l'exécution par le circuit de chaque opération, collecter par un dispositif de mesure, les valeurs d'un des ensembles de valeurs (Ci).\n<CLM>\1\tProcédé selon l'une des revendications 1 à 3, dans lequel les ensembles de valeurs comprennent : 10 des mesures de consommation de courant du circuit (CT), et/ou des mesures de rayonnement électromagnétique émises par le circuit, et/ou des mesures d'absorption de champ magnétique présent autour du circuit, et/ou 15 des signaux logiques ou des valeurs numériques collectées dans le circuit.\n<CLM>\1\tProcédé selon l'une des revendications 1 à 4, dans lequel chacune des première et seconde fonctions surjectives (F1, F2) est l'une des 20 fonctions suivantes : la fonction identité, une fonction fournissant le poids de Hamming de la valeur à laquelle la fonction est appliquée, et une fonction fournissant une distance de Hamming entre une valeur et 25 une valeur précédente auxquelles la fonction est appliquée .\n<CLM>\1\tProcédé selon l'une des revendications 1 à 5, comprenant une étape de rejet du circuit (CT) ou du programme exécuté par le circuit si l'étape d'analyse permet de déterminer la partie de donnée secrète 30 recherchée.\n<CLM>\1\tProcédé selon l'une des revendications 1 à 6, dans lequel les étapes de calcul d'un résultat d'opération pour chacune des valeurs possibles (g) d'une partie de la donnée secrète (SD), de calcul des sommes 35 de nombres d'occurrences (CH), et d'analyse des sommes de nombres 3048086 31 d'occurrences, sont à nouveau exécutées pour une partie précédemment déterminée de la donnée secrète et une autre partie à découvrir de la donnée secrète. 5\n<CLM>\1\tProcédé selon l'une des revendications 1 à 7, dans lequel les valeurs sélectionnées (ECi) dans chaque ensemble de valeurs (Ci) comprennent : des valeurs consécutives de l'ensemble de valeurs, et/ou des valeurs non consécutives de l'ensemble de valeurs, et/ou 10 des valeurs d'extrémums locaux de l'ensemble de valeurs, et/ou toutes les valeurs de l'ensemble de valeurs.\n<CLM>\1\tProcédé selon l'une des revendications 1 à 8, dans lequel les opérations (OPRK) de l'ensemble d'opérations comprennent l'application 15 d'une unique opération (OPR) à la donnée secrète (SD) et à une donnée d'entrée d'un ensemble données d'entrées (M[i]), l'unique opération comprenant au moins une des opérations suivantes : une opération de chiffrement ou de déchiffrement, symétrique ou asymétrique, 20 une opération de signature, une multiplication, modulaire ou non, par la donnée secrète, une opération logique OU Exclusif avec la donnée secrète, une opération d'exponentiation modulaire, la donnée secrète étant utilisée comme exposant, 25 une opération de réduction modulaire, la donnée secrète étant utilisée comme module, une opération de substitution par une valeur sélectionnée dans une table de substitution à l'aide de la donnée d'entrée, et une opération combinant une opération logique OU Exclusif avec la 30 donnée secrète et une opération de substitution remplaçant le résultat de l'opération logique par une valeur sélectionnée dans une table de substitution à l'aide du résultat de l'opération logique. 3048086 32\n<CLM>\1\tProcédé selon l'une des revendications 1 à 9, dans lequel l'analyse des sommes de nombres d'occurrences comprend des étapes consistant à : pour chaque somme de nombres d'occurrences (CH), calculer une 5 somme normalisée (CH/CPT) en divisant la somme de nombres d'occurrences par un nombre de sommes de nombres d'occurrences cumulées (CPT) correspondant, pour chaque valeur possible (g) de la partie de donnée secrète et chaque valeur possible de résultat partiel transformé (VL), calculer une 10 somme d'écarts élevés au carré (IT), entre chaque somme normalisée correspondant à la valeur possible de la partie de donnée secrète et la valeur possible du résultat partiel transformé, et une valeur moyenne des sommes de nombres d'occurrences (MHT), divisée par un nombre d'opérations (ix), pour chaque valeur possible de la partie de donnée secrète, calculer 15 un cumul de sommes d'écarts (TT) correspondant à toutes les valeurs possibles des résultats partiels transformés, et comparer entre eux les cumuls de sommes d'écarts, et détecter si un cumul de sommes d'écarts pour une valeur possible de la partie de donnée secrète est plus grand que les autres cumuls de sommes d'écarts. 20\n<CLM>\1\tProcédé selon l'une des revendications 1 à 9, dans lequel l'analyse des cumuls de nombres d'occurrences comprend des étapes consistant à : pour chaque valeur possible (g) de la partie de donnée secrète et 25 chaque valeur possible (VL) de résultat partiel transformé, calculer une somme des cumuls de nombres d'occurrences (SXY), pour chaque cumul de nombres d'occurrences (CH), calculer un cumul normalisé (VXY) en divisant le cumul de nombres d'occurrences par la somme des cumuls de nombres d'occurrences correspondante, et calculer le 30 produit du cumul normalisé par le logarithme du cumul normalisé, pour chaque valeur possible de la partie de donnée secrète et chaque valeur possible de résultat partiel transformé, calculer une somme (PXY) des produits correspondant à la valeur possible de la partie de donnée secrète et la valeur possible de résultat partiel transformé, 3048086 33 pour chaque valeur possible de la partie de donnée secrète, calculer un cumul (TT) de toutes les sommes de produits correspondant aux valeurs possibles des résultats partiels transformés, chaque somme de produits étant multipliée par un nombre (CPT) de sommes de nombres d'occurrences 5 correspondant, et comparer entre eux les cumuls de sommes de produits, et détecter si un cumul de sommes de produits pour une valeur possible de la partie de donnée secrète est plus grand que les autres cumuls de sommes de produits. 10\n<CLM>\1\tSystème de test d'un circuit, le système comprenant : un dispositif de mesure (MD) configuré pour acquérir une pluralité d'ensembles de valeurs (Ci), chaque ensemble comprenant des valeurs d'une grandeur physique ou de signaux logiques, liés à l'activité d'un circuit à 15 tester (CT) durant l'exécution par le circuit d'une opération (OPRK) d'un ensemble d'opérations cryptographiques distinctes, appliquées à une même donnée secrète (SD), et une unité de traitement (PC) configurée pour mettre en oeuvre le procédé selon l'une des revendications 1 à\n<CLM>\1\t20\n<CLM>\1\tSystème selon la revendication 12, comprenant une sonde de mesure (PB) reliée au dispositif de mesure (MD) pour acquérir des courbes (Ci) relatives à l'activité du circuit (CT). 25\n<CLM>\1\tSystème selon la revendication 12 ou 13, comprenant un émulateur exécutant une application à tester.\n<CLM>\1\tProduit programme d'ordinateur directement chargeable dans une mémoire interne d'un ordinateur et comprenant des portions de code qui 30 lorsqu'elles sont exécutées par un ordinateur configurent l'ordinateur pour mettre en oeuvre les étapes du procédé selon l'une des revendications 1 à 11.