Brevet FR3040513A1 (20170303)
REVENDICATIONS1. Procédé de protection, d'un algorithme de type Rijndael exécuté par un circuit électronique (6), contre 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 ; 33') d'une opération non linéaire de substitution par bloc à partir d'une première table de substitution (S' ; S), puis est démasqué (34) par un deuxième masque (m') après substitution ; la table de substitution est recalculée (44, 45, 46, 47, 10 48, 24 ; 44, 23', 24, 47, 48', 49), bloc par bloc, 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 (w) ; et le recalcul de la table de substitution fait intervenir 15 le deuxième masque (m') ainsi que des troisième (ml) et quatrième (m2) masques, la somme des troisième et quatrième masques étant égale au premier masque (rrt).\n<CLM>\1\tProcédé selon la revendication 1, dans lequel : successivement pour chaque bloc de la première table 20 (S) : le rang (w) du bloc courant est soumis (44) à ladite permutation (w) et le résultat est combiné au troisième masque (ml) ; le bloc courant d'une deuxième table (S') est 25 remplacé (24) par la combinaison (23') du deuxième masque (m') 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') : 30 le rang (w) du bloc courant est soumis (47) à ladite permutation (w) et le résultat est combiné au quatrième masque (m2) ; 3040513 B14336 - 15-R0-0235 24 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 résultat de la permutation.\n<CLM>\1\tProcédé selon la revendication 1 ou 2, comportant 5 les étapes suivantes : successivement pour chaque bloc de la première table (S) : dans une première étape (44), appliquer la permutation (w) au rang (w) du bloc courant, combiner le résultat 10 au premier masque (ml) et stocker le résultat dans une première variable (z) ; dans une deuxième étape (23'), stocker dans une 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 15 résultat (9( w) ) de la permutation appliquée au rang du bloc courant ; et stocker (24) le résultat de la deuxième étape dans un bloc, identifié par le résultat de la première étape, d'une deuxième table (S') ; 20 successivement pour chaque bloc de la deuxième table (S') : dans une troisième étape (47), appliquer la permutation (w) au rang (w) du bloc courant, combiner le résultat au deuxième masque (m2) et stocker le résultat dans la première 25 variable (z) ; dans une quatrième étape (48'), stocker dans la deuxième variable (z') le bloc de la deuxième table ayant pour rang le résultat (9( w) ) de la permutation appliquée au rang courant ; et 30 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 première table (S).\n<CLM>\1\tProcédé selon la revendication 2 ou 3, dans lequel la première table (S) constitue la table de substitution 35 recalculée. 3040513 B14336 - 15-R0-0235 25\n<CLM>\1\tProcédé selon la revendication 1, 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 (w) du bloc courant est soumis (44) à ladite permutation (9) et le résultat est combiné au troisième masque (ml) ; 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 (w) du bloc courant est soumis (47) à ladite permutation (9) et le résultat est combiné au quatrième masque (m2) ; le bloc courant de la deuxième table (S') est remplacé (48,\n<CLM>\1\tpar le bloc de la première table identifié par 20 le résultat de la permutation.\n<CLM>\1\tProcédé selon la revendication 1 ou 2, comportant les étapes suivantes : les blocs de la première table (S) sont recopiés (43) dans une deuxième table (S') ; 25 successivement pour chaque bloc de la deuxième table (S') : dans une première étape (44), appliquer la permutation (9) au rang (w) du bloc courant, combiner le résultat au premier masque (ml) et stocker le résultat dans une première 30 variable (z) ; 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 35 courant ; et 3040513 B14336 - 15-R0-0235 26 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 5 (S) : dans une troisième étape (47), appliquer la permutation (w) 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) ; 10 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 (9( w) ) de la permutation appliquée au rang courant ; et stocker (24) le résultat de la quatrième étape dans 15 un bloc de la deuxième table (S'), identifié par le résultat de la troisième étape.\n<CLM>\1\tProcédé selon la revendication 5 ou 6, dans lequel la deuxième table (S') constitue la table de substitution recalculée.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 7, dans lequel les masques (m, m', ml, m2) sont des nombres aléatoires.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 8, dans lequel les masques (m, m', ml, m2) ont tous la même 25 taille qu'un bloc.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 9, dans lequel les combinaisons sont de type OU-Exclusif.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 9, appliqué à l'AES. 30\n<CLM>\1\tCircuit électronique (6) adapté à la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 11.