WO2007116140A1 - PROCÉDÉ DE TRAITEMENT CRYPTOQRAPHIQυE DE DONNÉES, DISPOSITIF ET PROGRAMME ASSOCIÉS - Google Patents

PROCÉDÉ DE TRAITEMENT CRYPTOQRAPHIQυE DE DONNÉES, DISPOSITIF ET PROGRAMME ASSOCIÉS Download PDF

Info

Publication number
WO2007116140A1
WO2007116140A1 PCT/FR2007/000591 FR2007000591W WO2007116140A1 WO 2007116140 A1 WO2007116140 A1 WO 2007116140A1 FR 2007000591 W FR2007000591 W FR 2007000591W WO 2007116140 A1 WO2007116140 A1 WO 2007116140A1
Authority
WO
WIPO (PCT)
Prior art keywords
mask
data
function
masked
linear
Prior art date
Application number
PCT/FR2007/000591
Other languages
English (en)
Inventor
Christophe Giraud
Emmanuel Prouff
Original Assignee
Oberthur Technologies
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 filed Critical Oberthur Technologies
Publication of WO2007116140A1 publication Critical patent/WO2007116140A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1016Devices or methods for securing the PIN and other transaction-data, e.g. by encryption
    • 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]

Definitions

  • the invention relates to a method for cryptographic processing of data, as well as a device and an associated program.
  • Masking techniques consist in combining the data (that is to say in practice the number) that one wishes to use (in practice, to which one wishes to undergo an operation) with an unpredictable number for an external attacker (in general a random or pseudo-random number); thus, the values involved are different each time even using a constant data input, which makes it impossible for the attacker to deduce the internal data of the method (and in particular the cryptographic keys that it uses) from measurements made of outside.
  • the masking of the data involves a particular process flow, that is to say in particular additional operations related to masking and unmasking, since it modifies the data (or numbers) manipulated during the processing while the result must of course be identical to that obtained without masking.
  • nonlinear functions proves on the other hand more problematic since the combination carried out by the masking can not be dissociated by linearity in the result of the nonlinear function, so that the application of a function non-linear to a masked data leads most often to the implementation of a modified function, which naturally complicates the process.
  • a function non-linear to a masked data leads most often to the implementation of a modified function, which naturally complicates the process.
  • a function for example an S-box or "S-Botf" in the field of cryptography
  • a correspondence table frequently referred to as a table
  • the invention proposes a method cryptographic processing of data represented in digital form, the method being implemented by an electronic entity and comprising a transformation of an input data into output data, the output data corresponding to the result of the application of a nonlinear function to the input data, characterized by the following steps:
  • the electronic entity is able to manipulate the processed digital data, for example by means of a microprocessor.
  • the method is for example a method for encrypting or decrypting digital data, generally representing a message, but also potentially a cryptographic key, an intermediate data element, or only a part of such elements.
  • the mask may be an additive mask, for example a Boolean mask.
  • the linear combination is a boolean sum of functions translated relative to the non-linear function.
  • the sum then relates for example to the functions translated by a set of values that can be envisaged for the masked data, except for the value of the mask.
  • the output data can then be obtained by means of the calculation of ⁇ F (MVi ® a), where F is the nonlinear function, X is the mask and MVi aeE, has ⁇ X the masked data.
  • the masked data is represented in a vector space, for example of the GF (2) k type .
  • the function related to the nonlinear function is for example a Fourier transform of the nonlinear function.
  • the linear combination can then be a sum, for each element of the vector space, of the Fourier transform taken in this element with a sign depending in particular on the masked datum.
  • a step prior to the linear combination, of masking a register containing the sum by means of an arithmetic mask and / or a step, subsequent to the linear combination, of converting the arithmetic masking of the register. in Boolean masking.
  • the output data can be obtained by means of the calculation of . ⁇ F (A) (- ⁇ ) A M ' ' - l @ X iU ' ' - ⁇ A) , where G is the vector space, F the transform of
  • the output data is obtained by means of the calculation of 2 ⁇ ) (_ 1 ) ⁇ IM ⁇ ⁇ 1M® ⁇ « I)
  • AeG the vector space, F the Fourier transform of the nonlinear function F, X the mask, MVi the masked data and Ri a number (random or pseudo-random) determined by the electronic entity and which allows a new masking of some operations.
  • the invention makes it possible to use the same table regardless of the mask.
  • a step of unmasking the output data is also provided.
  • the method is for example implemented by a sequence of instructions stored in the electronic entity and executed by a microprocessor of the electronic entity.
  • the electronic entity may be in practice a microcircuit card, particularly suitable for this type of secure operations.
  • the invention also proposes an electronic device for cryptographic processing of data represented in digital form, the device being able to perform a transformation of an input data into output data, the output data corresponding to the result of the application of the data.
  • a nonlinear function to the input data characterized by means for applying a mask to the input data to obtain masked data, and means for determining the output data by applying to the masked data a linear combination involving, in each term of the combination, a function independent of the mask and related to the nonlinear function.
  • This device may also include characteristics corresponding to the embodiments envisaged above for the method.
  • the invention finally proposes a computer program comprising a sequence of instructions able, when executed by a microprocessor, to implement the method mentioned above.
  • FIG. 1 shows schematically the main elements of a possible embodiment for a microcircuit card
  • FIG. 2 represents the general physical appearance of the microcircuit card of FIG. 1;
  • FIG. 3 represents the essential steps of an encryption according to the AES algorithm with masking
  • FIG. 4 represents the essential steps of an iteration (or ROUND) in step E110 of FIG. 3;
  • FIG. 5 represents a first exemplary embodiment of step E202 of FIG. 4;
  • FIGS. 6A and 6B show a second exemplary embodiment of step E202 of FIG. 4.
  • An example of an electronic entity is a microcircuit card 10, the main electronic elements of which are represented in FIG. 1 and which comprises a microprocessor 2 connected on the one hand to a Random Access Memory (Random Access Memory RAM) 4 and on the other hand to a non-volatile rewritable semiconductor memory 6, for example an electrically erasable and programmable read only memory (or EEPROM) from English Electrically Erasable Programable Read OnIy Memory).
  • the non-volatile rewritable semiconductor memory 6 could be a flash memory.
  • the memories 4, 6 are connected to the microprocessor 2 by a bus each in Figure 1; alternatively, it could be a common bus.
  • the microcircuit card 10 also comprises an interface 8 for communication with a user terminal made here in the form of contacts, one of which, for example, provides a bidirectional link with the microprocessor 2.
  • the interface 8 thus enables the establishment of bidirectional communication between the microprocessor 2 and the user terminal in which the microcircuit card 10 will be inserted.
  • the microprocessor 2 will implement a method of operation of the microcircuit card 10, according to a set of instructions, stored for example in a read-only memory. (or ROM of Read-Only Memory)
  • This method generally includes the exchange of data with the user terminal via the interface 8 and the data processing within the microcircuit card 10, and precisely within the microprocessor 2 with possible use of data stored in the rewritable memory 6 and data temporarily stored in RAM 4.
  • FIG. 2 represents the general physical appearance of the microcircuit card 10 made with the general shape of a rectangular parallelepiped of very small thickness.
  • the communication interface 8 provided with the contacts already mentioned appears clearly on the face of the microcircuit card 10 visible in FIG. 2, in the form of a rectangle inscribed in the upper face of the microcircuit card 10.
  • FIG. 3 represents the essential steps of a method of encrypting a word M within the electronic entity.
  • the word M is generally a part of a message to be encrypted having for example a length of 128 bits. Other lengths are naturally conceivable, such as the lengths of 192 bits and 256 bits frequently used.
  • the example described here uses as electronic entity the microcircuit card described above with reference to FIGS. 1 and 2, but others Electronic entity types can of course be used, such as for example a personal computer.
  • the method of FIG. 3 realizes the encryption of the word M according to the AES (Advanced Encryption Standard) algorithm.
  • the electronic entity stores, for example within the non-volatile memory 6, a cryptographic key K from which subkeys Ko,... K n are derived by means of a procedure of key expansion.
  • step E100 by receiving, for example through the interface 8 of the microcircuit card, the word (usually a part of message) M to encrypt.
  • the electronic entity is then used to draw a random number X used as explained below for the masking of the word M during a step E102.
  • a random number used, it is for example in practice a pseudo-random number determined inside the microprocessor 2. In general, the number X must be a non-random number. predictable from outside the electronic entity.
  • the initial transformation is then carried out first by means of the subkey KB during a step E106: the initial transformation consists in applying the key K 0 to the data by means of an operator or exclusive.
  • step E110 the masked word M'M obtained in the preceding step (step E106 after the initial transformation or preceding iteration) is subjected to an iteration (ROUND) of the algorithm as described in detail below with reference to Figure 4, to obtain a new masked word M'j.
  • ROUND iteration
  • step E116 the final transformation is carried out during a step E116, during which time a word M 'is thus obtained. n from the word M ' n -i previously obtained, using the subkey K n (step E116).
  • the result of the final transformation M ' n thus corresponds to the ciphered word obtained by means of the AES algorithm from the initial word M, masked with the previously defined mask X.
  • the encrypted word M n can then be sent outside the electronic entity by means of the interface 8 during a step E120 which terminates the encryption process by the electronic entity of the word M.
  • FIG 4 shows the main steps implemented during each iteration of step E110 mentioned above.
  • the iteration i is applied to a masked data item MVi using the mask X, these two values being therefore the data received at the input during a step E200 by the method represented in FIG.
  • This data, and in particular the masked data M'M, are firstly processed by applying a step commonly referred to as "Byte Sub” which consists in substituting the data by means of a nonlinear F function (commonly referred to as a box).
  • -S or "S-box”) here according to one or the other of two possible embodiments described hereinafter with reference to FIGS. 5 on the one hand, and 6A and 6B on the other hand.
  • step E202 thus makes it possible to obtain the result B 'of the application of the nonlinear F function to the masked data M'M received at the input in the step E200. Moreover, since the operation F is not linear, it is also expected during step E202 to determine the mask Xi which differentiates the result obtained B 'from the result F (MM) which would have been obtained without masking (and which is different from F (X) because of the lack of linearity).
  • the step B 1 of step E 2 O 2 is then applied to the step commonly referred to as "subblock bit shift shift B" in order to obtain a word C (step E204).
  • the mask X 2 masking the word C after this operation is obtained simply by applying the same operation "Shift RoW to the mask Xi determined in step E202.
  • step E208 This is done in step E208 at the fourth and last conventional stage of the iteration, namely the step generally referred to as "Add Round
  • the result E 'of step E208 then corresponds to the conventional result of the AES algorithm, with masking by the mask X 3 mentioned above.
  • step E212 after the iteration i, the data M i masked is obtained by means of the mask X.
  • FIG. 5 represents a first embodiment of step E202 mentioned above in accordance with the teachings of the invention.
  • the function F is an algebraic polynomial function of degree k and where the data processed during the step E202 (namely the masked data MVi and the mask X) are represented as elements of a vector space E of finite cardinal N and of dimension equal to degree k of function F.
  • the vector space E is preferably generated with a random structure by means of known techniques, for example at each new execution of an AES algorithm.
  • step E202 begins with an initialization step E300 of an index j and a Boolean sum S to 0.
  • the index j locates the element aj of the vector space E used in the steps concerned.
  • the current element aj is compared to the mask X received at the input (see step E200 above).
  • step E304 If the comparison is negative (that is to say if the element a j is not equal to the mask X), proceed to step E304 where the result of the application of the function is determined. F to the combination (by means of one or exclusive) of the input data item MV 1 and of the current item aj, this result being combined with the current value of the sum S in order to obtain a new value for this item. current sum S.
  • the result of the application of the function F is for example obtained by reading the image of the value MVi ⁇ a j in a correspondence table (or table-S) stored in the non-volatile memory 6.
  • step E306 When, on the contrary, it has been determined in step E302 that the current element aj is equal to the mask, proceed directly to step E306 without proceeding to step E304. Step E306 also follows step E304 when it is implemented.
  • the step E306 that has just been mentioned consists in incrementing the value of the index j in order to traverse the whole of the vector space E.
  • step E308 it is verified in step E308 that the set of the vector space E has not been traversed by the comparison of the index j with the number N of elements of the vector space E and we return in case of inequality in step E302 previously described.
  • step E308 therefore corresponds to the result F (MM) of the "Byte Sub” operation that would have been obtained without masking, a result masked by a constant value DE F.
  • step E310 It is thus possible to return during a step E310 the sum S as result B 1 of step E202 and the value D E F as mask X 1 at the end of step E202.
  • FIGS. 6A and 6B show the main steps of a second exemplary implementation of step E202 of FIG. 4 in accordance with the teachings of the invention.
  • AY is the scalar product of A and Y defined as follows:
  • F can be chosen as inversion in GF (2 k ) ⁇ ⁇ 0 ⁇ (with convention
  • step E400 drawing three random numbers Ri, R 2 , R 3 -
  • step E102 it is also here to use unpredictable numbers from outside to hide the manipulated data.
  • a register S is initialized to the value 2 k ⁇ R 2 + R 3 .
  • the initialization of a register A, representing a variable value in the Galois field G is carried out at the value 0.
  • the term associated with the element A is determined in the sum expressing the image F (Y) as a function of the Fourier transform P.
  • step E408 the boolean sum of this data M M and the current element A: M M ⁇ A are also recorded, and the result is stored in a register T 2 .
  • This register is then masked during a step E410 by Boolean addition of the random number Ri determined in step E400 in order to mask the calculation operation of the dot product involving the mask X in the next step.
  • the result of the masking is stored in T 2 with overwriting.
  • the register T 2 contains the sign given by (_i) ⁇ v-. ** • ⁇ * ', -. ⁇ """ ) .
  • the value P (A) associated with the element A is for example determined by reading in a correspondence table which stores, for example in non-volatile memory 8, the set of pairs (Y, P (Y)), c that is precomputed values P (Y) associated with each Y that can be envisaged in G.
  • the value of the register T 2 is added after the step E416 to the current sum S during a step E418.
  • the element A is incremented during a step E420 and it is verified during a step E422 if all the elements of the body of Galois G have been considered.
  • the value MV 1 R 1 which is stored in the register T 1 with overwriting during a step E426 is calculated, then the sign (-1) ⁇ i " R i is determined. is memorized in the register Ti with overwriting during a step E428.
  • d (a h 2 x ⁇ e ⁇ ) + (a h x ai) + ai 2 with ⁇ e ⁇ the hexadecimal value OxOE.
  • the invention may for example also be applied in the case of other algorithms involving a non-linear function, such as the DES algorithm.
  • the mask applied to the input data of the nonlinear function is not necessarily then the mask X applied at the beginning of the algorithm, but generally deduces easily as explained above about the steps E204, E206 and E208.
  • this approach can be applied in particular to the expansion operation of the key.

Abstract

Un procédé de traitement cryptographique de données réalise une transformation d'une donnée d'entrée (Mμi) en donnée de sortie (B'), la donnée de sortie (B') correspondant au résultat de l'application d'une fonction non- linéaire (F) à la donnée d'entrée (MM). Le procédé inclut les étapes suivantes : - application d'un masque (X) à la donnée d'entrée (MM ) pour obtenir une donnée masquée (M'M); - détermination de la donnée de sortie (B') par application à la donnée masquée (MVi) d'une combinaison linéaire (S) impliquant, dans chaque terme de la combinaison, une fonction (F(MVi © aj)) indépendante du masque (X) et liée à la fonction non-linéaire (F). Des dispositifs et programmes associés sont également proposés.

Description

Procédé de traitement cryptoqraphiqυe de données, dispositif et programme associés
L'invention concerne un procédé de traitement cryptographique de données, ainsi qu'un dispositif et un programme associés.
Dans de tels procédés, on a fréquemment recours au, masquage des données afin de lutter contre les attaques, par exemple du type analyse de courant (notamment les attaques de type DPA ainsi dénommées d'après l'anglais
"Differential Power Analysis") ou du type analyse de rayonnement électromagnétique.
Les techniques de masquage consistent à combiner la donnée (c'est- à-dire en pratique le nombre) que l'on souhaite utiliser (en pratique, auquel on souhaite faire subir une opération) avec un nombre imprévisible pour un attaquant extérieur (en général un nombre aléatoire ou pseudo-aléatoire) ; ainsi, les valeurs impliquées sont chaque fois différentes même en utilisant une donnée constante en entrée, ce qui rend impossible pour l'attaquant de déduire les données internes du procédé (et notamment les clés cryptographiques qu'il utilise) à partir de mesures faites de l'extérieur.
Le masquage des données implique toutefois un déroulement particulier du procédé, c'est-à-dire notamment des opérations supplémentaires liées au masquage et au démasquage, puisqu'il modifie les données (ou nombres) manipulées au cours du traitement alors que le résultat doit bien sûr être identique à celui obtenu sans masquage.
Lorsque les fonctions mises en œuvre sont linéaires par rapport au masquage effectué, ces opérations supplémentaires sont relativement simples puisque le masque se transforme par linéarité sans impliquer toutefois de modification de la fonction utilisée.
La mise en œuvre sur des fonctions non-linéaires se révèle en revanche plus problématique puisque la combinaison effectuée par le masquage ne peut pas être dissociée par linéarité dans le résultat de la fonction non- linéaire, si bien que l'application d'une fonction non-linéaire à une donnée masquée conduit le plus souvent à la mise en œuvre d'une fonction modifiée, ce qui complique naturellement le procédé. Par exemple, lorsque l'application de la fonction non-linéaire (par exemple une boîte-S ou "S-Botf' dans le domaine de la cryptographie) est réalisée en pratique au moyen d'une table de correspondance (fréquemment dénommée table-S dans ce même domaine) mémorisée dans le dispositif cryptographique, l'utilisation d'une fonction modifiée conduit en général au recalcul de la table de correspondance dès qu'un nouveau masque est utilisé.
Afin de tenter d'apporter une réponse à ce problème dans le cas spécifique de l'opération non-linéaire d'inversion utilisée dans le cadre de l'algorithme AES, il a été proposé dans l'article "An implementation of DES and AES, secure against some attacks" de M.-L. Akkar et C. Giraud in Cryptographie Hardware and Embedded Systems - CHES 2001 , d'adapter le masque de façon à le rendre linéaire vis-à-vis de l'opération concernée : on transformait en l'espèce le masque additif en un masque multiplicatif, vis-à-vis duquel la fonction d'inversion est linéaire. Le masque utilisé est alors toutefois imposé par la fonction non- linéaire à appliquer et peut se révéler inapproprié pour une sécurisation efficace du procédé : le masquage multiplicatif est par exemple rendu inopérant lorsque la donnée à masquer est nulle.
Afin de répondre à ces problèmes, et notamment de déterminer le résultat de l'application d'une fonction non-linéaire avec masquage efficace de cette opération, mais sans avoir à modifier les fonctions impliquées selon le masque utilisé, l'invention propose un procédé de traitement cryptographique de données représentées sous forme numérique, le procédé étant mis en œuvre par une entité électronique et comprenant une transformation d'une donnée d'entrée en donnée de sortie, la donnée de sortie correspondant au résultat de l'application d'une fonction non-linéaire à la donnée d'entrée, caractérisé par les étapes suivantes :
- application d'un masque à la donnée d'entrée pour obtenir une donnée masquée ; - détermination de la donnée de sortie par application à la donnée masquée d'une combinaison linéaire impliquant, dans chaque terme de la combinaison, une fonction indépendante du masque et liée à la fonction non- linéaire. La fonction non-linéaire peut s'exprimer au moins en partie au moyen dé cette combinaison linéaire et le résultat de l'application de cette fonction peut ainsi être obtenu notamment en utilisant cette combinaison linéaire.
L'utilisation d'une fonction liée à la fonction non-linéaire et indépendante du masque permet de répercuter l'influence nécessaire de la fonction non-linéaire sur la donnée masquée, sans toutefois nécessiter de modifications de ce processus selon le masque impliqué, les modifications générées par le masquage étant reportées au niveau de la combinaison linéaire.
L'entité électronique est apte à manipuler les données numériques traitées, par exemple au moyen d'un microprocesseur.
Le procédé est par exemple un procédé de chiffrage ou de déchiffrage de données numériques, représentant en général un message, mais également potentiellement une clé cryptographique, une donnée intermédiaire, ou une partie seulement de tels éléments. Selon un mode de réalisation particulièrement intéressant du fait de la combinaison linéaire, le masque peut être un masque additif, par exemple un masque booléen.
Selon un premier exemple de réalisation, la combinaison linéaire est une somme booléenne de fonctions translatées par rapport à la fonction non- linéaire.
La somme porte alors par exemple sur les fonctions translatées par un ensemble de valeurs envisageables pour la donnée masquée exceptée la valeur du masque.
Précisément, la donnée de sortie peut alors être obtenue au moyen du calcul de θ F(MVi ® a), où F est la fonction non-linéaire, X le masque et MVi aeE,a≠X la donnée masquée.
Selon un second exemple de réalisation, la donnée masquée est représentée dans un espace vectoriel, par exemple du type GF(2)k.
On propose dans ce cadre que la fonction liée à la fonction non- linéaire soit par exemple une transformée de Fourier de la fonction non-linéaire.
La combinaison linéaire peut alors être une somme, pour chaque élément de l'espace vectoriel, de la transformée de Fourier pris en cet élément avec un signe dépendant notamment de la donnée masquée. On peut prévoir dans ce contexte une étape, préalable à la combinaison linéaire, de masquage d'un registre contenant la somme au moyen d'un masque arithmétique et/ou une étape, postérieure à la combinaison linéaire, de conversion du masquage arithmétique du registre en masquage booléen. . En pratique, la donnée de sortie peut être obtenue au moyen du calcul de .∑F(A)(-ï)A M''-l@X iU''-ιΦA) , où G est l'espace vectoriel, F la transformée de
AeG
Fourier de la fonction non-linéaire F, X le masque et MVi la donnée masquée.
Selon une variante mieux protégée contre les attaques, la donnée de sortie est obtenue au moyen du calcul de 2^)(_1)^IMΘ^^1M®I) | OU Q ΘSt
AeG l'espace vectoriel, F la transformée de Fourier de la fonction non-linéaire F, X le masque, MVi la donnée masquée et Ri un nombre (aléatoire ou pseudoaléatoire) déterminé par l'entité électronique et qui permet un nouveau masquage de certaines opérations.
Selon une réalisation pratique, on peut prévoir une étape de détermination d'une image de la fonction liée à la fonction non-linéaire par lecture dans une table de correspondance, mémorisée par exemple en mémoire non- volatile.
L'invention permet en effet d'utiliser la même table quel que soit le masque. On prévoit en général également une étape de démasquage de la donnée de sortie.
Le procédé est par exemple mis en œuvre par une séquence d'instructions mémorisées dans l'entité électronique et exécutées par un microprocesseur de l'entité électronique. L'entité électronique peut être en pratique une carte à microcircuit, particulièrement adaptée à ce type d'opérations sécurisées.
L'invention propose également un dispositif électronique de traitement cryptographique de données représentées sous forme numérique, le dispositif étant apte à effectuer une transformation d'une donnée d'entrée en donnée de sortie, la donnée de sortie correspondant au résultat de l'application d'une fonction non-linéaire à la donnée d'entrée, caractérisé par des moyens pour appliquer un masque à la donnée d'entrée pour obtenir une donnée masquée, et des moyens pour déterminer la donnée de sortie par application à la donnée masquée d'une combinaison linéaire impliquant, dans chaque terme de la combinaison, une fonction indépendante du masque et liée à la fonction non- linéaire. Ce dispositif peut également inclure des caractéristiques correspondant aux modes de réalisation envisagés ci-dessus pour le procédé.
L'invention propose enfin un programme d'ordinateur comprenant une suite d'instructions aptes, lorsqu'elles sont exécutées par un microprocesseur, à mettre en oeuvre le procédé évoqué ci-dessus. D'autres caractéristiques et avantages de la présente invention apparaîtront en outre à la lecture de la description qui suit, faite en référence aux dessins annexés, dans lesquels :
- la figure 1 représente schématiquement les éléments principaux d'une forme de réalisation possible pour une carte à microcircuit ; - la figure 2 représente l'allure physique générale de la carte à microcircuit de la figure 1 ;
- la figure 3 représente les étapes essentielles d'un chiffrement selon l'algorithme AES avec masquage ;
- la figure 4 représente les étapes essentielles d'une itération (ou ROUND) à l'étape E110 de la figure 3 ;
- la figure 5 représente un premier exemple de réalisation de l'étape E202 de la figure 4 ;
- les figures 6A et 6B représentent un second exemple de réalisation de l'étape E202 de la figure 4. Un exemple d'entité électronique est une carte à microcircuit 10 dont les principaux éléments électroniques sont représentés à la figure 1 et qui comporte un microprocesseur 2 relié d'une part à une mémoire vive (ou RAM de l'anglais Random Access Memory) 4 et d'autre part à une mémoire à semiconducteur non-volatile réinscriptible 6, par exemple une mémoire morte effaçable et programmable électriquement (ou EEPROM de l'anglais Electrically Erasable Programable Read OnIy Memory). En variante, la mémoire non-volatile réinscriptible à semi-conducteur 6 pourrait être une mémoire flash.
Les mémoires 4, 6 sont reliées au microprocesseur 2 par un bus chacune sur la figure 1 ; en variante, il pourrait s'agir d'un bus commun. La carte à microcircuit 10 comporte également une interface 8 de communication avec un terminal utilisateur réalisée ici sous forme de contacts dont un assure par exemple une liaison bidirectionnelle avec le microprocesseur 2. L'interface 8 permet ainsi l'établissement d'une communication bidirectionnelle entre le microprocesseur 2 et le terminal utilisateur dans lequel la carte à microcircuit 10 sera insérée.
Ainsi, lors de l'insertion de la carte à microcircuit 10 dans un terminal utilisateur, le microprocesseur 2 va mettre en œuvre un procédé de fonctionnement de la carte à microcircuit 10, selon un jeu d'instructions, stockées par exemple dans une mémoire morte (ou ROM de l'anglais Read-Only Memory)
- non représentée - ou dans la mémoire réinscriptible 6, qui définit un programme d'ordinateur. Ce procédé inclut en général l'échange de données avec le terminal utilisateur via l'interface 8 et le traitement de données au sein de la carte à microcircuit 10, et précisément au sein du microprocesseur 2 avec utilisation éventuelle de données stockées dans la mémoire réinscriptible 6 et de données stockées temporairement dans la mémoire vive 4.
Des exemples de procédés qui mettent en œuvre l'invention sont donnés dans la suite.
La figure 2 représente l'allure physique générale de la carte à microcircuit 10 réalisée avec la forme générale d'un parallélépipède rectangle de très faible épaisseur.
L'interface de communication 8 pourvue des contacts déjà mentionnés apparaît clairement sur la face de la carte à microcircuit 10 visible sur la figure 2, sous forme d'un rectangle inscrit dans la face supérieure de la carte à microcircuit 10.
La figure 3 représente les étapes essentielles d'un procédé de chiffrement d'un mot M au sein de l'entité électronique.
Le mot M est en général une partie d'un message à chiffrer ayant par exemple une longueur de 128 bits. D'autres longueurs sont naturellement envisageable, telles que les longueurs de 192 bits et 256 bits fréquemment utilisées.
L'exemple décrit ici utilise comme entité électronique la carte à microcircuit décrite précédemment en référence aux figures 1 et 2, mais d'autres types d'entité électronique peuvent naturellement être utilisés, tels que par exemple un ordinateur personnel.
Le procédé de la figure 3 réalise le chiffrement du mot M selon l'algorithme AES (de l'anglais "Advanced Encryption Standard"). Pour ce faire, l'entité électronique mémorise, par exemple au sein de la mémoire non volatile 6, une clé cryptographique K à partir de laquelle sont dérivées des sous-clés Ko, ... Kn au moyen d'une procédure d'expansion de clé.
L'obtention des sous-clés Ko, ... Kn peut être réalisée selon des techniques connues et qui ne seront donc pas décrites en détail ici. On pourra se référer par exemple à la demande de brevet FR 2 838262.
On notera toutefois que l'invention, décrite dans la suite appliquée au calcul des boîtes-S (ou "S-botf') impliquées à chaque itération (ou ROUND) de l'algorithme AES, pourrait être mise en œuvre lors de l'application de la fonction non-linéaire utilisée dans l'algorithme de dérivation des sous-clés K0, ... Kn. Le procédé de chiffrement commence à l'étape E100 par la réception, par exemple à travers l'interface 8 de la carte à microcircuit, du mot (en général une partie de message) M à chiffrer.
On procède alors au sein de l'entité électronique au tirage d'un nombre aléatoire X utilisé comme expliqué dans la suite pour le masquage du mot M au cours d'une étape E102. Bien que l'on utilise les termes "nombre aléatoire", il s'agit par exemple en pratique d'un nombre pseudo-aléatoire déterminé à l'intérieur du microprocesseur 2. De manière générale, le nombre X doit être un nombre non- prévisible de l'extérieur de l'entité électronique.
On procède alors au cours d'une étape E104 au masquage du mot M afin d'obtenir un mot masqué M1 par combinaison du mot M et du nombre aléatoire X au moyen d'une opération de ou exclusif (fréquemment dénommée "XOR') : M1 = M θ X.
On affectera dans la suite le symbole prime aux valeurs masquées (ici par exemple M') tandis que les grandeurs qui ne portent pas le symbole prime représentent les grandeurs correspondantes sans masquage, c'est-à-dire telles qu'elles auraient été obtenues au cours de l'algorithme AES réalisé sans masquage ; ces grandeurs sans masquage sont introduites ici à des fins explicatives, mais ne seront pas manipulées par le procédé décrit ici qui utilise leur version masquée, sauf naturellement pour les grandeurs M et Mn utilisées respectivement en entrée et en sortie.
Il va à présent être procédé aux différentes étapes de l'algorithme AES en utilisant la donnée masquée M1 selon les étapes décrites ci-dessous qui correspondent aux étapes classiques de l'algorithme AES adaptées pour tenir compte du masquage.
On procède ainsi tout d'abord à la transformation initiale au moyen de la sous-clé Ko au cours d'une étape E106 : la transformation initiale consiste à appliquer la clé K0 à la donnée au moyen d'un opérateur ou exclusif. Le résultat de la transformation initiale est donc le mot MO tel que MO = M1 Θ K0.
Si on dénomme M0 le résultat de la transformation initiale sans masquage (Mo = M θ Ko), on peut remarquer que le résultat MO de l'étape E106 peut s'écrire M'o = Mo θ X. On remarque ainsi que le résultat de l'étape E106 correspond au résultat de la transformation initiale sans masquage, masqué par la valeur du masque X.
On procède après la transformation initiale à une étape E108 d'initialisation à 1 d'un indice i repérant dans la suite l'itération (ou ROUND) concernée.
A l'étape E110, on fait subir au mot masqué M'M obtenu à l'étape précédente (étape E106 après la transformation initiale ou itération précédente) une itération (ROUND) de l'algorithme comme décrit en détail plus bas en référence à la figure 4, afin d'obtenir un nouveau mot masqué M'j.
Comme cela apparaîtra dans la suite, chaque itération est conçue dans l'exemple donné ici (cf. figure 4) pour que le résultat obtenu après l'itération M'j soit égal au résultat Mj après l'itération i dans un algorithme sans masquage, masqué avec un masque X identique à celui introduit à l'étape E104 : après chaque itération, M'j = Mj θ X.
Une fois l'itération ou ROUND i réalisée, on incrémente la valeur de l'indice i au cours d'une étape E112, puis on teste au cours d'une étape E114 l'égalité i = n, où n est le nombre d'itérations plus un utilisées dans l'algorithme concerné (en général 10 itérations pour un mot de 128 bits). Si la dernière itération n'a pas été atteinte (c'est-à-dire que l'égalité i = n n'est pas vérifiée), on retourne à l'étape E110 pour la mise en œuvre de l'itération suivante.
Si en revanche la dernière itération est atteinte (c'est-à-dire lorsque l'on vérifie i = n), on procède à la transformation finale lors d'une étape E116, au cours de laquelle on obtient donc un mot M'n à partir du mot M'n-i précédemment obtenu, et ce avec utilisation de la sous-clé Kn (étape E116).
Le résultat de la transformation finale M'n correspond ainsi au mot chiffré obtenu grâce à l'algorithme AES à partir du mot initial M, masqué avec le masque précédemment défini X.
On procède alors à l'étape E118 au démasquage du mot obtenu à l'étape E116 afin d'obtenir le mot chiffré Mn : Mn = IvTn θ X.
Le mot chiffré Mn peut alors être émis à l'extérieur de l'entité électronique au moyen de l'interface 8 au cours d'une étape E120 qui, termine le procédé de chiffrage par l'entité électronique du mot M.
La figure 4 présente les étapes principales mises en œuvre au cours de chaque itération de l'étape E110 mentionnée plus haut.
Comme déjà indiqué, l'itération i est appliquée à une donnée masquée MVi avec utilisation du masque X, ces deux valeurs étant par conséquent les données reçues en entrée au cours d'une étape E200 par le procédé représenté à la figure 4.
Ces données, et en particulier la donnée masquée M'M, sont tout d'abord traitées par application d'une étape couramment dénommée "Byte Sub" qui consiste à substituer les données au moyen d'une fonction F non linéaire (couramment dénommée boîte-S ou "S-box"), ici selon l'un ou l'autre de deux modes de réalisation envisageables décrits ci-après en référence aux figures 5 d'une part, et 6A et 6B d'autre part.
L'étape E202 permet ainsi d'obtenir le résultat B' de l'application de la fonction F non linéaire à la donnée masquée M'M reçue en entrée à l'étape E200. Par ailleurs, l'opération F n'étant pas linéaire, on prévoit également au cours de l'étape E202 de déterminer le masque Xi qui différencie le résultat obtenu B' du résultat F (MM) qui aurait été obtenu sans masquage (et qui est différent de F(X) du fait de l'absence de linéarité). On applique ensuite au résultat B1 de l'étape E202 l'étape couramment dénommée "Shift RoW de décalage de bits de sous-blocs de B', afin d'obtenir un mot C (étape E204).
Le masque X2 masquant le mot C après cette opération est obtenu simplement en appliquant la même opération "Shift RoW au masque Xi déterminé à l'étape E202.
On vérifie au cours d'une étape E205 si i est différent de n-1, et on procède, si i est différent de n-1, à l'opération "Mix Column" de multiplication de sous-blocs de C par une matrice au cours d'une étape E206, afin d'obtenir le mot D1 ; on obtient aussi le masque X3 de D1 par application de l'étape "Mix Column" au masque X2.
On procède alors au cours de l'étape E208 à la quatrième et dernière étape classique de l'itération, à savoir l'étape généralement dénommée "Add Round
Key" pour obtenir un résultat E1 par combinaison de la donnée D1 obtenue à l'étape E206 avec la sous-clé Kj associée à cette itération au moyen d'un ou exclusif :
E1 = D' θ Ki.
On peut remarquer que, contrairement à l'opération "Byte Sub" de l'étape E202 présentée en détail ci-après, les opérations "Shift RoW, "Mix Column" et "Add Round Key" des étapes respectives E204, E206 et E208 sont appliquées au résultat de l'étape précédente conformément à ce qui est prévu dans l'algorithme
AES.
Le résultat E' de l'étape E208 correspond alors au le résultat classique de l'algorithme AES, avec masquage par le masque X3 mentionné ci-dessus. Afin d'obtenir un résultat M'j de l'itération masqué par un masque identique à chaque itération (ici le masque utilisé à l'étape E104), on corrige le masquage du résultat E' à l'étape E210 par l'opération : M'j = E1 θ X θ X3.
On obtient donc ainsi en sortie à l'étape E212 après l'itération i la donnée M'j masquée au moyen du masque X.
La figure 5 représente un premier mode de réalisation de l'étape E202 mentionnée ci-dessus conformément aux enseignements de l'invention.
On se place ici dans le cas où la fonction F est une fonction polynomiale algébrique de degré k et où l'on représente les données traitées au cours de l'étape E202 (à savoir principalement la donnée masquée MVi et le masque X) comme des éléments d'un espace vectoriel E de cardinal fini N et de dimension égale au degré k de la fonction F.
L'espace vectoriel E est de préférence engendré avec une structure aléatoire au moyen de techniques connues, par exemple à chaque nouvelle exécution d'un algorithme AES.
Pour simplifier l'exposé, on écrit chaque élément de E sous la forme : % avec j compris entre 0 et N- 1 : E = { a j } O≤J<N-
On note comme précédemment θ d'addition booléenne dans cet espace vectoriel. Le procédé mettant en œuvre l'étape E202 selon ce premier mode de réalisation commence par une étape E300 d'initialisation d'un indice j et d'une somme booléenne S à 0.
L'indice j repère l'élément aj de l'espace vectoriel E utilisé aux étapes concernées. On procède à l'étape E302 à la comparaison de l'élément aj en cours au masque X reçu en entrée (voir ci-dessus l'étape E200).
Si la comparaison est négative (c'est-à-dire si l'élément aj n'est pas égal au masque X), on procède à l'étape E304 où l'on détermine le résultat de l'application de la fonction F à la combinaison (au moyen d'un ou exclusif) de la donnée MV1 reçue en entrée et de l'élément courant aj, ce résultat étant combiné à la valeur courante de la somme S afin d'obtenir une nouvelle valeur pour cette somme courante S.
Le résultat de l'application de la fonction F est par exemple obtenu par la lecture de l'image de la valeur MVi Φ aj dans une table de correspondance (ou table-S) mémorisée dans la mémoire non-volatile 6.
Lorsqu'il a au contraire été déterminé à l'étape E302 que l'élément courant aj est égal au masque, on procède directement à l'étape E306 sans procéder à l'étape E304. L'étape E306 suit également l'étape E304 lorsque celle-ci est mise en œuvre. L'étape E306 qui vient d'être mentionnée consiste à incrémenter la valeur de l'indice j afin de parcourir l'ensemble de l'espace vectoriel E.
Ainsi, on vérifie à l'étape E308 que l'ensemble de l'espace vectoriel E n'a pas été parcouru par la comparaison de l'indice j au nombre N d'éléments de l'espace vectoriel E et on retourne en cas d'inégalité à l'étape E302 précédemment décrite.
Si en revanche l'égalité j = N est vérifiée à l'étape E308, tous les éléments aj de l'espace vectoriel E ont été considérés. La somme S vaut alors S = θ F(M1M θ a). aeE,a≠X
S'agissant d'une fonction de degré k dans un espace vectoriel de dimension identique k, on peut démontrer que F vérifie la propriété suivante :
® F(α)= DE F, OÙ DE F est une constante qui peut être mémorisée en mémoire vive aeE
4. On a donc S = F(MVi θ X) θ DE F, où naturellement M'M θ X = Mn.
La somme S obtenue après l'étape E308 correspond donc au résultat F(MM) de l'opération "Byte Sub" qui aurait été obtenu sans masquage, résultat masqué par une valeur constante DE F.
On peut ainsi retourner au cours d'une étape E310 la somme S comme résultat B1 de l'étape E202 et la valeur DE F comme masque X1 à l'issue de l'étape E202.
On a ainsi pu appliquer la fonction non-linéaire F à la valeur masquée M'M en ayant recours à la fonction F elle-même, sans modification générée par la présence du masque X, et avec obtention d'un résultat masqué au moyen d'un masque facile à déterminer.
L'influence du masquage a en quelque sorte été déplacée à l'extérieur de l'application de la fonction F et le suivi du masque appliqué aux données manipulées s'en trouve simplifié.
Les figures 6A et 6B présentent les étapes principales d'un second exemple de mise en oeuvre de l'étape E202 de la figure 4 conformément aux enseignements de l'invention.
Les données traitées sont considérées dans cet exemple comme des éléments d'un corps de Galois GF(2k) (dénommés G dans la suite), dans lequel on peut définir la transformée de Fourier F d'une fonction F comme suit : VΛ e G,F(A) = ∑F ' (WY)A(--\ U 1)AyY
YeG où A.Y désigne le produit scalaire de A et Y défini comme suit :
Figure imgf000015_0001
On peut démontrer que l'application successive de deux transformations de Fourier ainsi définies à une fonction F permet de retrouver cette fonction F à un
facteur 1/2k près, à savoir que : F ≈ —rF .
On peut ainsi retrouver l'image F(Y) par une fonction F de l'élément Y en réécrivant cette fonction comme la transformée de Fourier de sa transformée de Fourier F , c'est-à-dire en pratique en appliquant la transformée de Fourier F à chaque élément du corps de Galois G et en sommant le résultat selon la formule ci- après : F(Y) ≈ ^ ∑F(Λ)(-iyu' .
AeG
Le procédé décrit ci-après utilise cette formulation de l'image F(Y) d'une fonction F, éventuellement non linéaire. Dans le cas de l'algorithme AES, la fonction
F peut être choisie comme l'inversion dans GF(2k) \ {0} (avec par convention
F(O)=O), ou bien comme cette même inversion suivie par la transformation affine sur GF(2) suivante qui calcule b'=(b'o,...,b'7) à partir de b=(bo, ...,br):
Figure imgf000015_0002
Figure imgf000015_0003
Ainsi, on procède à l'étape E400 au tirage de trois nombres aléatoires Ri, R2, R3- Comme pour l'étape E102 décrite précédemment, il s'agit ici également d'utiliser des nombres imprévisibles de l'extérieur afin de masquer les données manipulées.
On initialise ensuite lors d'une étape E402 un registre S à la valeur 2k x R2 + R3. On procède ensuite lors d'une étape E404 l'initialisation d'un registre A, représentant une valeur variable dans le corps de Galois G, à la valeur 0.
On détermine dans la suite, dans les étapes référencées E406 à E416, le terme associé à l'élément A dans la somme exprimant l'image F(Y) en fonction de la transformée de Fourier P .
Pour ce faire, on calcule tout d'abord la valeur (-1 )AMV1 et on mémorise ce résultat dans un registre Ti lors d'une étape E406.
On rappelle à cet égard que la donnée MVi est la donnée masquée (M'M = MM θ X) dont on doit calculer une image masquée par la fonction non linéaire F comme déjà expliqué à propos de l'étape E202 de la figure 4.
On procède également lors d'une étape E408 à la somme booléenne de cette donnée M'M et de l'élément courant A : M'M Φ A, et on mémorise le résultat dans un registre T2.
On procède alors au masquage de ce registre au cours d'une étape E410 par addition booléenne du nombre aléatoire Ri déterminé à l'étape E400 afin de masquer l'opération de calcul du produit scalaire impliquant le masque X à l'étape suivante. Le résultat du masquage est stocké dans T2 avec écrasement.
On peut alors procéder, sans risque par rapport aux attaques DPA, à la détermination du signe exprimé par (-1 )XT2, que l'on mémorise dans le registre T2 avec écrasement lors d'une étape E412.
Puis on combine par multiplication le contenu des registres Ti et T2 lors d'une étape E414, résultat que l'on mémorise à nouveau avec écrasement dans le registre T2.
Après l'étape E414, du fait des calculs mis en œuvre depuis l'étape E406, le registre T2 contient le signe donné par (_i)^v-. **<*',-. β"««.) .
On procède alors à la multiplication du registre T2 par la valeur P (A) de la transformée de Fourier P prise au point courant A, que l'on stocke à nouveau dans le registre T2 avec écrasement au cours d'une étape E416.
La valeur P (A) associé à l'élément A est par exemple déterminée par lecture dans une table de correspondance qui mémorise, par exemple en mémoire non volatile 8, l'ensemble des couples (Y, P (Y)), c'est-à-dire des valeurs précalculées P (Y) associées à chaque Y envisageable dans G. On ajoute la valeur du registre T2 après l'étape E416 à la somme courante S au cours d'une étape E418.
Une fois le terme relatif à l'élément A ajouté à la somme S, on incrémente l'élément A lors d'une étape E420 et on vérifie lors d'une étape E422 si tous les éléments du corps de Galois G ont été considérés.
Dans la négative (c'est-à-dire si A est différent de 2k), on traite l'élément courant A qui vient d'être déterminé en procédant à l'étape E406 déjà décrite.
En revanche, si tous les éléments du corps de Galois G ont été traités (c'est-à-dire si A a atteint 2k), la sommation de la transformée de Fourier prise en chacun des points du corps de Galois G a été réalisée et la somme courante S vaut donc :
S = 2k R2 + R3+ ^FÇA)(~l)ΛM'^@x-iM'-^AΘR^ .
AeG
On peut alors procéder à la division de cette valeur par 2k au moyen d'un décalage à droite du registre S de k bits lors d'une étape E424 de telle sorte que la somme S vaut alors, d'après l'expression mentionnée plus haut pour F(Y) :
S = (-1)(M'M)XF(M^) + R2 .
Afin d'obtenir le résultat souhaité, à savoir la valeur F(Mj--I ) masquée par un masque booléen, il convient donc de déterminer le signe devant F(Mn) dans l'expression ci-dessus et de remplacer le masquage additif arithmétique (ci-dessus "+ R ") par un masquage additif booléen (du type "θ R2").
Pour ce faire, on calcule Ia valeur MV1 ® Ri que l'on mémorise dans le registre T1 avec écrasement au cours d'une étape E426, puis on détermine le signe (-1)τi"Ri. signe que l'on mémorise dans le registre Ti avec écrasement au cours d'une étape E428. On peut alors déterminer le signe et convertir le masque comme indiqué ci-dessus au moyen d'un algorithme du type de celui décrit par L. Goubin dans l'article "A sound method for switching between boolean and arithmetic masking" (algorithme 2), de L. Goubin in "Cryptographie Hardware and Embedded Systems - CHES 2001", Lectures Notes in Computer Science, vol. 2162, Springer-Verlag 2001 , en utilisant en entrée le couple (T1 x S, -T1 x R2). On obtient en sortie les valeurs recherchées, à savoir la valeur masquée B' (égale à F(Mn)θ R2) et le masque booléen utilisé X1 (égal à R2). L'utilisation de la transformée de Fourier P comme fonction liée à la fonction non-linéaire F permet ainsi de prendre en compte la fonction F par des appels à sa fonction liée F indépendamment du masque X, la prise en compte du masque X étant reportée dans d'autres termes dont le calcul est relativement simple.
Dans le cas de l'algorithme AES, nous avons k = 8 - c'est-à-dire que l'on considère les données comme des éléments de GF(28). Cependant, si nous choisissions F comme l'inversion dans GF(28), on peut ramener les calculs effectués au cours du procédé présenté aux figures 6A et 6B à des calculs dans GF(24) grâce à la méthode envisagée dans l'article "Efficient implementation of the Rijndael S-box" de V. Rijmen, 2000 et développée dans la thèse de C. Paar (VLS/ Architectures for Bit Parallel Computations in Gaiois Fields, PhD thesis, Universitât Essen, 1994).
La méthode proposée par cet article consiste à utiliser le fait que l'inverse d'un polynôme ah x + ai sur GF(24) est un polynôme a'Η x + a" avec a"h=ah x d"1 et a"ι=(ah + ai) x d'1, où d=(ah 2 x {e}) + (ah x ai) + ai2 avec {e} la valeur hexadécimale OxOE. On note dans la suite map l'isomorphisme défini dans la thèse de C. Paar qui prend un élément a de GF(28) en entrée et ressort les coefficient du polynôme linéaire correspondant ahx+aι dans GF(24). Selon cette variante, on procède aux étapes suivantes : on tire des nombres aléatoires sur 4 bits Xd, x"h, x"ι ; on définit (xh, Xi) comme le résultat de l'opération map(X); on détermine (âh, âι) en calculant map(M'j--ι) ; on calcule :
on applique le procédé des figures 6A et 6B (avec k=4) en utilisant en donnée d'entrée d (au lieu de MVi) avec pour masque Xd (au lieu de X), ce qui donne en sortie les valeurs δ (au lieu de B') et X8 (au lieu de X-O; on calcule les coefficients ïh et I1 du polynôme correspondant par l'isomorphisme map à la donnée de sortie B' au moyen des formules suivantes : bh = âh®£θx"hθxh®<5'ΘXδ<8>âhθXδ<8>Xh b, = â\®δ ® X"βbh ®δ ® X|θâ|<8>Xδθx"hθX|®XS; on construit le masque en sortie Xi à partir de x'Η et x" : Xi = map-1(x"h , x",) on construit la sortie B1 à partir de ïh et b, : B' = map'1(iΛ , ζ ). Les exemples qui viennent d'être présentés ne sont que les modes possibles de mise en œuvre de l'invention.
L'invention peut par exemple également être appliquée dans le cas d'autres algorithmes impliquant une fonction non-linéaire, tel l'algorithme DES. Le masque appliqué à la donnée en entrée de la fonction non-linéaire n'est d'ailleurs pas nécessairement alors le masque X appliqué au début de l'algorithme, mais s'en déduit en général facilement comme expliqué plus haut à propos des étapes E204, E206 et E208.
Par ailleurs, comme déjà mentionné, cette approche peut être appliquée notamment à l'opération d'expansion de la clé.

Claims

REVENDICATIONS
1. Procédé de traitement cryptographique de données représentées sous forme numérique, le procédé étant mis en oeuvre par une entité électronique et comprenant une transformation d'une donnée d'entrée (MM) en donnée de sortie (B'), la donnée de sortie (B') correspondant au résultat de l'application d'une fonction non-linéaire à la donnée d'entrée (Mμi), caractérisé par les étapes suivantes :
- application d'un masque (X) à la donnée d'entrée (MM) pour obtenir une donnée masquée (M'M) ;
- détermination de la donnée de sortie (B') par application à la donnée masquée (M'M) d'une combinaison linéaire impliquant, dans chaque terme de la combinaison, une fonction (F ; P ) indépendante du masque et liée à la fonction non-linéaire (F).
2. Procédé selon la revendication 1, dans lequel le masque est un masque additif.
3. Procédé selon la revendication 2, dans lequel le masque additif est un masque booléen.
4. Procédé selon la revendication 3, dans lequel la combinaison linéaire est une somme booléenne de fonctions translatées par rapport à la fonction non-linéaire.
5. Procédé selon la revendication 4, dans lequel la somme porte sur les fonctions translatées par un ensemble de valeurs envisageables pour la donnée masquée exceptée la valeur du masque.
6. Procédé selon la revendication 5, dans lequel la donnée de sortie est obtenue au moyen du calcul de ® F(MVi θ a), où F est la fonction non- aeE,a≠X linéaire, X le masque et M'M la donnée masquée.
7. Procédé selon l'une des revendications 1 à 3, dans lequel la donnée masquée est représentée dans un espace vectoriel.
8. Procédé selon la revendication 7, dans lequel la fonction liée à la fonction non-linéaire est une transformée de Fourier de la fonction non-linéaire.
9. Procédé selon la revendication 8, dans lequel la combinaison linéaire est une somme, pour chaque élément de l'espace vectoriel, de la transformée de Fourier pris en cet élément avec un signe dépendant notamment de la donnée masquée.
10. Procédé selon la revendication 9, comprenant une étape, préalable à la combinaison linéaire, de masquage d'un registre contenant la somme au moyen d'un masque arithmétique.
11. Procédé selon la revendication 10, comprenant une étape, postérieure à la combinaison linéaire, de conversion du masquage arithmétique du registre en masquage booléen.
12. Procédé selon l'une des revendications 8 à 11, dans lequel la donnée de sortie est obtenue au moyen du calcul de ∑p(A)(ri)AM'»'BX*M'»*λ) ,
AeG où G est l'espace vectoriel, F la transformée de Fourier, X le masque et MVi la donnée masquée.
13. Procédé selon l'une des revendications 8 à 11, dans lequel la donnée de sortie est obtenue au moyen du calcul de
∑F(A)(-V)AM'->ΦX-iM'-i<SAΦRύ , où G est l'espace vectoriel, F la transformée de
AeG
Fourier, X le masque, MVi la donnée masquée et Ri un nombre déterminé par l'entité électronique.
14. Procédé selon l'une des revendications 1 à 13, comprenant une étape de détermination d'une image de la fonction liée à la fonction non-linéaire par lecture dans une table de correspondance.
15. Procédé selon la revendication 14, dans lequel la table de correspondance est mémorisée en mémoire non-volatile.
16. Procédé selon l'une des revendications 1 à 15, comprenant une étape de démasquage de la donnée de sortie.
17. Procédé selon l'une des revendications 1 à 16, mis en œuvre par une séquence d'instructions mémorisées dans l'entité électronique et exécutées par un microprocesseur de l'entité électronique.
18. Procédé selon l'une des revendications 1 à 17, dans lequel l'entité électronique est une carte à microcircuit.
19. Dispositif électronique de traitement cryptographique de données représentées sous forme numérique, le dispositif étant apte à effectuer une transformation d'une donnée d'entrée en donnée de sortie, la donnée de sortie correspondant au résultat de l'application d'une fonction non-linéaire à la donnée d'entrée, caractérisé par :
- des moyens pour appliquer un masque à la donnée d'entrée pour obtenir une donnée masquée ;
- des moyens pour déterminer la donnée de sortie par application à la donnée masquée d'une combinaison linéaire impliquant, dans chaque terme de la combinaison, une fonction indépendante du masque et liée à la fonction non- linéaire.
20. Dispositif selon la revendication 19, dans lequel le masque est un masque additif.
21. Dispositif selon la revendication 20, dans lequel le masque additif est un masque booléen.
22. Dispositif selon la revendication 21 , dans lequel la combinaison linéaire est une somme booléenne de fonctions translatées par rapport à la fonction non-linéaire.
23. Dispositif selon la revendication 22, dans lequel la somme porte sur les fonctions translatées par un ensemble de valeurs envisageables pour la donnée masquée exceptée la valeur du masque.
24. Dispositif selon la revendication 23, comprenant des moyens pour obtenir la donnée de sortie au moyen du calcul de Θ F(MVi ® a), où F est la aεE,a≠X fonction non-linéaire, X le masque et MVi la donnée masquée.
25. Dispositif selon l'une des revendications 19 à 21 , comprenant des moyens pour représenter la donnée masquée dans un espace vectoriel.
26. Dispositif selon la revendication 25, dans lequel la fonction liée à la fonction non-linéaire est une transformée de Fourier de la fonction non-linéaire.
27. Dispositif selon la revendication 26, dans lequel la combinaison linéaire est une somme, pour chaque élément de l'espace vectoriel, de la transformée de Fourier pris en cet élément avec un signe dépendant notamment de la donnée masquée.
28. Dispositif selon la revendication 27, comprenant des moyens pour, préalablement à la combinaison linéaire, masquer un registre contenant la somme au moyen d'un masque arithmétique.
29. Dispositif selon la revendication 28, comprenant des moyens pour, postérieurement à la combinaison linéaire, convertir le masquage arithmétique du registre en masquage booléen.
30. Dispositif selon l'une des revendications 26 à 29, comprenant des moyens pour obtenir la donnée de sortie au moyen du calcul de
^F(A)(-ï)Â U'>-iΦX-iM'-iΦΛ) , où G est l'espace vectoriel, F la transformée de
AeG Fourier, X le masque et M'M la donnée masquée.
31. Dispositif selon l'une des revendications 26 à 29, comprenant des moyens pour obtenir la donnée de sortie au moyen du calcul de ^p(A)(-i)ΛM'>-ι(BX {M'«(BA(BRι) , où G est l'espace vectoriel, F la transformée de
AeG Fourier, X le masque, M'M la donnée masquée et Ri un nombre déterminé par le dispositif électronique.
32. Dispositif selon l'une des revendications 19 à 31 , comprenant des moyens pour déterminer une image de la fonction liée à la fonction non-linéaire par lecture dans une table de correspondance.
33. Dispositif selon la revendication 32, dans lequel la table de correspondance est mémorisée en mémoire non-volatile.
34. Dispositif selon l'une des revendications 19 à 33, comprenant des moyens pour démasquer la donnée de sortie.
35. Dispositif selon l'une des revendications 19 à 34, dans lequel le dispositif électronique est une carte à microcircuit.
36. Programme d'ordinateur comprenant une suite d'instructions aptes, lorsqu'elles sont exécutées par un microprocesseur, à mettre en œuvre un procédé selon l'une des revendications 1 à 18.
PCT/FR2007/000591 2006-04-10 2007-04-06 PROCÉDÉ DE TRAITEMENT CRYPTOQRAPHIQυE DE DONNÉES, DISPOSITIF ET PROGRAMME ASSOCIÉS WO2007116140A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0651296A FR2899751B1 (fr) 2006-04-10 2006-04-10 Procede de traitement cryptographique de donnees, dispositif et programme associes
FR0651296 2006-04-10

Publications (1)

Publication Number Publication Date
WO2007116140A1 true WO2007116140A1 (fr) 2007-10-18

Family

ID=37546506

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/000591 WO2007116140A1 (fr) 2006-04-10 2007-04-06 PROCÉDÉ DE TRAITEMENT CRYPTOQRAPHIQυE DE DONNÉES, DISPOSITIF ET PROGRAMME ASSOCIÉS

Country Status (2)

Country Link
FR (1) FR2899751B1 (fr)
WO (1) WO2007116140A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009074726A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes
WO2009074728A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1379023A1 (fr) * 2002-07-02 2004-01-07 St Microelectronics S.A. Chiffrement/déchiffrement exécuté par un circuit intégré masquant une transformation non linéaire du type SUBBYTE
FR2871969A1 (fr) * 2004-06-18 2005-12-23 Sagem Procede et dispositif d'execution d'un calcul cryptographique

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1379023A1 (fr) * 2002-07-02 2004-01-07 St Microelectronics S.A. Chiffrement/déchiffrement exécuté par un circuit intégré masquant une transformation non linéaire du type SUBBYTE
FR2871969A1 (fr) * 2004-06-18 2005-12-23 Sagem Procede et dispositif d'execution d'un calcul cryptographique

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELISABETH OSWALD ET AL: "An Efficient Masking Scheme for AES Software Implementations", 6TH INTERNATIONAL WORKSHOP ON INFORMATION SECURITY APPLICATIONS, 24 August 2005 (2005-08-24), South Korea, pages 292 - 305, XP019026739 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009074726A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes
WO2009074728A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes
US8473751B2 (en) 2007-12-13 2013-06-25 Oberthur Technologies Method for cryptographic data processing, particularly using an S box, and related device and software

Also Published As

Publication number Publication date
FR2899751B1 (fr) 2008-07-04
FR2899751A1 (fr) 2007-10-12

Similar Documents

Publication Publication Date Title
EP2218208B1 (fr) Procede de traitement cryptographique de donnees, notamment a l&#39;aide d&#39;une boite s, dispositif et programme associes
EP1358733B1 (fr) Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede
EP1769603B1 (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
EP1757009B1 (fr) Procédé et dispositif d&#39;exécution d&#39;un calcul cryptographique
EP1358732B1 (fr) Procede de cryptage securise et composant utilisant un tel procede de cryptage
EP2893431B1 (fr) Protection contre canaux auxiliaires
EP3139364B1 (fr) Protection dpa d&#39;un algorithme de rijndael
EP2296307B1 (fr) Procédé de traitement cryptographique de données sécurisé contre les attaques par canaux auxiliaires
EP2391051B1 (fr) Procédé de détermination d&#39;une représentation d&#39;un produit d&#39;éléments d&#39;un corps fini
EP1938503B1 (fr) Procede de transmission securisee de donnees
WO2007116140A1 (fr) PROCÉDÉ DE TRAITEMENT CRYPTOQRAPHIQυE DE DONNÉES, DISPOSITIF ET PROGRAMME ASSOCIÉS
EP3502899B1 (fr) Procédé de détermination d&#39;une somme d&#39;intégrité, programme d&#39;ordinateur et entité électronique associés
EP2530867B1 (fr) Procédé de traitement cryptographique de données
EP2599256B1 (fr) Procede et dispositif de randomisation d&#39;une cle secrete contre les attaques par canaux auxiliaires
EP4024753B1 (fr) Procédé et module électronique de calcul d&#39;une quantité cryptographique avec multiplications sans retenue, procédé et dispositif électronique de traitement d&#39;une donnée et programme d&#39;ordinateur associés
WO2009074728A1 (fr) Procede de traitement cryptographique de donnees, notamment a l&#39;aide d&#39;une boite s, dispositif et programme associes
EP4270855A1 (fr) Protection contre les attaques par canal auxiliaire a l aide d&#39;un masquage carre
FR2984646A1 (fr) Procede de traitement de donnees et dispositif associe
FR3045883A1 (fr) Procede de traitement cryptographique de donnees, programme d&#39;ordinateur et entite electronique associes
FR2994608A1 (fr) Procede de traitement cryptographique comprenant un acces securise a une pluralite de tables de substitution, dispositifs et produit programme d&#39;ordinateur correspondants.
FR2914129A1 (fr) Procede de traitement de donnees au sein d&#39;une entite electronique
WO2009074727A1 (fr) Procede d&#39;acces a un sous-mot dans un mot binaire, dispositif et programme associes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07731264

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07731264

Country of ref document: EP

Kind code of ref document: A1