EP1579312A1 - Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches - Google Patents

Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches

Info

Publication number
EP1579312A1
EP1579312A1 EP03813170A EP03813170A EP1579312A1 EP 1579312 A1 EP1579312 A1 EP 1579312A1 EP 03813170 A EP03813170 A EP 03813170A EP 03813170 A EP03813170 A EP 03813170A EP 1579312 A1 EP1579312 A1 EP 1579312A1
Authority
EP
European Patent Office
Prior art keywords
division
modular reduction
random number
bits
during
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP03813170A
Other languages
German (de)
English (en)
Inventor
Marc Joye
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.)
Thales DIS France SA
Original Assignee
Gemplus Card International SA
Gemplus 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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1579312A1 publication Critical patent/EP1579312A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • 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

Definitions

  • the invention relates to a whole division or modular reduction method secured against hidden channel attacks, and in particular differential attacks.
  • the invention can be used to perform division operations in a more general cryptographic method, 1 for example a secret or public key cryptographic method.
  • a 'cryptographic process ' can for example be implemented in electronic devices such as' smart cards.
  • a and / or b are secret data, for example elements of a process key.
  • Such cryptographic methods using an integer division method and / or a modular reduction method are susceptible to hidden channel attacks, as will be seen in the example below.
  • a known method for implementing both an integer division and a modular reduction is the so-called "pencil paper” method.
  • This process takes up in practice the method used when such an operation is carried out by hand. This process is recalled below.
  • the method successively performs several divisions of an integer A of n + 1 bits by the integer b of n bits.
  • the remainder r is a number of at most n bits since r ⁇ b.
  • the quotient q is stored in the m-n + 1 least significant bits of the register initially containing the number a.
  • the most significant bit of the rest r is stored in a 1 bit register used as carry (carry) during computation and the n-1 least significant bits of. rest r are stored in the n-1 most significant bits of the register initially containing the number a.
  • ⁇ - and the notation y ⁇ - x are used to indicate the loading of the content of the register x into a register y whose content is also called y.
  • t A is a word of n bits corresponding to the content of the n most significant bits of the register initially containing the data a.
  • Register A is of course modified at each iteration, as is register
  • -n ⁇ is the complement to 1 (also called negation) 10 ( of the variable ⁇ .
  • TRUE is a constant, equal to 1 in an example.
  • lsb (a) is the least significant bit of the number -a, also called least significant bit of a.
  • ADD n (A, b) is an operation of adding the n bits of the number b to the n bits of the word A. Note that the operation SHL n (a, 1) is equivalent to the operation
  • SUB n (A, b) is an operation of subtraction of the number b from the word A.
  • the subtraction SUB n (A, b) is carried out by subtracting, in an appropriate circuit, the
  • method 1 performs the following steps:
  • Method 1 is sensitive to hidden channel attacks. Indeed, it is noted on method 1 that, at each iteration, according to the value of ⁇ , that is to say according to the value of the bit of quotient which will be obtained during the iteration in progress, one carries out ' is an addition ADD n (A, b), ie setting the least significant bit of the register containing the data a to 1.
  • ADD n A, b
  • the implementation and the duration of execution of these two operations are different and the trace that they leave during their implementation is also different.
  • the overall trace left during an iteration varies' therefore based on the result bit obtained during said iteration.
  • Other known methods having the same drawbacks carry out either a modular division alone or a modular reduction alone. In general, a division process is quite similar to a modular reduction process. .
  • An object of the invention is to secure a method 5 of implementing a division and / or a modular reduction.
  • the method is characterized in that the number a is masked by a random number -p before performing the whole division and / or the modular reduction.
  • the trace for example, the energy consumption
  • -20 ' left during the execution of the process is different with each execution, so that it is no longer possible to put implementing a differential hidden channel attack.
  • the invention can be applied for example to method 1 which ' performs both a division and a
  • the invention can be more generally applied to any process which performs one or other of these operations.
  • the random number p can be modified each time the process is executed, or simply after a number
  • said predefined number is preferably chosen to be relatively small, for example a number from 32 to 64 bits.
  • the result of the whole division carried out. with. the number masked in the form a + b * p is equal to a div b + p.
  • we remove from the result of the whole division the contribution made by the random number p to find the expected result of the whole division on the number a, i.e. a div b .
  • the result of the operation (a + b * p) mod b is equal to a mod b, expected result of the modular reduction- on the number a. -
  • the invention also relates to an electronic component comprising means for implementing a method according to the invention, as described above.
  • Means of Calculation programmed include multiple registers for storing the numbers a and b.
  • the invention relates to a smart card comprising a component having the characteristics described above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé cryptographique au cours duquel on réalise une division entière de type q = a div b et / ou une réduction modulaire de type r = a mod b, avec q un quotient, a un nombre de m bits, b un nombre de n bits, n inférieur ou égal à m et bn-1 non nul, bn-1 étant le bit de poids le plus fort du nombre b. Selon l'invention, on masque le nombre a par un nombre aléatoire p avant de réaliser la division entière et / ou la réduction modulaire. L'invention concerne également un composant électronique pour la mise en oeuvre du procédé ci-dessus. Application à la sécurisation des cartes à puce contre les attaques à canaux cachés, et notamment les attaques différientielles.

Description

PROCEDE DE DIVISION ENTIERE OU DE REDUCTION MODULAIRE SECURISE CONTRE LES ATTAQUES A CANAUX CACHES
L'invention concerne un procédé de division entière ou de réduction modulaire sécurisé contre les attaques à canal caché, et notamment les attaques différentielles. L'invention peut être utilisée pour réaliser des opérations de division dans un procédé cryptographique plus général,1 par exemple un procédé cryptographique à clé secrète ou publique. Un ' tel procédé cryptographique' peut par exemple être mis en œuvre dans des dispositifs électroniques tels' que des cartes à puce.
La sécurité des procédés cryptographiques réside dans leur capacité à maintenir cachées les données confidentielles ou des données dérivées des données confidentielles qu'ils manipulent. Un utilisateur malveillant peut éventuellement engager des attaques, visant à découvrir notamment des données confidentielles contenues et manipulées dans des traitements -effectués par le dispositif de calcul exécutant un procédé cryptographique . • Parmi les attaques les plus connues, on peut citer les attaques à canaux cachés, simples ou différentielles.- On entend par attaque à canal caché une attaque basée sur une grandeur physique mesurable de l'extérieur du dispositif, et dont l'analyse directe (attaque simple) ou l'analyse selon une méthode statistique (attaque différentielle) permet de découvrir des '• données manipulées ' dans des traitements ' réalisés dans le dispositif. Ces attaques ont notamment été dévoilées par Paul Rocher (Advances in Cryptology - CRYPTO'99, vol. 1666 of Lecture Notes in Computer Science, .pp.388-397. Springer-Verlag, 1999) . Parmi les grandeurs physiques qui peuvent être exploitées à ces fins, ' on peut citer le temps d'exécution, la consommation en courant, le champ électromagnétique rayonné par la partie du composant ' utilisée, pour "exécuter le calcul, etc. Au cours de l'exécution d'un procédé, la manipulation d'un bit, c'est à dire son traitement par une instruction particulière, . laisse une empreinte particulière sur la grandeur physique considérée, selon la valeur de ce bit et / ou. selon l'instruction. Dit autrement, la trace (c'est-à- dire l'évolution dans le temps de la grandeur physique considérée) laissée par le composant exécutant le procédé est différente selon qu'on manipule un bit égal à 1 ou un bit égal à 0. Les attaques à canal caché sont basées sur cette faiblesse des procédés cryptographiques.
Les procédés cryptographiques utilisant comme opération de base une opération d' exponentiation- modulaire de type Y = XD, X, Y et D étant des nombres entiers ont été très largement étudiés ces dernières années. A titre d'exemple, on peut citer le procédé RSA, l'échange de clé selon Diffie-Hellman ou le procédé de signature DSA. Des progrès significatifs ont été réalisés pour protéger ces procédés contre les attaques à canaux cachés .
Par contre, certains procédés cryptographiques utilisent comme opération élémentaire une division-
- entière de type q = a div b et / ou une réduction modulaire de type r = a mod b, a et b étant deux opérandes, q et r étant respectivement le quotient et le reste de la division entière de a par b. a et / ou b sont des données secrètes, par exemple des éléments d'une clé du procédé. Par exemple, le procédé • de Barrett (P.
. Barret, "Implementing the « RSA public • key encryption algorithm on a standard, digital signal processing", vol Springer Verlag, 1987) ,• le procédé de Quisquater (US patent 5,166,978, nov 92) ou le procédé RSA. mis en . œuvre selon le théorème des restes chinois (JJ Quisquater and C Couvreur, "Fast decipherment algorithm for RSA public key cryptosystem", Electronics Letters ., vol 18, pp. 905-907, Octobre • 1982) sont des procédés cryptographiques utilisant une division entière comme opération élémentaire.
De tels procédés cryptographiques utilisant un procédé de division entière et / ou un procédé de réduction modulaire sont sensibles aux attaques à canal caché, comme on va le voir dans l'exemple ci-dessous.
Un procédé connu pour mettre en œuvre à la fois une division entière et une réduction modulaire est le procédé dit "papier crayon". Ce procédé reprend en pratique la -méthode utilisée lorsqu'une telle opération est réalisée à la main. Ce procédé est rappelé ci- dessous. Etant donné deux données a = (am-ι, ..., ao) de m bits et b = (bn-ι, ..., bo) de n bits, n inférieur ou égal- à m et bn_ι γ 0, le procédé de division dit "papier crayon" calcule le uotient q = a div- b et le reste r =.a div b. Pour cela, le procédé réalise successivement plusieurs divisions d'un entier A de n+1 bits par l'entier b de n bits. On doit avoir en pratique 0 [ A/b < 2, ce qui est le cas chaque fois que bn-χ γ 0.
Le reste r est un nombre de au plus n bits puisque r < b. Le quotient q est quant à lui un nombre de au plus m-n+1 bits puisque q = a div b [ a div (bn-ι*2n~1) = a div 2n~1 = (am-ι, ..., an_ι) car b μ bn-ι*2n-1 et (am-ι, • ... , an- l) est un nombre de m-n+1 bits. A la fin du procédé de division, le quotient q est mémorisé dans les m-n+1 bits de poids les plus faibles du registre contenant initialement le nombre a. Le bit de poids le plus fort du reste r est mémorisé dans un registre de 1 bit utilisé comme retenue (carry) pendant le calcul et les n-1 bits de poids les plus faibles du. reste r sont mémorisés dans les n-1 bits de poids les plus forts du registre contenant initialement le nombre a. Comme on travaille en base 2, le bit de quotient de la division entière A div b a -seulement deux valeurs
possibles : 0 ou 1 , Aussi une manière simple de réaliser
L'opération A div b- consiste à soustraire b à A puis à tester le résultat : si le résultat de A -. b est positif, alors- A div b = 1, si- le résultat de A - b est strictement négatif, alors A div b = 0.
Le procédé de division complet peut alors s'écrire de la manière suivante :
Entrée : a = (0, am-ι, ...., .a0) b = (bn_ι, ... , b0) Sortie : q = a div b et r = a mod b A = (0, am-ι, ..., am-n+l) Pour j = 1 à (m-n+1) , faire : a <-' SHLm+ι(a, 1) - ; σ <- carry
A <- SUBn(A, b) •; σ '<- σ OU carry. si (-iσ ≈'VRAI) alors A <- ADDn-(A, b) sinon lsb(a) = 1 Fin Pour . • Procédé 1
Dans ce procédé, et dans tout ce qui suit, les notations suivantes son't utilisées .
Par abus de langage mais surtout par souci de clarté, et sauf précision explicite, on utilisera le même nom pour parler d'un registre et de son- contenu. Ainsi on parlera du registre A pour parler du registre contenant la donnée A. -
Le symbole "<-" et la notation y <- x sont utilisés pour indiquer le chargement du contenu du registre x dans un registre y dont le contenu est appelé également y. t A est un mot de n bits correspondant au contenu .des n bits de poids lès plus forts du registre contenant initialement la donnée a. Le registre A est bien sûr modifié à chaque itération, de même que le registre
5 contenant initialement a. σ indique si la soustraction a été effectuée à tort ou pas (ie si Le bit de quotient doit être égal à 0 ou à 1) •
-nσ est le complément à 1 (encore appelé négation) 10 ( de la variable σ. VRAI est une constante, égale à 1 dans un exemple . lsb(a) est le bit de poids le plus faible du nombre -a, également appelé bit le moins significatif de a.
SHLm+ι (a, 1) est une opération de décalage à gauche
15 • de 1 bit dans, le registre de m+1 bits contenant la donnée a, le bit sortant du registre étant mémorisé dans la variable carry et un bit égal à 0 étant entré en bit de poids le plus faible du registre contenant initialement la donnée a.
20 ADDn (A, b) est une opération d'addition des n bits du nombre b aux n bits du mot A. On notera que l'opération SHLn(a, 1) est équivalente à l'opération
ADDn(a, a) . Bien sûr l'addition ADDn (A, b) est réalisée en additionnant, dans un circuit d'addition approprié, le
25 . contenu de deux registres contenant respectivement A et b.
SUBn (A, b) est une opération de soustraction du nombre b au mot A. Bien sûr la soustraction SUBn (A, b) est réalisée en soustrayant, dans un circuit approprié, le
30 contenu d'un 'registre contenant la donnée b au contenu du registre contenant le mot A.
En résumé, le procédé 1 réalise - les étapes suivantes :
- si a <- SHLm+ι (a, 1) génère une retenue (σ = carry 35 - = 1) , cela signifie que am ≈ 1 (avant décalage) et donc que b doit être soustrait à A. - si am = 0 (avant décalage) et si A <- SUBn(A, b) génère une retenue (carry = 1) , cela signifie que
A - b μ 0 avant la soustraction et donc b doit être soustrait à A. - si a <- SHLm+ι (a; 1) ne génère pas de retenue et si A <- SUB n (A, b) ne génère pas non plus de retenue
(c'est-à-dire si, après mise à jour de σ, σ est FAUX (ou
-ισ est VRAI,- FAUX étant la négation de VRAI), alors cela signifie que A - b < 0 avant la soustraction • et donc que b .n'aurait pas dû être soustrait à A. Dans ce cas, le procédé réalise une opération d'addition A <- ADDn(A, b) pour restaurer la valeur de A. -
Le procédé 1 est sensible aux attaques à canal caché. En effet, on remarque sur le procédé 1 que, à chaque itération, selon la valeur de σ, c'est-à-dire selon la valeur du bit de quotient qui sera obtenu lors de l'itération en cours, on effectue' soit une addition ADDn (A, b) soit une mise à 1 du bit de poids le plus faible du registre contenant la donnée a. La mise en œuvre et la durée d'exécution de ces deux opérations sont différentes et la trace qu'elles laissent lors de leur mise en œuvre est également différente. La trace globale laissée au cours d'une itération varie ' donc en fonction du bit de résultat obtenu lors de, ladite itération. En mesurant et en- étudiant par exemple la trace laissée par' le composant lors de l'exécution du procédé complet, par exemple dans le cadre d'une attaque différentielle, il est alors possible de déterminer bit à bit la valeur des bits de -résultat.
Le procédé.1 permet d'obtenir à l fois le résultat de la division entière (q = a div b) et le reste de la division entière (r = a mod b) qui est aussi le résultat d'une réduction modulaire. D'autres procédés connus présentant les mêmes inconvénients réalisent, soit une division modulaire seule, soit une réduction modulaire seule. De manière 'générale, un procédé de division est assez similaire à un procédé de réduction modulaire. .
Un but de l'invention est de sécuriser un procédé 5 de mise en œuvre d'une division et / ou d'une réduction modulaire.
Dans ce but, l'invention propose un . procédé crypto'graphique au cours duquel on réalise une division entière de type q . = a div b et / ou une réduction 10 modulaire de type r = a mod b, avec q un quotient, a un nombre de m bits, b un nombre de n 'bits, n inférieur ou égal à m et bn-ι non nul, bn- étant le bit de poids le plus fort du nombre b.
Selon l'invention, le procédé est caractérisé en ce 15 qu'on masque le nombre a par un nombre aléatoire- p avant de réaliser la division entière et / ou la réduction modulaire .
Le nombre a étant masqué par un nombre aléatoire, la trace (par exemple, la consommation . énergétique) -20' laissée lors de l'exécution du procédé est différente à chaque exécution, de sorte qu'il n'est plus possible de mettre en œuvre une attaque à canal caché différentielle.
L'invention peut être appliquée par exemple au procédé 1 qui ' réalise à la fois une division et une
25 réduction modulaire. L'invention peut' être plus généralement appliquée à tout procédé qui réalise l'une ou l'autre des ces opérations.
Le nombre aléatoire p peut être modifié à chaque exécution du procédé, ou bien simplement après un nombre
30 prédéfini d'exécutions du procédé. Le cas échéant, le dit nombre prédéfini est choisi de préférence relativement petit, par exemple un nombre de 32 à 64 bits.
Selon un mode de réalisation préféré de l'invention, pour masquer le nombre' a, on ajoute, au
35 nombre a, b fois le nombre aléatoire (a <- a '+ b*p) . Pour cela, concrètement, le contenu du registre b est multiplié par .le nombre aléatoire p puis additionné au nombre a et le résultat de l'addition est ensuite mémorisé dans- le ' registre contenant initialement le' nombre a. Puis, . dn réalise ensuite la division entière et / ou' la réduction modulaire souhaitée.
Dans le cas où une division entière est réalisée, le résultat de la division entière réalisée . avec . le nombre a masqué sous la forme a + b*p est égal à a div b + p. Dans ce cas, après, la division entière, on enlève au résultat de la division entière la contribution apportée par le nombre aléatoire p pour retrouver le résultat attendu de la division entière sur le nombre a, c'est-à-dire a div b. Dans le cas où réduction modulaire est réalisée, le résultat de l'opération (a + b*p) mod b est égal à a mod b, résultat attendu de la réduction modulaire- sur le nombre a. -
L'invention concerne également un composant électronique comprenant des moyens pour la mise en œuvre d'un procédé selon l'invention, tel que décrit ci-dessus. Les moyens de' calcul programmés comprennent notamment plusieurs registres pour mémoriser les nombres a et b. Enfin, l'invention concerne une carte à puce comprenant un composant ayant les caractéristiques décrites ci-dessus.

Claims

REVENDICATIONS
1. Procédé cryptographique au ' cours duquel on réalise une division entière de type q = a div b et / ou une réduction modulaire de type r ' = a mod b, avec q un quotient, a un nombre, de m bits, b un nombre, de n bits, n inférieur ou égal à m et bn_ι non nul, bn_χ étant le bit de poids le plus fort du nombre b, caractérisé en ce qu ' on masque le nombre a par un nombre aléatoire p avant de réaliser la division entière et / ou la réduction modulaire .
2. Procédé selon la revendication -1, au .cours duquel, pour masquer le nombre a, on ajoute au nombre a,, b fois le nombre aléatoire p (a <- a + b*p) .
3. Procédé selon la revendication 1 ou la revendication 2, dans lequel, après avoir réalisé une
•division entière, on enlève au résultat de la division entière la contribution apportée par le nombre aléatoire
P-
4. Procédé selon la revendication 3 en combinaison avec la revendication 2, au cours duquel, pour enlever la contribution apportée par' le nombre aléatoire p, • on soustrait le dit nombre aléatoire, p au résultat de la division entière.
5. Procédé selon l'une des revendications 1 à 4, au cours duquel le nombre aléatoire p est modifié à chaque mise en œuvre du procédé.
6. Procédé selon l'une des revendications 1 à 4, au cours duquel le nombre aléatoire p est modifié après un nombre prédéterminé de mise en œuvre du procédé.
7. Composant électronique comprenant des moyens pour la mise en œuvre d'un procédé selon l'une des revendication précédente, les moyens de calcul programmés comprenant notamment plusieurs registres pour mémoriser les nombres a et b.
8. Carte à puce comprenant un composant selon la revendication précédente .
EP03813170A 2002-12-11 2003-12-11 Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches Withdrawn EP1579312A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0215623 2002-12-11
FR0215623A FR2848753B1 (fr) 2002-12-11 2002-12-11 Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches
PCT/FR2003/003681 WO2004055665A1 (fr) 2002-12-11 2003-12-11 Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches

Publications (1)

Publication Number Publication Date
EP1579312A1 true EP1579312A1 (fr) 2005-09-28

Family

ID=32338660

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03813170A Withdrawn EP1579312A1 (fr) 2002-12-11 2003-12-11 Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches

Country Status (7)

Country Link
US (1) US7639796B2 (fr)
EP (1) EP1579312A1 (fr)
JP (1) JP4378480B2 (fr)
CN (1) CN1723436A (fr)
AU (1) AU2003296823A1 (fr)
FR (1) FR2848753B1 (fr)
WO (1) WO2004055665A1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2838210B1 (fr) * 2002-04-03 2005-11-04 Gemplus Card Int Procede cryptographique protege contre les attaques de type a canal cache
FR2847402B1 (fr) * 2002-11-15 2005-02-18 Gemplus Card Int Procede de division entiere securise contre les attaques a canaux caches
FR2895609A1 (fr) * 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
FR2897964B1 (fr) * 2006-02-28 2017-01-13 Atmel Corp Procede de calcul numerique incluant la division euclidienne
US8280041B2 (en) * 2007-03-12 2012-10-02 Inside Secure Chinese remainder theorem-based computation method for cryptosystems
JP4603022B2 (ja) * 2007-08-02 2010-12-22 株式会社スクウェア・エニックス 暗号化データ作成装置、および暗号化データ作成プログラム
WO2009043139A1 (fr) * 2007-10-01 2009-04-09 Research In Motion Limited Masquage de table de substitution pour processus de chiffrement
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
FR3095709B1 (fr) * 2019-05-03 2021-09-17 Commissariat Energie Atomique Procédé et système de masquage pour la cryptographie

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5077793A (en) * 1989-09-29 1991-12-31 The Boeing Company Residue number encryption and decryption system
US5504817A (en) * 1994-05-09 1996-04-02 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for memory efficient variants of public key encryption and identification schemes for smart card applications
DE19963407A1 (de) * 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2004055665A1 *

Also Published As

Publication number Publication date
US7639796B2 (en) 2009-12-29
JP2006509261A (ja) 2006-03-16
WO2004055665A1 (fr) 2004-07-01
CN1723436A (zh) 2006-01-18
AU2003296823A1 (en) 2004-07-09
FR2848753B1 (fr) 2005-02-18
US20060023873A1 (en) 2006-02-02
JP4378480B2 (ja) 2009-12-09
FR2848753A1 (fr) 2004-06-18

Similar Documents

Publication Publication Date Title
US10423807B2 (en) Asymmetrically masked multiplication
EP2380306B1 (fr) Circuit de cryptographie protege contre les attaques en observation, notamment d&#39;ordre eleve
US7065788B2 (en) Encryption operating apparatus and method having side-channel attack resistance
EP1840732A1 (fr) Protection contre les attaques latérales de la chaîne
EP1565812B1 (fr) Procede de division entiere contre les attaques a canaux caches
EP1381936B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique
EP1579312A1 (fr) Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches
EP3300293A1 (fr) Procédé de chiffrement ou de déchiffrement symétrique par bloc
CN102193060B (zh) 用于测试集成电路设备的方法和系统
FR2838210A1 (fr) Procede cryptographique protege contre les attaques de type a canal cache
WO2011061263A1 (fr) Contre-mesures contre des attaques en puissance pour la randomisation de l&#39;exposant
Sim et al. Key bit-dependent attack on protected PKC using a single trace
WO2006067057A1 (fr) Procede d&#39;exponentiation securisee et compacte pour la cryptographie
EP1254408B1 (fr) Procede de calcul d&#39;exponentation modulaire dans un composant electronique mettant en oeuvre un algorithme de chiffrement a cle publique
EP1639451A2 (fr) Procédé de contre-mesure par masquage de l&#39;accumulateur
Aljuffri et al. S-NET: A confusion based countermeasure against power attacks for SBOX
Lee et al. A practical collision-based power analysis on RSA prime generation and its countermeasure
CN104426653B (zh) 一种数据处理方法和装置
EP1348275B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
EP1639450A1 (fr) Procede de contre-mesure dans un composant electronique
Tunstall et al. The distributions of individual bits in the output of multiplicative operations
Paillet et al. Masked Computation the Floor Function and its Application to the FALCON Signature
JP2008224830A (ja) 耐タンパーベキ乗演算方法
WO2024105133A1 (fr) Mesures de sécurité protégeant des dispositifs de sécurité numérique lors de la réalisation d&#39;opérations cryptographiques
WO2002093411A1 (fr) Dispositif destine a realiser des calculs d&#34;exponentiation appliques a des points d&#34;une courbe elliptique

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050711

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: JOYE, MARC

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GEMALTO SA

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20110701