Brevet FR3156931A1 — publié le 20250620

Mise en oeuvre d'un test La présente description concerne un procédé de mise en oeuvre d’un test de comparaison d’un premier mot de donnée (Tested_Word) à au moins un deuxième mot de donnée, comprenant les étapes successives suivantes : - diviser ledit premier mot de donnée (Tested_Word) en au moins une partie (T_Wordj) ; - comparer chacune desdites au moins une partie (T_Wordj) dudit premier mot de donnée (Tested_Word) avec au moins une partie correspondante dudit au moins un deuxième mot de donnée, en utilisant, pour chaque comparaison, une première table de correspondance (LUTj) ; - comparer les résultats de chacune desdites premières tables de correspondance en utilisant une deuxième table de correspondance (F_LUT). Figure pour l'abrégé : Fig. 3 Mise en oeuvre d'un test La présente description concerne de façon générale les circuits et dispositifs électroniques et la mise en oeuvre de fonctions logiques par ces circuits et dispositifs électroniques. La présente description se rapporte plus particulièrement à la mise en oeuvre de tests logiques. Pour mettre en oeuvre des programmes et des logiciels, il est commun pour des circuits et dispositifs électroniques d’utiliser des fonctions de logique combinatoire. Plus particulièrement, des tests logiques sont très souvent utilisés. Il serait souhaitable de pouvoir améliorer, au moins en partie, certains aspects des mises en oeuvre de tests logiques par des dispositifs électroniques. Il existe un besoin pour une mise en oeuvre de tests logiques protégée contre les fuites de données. Il existe un besoin pour une mise en oeuvre de tests logiques protégée contre les attaques par canaux cachés. Il existe un besoin pour une mise en oeuvre de tests logiques protégée contre les attaques par injection de fautes. Il existe un besoin des circuits et dispositifs électroniques adaptés à de tels mises en oeuvre. Un mode de réalisation pallie tout ou partie des inconvénients des mises en oeuvre de test connues. Un mode de réalisation pallie tout ou partie des inconvénients des circuits et dispositifs connus adaptés à la mise en oeuvre de tests logiques. Un mode de réalisation prévoit une mise en oeuvre de tests logiques utilisant au moins deux tables de correspondance en cascade. Un mode de réalisation prévoit un procédé de mise en oeuvre d’un test de comparaison d’un premier mot de donnée à au moins un deuxième mot de donnée, comprenant les étapes successives suivantes : - diviser ledit premier mot de donnée en au moins une partie ; - comparer chacune desdites au moins une partie dudit premier mot de donnée avec au moins une partie correspondante dudit au moins un deuxième mot de donnée, en utilisant, pour chaque comparaison, une première table de correspondance ; - comparer les résultats de chacune desdites premières tables de correspondance en utilisant une deuxième table de correspondance. Un autre mode de réalisation prévoit un dispositif électronique adapté à mettre en oeuvre un test de comparaison d’un premier mot de donnée à au moins un deuxième mot de donnée, comprenant les étapes successives suivantes : - diviser ledit premier mot de donnée en au moins une partie ; - comparer chacune desdites au moins une partie dudit premier mot de donnée avec au moins une partie correspondante dudit au moins un deuxième mot de donnée, en utilisant, pour chaque comparaison, une première table de correspondance ; - comparer les résultats de chacune desdites premières tables de correspondance en utilisant une deuxième table de correspondance. Selon un mode de réalisation, pendant l'étape de division, ledit premier mot de donnée est divisé en au moins une partie. Selon un mode de réalisation, chaque résultat desdites premières tables de correspondance est un troisième mot binaire. Selon un mode de réalisation, ledit troisième mot binaire comprend un bit. Selon un mode de réalisation, ledit troisième mot binaire comprend au moins deux bits. Selon un mode de réalisation, chacune desdites au moins deux parties dudit premier mot binaire comprend au moins deux bits, et chacune desdites au moins une partie correspondante dudit au moins un deuxième mot binaire comprend au moins deux bits. Selon un mode de réalisation, ledit test est choisi parmi le groupe comprenant : un test logique d’égalité, un test logique de type « supérieur », un test logique de type « supérieur ou égal », un test logique de type « inférieur », un test logique de type « inférieur ou égal », un test logique de type « est compris entre », un test de divisibilité d'un entier par un autre entier, un test logique concernant le poids de Hamming d'une donnée binaire, et toute combinaison d'un ou plusieurs de ces tests précédents entre eux. Selon un mode de réalisation, les résultats de chacune desdites premières tables de correspondance sont concaténés en un quatrième mot de donnée pour être comparés en utilisant ladite deuxième table de correspondance. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la FIG. 1 représente un mode de réalisation d’un dispositif électronique adapté à exécuter un mode de mise en oeuvre d’un procédé de mise en oeuvre de tests logiques ; la FIG. 2 représente, très schématiquement et sous forme de blocs, une mise en oeuvre d’un test ; la FIG. 3 représente, très schématiquement et sous forme de blocs, un premier exemple général d’un mode de mise en oeuvre d’un procédé de mise en oeuvre de tests logiques ; la FIG. 4 représente, très schématiquement et sous forme de blocs, un deuxième exemple pratique d’un mode de mise en oeuvre d’un procédé de mise en oeuvre de tests logiques ; la FIG. 5 représente, très schématiquement et sous forme de blocs, un troisième exemple pratique d’un mode de mise en oeuvre d’un procédé de mise en oeuvre de tests logiques ; la FIG. 6 représente, très schématiquement et sous forme de blocs, un quatrième exemple pratique d’un mode de mise en oeuvre d’un procédé de mise en oeuvre de tests logiques ; et la FIG. 7 représente, très schématiquement et sous forme de blocs, un cinquième exemple pratique d’un mode de mise en oeuvre d’un procédé de mise en oeuvre de tests logiques. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Les modes de réalisation décrits ci-après concernent la mise en oeuvre d’un test, comme un test logique ou un test arithmétique, plus sécurisée, c'est-à-dire une mise en oeuvre d’un test dans lequel les données utilisées sont moins susceptibles d’être récupérées par une personne extérieure, ou une mise en oeuvre d’un test qui est moins vulnérable face aux attaques par canal cachés, et, en particulier, face aux attaques par injection de fautes. Pour cela, les modes de réalisation décrits ci-après se basent sur l’utilisation d’au moins deux « étages » de tables de correspondance (LUT, Look Up Table). Un exemple général de mise en oeuvre est décrit en relation avec la FIG. 3 , des exemples particuliers sont décrits en relation avec les figures 4 à 7. De plus, ces modes de réalisation peuvent être appliquées à tous dispositifs électroniques mettant en oeuvre des tests logiques. La FIG. 1 est un schéma bloc représentant, très schématiquement, une architecture d'un exemple d'un dispositif électronique 100 adapté à mettre en oeuvre un ou plusieurs tests logiques. Le dispositif électronique 100 comprend un processeur 101 (CPU) adapté à mettre en oeuvre différents traitements de données stockées dans des mémoires et/ou fournies par d'autres circuits du dispositif 100. Selon un mode de réalisation, le processeur 101 est a adapté à mettre en oeuvre un ou plusieurs tests logiques à partir de données qu’il reçoit. Le dispositif électronique 100 comprend, en outre, différents types de mémoires 102 (MEM), parmi lesquelles, par exemple, une mémoire non volatile, une mémoire volatile, et/ou une mémoire morte. Chaque mémoire 102 peut être adaptée à stocker différents types de données. Dans la suite de la description, on appelle mot de donnée, une donnée comprenant plusieurs bits. Une partie d’un mot de donnée correspond à un ou plusieurs bits de ce mot de donnée. Le dispositif électronique 100 comprend, en outre, par exemple, un élément sécurisé 103 (SE) adapté à traiter des données sensibles et/ou secrètes. L'élément sécurisé 103 peut comprendre son ou ses propres processeurs, son ou ses propres mémoires, etc. Selon un mode de réalisation, l'élément sécurisé 101 peut être adapté à mettre en oeuvre des tests logiques. Le dispositif électronique 100 peut comprendre, en outre, des circuits d'interface 104 (IN/OUT) adaptés à envoyer et/ou à recevoir des données provenant de l'extérieur du dispositif 100. Les circuits d'interface 104 peuvent être, en outre adaptés à mettre en oeuvre un affichage de données, par exemple, un écran d'affichage. Le dispositif électronique 100 comprend, en outre, différents circuits 105 (FCT1) et 106 (FCT2) adaptés à réaliser différentes fonctions. A titre d'exemple, les circuits 105 et 106 peuvent comprendre des circuits de mesures, des circuits de conversion de données, etc. Selon un mode de réalisation, les circuits 105 et 106 peuvent comprendre un circuit adapté à mettre en oeuvre un procédé de transposition d'une matrice. Le dispositif électronique 100 comprend, en outre, un ou plusieurs bus de données 107 adaptés à transférer des données entre ses différents composants. Selon un exemple particulier, le dispositif électronique 100 est adapté à mettre en oeuvre des programmes informatiques, et en particulier un programme informatique permettant de mettre en oeuvre un ou plusieurs tests logiques. La FIG. 2 représente, très schématiquement et sous forme de bloc, la mise en oeuvre d’un test 200 (TEST). Le test 200 reçoit, en entrée, un mot de donnée Tested_Word à tester et un ou plusieurs mots de référence Ref_Words de comparaison. Selon un mode de réalisation, le test 200 permet, à partir du mot de donnée à tester Tested_Word, de réaliser une fonction binaire dont le résultat peut être une donnée binaire 201 (True) représentant l’information VRAI ou une donnée binaire 202 (False) représentant l’information FAUX. On appelle ici une donnée binaire, une donnée composée d'un ou plusieurs bits de données. Selon un mode de réalisation, le test 200 permet de comparer le mot de donnée à tester Tested_Word avec un ou plusieurs mots de donnée de référence choisis parmi les mots de référence Ref_Words. Selon un mode de réalisation, le test 200 peut être un test logique ou un test arithmétique. Selon un exemple, le test 200 peut vérifier l’égalité du mot de donnée à tester Tested_Word avec un ou plusieurs mots de donnée de référence choisis parmi les mots de référence Ref_Words. Selon un autre exemple, le test 200 peut comparer une valeur numérique représentée par le mot de donnée à tester Tested_Word avec un ou plusieurs mots de donnée de référence choisis parmi les mots de référence Ref_Words. Autrement dit, selon un mode de réalisation, le test 200 met en oeuvre une fonction binaire choisie parmi le groupe comprenant : un test logique d’égalité, un test logique de type « supérieur », un test logique de type « supérieur ou égal », un test logique de type « inférieur », un test logique de type « inférieur ou égal », un test logique de type « est compris entre », un test de divisibilité d'un entier par un autre entier, un test logique concernant le poids de Hamming d'une donnée binaire, et toute combinaison d'un ou plusieurs de ces tests précédents entre eux. De manière générale la liste des mots de référence Ref_Words peut représenter n’importe quelle propriété à vérifier pour le mot Tested_Word y compris des propriété ad-hoc qui ne sont ni des propriétés arithmétiques ni des propriétés logiques par exemple un test de type « inférieur ou égal et différent de N et divisible par K ». Selon un mode de réalisation, le mot de donnée à tester Tested_Word est un mot binaire comprenant K bits, K étant un entier positif. Selon un mode de réalisation préféré, K est un entier supérieur ou égal à deux. Les bits du mot de donnée Tested_Word sont référencés B1 à BK. Selon un mode de réalisation, le test 200 est adapté à recevoir N mots de donnée de référence Ref_Words, N étant un entier supérieur ou égal à un. Chaque mot de référence individuel est référencé Ref_Wordn, n étant un entier variant de 1 à N. Chaque mot de donnée de référence Ref_Word1, …, Ref_WordN est un mot binaire comprenant K bits comme le mot de donnée à tester Tested_Word. Les bits de chaque mot de donnée de référence Ref_Wordn sont référencés Rbn1, à RbnK. La FIG. 3 illustre un procédé 300 de mise en oeuvre du test 200 décrit en relation avec la FIG. 2 , selon un mode de réalisation. Pour être mis en oeuvre, le procédé 300 utilise des tables de correspondance. Plus particulièrement, le procédé 300 utilise J tables de correspondance primaire LUTj, J étant un entier positif, de préférence un entier supérieur ou égal à deux, et j étant un entier compris entre 1 et J, et au moins une table de correspondance secondaire F_LUT. La table de correspondance secondaire F_LUT peut aussi être appelée table de correspondance finale. Des exemples pratiques de mise en oeuvre du procédé sont décrites en relation avec les figures 4 à 7. Pour être mis en oeuvre, le procédé 300 commence par une étape de division du mot de données à tester Tested_Word en J parties T_Word1 à T_WordJ. Chaque partie T_Wordj est une donnée binaire comprenant au moins un bit, de préférence au moins deux bits. On parle aussi d’une partie d’ordre j pour parler de la partie T_Wordj. Il est à noter que les J parties peuvent avoir des nombres de bits différents. Dans l’exemple représenté en FIG. 3 , chaque partie T_Wordj est une donnée binaire comprenant deux bits. Selon un mode de réalisation, lorsque l'entier J est égal à un, l'étape de division est une étape de division en une seule partie T_Word1 du mot de données à tester Tested_Word. Cette partie T_Word1 correspond au mot de données à tester complet Tested_Word. Ensuite, une première étape de comparaison de chaque partie T_Wordj est réalisée en mettant en oeuvre la table de correspondance primaire LUTj. Chaque table de correspondance LUTj a été générée pour fournir le résultat de la comparaison d’une donnée binaire du type d’une partie T_Wordj avec les parties correspondantes des mots de donnée de référence Ref_Words. Plus particulièrement, Pour obtenir la table de correspondance LUTj les mots de donnée de référence Ref_Words sont divisés en J parties de la même façon que le mot de donnée à tester Tested_Word, c'est-à-dire en J parties de même nombre de bits que les J parties du mot de donnée à tester Tested_Word. Chaque table de correspondance primaire LUTj comprend 2^NBits valeurs, NBits étant un entier représentant le nombre de bits de la partie T_WordJ à comparer, illustrant tous les résultats de comparaison possibles. « ^ » représente ici l’opération mathématique puissance. Dans le cas illustré en FIG. 3 , comme toutes les parties T_Wordj comprennent deux bits, chaque table de correspondance LUTj comprend quatre valeurs réparties en deux lignes et deux colonnes. Les valeurs des tables de correspondances LUTj sont référencées Aj[p ; q], p étant un entier représentant l’indice de la colonne de la valeur et q étant un entier représentant l’indice de la ligne de la valeur. Chaque valeur Aj[p ; q] indique si la comparaison est un succès ou un échec. Selon un exemple, la valeur Aj[p ; q] est représentée par une donnée binaire comprenant au moins un bit. Selon un mode de réalisation, lorsque le test 200 compare le mot de donnée à tester Tested_Word à plusieurs mots de donnée de référence Ref_Words, la valeur Aj[p ; q] peut prendre des valeurs distinctes pour différencier la comparaison d’une partie T_Wordj avec les parties correspondantes de différents mots de référence Ref_Words. Ce concept est décrit plus en détail avec l’exemple pratique de la FIG. 7 . A la fin de la première étape de comparaison, chaque table de correspondance primaire LUTj fournit en sortie la valeur Aj[p ; q] correspondant à la partie T_Wordj du mot de donnée à tester Tested_Word. Ensuite, une deuxième étape de comparaison est mise en oeuvre en utilisant la table de correspondance finale F_LUT qui reçoit les valeurs A1[p ; q] à AJ[p ; q] fournies par les tables de correspondance primaire LUT1 à LUTJ. Selon un exemple, les données binaires formant les valeurs A1[p ; q] à AJ[p ; q] sont concaténées en un mot de donnée T_WordF. La taille de la table de correspondance finale F_LUT dépend du nombre de bits total du mot de donnée T_WordF. Des exemples pratiques de la table de correspondance finale F_LUT sont détaillés en relation avec les figures 4 à 7. La table de correspondance finale F_LUT stocke des valeurs F[pf ; qf], pf étant un entier représentant l’indice de la colonne de la valeur et qf étant un entier représentant l’indice de la ligne de la valeur. Les valeurs F[pf ; qf] représente le résultat de la comparaison du mot de donnée T_WordF avec les mots de référence Ref_Words. Selon un exemple, lorsque le test 200 compare le mot de donnée à tester Tested_Word à plusieurs mots de donnée de référence Ref_Words, la valeur Fj[p ; q] peut prendre des valeurs différentes pour distinguer, si nécessaire, les différents mots de référence Ref_Words. En résumé, le procédé 300 de mise en oeuvre du test 200 de comparaison du mot de donnée à tester Tested_Word à un ou plusieurs mots de donnée de références Ref_Words, comprend les étapes successives suivantes : - diviser le mot de donnée à tester Tested_Word en les J parties T_Word1 à T_WordJ ; - comparer chacune desdites parties T_Word1 à T_WordJ du mot de donnée à tester Tested_Word à une partie correspondante des mots de donnée de références Ref_Words, en utilisant, pour chaque comparaison, une des tables de correspondance LUT1 à LUTJ ; - comparer les résultats de chacune des tables de correspondance LUT1 à LUTJ en utilisant la table de correspondance finale F_LUT. Un avantage du procédé 300 est qu’il permet de mettre en oeuvre le test 200 en le rendant plus résistant aux attaques par canaux cachés, et en particulier aux attaques par injection de fautes. En effet, pendant une telle attaque, il est possible de modifier localement un mot de donnée. Si le mot de donnée visé est le ou l’un des mots de référence Ref_Words, le test peut être mis en oeuvre, puisque les tables de correspondance primaire LUT1 à LUTJ ont été générées au préalable. Si le mot de donnée visé est une valeur d’une des tables de correspondance primaire ou secondaire, il est plus difficile de tomber sur un mot de donnée modifiant effectivement le fonctionnement du test 200. La FIG. 4 illustre un exemple pratique 400 du procédé 300 de mise en oeuvre du test 200 décrit en relation avec la FIG. 2 . Dans l’exemple de la FIG. 4 , le test réalisé est la vérification de l’égalité entre le mot de donnée à tester Tested_Word401 et un mot de donnée de référence égal à 1011. Le mot de donnée à tester Tested_Word401 comprend donc quatre bits B1, B2, B3 et B4. Dans l’exemple de la FIG. 4 , il a été décidé de diviser le mot de donnée à tester Tested_Word401 en une partie T_Word4011 comprenant les bits B1 et B2, et une partie T_Word4012 comprenant les bits B3 et B4. Pour mettre en oeuvre la première étape de comparaison, le procédé 400 utilise deux tables de correspondance LUT401 et LUT402. La table de correspondance LUT401 reçoit, en entrée, la partie T_Word4011 et la compare avec les bits 10. Il a été arbitrairement choisi que lorsque la partie T_Word4011 est égale à 10 la donnée de sortie de la table de correspondance LUT401 soit la valeur binaire 01, et, que lorsque la partie T_Word4011 est différente de 10, la donnée de sortie de la table de correspondance LUT401 soit la valeur binaire 10. La table de correspondance LUT402 reçoit, en entrée, la partie T_Word4012 et la compare avec les bits 11. Il a été arbitrairement choisi que lorsque la partie T_Word4012 est égale à 11 la donnée de sortie de la table de correspondance LUT402 soit la valeur binaire 10, et que lorsque la partie T_Word4012 est différente de 11 la donnée de sortie de la table de correspondance LUT402 soit la valeur binaire 00. Comme décrit précédemment, les tables de correspondance LUT401 et LUT402 fournissent en sortie les valeurs correspondant aux comparaisons des parties T_Word4011 et T_Word4012 avec les données 10 et 11 à une table de correspondance finale LUT403. Selon un exemple, les valeurs de sortie des tables de correspondance LUT401 et LUT402 sont concaténées en un mot de donnée T_WordF401. Dans l’exemple illustré en FIG. 4 , le test 200 est vérifié uniquement si le mot de donnée T_WordF401 est égal à 0110. Ainsi, la table de correspondance finale LUT403 compare le mot de donnée T_WordF401 avec les bits 0110. Il a été arbitrairement choisi que lorsque le mot de donnée T_WordF401 est égal à 0110 la donnée de sortie de la table de correspondance LUT403 soit la valeur binaire 1111, et que lorsque le mot de donnée T_WordF401 est égal à 0100, 1000 ou 1010 la donnée de sortie de la table de correspondance LUT401 soit la valeur binaire 1010 qui indique que le test 200 n’est pas vérifié. Il n’est pas possible que le mot de donnée T_WordF401 soient égal aux autres valeurs proposées par la table de correspondance LUT403, il a donc été arbitrairement choisi que lorsque le mot de donnée T_WordF401 est égal à l’une de ces valeurs la donnée de sortie de la table de correspondance LUT403 soit la valeur binaire 0000. La valeur binaire 0000 indique donc que le test n’a pas été exécuté correctement, et peut permettre par exemple la détection d’une attaque. La FIG. 5 illustre un exemple pratique 500 du procédé 300 de mise en oeuvre du test 200 décrit en relation avec la FIG. 2 . La FIG. 5 illustre, en particulier, le cas de la division du mot de donnée à tester en des parties de taille différente. Dans l’exemple de la FIG. 5 , le test réalisé est la vérification de l’égalité entre le mot de donnée à tester Tested_Word501 et un mot de donnée de référence égal à 10110. Le mot de donnée à tester Tested_Word501 comprend donc cinq bits B1, B2, B3, B4 et B5. Dans l’exemple de la FIG. 5 , il a été décidé de diviser le mot de donnée à tester Tested_Word501 en une partie T_Word5011 comprenant les bits B1 et B2, et une partie T_Word5012 comprenant les bits B3, B4 et B5. Pour mettre en oeuvre la première étape de comparaison, le procédé 500 utilise deux tables de correspondance LUT501 et LUT502. La table de correspondance LUT501 reçoit, en entrée, la partie T_Word5011 et la compare avec les bits 10. Il a été arbitrairement choisi que lorsque la partie T_Word5011 est égale à 10, la donnée de sortie de la table de correspondance LUT501 soit la valeur binaire 01, et que lorsque la partie T_Word5011 est différente de 10 la donnée de sortie de la table de correspondance LUT501 soit la valeur binaire 10. La table de correspondance LUT502 reçoit, en entrée, la partie T_Word5012 et la compare avec les bits 110. Il a été arbitrairement choisi que lorsque la partie T_Word5012 est égale à 110 la donnée de sortie de la table de correspondance LUT502 soit la valeur binaire 10, et que lorsque la partie T_Word5012 est différente de 110 la donnée de sortie de la table de correspondance LUT502 soit la valeur binaire 00. Comme décrit précédemment, les tables de correspondance LUT501 et LUT502 fournissent en sortie les valeurs correspondant aux comparaisons des parties T_Word5011 et T_Word5012 avec les données 10 et 110 à une table de correspondance finale LUT503. Selon un exemple, les valeurs de sortie des tables de correspondance LUT501 et LUT502 sont concaténées en un mot de donnée T_WordF501. Dans l’exemple illustré en FIG. 5 , le test 200 est vérifié uniquement si le mot de donnée T_WordF501 est égal à 0110. Ainsi, la table de correspondance finale LUT503 compare le mot de donnée T_WordF501 avec les bits 0110. Il a été arbitrairement choisi que lorsque le mot de donnée T_WordF501 est égal à 0110 la donnée de sortie de la table de correspondance LUT503 soit la valeur binaire 1111, et que lorsque le mot de donnée T_WordF501 est égal à 0100, 1000 ou 1010 la donnée de sortie de la table de correspondance LUT501 soit la valeur binaire 1010 qui indique que le test 200 n’est pas vérifié. De même que précédemment, il n’est pas possible que le mot de donnée T_WordF501 soient égal aux autres valeurs proposées par la table de correspondance LUT503, il a donc été arbitrairement choisi que lorsque le mot de donnée T_WordF501 est égal à l’une de ces valeurs la donnée de sortie de la table de correspondance LUT503 soit la valeur binaire 0000. La valeur binaire 0000 indique donc que le test n’a pas été exécuté correctement, et peut permettre par exemple la détection d’une attaque. La FIG. 6 illustre un exemple pratique 600 du procédé 300 de mise en oeuvre du test 200 décrit en relation avec la FIG. 2 . La FIG. 5 illustre, en particulier, le cas de la division du mot de donnée à tester en plus de deux parties. Dans l’exemple de la FIG. 6 , le test réalisé est la vérification de l’égalité entre le mot de donnée à tester Tested_Word601 et un mot de donnée de référence égal à 101101. Le mot de donnée à tester Tested_Word601 comprend donc six bits B1, B2, B3, B4, B5 et B6. Dans l’exemple de la FIG. 6 , il a été décidé de diviser le mot de donnée à tester Tested_Word601 en une partie T_Word6011 comprenant les bits B1 et B2, en une partie T_Word6012 comprenant les bits B3 et B4, et en une partie T_Word6013 comprenant les bits B5 et B6. Pour mettre en oeuvre la première étape de comparaison, le procédé 600 utilise trois tables de correspondance LUT601, LUT602 et LUT603. La table de correspondance LUT601 reçoit, en entrée, la partie T_Word6011 et la compare avec les bits 10. Il a été arbitrairement choisi que lorsque la partie T_Word6011 est égale à 10, la donnée de sortie de la table de correspondance LUT601 soit la valeur binaire 0, et que lorsque la partie T_Word6011 est différente de 10 la donnée de sortie de la table de correspondance LUT601 soit la valeur binaire 1. La table de correspondance LUT602 reçoit, en entrée, la partie T_Word6012 et la compare avec les bits 11. Il a été arbitrairement choisi que lorsque la partie T_Word6012 est égale à 11 la donnée de sortie de la table de correspondance LUT602 soit la valeur binaire 1, et que lorsque la partie T_Word6012 est différente de 11 la donnée de sortie de la table de correspondance LUT602 soit la valeur binaire 0. La table de correspondance LUT603 reçoit, en entrée, la partie T_Word6013 et la compare avec les bits 01. Il a été arbitrairement choisi que lorsque la partie T_Word6013 est égale à 01 la donnée de sortie de la table de correspondance LUT603 soit la valeur binaire 1, et que lorsque la partie T_Word6013 est différente de 01 la donnée de sortie de la table de correspondance LUT603 soit la valeur binaire 0. Comme décrit précédemment, les tables de correspondance LUT601, LUT602 et LUT603 fournissent en sortie les valeurs correspondant aux comparaisons des parties T_Word6011, T_Word6012 et T_Word6013 avec les données 10, 11 et 01 à une table de correspondance finale LUT604. Selon un exemple, les valeurs de sortie des tables de correspondance LUT601, LUT602 et LUT603 sont concaténées en un mot de donnée T_WordF601. Dans l’exemple illustré en FIG. 6 , le test 200 est vérifié uniquement si le mot de donnée T_WordF601 est égal à 011. Ainsi, la table de correspondance finale LUT604 compare le mot de donnée T_WordF601 avec les bits 011. Il a été arbitrairement choisi que lorsque le mot de donnée T_WordF601 est égal à 011 la donnée de sortie de la table de correspondance LUT604 soit la valeur binaire 11, et que lorsque le mot de donnée T_WordF601 est différente de 011, la donnée de sortie de la table de correspondance LUT601 soit la valeur binaire 10 qui indique que le test 200 n’est pas vérifié. La FIG. 7 illustre un exemple pratique 700 du procédé 300 de mise en oeuvre du test 200 décrit en relation avec la FIG. 2 . La FIG. 5 illustre, en particulier, le cas de la comparaison du mot de donnée à plusieurs mots de donnée de référence. Dans l’exemple de la FIG. 7 , le test réalisé est la vérification de l’égalité entre le mot de donnée à tester Tested_Word701 et un mot de donnée de référence égal à 101101 ou un mot de donnée de référence égal à 100100. Le mot de donnée à tester Tested_Word701 comprend donc six bits B1, B2, B3, B4, B5 et B6. Dans l’exemple de la FIG. 7 , il a été décidé de diviser le mot de donnée à tester Tested_Word701 en une partie T_Word7011 comprenant les bits B1 et B2, en une partie T_Word7012 comprenant les bits B3 et B4, et en une partie T_Word7013 comprenant les bits B5 et B6. Pour mettre en oeuvre la première étape de comparaison, le procédé 700 utilise trois tables de correspondance LUT701, LUT702 et LUT703. La table de correspondance LUT701 reçoit, en entrée, la partie T_Word7011 et la compare avec les bits 10. Il a été arbitrairement choisi que lorsque la partie T_Word7011 est égale à 10, la donnée de sortie de la table de correspondance LUT701 soit la valeur binaire 1, et que lorsque la partie T_Word7011 est différente de 10 la donnée de sortie de la table de correspondance LUT701 soit la valeur binaire 0. La table de correspondance LUT702 reçoit, en entrée, la partie T_Word7012 et la compare avec les bits 11 ou avec les bits 01. Il a été arbitrairement choisi que lorsque la partie T_Word7012 est égale à 11 la donnée de sortie de la table de correspondance LUT702 soit la valeur binaire 10, et que lorsque la partie T_Word7012 est égale à 01 la donnée de sortie de la table de correspondance LUT702 soit la valeur binaire 11. De plus, lorsque la partie T_Word7012 est différente de 11 et de 01 la donnée de sortie de la table de correspondance LUT702 soit la valeur binaire 00. La table de correspondance LUT703 reçoit, en entrée, la partie T_Word7013 et la compare avec les bits 01 ou avec les bits 00. Il a été arbitrairement choisi que lorsque la partie T_Word7013 est égale à 01 la donnée de sortie de la table de correspondance LUT703 soit la valeur binaire 11, et que lorsque la partie T_Word7013 est égale à 00 la donnée de sortie de la table de correspondance LUT703 soit la valeur binaire 10. De plus, lorsque la partie T_Word7013 est différente de 01 et de 00 la donnée de sortie de la table de correspondance LUT703 soit la valeur binaire 00. Comme décrit précédemment, les tables de correspondance LUT701, LUT702 et LUT703 fournissent en sortie les valeurs correspondant aux comparaisons des parties T_Word7011, T_Word7012 et T_Word7013 avec les données 10, 11 et 01 ou 10, 01 et 00 à une table de correspondance finale LUT704. Selon un exemple, les valeurs de sortie des tables de correspondance LUT701, LUT702 et LUT703 sont concaténées en un mot de donnée T_WordF701. Dans l’exemple illustré en FIG. 7 , le test 200 est vérifiée si le mot de donnée T_WordF701 est égal à 11110 ou à 11011. Ainsi, la table de correspondance finale LUT704 compare le mot de donnée T_WordF701 avec les bits 11110 et 11011. Il a été arbitrairement choisi que lorsque le mot de donnée T_WordF701 est égal à 11110 ou à 11011 la donnée de sortie de la table de correspondance LUT704 soit la valeur binaire 10, et que lorsque le mot de donnée T_WordF701 est différente de 11110 et 11011, la donnée de sortie de la table de correspondance LUT701 soit la valeur binaire 01 qui indique que le test 200 n’est pas vérifié. De même que précédemment, il n’est pas possible que le mot de donnée T_WordF701 soient égal aux autres valeurs proposées par la table de correspondance LUT704, il a donc été arbitrairement choisi que lorsque le mot de donnée T_WordF701 est égal à l’une de ces valeurs, la donnée de sortie de la table de correspondance LUT703 soit la valeur binaire 00. La valeur binaire 00 indique donc que le test n’a pas été exécuté correctement, et peut permettre par exemple la détection d’une attaque. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé de mise en oeuvre, par un dispositif électronique comprenant un processeur, d’un test (200) de comparaison d’un premier mot de donnée (Tested_Word) à au moins un deuxième mot de donnée (Ref_Words), comprenant les étapes successives suivantes : - diviser ledit premier mot de donnée (Tested_Word) en au moins deux parties (T_Wordj) ; - comparer chacune desdites au moins deux parties (T_Wordj) dudit premier mot de donnée (Tested_Word) avec au moins deux parties correspondantes dudit au moins un deuxième mot de donnée (Ref_Words), en utilisant, pour chaque comparaison, une première table de correspondance (LUTj) ; - comparer les résultats de chacune desdites premières tables de correspondance en utilisant une deuxième table de correspondance (F_LUT). Procédé selon la revendication 1, dans lequel chaque résultat desdites premières tables de correspondance (LUTj) est un troisième mot binaire (Aj[pq]). Procédé selon la revendication 2, dans lequel ledit troisième mot binaire (Aj[pq]) comprend un bit. Procédé selon la revendication 2, dans lequel ledit troisième mot binaire (Aj[pq]) comprend au moins deux bits. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel chacune desdites au moins deux parties (T_Wordj) dudit premier mot de donnée comprend au moins deux bits, et chacune desdites au moins deux parties correspondantes dudit au moins un deuxième mot de donnée comprend au moins deux bits. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel ledit test (200) est choisi parmi le groupe comprenant : un test logique d’égalité, un test logique de type « supérieur », un test logique de type « supérieur ou égal », un test logique de type « inférieur », un test logique de type « inférieur ou égal », un test logique de type « est compris entre », un test de divisibilité d'un entier par un autre entier, un test logique concernant le poids de Hamming d'une donnée binaire, et toute combinaison d'un ou plusieurs de ces tests précédents entre eux. Procédé selon l’une quelconque des revendications 1 à 6, dans lequel les résultats de chacune desdites premières tables de correspondance sont concaténés en un quatrième mot de donnée (T_WordF) pour être comparés en utilisant ladite deuxième table de correspondance (F_LUT). Dispositif électronique, comprenant un processeur, adapté à mettre en oeuvre un test (200) de comparaison d’un premier mot de donnée (Tested_Word) à au moins un deuxième mot de donnée (Ref_Words), comprenant les étapes successives suivantes : - diviser ledit premier mot de donnée (Tested_Word) en au moins deux parties (T_Wordj) ; - comparer chacune desdites au moins deux parties (T_Wordj) dudit premier mot de donnée (Tested_Word) avec au moins deux parties correspondantes dudit au moins un deuxième mot de donnée (Ref_Words), en utilisant, pour chaque comparaison, une première table de correspondance (LUTj) ; - comparer les résultats de chacune desdites premières tables de correspondance en utilisant une deuxième table de correspondance (F_LUT). Dispositif selon la revendication 8, dans lequel chaque résultat desdites premières tables de correspondance (LUTj) est un troisième mot binaire (Aj[pq]). Dispositif selon la revendication 9, dans lequel ledit troisième mot binaire (Aj[pq]) comprend un bit. Dispositif selon la revendication 9, dans lequel ledit troisième mot binaire (Aj[pq]) comprend au moins deux bits. Dispositif selon l'une quelconque des revendications 8 à 11, dans lequel chacune desdites au moins deux parties (T_Wordj) dudit premier mot de donnée comprend au moins deux bits, et chacune desdites au moins une partie correspondante dudit au moins un deuxième mot de donnée comprend au moins deux bits. Dispositif selon l'une quelconque des revendications 8 à 12, dans lequel ledit test (200) est choisi parmi le groupe comprenant : un test logique d’égalité, un test logique de type « supérieur », un test logique de type « supérieur ou égal », un test logique de type « inférieur », un test logique de type « inférieur ou égal », un test logique de type « est compris entre », un test de divisibilité d'un entier par un autre entier, un test logique concernant le poids de Hamming d'une donnée binaire, et toute combinaison d'un ou plusieurs de ces tests précédents entre eux. Dispositif selon l'une quelconque des revendications 8 à 13, dans lequel les résultats de chacune desdites premières tables de correspondance sont concaténés en un quatrième mot de donnée (T_WordF) pour être comparés en utilisant ladite deuxième table de correspondance (F_LUT).