Brevet FR3040515A1 (20170303)
REVENDICATIONS1. Procédé de vérification de la sensibilité d'un circuit électronique (6) exécutant un algorithme de type Rijndael à des attaques pas canaux cachés, dans lequel : chaque bloc (t) de données à chiffrer ou à déchiffrer 5 est masqué (31) par un premier masque (m) avant application (33) d'une opération non linéaire de substitution par bloc à partir d'une table de substitution (S'), puis est démasqué (34) par un deuxième masque (m') après substitution ; la table de substitution est recalculée, bloc par bloc, 10 avant application de l'opération non linéaire, l'ordre de traitement des blocs de la table de substitution étant soumis à une permutation aléatoire (y ; y) ; et une attaque par canaux cachés est effectuée sur les étapes de recalcul, bloc par bloc, de la table de substitution. 15\n<CLM>\1\tProcédé selon la revendication 1, dans lequel l'attaque est une analyse différentielle de la consommation au moins du deuxième ordre.\n<CLM>\1\tProcédé selon la revendication 1 ou 2, dans lequel le circuit est considéré sensible à l'attaque si cette dernière 20 permet de déterminer directement ou indirectement la valeur d'au moins un des masques.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 3, dans lequel le recalcul de la table de substitution fait intervenir le deuxième masque (m') ainsi que des troisième (ml) 25 et quatrième (m2) masques, la somme des troisième et quatrième masques étant égale au premier masque (m).\n<CLM>\1\tProcédé selon la revendication 4, dans lequel : successivement pour chaque bloc de la première table (S) 30 le rang (oe) du bloc courant est soumis (44) à ladite permutation (q) et le résultat est combiné au troisième masque (na) ; le bloc courant d'une deuxième table (S') est remplacé (24) par la combinaison (23') du deuxième masque (m') 3040515 B14603 - 15-R0-0524 25 avec le bloc de la première table identifié par le résultat de la permutation ; et successivement, pour chaque bloc de la deuxième table (s' ) le rang (m) du bloc courant est soumis (47) à ladite pe/ tutation (y) et le résultat est combiné au quatrième masque (m2) ; le bloc courant de la première table (S) est remplacé (48',\n<CLM>\1\tpar le bloc de la deuxième table identifié par le 10 résultat de la permutation.\n<CLM>\1\tProcédé selon la revendication 4 ou 5, comportant les étapes suivantes : successivement pour chaque bloc de la première table 15 dans une première étape (44), appliquer la permutation (y) au rang (m) du bloc courant, combiner le résultat au premier masque (m1) et stocker le résultat dans une première variable (z) ; dans une deuxième étape (23'), stocker dans une 20 deuxième variable (z') le résultat de la combinaison du deuxième masque .(m') au bloc de la première table ayant pour rang le résultat (y(m)) de la permutation appliquée au rang du bloc courant ; et stocker (24) le résultat de la deuxième étape dans 25 un bloc, identifié par le résultat de la première étape, d'une deuxième table (S') ; successivement pour chaque bloc de la deuxième table (S' ) : dans une troisième étape (47), appliquer la 30 permutation (y) au rang (w) du bloc courant, combiner le résultat au deuxième masque (m2) et stocker le résultat dans la première variable (z) ; dans une quatrième étape (48'), stocker dans la deuxième variable (z') le bloc de la deuxième table ayant pour (S) : 3040515 B14603 - 15-R0-0524 26 rang le résultat (cp(co)) de la permutation appliquée au rang courant ; et stocker (49) le résultat de la quatrième étape dans un bloc, identifié par le résultat de la troisième étape, de la 5 première table (S).\n<CLM>\1\tProcédé selon la revendication 4, dans lequel : les blocs de la première table (S) sont recopiés (43) dans une deuxième table (S') ; successivement, pour chaque bloc de la deuxième table (S') : le rang (m) du bloc courant est soumis (44) à ladite permutation (cp) et le résultat est combiné au troisième masque (m1) ; le bloc courant de la première table (S) est remplacé (46) par la combinaison (45) du deuxième masque (m') avec le bloc de la deuxième table identifié par le résultat de la permutation ; et successivement, pour chaque bloc de la première table (S) : le rang (m) du bloc courant est soumis (47) à ladite péLmutation (m) et le. résultat est combiné au quatrième masque (m2) ; le bloc courant de la deuxième table (Sr) est remplacé (48,\n<CLM>\1\tpar le bloc de la première table identifié par 25 le résultat de la permutation.\n<CLM>\1\tProcédé selon la revendication 4 ou 5, comportant les étapes suivantes : les blocs de la première table (S) sont recopiés (43) dans une deuxième table (S') ; 30 successivement pour chaque bloc de la deuxième table (S') : dans une première étape (44), appliquer la permutation (cp) au rang (m) du bloc courant, combiner le résultat au premier masque (m1) et stocker le résultat dans une première 35 variable (z) ; 3040515 B14603 - 15-R0-0524 27 dans une deuxième étape (45), stocker dans une deuxième variable (z') le résultat de la combinaison du deuxième masque (m') au bloc de la deuxième table ayant pour rang le résultat (9(w)) de la permutation appliquée au rang du bloc 5 courant ; et stocker (46) le résultat de la deuxième étape dans un bloc de la première table (S), identifié par le résultat de la première étape ; successivement pour chaque bloc de la première table 10 (S) : dans une troisième étape (47), appliquer la permutation (cp) au rang (ta) du bloc courant, combiner le résultat au deuxième masque (m2) et-stocker le résultat dans la première variable (z) ; 15 dans une quatrième étape (48), stocker dans la deuxième variable (z') le bloc de la première table ayant pour rang le résultat ((p(oe)) de la permutation appliquée au rang courant ; et stocker (24) le résultat de la quatrième étape dans 20 un bloc, identifié par le résultat de la troisième étape, de la deuxième table\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 3, dans lequel la permutation aléatoire (y) est commutative avec l'opération non linéaire de substitution.\n<CLM>\1\tProcédé selon la revendication 9, dans lequel : successivement, pour chaque bloc de la table de substitution : dans une première étape (51), le rang (oe) du bloc est soumis à ladite permutation (y) et est combiné au premier masque (m) ; dans une deuxième étape (52), le bloc (S[oe]) est soumis à la permutation4y) et le résultat est combiné au deuxième masque (m') ; et le bloc, identifié par le résultat de la première étape, 35 est substitué par le résultat de la deuxième étape. 3040515 B14603 - 15-R0-0524 28\n<CLM>\1\tProcédé selon la revendication 9 ou 10, comportant les étapes suivantes : successivement pour chaque bloc de la table de substitution (S) : 5 dans une première étape (51), appliquer la permutation (y) au rang (w) du bloc courant, combiner le résultat au premier masque (m) et stocker le résultat dans une première variable (z) ; dans une deuxième étape (52), appliquer la permutation (y) au bloc courant (S[w]), combiner le résultat au deuxième masque 10 (rn') et stocker le résultat dans une deuxième variable (z') ; et remplacer (24) le bloc de la table de substitution ayant pour rang le résultat de la première étape par le résultat de la deuxième étape.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 15 à 11, dans lequel les masques (ml, m2, m, m' ; m, m') sont des nombres aléatoires.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 12, dans lequel les masques (ml, m2, m, m' ; m, nt') ont tous la même taille qu'un bloc. 20\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à.:13, dans lequel les combinaisons sont de type OU-Exclusif.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 14, appliqué à l'AES.\n<CLM>\1\tCircuit électronique (6) adapté à la mise en 25 oeuvre du procédé selon l'une quelconque des revendications 1 à 15.