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 cachesInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7257—Random modification not requiring correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking 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
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 .
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)
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)
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 |
-
2002
- 2002-12-11 FR FR0215623A patent/FR2848753B1/fr not_active Expired - Fee Related
-
2003
- 2003-12-11 WO PCT/FR2003/003681 patent/WO2004055665A1/fr active Application Filing
- 2003-12-11 EP EP03813170A patent/EP1579312A1/fr not_active Withdrawn
- 2003-12-11 US US10/537,300 patent/US7639796B2/en not_active Expired - Fee Related
- 2003-12-11 AU AU2003296823A patent/AU2003296823A1/en not_active Abandoned
- 2003-12-11 JP JP2004559820A patent/JP4378480B2/ja not_active Expired - Lifetime
- 2003-12-11 CN CN200380105308.2A patent/CN1723436A/zh active Pending
Non-Patent Citations (1)
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'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'exposant | |
Sim et al. | Key bit-dependent attack on protected PKC using a single trace | |
WO2006067057A1 (fr) | Procede d'exponentiation securisee et compacte pour la cryptographie | |
EP1254408B1 (fr) | Procede de calcul d'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'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'opérations cryptographiques | |
WO2002093411A1 (fr) | Dispositif destine a realiser des calculs d"exponentiation appliques a des points d"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 |