FR3076013A1 - CRYPTOGRAPHIC PROCESSING METHOD, COMPUTER PROGRAM, AND DEVICE THEREFOR - Google Patents

CRYPTOGRAPHIC PROCESSING METHOD, COMPUTER PROGRAM, AND DEVICE THEREFOR Download PDF

Info

Publication number
FR3076013A1
FR3076013A1 FR1762862A FR1762862A FR3076013A1 FR 3076013 A1 FR3076013 A1 FR 3076013A1 FR 1762862 A FR1762862 A FR 1762862A FR 1762862 A FR1762862 A FR 1762862A FR 3076013 A1 FR3076013 A1 FR 3076013A1
Authority
FR
France
Prior art keywords
quotient
module
remainder
exponent
constant
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
FR1762862A
Other languages
French (fr)
Other versions
FR3076013B1 (en
Inventor
Guillaume Barbu
Thomas Chabrier
Nicolas DEBANDE
Sarah Lopez
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 FR1762862A priority Critical patent/FR3076013B1/en
Publication of FR3076013A1 publication Critical patent/FR3076013A1/en
Application granted granted Critical
Publication of FR3076013B1 publication Critical patent/FR3076013B1/en
Active 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Abstract

Un procédé de traitement cryptographique d'une donnée (x), par exponentiation modulaire de module prédéterminé, comprend les étapes suivantes : - masquage d'une clé cryptographique (K) par addition, à la clé cryptographique (K), d'un multiple (M) de l'indicatrice d'Euler (ϕ(N)) associée au module prédéterminé ; - détermination du quotient (q) et du reste (r) de la division entière de la clé cryptographique masquée (K*) par une constante (v) ; - obtention d'un premier nombre (N1) par exponentiation modulaire de la donnée à un premier exposant égal au produit du quotient (q) par la constante (v) modifiée en fonction du reste (r) ; - obtention d'un second nombre (N2) par exponentiation modulaire de la donnée (x) à un second exposant déterminé en fonction du quotient (q) et du reste (r) ; - multiplication modulaire du premier nombre (N1) et du second nombre (N2). Un programme d'ordinateur et un dispositif associés sont également décrits.A method for the cryptographic processing of a data item (x), by predetermined module modular exponentiation, comprises the following steps: masking a cryptographic key (K) by adding, to the cryptographic key (K), a multiple (M) the Euler indicator (φ (N)) associated with the predetermined module; determining the quotient (q) and the remainder (r) of the entire division of the masked cryptographic key (K *) by a constant (v); obtaining a first number (N1) by modular exponentiation of the data at a first exponent equal to the product of the quotient (q) by the constant (v) modified as a function of the remainder (r); obtaining a second number (N2) by modular exponentiation of the data (x) at a second exponent determined as a function of the quotient (q) and the remainder (r); - Modular multiplication of the first number (N1) and the second number (N2). A computer program and an associated device are also described.

Description

Domaine technique auquel se rapporte l'inventionTechnical field to which the invention relates

La présente invention concerne de manière générale le domaine de la cryptographie.The present invention relates generally to the field of cryptography.

Elle concerne plus particulièrement un procédé de traitement cryptographique, ainsi qu’un programme d’ordinateur et un dispositif associés.It relates more particularly to a cryptographic processing method, as well as a computer program and an associated device.

Arriere-plan technologiqueTechnological background

Certains procédés de traitement cryptographique, tels que l’algorithme RSA, mettent en œuvre une exponentiation modulaire de la donnée à traiter (l’exposant correspondant à une clé cryptographique à appliquer).Certain cryptographic processing methods, such as the RSA algorithm, implement a modular exponentiation of the data to be processed (the exponent corresponding to a cryptographic key to be applied).

Afin de contrer d’éventuelles attaques, il est connu de modifier de manière aléatoire les données manipulées à chaque mise en œuvre de l’algorithme (même lorsque la donnée traitée et la clé cryptographique appliquée sont identiques).In order to counter possible attacks, it is known to randomly modify the data manipulated each time the algorithm is implemented (even when the data processed and the cryptographic key applied are identical).

Il a par exemple été proposé pour ce faire de masquer la clé cryptographique par addition d’un multiple aléatoire de l’indicatrice d’Euler associée au module utilisé, ce qui permet de modifier les données manipulées sans incidence sur le résultat de l’exponentiation modulaire.For example, it has been proposed to mask the cryptographic key by adding a random multiple of the Euler indicator associated with the module used, which makes it possible to modify the data used without affecting the exponentiation result. modular.

Il a aussi été proposé, en tant qu’alternative, d’effectuer à chaque fois une division entière de la clé cryptographique par un nombre aléatoire (fournissant un quotient et un reste différents à chaque fois) et de réaliser alors deux exponentiations modulaires : l’une avec pour exposant le produit du quotient et du nombre aléatoire, l’autre avec pour exposant le reste (le résultat de l’algorithme étant obtenu en combinant les deux résultats d’exponentiation modulaire par multiplication modulaire).It has also been proposed, as an alternative, to perform each time an entire division of the cryptographic key by a random number (providing a different quotient and remainder each time) and then to carry out two modular exponentiations: l 'one with exposing the product of the quotient and the random number, the other with exposing the rest (the result of the algorithm being obtained by combining the two results of modular exponentiation by modular multiplication).

Chacune de ces contremesures peut toutefois se révéler inefficace pour certaines valeurs de module ou de clé cryptographique, ce qui rend possible certaines attaques lorsque l’attaquant peut avoir une influence sur le processus de génération de la clé cryptographique.Each of these countermeasures may however prove to be ineffective for certain values of a cryptographic module or key, which makes possible certain attacks when the attacker can have an influence on the process of generation of the cryptographic key.

Objet de l’inventionObject of the invention

Dans ce contexte, la présente invention propose un procédé de traitement cryptographique d’une donnée par exponentiation modulaire de module prédéterminé, comprenant les étapes suivantes : - masquage d’une clé cryptographique par addition, à la clé cryptographique, d’un multiple de l’indicatrice d’Euler associée au module prédéterminé ; - détermination du quotient et du reste de la division entière de la clé cryptographique masquée par une constante ; - obtention d’un premier nombre par exponentiation modulaire de la donnée à un premier exposant égal au produit du quotient par la constante modifiée en fonction du reste ; - obtention d’un second nombre par exponentiation modulaire de la donnée à un second exposant déterminé en fonction du quotient et du reste ; - multiplication modulaire du premier nombre et du second nombre.In this context, the present invention provides a method of cryptographic processing of data by modular exponentiation of predetermined module, comprising the following steps: - masking of a cryptographic key by adding, to the cryptographic key, a multiple of l 'Euler indicator associated with the predetermined module; - determination of the quotient and the remainder of the entire division of the cryptographic key masked by a constant; - obtaining a first number by modular exponentiation of the data to a first exponent equal to the product of the quotient by the constant modified as a function of the remainder; - obtaining a second number by modular exponentiation of the data to a second exponent determined according to the quotient and the rest; - modular multiplication of the first number and the second number.

Selon cette conception, il est possible de choisir la constante précitée (par exemple 232-1 ou 232+1) de manière à rendre quasi-immédiate la division entière susmentionnée, comme expliqué dans la description qui suit.According to this conception, it is possible to choose the aforementioned constant (for example 232-1 or 232 + 1) so as to make the abovementioned whole division almost immediate, as explained in the description which follows.

Le premier exposant utilisé ci-dessus est de l’ordre de grandeur du produit du quotient par la constante, mais est lui aussi en quelque sorte masqué par l’intervention du reste.The first exponent used above is of the order of magnitude of the product of the quotient by the constant, but is also somehow masked by the intervention of the rest.

Le second exposant utilisé ci-dessus permet quant à lui de tenir compte du reste dans l’exponentiation modulaire, mais aussi de corriger la modification du premier exposant du fait de l’intervention du reste.The second exponent used above allows to take into account the rest in the modular exponentiation, but also to correct the modification of the first exponent due to the intervention of the rest.

On assure par ailleurs une protection contre d’éventuelles attaques quelles que soient la valeur du module et la valeur de la clé cryptographique puisqu’on utilise à la fois le masquage par un multiple de l’indicatrice d’Euler et la séparation de l’exposant en deux parties à chaque fois distinctes, sans toutefois augmenter sensiblement le coût calculatoire. D’autres caractéristiques non limitatives et avantageuses d’un tel procédé, prises individuellement ou selon toutes les combinaisons techniquement possibles, sont les suivantes : - ledit multiple de l’indicatrice d’Euler est déterminé par multiplication de l’indicatrice d’Euler par un nombre aléatoire ; - le premier exposant est égal au produit du quotient par la constante diminuée du reste ; - le second exposant est égal au produit du quotient incrémenté de un et du reste ; - ladite constante est une puissance entière de deux diminuée de un ou incrémentée de un ; L’invention propose également un programme d’ordinateur comprenant des instructions exécutables par un processeur conçues pour mettre en œuvre un procédé tel que présenté ci-dessus lorsque ces instructions sont exécutées par le processeur. L’invention propose également un dispositif de traitement cryptographique d’une donnée par exponentiation modulaire de module prédéterminé, comprenant : - un module de masquage d’une clé cryptographique par addition, à la clé cryptographique, d’un multiple de l’indicatrice d’Euler associée au module prédéterminé ; - un module de détermination du quotient et du reste de la division entière de la clé cryptographique masquée par une constante ; - un module d’obtention d’un premier nombre par exponentiation modulaire de la donnée à un premier exposant égal au produit du quotient par la constante modifiée en fonction du reste ; - un module d’obtention d’un second nombre par exponentiation modulaire de la donnée à un second exposant déterminé en fonction du quotient et du reste ; - un module de multiplication modulaire du premier nombre et du second nombre.It also provides protection against possible attacks whatever the value of the module and the value of the cryptographic key since both masking by a multiple of the Euler indicative and separation of the exhibitor in two separate parts each time, without significantly increasing the computational cost. Other non-limiting and advantageous characteristics of such a process, taken individually or according to all technically possible combinations, are the following: - said multiple of the Euler indicator is determined by multiplication of the Euler indicator by a random number; - the first exponent is equal to the product of the quotient by the constant minus the rest; - the second exponent is equal to the product of the quotient incremented by one and the rest; - said constant is an integer power of two reduced by one or incremented by one; The invention also provides a computer program comprising instructions executable by a processor designed to implement a method as presented above when these instructions are executed by the processor. The invention also provides a device for cryptographic processing of data by modular exponentiation of a predetermined module, comprising: a module for masking a cryptographic key by adding, to the cryptographic key, a multiple of the indicator d 'Euler associated with the predetermined module; - a module for determining the quotient and the remainder of the entire division of the cryptographic key masked by a constant; - a module for obtaining a first number by modular exponentiation of the data to a first exponent equal to the product of the quotient by the constant modified as a function of the remainder; - a module for obtaining a second number by modular exponentiation of the data to a second exponent determined according to the quotient and the rest; - a modular multiplication module of the first number and the second number.

Ce dispositif peut comprendre en outre un module de détermination du multiple de l’indicatrice d’Euler par multiplication de l’indicatrice d’Euler par un nombre aléatoire.This device can also include a module for determining the multiple of the Euler indicator by multiplying the Euler indicator by a random number.

Ce dispositif peut également comporter certaines au moins des caractéristiques optionnelles présentées ci-dessus en terme de procédé.This device can also include at least some of the optional characteristics presented above in terms of process.

Description detaillee d’un exemple de réalisationDetailed description of an exemplary embodiment

La description qui va suivre en regard des dessins annexés, donnés à titre d’exemples non limitatifs, fera bien comprendre en quoi consiste l’invention et comment elle peut être réalisée.The description which follows with reference to the appended drawings, given by way of nonlimiting examples, will make it clear what the invention consists of and how it can be carried out.

Sur les dessins annexés : - la figure 1 représente schématiquement les éléments principaux d’un dispositif au sein duquel peut être mise en œuvre l’invention ; - la figure 2 représente, sous forme fonctionnelle, le dispositif de la figure 1 ; et - la figure 3 représente, sous forme de logigramme, un exemple de procédé mis en œuvre dans le dispositif de la figure 1 et conforme à l’invention.In the accompanying drawings: - Figure 1 shows schematically the main elements of a device in which the invention can be implemented; - Figure 2 shows, in functional form, the device of Figure 1; and - Figure 3 shows, in the form of a flowchart, an example of a process implemented in the device of Figure 1 and according to the invention.

La figure 1 représente schématiquement les éléments principaux d’un dispositif de traitement cryptographique de données, ici une entité électronique 1, au sein de laquelle est mise en œuvre l’invention. Cette entité électronique est par exemple une carte à microcircuit, telle qu’une carte à circuit intégré universelle (ou U ICC pour "Universal Integrated Circuit Card"). En variante, il pourrait s’agir d’un élément sécurisé (ou SE pour "Secure Elément') - par exemple un microcontrôleur sécurisé, d’un dispositif électronique portatif (ou "hand-held electronic device" selon l’appellation anglo-saxonne) - par exemple un terminal de communication ou un passeport électronique, ou d’un ordinateur. L’entité électronique 1 comprend un processeur 2 (ici un microprocesseur), une mémoire vive 4 et une mémoire non-volatile réinscriptible 6 (par exemple de type EEPROM pour "Electrically Erasable and Programmable Read-Only Memory"). L’entité électronique 1 pourrait éventuellement comprendre en outre une mémoire morte. La mémoire vive 4 et la mémoire non-volatile réinscriptible 6 (ainsi que le cas échéant la mémoire morte) sont chacune liées au processeur 2 de sorte que le processeur 2 peut lire ou écrire des données dans chacune de ces mémoires.FIG. 1 schematically represents the main elements of a cryptographic data processing device, here an electronic entity 1, within which the invention is implemented. This electronic entity is for example a microcircuit card, such as a universal integrated circuit card (or U ICC for "Universal Integrated Circuit Card"). As a variant, it could be a secure element (or SE for "Secure Element") - for example a secure microcontroller, a portable electronic device (or "hand-held electronic device" according to the English name). Saxon) - for example a communication terminal or an electronic passport, or a computer. The electronic entity 1 comprises a processor 2 (here a microprocessor), a random access memory 4 and a rewritable non-volatile memory 6 (for example EEPROM for "Electrically Erasable and Programmable Read-Only Memory"). The electronic entity 1 could possibly also include a read-only memory. The random access memory 4 and the rewritable non-volatile memory 6 (as well as if necessary the memory dead) are each linked to processor 2 so that processor 2 can read or write data in each of these memories.

Une de ces mémoires, par exemple la mémoire non-volatile réinscriptible 6, mémorise des instructions de programme d’ordinateur qui permettent, lorsque ces instructions sont exécutées par le processeur 2, la mise en œuvre des modules fonctionnels présentés ci-dessous en référence à la figure 2 et/ou la mise en œuvre d’un procédé par le processeur 2, tel que le procédé décrit ci-dessous en référence à la figure 3.One of these memories, for example the rewritable non-volatile memory 6, stores computer program instructions which allow, when these instructions are executed by the processor 2, the implementation of the functional modules presented below with reference to FIG. 2 and / or the implementation of a method by the processor 2, such as the method described below with reference to FIG. 3.

Les mémoires 4, 6 stockent également des données représentatives de valeurs utilisées lors de la mise en œuvre des procédés décrits ci-dessous. Par exemple, la mémoire non-volatile réinscriptible 6 mémorise une clé cryptographique K (telle qu’une clé privée) utilisée dans les procédés de traitement cryptographique exécutés par l’entité électronique 1 (tel que le procédé décrit plus bas en référence à la figure 3).The memories 4, 6 also store data representative of values used during the implementation of the methods described below. For example, the rewritable non-volatile memory 6 stores a cryptographic key K (such as a private key) used in the cryptographic processing methods executed by the electronic entity 1 (such as the method described below with reference to the figure 3).

La mémoire non-volatile réinscriptible 6 mémorise également une constante v (égale par exemple à 232-1 ou à 232+1) utilisée dans le procédé décrit ci-dessous en référence à la figure 3.The rewritable non-volatile memory 6 also stores a constant v (for example equal to 232-1 or 232 +1) used in the method described below with reference to FIG. 3.

Comme décrit ci-après, l’entité électronique 1 permet d’effectuer des calculs d’arithmétique modulaire de module N prédéterminé et mémorise ainsi en outre dans la mémoire non-volatile 6 l’indicatrice d’Euler cp(N) associée à ce module N. En variante, l’indicatrice d’Euler cp(N) pourrait être calculée à chaque itération de l’algorithme cryptographique concerné et ne serait pas alors mémorisée au sein de l’entité électronique 1.As described below, the electronic entity 1 makes it possible to perform modular arithmetic calculations with a predetermined module N and thus also stores in the non-volatile memory 6 the Euler indicator cp (N) associated with this module N. As a variant, the Euler indicator cp (N) could be calculated at each iteration of the cryptographic algorithm concerned and would not then be stored within the electronic entity 1.

On se place ici dans le cas d’une mise en œuvre de l’algorithme RSA utilisant le théorème des restes chinois (ou RSA CRT selon l’appellation anglo-saxonne). Dans une telle mise en œuvre, le module N utilisé dans les calculs est un nombre premier et la donnée x traitée est donc un nombre premier avec le module prédéterminé N.We place ourselves here in the case of an implementation of the RSA algorithm using the Chinese remainder theorem (or RSA CRT according to the Anglo-Saxon name). In such an implementation, the module N used in the calculations is a prime number and the data x processed is therefore a prime number with the predetermined module N.

La mémoire vive 4 mémorise par ailleurs, par exemple au sein de variables, des données traitées au cours des procédés décrits ci-dessous. L’entité électronique 1 comprend en outre une interface de communication 8 avec des dispositifs électroniques externes. Dans le cas décrit ici où l’entité électronique 1 est une carte à microcircuit, l’interface de communication 8 comprend par exemple des contacts affleurant sur une face de la carte à microcircuit. En variante, l’interface de communication 8 pourrait être réalisée par un module de communication sans contact. De manière générale, l’interface de communication 8 peut être un module de communication (filaire ou sans fil) avec une autre entité électronique.The random access memory 4 also stores, for example within variables, data processed during the methods described below. The electronic entity 1 also comprises a communication interface 8 with external electronic devices. In the case described here where the electronic entity 1 is a microcircuit card, the communication interface 8 comprises, for example, contacts which are flush with one face of the microcircuit card. As a variant, the communication interface 8 could be produced by a contactless communication module. In general, the communication interface 8 can be a communication module (wired or wireless) with another electronic entity.

Le processeur 2 peut ainsi recevoir en entrée une donnée x en provenance de l’autre entité électronique via l’interface de communication 8 et émettre en sortie une autre donnée, par exemple le résultat y obtenu par application d’un algorithme cryptographique (tel que celui décrit ci-dessous en référence à la figure 3) à la donnée x, à destination de l’autre entité électronique via l’interface de communication 8.The processor 2 can thus receive as input a data x coming from the other electronic entity via the communication interface 8 and output as another data, for example the result y obtained by application of a cryptographic algorithm (such as that described below with reference to FIG. 3) to the data x, destined for the other electronic entity via the communication interface 8.

La figure 2 représente le dispositif électronique de la figure 1 (c’est-à-dire ici l’entité électronique 1) sous forme de modules fonctionnels 10, 12, 14, 16, 18, 20, 22, réalisés ici chacun au moyen du processeur 2, de la mémoire vive 4 et d’une partie correspondante des instructions mémorisées dans la mémoire non-volatile 6 et exécutables par le processeur 2. L’entité électronique 1 comprend un premier module 10 conçu pour déterminer un multiple M de l’indicatrice d’Euler cp(N) par multiplication de l’indicatrice d’Euler (mémorisée dans la mémoire non-volatile réinscriptible 6 ou en variante calculée au sein du premier module 10) par un nombre aléatoire VAL (obtenu par exemple par tirage aléatoire au sein du processeur 2). L’entité électronique 1 comprend également un second module 12 conçu pour masquer la clé cryptographique K (mémorisée dans la mémoire non-volatile réinscriptible 6) en ajoutant à la clé cryptographique K le multiple M de l’indicatrice d’Euler cp(N) déterminé par le premier module 10. L’entité électronique 1 comprend un troisième module 14 conçu pour déterminer le quotient q et le reste r de la division entière de la clé cryptographique masquée K* (produite par le second module 12) par la constante v mémorisée dans la mémoire non-volatile réinscriptible 6. On rappelle que la constante v est ici égale à 232-1 (ou en variante à 232+1 ). La constante pourrait toutefois avoir une autre valeur, par exemple du type 2a-1 (avec a > 16).FIG. 2 represents the electronic device of FIG. 1 (that is to say here the electronic entity 1) in the form of functional modules 10, 12, 14, 16, 18, 20, 22, each produced here by means processor 2, random access memory 4 and a corresponding part of the instructions stored in non-volatile memory 6 and executable by processor 2. The electronic entity 1 comprises a first module 10 designed to determine a multiple M of l indicator of Euler cp (N) by multiplication of the indicator of Euler (memorized in the non-volatile rewritable memory 6 or in a variant calculated within the first module 10) by a random number VAL (obtained for example by drawing random within the processor 2). The electronic entity 1 also includes a second module 12 designed to mask the cryptographic key K (stored in the rewritable non-volatile memory 6) by adding to the cryptographic key K the multiple M of the Eulerian indicative cp (N) determined by the first module 10. The electronic entity 1 comprises a third module 14 designed to determine the quotient q and the remainder r of the integer division of the masked cryptographic key K * (produced by the second module 12) by the constant v stored in the rewritable non-volatile memory 6. It is recalled that the constant v is here equal to 232-1 (or as a variant to 232 + 1). The constant could however have another value, for example of the type 2a-1 (with a> 16).

Selon une possibilité de mise en oeuvre, le reste r peut être par exemple déterminé (au sein du troisième module 14) au moyen d’une méthode dite "ruban de Pascal·', présentée par exemple dans le prologue "M. Pascal’s Division Machine" de l’ouvrage "Eléments of Automata Theory”, de J. Sakarovitch, pp. 1-6, Cambridge, 2009, en utilisant r = K* mod v.According to one possible implementation, the remainder r can for example be determined (within the third module 14) by means of a method known as "Pascal ribbon · ', presented for example in the prologue" M. Pascal’s Division Machine "from the book" Elements of Automata Theory ”, by J. Sakarovitch, pp. 1-6, Cambridge, 2009, using r = K * mod v.

Le quotient peut alors par exemple être déterminé en divisant (K*-r) par v (cette dernière division étant exacte, c’est-à-dire ayant un reste nul), par exemple en déterminant l’inverse v'1 de la constante v et en multipliant (K*-r) par v'1 (au sens de la multiplication modulaire de module 21 où I est la longueur de la clé cryptographique K). L’entité électronique 1 comprend un quatrième module 16 conçu pour recevoir la donnée x sur l’interface de communication 8 et fournir cette donnée x au cinquième module 18 et au sixième module 20 décrits ci-après. L’entité électronique 1 comprend en effet un cinquième module 18 conçu pour obtenir un premier nombre N1, ici égal à xq(v'r), par exponentiation modulaire de la donnée x à un premier exposant égal au produit du quotient q par la constante v modifiée en fonction du reste r. Précisément ici, comme déjà indiqué, le premier exposant est égal au produit du quotient q par la constante v modifiée par soustraction du reste r (c’est-à-dire au produit du quotient q par la constante v diminuée du reste r). On rappelle que le quotient q et le reste r sont produits par le troisième module 14 mentionné plus haut.The quotient can then for example be determined by dividing (K * -r) by v (this last division being exact, that is to say having a zero remainder), for example by determining the inverse v'1 of the constant v and by multiplying (K * -r) by v'1 (in the sense of the modular multiplication of module 21 where I is the length of the cryptographic key K). The electronic entity 1 comprises a fourth module 16 designed to receive the data x on the communication interface 8 and supply this data x to the fifth module 18 and to the sixth module 20 described below. The electronic entity 1 indeed comprises a fifth module 18 designed to obtain a first number N1, here equal to xq (v'r), by modular exponentiation of the data x to a first exponent equal to the product of the quotient q by the constant v modified according to the rest r. Precisely here, as already indicated, the first exponent is equal to the product of the quotient q by the constant v modified by subtraction from the remainder r (i.e. to the product of the quotient q by the constant v minus the rest r). Recall that the quotient q and the rest r are produced by the third module 14 mentioned above.

On remarque que l’on pourrait utiliser en variante une autre valeur de premier exposant égal au produit du quotient q par la constante v modifiée du reste r, par exemple un premier exposant égal à q(v+r). L’entité électronique 1 comprend aussi un sixième module 20 conçu pour obtenir un second nombre N2, ici égal à xr(q+1), par exponentiation modulaire de la donnée x à un second exposant déterminé en fonction du quotient q et du reste r. Précisément ici, comme déjà indiqué, le second exposant est égal au produit du quotient incrémenté de 1 (soit q+1) et du reste r.Note that we could alternatively use another value of first exponent equal to the product of the quotient q by the modified constant v of the remainder r, for example a first exponent equal to q (v + r). The electronic entity 1 also includes a sixth module 20 designed to obtain a second number N2, here equal to xr (q + 1), by modular exponentiation of the data x to a second exponent determined as a function of the quotient q and of the remainder r . Precisely here, as already indicated, the second exponent is equal to the product of the incremented quotient of 1 (ie q + 1) and the remainder r.

Comme représenté en pointillés sur la figure 2, le sixième module 20 peut éventuellement utiliser un résultat partiel fourni par le cinquième module 18 (comme expliqué ci-dessous à propos de la variable xi déterminée à l’étape E14 et utilisée à l’étape E18).As shown in dotted lines in FIG. 2, the sixth module 20 can optionally use a partial result provided by the fifth module 18 (as explained below with respect to the variable xi determined in step E14 and used in step E18 ).

Comme pour le premier exposant, on pourrait utiliser en variante une autre valeur de second exposant déterminé en fonction du quotient q et du reste r. Dans la variante mentionnée ci-dessus où le premier exposant est égal à q(v+r), le second exposant déterminé en fonction du quotient q et du reste peut valoir par exemple r(1-q).As for the first exponent, we could alternatively use another value of second exponent determined as a function of the quotient q and the remainder r. In the variant mentioned above where the first exponent is equal to q (v + r), the second exponent determined as a function of the quotient q and the remainder may be for example r (1-q).

Enfin, l’entité électronique 1 comprend un septième module 22 conçu pour effectuer une multiplication modulaire du premier nombre N1 et du second nombre N2 afin d’obtenir le résultat y recherché. En effet, x étant premier avec N : N1 N2 mod N = xq(v'r) xr(q+1) mod N = xqv+r mod N = xK* mod N = xK mod N.Finally, the electronic entity 1 comprises a seventh module 22 designed to perform a modular multiplication of the first number N1 and the second number N2 in order to obtain the desired result there. Indeed, x being prime with N: N1 N2 mod N = xq (v'r) xr (q + 1) mod N = xqv + r mod N = xK * mod N = xK mod N.

On remarque que, comme indiqué ci-dessus, les multiplications modulaires et les exponentiations modulaires mentionnées ci-dessus sont des multiplications modulo le nombre prédéterminé N déjà mentionné.Note that, as indicated above, the modular multiplications and the modular exponentiations mentioned above are multiplications modulo the predetermined number N already mentioned.

La figure 3 représente, sous forme de logigramme, un exemple de procédé conforme à l’invention.FIG. 3 represents, in the form of a flow diagram, an example of a process in accordance with the invention.

Ce procédé est ici mis en œuvre au sein de l’entité électronique 1, dans le cadre de l’architecture fonctionnelle décrite ci-dessus. L’invention n’est toutefois pas limitée à une mise en œuvre dans une telle entité électronique.This process is implemented here in the electronic entity 1, within the framework of the functional architecture described above. The invention is not, however, limited to implementation in such an electronic entity.

Le procédé décrit ci-dessous est un procédé de traitement cryptographique de la donnée x, par exemple un procédé cryptographique de déchiffrement de la donnée x au moyen de la clé cryptographique (communément désignée dans ce cas clé privée) K, ou un procédé cryptographique de signature de la donnée x au moyen de la clé cryptographique (communément désignée dans ce cas clé privée) K.The method described below is a method of cryptographic processing of the data x, for example a cryptographic method of decrypting the data x by means of the cryptographic key (commonly designated in this case private key) K, or a cryptographic method of signature of the data x by means of the cryptographic key (commonly designated in this case private key) K.

Le procédé de la figure 3 débute à l’étape E2 par la réception de la donnée x par le processeur 2 via l’interface de communication 8.The method of FIG. 3 begins at step E2 by the reception of the data x by the processor 2 via the communication interface 8.

Le processeur 2 détermine alors un nombre VAL, ici par tirage aléatoire (étape E4).The processor 2 then determines a number VAL, here by random drawing (step E4).

Le processeur 2 peut ainsi déterminer à l’étape E6 un multiple M (ici aléatoire) de l’indicatrice d’Euler φ(Ν) en multipliant l’indicatrice d’Euler (mémorisée ici dans la mémoire non-volatile réinscriptible 6 comme déjà indiqué ou en variante calculée au sein de l’étape E6) par le nombre VAL déterminé à l’étape E4 : M = VAL φ(Ν).The processor 2 can thus determine in step E6 a multiple M (here random) of the Euler indicator φ (Ν) by multiplying the Euler indicator (stored here in the rewritable non-volatile memory 6 as already indicated or in a variant calculated within step E6) by the number VAL determined in step E4: M = VAL φ (Ν).

Dans le mode de réalisation de la figure 2, les étapes E4 et E6 sont mises en œuvre par le premier module 10.In the embodiment of FIG. 2, steps E4 and E6 are implemented by the first module 10.

Le processeur 2 procède alors à l’étape E8 au masquage de la clé cryptographique K (mémorisée dans la mémoire non-volatile réinscriptible) en additionnant le multiple M déterminé à l’étape E6 et la clé cryptographique K, ce qui permet d’obtenir la clé masquée K* : K* = K + M.The processor 2 then proceeds to step E8 to mask the cryptographic key K (stored in the rewritable non-volatile memory) by adding the multiple M determined in step E6 and the cryptographic key K, which makes it possible to obtain the hidden key K *: K * = K + M.

Dans le mode de réalisation de la figure 2, l’étape E8 est mise en œuvre par le second module 12.In the embodiment of FIG. 2, step E8 is implemented by the second module 12.

Le processeur 2 peut ainsi déterminer à l’étape E10 le reste r de la division entière de la clé masquée K* par la constante v, puis, à l’étape E12, le quotient q de la division entière de la clé masquée K* par la constante v. Dans le mode de réalisation de la figure 2, ces étapes E10 et E12 sont mises en œuvre par le troisième module 14.The processor 2 can thus determine in step E10 the remainder r of the integer division of the masked key K * by the constant v, then, in step E12, the quotient q of the integer division of the masked key K * by the constant v. In the embodiment of FIG. 2, these steps E10 and E12 are implemented by the third module 14.

Le processeur 2 va alors procéder au calcul d’exponentiation modulaire (de module prédéterminé N) souhaité comme suit.The processor 2 will then proceed to the desired modular exponentiation calculation (of predetermined module N) as follows.

Le processeur 2 effectue tout d’abord à l’étape E14 l’exponentiation modulaire de la donnée x en utilisant le quotient q (déterminé à l’étape E12) en tant qu’exposant et mémorise (par exemple dans la mémoire vive 4) le résultat de cette exponentiation modulaire dans une variable xi : xi = xq mod N.The processor 2 first of all performs in step E14 the modular exponentiation of the data x using the quotient q (determined in step E12) as an exponent and stores (for example in the RAM 4) the result of this modular exponentiation in a variable xi: xi = xq mod N.

On remarque que la valeur de la clé masquée K* est différente à chaque mise en œuvre du procédé (grâce à l’utilisation du nombre aléatoire VAL) et que la valeur du quotient q (utilisé en tant qu’exposant) est donc elle aussi différente à chaque mise en œuvre du procédé. Ainsi, le contenu de la variable x-i (puis de la variable x2 mentionnée ci-dessous) est différent à chaque mise en œuvre des étapes décrites ci-dessous.Note that the value of the masked key K * is different at each implementation of the method (thanks to the use of the random number VAL) and that the value of the quotient q (used as an exponent) is therefore also different each time the process is implemented. Thus, the content of the variable x-i (then of the variable x2 mentioned below) is different each time the steps described below are implemented.

Le processeur 2 effectue ensuite à l’étape E16 l’exponentiation modulaire de la variable x-ι (déterminée à l’étape E14) en utilisant un exposant égal à la différence entre la constante v et le reste r, et mémorise le résultat de cette exponentiation modulaire dans une variable x2 : X2 = x/’r rnod N.The processor 2 then performs in step E16 the modular exponentiation of the variable x-ι (determined in step E14) using an exponent equal to the difference between the constant v and the remainder r, and stores the result of this modular exponentiation in a variable x2: X2 = x / 'r rnod N.

Dans le mode de réalisation de la figure 2, les étapes E14 et E16 sont mises en œuvre par le cinquième module 18 et la valeur de la variable x2 (après l’étape E16) correspond au premier nombre N1 produit par le cinquième module 18. (On a en effet : x2 = x-iv'r mod N = x q(v'r) mod N = N1.)In the embodiment of FIG. 2, steps E14 and E16 are implemented by the fifth module 18 and the value of the variable x2 (after step E16) corresponds to the first number N1 produced by the fifth module 18. (We have indeed: x2 = x-iv'r mod N = xq (v'r) mod N = N1.)

Le processeur 2 effectue alors à l’étape E18 la multiplication modulaire du contenu de la variable xi par la donnée x et mémorise le résultat (qui vaut donc xq+1 mod N) dans la variable Xi (avec écrasement).The processor 2 then performs in step E18 the modular multiplication of the content of the variable xi by the data x and stores the result (which is therefore equal to xq + 1 mod N) in the variable Xi (with overwriting).

Le processeur 2 effectue à l’étape E20 l’exponentiation modulaire de la variable xi à un exposant égal au reste r et mémorise le résultat dans la variable Xi (avec écrasement). En sortie de l’étape E20, la variable Xi vaut donc : xr(q+1) mod N.The processor 2 performs in step E20 the modular exponentiation of the variable xi to an exponent equal to the remainder r and stores the result in the variable Xi (with overwriting). At the end of step E20, the variable Xi is therefore equal to: xr (q + 1) mod N.

Dans le mode de réalisation de la figure 2, les étapes E18 et E20 sont mises en œuvre par le sixième module 20 et la valeur de la variable xi (après l’étape E20) correspond au second nombre N2 produit par le sixième module 20.In the embodiment of FIG. 2, steps E18 and E20 are implemented by the sixth module 20 and the value of the variable xi (after step E20) corresponds to the second number N2 produced by the sixth module 20.

Le processeur 2 peut ainsi procéder à l’étape E22 à la multiplication modulaire de la variable Xi et de la variable x2, ce qui permet d’obtenir le résultat recherché y. En effet, comme déjà indiqué (x étant premier avec N) : y = x-Γ x2 mod N = xr(q+1) xq(v“r) mod N = xqv+r mod N = xK* mod N = xK mod N.The processor 2 can thus proceed in step E22 to the modular multiplication of the variable Xi and of the variable x2, which makes it possible to obtain the desired result y. Indeed, as already indicated (x being prime with N): y = x-Γ x2 mod N = xr (q + 1) xq (v “r) mod N = xqv + r mod N = xK * mod N = xK mod N.

Dans le mode de réalisation de la figure 2, l’étape E22 est mise en œuvre par le septième module 22.In the embodiment of FIG. 2, step E22 is implemented by the seventh module 22.

Le processeur 2 peut alors émettre le résultat y via l’interface de communication 8 (étape E24).The processor 2 can then transmit the result y via the communication interface 8 (step E24).

Claims (11)

REVENDICATIONS 1. Procédé de traitement cryptographique d’une donnée (x) par exponentiation modulaire de module prédéterminé (N), comprenant les étapes suivantes : - masquage (E8) d’une clé cryptographique (K) par addition, à la clé cryptographique (K), d’un multiple (M) de l’indicatrice d’Euler (φ(Ν)) associée au module prédéterminé (N) ; - détermination (E10, E12) du quotient (q) et du reste (r) de la division entière de la clé cryptographique masquée (K*) par une constante (v) ; - obtention (E14, E16) d’un premier nombre (N1) par exponentiation modulaire de la donnée (x) à un premier exposant égal au produit du quotient (q) par la constante (v) modifiée en fonction du reste (r) ; - obtention (E14, E18, E20) d’un second nombre (N2) par exponentiation modulaire de la donnée (x) à un second exposant déterminé en fonction du quotient (q) et du reste (r) ; - multiplication modulaire (E22) du premier nombre (N1) et du second nombre (N2).1. Method for cryptographic processing of data (x) by modular exponentiation of predetermined module (N), comprising the following steps: - masking (E8) of a cryptographic key (K) by addition, to the cryptographic key (K ), a multiple (M) of the Euler indicator (φ (Ν)) associated with the predetermined module (N); - determination (E10, E12) of the quotient (q) and the remainder (r) of the entire division of the masked cryptographic key (K *) by a constant (v); - obtaining (E14, E16) of a first number (N1) by modular exponentiation of the data (x) to a first exponent equal to the product of the quotient (q) by the constant (v) modified according to the remainder (r) ; - obtaining (E14, E18, E20) of a second number (N2) by modular exponentiation of the data (x) to a second exponent determined according to the quotient (q) and the remainder (r); - modular multiplication (E22) of the first number (N1) and the second number (N2). 2. Procédé selon la revendication 1, dans lequel ledit multiple (M) de l’indicatrice d’Euler (cp(N)) est déterminé par multiplication de l’indicatrice d’Euler (cp(N)) par un nombre aléatoire (VAL).2. Method according to claim 1, in which said multiple (M) of the Euler indicator (cp (N)) is determined by multiplication of the Euler indicator (cp (N)) by a random number ( VAL). 3. Procédé selon la revendication 1 ou 2, dans lequel le premier exposant est égal au produit du quotient (q) par la constante (v) diminuée du reste (r)·3. Method according to claim 1 or 2, wherein the first exponent is equal to the product of the quotient (q) by the constant (v) minus the remainder (r) · 4. Procédé selon l’une des revendications 1 à 3, dans lequel le second exposant est égal au produit du quotient (q) incrémenté de un et du reste (r).4. Method according to one of claims 1 to 3, wherein the second exponent is equal to the product of the quotient (q) incremented by one and the remainder (r). 5. Procédé selon l’une des revendications 1 à 4, dans lequel ladite constante (v) est une puissance entière de deux diminuée de un ou incrémentée de un.5. Method according to one of claims 1 to 4, wherein said constant (v) is an integer power of two reduced by one or incremented by one. 6. Programme d’ordinateur comprenant des instructions exécutables par un processeur (2) conçues pour mettre en œuvre un procédé selon l’une des revendications 1 à 5 lorsque ces instructions sont exécutées par le processeur (2).6. Computer program comprising instructions executable by a processor (2) designed to implement a method according to one of claims 1 to 5 when these instructions are executed by the processor (2). 7. Dispositif (1) de traitement cryptographique d’une donnée (x) par exponentiation modulaire de module prédéterminé (N), comprenant : - un module (12) de masquage d’une clé cryptographique (K) par addition, à la clé cryptographique (K), d’un multiple (M) de l’indicatrice d’Euler (φ(Ν)) associée au module prédéterminé (N) ; - un module (14) de détermination du quotient (q) et du reste (r) de la division entière de la clé cryptographique masquée (K*) par une constante (v) ; - un module (18) d’obtention d’un premier nombre (N1) par exponentiation modulaire de la donnée (x) à un premier exposant égal au produit du quotient (q) par la constante (v) modifiée en fonction du reste (r) ; - un module (20) d’obtention d’un second nombre (N2) par exponentiation modulaire de la donnée (x) à un second exposant déterminé en fonction du quotient (q) et du reste (r) ; - un module (22) de multiplication modulaire du premier nombre (N1) et du second nombre (N2).7. Device (1) for cryptographic processing of data (x) by modular exponentiation of predetermined module (N), comprising: - a module (12) for masking a cryptographic key (K) by addition, to the key cryptographic (K), a multiple (M) of the Eulerian indicative (φ (Ν)) associated with the predetermined module (N); - a module (14) for determining the quotient (q) and the remainder (r) of the entire division of the hidden cryptographic key (K *) by a constant (v); - a module (18) for obtaining a first number (N1) by modular exponentiation of the data (x) to a first exponent equal to the product of the quotient (q) by the constant (v) modified as a function of the remainder ( r); - a module (20) for obtaining a second number (N2) by modular exponentiation of the data (x) to a second exponent determined as a function of the quotient (q) and the remainder (r); - a module (22) for modular multiplication of the first number (N1) and the second number (N2). 8. Dispositif selon la revendication 7, comprenant un module (10) de détermination du multiple (M) de l’indicatrice d’Euler (φ(Ν)) par multiplication de l’indicatrice d’Euler (<p(N)) par un nombre aléatoire (VAL).8. Device according to claim 7, comprising a module (10) for determining the multiple (M) of the Euler indicator (φ (Ν)) by multiplication of the Euler indicator (<p (N)) by a random number (VAL). 9. Dispositif selon la revendication 7 ou 8, dans lequel le premier exposant est égal au produit du quotient (q) par la constante (v) diminuée du reste (r).9. Device according to claim 7 or 8, wherein the first exponent is equal to the product of the quotient (q) by the constant (v) minus the remainder (r). 10. Dispositif selon l’une des revendications 7 à 9, dans lequel le second exposant est égal au produit du quotient (q) incrémenté de un et du reste (r).10. Device according to one of claims 7 to 9, in which the second exponent is equal to the product of the quotient (q) incremented by one and the remainder (r). 11. Dispositif selon l’une des revendications 7 à 10, dans lequel ladite constante (v) est une puissance entière de deux diminuée de un ou incrémentée de un.11. Device according to one of claims 7 to 10, wherein said constant (v) is an integer power of two reduced by one or incremented by one.
FR1762862A 2017-12-21 2017-12-21 CRYPTOGRAPHIC PROCESSING PROCESS, COMPUTER PROGRAM AND ASSOCIATED DEVICE Active FR3076013B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1762862A FR3076013B1 (en) 2017-12-21 2017-12-21 CRYPTOGRAPHIC PROCESSING PROCESS, COMPUTER PROGRAM AND ASSOCIATED DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1762862A FR3076013B1 (en) 2017-12-21 2017-12-21 CRYPTOGRAPHIC PROCESSING PROCESS, COMPUTER PROGRAM AND ASSOCIATED DEVICE
FR1762862 2017-12-21

Publications (2)

Publication Number Publication Date
FR3076013A1 true FR3076013A1 (en) 2019-06-28
FR3076013B1 FR3076013B1 (en) 2020-11-06

Family

ID=62067628

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1762862A Active FR3076013B1 (en) 2017-12-21 2017-12-21 CRYPTOGRAPHIC PROCESSING PROCESS, COMPUTER PROGRAM AND ASSOCIATED DEVICE

Country Status (1)

Country Link
FR (1) FR3076013B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1262037B1 (en) * 1999-12-28 2008-02-20 Giesecke & Devrient GmbH Portable data carrier provided with access protection by dividing up codes
US20130287209A1 (en) * 2010-12-27 2013-10-31 Fujitsu Limited Encryption processing device and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1262037B1 (en) * 1999-12-28 2008-02-20 Giesecke & Devrient GmbH Portable data carrier provided with access protection by dividing up codes
US20130287209A1 (en) * 2010-12-27 2013-10-31 Fujitsu Limited Encryption processing device and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WALTER C D: "MIST: AN EFFICIENT, RANDOMIZD EXPONENTIATION ALGORITHM FOR RESISTING POWER ANALYSIS", ELECTRONIC PUBLISHING, ARTISTIC IMAGING, AND DIGITAL TYPOGR; [LECTURE NOTES IN COMPUTER SCIENCE , ISSN 0302-9743], SPRINGER VERLAG, DE, vol. 2271, 18 February 2002 (2002-02-18), pages 53 - 66, XP008004946, ISBN: 978-3-540-24128-7, DOI: 10.1007/3-540-45760-7_5 *

Also Published As

Publication number Publication date
FR3076013B1 (en) 2020-11-06

Similar Documents

Publication Publication Date Title
EP0443679B1 (en) Method of calculating an operation of the type A.X modulo N in a coding method according to the RSA method
FR2885711A1 (en) Polynomial modular reduction method for cryptographic application, involves generating random polynomial error value using random number generator and obtaining random polynomial quotient using error value
FR2800478A1 (en) METHOD FOR SECURING AN ELECTRONIC CRYPTOGRAPHY ASSEMBLY BASED ON MODULAR EXPONENTIATION AGAINST ATTACKS BY PHYSICAL ANALYSIS
EP1368747B1 (en) Method and device for reducing the time required to perform a product, multiplication and modular exponentiation calculation using the montgomery method
FR3010210A1 (en) PROTECTION OF CALCULATION AGAINST HIDDEN CHANNEL ATTACKS
EP2296086A1 (en) Protection of prime number generation against side-channel attacks
EP3117555B1 (en) Countermeasure method for an electronic component implementing an elliptic curve cryptography algorithm
EP1895404B1 (en) Masking of a calculation performed according to an RSA-CRT algorithm
WO2007006810A1 (en) Cryptographic method for securely implementing an exponentiation and related component
EP0793165B1 (en) Modular arithmetic coprocessor for fast execution of non-modular operations
EP0610996B1 (en) Apparatus for performing a division
CA2257907A1 (en) Public key cryptography method
FR3076013A1 (en) CRYPTOGRAPHIC PROCESSING METHOD, COMPUTER PROGRAM, AND DEVICE THEREFOR
EP0785503B1 (en) Method of producing an error correcting parameter associated with the implementation of modular operations according to the Montgomery method
WO1997025668A1 (en) Modular arithmetic coprocessor comprising an integer division circuit
EP3136227B1 (en) Verification of the sensitivity of an electronic circuit executing a modular exponentiation calculation
FR2880149A1 (en) Cryptography key data storing method for e.g. chip card, involves converting data, from cryptography key and used with operand within Euclidean operation, into data to be used with operand within Montgomery operation
EP3451316B1 (en) Modular reduction device
CA2359198C (en) Arithmetic unit for carrying out a cryptographic protocol
EP3435585A1 (en) Protection of an iterative calculation against horizontal attacks
EP3627754A1 (en) Authentication code production method and associated cryptographic processing device
FR3010562A1 (en) DATA PROCESSING METHOD AND ASSOCIATED DEVICE
EP3579491A1 (en) Modular inverse determination method and associated cryptographic processing device
FR3045253A1 (en) METHOD AND DEVICE FOR CRYPTOGRAPHIC PROCESSING
FR3018372A1 (en) MESSAGE GENERATION FOR CRYPTOGRAPHIC KEY GENERATION TEST

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190628

PLFP Fee payment

Year of fee payment: 3

CA Change of address

Effective date: 20200120

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200120

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7