Brevet FR3048096A1 (20170825)
REVENDICATIONS1. Procédé d'exécution par un circuit (CT1) d'une opération (OPR) combinant une donnée d'entrée (M) à une donnée secrète (SD) et fournissant une donnée de sortie, le procédé comprenant une étape de fourniture en tant que résultat de l'opération d'un premier ensemble de 5 données de sortie (RS) dans lequel la donnée de sortie présente une probabilité d'apparition égale à la probabilité d'apparition dans le premier ensemble de chacune des autres données possibles susceptibles d'être fournies par l'opération, ou d'un second ensemble de données de sortie (RS1) incluant la donnée de sortie, tel que, dans un ensemble de 10 transformées des données du second ensemble, par une fonction surjective choisie (F3), la transformée de la donnée de sortie présente une probabilité d'apparition égale à la probabilité d'apparition de chacune des transformées des autres données du second ensemble par la fonction surjective, la donnée de sortie ayant un rang dans le premier ou second ensemble de 15 données, imprédictible, mais connu du circuit.\n<CLM>\1\tProcédé selon la revendication 1, dans lequel l'opération (OPR) comprend une opération de substitution utilisant une table de substitution (T2), chaque élément de la table de substitution susceptible d'être 20 sélectionné à partir de la donnée d'entrée (M) ou d'un résultat intermédiaire, étant un ensemble de données (T2[i3O..r]) incluant la donnée de sortie et dont les transformées respectives par la fonction surjective (F3) sont toutes différentes et comprennent une seule fois toutes les données possibles susceptibles d'être obtenues par la fonction surjective, le procédé 25 comprenant la fourniture en tant que résultat de l'opération de substitution d'une partie (T2[i]) de la table sélectionnée en fonction de la donnée d'entrée ou du résultat intermédiaire, la donnée de sortie ayant une position dans la partie de la table sélectionnée, imprédictible, mais connue du circuit. 30\n<CLM>\1\tProcédé selon l'une des revendications 1 et 2, dans lequel la fonction surjective (F3) est choisie en fonction d'un modèle de fuite de donnée du circuit (CT1). 3048096 29\n<CLM>\1\tProcédé selon l'une des revendications 1 à 3, dans lequel la fonction surjective (F3) est l'une des fonctions suivantes : la fonction identité, et une fonction fournissant le poids de Hamming de la valeur appliquée à la fonction.\n<CLM>\1\tProcédé selon la revendication 1, dans lequel l'opération (OPR) comprend une opération de substitution utilisant une table de substitution (T1), le procédé comprenant la fourniture en tant que résultat (RS) de l'opération de substitution de l'ensemble de la table de substitution, la donnée de sortie ayant une position dans la table, imprédictible, mais connue du circuit.\n<CLM>\1\tProcédé selon la revendication 1, comprenant l'exécution par le circuit (CT1) de l'opération (OPR) appliquée à chacune des données d'un troisième ensemble de données d'entrée (SD 0 IRN, M) défini de manière à obtenir par l'opération le premier ensemble de données (RS) qui est fourni en tant que résultat de l'opération.\n<CLM>\1\tProcédé selon la revendication 6, dans lequel les données du troisième ensemble (SD 0 IRN, M) sont obtenues par combinaison de données d'un quatrième ensemble de données (IRN) avec la donnée d'entrée (M) de l'opération (OPR) ou avec la donnée secrète (SD).\n<CLM>\1\tProcédé selon la revendication 7, dans lequel chacune des valeurs du quatrième ensemble est concaténée au moins une fois avec elle-même avant d'être combinée avec la donnée d'entrée (M) de l'opération (OPR) ou avec la donnée secrète (SD).\n<CLM>\1\tProcédé selon l'une des revendications 1 à 8, dans lequel l'opération (OPR) appliquée à la donnée secrète (SD) et à la donnée d'entrée (M), comprend au moins une des opérations suivantes : une opération de chiffrement ou de déchiffrement, symétrique ou asymétrique, une opération de signature, 3048096 30 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, 5 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 appliquée 10 à la 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.\n<CLM>\1\tCircuit (CT1) configuré pour mettre en oeuvre le procédé selon 15 l'une des revendications 1 à 9, et comprenant un processeur (PRC).\n<CLM>\1\tCircuit (CT1) selon la revendication 10, comprenant un coprocesseur (CP2). 20\n<CLM>\1\tDispositif comprenant un circuit selon la revendication 10 ou 11, agencé sur un support (HD).\n<CLM>\1\tProduit programme d'ordinateur directement chargeable dans une mémoire interne d'un ordinateur et comprenant des portions de code qui 25 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 à 9.