FR2855688A1 - Procede et dispositif de mise en correspondance entre une valeur d'entree de depart et une valeur de sortie d'arrivee codee - Google Patents

Procede et dispositif de mise en correspondance entre une valeur d'entree de depart et une valeur de sortie d'arrivee codee Download PDF

Info

Publication number
FR2855688A1
FR2855688A1 FR0405618A FR0405618A FR2855688A1 FR 2855688 A1 FR2855688 A1 FR 2855688A1 FR 0405618 A FR0405618 A FR 0405618A FR 0405618 A FR0405618 A FR 0405618A FR 2855688 A1 FR2855688 A1 FR 2855688A1
Authority
FR
France
Prior art keywords
data
input
output
value
multiplexing
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.)
Granted
Application number
FR0405618A
Other languages
English (en)
Other versions
FR2855688B1 (fr
Inventor
Stephen Marc Sonnekalb
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of FR2855688A1 publication Critical patent/FR2855688A1/fr
Application granted granted Critical
Publication of FR2855688B1 publication Critical patent/FR2855688B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un dispositif de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie codée d'arrivée conformément à une règle de correspondance permettant d'associer une pluralité de valeurs d'entrée possibles à une pluralité de valeurs de sortie possibles, dispositif comporteun dispositif de multiplexage (10) qui comporte une entrée de commande (16), un certain nombre d'entrées de données (14a à 14h) et une sortie de données (18) destinée à la valeur de sortie codée d'arrivée et qui a pour but de diriger un signal de données codé, appliqué à l'une des entrées de données (14a à 14h), vers la sortie de données (18) ; etun dispositif (12) de mise à disposition des signaux de données codés aux entrées de données (14a à 14h) du dispositif de multiplexage (10) en se fondant sur une clé de codage,le dispositif de mise à disposition (12) étant conformé et un signal de commande indiquant la valeur de sortie de départ étant appliqué à l'entrée de commande (16) du dispositif de multiplexage (10) de telle sorte que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, il est délivré à la sortie de données (18) du dispositif de multiplexage (10) une valeur de sortie qui peut être obtenue, par un codage avec la clé de codage, à partir de la valeur de sortie possible à laquelle la valeur d'entrée de départ est associée conformément à la règle de correspondance.

Description

PROCEDE ET DISPOSITIF DE MISE EN CORRESPONDANCE ENTRE
UNE VALEUR D'ENTREE DE DEPART ET UNE VALEUR DE SORTIE D'ARRIVEE CODEE La présente invention concerne la mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie d'arrivée codée, comme par 5 exemple dans des boîtes S codées Sparkling dans des algorithmes de cryptographie, comme par exemple le DES (Data Encryption Standard = norme de codage de données) ou bien l'AES (Advanced Encryption Standard = algorithme de codage élargi).
Dans certains algorithmes cryptographiques, on utilise ce que l'on 10 appelle des boîtes S. Des exemples de tels algorithmes cryptographiques sont par exemple l'algorithme DES (Data Encryption Standard = norme de codage de données) ou bien l'algorithme AES (Advanced Encryption Standard = algorithme de codage élargi). La figure 6 représente schématiquement le mode de fonctionnement de l'algorithme DES. Pour 15 coder les données, on les divisent tout d'abord en blocs de 64 bits 900 afin de les traiter par bloc. Ensuite, les blocs 900 sont soumis tout d'abord à une permutation 902. Puis, le bloc de données de 64 bits permuté est divisé en deux blocs de données de 32 bits 904 et 906. Ces blocs de données de 32 bits 904 et 906 sont soumis de façon itérative à 16 opérations successives 20 dites d'arrondi. Tout d'abord, on établit une correspondance entre le contenu du bloc de données 906, qui est désigné par R dans la figure 6, et le bloc de données 904 de l'arrondi le plus proche qui est désigné dans la figure 6 par L. Cette correspondance est représentée par 908. Pour obtenir le nouveau contenu du bloc de données R 906 pour l'arrondi le plus proche, le contenu 25 actuel du bloc de données 906 est soumis à une opération d'expansion E 910 afin d'obtenir un bloc de données de 48 bits à partir du bloc de données de 32 bits conformément à une règle d'expansion prédéterminée selon laquelle des bits déterminés sont doublés. Le bloc de données de 48 bits est ensuite codé dans une étape 912 au moyen d'un composant logique XOR 912 avec une clé 30 d'arrondi de 48 bits qui est différente pour chaque arrondi mais qui est obtenue à partir d'une même clé de 56 bits 914 par une opération 916, non décrite en détail ici.
On établit à nouveau une correspondance entre le bloc de données de 48 bits codé et expansé dans lesdites boîtes S Sl, S8 susmentionnés et un 35 bloc de données de 32 bits. Pour cela, on établit une correspondance pour chaque boîte entre 6 bits différents des 48 bits du bloc de données codé et quatre bits, les règles de correspondance des boîtes S individuelles étant déterminées le plus souvent de façon standard. Après cette correspondance 918 des boîtes S, la valeur obtenue est soumise une nouvelle permutation 920 puis le bloc de 32 bits permuté, comportant le bloc de données de 32 bits 5 L 904 de l'arrondi précédent, est soumis un composant logique XOR 922. Le bloc de données de 32 bits combiné par le composant logique XOR représente le nouveau bloc de données de 32 bits R 906 pour l'arrondi le plus proche. Cet arrondi, défini par les étapes 908, 910, 912, 918, 920 et 922, est réalisé 16 fois. Au bout des seize arrondis, les blocs de données de 32 bits 10 obtenus (904, 906) sont de nouveau rassemblés pour donner un bloc de données de 64 bits et sont soumis à une permutation de sortie 924 qui est l'inverse de la permutation 922, après quoi on obtient le bloc de données de sortie final de 64 bits, sous forme codée, qui est indiqué en 926.
Les boîtes S représentent, d'une façon générale, une correspondance 15 quelconque, pas forcément univoque, entre un vecteur de n bits et un vecteur de m bits. Dans la plupart des algorithmes cryptographiques, les correspondances ne sont pas linéaires. Une boîte S est habituellement couramment utilisée dans une mémoire comportant une adresse d'entrée de n bits et une donnée de sortie de m bits. Une telle utilisation des boîtes S est 20 cependant très peu sur par rapport à des attaques DPA (differential power analysis: analyse de puissance différentielle). Ceci est illustré de la manière en se référant à l'algorithme DES de la figure 6. Comme mentionné précédemment, les règles de correspondance des différentes boîtes S sont connues. De plus, chaque accès dans le profil de puissance du circuit 25 réalisant l'algorithme DES se fait de façon remarquable par des processus caractéristiques déterminés qui réalisent une corrélation avec les adresses d'entrée dans les boites S. En particulier, il est dangereux dans le cas de l'algorithme DES que les adresses d'entrée dans les boîtes S soient codées avec les clés d'arrondi secrètes qui sont obtenues à partir de la clé principale 30 secrète 914 de façon connue car le plus souvent prédéterminée par la norme.
Pour cette raison, il est possible de déduire la clé principale 914 à partir d'analyses de profil de courant pendant les correspondances 918 grâce à la corrélation entre des profils de courant du circuit utilisant l'algorithme.
Comme déjà mentionné, les algorithmes cryptographiques ne sont pas 35 les seuls à coder les données au moyen de boîtes S. Dans tous ces algorithmes, une analyse de courant différentielle permet de s'attaquer aux données secrètes de la façon décrite précédemment. Dans le cas o l'on utilise des boîtes S non protégées pour coder la mémoire dans un microcontrôleur, les logiciels d'algorithme cryptographique eux-mêmes, qui fonctionnent sur le processeur et qui se fondent sur des données provenant des mémoires codées, font l'objet d'une attaque DPA.
Jusqu'à présent, ce problème n'a pas encore été résolu de façon adéquate. Certes, il est possible d'augmenter à cet égard la sécurité contre les attaques DPA en utilisant une technique de circuit Custom-Dual-Rail, toutefois l'utilisation de cette technique de circuit est liée à une dépense très 10 élevée qui semble injustifiée dans toutes les applications.
Il serait pour cette raison souhaitable d'avoir la possibilité d'utiliser des correspondances, comme pour les boîtes S, d'une façon qui permet, en qui concerne les valeurs traitées, une plus grande sécurité contre l'espionnage par des attaques DPA avec une dépense proportionnée.
Le but de la présente invention est de proposer un procédé et un dispositif de correspondance entre une valeur d'entrée de départ et une valeur de sortie d'arrivée codée qui permettent d'augmenter la sécurité contre des attaques DPA en utilisant la correspondance dans un algorithme cryptographique.
Ce but est atteint par un dispositif de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie codée d'arrivée conformément à une règle de correspondance permettant d'associer une pluralité de valeurs d'entrée possibles à une pluralité de valeurs de sortie possibles, caractérisé en ce qu'il comporte un dispositif de multiplexage qui comporte une entrée de commande, un certain nombre d'entrées de données et une sortie de données destinée à la valeur de sortie codée d'arrivée et qui a pour but de diriger un signal de données codé, appliqué à l'une des entrées de données, vers la sortie de données; et un dispositif de mise à disposition des signaux de données codés aux entrées de données du dispositif de multiplexage en se fondant sur une clé de codage, le dispositif de mise à disposition étant conformé et un signal de commande indiquant la valeur de sortie de départ étant appliqué à l'entrée de 35 commande du dispositif de multiplexage de telle sorte que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, il est délivré à la sortie de données du dispositif de multiplexage une valeur de sortie qui peut être obtenue, par un codage avec la clé de codage, à partir de la valeur de sortie possible à laquelle la valeur d'entrée de départ est associée conformément à la règle de correspondance.
La présente invention repose sur l'idée que, pour augmenter la sécurité vis-à-vis des attaques DPA, la corrélation entre des données d'entrée de départ et le profil de courant obtenu dans le cas d'un dispositif de mise en correspondance entre la valeur d'entrée de départ et une valeur de sortie codée d'arrivée peut être réduite par le fait que le dispositif de mise en 10 correspondance est formé en combinant un dispositif de multiplexage, à l'entrée de commande duquel est appliqué un signal de commande indiquant la valeur de sortie de départ, et un dispositif de mise à disposition de données codées aux entrées de données du dispositif de multiplexage en se fondant sur une clé de codage, le dispositif de mise à disposition étant conformé et le 15 signal de commande indiquant de façon appropriée la valeur d'entrée de départ étant appliqué à l'entrée de commande de telle sorte que, pour chaque valeur d'entrée possible que peut prendre la valeur d'entrée de départ, il est délivré à la sortie de données du dispositif de multiplexage une valeur de sortie qui peut être obtenue, par un codage avec la clé de codage, à partir de 20 la valeur de sortie possible à laquelle la valeur d'entrée de départ est associée conformément à la règle de correspondance.
L'idée est que, en prévoyant le dispositif de multiplexage, le codage de la valeur de sortie d'arrivée conformément à la règle de correspondance pour donner la valeur de sortie d'arrivée codée peut être effectué virtuellement 25 avant les processus de redirection proprement dits resp. avant le processus de redirection proprement dits dans le dispositif de multiplexage, qui dépend bien de la valeur d'entrée de départ, de sorte que tous les processus de commutation s'exprimant dans le profil de puissance sont réalisés dans le dispositif de multiplexage grâce à des signaux de départ déjà codés.
Des exemples de réalisation spéciaux de la présente invention combinent le codage avec la clé de codage et l'utilisation de cellules de multiplexage cryptographique spéciales qui peuvent être assemblées sous la forme d'un système de multiplexage arborescent binaire pour donner un dispositif de multiplexage, et qui permettent en raison de leur structure de 35 coder le signal de commande, indiquant de façon appropriée la valeur d'entrées de départ, avec une clé aléatoire avant d'utiliser le signal de commande pour mettre en oeuvre les processus de redirection sans que le codage du signal de commande est une influence sur le choix de l'entrée de données que le dispositif de multiplexage ainsi structuré redirige vers la sortie de données. De cette façon, la corrélation entre les profils de courant d'une 5 part et les valeurs d'entrée de départ d'autres part est totalement supprimée car les processus de redirection ne sont réalisés qu'avec des données codées.
De préférence: - le signal de commande forme une correspondance univoque de la 10 valeur d'entrée de départ.
- le dispositif de mise à disposition est conformé pour coder avec la clé de codage un signal de données, qui indique une valeur qui est choisie dans le groupe des valeurs de sortie possibles, pour chaque entrée de données du dispositif de multiplexage afin d'obtenir un signal de données codé pour 15 chaque entrée de données et pour délivrer les signaux de données codés aux entrées de données du dispositif de multiplexage.
Le dispositif de mise à disposition est conformé pour effectuer un codage en combinant la clé de verrouillage et le signal de données au moyen des opérateurs logiques XOR ou NXOR.
Le dispositif de mise à disposition est conformé pour appliquer à chacune des entrées de données du dispositif de multiplexage une donnée codée qui est choisie dans un groupe qui comporte un bit d'une représentation binaire de la valeur d'entrée de départ, dont les bits restants sont indiquées de façon univoque par le signal de commande, un bit inverse 25 de l'un des bits de la représentation binaire, un bit de codage et un bit inverse du bit de codage.
Le choix est effectué dans le groupe de telle façon que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, le codage avec le bit de codage, permettant d'obtenir la valeur de sortie, qui est délivrée 30 à la sortie de données du dispositif de multiplexage pour la valeur d'entrée possible correspondante, à partir de la valeur de sortie possible à laquelle la valeur d'entrée possible respective est associée conformément à la règle de correspondance, est une combinaison par un opérateur XOR ou NXOR du bit de codage et de la valeur de sortie possible à laquelle la valeur d'entrée 35 possible respective est associée conformément à la règle de correspondance.
L'invention vise aussi un dispositif de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie générale codée d'arrivée conformément à une règle de correspondance générale permettant d'associer une pluralité de valeurs d'entrée possibles à une pluralité de valeurs de sortie 5 générales possibles, lequel dispositif comporte au moins deux dispositifs suivant l'invention, dans lequel les valeurs de sortie codées d'arrivée au niveau des sorties de données des dispositifs de multiplexage fournissent ensemble une représentation univoque de la valeur de sortie générale codée d'arrivée.
De préférence, les clés de codage des dispositifs selon l'invention sont indépendantes l'une de l'autre.
De préférence, le dispositif de multiplexage est un système de multiplexage arborescent qui est structuré en étages successifs qui comportent au moins un étage initial et au moins un étage final, les étages finaux comportant un multiplexeur et les autres étages comportant plusieurs multiplexeurs, chaque multiplexeur comportant une première entrée de données, une deuxième entrée de données, une entrée de commande et une sortie de données, pour chaque étage la sortie de données des multiplexeur de cet étage étant reliée à une entrée différente des entrées de données du ou des multiplexeurs des étages suivants du système de multiplexage arborescent, et les entrées de commande du ou des multiplexeurs à l'intérieur de 25 chaque étage sont commandées par un signal de commande respectif différent pour chaque étage.
L'invention vise enfin un procédé de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie codée d'arrivée conformément à une règle de correspondance permettant d'associer une 30 pluralité de valeurs d'entrée possibles à une pluralité de valeurs de sortie possibles, en se fondant sur un dispositif de multiplexage comportant une entrée de commande, un certain nombre d'entrées de données et une sortie de données destinée à la valeur de sortie codée d'arrivée et qui a pour but de diriger un signal de données codé, appliqué à l'une des entrées de données, 35 vers la sortie de données, lequel procédé comporte les étapes consistant à: mettre les signaux de données codés à la disposition des entrées de données du dispositif de multiplexage en se fondant sur une clé de codage; et appliquer un signal de commande indiquant la valeur de sortie de départ à l'entrée de commande du dispositif de multiplexage, la mise à disposition et l'application étant réalisées de telle sorte que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, il est délivré à la sortie de données du dispositif de multiplexage une valeur de sortie qui peut être obtenue, par un codage avec la clé de codage, à partir de 10 la valeur de sortie possible à laquelle la valeur d'entrée de départ est associée conformément à la règle de correspondance.
Des exemples de réalisation préférés de la présente invention sont expliqués en détail dans la suite en se référant aux dessins joints dans lesquels: la figure 1 est un synoptique d'un exemple de réalisation général d'un dispositif de mise en correspondance selon la présente invention; les figures 2a et 2b sont des schémas de circuit de deux exemples de réalisation d'une cellule de multiplexage cryptographique; la figure 3 est un synoptique d'une boîte S 3-en-1 codée selon un 20 exemple de réalisation de la présente invention; la figure 4 est un synoptique d'une boîte S 3-en-1 codée selon un autre exemple de réalisation de la présente invention; la figure 5 est un synoptique d'une boîte S 3-en-1 codée simplifiée selon un autre exemple de réalisation de la présente invention; la figure 6 est un schéma destiné à illustrer l'algorithme DES.
La figure 1 représente un exemple de réalisation général d'un dispositif de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie codée d'arrivée. Le dispositif, qui est indiqué d'une façon générale par la référence 5, comporte un dispositif de multiplexage 10 ainsi qu'un 30 dispositif 12 de mise à disposition de données codées. Le dispositif de multiplexage comporte huit entrées de données 14a à 14h, une entrée de commande 16 et une sortie de données 18. Comme représenté, un signal indiquant la valeur d'entrée de départ est appliqué à l'entrée de commande 16 d'une façon appropriée expliquée en détail dans la suite. En particulier, le 35 signal indiquant la valeur d'entrée de départ est totalement appliqué à l'entrée de commande 16 de sorte que celle-ci indique seule la valeur d'entrée de départ, ou bien le signal appliqué à l'entrée de commande n'indique la valeur d'entrée de départ sans ambiguïté que conjointement avec un deuxième signal indiqué par une ligne en pointillés dans la figure 1, ce deuxième signal étant reçu par le dispositif de mise à disposition 12. Le dispositif 12 reçoit à chaque fois une clé de codage.
Après avoir décrit précédemment la structure du dispositif 5 de la figure 1, nous allons décrire dans la suite son mode de fonctionnement.
Le but du dispositif de mise en correspondance de la figure 5 est d'effectuer une mise en correspondance entre une valeur d'entrée de départ 10 et une valeur de sortie d'arrivée conformément à une règle de correspondance qui est associée au dispositif 5, mais de délivrer à la place de la valeur de sortie d'arrivée une valeur de sortie d'arrivée codée qui est obtenue à partir de la valeur de sortie d'arrivée par un codage approprié avec la clé de codage.
Le signal de commande reçu à l'entrée de commande 16 est utilisé par le dispositif de multiplexage 10 pour rediriger un signal appliqué aux entrées de données 14a à 14h vers la sortie de données 18. De préférence, il existe une correspondance univoque entre l'entrée de données à rediriger et le signal de commande reçu à l'entrée de commande 16. Cependant, il peut 20 également se produire que des signaux de commande différents entraînent qu'une même entrée de données resp. le signal à une même entrée de données soit redirigé vers la sortie de données 18.
Le dispositif de mise à disposition 12 est maintenant conformé de telle sorte que, pour appliquer des données codées appropriées en fonction de la 25 clé de codage aux entrées de données 14a à 14h du dispositif de multiplexage, la valeur de sortie d'arrivée codée obtenue est toujours obtenue par un codage avec la clé de codage à partir de la valeur de sortie d'arrivée éventuelle, que la règle de correspondance associe à la valeur d'entrée de départ, en tenant compte de la correspondance entre l'entrée de données à 30 rediriger et les signaux de commande éventuels à l'entrée de commande 16 indépendamment celle des valeurs d'entrée éventuelles à laquelle correspond la valeur d'entrée de départ.
Comme il ressort de façon détaillée des exemples de réalisation suivants, il existe différentes possibilités pour mettre en oeuvre le mode de 35 fonctionnement représenté dans la figure 3. L'une d'entre elles consiste à appliquer un signal de commande, indiquant totalement la valeur d'entrée de départ, à l'entrée de commande 16 du dispositif de multiplexage 10. Le dispositif de multiplexage 10 choisit alors une entrée parmi les entrées de données 14a à 14h en se fondant sur la valeur d'entrée de départ et transmet cette entrée resp. le signal appliqué à celle-ci à la sortie de données 18. Le 5 dispositif de mise à disposition 12 applique alors des données codées appropriées aux entrées de données 14a à 14h. Dans ce cas, le dispositif de mise à disposition 12 appliquera, dans le cas o aucun codage n'est effectué par la clé de codage, des données aux entrées de données 14a à 14h de façon à appliquer à chaque entrée de données la valeur de sortie éventuelle 10 qui est associée par la règle de correspondance à la valeur d'entrée éventuelle que le dispositif de multiplexage redirige vers la sortie de données.
Dans une variante, la valeur d'entrée de départ n'est indiquée de façon univoque que par deux signaux secondaires conjointement; seul l'un des signaux secondaire est appliqué comme signal de commande à l'entrée de 15 commande 16 du dispositif de multiplexage 10, tandis que l'autre signal secondaire est utilisé par le dispositif de mise à disposition 12. Dans ce cas, le dispositif de multiplexage 10 est simplifié car le nombre de signaux de commande possibles à l'entrée de commande 16 est réduit. Le dispositif de mise à disposition 12 utilise dans ce cas le signal secondaire qu'il reçoit 20 conjointement avec la clé de codage pour appliquer des données codées appropriées aux entrées de données 14a à 14h, comme expliqué à titre d'exemple en se référant à la figure 5.
L'avantage de l'agencement de la figure 1 réside dans le fait que des données déjà codées traversent le dispositif de multiplexage 10 via ses 25 processus de redirection internes, puis dans le fait que la corrélation entre une valeur d'entrée de départ d'une part et le profil de courant généré par le dispositif de multiplexage 10 d'autre part est réduite de rendre difficiles des attaques par DPA ou SPA des circuits cryptographiques contenant ce dispositif de mise en correspondance.
Les exemples de réalisation spéciaux décrits dans la suite par référence aux figures 2 à 5 combinent le codage avec la clé de codage avant l'application des données codées aux entrées de données du dispositif de multiplexage 10 dont la conformation est bien choisie de sorte que les processus de redirection internes du dispositif de multiplexage 10 ont mis en 35 oeuvre en se fondant sur une valeur d'entrée de départ également codée. En particulier, en ce qui concerne la structure des dispositifs de multiplexage, on renvoie à un dispositif de multiplexage cryptographique pour lequel deux exemples de réalisation sont expliqués par référence aux figures 2a et 2b.
Avant d'expliquer en détail des exemples de réalisation de la présente invention en se référant aux figures suivantes, il faut mentionner que les 5 mêmes éléments de ces figures portent les mêmes références et qu'une description redondante des mêmes éléments de ces figures est évitée.
La figure 2a représente une cellule de multiplexage cryptographique possible qui délivre l'un des deux signaux de données, appliqués aux deux entrées de données, à une sortie de données en fonction d'un signal de 10 commande; il est alors difficile de déduire le signal de commande lors d'une attaque DPA car le signal de commande est codé avant son utilisation, comme décrit dans la suite.
La cellule de multiplexage cryptographique de la figure 2a, qui est indiquée d'une façon générale par la référence 50, comporte une première 15 entrée de données 52a, une deuxième entrée de données 52b, une entrée de commande 54, une entrée de code 56 et une sortie de données 57. Le multiplexeur cryptographique 50 comporte trois multiplexeurs élémentaires 58, 60 et 62. Il est en outre associé à une porte 64, comment représenté dans la figure.
Chacun des multiplexeurs élémentaires 58, 60 et 62 comportent deux entrées de données, une entrée de commande et une sortie de données. Une première entrée de données, à gauche dans la figure 2a, du multiplexeur élémentaire 58 est reliée à la première entrée de données 52a de la cellule de multiplexage, tandis que la deuxième entrée de données, à droite dans la 25 figure 2a, du multiplexeur élémentaire 58 est reliée à la deuxième entrée de données 52b de la cellule de multiplexage 50. Le deuxième multiplexeur élémentaire 60 joue le même rôle que le multiplexeur élémentaire 58; cependant, ses entrées de données sont reliées de façon inverse aux entrées de données 52a et 52b de la cellule de multiplexage cryptographique 50. 30 Ainsi, une première entrée de données, à droite dans la figure 2a, est reliée à la deuxième entrée de données 52b de la cellule de multiplexage 50, tandis qu'une deuxième entrée de données, à droite dans la figure 2a, du multiplexeur élémentaire 60 est reliée à la première entrée de données 52a de la cellule de multiplexage 50. Les deux multiplexeurs élémentaires 58 et 60 35 sont reliés par leur entrée de commande à l'entrée de code 56 de la cellule de multiplexage 50. Les sorties des multiplexeurs élémentaires 58 et 60 sont reliées chacune à une entrée différente des entrées de données du multiplexeur élémentaire 62. La sortie du multiplexeur élémentaire 62 forme la sortie de données 57 de la cellule de multiplexage 50. L'entrée de commande du multiplexeur élémentaire 62 est reliée à une sortie de la porte XOR 64. La 5 porte XOR 64 comporte deux entrées; une première entrée est reliée à l'entrée de code 56 et la deuxième entrée est reliée à l'entrée de commande 54 du multiplexeur élémentaire 50.
Après avoir décrit précédemment la structure de la cellule de multiplexage cryptographique 50 par référence à la figure 2a, qui est 10 également indiqué par CM (multiplexeur cryptographique), nous allons décrire dans la suite son mode de fonctionnement. La cellule de multiplexage cryptographique 50 est destinée à diriger vers la sortie de données 57 l'un des deux signaux de données, qui sont appliqués aux entrées de données 52a et 52b, en fonction d'un signal de commande appliqué à l'entrée de commande 15 54. Pour que la contribution de la cellule de multiplexage cryptographique 50 au profil de courant d'un circuit, dans lequel elle est intégrée, soit autant que possible indépendamment du signal de commande à l'entrée de commande 54, et pour que ladite cellule soit protégée contre l'espionnage par des attaques DPA, le signal de commande est codé avant son utilisation lors la 20 redirection au moyen d'une clé appliquée à l'entrée de clé 56.
Tous les signaux, c'est-à-dire la clé, le signal de commande, les signaux de données appliqués aux entrées de données 52a et 52b et le signal de données appliqué à la sortie de données 57, sont en fait des signaux binaires ou bits qui peuvent prendre l'un des deux états logiques, c'està-dire 25 un état haut logique ou un état bas logique.
Pour expliquer maintenant pourquoi le codage du signal de commande à l'entrée de commande 54, avant son utilisation pour la redirection, ne joue pas un rôle négatif quant au résultat de la redirection de sorte que le signal de données erroné appliqué aux entrées de données 52a et 52b est redirigé vers 30 la sortie 57, le mode de fonctionnement du multiplexeur élémentaire 62 est tout d'abord considéré au niveau de la sortie resp. de la fin. Dans le cas o la clé à l'entrée de clé 56 prend un état logique bas, également désigné parfois par la suite par 0, le signal de commande codé, que la porte XOR 64 délivre à l'entrée de commande du multiplexeur élémentaire 62 et qui est désigné dans 35 la figure 2 par cryptsel,correspond, indépendamment de l'état actuel correspondant du signal de commande à coder à l'entrée de commande 54, à ce dernier signal de commande à l'entrée de commande 54. En fonction de l'état du signal de commande à l'entrée de commande 54, le multiplexeur élémentaire 62 choisit ensuite l'entrée gauche ou droite de ces entrées de données et dirige le signal appliqué à cette entrée vers la sortie 57.
Cependant si la clé à l'entrée de clé 56 est dans un état logique haut, le signal de commande codé, que la porte XOR 64 délivre à l'entrée de commande du multiplexeur élémentaire 62, c'est-à-dire cryptsel, correspond à l'inverse du signal de commande à l'entrée de commande 54 indépendamment de l'état correspondant du signal de commande à l'entrée 10 de commande 54. En conséquence, le multiplexeur élémentaire 62 choisit dans ce cas, c'est-à-dire dans le cas o la clé à l'entrée de clé 56 est un état logique haut, précisément l'autre entrée de données par rapport au cas inverse o la clé est à un état logique bas, et dirige cette entrée vers la sortie 57.
Les autres multiplexeurs élémentaires 58 et 60 sont destinés à empêcher une erreur, ainsi générée, dans le résultat de sortie du multiplexeur cryptographique 50. Ces multiplexeurs élémentaires reçoivent tous les deux à leur entrée de commande la clé à l'entrée de clé 56 en tant que signal de commande. Ils choisissent alors tous les deux, car ils jouent le même rôle, en 20 fonction de la clé, la même entrée de données parmi leurs entrées de données et dirige le signal à cette entrée vers la sortie, comme par exemple l'entrée gauche de leurs entrées de données, lorsque la clé est à 0.
Cependant, comme leurs entrées de données sont reliées de façon inversée aux entrées de données 52a et 52b de la cellule de multiplexage 25 cryptographique 50, il délivre effectivement à chaque fois un signal différent parmi les signaux de données au niveau des entrées de données 52a et 52b.
Les multiplexeurs élémentaires 58 et 60 délivrent également des signaux différents parmi les signaux de données aux entrées de données 52a et 52b, dans le cas o la clé 56 est dans l'autre état, donc à par exemple dans 30 un état logique haut. Dans ce cas, cependant, en comparaison avec le cas précédent, les multiplexeurs élémentaires 58 et 60 délivrent chacun l'autre signal de données. La façon, dont les deux signaux de données appliquées aux entrées de données 52aet 52b de la cellule de multiplexage 50 sont appliqués aux entrées de données du multiplexeur élémentaire 62, change en 35 fonction de l'état de la clé 56. Mais cette inversion corrige justement le changement décrit précédemment dans le choix de l'entrée de données, que le multiplexeur élémentaire 62 choisit parmi ses entrées de données pour la délivrer à sa sortie en fonction de l'état de la clé à l'entrée de clé 56. De cette façon, le signal de données aux entrées de données 52a et 52b est toujours dirigé vers la sortie de données 57 indépendamment de l'état de la clé à 5 I'entrée de clé 56, lequel signal est appliqué à l'entrée de données 52a resp.
52b, comme indiqué par le signal de commande à l'entrée de commande 54, donc par exemple le signal à l'entrée 52a lorsque le signal de commande = 0 et le signal à l'entrée 52b lorsque le signal de commande = 1 indépendamment de la clé à l'entrée 56.
La structure représentée dans la figure 2a et constituée de trois multiplexeurs élémentaires à deux entrées 58, 60 et 62 permet de garantir que aucun de ces multiplexeurs élémentaires n'est commandé avec le signal de commande éventuellement secret à l'entrée de commande 54. De façon inhérente, la structure veille à ce que les multiplexeurs élémentaires 58 et 60 15 fonctionnent en courant indépendamment du multiplexeur élémentaire 62.
Des attaques par DPA sont alors rendues très difficiles car le niveau de corrélation entre le profil de courant généré et le signal de commande est réduite.
Étant donné que la clé à l'entrée de clé 56 n'a aucune influence sur le 20 résultat à la sortie de données 57, elle peut être constamment modifiée comme par exemple à l'aide d'un générateur aléatoire ou bien de tout autre dispositif de variation.
Dans la figure 2b, il est représenté une cellule de multiplexage cryptographique 50' opposé à la cellule de multiplexage cryptographique 50 25 de la figure 2a. Elle possède les mêmes composants que la cellule de multiplexage cryptographique de la figure 2a. C'est pourquoi on a utilisé les mêmes références que dans la figure 2a. L'exemple de réalisation de la figure 2b diffère de celui de la figure 2a uniquement en ce qui concerne l'application des signaux de commande aux multiplexeurs élémentaires 58 à 62.
Là encore, les deux entrées de la porte XOR 64 sont reliées à l'entrée de clé 54 resp. à l'entrée de commande 56 de la cellule 50'. La sortie, à laquelle la porte XOR 64 délivre le signal de commande codé, est cependant reliée cette fois-ci aux entrées de commandes des multiplexeurs élémentaires 58 et 60. L'entrée de commande du multiplexeur élémentaire 62, c'est-à-dire 35 du multiplexeur élémentaire de l'étage de sortie contrairement à l'étage d'entrée formé par les multiplexeurs élémentaires 58 et 60, est reliée à l'entrée de clé 56. Des considérations similaires à celles auxquelles on s'est livré précédemment par référence à la figure 2 entraîne qu'une application modifiée, provoquée par le codage du signal de commande à l'entrée de commande 54, de la paire de signaux de données aux entrées de données du 5 multiplexeur élémentaire 62 est corrigée par l'application de la clé comme signal de commande à l'entrée de commande du multiplexeur élémentaire 62 de sorte que, là encore indépendamment de quel état dans lequel se trouve la clé 56, le signal de données aux entrées de données 52a et 52b est toujours dirigé vers la sortie de données 57, lequel signal correspond à l'état 10 correspondant du signal de commande à l'entrée de commande 54.
En ce qui concerne la description précédente, il faut mentionner qu'il n'est absolument pas nécessaire que les trois multiplexeurs élémentaires 58, 60 et 62 aient une structure identique. Ainsi, il peut être prévu par exemple un inverseur destiné à inverser le signal de commande appliqué à l'un des 15 multiplexeurs élémentaires 58 et 60 par rapport au signal de commande appliqué à l'autre; les entrées de données de la cellule doivent alors être raccordées de façon appropriée aux entrées de données des multiplexeurs élémentaires 58 et 60. Une telle structure correspondrait sensiblement la description précédente si on considérait dans un tel cas l'inverseur et le 20 multiplexeur ensemble comme un multiplexeur élémentaire selon la
description précédente.
Les exemples de réalisation précédents concernaient un exemple de réalisation simple dans lequel les signaux mentionnés n'étaient que des signaux binaires resp. la cellule de multiplexage ne réalisait qu'une direction 25 2-en-1. Naturellement, on peut imaginer d'autres exemples de réalisation avec des signaux de plusieurs bits et un codage différent du codage XOR mentionné.
Après avoir décrit précédemment deux exemples de réalisation d'une cellule de multiplexage cryptographique qui permettent de diriger vers une 30 sortie l'un des deux signaux avec une sécurité majorée contre des attaques DPA en fonction d'un signal de commande secret, des exemples de réalisation de boîte S seront décrits dans la suite en se référant aux figures 3 à 5 qui sont structurés en utilisant ces cellules de multiplexage cryptographique de sorte que ces cellules présentent une sécurité majorée 35 contre l'espionnage d'informations par des attaques DPA sur les valeurs entrées dans la boîte S. Pour simplifier la représentation, il est tout d'abord décrit, en se référant aux figures 3 à 5, seulement des exemples de réalisation d'une boîte S 3-en-1 dans lesquelles une correspondant est établie entre une valeur d'entrée resp.
une valeur d'adresse de trois bits et une valeur de sortie d'un bit. Il est décrit 5 ensuite comment ces exemples de réalisation peuvent être appliqués à d'autres boîtes S comme par exemple des boîtes S 6-en-4 utilisées dans le procédé DES.
Cependant, avant d'expliquer en détail les exemples de réalisation des boîtes S en se référant aux figures 3 à 5, il faut se référer dans la suite une 10 fois encore brièvement à la figure 6 pour montrer en quoi l'utilisation des boîtes S dans le procédé DES pose un problème en ce qui concerne des attaques DPA pour pouvoir y faire référence dans la description des figures 3 à 5.
Comme le ressort de la figure 6 qui a déjà été décrite au début de la 15 description, les boîtes S resp. les correspondances 918 définies par ces boîtes font partie d'un arrondi DES réalisé 16 fois et constituant les étapes 908, 910, 912, 918, 920 et 922. Dans chaque arrondi, un résultat intermédiaire, c'est-à-dire le bloc de données élargi conformément à l'extension 910, est combiné à une clé d'arrondi qui est déduite, d'une façon 20 connue 916, d'une clé principale 914 qui doit être tenue secrète. La combinaison consiste en la combinaison 912. Le résultat ainsi codé est introduit par portion resp. par blocs de 6 bits dans les boîtes S SI à S8. Les règles de correspondance des boîtes S sont fondamentalement connues en raison de la normalisation de l'algorithme.
Le problème réside maintenant dans le fait que, lors du traitement du blocs de données codé après la combinaison 912 dans les boîtes S SI à S8, un profit de courant pourrait être généré à partir duquel on pourrait obtenir déduire via l'attaque DPA la clé d'arrondi et la clé principale 914 qui doit être tenue secrète. Une boîte S doit alors toujours posséder une corrélation la plus 30 faible possible entre le profil de courant et la valeur d'adresse de départ, ici le bloc de données codé conformément la combinaison 912.
La figure 3 représente un exemple de réalisation d'une boîte S 3-en-1 qui établit la correspondance entre une valeur d'entrée resp. d'adresse de trois bits de départ sel = {sell, sel2, sel3} et une valeur de sortie d'un bit 35 codée qui résulte d'une valeur de sortie, déterminée par la règle de correspondance à la base de la boîte S, par une combinaison XOR avec un bit de codage outkey1.
La boîte S de la figure 3, qui est indiquée de façon générale par la référence 100, comporte huit entrées de données 102a à 102h, une sortie de 5 données 103, trois entrées de commande 104a, 104b et 104c qui sont désignées par csel, " csel " ayant la même signification que " cryptsel " de la figure 2a, trois entrées de clé 106a, 106b et 106c ainsi qu'une entrée de clé de codage 108. Un signal binaire, qui se trouve dans un état logique haut ou bien dans un état logique bas, est appliqué à chaque entrée. Les états des 10 signaux au niveau des entrées de données 102a à 102b définissent d'une façon prédéterminée, qui ressortira de la suite de la description, la règle de correspondance de la boîte S 100, sont fixes et sont en outre représentés par vl à v8. Comme il ressort de la comparaison de la figure 3 et de la figure 2, le signal cryptsel (csel) est généré par une porte XOR (64 dans la figure 2a), non 15 représenté dans la figure 3 ou la figure 4, à partir du signal " Select " de la figure 2a.
Les signaux csell à csel3, qui forment ensemble une représentation binaire univoque de la valeur d'entrée de trois bits sel, sont appliqués aux trois entrées de données 104a à 104c; à titre d'exemple, csell doit être le bit de 20 poids faible et csel3 doit être le bit de poids fort. Les signaux aux entrées de clé 106a à 106c sont désignés par key1 à key3 et forment ensemble une représentation binaire univoque d'une clé de trois bits; là encore, key1 doit être le bit de poids faible et key3 doit être le bit de poids fort. Le bit de clé de codage désigné par outkey1 est appliqué à l'entrée de clé de codage 108.
Grosso modo, la boîte S 100 être tout d'abord constituée d'une partie de codage 110 et d'une partie de multiplexage ou d'un dispositif de multiplexage 112. La partie de codage 110 est formée par huit portes 11 Oa à 110 b. Chaque porte XOR comporte deux entrées et une sortie. Une première entrée de chaque porte XOR 110 a à 110h est reliée à l'entrée binaire de 30 codage 108. La deuxième entrée de chaque porte XOR est reliée à une entrée différente des huit entrées de données 102a à 102h.
La partie de multiplexage 112 est formée par un système de multiplexage arborescent à trois étages constitué de cellules de multiplexage cryptographique du type de la figure 2a ou de la figure 2b (y compris la porte 35 associée, comme par exemple 64 dans la figure 2a). Les cellules de multiplexage cryptographique d'un premier étage, ou étage initial, sont indiquées par 114a, 114b, 114c et 114d. Les cellules de multiplexage cryptographique d'un deuxième étage du système de multiplexage arborescent sont désignées par 116a et 116b, tandis qu'une cellule de multiplexage cryptographique d'un étage final du système de multiplexage 5 arborescent est désignée par 118a. Les étages du système de multiplexage arborescent sont désignés d'une façon générale par 114, 116 et 118. La structure du système de multiplexage arborescent, désigné dans la suite par 112, est telle que les entrées de données des cellules de multiplexage cryptographique d'un étage précédent sont toujours reliés chacune à une 10 entrée différente des entrées de données de la cellule de multiplexage cryptographique ou des cellules de multiplexage cryptographique d'un étage suivant de sorte que le nombre de multiplexeurs cryptographiques d'un étage à l'autre est divisé par deux. Les entrées de commande des cellules de multiplexage cryptographique sont reliées chacune à une entrée différente 15 des entrées de commande 104a à 104c. En particulier, les entrées de commande des cellules de multiplexage 114a à 114d d'un étage initial 114 sont reliées à l'entrée de commande 104a de la boîte S 110, les entrées de commande des cellules de multiplexage 116a à 116b sont reliées à l'entrée de commande 104 et l'entrée de commande de la cellule de multiplexage 20 cryptographique 118a est reliée à l'entrée de commande 104c. De façon correspondante, les cellules de multiplexage cryptographique d'un étage sont reliées chacune à une même entrée, mais différente par rapport à un autre étage, des entrées de clé 106a à 106c.
Chaque porte XOR 110a à 110h comporte une sortie. La sortie de 25 chaque porte XOR 11 Oa à 11 Oh est reliée à une entrée différente des entrées de données des cellules de multiplexage cryptographique 114a à 114d de étage initial du système de multiplexage arborescent 112. La sortie de données de la cellule de multiplexage cryptographique 118a de l'étage finale 118 forme en même temps la sortie de données 103 de la boîte S 100.
Après avoir décrit précédemment la structure de la boîte S 100, nous allons décrire dans la suite son mode de fonctionnement. Nous considérerons tout d'abord le cas o l'état du bit de clé de codage est à un niveau logique bas, ou 0. Dans ce cas, comme il ressort du tableau suivant 1, le signal respectif vl...v8, appliqué à l'entrée de la porte respective XOR, peut être 35 délivré de façon inchangée à la sortie de la porte XOR.
Tableau 1
Première entrée Deuxième entrée Sortie (outkey1l) (outkey2) 0 0 0 0 1 1 1 0 1
O __ I O
1 1 0 Dans le cas o outkey1 = 0, les états vl à v8 sont successivement appliqués par la porte XOR de façon inchangée aux entrées de données du multiplexeur cryptographique 114a à 14d.
Un seul de ces signaux vl à v8 est dirigé vers la sortie 103 par le système de multiplexage arborescent 112 en fonction de la valeur d'entrée sel mais indépendamment de la clé key. Ceci est expliqué dans la suite. Comme décrit précédemment se référant aux figures 2a et 2b, chaque cellule de multiplexage cryptographique dirige vers la sortie l'un des signaux à ses 10 entrées de données en fonction du signal de commande à l'entrée de commande et indépendamment de l'état du signal à l'entrée de clé. Les multiplexeurs cryptographiques sont disposés à titre d'exemple de façon à diriger vers sa sortie l'entrée gauche de ses entrées de données, lorsque le signal de commande est à un état logique bas, c'est-à- dire 0, au niveau de 15 son entrée de commande. Il en va de même pour les autres cellules de multiplexage cryptographique 16a, 16b et 118. De cette façon, il est définie une association univoque entre d'une part les valeurs d'entrée possibles, que peut prendre la valeur d'entrée de départ sel, et les entrées de données des cellules de multiplexage cryptographique 114a àI 114d; cette association 20 associe à chaque valeur d'entrée possible une entrée différente de ces huit entrées de données qui est dirigée vers la sortie 102 lorsque sa valeur d'entrée est appliquée aux entrées de commande 104a à 104c par le système de multiplexage arborescent 112.
En supposant que les cellules de multiplexage cryptographique sont 25 disposées comme précédemment et que outkey1 = 0, l'association peut être illustrée par le tableau suivant qui montre en fonction des valeurs de sell à sel3 (trois premières colonnes) pour le cas o outkey1 = 0, quel est celui des signaux vl à v8 qui est dirigé vers la sortie 103 (colonne de droite): Tableau 2 sell sel2 sel3 Valeur de sortie d'arrivée pour outkeyl = 0 0 0 0 vl 0 0 1 v2 0 1 0 v3 0 1 1 v4 1 0 0 v5 1 0 I v6 I 1 0 v7 1 1 1 v8 Un signal spécial vl à v8 ou une entrée de données spéciale 102a à 102h est associé en conséquence à chaque valeur d'entrée possible de trois bits.
Chaque signal vl à v8 ne peut prendre qu'un seul état parmi deux états 5 logiques, comme déjà mentionné. Ce sont les deux valeurs de sortie possibles qui peuvent être délivrées à la sortie 103 de la boîte S 100. Celui des deux états que doivent avoir des signaux vl à v8 dépend du tableau de vérité souhaité ou bien de la règle de correspondance souhaitée de la boîte S 100. Les états sont donc déterminés par l'association telle que présentée 10 dans le tableau 2, en donnant à vl- v8 du tableau 2 la valeur de sortie possible, c'est-à-dire 0 ou 1, de façon à correspondre à la règle de correspondance de la boîte S 100 qui est associe une valeur de sortie possible à chacune des huit valeurs d'entrée possibles.
La discussion précédente a montré que, dans le cas o outkey1 = 0, la 15 valeur de sortie, qui est donnée en fonction de la valeur d'entrée à la sortie 103 de la boîte S, est celle parmi les valeurs de sortie possibles pour laquelle il y a une correspondance avec la valeur d'entrée de départ respective conformément à la règle de correspondance de la boîte S. En prévoyant les cellules de multiplexage cryptographique, il est cependant possible en 20 modifiant la clé de supprimer dans une large mesure la corrélation entre le profil de courant d'une part et la valeur d'entrée de départ de façon à rendre difficiles les attaques DPA.
Une certaine corrélation entre la valeur d'entrée de départ et le profil de courant est encore obtenue par le fait que les signaux vl à v8 définissant la règle de correspondance sont donnés pour être fixes et sont associés de façon fixe à la valeur d'entrée de départ sel. Cette corrélation est encore supprimée par la clé de codage outkey1.
Comme cela sera exposé de façon détaillée dans la suite, le bit de 5 codage a pour effet que, à la place de la valeur de sortie d'arrivée non codée pour laquelle il y a une correspondance avec la valeur d'entrée de départ sel13 conformément à la règle de correspondance de la boîte S, cette valeur de sortie est délivrée sous forme codée et passe par le système de multiplexage arborescent 112. En faisant varier la clé de codage outkey1, toute corrélation 10 entre le profil de courant d'une part et la valeur d'entrée de départ sel1-3 d'autre part peut en conséquence être supprimée; le codage variable de la valeur de sortie avec le bit de clé doit être pris en compte dans le traitement ultérieur.
Dans le cas présent, le codage est réalisé par la partie de codage 110 15 en combinant avec un opérateur XOR les signaux vl à v8 et le bit de codage outkey1. Cela a pour conséquence que, lorsque outkey1 est égal à 0, comme mentionné précédemment, la valeur de sortie à la sortie 103 correspond à la valeur de sortie pour laquelle il y a une correspondance avec la valeur d'entrée respective sell-3 conformément à la règle de correspondance de la 20 boîte S, c'est-à-dire la valeur de sortie d'arrivée. Lorsque outkey1 est égal à 1, chacun des signaux vl à v8 est inversé, comme il ressort du tableau 1, avant d'obtenir l'entrée de données respective parmi les entrées de données des cellules de multiplexage cryptographique 114a à 114d, c'est pourquoi il est obtenu à la sortie 103 une valeur de sortie qui est inversée par rapport à la 25 valeur de sortie qui est obtenue pour la même valeur d'entrée sell-3 dans le cas o outkey1 est égal à 0. En conséquence, la boîte S de la figure 3 réalise une correspondance entre une valeur d'entrée sell-3 et une valeur de sortie d'arrivée codées par combinaison avec le bit de codage via un opérateur XOR conformément à la règle de correspondance.
En faisant varier de façon aléatoire le bit de codage outkey1 ainsi que la clé de trois bits key, il est maintenant possible de rendre les processus de conversion dans les multiplexeurs cryptographiques totalement indépendants de la valeur d'entrée sel à protéger contre des attaques DPA. Cet avantage est décrit de façon détaillée en liaison avec la figure 6. Cependant, il est décrit 35 auparavant par référence aux figures 4 et 5 d'autres exemples de réalisation d'une boîte S 3-en-1 qui représentent une variante de la boîte S de la figure 3.
La figure 4 représente une boîte S 3-en-1 100 qui se distingue de celle représentée dans la figure 3 simplement par le fait que l'entrée de bit de clé a été assemblée avec l'une des entrées de commande de la boîte S, à titre d'exemple l'entrée de commande 106a. Si cette entrée assemblée est 5 indiquée dans la figure 4 par la référence 106a'. Comme on peut le voir, l'entrée de bit de codage a été assemblée à titre d'exemple avec l'entrée de commande du premier étage 114 du système de multiplexage arborescent 112 de sorte que le bit de poids faible dans la représentation binaire de la clé key, c'est-à-dire key1, est appliqué aux premières entrées de la porte XOR de 10 la partie de codage 110 en tant que bit de codage. Naturellement, il serait également possible d'assembler l'entrée de bit de codage avec une autre entrée quelconque des entrées de commande 106b et 106c.
L'exemple de réalisation de la figure 4 est simplifié par rapport à l'exemple de réalisation de la figure 3 par le fait qu'il faut faire trois autres bits 15 seulement, c'est-à-dire key1, key2 et key3, pour obtenir la suppression susmentionnée de la corrélation de la consommation de puissance des valeurs d'entrée de départ.
La figure 5 représente une autre simplification de l'exemple de réalisation de la figure 3. Cette simplification consiste ici à remplacer le 20 codage actif, utilisé dans l'exemple de réalisation de la figure 3, des signaux vl à v8 définissant la règle de correspondance avant le premier étage du système de multiplexage arborescent par un codage passif en omettant le premier étage du système de multiplexage arborescent de sorte que le bit de codage outkey1 et le bit de commande de poids fort sell sont appliqués de 25 façon appropriée en forme et en distribution individuellement aux entrées de données de l'étage suivant 116; selon la circonstance on utilise le fait que les signaux vl à v8 représentant la règle de correspondance sont bien connus.
L'exemple de réalisation de la figure 5 représente une simplification de la boîte S de la figure 3 pour le cas exemplaire d'une règle de correspondance 30 concrète. Plus précisément, la boîte S 100" de la figure 5 est une simplification de la boîte S de la figure 3 pour une règle de correspondance pour laquelle les états des signaux vl à v8 prennent les valeurs sous vl à v8 dans la figure 5 en 115. La figure 5 représente en conséquence une boîte S 3en-1 qui établit une correspondance entre une valeur d'entrée de 3 bits 35 comportant les bits sell, sel2 et sel3 de valeur croissante et une valeur de sortie d'un bit conformément à la règle de correspondance suivante resp. le tableau de vérité suivant, tant que outkeyl est égal à 0;
Tableau 3
Sell sel2 sel3 Valeur de sortie 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 01 La boîte S de la figure 5 comporte une entrée de données 103, trois entrées de commande 104a, 104b et 104c, deux entrées de clé 106b et 106c ainsi qu'une entrée de bit de codage 108.
Grosso modo, la boîte S 100" est constituée d'une partie de raiseà disposition de signaux de données 1 10', ainsi qu'une partie de multiplexage 10112'. La partie de multiplexage 112' correspond aux deux derniers étages du système de multiplexage arborescent de la figure 3 resp. des systèmes de multiplexage arborescent de la figure 3 sans l'étage initial. En particulier, la partie de multiplexage 112' est constituée en conséquence d'un système de multiplexage arborescent à deux étages comportant un étage initial 116' et un tage final 118';, l'étage initial 116' cornporte deux cellules de multiplexage cryptographique 116a et 116b et l'étage final comporte une cellule de multiplexage cryptographique 118a. Les sorties de données des cellules de multiplexage cryptographique 116a et 116b sont reliées aux deux entrées de données de la cellule de multiplexage cryptographique 118a. La sortie de 20 données de la cellule de multiplexage cryptographique 1 18a forme la sortie de données 103 de la boîte S 100". Les entrées de commande des cellules de multiplexage cryptographique 116a, 116b sont reliées à l'entrée de commande 104b, tandis que l'entrée de commande de la cellule de multiplexage cryptographique 118 est reliée à l'entrée de commande 104c. De façon 25 similaire, les entrées de clé des cellules de multiplexage cryptographique 116a, 116b sont reliées à l'entrée de clé 104b et l'entrée de clé de la cellule de multiplexage cryptographique 118a est reliée à l'entrée de clé 106c.
La partie de mise à disposition de signaux de données 110' est constituée sensiblement de pistes conductrices qui sont reliées à une 5 extrémité à l'entrée de bits de codage 108 resp. à l'entrée de commande 104a afin de délivrer de façon appropriée les signaux sur ces pistes conductrices aux entrées de données des cellules de multiplexage cryptographique 116a, 116b de l'étage initial 116. Des inverseurs, ici des inverseurs 152a et 152b, sont destinés à inverser les signaux provenant des entrées 108 et 104a avant 10 d'être appliqués à des entrées de données déterminées parmi les entrées de données du multiplexeur de clé cryptographique 116a, 116b. Dans le cas présent, la partie de mise à disposition de signaux de données 110' est conformée de telle sorte que le bit de codage est appliqué à l'entrée de données gauche de la cellule de multiplexage cryptographique 116a, le bit de 15 poids fort de la valeur d'entrée de 3 bits sel, c'est-à-dire sell, est appliqué à l'entrée de données droite de la cellule de multiplexage cryptographique 116a, la valeur de sell inversée parl'inverseur 152a, c'est-à-dire sell, est appliquée à l'entrée de données gauche de la cellule de multiplexage cryptographique 116b, la valeur de outkey1 inversée par l'inverseur 152b, c'est-à-dire outkeyl, 20 est appliquée à l'entrée de données droite de la cellule de multiplexage cryptographique 116b (le trait supérieur indique l'inverse binaire de l'expression qui se trouve au-dessous).
Cette façon de conformer les entrées de données des cellules de multiplexage cryptographique 116a et 116a donne la règle de correspondance 25 souhaitée et le codage de la valeur de sortie à délivrer 103 avec la même hypothèse que celle déjà utilisée dans la description de la figure 3, c'est-à-dire qu'un signal de commande ayant la valeur 0 à une entrée de commande de l'une des cellules de multiplexage cryptographique 116a à 118a commande la redirection de l'entrée de données gauche vers la sortie de données 30 correspondantes, tandis qu'un signal de commande de 1 commande la redirection du signal vers la sortie de données droite.
Les considérations qui conduisaient à l'application des signaux des entrées 108 et 104a aux entrées de données des multiplexeurs cryptographiques 116a et 116b, sont expliquées dans la suite. Le point de 35 départ est la boîte S, comme représenté dans la figure 3. Les signaux vl à v8 sont déterminés par la règle de correspondance de la boîte S 100" de la façon représentée en 115. Si on prend en compte maintenant la porte XOR 11 Oa à 110h et les cellules de multiplexage cryptographique 114a à 114h plus en détail, on voit alors qu'une cellule de multiplexage cryptographique 114a à 114d forme à chaque fois conjointement avec ses deux portes XOR reliées 5 une unité dont la valeur à la sortie de données du multiplexeur cryptographique correspondant dépend uniquement des variables outkey1 et sell, mais pas de key1, car celle-ci n'a aucun effet sur le résultat de la redirection effectuée par le multiplexeur cryptographique, et non pas de vl à v8 car celles-ci sont fixes et invariables.
Ainsi, dans le cas de vl et v2, il est donné à celles-ci des valeurs fixes de 0 et 0. Il ressort de Tableau 1, qui concerne la combinaison XOR, que outkey1 est appliqué au niveau des deux entrées de données de la cellule de multiplexage cryptographique 114a. Indépendamment de l'état précis du signal sell, la cellule de multiplexage cryptographique 114a délivre en 15 conséquence outkey1 à l'entrée de données gauche de la cellule de multiplexage cryptographique 116a de l'étage suivant 116. Des considérations similaires conduisent au fait que la cellule de multiplexage cryptographique 114d délivre en tout cas à sa sortie de données la valeur outkeyl destinée à l'entrée de données droite de la cellule de multiplexage cryptographique 116b 20 de l'étage suivant 116 car ses signaux associés v7 et v8 sont tous les deux à 1.
Le cas de v3 et v4 est tout autre. Ces signaux ont les valeurs 1 pour v3 et 0 pour v4. Les valeurs en v3 et v4 sont en conséquences inversées l'une par rapport à l'autre. Dans le cas de outkey1 = 0, ces signaux sont appliqués 25 sous cette forme également à la cellule de multiplexage cryptographique 114b. Si la valeur de sell est égale à zéro, la cellule de multiplexage cryptographique 114b choisit l'entrée de données gauche à laquelle est appliquée ensuite la valeur v3 = 1. Dans le cas de sell = 1 et outkey1 = 0, la cellule 104b délivre 0. C'est totalement l'inverse pour le cas de la paire v5 et 30 v6, qui est appliquée de façon justement inverse de la paire v3 et V4 aux entrées de données de la cellule de multiplexage cryptographique 114c lorsque outkey1 est égal à zéro. De cette façon, les résultats, que délivrent les cellules de multiplexage cryptographique 114b et 114c à leurs sortie de données correspondantes de la cellule de multiplexage cryptographique 35 suivante 116a resp. 116b, peuvent être représentés par sell d'une part et par sell d'autre part.
Les considérations précédentes sont généralement valables et applicables à toute règle de correspondance resp. toute allocation de valeurs à des signaux vl à v8 et sont encore une fois résumées dans le tableau 1:
Tableau 4
V impair V pair Valeur à délivrer à l'entrée de données de la cellule cryptographique suivante 0 0 outkey1 1 1 outkeyl 1 0 sel 1 0 1 sell L'utilisation du tableau 4 amène en conséquence à la structure de la partie de mise à disposition de signaux de données 110', comme indiqué dans la figure 5. Dans ce cas, vl et v2 sont alors égaux à 0 et 0, c'est pourquoi le signal outkey1 est appliqué à l'entrée de données gauche de la cellule de 10 multiplexage cryptographique 116a. Le signal v3 v4 est égal à 1 0, c'est pourquoi selon le tableau 4 la valeur seli est appliqué à l'entrée de données droite de la cellule de multiplexage cryptographique 116a etc. L'exemple de réalisation de la figure 5 représente en conséquence une simplification par rapport à la figure 3 en ce que on a besoin de moins de 15 cellules de multiplexage cryptographique et d'aucune porte XOR. Le mode de fonctionnement est par ailleurs le même.
En se référant aux figures 3 à 5, il a été décrit précédemment en conséquence trois exemples de réalisation de boîtes S 3-en-1 qui délivrent en fonction d'une valeur d'entrée de 3 bits 1 sel une valeur de sortie d'arrivée 20 conformément à une règle de correspondance qui permettait d'associer les huit valeurs d'entrée possibles, que pouvaient prendre la valeur d'entrée de départ, c'est-à-dire {0 0 0}, {0 0 1}, {0 1 0}, {0 1 1}, etc. à l'une des deux valeurs de sortie possibles, c'est-à- dire 0 ou 1; la valeur de sortie d'arrivée a été délivrée sous forme codées, ici dans ce cas combinée par un opérateur 25 XOR au bit de codage outkey1.
Les boîtes S des figures 3 à 5 peuvent tout simplement être également appliquées à des valeurs d'entrée ayant plus ou moins de bits. De cette façon, on pourrait tout simplement obtenir des boîtes S 6-en-1. Pour obtenir maintenant des boîtes S 6-en-4 nécessaires au procédé DES, on utilise quatre boîtes S 6-en-1 du type de la figure 3, 4 ou 5. Les bits de clé key# de chacune des quatre boîtes S 6-en-1 peuvent être identiques ou différentes du 5 bit de clé key# des autres boîtes. De même, le bit de codage outkey1 peut être le même pour toutes ces boîtes S 6-en-1. Cependant, il est plus sûr que le bit de codage outkey# soit différent pour chacune des quatre boîtes 6-en-1, c'est-à-dire outkey1 pour la première, outkey2 pour la deuxième etc. Les règles de correspondance des quatre boîtes S 6-en-1 seraient 10 déduite de la règle de correspondance générale qui doit être valide pour la boîte S 6-en-4 qui est constituée de quatre boîtes S 6-en-1. La règle de correspondance générale établit une correspondance entre des valeurs d'entrée de six bits et des valeurs de sortie de quatre bits. Chaque bit de la valeur de sortie de quatre bits est délivré par une boîte S 6-en-1. En 15 conséquence, la règle de correspondance de chaque boîte S 6-en-1 individuelle est déterminée à partir de la règle de correspondance générale, qui établit la correspondance entre six bits et quatre bits, par les valeurs dans la position binaire correspondante de la valeur de sortie conformément à la règle de correspondance, lesquelles valeurs doivent être délivrées par la boîte 20 S 6-en-4.
Ceci est illustré par un cas simple de boîte S 3-en-2. Si une boîte S 3en2 est générée avec la règle de correspondance représentée dans le tableau 5, on utilise alors deux boîtes S 3-en-1 ensemble dont la première délivre le bit de poids fort de la valeur de sortie et comporte la règle de 25 correspondance du tableau 6, et dont la deuxième boîte S délivre le bit de poids faible de la valeur de sortie de deux bits et comporte la règle de correspondance représentée dans le tableau 7.
Tableau 5
sell sel2 sel3 Valeur de sortie d'arrivée 0 0 0 00 0 0 1 01 0 1 0 10 0 1 1 00 1 0 0 01 1 0 1 11 1 1 0 10 1 1 1 11
Tableau 6
sell sel2 seI3 Valeur de sortie d'arrivée 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 I 0 1 1 1 1 0 1 1 1 1 1
Tableau 7
sell se12 se13 Valeur de sortie d'arrivée 0 0 0 0 0 0 1 1 0 10 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 Dans une application d'une boîte S 6-en-4 constituée de façon appropriée aux boîtes S sl à s8 dans l'algorithme DES, qui est représenté un figure 6, un 5 dispositif d'attaque DPA ne pourrait plus déduire en conséquence ni les valeurs d'entrée secrètes ni la clé principale resp. les clés d'arrondi en raison de la suppression de la corrélation entre le profil de courant généré par les processus de redirection et les valeurs d'entrée dans les boîtes S sl à s8. Les valeurs de sortie des boîtes S sont codées avec les clés de codage variable 10 de quatre bit outkey1 à outkey4.
En se référant à la description précédente, il faut mentionner que ces clés de codage peuvent varier de façon différente. À la place de la combinaison XOR utilisée pour le codage dans la description des figures précédente, on pourrait utiliser en outre une combinaison NXOR. En outre, la description précédente des figures pourrait être appliquée tout simplement à des cas dans lesquels les signaux sont constitués non seulement d'un signal 5 d'un bit mais également de signaux de plusieurs bits. Ainsi, par exemple, les signaux vl à v8 pourraient être déjà des signaux de deux bits. Dans ce cas, les multiplexeurs cryptographiques et les multiplexeurs élémentaires devraient également être adaptés en euxmêmes, d'une façon aisément compréhensible pour un homme du métier, pour rediriger par paire les bits 10 des signaux de deux bits. Dans ce cas, on pourrait également choisir un codage plus complexe des signaux vl à v8.
En se référant à la partie de multiplexage 112, il faut mentionner que celle-ci peut ne pas être constituée exclusivement de cellules de multiplexage cryptographique, mais qu'elle peut être constituée de façon mixte de cellules 15 de multiplexage cryptographique et de multiplexeurs élémentaires afin d'avoir la possibilité de constituer le système arborescent tout simplement de multiplexeurs élémentaires. En outre, on pourrait regrouper plusieurs multiplexeurs pour obtenir un multiplexeur plus complexe, par exemple un multiplexeur 4-en-1, afin de d'avoir la possibilité de former toute la partie de 20 multiplexage 112 à partir d'un multiplexeur 8-en-1, dans les présents exemples de réalisation.
En outre, les exemples de réalisation des figures 3 à 5 concernent en effet des boîtes S de l'algorithme DES, mais les exemples de réalisation peut naturellement être tout simplement utilisées pour d'autres applications. Ainsi, 25 les dispositifs de correspondance représentés pourraient également être utilisés pour mettre en oeuvre, d façon sûre du point de vue DPA ou SPA, par exemple un décodeur ou des décodeurs qui n'ont également qu'une fonction de correspondance.
Les exemples de réalisation, décrits se référant aux figures 3 à 5, 30 illustrent des boîtes S aléatoires qui déjouent les attaques DPA portés sur les algorithmes cryptographiques fondés sur ces boîtes. En d'autres termes, il est possible de réaliser une implémentation matérielle plus sûre du point de vue DPA avec une technique de circuit Semi-Custom comme par exemple la synthèse. La boîte S aléatoire, conjointement avec l'utilisation de la clé 35 variable selon la technique de circuit Sparkling, permet également de façon simple et rapide et à peu de frais de mettre en ceuvre des algorithmes de codage plus sûrs dans des matériels. La clé secrète et les données, ce qui est particulièrement important pour des codages de mémoires qui se trouve par exemple dans la mémoire, comme par exemple des coefficients d'algorithmes cryptographiques logiciels, peuvent être protégés de façon efficace contre des 5 attaques DPA ou SPA. Les exemples de réalisation des boîtes S complètent donc la technique de circuit Sparkling afin de traiter des données de façon plus sûre du point de vue DPA; le but de la technique de circuit Sparkling consiste généralement à soumettre des données ou des adresses utilisées à une clé aléatoire variant dans le temps, dite clé Sparkling, d'une combinaison 10 XOR.
Dans les exemples de réalisation des boîtes S, toute corrélation entre les données a été supprimée par une séparation conséquente de la clé Sparkling (key) et des données ainsi codées (sel) et une attaque DPA est donc rendue impossible. La technique Sparkling a été utilisée dans les boîtes 15 S des figures 3 à 5 en outre de telle sorte que les données d'entrée (sel) codées Sparkling des boîtes ont été traitées de façon efficace et sans les décoder dans les boîtes S afin de déterminer les valeurs de sortie des boîtes S. Les valeurs de sortie des boîtes S ne sont en outre jamais traitées de 20 façon décodée et semble dotées d'une autre clé Sparkling (outkey) à la sortie de la boîte S. De cette façon, on est sûr que à aucun moment une corrélation des données peut être déterminée et donc une attaque DPA serait possible.
Les circuits des figures 3 à 5 sont en outre simples et réguliers; la dernière propriété permet l'utilisation d'une cellule spéciale sur le plan des transistors 25 afin de minimiser la surface. Ils permettent de garantir de ne pas mélanger par synthèse la clé outkey et les données d'entrée (sel) codées. Les données de sortie possibles (vl à v8) sont protégées depuis le début par une clé Sparkling outkeyl.
La base des exemples de réalisation des figures 3 à 5 est formée par le 30 système arborescent de multiplexage qui est constitué des multiplexeurs cryptographiques. Le multiplexeur cryptographique permet un multiplexage de données via un signal de commande codé. Il est constitué principalement de trois multiplexeurs simples à deux entrées. Dans le premier étage, les données à multiplexer sont commutées par la clé Sparkling outkey1 ou par le 35 signal de commande Sparkling key1, c'est-à- dire de façon à utiliser un premier multiplexeur avec le signal commande positif et un deuxième multiplexeur avec le signal inversé. Le troisième multiplexeur à l'intérieur du multiplexeur cryptographique sélectionne alors le résultat des deux premiers multiplexeurs avec le signal non utilisé au début (signal de commande Sparkling ou clé Sparkling). Tant que les deux premiers multiplexeurs ne sont donc pas 5 fusionnés avec le troisième dans un circuit, comme c'est automatiquement le cas par exemple par synthèse lors de la conception du circuit, ceux-ci agissent du point de vue de la technique des courants indépendamment l'un de l'autre et le circuit est sûr du point de vue DPA. Dans la synthèse, ceci peut être garanti par un regroupement simple des portes ou bien il est possible 10 d'ajouter une cellule spéciale correspondante de la bibliothèque de cellules de l'environnement ou de la bibliothèque de développement qui a en soi un fort potentiel de surface.
Comme il a été décrit en outre, un système de multiplexage arborescent pour chacun des n bits de sortie peut être structuré pour une 15 boîte S m-en-n. Dans ce système arborescent, le bit de sortie d'une position binaire déterminée de la valeur de sortie est sélectionné pour le vecteur d'entrée. Cela donne un système arborescent binaire. Les valeurs de départ de la boîte S, c'est-à-dire les valeurs vl à v8, sur les feuilles du système arborescent lui-même sont déjà codées au début avec une clé Sparkling 20 (outkey1l) et traversent ainsi de façon codée tout le système arborescent. Cela permet de déjouer les attaques DPA sur les données de sortie de la boîte S. Pour des raisons de technique de circuit et de charge, c'est-à-dire pour une conception équilibrée, les lignes de commandes, permettant aux données d'entrée de parvenir à la boîte S, peuvent être redistribuées de façon 25 capacitive aux entrées pour les différents bits de sortie afin d'avoir sensiblement la même charge au niveau de chaque bit de section resp.
chaque entrée de commande. Étant donné que dans la boîte S les données de sortie, c'est-à-dire vl à v8, sont fixes, la structure de multiplexage cryptographique peut être fusionnée, comme décrit en se référant à la figure 30 5, sur le plan des feuilles (étage initial) du système arborescent. Ainsi, les exemples de réalisation des figures 4 et 5 peuvent être liés lorsque la clé Sparkling du plan des feuilles, c'est-à- dire key1, est également utilisée comme clé Sparkling pour le bit de sortie (outkey1), c'est-à-dire outkey1 = key1. Le premier étage peut donc être réduit à une partie de ligne ou un inverseur. Ceci 35 divise par deux la taille du système de multiplexage arborescent Liste des références Dispositif de correspondance 10 Dispositif de multiplexage 12 Dispositif de mise à disposition 14a à 14h Entrées de données 16 Entrée de commande 18 Sortie de données 50 Cellule de multiplexage cryptographique 52a et 52b Entrées de données 54 Entrée de commande 56 Entrée de clé 57 Sortie de données 58 Multiplexeur élémentaire Multiplexeur élémentaire 62 Multiplexeur élémentaire 64 Porte XOR Boîte S 102a à 102h Entrées de données 103 Sortie de données 104a à 104c Entrées de commande 106a à 106c Entrées de clé 108 Entrée de clé de codage 110 Dispositif de codage 112 Système de multiplexage arborescent 114 Étage initial 116 Deuxième étage 118 Étage final 114a à 114 Cellules de multiplexage cryptographique 116a,116b Cellules de multiplexage cryptographique 118a Cellule de multiplexage cryptographique Règle de correspondance 152a Inverseur 152b Inverseur 900 Bloc d'entrée de 64 bits 902 Permutation d'entrée 904 Moitié gauche du résultat d'arrondi de 64 bits 906 Moitié droite du résultat d'arrondi de 64 bits 908 Correspondance 910 Expansion 912 Combinaison XOR 914 Clé principale de 56 bits 916 Génération de clé d'arrondi 918 Correspondance de boîte S 920 Permutation 922 Combinaison XOR 924 Permutation de sortie 926 Bloc de sortie de 64 bits

Claims (10)

Revendications
1. Dispositif de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie codée d'arrivée conformément à une règle de correspondance permettant d'associer une pluralité de valeurs d'entrée 5 possibles à une pluralité de valeurs de sortie possibles, caractérisé en ce qu'il comporte un dispositif de multiplexage (10) qui comporte une entrée de commande, un certain nombre d'entrées de données (14a à 14h) et une sortie de données (18) destinée à la valeur de sortie codée d'arrivée et qui a pour 10 but de diriger un signal de données codé, appliqué à l'une des entrées de données (14a à 14h), vers la sortie de données (18); et un dispositif (12) de mise à disposition des signaux de données codés aux entrées de données (14a à 14h) du dispositif de multiplexage (10) en se fondant sur une clé de codage, le dispositif de mise à disposition (12) étant conformé et un signal de commande indiquant la valeur de sortie de départ étant appliqué à l'entrée de commande (16) du dispositif de multiplexage (10) de telle sorte que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, il est délivré à la sortie de données (18) du dispositif de multiplexage (10) une 20 valeur de sortie qui peut être obtenue, par un codage avec la clé de codage, à partir de la valeur de sortie possible à laquelle la valeur d'entrée de départ est associée conformément à la règle de correspondance.
2. Dispositif selon la revendication 1, caractérisé en ce que le signal de commande forme une correspondance univoque de la valeur d'entrée de 25 départ.
3. Dispositif selon la revendication 2, caractérisé en ce que le dispositif de mise à disposition (12) est conformé pour coder avec la clé de codage un signal de données, qui indique une valeur qui est choisie dans le groupe des valeurs de sortie possibles, pour chaque entrée de données (14a à 14h) du 30 dispositif de multiplexage afin d'obtenir un signal de données codé pour chaque entrée de données (14a à 14h), et pour délivrer les signaux de données codés aux entrées de données (14a à 14h) du dispositif de multiplexage (10).
4. Dispositif selon la revendication 3, caractérisé en ce que le dispositif de 35 mise à disposition (12) est conformé pour effectuer un codage en combinant la clé de verrouillage et le signal de données au moyen des opérateurs logiques XOR ou NXOR.
5. Dispositif selon la revendication 1, caractérisé en ce que le dispositif de mise à disposition (12) est conformé pour appliquer à chacune des entrées de 5 données du dispositif de multiplexage (10) une donnée codée qui est choisie dans un groupe qui comporte un bit d'une représentation binaire de la valeur d'entrée de départ, dont les bits restants sont indiquées de façon univoque par le signal de commande, un bit inverse de l'un des bits de la représentation binaire, un bit de codage et un bit inverse du bit de codage.
6. Dispositif selon la revendication 5, caractérisé en ce que le choix est effectué dans le groupe de telle façon que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, le codage avec le bit de codage, permettant d'obtenir la valeur de sortie, qui est délivrée à la sortie de données du dispositif de multiplexage (10) pour la valeur d'entrée possible 15 correspondante, à partir de la valeur de sortie possible à laquelle la valeur d'entrée possible respective est associée conformément à la règle de correspondance, est une combinaison par un opérateur XOR ou NXOR du bit de codage et de la valeur de sortie possible à laquelle la valeur d'entrée possible respective est associée conformément à la règle de correspondance. 20
7. Dispositif de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie générale codée d'arrivée conformément à une règle de correspondance générale permettant d'associer une pluralité de valeurs d'entrée possibles à une pluralité de valeurs de sortie générales possibles, lequel dispositif comporte au moins deux dispositifs selon l'une des 25 revendications 1 à 6, les valeurs de sortie codées d'arrivée au niveau des sorties de données des dispositifs de multiplexage fournissant ensemble une représentation univoque de la valeur de sortie générale codée d'arrivée.
8. Dispositif selon la revendication 7, caractérisé en ce que les clés de codage des dispositifs selon l'une des revendications 1 à 6 sont 30 indépendantes l'une de l'autre.
9. Dispositif selon l'une des revendications 1 à 8, caractérisé en ce que le dispositif de multiplexage est un système de multiplexage arborescent qui est structuré en étages successifs (114, 116, 118) qui comportent au moins un étage initial (114) et au moins un étage final (118), les étages finaux comportant un multiplexeur et les autres étages comportant plusieurs multiplexeurs, chaque multiplexeur (114a à 114h, 116a, 116b, 118a) comportant une première entrée de données, une deuxième entrée de données, une entrée de commande et une sortie de données, pour chaque étage la sortie de données des multiplexeur de cet étage 5 étant reliée à une entrée différente des entrées de données du ou des multiplexeurs des étages suivants du système de multiplexage arborescent (112), et les entrées de commande du ou des multiplexeurs à l'intérieur de chaque étage sont commandées par un signal de commande respectif 10 différent pour chaque étage.
10. Procédé de mise en correspondance entre une valeur d'entrée de départ et une valeur de sortie codée d'arrivée conformément à une règle de correspondance permettant d'associer une pluralité de valeurs d'entrée possibles à une pluralité de valeurs de sortie possibles, en se fondant sur un 15 dispositif de multiplexage (10) comportant une entrée de commande (16), un certain nombre d'entrées de données (14a à 14h) et une sortie de données (18) destinée à la valeur de sortie codée d'arrivée et qui a pour but de diriger un signal de données codé, appliqué à l'une des entrées de données (14a à 14h), vers la sortie de données (18), lequel procédé comporte les étapes 20 consistant à: mettre les signaux de données codés à la disposition des entrées de données (14a à 14h) du dispositif de multiplexage (10) en se fondant sur une clé de codage; et appliquer un signal de commande indiquant la valeur de sortie de 25 départ à l'entrée de commande (16) du dispositif de multiplexage (10), la mise à disposition et l'application étant réalisées de telle sorte que, pour chaque valeur d'entrée possible que prend la valeur d'entrée de départ, il est délivré à la sortie de données (18) du dispositif de multiplexage (10) une valeur de sortie qui peut être obtenue, par un codage avec la clé de codage, à 30 partir de la valeur de sortie possible à laquelle la valeur d'entrée de départ est associée conformément à la règle de correspondance.
FR0405618A 2003-05-28 2004-05-25 Procede et dispositif de mise en correspondance entre une valeur d'entree de depart et une valeur de sortie d'arrivee codee Expired - Fee Related FR2855688B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10324422A DE10324422B4 (de) 2003-05-28 2003-05-28 Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert

Publications (2)

Publication Number Publication Date
FR2855688A1 true FR2855688A1 (fr) 2004-12-03
FR2855688B1 FR2855688B1 (fr) 2006-07-14

Family

ID=33426766

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0405618A Expired - Fee Related FR2855688B1 (fr) 2003-05-28 2004-05-25 Procede et dispositif de mise en correspondance entre une valeur d'entree de depart et une valeur de sortie d'arrivee codee

Country Status (3)

Country Link
US (1) US20050002523A1 (fr)
DE (1) DE10324422B4 (fr)
FR (1) FR2855688B1 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152072B2 (en) * 2003-01-08 2006-12-19 Fisher-Rosemount Systems Inc. Methods and apparatus for importing device data into a database system used in a process plant
JP4767817B2 (ja) * 2006-05-02 2011-09-07 株式会社ソニー・コンピュータエンタテインメント 通信システム、通信装置、通信プログラム、通信プログラムを記憶したコンピュータ読み取り可能な記憶媒体
US10515567B2 (en) * 2010-06-01 2019-12-24 Ternarylogic Llc Cryptographic machines with N-state lab-transformed switching devices
US11336425B1 (en) 2010-06-01 2022-05-17 Ternarylogic Llc Cryptographic machines characterized by a Finite Lab-Transform (FLT)
GB2487723A (en) 2011-01-26 2012-08-08 Nds Ltd Protection device for stored data values comprising a switching circuit
GB2494731B (en) 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack
US10103876B2 (en) 2012-10-17 2018-10-16 Synopsys, Inc. System and method for multichannel cryptographic processing
US10146701B2 (en) * 2014-08-29 2018-12-04 The Boeing Company Address-dependent key generation with a substitution-permutation network
US10530566B2 (en) * 2015-04-23 2020-01-07 Cryptography Research, Inc. Configuring a device based on a DPA countermeasure
US10489611B2 (en) * 2015-08-26 2019-11-26 Rambus Inc. Low overhead random pre-charge countermeasure for side-channel attacks
US11282414B2 (en) * 2015-10-22 2022-03-22 Drexel University Reduced overhead gate level logic encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
GB0211812D0 (en) * 2002-05-23 2002-07-03 Koninkl Philips Electronics Nv S-box encryption in block cipher implementations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GOUBIN L ET AL: "DES AND DIFFERENTIAL POWER ANALYSIS THE DUPLICATION METHOD", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. 1ST INTERNATIONAL WORKSHOP, CHES'99. WORCESTER, MA, AUG. 12 - 13, 1999PROCEEDINGS, LECTURE NOTES IN COMPUTER SCIENCE, BERLIN : SPRINGER, DE, vol. VOL. 1717, August 1999 (1999-08-01), pages 158 - 172, XP000952192, ISBN: 3-540-66646-X *

Also Published As

Publication number Publication date
FR2855688B1 (fr) 2006-07-14
DE10324422A1 (de) 2004-12-23
DE10324422B4 (de) 2007-02-08
US20050002523A1 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
CA1244949A (fr) Dispositif de chiffrement par substitutions- permutations
FR2855688A1 (fr) Procede et dispositif de mise en correspondance entre une valeur d'entree de depart et une valeur de sortie d'arrivee codee
EP1493242A1 (fr) Procede de securisation d une entite electronique a acces cr ypte
FR2765056A1 (fr) Algorithme de chiffrage par blocs ayant une securite robuste contre une analyse cryptographique differentielle, une analyse cryptographique lineaire et une analyse cryptographique differentielle d'ordre plus eleve
EP0694846A1 (fr) Procédé de brouillage numérique et application à un circuit programmable
EP2885875A1 (fr) Procede d'encodage de donnees sur une carte a puce par des codes de poids constant
FR2816773A1 (fr) Module, dispositif et procede de decodage a haut debit, d'un code concatene
FR2871310A1 (fr) Circuit logique configurable resistant a une attaque dpa
FR2640838A1 (fr) Dispositif de mixage de signaux video pour le traitement et la composition d'images
WO2000054454A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
CA2332529C (fr) Procede d'execution d'un protocole cryptographique entre deux entites electroniques
EP2320596B1 (fr) Protection d'une clé de chiffrement contre des attaques unidirectionnelles
EP1672830B1 (fr) Masquage de mots binaires par un circuit intégré
EP0586472A1 (fr) Dispositif cryptographique d'une suite de donnees sans usage de cles
FR2574974A1 (fr) Procede et appareil d'enregistrement et de reproduction de signaux numeriques codes
EP0817378B1 (fr) Générateur d'impulsions électroniques programmables en durée et en fréquence
FR3007552A1 (fr) Procede securise de comparaison de deux operandes et dispositif correspondant
FR2785477A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2868565A1 (fr) Unite de calcul
FR3111440A1 (fr) Protection d'un algorithme de chiffrement
EP1475918A2 (fr) Procédé de chiffrement par permutations de suites de longueur fixée
FR2888062A1 (fr) Codeur et turbo decodeur de code produit
EP1748444A1 (fr) Procédé et dispositif de securisation d'un circuit integré, notamment une memoire
EP1322076A1 (fr) Dispositif de commutation comportant des moyens de décodage local
EP4222957A1 (fr) Procédé et dispositif électronique de décodage d'un flux de données, programme d'ordinateur et flux de données associés

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100129