FR3078419A1 - Procede et circuit de realisation d'une operation de substitution - Google Patents

Procede et circuit de realisation d'une operation de substitution Download PDF

Info

Publication number
FR3078419A1
FR3078419A1 FR1851644A FR1851644A FR3078419A1 FR 3078419 A1 FR3078419 A1 FR 3078419A1 FR 1851644 A FR1851644 A FR 1851644A FR 1851644 A FR1851644 A FR 1851644A FR 3078419 A1 FR3078419 A1 FR 3078419A1
Authority
FR
France
Prior art keywords
substitution
series
value
operations
random
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR1851644A
Other languages
English (en)
Inventor
Thomas Ordas
Yanis Linge
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1851644A priority Critical patent/FR3078419A1/fr
Priority to EP19157873.1A priority patent/EP3531401B1/fr
Priority to US16/281,889 priority patent/US11218291B2/en
Publication of FR3078419A1 publication Critical patent/FR3078419A1/fr
Priority to US17/537,056 priority patent/US11824969B2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Procédé de mise en œuvre, par un circuit cryptographique (300), d'une opération de substitution d'un algorithme cryptographique, ce procédé comprenant : la réalisation, pour chaque opération de substitution de l'algorithme cryptographique, d'une série d'opérations de substitution, dont : l'une est une opération de substitution réelle correspondant à l'opération de substitution de l'algorithme cryptographique ; et une ou plusieurs sont des opérations de substitution factices, dans lequel la position de l'opération de substitution réelle parmi les une ou plusieurs opérations de substitution factices dans chacune desdites séries est choisie aléatoirement.

Description

PROCEDE ET CIRCUIT DE REALISATION D'UNE OPERATION DE SUBSTITUTION
DOMAINE DE L'INVENTION
La présente invention concerne le domaine des circuits électroniques, et notamment un dispositif et un procédé d'accès à des tables de substitution au cours d'une opération cryptographique .
EXPOSE DE L'ART ANTERIEUR
Les tables de substitution, également connues sous le nom de S-box, définissent une opération de substitution de données réalisée au cours d'algorithmes cryptographiques. Cette substitution de données a pour objet de dissimuler la relation entre la clé secrète et le texte crypté et de rendre par conséquent plus difficile la découverte de la clé secrète.
Une technique utilisée par les pirates souhaitant récupérer la clé secrète exploitée par un dispositif cryptographique consiste à surveiller les signaux sur des canaux auxiliaires pour extraire certaines informations liées, par exemple, à la consommation ou à la séquence chronologique du dispositif lors de l'exécution d'un algorithme cryptographique. La manipulation de la donnée secrète pendant les opérations de substitution est souvent visée par les pirates par des procédés
BÏ6474 17-RO-0459 par canaux auxiliaires du fait de la visibilité relative des opérations de substitution.
Certaines solutions assurant un degré de protection limité contre 1'utilisation de procédés par canaux auxiliaires ont été proposées. Il existe cependant un besoin dans la technique de solutions offrant une meilleure protection.
RESUME
Un objet de modes de réalisation de la présente description est de répondre à un ou plusieurs besoins de 1 ' art antérieur.
Selon un aspect, la présente invention prévoit un procédé de mise en œuvre, par un circuit cryptographique, d'une opération de substitution d'un algorithme cryptographique, ce procédé comprenant : la réalisation, pour chaque opération de substitution de l'algorithme cryptographique, d'une série d'opérations de substitution, dont : l'une est une opération de substitution réelle correspondant à l'opération de substitution de l'algorithme cryptographique ; et une ou plusieurs sont des opérations de substitution factices, dans lequel la position de l'opération de substitution réelle parmi les une ou plusieurs opérations de substitution factices dans chacune desdites séries est choisie aléatoirement.
Selon un mode de réalisation, chaque opération de substitution comprend l'adressage d'un emplacement de mémoire d'une mémoire à partir d'une donnée d'entrée et la lecture d'une valeur de donnée audit emplacement de mémoire pour fournir une donnée de sortie.
Selon un mode de réalisation, chaque série d'opérations de substitution comprend un nombre m d'opérations de substitution, m étant un entier choisi aléatoirement pour chaque série.
Selon un mode de réalisation, le procédé comprend en outre la génération d'une première valeur aléatoire pour une première série d'opérations de substitution et l'utilisation de la première valeur aléatoire pour choisir le nombre m d'opérations de substitution dans ladite première série.
B16474 1)-R0-0459
Selon un mode de réalisation, le procédé comprend en outre la génération d'une seconde valeur aléatoire pour une première série d'opérations de substitution et l'utilisation de la seconde valeur aléatoire pour choisir la position de l'opération de substitution réelle parmi les une ou plusieurs opérations de substitution dans ladite première série.
Selon un mode de réalisation, la réalisation de chaque série d'opérations de substitution comprend : le chargement d'une valeur d'entrée réelle et de N valeurs d'entrée aléatoires ; et la fourniture, sur des opérations consécutives d'accès en table de substitution, de ladite valeur d'entrée réelle et de m-1 desdites valeurs d'entrée aléatoires à une table de substitution, l'ordre de fourniture de la valeur d'entrée réelle par rapport aux m-1 valeurs d'entrée aléatoires étant choisi à partir de la seconde valeur aléatoire.
Selon un mode de réalisation, le procédé comprend en outre, pour chague série d'opérations de substitution, le stockage d'une valeur de sortie de chaque opération de substitution et la sélection de la valeur de sortie correspondant à ladite opération de substitution réelle à partir de ladite seconde valeur aléatoire.
Selon un autre aspect, la présente invention prévoit un moyen de stockage non transitoire stockant un programme informatigue configuré, lorsqu'il est exécuté par un dispositif de traitement, pour mettre en œuvre le procédé ci-dessus.
Selon un autre aspect, la présente invention prévoit un circuit cryptographique comprenant : un circuit de mémoire stockant une table de substitution pour mettre en œuvre une opération de substitution d'un algorithme cryptographique ; et un ou plusieurs circuits configurés pour réaliser, à chaque opération de substitution de l'algorithme cryptographique, une série d'opérations de substitution utilisant ladite table de substitution, chaque série d'opérations de substitution comprenant : une opération de substitution réelle correspondant à l'opération de substitution de l'algorithme cryptographique ; et une ou plusieurs opérations de substitution factices, les un ou
B16474 17-RO-0459 plusieurs circuits étant configurés de manière à sélectionner aléatoirement la position de l'opération de substitution réelle parmi les une ou plusieurs opérations de substitution factices dans chacune desdites séries.
Selon un mode de réalisation, le circuit cryptographique comprend en outre un générateur de nombre aléatoire configuré pour générer, pour chacune desdites séries, une première valeur aléatoire pour choisir aléatoirement le nombre d'opérations de substitution factices à réaliser dans la série.
Selon un mode de réalisation, le générateur de nombre aléatoire est en outre configuré pour générer, pour chacune desdites séries, une seconde valeur aléatoire pour choisir aléatoirement la position de l'opération de substitution réelle parmi les opérations de substitution factices.
Selon un mode de réalisation, le circuit cryptographique comprend en outre une mémoire pour stocker un résultat des opérations de substitution de chacune desdites séries.
Selon un mode de réalisation, les un ou plusieurs circuits consiste(nt) en un circuit d'entrée de table de substitution comprenant : un ou plusieurs registres configurés pour stocker une valeur d'entrée réelle correspondant à ladite opération de substitution réelle et N valeurs d'entrée aléatoires ; et un ou plusieurs multiplexeurs configurés pour choisir, pour chaque opération de substitution de chaque série, une valeur parmi ladite valeur d'entrée réelle et lesdites N valeurs d'entrée aléatoires pour former une entrée du circuit mémoire stockant ladite table de substitution.
Selon un mode de réalisation, le circuit cryptographique comprend en outre un circuit de sélection configuré pour générer un signal de sélection pour commander les un ou plusieurs multiplexeurs afin d'effectuer la sélection de ladite valeur pour chaque opération de substitution.
Selon un mode de réalisation, les un ou plusieurs circuits comprennent un ou plusieurs dispositifs de traitement commandés par des instructions stockées dans une mémoire d'instructions pour choisir, pour chaque opération de substitution de
B16474 17-RO-0459 chaque série, soit ladite valeur d'entrée réelle, soit une valeur d'entrée aléatoire pour former une entrée du circuit de mémoire stockant ladite table de substitution.
BREVE DESCRIPTION DES FIGURES
Ces caractéristiques et leurs 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 illustre schématiquement un circuit d'exécution d7 un algorithme cryptographique faisant intervenir des opérations de substitution selon un exemple de réalisation ;
la figure 2 illustre schématiquement une table de substitution selon un exemple de réalisation ;
la figure 3 illustre schématiquement un circuit cryptographique pour accéder à une table de substitution selon un exemple de réalisation de la présente invention ;
la figure 4 est un chronogramme illustrant un exemple de signaux dans le circuit de la figure 3 ;
la figure 5 illustre schématiquement une partie d'un circuit d'entrée de table de substitution selon la figure 3 plus en détail selon un exemple de réalisation de la présente invention ;
la figure 6 illustre schématiquement un système de traitement pour accéder à une table de substitution selon un exemple de réalisation de la présente invention ;
la figure 7 est un organigramme représentant des opérations d'un procédé d'accès à une table de substitution selon un exemple de réalisation de la présente invention ; et la figure 8 illustre schématiquement un dispositif cryptographique selon un exemple de réalisation de la présente invention.
DESCRIPTION DETAILLEE
Dans la présente description, le tenue connecté est utilisé pour désigner une connexion électrique directe entre éléments de circuit, tandis que le terme couplé est utilisé pour désigner une connexion électrique entre éléments de circuit qui
Bl'6474 17-RO-0459 peut être directe ou par l'intermédiaire d'un ou plusieurs éléments tels que des multiplexeurs, des tarpons, etc.
En outre, dans la présente description, on considérera que les termes suivants ont les définitions suivantes :
algorithme cryptographique - toute série d'opérations réalisées par un dispositif, impliquant la manipulation d'une valeur secrète, telle qu'une clé secrète, qui doit être cachée du monde extérieur au dispositif. Des exemples d'algorithmes cryptographiques comprennent les algorithmes de cryptage ou de décryptage de texte non-crypté/texte crypté à partir d'une clé secrète, pour générer un code d'authentification de message (MAC) ou une autre forme de signature numérique à partir d'un algorithme secret et/ou clé, ou tout autre type d'opération secrète ;
opération de substitution ou accès à une table de substitution - une opération d'un algorithme cryptographique dans laquelle une valeur de donnée de sortie est générée à partir d'une valeur de donnée d'entrée au moyen d'une table de substitution,
S-box. Les valeurs d'entrée et de sortie peuvent présenter le même nombre de bits ou un nombre de bits différent. Cette opération est par exemple réalisée au moyen d'une table de correspondance (LUT, lookup table) stockée dans une mémoire, et les valeurs définies dans la table de correspondance peuvent être fixées ou pourraient être mises à jour de façon dynamique ;
opération de substitution réelle - une opération de substitution définie par l'algorithme cryptographique en cours d'exécution, constituant par exemple une opération utile en ce que le résultat de la substitution contribuera au calcul de la donnée de sortie de l'algorithme cryptographique ; et opération de substitution factice - une opération fictive ou fausse réalisée de la même façon qu'une opération de substitution réelle, mais qui est superflue dans la mesure où elle est réalisée en plus des opérations de substitution réelles définies par l'algorithme cryptographique. Bien que le résultat de chaque opération de substitution factice puisse être stocké en mémoire, ceci n'est pas utile dans la mesure où ce résultat est
BÏ6474 17-RO-0459 sans objet en lien avec l'algorithme cryptographique et peut être rejeté. Comme on l'a décrit ici, les opérations de substitution factices sont par exemple effectuées à partir de données d'entrée aléatoires.
tographique reçoit par traiter et
La figure 1 illustre schématiquement un circuit cryp100 selon un mode de réalisation. Le circuit 100 correspond exemple en tant qu'entrées un message une clé secrète (KEY). Par exemple, à un texte en clair à crypter par le (MESSAGE) à le message circuit 100 utilisant la clé secrète, à un texte crypté à décrypter par le circuit 100 au moyen de la clé secrète ou à la donnée à signer par le circuit 100 en générant une signature numérique, telle qu'un MAC (code d'authentification de message, message authentication code) à partir de la clé.
Le circuit 100 comprend une série de modules matériels mettant en œuvre diverses opérations 102, 104, 106 sur le message et la clé de manière à générer un message de sortie (MESSAGE') correspondant à un texte crypté, à un texte en clair et/ou à une signature numérique. Dans l'exemple de la figure 1, l'opération
104 correspond à une opération de substitution faisant intervenir une ou plusieurs tables de substitution (S-BOXES).
La figure 2 illustre schématiquement un exemple d'une table de substitution utilisée au cours de l'algorithme DES (data encryption standard). De façon connue de l'homme de l'art, l'algorithme de cryptage DES fait intervenir 8 tables de substitution SI à S8 dont chacune est unique. La figure 2 illustre la table de substitution DES SI.
Un accès à la table de substitution selon l'algorithme de cryptage DES implique l'introduction de 6 bits d'entrée (INPUT) b5 à bO et la fourniture de 4 bits de sortie (OUTPUT) b3 à bO. La table de substitution SI se présente sous la forme d'une table de correspondance comprenant 16 colonnes et 4 lignes. Les bits b5 et bO de la valeur d'entrée sont par exemple utilisés pour choisir une rangée de la table et les bits b4 à bl de la valeur d'entrée sont par exemple utilisés pour choisir une colonne de la table.
BÏ6474 17-RO-0459
La valeur sur 4 bits stockée dans la rangée et la colonne choisies constitue la valeur de sortie de la table de substitution.
Bien entendu, la figure 2 n'illustre qu'un exemple de table de substitution et les principes décrits dans la présente description pourraient être appliqués à tout type de table de substitution dans laquelle des données d'entrée sont substituées pour générer des données de sortie à partir d'une table de valeurs mémorisées.
La figure 3 illustre schématiquement un circuit cryptographique 300 pour mettre en œuvre des opérations d'accès à une table de substitution selon un exemple de réalisation de la présente description. Le circuit 300 fait par exemple partie du circuit 100 de la figure 1.
Le circuit 300 comprend une table de substitution 302 recevant une donnée d'entrée SB_IN et délivrant une donnée de sortie SB_OUT. La table de substitution 302 est par exemple mise en œuvre par une mémoire non volatile, dans laquelle la donnée d'entrée SB_IN fournit une entrée d'adresse à la mémoire et la donnée de sortie SB_OUT correspond à la valeur de donnée mémorisée à 1'emplacement adressé de la mémoire.
La table de substitution 302 correspond par exemple à la table de substitution SI de la figure 2 ou à toute autre table de substitution de la norme DES de cryptage. A titre de variante, la table de substitution 302 pourrait correspondre à une table de substitution utilisée dans les normes de cryptage TDES (Triple DES), AES (advanced encryption standard) ou SM4 (anciennement connu sous le nom de SMS4) , ou dans toute autre norme de cryptage.
Le circuit 300 comprend en outre un circuit d'entrée de table de substitution (S-BOX INPUT CIRCUIT) 304 recevant une valeur d'entrée INPUT correspondant à une opération de substitution réelle à réaliser en relation avec un algorithme cryptographique. Par exemple, la valeur d'entrée INPUT est le résultat d'une opération réalisée sur la donnée de message et la donnée de clé de la Figure 1.
Le circuit d'entrée de table de substitution 304 reçoit également N valeurs d'entrée aléatoires (N x RANDOM) et un signal
BÏ6474 17-RO-0459 de commande CTRL, en provenance d'un générateur de nombre aléatoire (RNG) 306. Le générateur 306 est par exemple un générateur de nombre pseudo-aléatoire ou un générateur de nombre réellement aléatoire.
Le circuit 300 comprend en outre un circuit de sortie de table de substitution (S-BOX OUTPUT CIRCUIT) 308 qui reçoit la donnée de sortie SB_OUT en provenance de la table de substitution 302 ainsi que le signal de commande CTRL en provenance du générateur de nombre aléatoire 306. Le circuit de sortie de table de substitution 308 est par exemple couplé à un registre de sortie (OUTPUT REGISTER) 310, qui fournit une donnée de sortie OUTPUT représentant le résultat de l'opération d'accès à la table de substitution. Dans certains modes de réalisation, le circuit d'entrée 304 et le circuit de sortie 308 présentent un bit d'occupation (BB, busy bit) pour indiquer à un système hôte les périodes d'occupation de la table de substitution 302.
En fonctionnement, pour chaque opération d'accès à la table de substitution qui doit être effectuée en vue d'une opération de substitution correspondante d'un algorithme cryptographique, une série d'accès à la table de substitution est effectuée par le circuit d'entrée de table de substitution 304. Un seul de ces accès correspond à 1 ' accès réel à la table de substitution associé à l'opération de substitution de l'algorithme cryptographique. L'autre des un ou plusieurs accès en table de substitution correspond à des accès factices à partir des valeurs aléatoires fournies par le générateur 306, dont les résultats sont rejetés.
Par exemple., chaque fois qu'un accès à la table de substitution doit être effectué, la valeur de donnée d'entrée réelle et N valeurs d'entrée aléatoires sont chargées dans le circuit d'entrée de table de substitution 304, N étant un entier positif par exemple égal à au moins 7 dans certains modes de réalisation. Le signal de commande CTRL généré par le générateur de nombre aléatoire 306 comprend par exemple une valeur NFC indiquant le nombre d'accès factices à réaliser, et une valeur
B16474 17-RO-0459
RAC indiquant la position de l'accès réel par rapport aux accès factices.
Par exemple, dans un mode de réalisation, la valeur NFC est une valeur sur 2 bits et la valeur RAC est une valeur sur 3 bits. Le nombre NFC d'accès factices à la table de substitution dans chaque série d'accès à la table de substitution est par exemple égal à :
MF = - 1
Ainsi, la valeur de NFC étant égale à 0, 1, 2, ou 3, le nombre NF d'accès à la table de substitution peut par exemple être 0, 1, 3 ou 7. En outre, la valeur RAC est par exemple utilisée pour déterminer la position de l'accès réel en réalisant une opération de ET logique entre la valeur binaire sur 3 bits RAC et une valeur binaire sur 3 bits représentant le nombre NF.
En générant la valeur de NFC pour chaque série d'accès à la table de substitution, le temps de traitement de chaque accès à la table de substitution sera variable. Ainsi, dans la mesure où la durée de chaque accès à la table de substitution n'est plus prévisible, le bit d'occupation BB indique par exemple au système de traitement hôte les périodes temporelles pendant lesquelles la table de substitution 302 est occupée.
Selon certains modes de réalisation, le circuit de sortie de table de substitution 308 stocke chacune des valeurs de sortie SB_OUT de la table de substitution 302 pendant chaque opération d'accès au registre de sortie 310. En outre, le circuit 308 sélectionne par exemple la valeur de sortie réelle pour former la valeur de sortie OUTPUT du registre 310 à partir du signal de commande CTRL. En particulier, la valeur NFC indique le nombre de valeurs de sortie factices fournies par la table de substitution 302 et la valeur RAC indique la position de la valeur de sortie réelle par rapport aux valeurs de sorties factices.
Le fonctionnement du circuit de la figure 3 va à présent être décrit plus en détail en référence à la figure 4.
La figure 4 est un chronogramme représentant des exemples des signaux NFC, RAC, BB, des opérations d'accès à la
B16474 17-RO-0459 table de substitution OP, et de la valeur de sortie OUTPUT, pendant une série d'accès SA1 et SA2 utilisant le circuit de la figure 3.
Dans l'exemple de la figure 4, pendant la série d'accès SA1, la valeur de NFC générée aléatoirement est de 2 et la valeur de RAC générée aléatoirement est de 5. Ainsi, le nombre NF d'opérations factices en table de substitution dans la série SA1 est égal à 3. Le nombre total d'accès à la table de substitution dans une série quelconque est égal à NF+1 et le résultat de l'opération NF*RAC est par exemple une valeur sur 3 bits qui peut prendre une valeur comprise entre 0 et NF, où 0 représente le premier accès de la série et NF représente le dernier accès de la série. Ainsi, dans l'exemple de la série d'accès SA1, la position de l'opération d'accès réelle est égale à un ET logique appliqué bit par bit aux valeurs 011 et 101, ce qui donne 001, correspondant au second accès de la série.
Le bit d'occupation BB prend une valeur haute à l'instant tO au début de la série d'opérations d'accès SA1, qui comprend quatre accès à la table de substitution correspondant, séquentiellement, à : un accès factice FA ; un accès réel RAI ; un accès factice FA ; et un accès factice FA. Le bit d'occupation BB passe ensuite par exemple à une valeur basse à l'instant tl suivant le dernier accès et la valeur de sortie OUTPUT devient égale au résultat de l'accès réel RAI peu de temps après.
Pendant la série d'accès à la table de substitution SA2, la valeur de NFC générée aléatoirement est de 1 et la valeur de RAC générée aléatoirement est de 4. Ainsi, le nombre NF d'opérations factices à la Aable de substitution dans la série SA2 est égal à 1 et la position de l'opération d'accès réelle de la série SA2 est égale à un ET logique appliqué bit par bit aux valeurs 001 et 100, ce qui donne 000, correspondant au premier accès de la série.
Le bit d'occupation BB prend une valeur haute à un instant t2 au début de la série d'opérations d'accès SA2, qui comprend deux accès à la table de substitution correspondant, séquentiellement, à : un accès réel RA2 ; et un accès factice FA. Le bit d'occupation BB passe ensuite par exemple à une valeur
B16474 17-RO-0459 basse à l'instant t3 suivant le dernier accès et la valeur de sortie OUTPUT devient égale au résultat de l'accès réel RA2 peu de temps après.
La figure 5 illustre schématiquement une partie du circuit d'entrée de table de substitution 304 de la figure 3 plus en détail selon un exemple de réalisation. Le circuit 304 comprend par exemple un multiplexeur 502 présentant N+l entrées de réception des N valeurs aléatoires à partir du générateur de nombre aléatoire 306 et la valeur d'entrée réelle INPUT. Dans l'exemple de la figure 5, N est égal à 7 et les 7 valeurs aléatoires sont désignées par RI à R7.
Le circuit 304 comprend également par exemple un circuit de sélection (SEL) 504 qui génère un signal de sélection pour commander le multiplexeur 502 à partir du signal de commande CTRL en provenance du générateur de nombre aléatoire 306. Le circuit de sélection 504 reçoit par exemple un signal d'horloge CLK indiquant la période de chaque opération d'accès de sorte que le signal de sélection peut être mis à jour à l'instant approprié. Comme on l'a indiqué ci-dessus, en fonction du nombre d'opérations d'accès factices dans une série donnée d'accès à la table de substitution, le nombre de ces valeurs d'entrée aléatoires utilisées pendant cette série d'accès variera entre zéro et N. Les valeurs aléatoires RI à R7 sont par exemple rafraîchies après chaque série d'accès à la table de substitution, en d'autres termes, chaque fois que les données d'entrée INPUT sont mises à jour.
L'exemple des figures 3 et 5 correspond à une mise en œuvre matérielle. Dans des variantes de réalisation, le procédé d'accès en table de substitution décrit ici peut être mis en œuvre sous forme logicielle, comme on le décrira plus en détail en référence aux figures 6 et 7.
La figure 6 illustre schématiquement un système de traitement 600 selon un exemple de réalisation de la présente invention. Le système 600 comprend par exemple un dispositif de traitement (P) 602 couplé par l'intermédiaire d'un bus 604 à une mémoire 606 stockant une ou plusieurs tables de substitution (SB16474 17-RO-0459
BOXES). La mémoire 606 est par exemple une mémoire non volatile (NVM, Non-Volatile Memory). Le système 600 comprend également par exemple, couplés au bus 604, une mémoire volatile 608, qui est par exemple une mémoire RAM (mémoire à accès aléatoire) , une interface d'entrée/sortie (I/O INTERFACE) 610 et un générateur de nombre aléatoire (RNG) 612. Le dispositif de traitement 602 comprend par exemple un ou plusieurs noyaux de traitement commandés par instructions stockées dans une mémoire d'instructions, par exemple, la mémoire 606 et/ou 608.
La figure 7 est un organigramme illustrant des opérations d'un procédé d'accès à une table de substitution selon un exemple de réalisation de la présente invention et utilisant le système de traitement de la figure 6.
A une opération 701, N valeurs d'entrée aléatoires et une valeur d'entrée réelle sont par exemple chargées dans la mémoire de travail du dispositif de traitement 602, la mémoire de travail correspondant par exemple à la mémoire RAM 608. Les valeurs aléatoires sont par exemple générées par le générateur de nombre aléatoire 612, tandis que la valeur d'entrée réelle est par exemple un résultat, stocké dans la RAM 608, d'une opération précédente réalisée par le dispositif de traitement 602 mettant en œuvre une clé secrète.
A une opération 702, les valeurs aléatoires NFC et RAC sont générées, par exemple, à partir de valeurs aléatoires fournies par le générateur 612. Ces valeurs sont par exemple stockées dans la mémoire RAM 608.
A une opération 703, le dispositif de traitement 602 réalise * accès à la table de substitution, l'un de ces accès correspondant à un accès réel à partir de la valeur d'entrée réelle et * x de ces accès correspondant à des accès factices, l'accès réel étant positionné par rapport aux accès factices à partir de la valeur RAC. Chaque accès est par exemple réalisé en adressant la mémoire non volatile 606 et en particulier une table de correspondance stockée dans la mémoire non volatile 606. Le résultat de chaque accès est stocké en mémoire, par exemple dans la mémoire RAM 608.
BÏ6474 17-RO-0459
A l'opération 704, le résultat correspondant à l'accès réel est choisi pour être utilisé dans l'algorithme cryptographique à partir des valeurs aléatoires NFC et RAC. Par exemple, le dispositif de traitement 602 sélectionne dans la mémoire RAM 608, à partir des valeurs aléatoires NFC et RAC, une adresse correspondant à l'emplacement de stockage de l'opération de substitution réelle.
La figure 8 illustre schématiquement un dispositif cryptographique 800 selon un exemple de réalisation.
Le dispositif 800 comprend par exemple un dispositif de traitement (P) 802 correspondant au processeur hôte du dispositif cryptographique 800. Le dispositif de traitement 802 est par exemple en communication avec un circuit cryptographique 804 (CRYPTO) qui correspond par exemple au circuit 300 de la figure 3 ou à certains des ou tous les éléments du système de traitement 600. Le dispositif cryptographique 800 comprend également par exemple une mémoire (MEM) 806 et une interface d'entrée/sortie (I/O) 808 en communication avec le dispositif de traitement 802.
Le dispositif 800 correspond par exemple à une carte de circuit intégré (souvent désignée sous le nom de carte à puce), à un dispositif électronique portable ou à tout autre type de dispositif électronique dans lequel doit être réalisée une fonction cryptographique. Dans certains modes de réalisation, l'interface d'entrée/sortie 808 peut correspondre à une interface NFC (Near-Field Communication).
Un avantage des modes de réalisation décrits ici est que la découverte d'une clé secrète manipulée pendant les opérations de substitution d'un algorithme cryptographique au moyen de procédés par canaux auxiliaires peut être rendue considérablement plus difficile. En effet, en effectuant des accès factices et en positionnant l'accès réel à la table de substitution à une position aléatoire par rapport aux accès factices à la table de substitution, on crée une dissymétrie des fuites pendant chaque accès réel à la table de substitution, et il devient très difficile de déterminer une corrélation significative entre les signaux de canaux auxiliaires pendant les accès à la table de substitution
B16474 17-RO-0459 et la valeur de la clé secrète. En outre, la découverte de la clé secrète peut être rendue encore plus difficile en randomisant encore le nombre d'opérations de substitution factices réalisées pour chaque opération de substitution réelle.
Un avantage de la mise en œuvre matérielle des figures 3 et 5 est gue le passage des accès factices et aux accès réels à une table de substitution peut être réalisé relativement rapidement, d'où il résulte une dépense temps système relativement faible pour les accès supplémentaires à la table de substitution.
On a décrit au moins un mode de réalisation à titre d'illustration, mais de nombreuses variantes et modifications apparaîtront à l'homme de l'art. Par exemple, il apparaîtra à l'homme de l'art que le circuit de la figure 5 mettant en œuvre le circuit d'entrée de table de substitution n'est gu'un exemple et que de nombreuses variantes de mise en œuvre sont possibles.
En outre, bien qu'un exemple dans lequel les valeurs NFC et RAC présentent respectivement 2 et 3 bits ait été prévu, il apparaîtra à l'homme de l'art que ces valeurs peuvent compter un nombre de bits différent selon la valeur de N.
En outre, bien qu'on ait décrit des modes de réalisation à partir d'une table de substitution unique, certains algorithmes cryptographigues, tels gu'un DES, utilisent plusieurs tables de substitution en parallèle. Les modes de réalisation décrits ici peuvent être appliqués à chacune des plusieurs tables de substitution fonctionnant en parallèle.
En outre, il apparaîtra à l'homme de l'art que les diverses caractéristiques décrites en relation avec les modes de réalisation des figures 3 et 6 pourraient être combinées, dans des variantes de réalisation, selon tout type de combinaison. Par exemple, il serait possible de mettre en œuvre le procédé d'accès en table de substitution de la présente invention au moyen d'une combinaison d'éléments matériels et logiciels.

Claims (15)

  1. REVENDICATIONS
    1. Procédé de mise en œuvre, par un circuit cryptographique (300, 600), d'une opération de substitution d'un algorithme cryptographique, ce procédé comprenant :
    la réalisation, pour chaque opération de substitution de l'algorithme cryptographique, d'une série d'opérations de substitution, dont :
    l'une est une opération de substitution réelle correspondant à l'opération de substitution de l'algorithme cryptographique ; et une ou plusieurs autres sont des opérations de substitution factices, dans lequel la position de l'opération de substitution réelle parmi les une ou plusieurs opérations de substitution factices dans chacune desdites séries est choisie aléatoirement.
  2. 2. Procédé selon la revendication 1, dans lequel chaque opération de substitution comprend l'adressage d'un emplacement de mémoire d'une mémoire (302, 606) à partir d'une donnée d'entrée (SB_IN) et la lecture d'une valeur de donnée audit emplacement de mémoire pour fournir une donnée de sortie (SB_OUT).
  3. 3. Procédé selon la revendication 1 ou 2, dans lequel chaque série d'opérations de substitution comprend un nombre m d'opérations de substitution, où m est un entier choisi aléatoirement pour chaque série.
  4. 4. Procédé selon la revendication 3, comprenant en outre la génération d'une première valeur aléatoire (NFC) pour une première série d'opérations de substitution et l'utilisation de la première valeur aléatoire (NFC) pour choisir le nombre m d'opérations de substitution dans ladite première série.
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, comprenant en outre la génération d'une seconde valeur aléatoire (RAC) pour une première série d'opérations de substitution et l'utilisation de la seconde valeur aléatoire pour choisir la position de l'opération de substitution réelle parmi
    BÏ6474 17-RO-0459 les une ou plusieurs opérations de substitution dans ladite première série.
  6. 6. Procédé selon la revendication 5, dans lequel la réalisation de chaque série d'opérations de substitution comprend :
    le chargement d'une valeur d'entrée réelle et de N valeurs d'entrée aléatoires ; et la fourniture, sur des opérations consécutives d'accès en table de substitution, de ladite valeur d'entrée réelle et de m-1 desdites valeurs d'entrée aléatoires à une table de substitution (302, 606), dans lequel l'ordre de fourniture de la valeur d'entrée réelle par rapport aux m-1 valeurs d'entrée aléatoires est choisi à partir de la seconde valeur aléatoire (RAC).
  7. 7. Procédé selon la revendication 5 ou 6, comprenant en outre, pour chaque série d'opérations de substitution, le stockage d'une valeur de sortie (SB__OUT) de chaque opération de substitution et la sélection de la valeur de sortie correspondant à l'opération de substitution réelle à partir de ladite seconde valeur aléatoire (RAC).
  8. 8. Moyen de stockage non transitoire stockant un programme informatique configuré, lorsqu'il est exécuté par un dispositif de traitement (602), pour mettre en œuvre un procédé selon l'une quelconque des revendications 1 à 7.
  9. 9. Circuit cryptographique comprenant :
    un circuit de mémoire (302, 606) stockant une table de substitution (S-BOXES) pour mettre en œuvre une opération de substitution d'un algorithme cryptographique ; et un ou plusieurs circuits (304, 602) configurés pour réaliser, à chaque opération de substitution de l'algorithme cryptographique, une série d'opérations de substitution utilisant ladite table de substitution (S-BOX), chaque série d'opérations de substitution comprenant :
    une opération de substitution réelle correspondant à l'opération de substitution de l'algorithme cryptographique ; et une ou plusieurs opérations de substitution factices, les un ou plusieurs circuits étant configurés de manière à
    B16474 17-RO-0459 sélectionner aléatoirement la position de l'opération de substitution réelle parmi les une ou plusieurs opérations de substitution factices dans chacune desdites séries.
  10. 10. Circuit cryptographique selon la revendication 9, comprenant en outre un générateur de nombre aléatoire (306, 612) configuré pour générer, pour chacune desdites séries, une première valeur aléatoire (NFC) pour choisir aléatoirement le nombre d'opérations de substitution factices à réaliser dans la série.
  11. 11. Circuit cryptographique selon la revendication 10, dans lequel le générateur de nombre aléatoire (306, 612) est en outre configuré pour générer, pour chacune desdites séries, une seconde valeur aléatoire (RAC) pour choisir aléatoirement la position de l'opération de substitution réelle parmi les opérations de substitution factices.
  12. 12. Circuit cryptographique selon l'une quelconque de revendications 9 à 11, comprenant en outre une mémoire (310, 608) pour stocker un résultat des opérations de substitution de chacune desdites séries.
  13. 13. Circuit cryptographique selon l'une quelconque des revendications 9 à 12, dans lequel le un ou plusieurs circuits constitue(nt) un circuit d'entrée de table de substitution (304) comprenant :
    un ou plusieurs registres configurés pour stocker une valeur d'entrée réelle correspondant à ladite opération de substitution réelle et N valeurs d'entrée aléatoires ; et un ou plusieurs multiplexeurs (502) configurés pour choisir, pour chaque opération de substitution de chaque série, une valeur parmi ladite valeur d'entrée réelle et lesdites N valeurs d'entrée aléatoires pour former une entrée du circuit de mémoire (302) stockant ladite table de substitution (S-BOXES).
  14. 14. Circuit cryptographique selon la revendication 13, comprenant en outre un circuit de sélection (504) configuré pour générer un signal de sélection pour commander les un ou plusieurs multiplexeurs (502) afin d'effectuer la sélection de ladite valeur pour chaque opération de substitution.
    BÎ6474 17-RO-0459
  15. 15. Circuit cryptographique selon l'une quelconque des revendications 9 à 12, dans lequel les un ou plusieurs circuits comprennent un ou plusieurs dispositifs de traitement (602) commandés par des instructions stockées dans une mémoire 5 d'instructions (606, 608) pour choisir, pour chaque opération de substitution de chaque série, soit ladite valeur d'entrée réelle, soit une valeur d'entrée aléatoire pour former une entrée du circuit de mémoire (606) stockant ladite table de substitution (S-BOXES).
FR1851644A 2018-02-26 2018-02-26 Procede et circuit de realisation d'une operation de substitution Withdrawn FR3078419A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1851644A FR3078419A1 (fr) 2018-02-26 2018-02-26 Procede et circuit de realisation d'une operation de substitution
EP19157873.1A EP3531401B1 (fr) 2018-02-26 2019-02-18 Procédé et circuit permettant d'effectuer une opération de substitution
US16/281,889 US11218291B2 (en) 2018-02-26 2019-02-21 Method and circuit for performing a substitution operation
US17/537,056 US11824969B2 (en) 2018-02-26 2021-11-29 Method and circuit for performing a substitution operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1851644A FR3078419A1 (fr) 2018-02-26 2018-02-26 Procede et circuit de realisation d'une operation de substitution

Publications (1)

Publication Number Publication Date
FR3078419A1 true FR3078419A1 (fr) 2019-08-30

Family

ID=62948195

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1851644A Withdrawn FR3078419A1 (fr) 2018-02-26 2018-02-26 Procede et circuit de realisation d'une operation de substitution

Country Status (2)

Country Link
EP (1) EP3531401B1 (fr)
FR (1) FR3078419A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507357B (zh) * 2021-07-08 2022-03-11 无锡沐创集成电路设计有限公司 兼容sm4和aes算法s盒的实现方法和电路模块

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296198A1 (en) * 2010-05-27 2011-12-01 Kabushiki Kaisha Toshiba Cryptographic processing apparatus and ic card
FR2985624A1 (fr) * 2012-01-11 2013-07-12 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2873523B1 (fr) * 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296198A1 (en) * 2010-05-27 2011-12-01 Kabushiki Kaisha Toshiba Cryptographic processing apparatus and ic card
FR2985624A1 (fr) * 2012-01-11 2013-07-12 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires

Also Published As

Publication number Publication date
EP3531401A1 (fr) 2019-08-28
EP3531401B1 (fr) 2022-10-19

Similar Documents

Publication Publication Date Title
FR3078464A1 (fr) Procede et circuit de mise en oeuvre d'une table de substitution
FR2833120A1 (fr) Appareil et procede de cryptage de donnees
FR2980285A1 (fr) Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
WO2014037657A1 (fr) Protection contre canaux auxiliaires
FR2919448B1 (fr) Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre
US8566609B2 (en) Integrity of ciphered data
FR2989504A1 (fr) Registre protege contre des attaques par injection de fautes
FR2984553A1 (fr) Procede et dispositif de detection de fautes
FR2952735A1 (fr) Procede et dispositif de detection d'attaques par injection de fautes
EP3300292B1 (fr) Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés
FR2979443A1 (fr) Microcontroleur securise a base de mode
FR2869174A1 (fr) Procede et dispositif pour determiner un resultat
EP1832974A1 (fr) Protection EMA d'un calcul par un circuit électronique
EP3803636B1 (fr) Processeur ntt incluant une pluralite de bancs de memoires
US11824969B2 (en) Method and circuit for performing a substitution operation
EP2284748B1 (fr) Procédé de contremesure pour protéger des données mémorisées
FR3078419A1 (fr) Procede et circuit de realisation d'une operation de substitution
FR3083885A1 (fr) Circuit de generation de facteurs de rotation pour processeur ntt
FR3078463A1 (fr) Procede et dispositif de realisation d'operations en table de substitution
US20210232923A1 (en) Learning-and-recognition apparatus, learning-and- recognition method, and non-transitory computer readable medium
EP2053568A1 (fr) Procédé de génération de masques dans un objet communiquant et objet communiquant correspondant
EP4242884A1 (fr) Procédé de protection contre les attaques par canaux auxiliaires
WO2009068658A1 (fr) Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire
CN118070298A (en) Method, device, equipment and computer readable storage medium for accessing data of chip
CA3183198A1 (fr) Dispositif, methode et programme pour une communication securisee entre boites blanches

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190830

ST Notification of lapse

Effective date: 20201006