Brevet FR3045881A1 (20170623)
REVENDICATIONS1. Procédé de validation de l'état d'une mémoire (M1) d'un simulateur (11) d'un composant cryptographique capable de sauvegarder des données générées par au moins une fonction cryptographique, caractérisé en ce qu'il comprend : ^ Une première étape réalisée dans le simulateur (11) comportant une première exécution d'au moins une première fonction cryptographique à partir d'une première commande d'instructions (CDE_1) par un premier logiciel (SW1) mis en oeuvre par un premier processeur et au moyen d'une première mémoire (Mi), ladite première exécution d'au moins une fonction cryptographique générant : o un premier état (M1STATUS) de la première mémoire (Mi) ; o un premier résultat (RESULT_1) de la première commande (CDE_1) ; ^ une seconde étape réalisée dans un banc de tests (10) comportant une seconde exécution d'au moins une seconde fonction cryptographique à partir d'une seconde commande d'instructions (CDE_2) par un second logiciel (SW2) mis en oeuvre par un second processeur et au moyen d'une seconde mémoire (M2), la première et la seconde fonctions réalisant des mêmes opérations modifiant l'état de leur mémoire respective (M1, M2), ladite seconde exécution d'au moins la seconde commande (CDE_2) générant : o un second état (M2sTA-rus) de la seconde mémoire (M2) ; o un second résultat (RESULT_2) de la seconde commande (CDE_2). ^ Une étape de validation comportant des comparaisons (COMP_A, COMP_B) : o du premier état (M1STATUS) et du second état (M2sTA-rus) ; o du premier résultat (RESULT_1) et du second résultat (RESULT_2). 3045881 -18\n<CLM>\1\tProcédé de validation de l'état d'une mémoire (M1) selon la revendication 1, caractérisé en ce qu'une fonction de conversion d'instructions (T-CASE) de la première commande d'instructions 5 (CDE_1) génère la seconde commande d'instructions (CDE_2) pour l'exécution d'une fonction cryptographique du premier logiciel (SW1).\n<CLM>\1\tProcédé de validation de l'état d'une mémoire (M1) selon la revendication 2, caractérisé en ce que la fonction de conversion io d'instructions (T-CASE) est réalisée par le second logiciel (SW2) au moyen du second processeur.\n<CLM>\1\tProcédé de validation de l'état d'une mémoire (M1) selon l'une quelconque des revendications 1 à 3, caractérisé en ce que 15 l'ensemble de fonctions cryptographiques réalisées par le premier ou le second logiciel (SW1, SW2) comprend au moins l'une des fonctions suivante : ^ Une fonction d'authentification ; ^ Une fonction de chiffrement ou de déchiffrement ; 20 ^ Une fonction de signature ou de vérification d'une signature ; ^ Une fonction de calcul d'empreintes; ^ Une fonction de stockage de données ; ^ Une fonction de calcul de code d'authentification de message. 25\n<CLM>\1\tProcédé de validation de l'état d'une mémoire (M1) selon l'une quelconque des revendications précédentes, caractérisé en ce que l'état d'une mémoire (M1 STATUS, M2STATUS) comprend, en outre, l'ensemble des données présentes dans la mémoire après l'exécution d'une commande d'instructions (CDE_1, CDE_2). 30\n<CLM>\1\tProcédé de validation de l'état d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que le résultat (RESULT_1, RESULT_2) d'une fonction cryptographique exécutée au moyen d'une commande (CDE_1, CDE_2) comprend la valeur 35 retournée par au moins un calcul d'une fonction cryptographique. 3045881 -19\n<CLM>\1\tProcédé de validation de l'état d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que le résultat (RESULT_1, RESULT_2) d'une commande comprend au moins l'une des données de la liste suivante : 5 ^ Un acquittement indiquant le succès ou l'échec de l'exécution d'une fonction cryptographique ; ^ Un acquittement d'une fonction d'authentification ; ^ Un résultat d'une fonction de chiffrement ou de déchiffrement ; ^ Une signature numérique ; 10 ^ Un résultat d'une vérification de signature numérique; ^ Une empreinte ; ^ Un résultat d'une vérification d'empreinte; ^ Un code d'authentification de message (MAC); ^ Un résultat d'une vérification de code d'authentification de 15 message (MAC).\n<CLM>\1\tProcédé de validation de l'état d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque fonction cryptographique du premier logiciel (SW1) et du second 20 logiciel (SW2) comprend des opérations visant à réaliser des calculs sur au moins une valeur comprise dans des instructions de commande d'entrée (CDE_1, CDE_2) et à sauvegarder cette valeur dans une mémoire (M1, M2) associée au logiciel (SW1, SW2). 25\n<CLM>\1\tProcédé de validation de l'état d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque fonction cryptographique du premier logiciel (SW1) comprend : ^ un premier ensemble d'opérations ayant une première influence sur l'état de la mémoire (M1), la première influence 30 étant liée à une modification de l'état de la mémoire ; ^ un second ensemble d'opérations ayant une seconde influence sur au moins une entrée et/ou une sortie d'une interface du premier logiciel (SW1), la seconde influence étant liée à la lecture ou la modification de données transitant sur lesdites 35 interfaces ; 3045881 - 20 - ^ un troisième ensemble d'opérations n'ayant pas d'influence ni sur la mémoire (M1) ni sur une entrée ou une sortie.\n<CLM>\1\tProcédé de validation de l'état d'une mémoire selon l'une quelconque 5 des revendications précédentes, caractérisé en ce que chaque fonction cryptographique du second logiciel (SW2) comprend le premier et le second ensemble d'opérations.\n<CLM>\1\tProcédé de validation de l'état d'une mémoire selon l'une quelconque 10 des revendications précédentes, caractérisé en ce que chaque fonction cryptographique du second logiciel (SW2) ne comprend pas le troisième ensemble d'opérations. 15 12.Système de tests d'un logiciel exécutant un ensemble de fonctions cryptographiques d'un logiciel destiné à être intégré dans un composant cryptographique, caractérisé en ce qu'il comprend : ^ un simulateur (11) comprenant un premier processeur pour l'exécution d'une première fonction cryptographique, une 20 première mémoire enregistrant un nouvel état après l'exécution de la première fonction cryptographique, des premières interfaces pour lire une commande d'exécution (CDE_1) de la première fonction cryptographique et pour retourner une valeur du résultat (RESULT_1) de l'exécution de ladite fonction ; 25 ^ un banc de test (10) comprenant un second processeur pour l'exécution d'une seconde fonction cryptographique comprenant des opérations réalisées par la première fonction cryptographique exécutée dans le simulateur, la première fonction cryptographique correspondant ainsi à la première 30 fonction cryptographique exécutée dans l'environnement du banc de test (10), une seconde mémoire (M2) enregistrant un nouvel état après l'exécution de la seconde fonction cryptographique, des secondes interfaces pour lire une commande d'exécution (CDE_2) et pour retourner une valeur 35 du résultat (RESULT_2) de l'exécution de la seconde fonction ; 3045881 - 21 - ^ un calculateur permettant de comparer les états des deux mémoires (M1sTA-rus, M2STATUS) à la fin de l'exécution de la première et de la seconde fonction et permettant de comparer les valeurs des résultats (RESULT_1, RESULT_2) de chaque 5 fonction.