FR2984646A1 - Method for processing cryptographic data, involves randomly choosing derivative key from initial key to complement bit of initial key, and implementing derivation process based on selected key - Google Patents

Method for processing cryptographic data, involves randomly choosing derivative key from initial key to complement bit of initial key, and implementing derivation process based on selected key Download PDF

Info

Publication number
FR2984646A1
FR2984646A1 FR1161988A FR1161988A FR2984646A1 FR 2984646 A1 FR2984646 A1 FR 2984646A1 FR 1161988 A FR1161988 A FR 1161988A FR 1161988 A FR1161988 A FR 1161988A FR 2984646 A1 FR2984646 A1 FR 2984646A1
Authority
FR
France
Prior art keywords
key
derivation process
bit
byte
initial key
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
FR1161988A
Other languages
French (fr)
Other versions
FR2984646B1 (en
Inventor
Julien Doget
Gilles Piret
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.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
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 Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1161988A priority Critical patent/FR2984646B1/en
Publication of FR2984646A1 publication Critical patent/FR2984646A1/en
Application granted granted Critical
Publication of FR2984646B1 publication Critical patent/FR2984646B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Abstract

The method involves randomly choosing a derivative key from an initial key (K) to complement a bit of the initial key (E4), and implementing a derivation process based on the selected key. A non-linear operation is applied by reading in a lookup table, where the non-linear operation is applied to a particular byte, and the reading is performed at the lookup table determined by the given byte. The derivative key is applied (E8) to message data by an exclusive OR operation. An independent claim is also included for a device for processing cryptographic data.

Description

L'invention concerne un procédé de traitement de données et un dispositif associé. Les procédés de traitement de données, en particulier ceux impliquant des calculs cryptographiques, sont l'objet d'attaques de la part de personnes malintentionnées qui cherchent à obtenir des données confidentielles, tels que des clés cryptographiques secrètes. Un type d'attaque connu, dénommé selon l'appellation anglo-saxonne "safe-error efface, consiste à forcer à 0 (respectivement forcer à 1) un bit de la clé cryptographique lors de la mise en oeuvre de l'algorithme concerné (quand l'implémentation physique rend cette opération possible) et à observer si le résultat de l'algorithme est identique ou différent du résultat obtenu (par exemple lors d'une autre mise en oeuvre de l'algorithme) sans altération de la clé. On comprend que, si le résultat est identique, c'est que le bit concerné de la clé cryptographique vaut 0 (respectivement 1), tandis que si le résultat est différent, le bit concerné vaut nécessairement 1 (respectivement 0). The invention relates to a data processing method and an associated device. Data processing methods, especially those involving cryptographic computations, are being attacked by malicious people who seek to obtain confidential data, such as secret cryptographic keys. A known type of attack, called "safe-error erase", consists in forcing to 0 (respectively force to 1) a bit of the cryptographic key during the implementation of the algorithm concerned ( when the physical implementation makes this operation possible) and to observe if the result of the algorithm is identical or different from the result obtained (for example during another implementation of the algorithm) without alteration of the key. understands that, if the result is identical, it is that the relevant bit of the cryptographic key is 0 (respectively 1), whereas if the result is different, the concerned bit is necessarily 1 (respectively 0).

En répétant cette opération pour l'ensemble des bits de la clé cryptographique, on peut ainsi totalement déterminer sa valeur. Afin de contrer ce type d'attaque dans le cadre de l'algorithme DES, il a été proposé d'appliquer l'algorithme soit au message M à chiffrer avec la clé K normalement utilisée, soit au message complémenté M avec la clé complémentée k, le choix entre ces deux possibilités étant réalisé de manière aléatoire. On rappelle que complémenter une donnée consiste à modifier la valeur de chacun de ses bits (i.e. mettre à 0 tous les bits valant 1 et mettre à 1 tous les bits valant 0). On parle de ce fait de "complément à 1 bit à bit'. Ainsi, l'attaquant ne peut savoir à chaque mise en oeuvre de l'algorithme si la clé effectivement utilisée est K ou K . Cette contre-mesure est particulièrement simple à mettre en oeuvre dans le cas de l'algorithme DES puisqu'il suffit, pour retrouver le résultat de l'algorithme avec les valeurs normales (non-complémentées), de complémenter le résultat obtenu par l'utilisation de données complémentées : DES(M,K)= DES(M,K). Cette propriété n'est en revanche pas vraie dans le cas de l'algorithme AES. Dans ce contexte, l'invention propose un procédé de traitement cryptographique de données, comprenant un processus de dérivation d'au moins une clé dérivée à partir d'une clé initiale, ledit processus comprenant au moins une opération non linéaire (par exemple de type SubWord dans le cas de l'algorithme AES) par rapport à une opération de ou exclusif, caractérisé en ce qu'il comprend les étapes suivantes : - choix aléatoire d'une clé parmi la clé initiale et le complément à 1 bit à bit de la clé initiale ; - mise en oeuvre du processus de dérivation sur la base de la clé 15 choisie. On propose ainsi d'utiliser aléatoirement en entrée du processus de dérivation soit la clé usuelle, soit son complément à 1 bit à bit, bien que le processus comprenne une opération non linéaire. On obtient de ce fait une protection contre les attaques mentionnées ci-dessus. 20 En pratique, l'opération non-linéaire est par exemple mise en oeuvre par lecture dans une table de correspondance. On peut prévoir en outre dans ce cas que, l'opération non-linéaire étant appliquée à un octet donné, ladite lecture est réalisée au niveau d'une entrée de la table de correspondance déterminée en fonction de l'octet donné 25 et du choix aléatoire effectué. Le fonctionnement est ainsi semblable quel que soit le choix effectué, ce qui permet de se prémunir contre les attaques par canaux auxiliaires. Par ailleurs, lorsque le processus de dérivation comprend un traitement générant un résultat lorsque la clé choisie est la clé initiale et le 30 complément à 1 bit à bit du résultat lorsque la clé choisie est le complément à 1 bit à bit de la clé initiale, et que le processus de dérivation comprend une combinaison par une opération de ou exclusif d'un octet obtenu par ledit traitement et d'un octet de la clé choisie, le processus de dérivation peut comprendre une opération, antérieure à ladite combinaison, de masquage de l'un au moins des octets combinés. On évite ainsi de retrouver, à un moment du processus, une valeur qui soit constante (du fait d'une double application du complément à 1) quel que soit le choix aléatoire effectué et qui pourrait donc être la cible d'attaques. Le procédé comprend par exemple une étape d'application de la clé dérivée à des données de message au moyen d'une opération de ou exclusif. Ledit traitement peut en effet être un algorithme de type AES. By repeating this operation for all the bits of the cryptographic key, one can thus totally determine its value. In order to counter this type of attack in the context of the DES algorithm, it has been proposed to apply the algorithm either to the message M to be encrypted with the K key normally used, or to the message complemented M with the complemented key k the choice between these two possibilities being made randomly. It is recalled that complementing a data consists in modifying the value of each of its bits (i.e. to set to 0 all the bits equal to 1 and to set all the bits equal to 0). Thus, the attacker can not know at each implementation of the algorithm if the key actually used is K or K. This countermeasure is particularly simple to use. to implement in the case of the DES algorithm since it is enough, to find the result of the algorithm with the normal values (not complemented), to complement the result obtained by the use of complemented data: DES (M , K) = DES (M, K) This property is however not true in the case of the AES algorithm In this context, the invention proposes a cryptographic data processing method, including a derivation process at least one key derived from an initial key, said process comprising at least one non-linear operation (for example of the type SubWord in the case of the AES algorithm) with respect to an operation of or exclusive, characterized in what he understands the following steps: - random selection of a key from the initial key and the 1-bit-bit complement of the initial key; implementation of the derivation process on the basis of the chosen key. It is thus proposed to randomly use, at the input of the derivation process, either the usual key or its 1 bit-to-bit complement, although the process includes a non-linear operation. This provides protection against the attacks mentioned above. In practice, the non-linear operation is for example implemented by reading in a correspondence table. It can further be provided in this case that, the nonlinear operation being applied to a given byte, said reading is performed at an input of the correspondence table determined according to the given byte 25 and the choice randomly performed. The operation is thus similar whatever the choice made, which makes it possible to guard against attacks by auxiliary channels. On the other hand, when the derivation process includes a result generating process when the selected key is the initial key and the 1 bit bitwise complement of the result when the selected key is the 1 bit bitwise complement of the initial key, and that the derivation process comprises a combination by an operation of or exclusive of a byte obtained by said processing and a byte of the selected key, the derivation process may comprise an operation, prior to said combination, of masking of at least one byte combined. This avoids finding, at a time in the process, a value that is constant (due to a double application of the complement to 1) regardless of the random choice made and that could therefore be the target of attacks. The method includes, for example, a step of applying the derived key to message data by means of an exclusive operation. Said treatment may indeed be an AES type algorithm.

Le procédé proposé ici est typiquement mis en oeuvre par un circuit électronique, par exemple un microprocesseur, avec les avantages associés à ce type de mise en oeuvre ; en variante, il pourrait s'agir d'un circuit intégré à application spécifique. L'invention propose également un dispositif de traitement de données apte à mettre en oeuvre un processus de dérivation d'au moins une clé dérivée à partir d'une clé initiale, ledit processus comprenant au moins une opération non linéaire par rapport à une opération de ou exclusif, caractérisé en ce qu'il comprend des moyens configurés pour choisir une clé de manière aléatoire parmi la clé initiale et le complément à 1 bit à bit de la clé initiale et des moyens configurés pour mettre en oeuvre du processus de dérivation sur la base de la clé choisie. On peut alors prévoir éventuellement des moyens configurés pour appliquer l'opération non linéaire à un octet donné par lecture dans une table de correspondance au niveau d'une entrée de la table de correspondance déterminée en fonction de l'octet donné et du choix effectué, ce qui permet d'éviter des attaques par canaux auxiliaires comme déjà expliqué. Par ailleurs, lorsque le processus de dérivation comprend un traitement générant un résultat lorsque la clé choisie est la clé initiale et le complément à 1 bit à bit du résultat lorsque la clé choisie est le complément à 1 bit à bit de la clé initiale et que le processus de dérivation comprend une combinaison par une opération de ou exclusif d'un octet obtenu par ledit traitement et d'un octet de la clé choisie, on peut envisager d'utiliser des moyens configurés pour masquer, antérieurement à ladite combinaison, l'un au moins des octets combinés avec l'avantage mentionné ci-dessus à ce masquage. D'autres caractéristiques et avantages de l'invention apparaitront à la lumière de la description qui suit, faite en référence aux dessins annexés dans lesquels : - la figure 1 représente un exemple de dispositif susceptible de mettre en oeuvre l'invention ; - la figure 2 représente les étapes principales d'un procédé mis en oeuvre par le dispositif de la figure 1 et conforme aux enseignements de l'invention ; - la figure 3 représente une mise en oeuvre envisageable pour l'étape d'initialisation de la figure 2 ; - la figure 4 représente un exemple de processus de dérivation de clé conforme aux enseignements de l'invention ; - la figure 5 représente un exemple de table de correspondance utilisée dans le processus de la figure 4 ; - la figure 6 représente une solution envisageable pour mettre en oeuvre une opération de ou exclusif prévue dans le processus de la figure 4. The method proposed here is typically implemented by an electronic circuit, for example a microprocessor, with the advantages associated with this type of implementation; alternatively, it could be a specific application integrated circuit. The invention also proposes a data processing device able to implement a derivation process of at least one key derived from an initial key, said process comprising at least one non-linear operation with respect to a transaction operation. or exclusive, characterized in that it comprises means configured to choose a key randomly from the initial key and the complement to 1 bit by bit of the initial key and means configured to implement the derivation process on the base of the chosen key. It is then possible to envisage means configured to apply the non-linear operation to a given byte by reading in a correspondence table at an input of the correspondence table determined according to the given byte and the choice made, this avoids attacks by auxiliary channels as already explained. Moreover, when the derivation process comprises a processing generating a result when the chosen key is the initial key and the complement to 1 bit by bit of the result when the chosen key is the complement to 1 bit by bit of the initial key and that the derivation process comprises a combination by an operation of or exclusive of a byte obtained by said processing and a byte of the chosen key, it is conceivable to use means configured to mask, prior to said combination, the at least one byte combined with the advantage mentioned above for this masking. Other features and advantages of the invention will become apparent in the light of the description which follows, made with reference to the accompanying drawings in which: - Figure 1 shows an example of a device capable of implementing the invention; FIG. 2 represents the main steps of a method implemented by the device of FIG. 1 and in accordance with the teachings of the invention; FIG. 3 represents an implementation that can be envisaged for the initialization step of FIG. 2; FIG. 4 represents an example of key derivation process according to the teachings of the invention; FIG. 5 represents an exemplary correspondence table used in the process of FIG. 4; FIG. 6 represents a possible solution for carrying out an exclusive or operation provided for in the process of FIG. 4.

La figure 1 représente les éléments principaux d'un dispositif apte à mettre en oeuvre le procédé proposé par l'invention. Il s'agit d'un dispositif de traitement de données qui comprend un microprocesseur 2 connecté (à travers des bus adéquats) d'une part à une mémoire réinscriptible 4 (typiquement de type EEPROM) et à une mémoire vive 6. Le dispositif de la figure 1 est par exemple un micro-ordinateur. En variante, il pourrait s'agir d'un autre type de dispositif électronique, par exemple sécurisé, telle qu'une carte à microcircuit. La mémoire réinscriptible 4 contient notamment des instructions d'un programme d'ordinateur PROG qui, lorsqu'elles sont exécutées par le microprocesseur 2, permettent la mise en oeuvre des procédés proposés par l'invention, tel que celui décrit ci-après. FIG. 1 represents the main elements of a device able to implement the method proposed by the invention. It is a data processing device which comprises a microprocessor 2 connected (through suitable buses) on the one hand to a rewritable memory 4 (typically of the EEPROM type) and to a random access memory. Figure 1 is for example a microcomputer. Alternatively, it could be another type of electronic device, for example secure, such as a microcircuit card. The rewritable memory 4 contains in particular instructions of a computer program PROG which, when executed by the microprocessor 2, allow the implementation of the methods proposed by the invention, such as that described below.

Le programme d'ordinateur PROG pourrait en variante être mémorisé sur un autre support de données (par exemple un disque dur), éventuellement amovible (par exemple un disque optique ou une mémoire amovible). Dans ce cas, le programme d'ordinateur PROG peut éventuellement être d'abord transféré dans la mémoire vive 6 avant son exécution par le microprocesseur 2. Lors de son exécution par le microprocesseur 2, le programme d'ordinateur PROG met en oeuvre un procédé de traitement cryptographique de données qui implique notamment une donnée à traiter. The computer program PROG could alternatively be stored on another data medium (for example a hard disk), possibly removable (for example an optical disk or a removable memory). In this case, the computer program PROG can possibly be first transferred to the RAM 6 before it is executed by the microprocessor 2. When it is executed by the microprocessor 2, the computer program PROG implements a method cryptographic data processing which notably involves data to be processed.

Les données à traiter (notamment les données M représentant le message traité) sont représentées au sein du dispositif de la figure 1 (et notamment de la mémoire vive 6) par des mots numériques formés chacun de plusieurs bits ; on utilise ici par exemple une représentation des données sous forme d'octets. The data to be processed (in particular the data M representing the processed message) are represented within the device of FIG. 1 (and in particular of the random access memory 6) by digital words each formed of several bits; here, for example, a representation of the data in the form of bytes is used.

La mémoire vive 6 mémorise les variables et données traitées, notamment celles manipulées par les procédés décrits ci-après. Le dispositif de traitement de données, et précisément le microprocesseur 2 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 8. The random access memory 6 stores the processed variables and data, in particular those manipulated by the methods described below. The data processing device, and precisely the microprocessor 2 that it incorporates, can exchange data with external devices by means of a communication interface 8.

On a schématiquement représenté sur la figure 1 la transmission d'une donnée d'entrée x reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 8 au microprocesseur 2. De manière similaire, on a représenté la transmission d'une donnée de sortie y du microprocesseur 2 vers l'interface de communication 8 à destination d'un dispositif extérieur. Cette donnée de sortie y est issue d'un traitement de données par le microprocesseur 10, généralement sur la donnée d'entrée x, à l'aide d'une donnée secrète K interne au système, par exemple une clé privée. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 2 et l'interface 8 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. 1 shows the transmission of an input data x received from an external device (not shown) and transmitted from the communication interface 8 to the microprocessor 2. Similarly, the transmission is shown in FIG. an output data y of the microprocessor 2 to the communication interface 8 to an external device. This output data is derived from a data processing by the microprocessor 10, generally on the input data x, using a secret data K internal to the system, for example a private key. Although, for the illustration, the input data and the output data appear on two different arrows, the physical means that allow the communication between the microprocessor 2 and the interface 8 may be made by unique means, for example a serial communication port or a bus.

Dans les procédés décrits dans la suite, un message M auquel doit être appliqué l'algorithme AES fait partie des données d'entrée x, tandis que les données de sortie y comprennent le message chiffré C, résultat de l'application au message M de l'algorithme AES en utilisant la clé cryptographique K. In the methods described hereinafter, a message M to which the AES algorithm is to be applied is part of the input data x, while the output data y comprises the encrypted message C, the result of the application to the message M of the AES algorithm using the cryptographic key K.

En variante, l'ensemble microprocesseur 2 - mémoire non-volatile 4 - mémoire vive 6 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données. Plus généralement, le dispositif de traitement est un circuit intégré. In a variant, the microprocessor 2 - non-volatile memory 4 - random access memory 6 may be replaced by a specific application circuit which then comprises means for implementing the various steps of the data processing method. More generally, the processing device is an integrated circuit.

Le dispositif de traitement de données conforme à l'invention peut par ailleurs être une carte à microcircuit. L'interface de communication 8 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit ou bien d'une antenne logée dans le corps de carte Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 2 et la mémoire vive 6. Les données d'entrée x sont par exemple des commandes APDU, et les données de sortie y des réponses APDU. En variante, le dispositif de traitement de données peut être une clef USB, un document ou un support d'informations papier comportant dans l'une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s'agit de manière préférée d'une entité électronique portable ou de poche. Le dispositif est par exemple sécurisé. Par exemple, le dispositif comporte des moyens aptes à le protéger contre des attaques visant à obtenir frauduleusement les données secrètes qu'il mémorise (par exemple, une clef cryptographique) telle que les attaques par fautes et/ou par analyse de canaux cachés (en anglais , "side channel attacks"). En particulier, le dispositif est conforme à la norme FIPS ou aux critères communs. The data processing device according to the invention may also be a microcircuit card. In this case, the communication interface 8 is produced by means of the contacts of the microcircuit card or of an antenna housed in the card body. This microcircuit card is, for example, in accordance with the ISO 7816 standard and provided with a card. secure microcontroller which includes the microprocessor (or CPU) 2 and the RAM 6. The input data x are for example APDU commands, and the output data y APDU responses. Alternatively, the data processing device may be a USB key, a document or a paper information carrier having in one of its sheets a microcircuit associated with contactless communication means. This is preferably a portable or pocket electronic entity. The device is for example secure. For example, the device comprises means capable of protecting it against attacks aimed at fraudulently obtaining the secret data it stores (for example, a cryptographic key) such as fault attacks and / or by hidden channel analysis (in English, "side channel attacks"). In particular, the device complies with FIPS or common criteria.

Dans toute la suite, on notera l'opération de "ou exclusif', ou XOR, au moyen de l'opérateur e ; on écrira par ailleurs h.. la représentation hexadécimale d'un nombre. In the rest of the sequence, the operation of "or exclusive", or XOR, will be noted by means of the operator e, and the hexadecimal representation of a number will be written elsewhere.

Ainsi hFF correspond à 255, soit 11111111 en représentation binaire, et l'opération 0 hFF (i.e. réalisation d'un ou exclusif avec la valeur 11111111 en binaire) correspond à la détermination du complément à 1 bit à bit : pour un octet X quelconque, X 0 hFF = X . On utilise dans la suite cette notation même lorsque le premier opérande (X dans le paragraphe qui précède) comporte plusieurs octets, étant entendu que l'opération 0 hFF s'applique alors à chacun des octets de la donnée concernée. Thus hFF corresponds to 255, that is to say 11111111 in binary representation, and the operation 0 hFF (ie realization of an exclusive or with the value 11111111 in binary) corresponds to the determination of the complement to 1 bit by bit: for any byte X , X 0 hFF = X. This notation is used in the following, even when the first operand (X in the preceding paragraph) comprises several bytes, it being understood that the operation 0 hFF then applies to each byte of the data concerned.

La figure 2 représente les étapes principales d'un procédé de mise en oeuvre d'un algorithme AES conformément aux enseignements de l'invention. Ce procédé vise à appliquer l'algorithme AES à un message M en utilisant une clé cryptographique K, tout en étant protégé contre les attaques visant cette clé K présentées en introduction. FIG. 2 represents the main steps of a method of implementing an AES algorithm according to the teachings of the invention. This method aims to apply the AES algorithm to a message M using a cryptographic key K, while being protected against attacks on this key K presented in the introduction.

Ce procédé débute à une étape E2 à laquelle des variables A et B (de longueur un octet chacune) sont initialisées comme décrit à présent en référence à la figure 3. Cette initialisation des variables A et B commence par la détermination par tirage aléatoire de la variable A à l'étape E30. This method starts at a step E2 at which variables A and B (of length one byte each) are initialized as described now with reference to FIG. 3. This initialization of the variables A and B begins with the random draw determination of the variable A at step E30.

On initialise alors la variable B à la valeur A 9 hFF (étape E32). On détermine ensuite par tirage aléatoire un bit b (étape E34). Si b vaut 0 (selon un test à l'étape E36), on écrit la valeur de la variable A dans cette même variable A (étape E38), tandis que si b vaut 1, on écrit la valeur de la variable B dans la variable A. The variable B is then initialized to the value A 9 hFF (step E32). A bit b (step E34) is then determined by random draw. If b is 0 (according to a test in step E36), the value of the variable A is written in this same variable A (step E38), whereas if b is equal to 1, the value of the variable B is written in the variable A.

On remarque que ce processus d'initialisation est symétrique (d'où l'intérêt de réécrire la valeur de la variable A dans cette même variable A à l'étape E38) et un attaquant ne pourra donc pas déterminer de l'extérieur si le procédé est dans le cas où b vaut 0 ou dans le cas où b vaut 1. Il résulte par ailleurs de ces différentes étapes que : - si b vaut 0, la somme A 9 B (utilisée dans la suite) vaut hFF et appliquer l'opération 0 A 0 B à une variable revient donc à complémenter cette variable ; - si b vaut 1, la somme A 9 B vaut h00 et appliquer l'opération 0 A 0 B à une variable laissera inchangée cette variable. L'étape E42 consiste à revenir dans ces conditions aux étapes principales de la figure 2, en particulier l'étape E3. À l'étape E3, on détermine par tirage aléatoire une variable m et on applique cette valeur au message M à traiter au moyen d'une opération de "ou exclusif' (soit M m) afin de masquer le message. À l'étape E4, on initialise à 0 une variable d'indice i ; on applique par ailleurs à chacun des octets de la clé cryptographique K l'opération C, A 0 B et on mémorise le résultat au sein d'une variable C_1 (par conséquent sur plusieurs octets). Comme expliqué ci-dessus, la variable C_1 peut donc être égale à la clé K (cas où b vaut 1) ou à la clé complémentée K (cas où b vaut 0). On procède alors à l'étape E6 à la dérivation de la clé C, à partir de la clé Co selon un procédé décrit plus loin en référence à la figure 4. Note that this initialization process is symmetrical (hence the interest of rewriting the value of the variable A in the same variable A in step E38) and an attacker will not be able to determine from the outside if the The method is in the case where b is 0 or in the case where b is 1. It also follows from these different steps that: - if b is 0, the sum A 9 B (used in the following) is hFF and apply l operation 0 A 0 B to a variable therefore amounts to complementing this variable; if b is 1, the sum A 9 B is h 00 and applying the operation 0 A 0 B to a variable will leave this variable unchanged. Step E42 consists of returning to these conditions at the main stages of FIG. 2, in particular step E3. In step E3, a variable m is determined by random draw and this value is applied to the message M to be processed by means of an "exclusive" operation (ie M m) in order to mask the message. E4, a variable of index i is initialized to 0, and the operation C, A 0 B is applied to each of the bytes of the cryptographic key K and the result is stored in a variable C_1 (consequently on several bytes) As explained above, the variable C_1 can therefore be equal to the key K (where b is equal to 1) or to the complemented key K (where b is 0). to the derivation of the key C, from the key Co according to a method described below with reference to FIG.

Comme expliqué plus en détail dans la suite, ce procédé est conçu de sorte que l'utilisation en entrée d'une valeur complémentée (par exemple Ki où Ki est la clé classiquement dérivée selon l'algorithme AES) a pour résultat une valeur complémentée en sortie (par exemple K.1). Ainsi, si la variable C_1 est égale à la clé cryptographique K (cas où b vaut 1), chaque variable Ci calculée à cette étape sera égale à la clé Ki classiquement dérivée conformément à l'algorithme AES. En revanche, si la variable C_1 est égale à la clé cryptographique complémentée K (cas où b vaut 0), chaque variable Ci calculée à cette étape sera égale au complément Ki (i.e. K, e hFF) de la clé K, correspondante. As explained in more detail below, this method is designed so that the input use of a complemented value (for example Ki where Ki is the key conventionally derived according to the AES algorithm) results in a value complemented by output (eg K.1). Thus, if the variable C_1 is equal to the cryptographic key K (where b is 1), each variable Ci calculated at this step will be equal to the key Ki conventionally derived according to the algorithm AES. On the other hand, if the variable C_1 is equal to the complemented cryptographic key K (where b is 0), each variable Ci calculated at this stage will be equal to the complement Ki (i.e. K, e hFF) of the corresponding key K.

Une fois la clé C, dérivée (que cette clé soit égale à la clé K, de l'algorithme AES ou à sa valeur complémentée), on applique à l'étape E8 cette clé C, à la donnée M traitée au moyen d'une opération XOR (ou exclusif), c'est-à-dire que l'on calcule M e C; ; on mémorise la valeur obtenue au sein de la variable M afin de lui appliquer les traitements ultérieurs (sans conserver par conséquent la valeur précédente de la variable). 2 9 84646 9 On applique alors à l'étape E10 une boîte S (en anglais "S box") masquée, avec utilisation du masque aléatoire m déterminée à l'étape E9, comme décrit par exemple dans l'article "Secure Multiplicative Masking of Power Functions", de L. Genelle, E. Prouff et M. Quisquater, Applied 5 Cryptography and Network Security 2010. On utilise toutefois en entrée de la boîte S la valeur M eAeB (la donnée M étant masquée suite à l'opération de l'étape E3). Ainsi : - dans le cas où b vaut 0, l'application successive (au moyen d'une opération XOR 0) de la variable Ci, égale dans ce cas à K, e hFF, et de la 10 valeur A 0 B (en entrée de boîte S), égale dans ce cas à hFF, revient à appliquer K, (puisque hFF hFF = h00) ; - dans le cas où b vaut 1, A CD B = h00 et l'application successive de la variable C;, égale dans ce cas à K,, et de la valeur A B (en entrée de boîte S) revient donc également à appliquer K. 15 De ce fait, dans tous les cas, les données traitées par la boîte S masquée sont les données (masquées) usuellement traitées par cette boîte S et on obtient ainsi en sortie de boîte S les données prévues dans l'algorithme AES à cette étape. On teste alors à l'étape E12 si la variable d'indice i vaut 9. 20 Dans la négative, on procède à l'étape E14 aux opérations de diffusion linéaire prévues par l'algorithme AES, classiquement dénommées "ShiftRows" et "MixColumns". Ces opérations sont réalisées ici de manière classique et ne seront donc pas détaillées. On réalise ensuite l'étape E16 décrite ci-dessous. 25 Dans l'affirmative à l'étape E12, on procède directement à l'étape E16. L'étape E16 consiste à incrémenter la variable d'indice i. On teste alors à l'étape E18 si la variable d'indice i est strictement supérieure à 9. Dans la négative, on reboucle à l'étape E6 pour traiter l'itération 30 suivant de l'algorithme AES. Dans l'affirmative, on sort de la boucle afin de réaliser les dernières étapes prévues par l'algorithme AES. Once the key C, derived (that this key is equal to the key K, of the algorithm AES or its complemented value), one applies in step E8 this key C, the data M treated by means of an operation XOR (or exclusive), that is to say that one calculates M e C; ; the value obtained is memorized in the variable M in order to apply thereafter the processes (without therefore preserving the previous value of the variable). In step E10, a masked box S (in English "S box") is then applied, using the random mask m determined in step E9, as described, for example, in the article "Secure Multiplicative Masking". of Power Functions "by L. Genelle, E. Prouff and M. Quisquater, Applied Cryptography and Network Security 2010. However, the input of the box S is used with the value M eAeB (the data M being masked following the operation of step E3). Thus: in the case where b is 0, the successive application (by means of an operation XOR 0) of the variable Ci, in this case equal to K, e hFF, and the value A 0 B (in box input S), equal in this case to hFF, amounts to applying K, (since hFF hFF = h00); in the case where b is 1, A CD B = h 00 and the successive application of the variable C 1, equal in this case to K 1, and the value AB (at the input of box S) therefore also amounts to applying As a result, in all cases, the data processed by the masked box S are the (masked) data usually processed by this box S, and the data provided in the AES algorithm at the output of box S are thus obtained at the output of box S. this step. Step E12 is then tested if the variable of index i is equal to 9. If not, step E14 is performed in the linear diffusion operations provided by the AES algorithm, conventionally known as "ShiftRows" and "MixColumns". ". These operations are performed here in a conventional manner and will therefore not be detailed. Step E16 described below is then carried out. If yes in step E12, proceed directly to step E16. Step E16 consists in incrementing the variable of index i. It is then tested in step E18 whether the variable of index i is strictly greater than 9. If not, it loops back to step E6 to process the next iteration of the AES algorithm. If so, we leave the loop to perform the final steps provided by the AES algorithm.

En particulier, on procède à l'étape E20 à la dérivation de la clé Clo de la même manière que cela a été fait pour les autres clés C à l'étape E6, au moyen du procédé décrit plus bas en référence à la figure 4. La clé C10 peut donc être égale à la clé dérivée K10 prévue par 5 l'algorithme AES (cas où b vaut 1), ou à son complément K10 0 hFF (cas où b vaut 0). On applique alors à l'étape E22 la clé C10 à la donnée M préalablement traité, en l'occurrence issue de la boîte S à l'itération i=9. Comme on l'a vu ci-dessus, les données en sortie de boîte S sont celles 10 prévues par l'algorithme AES. Par conséquent, lorsque la clé C10 est égale à la clé dérivée K10 prévue par l'algorithme AES, on obtient à l'étape E22 (et dans le cas où b vaut 1) le message chiffré C correspondant à l'application de l'algorithme AES et de la clé cryptographique K à la donnée M en entrée. 15 En revanche, lorsque la clé C10 est égale au complément de la clé dérivée, soit K10 hFF, on obtient à l'étape E22 le message chiffré C hFF, soit le complément du message C (cas où b vaut 0). On applique alors par exemple au résultat de l'étape E22 l'opération e A 0.-') B déjà mentionnée (étape E24) ce qui permet de retrouver dans tous les 20 cas le message chiffré C en sortie (puisque A 0 B vaut h00 dans le cas où b vaut 1 et hFF dans le cas où b vaut 0). La figure 4 illustre un processus de dérivation de clé conforme aux enseignements de l'invention. Comme cela ressortira de l'explication qui suit et déjà mentionné plus 25 haut, ce processus est conçu pour générer une clé Ki+1 à partir d'une clé Ki selon ce qui est prévu dans le schéma AES (cas où b vaut 1 et Ci = Ki), mais également pour générer la clé correspondante complémentée K1+1 G hFF lorsque la clé qu'il reçoit en entrée a été complémentée et vaut donc Ki 0 hFF (cas où b vaut 0 et Ci = Ki hFF). 30 Dans ce contexte, on indiquera dans la suite qu'un traitement T conserve la propriété de complémentarité si pour tout octet x : T(x e hFF) = T(x) hFF. Comme il vient d'être indiqué, le processus de la figure 4 est conçu pour conserver cette propriété comme expliqué à présent. On applique tout d'abord à l'étape E50 l'opération RotWord classiquement utilisée à chacun des octets de la clé C, reçue en entrée. Cette opération est linéaire par rapport à l'opération de "ou exclusif' e et aucun traitement particulier n'est nécessaire pour conserver la propriété de complémentarité : RotWord(k, 9 hFF) = RotWord (k,) 9 hFF, où ki vaut successivement chacun des octets de la clé K,. On applique ensuite à l'étape E52 une fonction 6 ou une fonction 6' selon la valeur de b (i.e. selon que l'on utilise dans le traitement en cours la clé K, ou son complément) à chacun des octets issus de l'étape E50 : - lorsque b vaut 1, on applique la fonction 6 égale à la fonction SubWord classiquement utilisée ; - lorsque b vaut 0, on applique la fonction 6' qui à tout octet x associe : G'(x) = hFF 9 SubWord(x e hFF). Afin de conserver l'intérêt de l'utilisation possible (de manière aléatoire) de valeurs complémentées, l'application de la fonction a' n'utilise pas directement la fonction SubWord ou 6, car cela impliquerait de revenir à la valeur normale de la clé utilisée (c'est-à-dire sans complément) du fait de l'application de l'opération e hFF. On propose donc de réaliser l'étape E52 au moyen de deux tables de correspondance (en anglais "Look-up table") distinctes, une première table de correspondance comprenant l'ensemble des valeurs G(x) pour x variant de h00 à hFF et une seconde table de correspondance comprenant l'ensemble des valeurs G'(x) pour x variant de h00 à hFF, comme représenté en Figure 5. Par ailleurs, avant d'éviter les attaques par canaux auxiliaires 30 (également connues sous le nom de "Sicle Channel Attacks"), on propose que la première table et la seconde table soient juxtaposées de manière à former une table unique de 512 entrées, les 256 premières entrées correspondant par exemple à la première table (valeurs de G) et les 256 dernières entrées correspondant alors à la seconde table (valeurs de e'). Ainsi, l'étape E52 peut être réalisée en pratique par lecture dans cette table unique au niveau de l'entrée j+ b *256 où j est le résultat de l'étape E50 et Ti est le complément de b. De ce fait, lorsque b vaut 1, on lit la valeur G(j), soit SubWord(j), ce qui correspond au traitement classique prévu par l'algorithme AES, tandis que lorsque b vaut 0, on lit la valeur d(j), soit hFF 0 SubWord(j 0 hFF), et on conserve donc la propriété de complémentarité recherchée. In particular, step E20 is carried out at the derivation of the key Clo in the same manner as was done for the other keys C in step E6, by means of the method described below with reference to FIG. The key C10 may therefore be equal to the derived key K10 provided by the algorithm AES (where b is equal to 1), or to its complement K10 0 hFF (where b is 0). In step E22, the key C10 is then applied to the previously processed data item M, in this case coming from box S at the iteration i = 9. As seen above, the box output data S is that provided by the AES algorithm. Therefore, when the key C10 is equal to the derived key K10 provided by the algorithm AES, the result is obtained in step E22 (and in the case where b is 1) the encrypted message C corresponding to the application of the AES algorithm and cryptographic key K input data M. On the other hand, when the key C10 is equal to the complement of the derived key, ie K10 hFF, the encrypted message C hFF is obtained in step E22, ie the complement of the message C (case where b is 0). The operation e A 0.- ') B already mentioned (step E24) is then applied, for example, to the result of step E22, which makes it possible to find in all cases the encrypted message C at the output (since A 0 B is worth h00 in the case where b is 1 and hFF in the case where b is 0). Figure 4 illustrates a key derivation process according to the teachings of the invention. As will become apparent from the following explanation and already mentioned above, this process is designed to generate a key Ki + 1 from a key Ki according to what is provided in the AES scheme (case where b is 1 and Ci = Ki), but also to generate the corresponding complemented key K1 + 1 G hFF when the key it receives at the input has been complemented and is therefore Ki 0 hFF (case where b is 0 and Ci = Ki hFF). In this context, it will be indicated in the following that a treatment T retains the property of complementarity if for any byte x: T (x e hFF) = T (x) hFF. As just indicated, the process of Figure 4 is designed to retain this property as explained now. In step E50, the RotWord operation conventionally used for each of the bytes of the key C, received as input, is first applied. This operation is linear with respect to the operation of "or exclusive" e and no particular treatment is necessary to preserve the property of complementarity: RotWord (k, 9 hFF) = RotWord (k,) 9 hFF, where ki is successively each of the bytes of the key K, then a function 6 or a function 6 'according to the value of b (ie depending on whether the key K complement) to each of the bytes resulting from the step E50: when b is equal to 1, the function 6 equal to the conventionally used SubWord function is applied; when b is 0, the function 6 'is applied which at any x byte associates : G '(x) = hFF 9 SubWord (xe hFF) In order to maintain the interest of the possible (random) use of complemented values, the application of the function a' does not directly use the function SubWord or 6, as this would involve returning to the normal value of the key being used (ie years complement) due to the application of operation e hFF. It is therefore proposed to carry out step E52 by means of two distinct look-up tables, a first correspondence table comprising the set of G (x) values for x varying from h00 to hFF. and a second lookup table comprising the set of values G '(x) for x varying from h00 to hFF, as shown in FIG. 5. Furthermore, before avoiding the auxiliary channel attacks 30 (also known as of "Sicle Channel Attacks"), it is proposed that the first table and the second table be juxtaposed so as to form a single table of 512 entries, the first 256 entries corresponding for example to the first table (values of G) and the 256 last entries corresponding then to the second table (values of e '). Thus, step E52 can be performed in practice by reading in this unique table at the input j + b * 256 where j is the result of step E50 and Ti is the complement of b. Therefore, when b is 1, we read the value G (j), that is SubWord (j), which corresponds to the conventional processing provided by the algorithm AES, whereas when b is 0, we read the value d ( j), ie hFF 0 SubWord (j 0 hFF), and thus preserves the desired complementarity property.

On applique alors à l'étape E54 une opération de "ou exclusif' e avec la valeur Rcon à chacun des octets issus de l'étape E52, conformément à ce que prévoit l'algorithme AES. Ce traitement est linéaire par rapport à l'opération de "ou exclusif' 0 et aucune action particulière n'est nécessaire pour conserver la propriété de complémentarité à cette étape. Then, in step E54, an "exclusive" operation e with the value Rcon is applied to each of the bytes resulting from step E52, in accordance with the AES algorithm, which is linear with respect to FIG. operation of "exclusive or" 0 and no particular action is necessary to maintain the property of complementarity at this stage.

On réalise enfin l'étape E56 à laquelle on applique à chacun des octets de la clé C, reçue en entrée une opération de "ou exclusif' 0 avec la valeur correspondante issue de l'étape E54 (résultat de l'application des étapes E50, E52 et E54 à l'octet concerné de la clé C,), et éventuellement en outre avec un octet obtenu précédemment au cours de la présente étape E56 (octet obtenu dans la colonne précédant celle de l'octet concerné comme représenté en figure 4, soit traité quatre octets avant l'octet concerné) afin d'obtenir les différents octets de la clé C,+1 comme prévu par l'algorithme AES. Dans le cas où la clé complémentée est en cours de dérivation (cas où b vaut 0), les deux valeurs X, Y à combiner par cette opération sont les valeurs classiques à ce stade selon l'algorithme AES, chacune étant toutefois complémentée (notamment du fait que les étapes E50, E52 et E54 conservent la propriété de complémentarité comme expliqué ci-dessus). On propose donc, pour mettre en oeuvre l'étape E56, de déterminer un masque p. par tirage aléatoire et d'ajouter (au sens de l'opération 0) ce masque à l'une des valeurs à combiner (par exemple à la valeur X) avant combinaison, comme représenté en figure 6. En effet, sans ce masquage, on aboutirait par la combinaison des deux valeurs complémentés à la valeur usuelle pour l'algorithme AES à ce stade et on perdrait donc l'avantage d'utiliser, de manière aléatoire, des valeurs complémentées dans les calculs. On remarque que ce masquage peut être réalisé non seulement 5 dans le cas où b vaut 0, mais également dans le cas où b vaut 1, ce qui permet d'appliquer le même traitement dans les deux cas. En variante, ce masquage pourrait n'est utilisée que dans les cas où b vaut 1. Afin de retrouver la valeur recherchée (non masquée), on applique de nouveau le masque après combinaison, en lui ajoutant (au sens de 10 l'opération 0) la valeur hFF dans le cas où b vaut 0 afin d'obtenir dans ce cas une valeur de sortie complémentée, comme on le prévoit dans le présent mode de réalisation. On propose par exemple pour ce faire d'effectuer cette opération en appliquant après combinaison (c'est-à-dire à X O Ft 8 Y) la valeur i.teAeB 15 comme représenté en figure 6, ce qui permet d'obtenir le résultat recherché quelle que soit la valeur de b. Le mode de réalisation qui vient d'être décrit n'est qu'un exemple possible de mise en oeuvre de l'invention, qui ne s'y limite pas. En particulier, dans les implémentations de l'algorithme AES où les 20 clés successivement dérivées ne sont pas mémorisées et où le message traité est masqué, il est envisageable de concevoir le processus de dérivation de manière à ce qu'il génère la clé Ki+, classiquement dérivée selon l'algorithme AES à cette étape, que le processus de dérivation soit effectué sur la base de la clé K, ou de son complément à 1 bit à bit Ki .Finally, step E56 is performed, to which is applied to each of the bytes of the key C, received as input an operation of "or exclusive" 0 with the corresponding value resulting from the step E54 (result of the application of the steps E50 , E52 and E54 to the relevant byte of the key C,), and possibly also with a byte obtained previously during the present step E56 (byte obtained in the column preceding that of the byte concerned as represented in FIG. , be processed four bytes before the byte concerned) in order to obtain the different bytes of the key C, + 1 as provided by the algorithm AES In the case where the complemented key is being derived (case where b is 0), the two values X, Y to be combined by this operation are the conventional values at this stage according to the AES algorithm, each however being complemented (notably because the steps E50, E52 and E54 retain the property of complementarity as explained above) It is therefore proposed, in order to implement step E56, to determine a mask p. by random draw and to add (in the sense of the operation 0) this mask to one of the values to be combined (for example with the value X) before combination, as represented in FIG. 6. Indeed, without this masking, we would end up by combining the two values complemented by the usual value for the AES algorithm at this stage and we would therefore lose the advantage of using, at random, complemented values in the calculations. Note that this masking can be achieved not only in the case where b is 0, but also in the case where b is 1, which allows to apply the same treatment in both cases. As a variant, this masking could be used only in the cases where b is 1. In order to find the desired value (not masked), the mask is applied again after combination, by adding to it (in the sense of the operation 0) the value hFF in the case where b is 0 in order to obtain in this case a complemented output value, as provided in the present embodiment. For example, it is proposed to perform this operation by applying the value i.teAeB 15 after combining (that is to say XO Ft 8 Y) as represented in FIG. 6, which makes it possible to obtain the result searched regardless of the value of b. The embodiment which has just been described is only one possible example of implementation of the invention, which is not limited thereto. In particular, in implementations of the AES algorithm where the successively derived keys are not stored and the processed message is masked, it is conceivable to design the derivation process so that it generates the key Ki +, conventionally derived according to the AES algorithm at this stage, that the derivation process is performed on the basis of the key K, or its complement to 1 bit bit Ki.

25 Il suffit pour ce faire de ne pas chercher à obtenir le complément lorsque cela est nécessaire (cas où b vaut 0 ci-dessus) en fin de processus de dérivation : on se contente dans ce cas de démasquer le résultat de la combinaison (étape E56) par la valeur p. (au lieu d'utiliser la valeur iLt C^ A 0 B comme prévu en figure 6).To do this, it is sufficient not to seek the complement when necessary (where b is 0 above) at the end of the derivation process: in this case, it is sufficient to unmask the result of the combination (step E56) by the value p. (instead of using the value iLt C ^ A 0 B as expected in Figure 6).

30 On a par ailleurs présenté ci-dessus le cas où le message M en entrée n'est pas complémenté. Il est toutefois envisageable en variante de complémenter éventuellement le message (c'est-à-dire par exemple d'effectuer l'opération 0 A 0 B afin que le message soit complémenté lorsque b vaut 0), ce dans le cas où le processus de dérivation de clé est conforme à la figure 4 (génération de K,,, ou de K,+1 selon la valeur de b) ou dans le cas où le processus de dérivation génère systématiquement K1+1 selon la variante qui vient d'être mentionnée. In addition, the case where the input message M is not complemented has been presented above. However, it is possible as a variant to optionally supplement the message (that is to say for example to perform the operation 0 A 0 B so that the message is complemented when b is 0), in the case where the process key derivation is in accordance with FIG. 4 (generation of K ,,, or of K, + 1 depending on the value of b) or in the case where the derivation process systematically generates K1 + 1 according to the variant which has just been to be mentioned.

Claims (10)

REVENDICATIONS1. Procédé de traitement cryptographique de données, comprenant un processus de dérivation d'au moins une clé dérivée (Co) à partir d'une clé initiale (K), ledit processus comprenant au moins une opération non linéaire (E52) par rapport à une opération de ou exclusif (e), caractérisé en ce qu'il comprend les étapes suivantes : - choix aléatoire (E2, E4) d'une clé (C_1) parmi la clé initiale (K) et le complément à 1 bit à bit (K) de la clé initiale ; - mise en oeuvre du processus de dérivation sur la base de la clé choisie (C-1). REVENDICATIONS1. A method for cryptographic processing of data, comprising a process of deriving at least one derived key (Co) from an initial key (K), said process comprising at least one non-linear operation (E52) with respect to an operation or exclusive, characterized in that it comprises the following steps: random selection (E2, E4) of a key (C_1) from the initial key (K) and the complement of 1 bit by bit (K ) the initial key; implementing the derivation process on the basis of the selected key (C-1). 2. Procédé de traitement cryptographique selon la revendication 1, caractérisé en ce que l'opération non-linéaire (E52) est mise en oeuvre par lecture dans une table de correspondance. 2. Cryptographic processing method according to claim 1, characterized in that the non-linear operation (E52) is implemented by reading in a correspondence table. 3. Procédé de traitement cryptographique selon la revendication 2, caractérisé ce que, l'opération non-linéaire (E52) étant appliquée à un octet donné (j), ladite lecture est réalisée au niveau d'une entrée de la table de correspondance déterminée en fonction de l'octet donné (j) et du choix aléatoire effectué (b). 3. A cryptographic processing method according to claim 2, characterized in that, the non-linear operation (E52) being applied to a given byte (j), said reading is performed at an input of the determined correspondence table. according to the given byte (j) and the random choice made (b). 4. Procédé de traitement cryptographique selon l'une des revendications 1 à 3, caractérisé en ce que le processus de dérivation comprend un traitement (E50 ; E52 ; E54) générant un résultat lorsque la clé choisie est la clé initiale et le complément à 1 bit à bit du résultat lorsque la clé choisie est le complément à 1 bit à bit de la clé initiale, en ce que le processus de dérivation comprend une combinaison par une opération de ou exclusif d'un octet (X) obtenu par ledit traitement et d'un octet (Y) de la clé choisie et en ce que le processus de dérivation comprend une opération, antérieure à ladite combinaison, de masquage (i.i) de l'un au moins des octets combinés (X ; Y). 4. Cryptographic processing method according to one of claims 1 to 3, characterized in that the derivation process comprises a treatment (E50; E52; E54) generating a result when the key chosen is the initial key and the complement to 1 bitwise of the result when the selected key is the 1-bit-bit complement of the initial key, in that the derivation process comprises a combination by an operation of or exclusive of a byte (X) obtained by said processing and one byte (Y) of the selected key and in that the derivation process comprises an operation, prior to said combination, of masking (ii) at least one of the combined bytes (X; Y). 5. Procédé de traitement cryptographique selon l'une des revendications 1 à 4, caractérisé en ce qu'il comprend une étape (E8) d'application de la clé dérivée à des données de message au moyen d'une opération de ou exclusif. 5. Cryptographic processing method according to one of claims 1 to 4, characterized in that it comprises a step (E8) of applying the derived key to message data by means of an operation or exclusive. 6. Procédé de traitement cryptographique selon l'une des revendications 1 à 5, caractérisé en ce que ledit traitement est un algorithme de type AES. 6. Cryptographic processing method according to one of claims 1 to 5, characterized in that said processing is an AES type algorithm. 7. Procédé de traitement cryptographique selon la revendication 6, caractérisé en ce que l'opération non-linéaire est une opération de type SubWord. 7. Cryptographic processing method according to claim 6, characterized in that the non-linear operation is a SubWord type operation. 8. Dispositif de traitement de données apte à mettre en oeuvre un processus de dérivation d'au moins une clé dérivée (Co) à partir d'une clé initiale (K), ledit processus comprenant au moins une opération non linéaire (E52) par rapport à une opération de ou exclusif (CD), caractérisé en ce qu'il comprend : - des moyens configurés pour choisir (E2, E4) une clé (C_1) de manière aléatoire parmi la clé initiale (K) et le complément à 1 bit à bit (K) de la clé initiale ; - des moyens configurés pour mettre en oeuvre du processus de dérivation sur la base de la clé choisie (C-1). Data processing device capable of implementing a derivation process of at least one derived key (Co) from an initial key (K), said process comprising at least one non-linear operation (E52) by to an operation of or exclusive operation (CD), characterized in that it comprises: - means configured to choose (E2, E4) a key (C_1) randomly from the initial key (K) and the complement to 1 bitwise (K) of the initial key; means configured to implement the derivation process on the basis of the chosen key (C-1). 9. Dispositif de traitement de données selon la revendication 8, caractérisé en ce qu'il comprend des moyens configurés pour appliquer l'opération non linéaire à un octet donné par lecture dans une table de correspondance au niveau d'une entrée de la table de correspondance déterminée en fonction de l'octet donné (j) et du choix effectué (b). 9. Data processing device according to claim 8, characterized in that it comprises means configured to apply the non-linear operation to a given byte by reading in a correspondence table at an input of the data table. match determined according to the given byte (j) and the choice made (b). 10. Dispositif de traitement de données selon la revendication 8 ou 9, caractérisé en ce que, le processus de dérivation comprenant un traitement(E50 ; E52 ; E54) générant un résultat lorsque la clé choisie est la clé initiale et le complément à 1 bit à bit du résultat lorsque la clé choisie est le complément à 1 bit à bit de la clé initiale et le processus de dérivation comprenant une combinaison par une opération de ou exclusif d'un octet (X) obtenu par ledit traitement et d'un octet (Y) de la clé choisie, il comprend des moyens configurés pour masquer, antérieurement à ladite combinaison, l'un au moins des octets combinés (X ; Y). Data processing apparatus according to claim 8 or 9, characterized in that the derivation process comprises a process (E50; E52; E54) generating a result when the selected key is the initial key and the 1-bit complement. bitwise of the result when the selected key is the 1-bit-bit complement of the initial key and the derivation process comprising a combination by an operation of or exclusive of a byte (X) obtained by said processing and a byte (Y) of the selected key, it comprises means configured to mask, prior to said combination, at least one of the combined bytes (X, Y).
FR1161988A 2011-12-20 2011-12-20 DATA PROCESSING METHOD AND ASSOCIATED DEVICE Expired - Fee Related FR2984646B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1161988A FR2984646B1 (en) 2011-12-20 2011-12-20 DATA PROCESSING METHOD AND ASSOCIATED DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1161988A FR2984646B1 (en) 2011-12-20 2011-12-20 DATA PROCESSING METHOD AND ASSOCIATED DEVICE

Publications (2)

Publication Number Publication Date
FR2984646A1 true FR2984646A1 (en) 2013-06-21
FR2984646B1 FR2984646B1 (en) 2014-01-24

Family

ID=46124415

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1161988A Expired - Fee Related FR2984646B1 (en) 2011-12-20 2011-12-20 DATA PROCESSING METHOD AND ASSOCIATED DEVICE

Country Status (1)

Country Link
FR (1) FR2984646B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2953350A1 (en) * 2009-11-04 2011-06-03 St Microelectronics Rousset PROTECTION OF AN ENCRYPTION KEY

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2953350A1 (en) * 2009-11-04 2011-06-03 St Microelectronics Rousset PROTECTION OF AN ENCRYPTION KEY

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AKKAR M-L ET AL: "AN IMPLEMENTATION OF DES AND AES, SECURE AGAINST SOME ATTACKS", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. 3RD INTERNATIONAL WORKSHOP, CHES 2001, PARIS, FRANCCE, MAY 14 - 16, 2001 PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE], BERLIN : SPRINGER, DE, vol. VOL. 2162, 1 January 2001 (2001-01-01), pages 309 - 318, XP008002641, ISBN: 978-3-540-42521-2 *
GOLIC J D ET AL: "Multiplicative masking and power analysis of AES", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS - CHES 2002,, 1 January 2002 (2002-01-01), pages 198 - 212, XP009112643 *
TRICHINA E ET AL: "SIMPLIFIED ADAPTIVE MULTIPLICATIVE MASKING FOR AES", LECTURE NOTES IN COMPUTER SCIENCE/COMPUTATIONAL SCIENCE (CPAIOR 2011), SPRINGER, DE, vol. 2523, 1 January 2002 (2002-01-01), pages 187 - 197, XP001176599, ISBN: 978-3-540-24128-7 *

Also Published As

Publication number Publication date
FR2984646B1 (en) 2014-01-24

Similar Documents

Publication Publication Date Title
EP1769603B1 (en) Method and device for executing cryptographic calculation
EP2893431B1 (en) Protection against side channel attacks
EP1757009B1 (en) Method and device for carrying out a cryptographic calculation
EP2256987B1 (en) Protection of a generation of prime numbers for the RSA algorithm
EP2296086B1 (en) Protection of prime number generation against side-channel attacks
EP3228043B1 (en) Method of encryption with dynamic diffusion and confusion layers
FR2829331A1 (en) Chip card key security system for Data Encryption Standard (DES) keys uses partial comparison
FR3033965A1 (en)
EP1358733A1 (en) Secure method for secret key cryptographic calculation and component using said method
EP2638660B1 (en) Protection against passive sniffing
FR3011653A1 (en) MASKING AND DEMASQUING METHODS AND DEVICES
EP3300292B1 (en) Encryption or decryption method protected against side channel attacks
FR3055444A1 (en) DEVICE AND METHODS FOR CONTROLLING A SECURE ELLIPTICAL CURVE ENCRYPTION DEVICE
FR2906665A1 (en) CRYPTOGRAPHIC SYSTEMS FOR ENCRYPTING INPUT DATA USING AN INPUT ADDRESS, ERROR DETECTION CIRCUITS, AND METHODS OF OPERATING THE SAME
EP2391051A1 (en) Method for determining a representation of a multiplication and method for computing a function
EP2296307A1 (en) Cryptographic data processing method secured against fault attacks
EP3502899B1 (en) Method for determining a checksum, and related computer program and electronic entity
EP2336931A1 (en) Method for signature verification
FR2818846A1 (en) Method for protecting electronic component executing cryptographic algorithm against current measurement attack, comprises factorization of exponential in algorithm and permutation of the factors
FR2984646A1 (en) Method for processing cryptographic data, involves randomly choosing derivative key from initial key to complement bit of initial key, and implementing derivation process based on selected key
WO2007116140A1 (en) Method for cryptographic processing of data, related device and programme
EP2129115B1 (en) Method for updating security data in a security module and security module for implementing this method
WO2009074728A1 (en) Method for cryptographic data processing, particularly using an s box, and related device and software
FR3053862A1 (en) METHOD FOR GENERATING PARAMETERS CHARACTERIZING A CRYPTOGRAPHIC PROTOCOL
FR2995110A1 (en) Method for optimizing use of e.g. memory, of electronic device i.e. smart card, involves protecting smart card from physical attacks by masking from substitution box and inverse substitution box upon implementing cryptographic algorithm

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 9

CA Change of address

Effective date: 20200908

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200908

ST Notification of lapse

Effective date: 20210805