Brevet FR3101981A1 — publié le 20210416

Extraction et insertion de mots binaires La présente description concerne un procédé de traitement de données binaires masquées, mis en oeuvre par un dispositif adapté à effectuer des calculs sur des données binaires (10), comprenant une opération d'extraction et d'insertion d'une première partie (B1_M) d'une première donnée binaire masquée (B_M) dans une deuxième donnée binaire masquée (Z_M), dans laquelle les première et deuxième données binaires masquées restent masquées pendant tout le traitement. Figure pour l'abrégé : Fig. 2 Extraction et insertion de mots binaires La présente description concerne de façon générale les systèmes et circuits électroniques, et, de façon plus particulière, des dispositifs électroniques adaptés à effectuer des calculs sur des mots binaires, comme, par exemple, des processeurs. La présente description traite plus précisément de dispositifs adaptés à traiter des données masquées. Parmi les différents dispositifs adaptés à effectuer des calculs sur des mots binaires, les processeurs sont des composants électroniques, présents dans de nombreux systèmes et circuits électroniques, qui sont adaptés à traiter des données en exécutant des commandes et des instructions de programmes informatiques. Dans certains cas, un processeur peut avoir à traiter des données secrètes. Ces données secrètes sont généralement chiffrées, par exemple par masquage. Il serait souhaitable de pouvoir améliorer, au moins en partie, certains aspects des dispositifs connus adaptés à effectuer des calculs sur des mots binaires. 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 figure 1 représente, schématiquement et sous forme de blocs, un mode de réalisation d'un processeur ; la figure 2 représente, schématiquement, un mode de réalisation d'un procédé de traitement de données binaires masquées ; la figure 3 représente, schématiquement, un autre mode de réalisation d'un procédé de traitement de données binaires masquées ; la figure 4 représente, schématiquement, un autre mode de réalisation d'un procédé de traitement de données binaires masquées ; la figure 5 représente, schématiquement, un autre mode de réalisation d'un procédé de traitement de données binaires masquées ; Procédé de traitement de données binaires masquées, mis en oeuvre par un dispositif adapté à effectuer des calculs sur des données binaires (10), comprenant une opération d'extraction et d'insertion d'une première partie (B1_M ; D1_M ; G1_M) d'une première donnée binaire masquée (B_M ; D_M ; G_M) dans une deuxième donnée binaire masquée (Z_M ; X_M ; E_M ; H_M), dans laquelle les première et deuxième données binaires masquées restent masquées pendant tout le traitement. Procédé selon la revendication 1, ne comprenant aucune opération de démasquage des première et deuxième données binaires masquées. Procédé selon la revendication 1 ou 2, dans lequel les première et deuxième données binaires masquées sont masquées par une opération de masquage ne comprenant que des opérations arithmétiques. Procédé selon la revendication 3, dans lequel l'opération de masquage est une opération dans laquelle la donnée à masquer (A) est ajoutée à un masque (MA) pour obtenir la donnée masquée (A_M). Procédé selon l'une quelconque des revendications 1 à 4, dans lequel une troisième donnée binaire (Z_M ; X_M ; F_M ; I_M) est le résultat de l'opération d'extraction et d'insertion, ladite troisième donnée binaire est une donnée masquée par un troisième masque (MZ ; MX ; MF ; MI). Procédé selon la revendication 5, dans lequel la deuxième donnée binaire masquée (Z_M ; X_M) est obtenue en réalisant une opération de masquage d'une donnée binaire (Z ; X) dont tous les bits sont égaux à "0". Procédé selon la revendication 6, dans lequel la deuxième donnée binaire masquée (Z_M ; X_M) est égale à un deuxième masque (MZ ; MX) utilisé pendant l'opération de masquage. Procédé selon la revendication 6 ou 7, dans lequel la troisième donnée binaire masquée Z_M est donnée par la formule suivante : dans lequel : - "+" représente l'opération addition ; - "mod" représente l'opération modulo ; - n représente le nombre de bits de la troisième donnée binaire masquée Z_M, n étant un entier naturel ; - p est un entier naturel compris entre 0 et n-1 ; - m est un entier naturel compris entre 0 et n-p ; - P[i ; j] représente l'ensemble des bits d'une donnée binaire P allant d'un rang i à un rang j, i et j étant des entiers naturels ; - CB(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la première donnée masquée ; - B_M représente la première donnée masquée, la retenue CB(i+1), i étant un entier naturel inférieur ou égal à n, est donnée par les formules suivantes : dans lequel MB représente un premier masque associé à la première donnée binaire masquée, et le troisième masque MZ associé à la troisième donnée binaire masquée est donnée par la formule suivante : Procédé selon la revendication 6 ou 7, dans lequel la troisième donnée binaire masquée X_M est donnée par la formule suivante : dans lequel : - "+" représente l'opération addition ; - "mod" représente l'opération modulo ; - n représente le nombre de bits de la troisième donnée binaire masquée X_M, n étant un entier naturel ; - p est un entier naturel compris entre 0 et n-1 ; - m est un entier naturel compris entre 0 et n-p ; - P[i ; j] représente l'ensemble des bits d'une donnée binaire P allant d'un rang i à un rang j, i et j étant des entiers naturels ; - CB(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la première donnée masquée ; - B_M représente la première donnée masquée, la retenue CB(i+1), i étant un entier naturel inférieur ou égal à n, est donnée par les formules suivantes : dans lequel MB représente le premier masque associé à la première donnée binaire masquée, et le troisième masque MX associé à la troisième donnée binaire masquée est donnée par la formule suivante : Procédé selon la revendication 5, dans lequel la troisième donnée binaire masquée F_M est donnée par la formule suivante : dans lequel : - "+" représente l'opération addition ; - "mod" représente l'opération modulo ; - n représente le nombre de bits de la troisième donnée binaire masquée X_M, n étant un entier naturel ; - p est un entier naturel compris entre 0 et n-1 ; - m est un entier naturel compris entre 0 et n-p ; - k est un entier naturel compris entre 0 et n-p ; - P[i ; j] représente l'ensemble des bits d'une donnée binaire P allant d'un rang i à un rang j, i et j étant des entiers naturels ; - CEF(i) représente une correction de retenue de rang i ; - CD(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la première donnée masquée ; - CE(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la deuxième donnée masquée ; - D_M représente la première donnée masquée ; - MD représente un masque associé à la première donnée masquée ; - E_M représente la deuxième donnée masquée ; et - ME représente un masque associé à la deuxième donnée masquée, la retenue CD(i+1) est donnée par les formules suivantes : la retenue CE(i+1) est donnée par les formules suivantes : la correction de retenue CEF(i) est donnée par la formule suivante : le troisième masque associé à la troisième donnée binaire est égal au masque associé à la deuxième donnée masquée. Procédé selon la revendication 5, dans lequel la troisième donnée binaire masquée F_M est donnée par la formule suivante : dans lequel : - "+" représente l'opération addition ; - "mod" représente l'opération modulo ; - n représente le nombre de bits de la troisième donnée binaire masquée X_M, n étant un entier naturel ; - p est un entier naturel compris entre 0 et n-1 ; - m est un entier naturel compris entre 0 et n-p ; - k est un entier naturel compris entre 0 et n-p ; - P[i ; j] représente l'ensemble des bits d'une donnée binaire P allant d'un rang i à un rang j, i et j étant des entiers naturels ; - CD(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la première donnée masquée ; - CE(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la deuxième donnée masquée ; - D_M représente la première donnée masquée ; - MD représente un masque associé à la première donnée masquée ; - E_M représente la deuxième donnée masquée ; et - ME représente un masque associé à la deuxième donnée masquée, la retenue CD(i+1) est donnée par les formules suivantes : la retenue CE(i+1) est donnée par les formules suivantes : le troisième masque MF associé à la troisième donnée binaire est donnée par la formule suivante : dans lequel CEF(i) représente une correction de retenue de rang i donnée par la formule suivante : Procédé selon la revendication 5, dans lequel la troisième donnée binaire masquée I_M est donnée par la formule suivante : dans lequel : - "+" représente l'opération addition ; - "mod" représente l'opération modulo ; - n représente le nombre de bits de la troisième donnée binaire masquée X_M, n étant un entier naturel ; - p est un entier naturel compris entre 0 et n-1 ; - m est un entier naturel compris entre 0 et n-p ; - k est un entier naturel compris entre 0 et n-p ; - P[i ; j] représente l'ensemble des bits d'une donnée binaire P allant d'un rang i à un rang j, i et j étant des entiers naturels ; - CG(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la première donnée masquée ; - CH(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la deuxième donnée masquée ; - G_M représente la première donnée masquée ; - H_M représente la deuxième donnée masquée ; et la retenue CG(i+1) est donnée par les formules suivantes : la retenue CH(i+1) est donnée par les formules suivantes : le troisième masque MI associé à la troisième donnée binaire masquée est donnée par la formule suivante : dans lequel : - MG représente le masque associé à la première donnée binaire masquée ; et - MH représente le masque associé à la deuxième donnée binaire masquée. Procédé selon la revendication 5, dans lequel la troisième donnée binaire masquée I_M est donnée par la formule suivante : dans lequel : - "+" représente l'opération addition ; - "mod" représente l'opération modulo ; - n représente le nombre de bits de la troisième donnée binaire masquée X_M, n étant un entier naturel ; - p est un entier naturel compris entre 0 et n-1 ; - m est un entier naturel compris entre 0 et n-p ; - k est un entier naturel compris entre 0 et n-p ; - P[i ; j] représente l'ensemble des bits d'une donnée binaire P allant d'un rang i à un rang j, i et j étant des entiers naturels ; - CG(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la première donnée masquée ; - CH(i) représente la retenue de rang i pouvant apparaître pendant l'opération de masquage conduisant à la deuxième donnée masquée ; - G_M représente la première donnée masquée ; - H_M représente la deuxième donnée masquée ; et la retenue CG(i+1) est donnée par les formules suivantes : la retenue CH(i+1) est donnée par les formules suivantes : le troisième masque MI associé à la troisième donnée binaire masquée est donnée par la formule suivante : dans lequel : - MG représente le masque associé à la première donnée binaire masquée ; et - MH représente le masque associé à la deuxième donnée binaire masquée. Dispositif adapté à effectuer des calculs sur des données binaires masquées par une opération de masquage selon la revendication 3 ou 4, ledit dispositif étant adapté à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 13. Dispositif électronique comprenant un dispositif selon la revendication 14.