Contrer l attaque Simple Power Analysis efficacement dans les applications de la cryptographie asymétrique, algorithmes et implantations
|
|
- Marie-Hélène Pageau
- il y a 7 ans
- Total affichages :
Transcription
1 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 1 / 60 Contrer l attaque Simple Power Analysis efficacement dans les applications de la cryptographie asymétrique, algorithmes et implantations Jean-Marc ROBERT DALI/LIRMM, UPVD, France le 8 décembre 2015
2 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 2 / 60 Soutenance de thèse devant le jury composé de : M. Jean-Claude Bajard Pr. UPMC Examinateur M. Thomas Plantard CR UOW Examinateur M. Christophe Clavier Pr. ULimoges Rapporteur M. Arnaud Tisserand DR CNRS Rapporteur M. Bernard Goossens Pr. UPVD Directeur de thèse M. Christophe Nègre MC UPVD Co-directeur de thèse
3 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 3 / 60 Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
4 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 4 / 60 Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
5 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 5 / 60 Cryptographie Les quatre buts de la cryptographie Confidentialité : mécanisme pour transmettre des données de telle sorte que seul le destinataire autorisé puisse les lire. Authentification : mécanisme pour permettre d identifier des personnes ou des entités et de certifier cette identité. Intégrité : mécanisme pour s assurer que les données reçues n ont pas été modifiées durant la transmission. Non-répudiation : mécanisme pour empêcher la rétractation.
6 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 6 / 60 Principe cryptographie symétrique/asymétrique Cryptographie symétrique Alice et Bob :-) C E k (M) C M D k (C) Bob et Alice utilisent la même clé : k
7 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 6 / 60 Principe cryptographie symétrique/asymétrique Cryptographie asymétrique Alice et Bob :-) C E kpub (M) C M D ksec (C) Alice génère une clé publique et une clé secrète : k pub k sec
8 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 7 / 60 Problèmes difficiles Fonction à sens unique : C E kpub (M) facile à effectuer ; M E 1 k pub (C) impossible en temps raisonnable ; M D ksec (C)[= E 1 k pub (C)] facile ; D ksec est appelé fonction trappe, ou porte dérobée (trapdoor).
9 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 7 / 60 Problèmes difficiles Fonction à sens unique : C E kpub (M) facile à effectuer ; M E 1 k pub (C) impossible en temps raisonnable ; M D ksec (C)[= E 1 k pub (C)] facile ; D ksec est appelé fonction trappe, ou porte dérobée (trapdoor). Deux problèmes mathématiques : la factorisation RSA le logarithme discret échange de clé chiffrement El-Gamal signature (DSA, ECDSA)
10 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 8 / 60 Chiffrement/déchiffrement RSA (Rivest, Shamir et Adlemann) Basé sur le problème de la factorisation. Alice génère une paire de clé. Pour ce faire : elle choisit deux nombres premiers distincts p et q ; elle calcule N = pq ; elle calcule φ(n) = φ(p)φ(q) = (p 1)(q 1) = N (p + q 1) ; elle choisit un entier e tel que 1 < e < φ(n) et pgcd(e, φ(n)) = 1 ; elle calcule d tel que d e 1 mod φ(n) ; e est publié, c est la clé publique, d est conservé, c est la clé secrète.
11 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 9 / 60 Le protocole RSA (2) Pour chiffrer un message M, Bob utilise la clé publique d Alice e : C = M e mod N
12 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 9 / 60 Le protocole RSA (2) Pour chiffrer un message M, Bob utilise la clé publique d Alice e : C = M e mod N Alice déchiffre le message de Bob en utilisant sa clé secrète d : C d mod N = (M e ) d mod N = M e d mod N = M e d mod φ(n) mod N = M 1 mod N = M
13 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 9 / 60 Le protocole RSA (2) Pour chiffrer un message M, Bob utilise la clé publique d Alice e : C = M e mod N Alice déchiffre le message de Bob en utilisant sa clé secrète d : C d mod N = (M e ) d mod N = M e d mod N = M e d mod φ(n) mod N = M 1 mod N = M L opération principale est l exponentiation modulaire.
14 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 10 / 60 Square-and-multiply Square-and-multiply Require: Le module RSA N, g et e = (e t 1,..., e 0 ) 2 entiers {0,..., N 1}, avec e t 1 = 1. Ensure: X = g e mod N Left-to-right X g for i = t 2 downto 0 do X X 2 mod N if e i = 1 then X X g mod N return (X = g e ) Right-to-left X 1 for i = 0 to t 1 do if e i = 1 then X X g mod N g g 2 mod N return (X = g e )
15 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 11 / 60 Simple Power Analysis RSA Left-to-right Square-and-multiply Require: Le module RSA N, g et e = (e t 1,..., e 0 ) 2 entiers [0,..., N[, avec e t 1 = 1. Ensure: X = g e mod N X g for i = t 2 downto 0 do X X 2 mod N if e i = 1 then X X g mod N return (X = g e )
16 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 11 / 60 Simple Power Analysis RSA Left-to-right Square-and-multiply Require: Le module RSA N, g et e = (e t 1,..., e 0 ) 2 entiers [0,..., N[, avec e t 1 = 1. Ensure: X = g e mod N X g for i = t 2 downto 0 do X X 2 mod N un carré correspond à un petit créneau if e i = 1 then X X g mod N return (X = g e )
17 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 11 / 60 Simple Power Analysis RSA Left-to-right Square-and-multiply Require: Le module RSA N, g et e = (e t 1,..., e 0 ) 2 entiers [0,..., N[, avec e t 1 = 1. Ensure: X = g e mod N X g for i = t 2 downto 0 do X X 2 mod N if e i = 1 then X X g mod N une multiplication correspond à un grand créneau return (X = g e )
18 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 11 / 60 Simple Power Analysis RSA Left-to-right Square-and-multiply Require: Le module RSA N, g et e = (e t 1,..., e 0 ) 2 entiers [0,..., N[, avec e t 1 = 1. Ensure: X = g e mod N X g for i = t 2 downto 0 do X X 2 mod N if e i = 1 then X X g mod N return (X = g e ) Vulnérable : la séquence des opérations fait fuire des informations sur l exposant (pas de régularité.)
19 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 12 / 60 Protocole d échange de clé de Diffie-Hellmann Basé sur le problème du logarithme discret. Alice et Bob s accordent sur un groupe additif (G, +, O) et un générateur du groupe P. Alice Bob
20 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 12 / 60 Protocole d échange de clé de Diffie-Hellmann Basé sur le problème du logarithme discret. Alice et Bob s accordent sur un groupe additif (G, +, O) et un générateur du groupe P. Alice a random() calcule A = a P Bob b random() calcule B = b P
21 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 12 / 60 Protocole d échange de clé de Diffie-Hellmann Basé sur le problème du logarithme discret. Alice et Bob s accordent sur un groupe additif (G, +, O) et un générateur du groupe P. Alice a random() calcule A = a P envoie B envoie A Bob b random() calcule B = b P
22 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 12 / 60 Protocole d échange de clé de Diffie-Hellmann Basé sur le problème du logarithme discret. Alice et Bob s accordent sur un groupe additif (G, +, O) et un générateur du groupe P. Alice a random() calcule A = a P calcule K = a B envoie B envoie A Bob b random() calcule B = b P calcule K = b A
23 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 12 / 60 Protocole d échange de clé de Diffie-Hellmann Basé sur le problème du logarithme discret. Alice et Bob s accordent sur un groupe additif (G, +, O) et un générateur du groupe P. Alice a random() calcule A = a P calcule K = a B envoie B envoie A Bob b random() calcule B = b P calcule K = b A clé secrète partagée K = a b P L opération principale est la multiplication scalaire a P.
24 Introduction Cryptographie asymétrique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 13 / 60 Algorithme de base : Double-and-add Multiplication scalaire d un élément P dans un groupe additif (G, +, O). Left-to-Right double-and-add Require: k = (k t 1,..., k 1, k 0 ), P G Ensure: Q = k P 1: Q O 2: for i from t 1 downto 0 do 3: Q 2 Q 4: if k i = 1 then 5: Q Q + P 6: return (Q)
25 Introduction Contributions de la thèse Jean-Marc ROBERT DALI/LIRMM, UPVD, France 14 / 60 Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
26 Introduction Contributions de la thèse Jean-Marc ROBERT DALI/LIRMM, UPVD, France 15 / 60 Contributions L amélioration des performances des opérations arithmétiques utilisées dans les protocoles de la cryptographie asymétrique résistant à l attaque Simple Power Analysis. Sur la multiplication scalaire de point de courbe elliptique : sur F 2 m, opérations combinées (AfricaCrypt 2013) ; sur F 2 m, échelle de Montgomery parallèle (IEEE-TC) ; sur F p et F 2 m, implantation de l approche parallèle de Moreno et Hasan (InsCrypt 2014) ; sur l exponentiation modulaire : multiplications modulaires multiples avec une opérande commune (Arith22).
27 Introduction Contributions de la thèse Jean-Marc ROBERT DALI/LIRMM, UPVD, France 15 / 60 Contributions L amélioration des performances des opérations arithmétiques utilisées dans les protocoles de la cryptographie asymétrique résistant à l attaque Simple Power Analysis. Sur la multiplication scalaire de point de courbe elliptique : sur F 2 m, opérations combinées (AfricaCrypt 2013) ; sur F 2 m, échelle de Montgomery parallèle (IEEE-TC) ; sur F p et F 2 m, implantation de l approche parallèle de Moreno et Hasan (InsCrypt 2014) ; sur l exponentiation modulaire : multiplications modulaires multiples avec une opérande commune (Arith22).
28 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 16 / 60 Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
29 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 17 / 60 Notre groupe : l ensemble des points d une courbe elliptique E : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6. Loi corde-tangente, exemple sur R :
30 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 17 / 60 Notre groupe : l ensemble des points d une courbe elliptique E : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6. Loi corde-tangente, exemple sur R :
31 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 18 / 60 Cryptographie : courbe elliptique sur corps fini Notre courbe est sur un corps fini F p ou F 2 m (au lieu de R) : E : Y 2 = X 3 + ax + b, a, b F p. E : Y 2 + XY = X 3 + ax 2 + b, a, b F 2 m. opérations sur corps fini F 2 m : Opération élément du corps Addition A + B = Multiplication A B = A, B F 2 m (= F 2 [x]/(f (x) F 2 [x])) A = m 1 i=0 a i x i B = m 1 i=0 b i x i a i, b i {0, 1} i=0 (a i b i ) x i (XOR) A B mod f m 1
32 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 19 / 60 Opérations sur points de courbe elliptique La loi corde-tangente se transcrit en équation. Formules pour le doublement ou l addition (courbe sur F 2 m) : P 1 + P 2 = P 3 (avec P 1 = (x 1, y 1 ), P 2 = (x 2, y 2 ), P 3 = (x 3, y 3 ).) x 3 = λ 2 + λ + x 1 + x 2 + a y 3 = (x 1 + x 3 )λ + x 3 + y 1 avec λ = y1+y2 x 1+x 2 si P 1 P 2 λ = y1 x 1 + x 1 si P 1 = P 2
33 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 19 / 60 Opérations sur points de courbe elliptique La loi corde-tangente se transcrit en équation. Formules pour le doublement ou l addition (courbe sur F 2 m) : P 1 + P 2 = P 3 (avec P 1 = (x 1, y 1 ), P 2 = (x 2, y 2 ), P 3 = (x 3, y 3 ).) x 3 = λ 2 + λ + x 1 + x 2 + a y 3 = (x 1 + x 3 )λ + x 3 + y 1 avec λ = y1+y2 x 1+x 2 si P 1 P 2 λ = y1 x 1 + x 1 si P 1 = P 2 Un doublement nécessite 1 inversion, 2 multiplications, 1 élévation au carré, et quelques additions ; Une addition nécessite 1 inversion, 2 multiplications, 1 élévation au carré, et quelques additions ;
34 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 20 / 60 Représentation d un point : coordonnées projectives But : éliminer les inversions (l opération la plus coûteuse). P = (x, y) se transforme en (X : Y : Z) avec { x = X Z y = Y Z on pose 2P = (X 3 : Y 3 : Z 3 ), on a maintenant (sur F 2 m ) : X 3 = C E Y 3 = BC E + A 2 C Z 3 = C D avec A = X 2 B = A + Y Z C = X Z BC = B + C D = C 2 E = (B BC + a D)
35 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Jean-Marc ROBERT DALI/LIRMM, UPVD, France 20 / 60 Représentation d un point : coordonnées projectives But : éliminer les inversions (l opération la plus coûteuse). P = (x, y) se transforme en (X : Y : Z) avec { x = X Z y = Y Z on pose 2P = (X 3 : Y 3 : Z 3 ), on a maintenant (sur F 2 m ) : X 3 = C E Y 3 = BC E + A 2 C Z 3 = C D avec A = X 2 B = A + Y Z C = X Z BC = B + C D = C 2 E = (B BC + a D) Complexité des opérations de points de courbe elliptique sur F 2 m. Opération Coût en affine Coût en projective Doublement 1I + 2M + 1S 8M + 3S Addition 15M + 1S 1I + 2M + 1S (coordonnées mixées) 12M + 2S I = inversion, M = multiplication, S = élévation au carré
36 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Représentation d un point : coordonnées projectives But : éliminer les inversions (l opération la plus coûteuse). P = (x, y) se transforme en (X : Y : Z) avec { x = X Z y = Y Z on pose 2P = (X 3 : Y 3 : Z 3 ), on a maintenant (sur F 2 m ) : X 3 = C E Y 3 = BC E + A 2 C Z 3 = C D avec A = X 2 B = A + Y Z C = X Z BC = B + C D = C 2 E = (B BC + a D) Complexité des opérations de points de courbe elliptique sur F 2 m. Opération Coût en affine Coût en projective Doublement 1I + 2M + 1S 8M + 3S Addition 15M + 1S 1I + 2M + 1S (coordonnées mixées) 12M + 2S I = inversion, M = multiplication, S = élévation au carré autres systèmes : jacobiennes, Lopez-Dahab, Kim-Kim... Jean-Marc ROBERT DALI/LIRMM, UPVD, France 20 / 60
37 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 21 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
38 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 22 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Algorithme de base pour l ECSM : Double-and-add Left-to-Right double-and-add Multiplication scalaire (ECSM) Require: k = (k t 1,..., k 1, k 0 ), P E(F 2 m) Ensure: Q = k P 1: Q O 2: for i from t 1 downto 0 do 3: Q 2 Q 4: if k i = 1 then 5: Q Q + P 6: return (Q)
39 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 22 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Algorithme de base pour l ECSM : Double-and-add Left-to-Right double-and-add Multiplication scalaire (ECSM) Require: k = (k t 1,..., k 1, k 0 ), P E(F 2 m) Ensure: Q = k P 1: Q O 2: for i from t 1 downto 0 do 3: Q 2 Q 4: if k i = 1 then 5: Q Q + P 6: return (Q) "addition en coordonnées mixées"
40 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 23 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Halving (sur F 2 m seulement) Si Q est un point de la courbe d ordre impair, il appartient à un sous-groupe dans lequel la division par deux de Q = (u, v) est l unique point P = (x, y) tel que P = Q/2. (u, v) = 2 (x, y) λ = x + y/x, (1) u = λ 2 + λ + a, (2) v = x 2 + u(λ + 1). (3)
41 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 23 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Halving (sur F 2 m seulement) Si Q est un point de la courbe d ordre impair, il appartient à un sous-groupe dans lequel la division par deux de Q = (u, v) est l unique point P = (x, y) tel que P = Q/2. (u, v) = 2 (x, y) Pour obtenir P : λ = x + y/x, (1) u = λ 2 + λ + a, (2) v = x 2 + u(λ + 1). (3) on résoud l équation (2): λ 2 + λ = u + a λ (équation quadratique); on résoud l équation (3): x 2 = v + u(λ + 1) x (racine carrée); on calcule y (1): y = λx + x 2.
42 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 24 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Conclusion sur le Halving Cette opération requiert des coordonnées affines (ou une représentation λ-coordinates). 1 Halving nécessite : 1 Quadratic Solver, 1 racine carrée, 1 M et 1 S. 1 Quadratic Solver 1,5 M; 1 racine carrée 0,5 M; un Halving est moins coûteux qu un doublement.
43 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 25 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Multiplication scalaire sur F 2 m : Halve-and-add Le scalaire k est transformé en k = k 2 t 1 mod #<P >, avec dans ce cas : ( t 1 ) k = k 2 (t 1) = k i 2i 2 (t 1) = i=0 t 1 k i 2i (t 1) i=0 }{{} puissances de 2 0 Left-to-Right Halve-and-add Require: k = (k t 1,..., k 1, k 0 ), P E(F 2 m ) Ensure: Q = k P 1: Q O. 2: Réécriture : k = k 2 t 1 mod #<P >. 3: for i from t 1 downto 0 do 4: if k i = 1 then 5: Q Q + P. 6: P P/2. 7: return (Q)
44 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 25 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Multiplication scalaire sur F 2 m : Halve-and-add Le scalaire k est transformé en k = k 2 t 1 mod #<P >, avec dans ce cas : ( t 1 ) k = k 2 (t 1) = k i 2i 2 (t 1) = i=0 t 1 k i 2i (t 1) i=0 }{{} puissances de 2 0 Left-to-Right Halve-and-add Require: k = (k t 1,..., k 1, k 0 ), P E(F 2 m ) Ensure: Q = k P 1: Q O. 2: Réécriture : k = k 2 t 1 mod #<P >. 3: for i from t 1 downto 0 do 4: if k i = 1 then 5: Q Q + P. "addition en coordonnées mixées" 6: P P/2. 7: return (Q)
45 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 26 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Algorithme parallèle (Taverne et al.) Le scalaire k est transformé en k = k 2 l mod #<P >, avec dans ce cas : k = k 2 l = ( t k i 2i )2 l = i=0 l 1 k i 2i l i=0 }{{} puissances de t k i 2i l i=l }{{} puissances de 2>0
46 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 26 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Algorithme parallèle (Taverne et al.) Le scalaire k est transformé en k = k 2 l mod #<P >, avec dans ce cas : k = k 2 l = ( t k i 2i )2 l = i=0 Réécriture de k l 1 k i 2i l i=0 }{{} puissances de Ceci conduit à l algorithme suivant : k est séparé en deux : ( puissances de 2 > 0, et puissances de 2 0). t k i 2i l i=l }{{} puissances de 2>0
47 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 26 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Algorithme parallèle (Taverne et al.) Le scalaire k est transformé en k = k 2 l mod #<P >, avec dans ce cas : k = k 2 l = ( t k i 2i )2 l = i=0 Réécriture de k l 1 k i 2i l i=0 }{{} puissances de Ceci conduit à l algorithme suivant : k est séparé en deux : ( puissances de 2 > 0, et puissances de 2 0). t k i 2i l i=l }{{} puissances de 2>0 Double-and-add Calcul de t i=l k i 2i l P. Halve-and-add Calcul de l 1 i=0 k i 2i l P.
48 Dans la cryptographie sur courbe elliptique Jean-Marc ROBERT DALI/LIRMM, UPVD, France 26 / 60 Multiplication scalaire de point de courbe elliptique (ECSM) Algorithme parallèle (Taverne et al.) Le scalaire k est transformé en k = k 2 l mod #<P >, avec dans ce cas : k = k 2 l = ( t k i 2i )2 l = i=0 Réécriture de k l 1 k i 2i l i=0 }{{} puissances de Ceci conduit à l algorithme suivant : k est séparé en deux : ( puissances de 2 > 0, et puissances de 2 0). Double-and-add Calcul de t i=l k i 2i l P. Halve-and-add Reconstruction finale Q = k P. t k i 2i l i=l }{{} puissances de 2>0 Calcul de l 1 i=0 k i 2i l P.
49 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 27 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
50 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 28 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Contributions Construction d une échelle binaire de Montgomery avec Halving ;
51 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 28 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Contributions Construction d une échelle binaire de Montgomery avec Halving ; construction d une échelle binaire de Montgomery parallèle avec Doubling-Halving ;
52 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 28 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Contributions Construction d une échelle binaire de Montgomery avec Halving ; construction d une échelle binaire de Montgomery parallèle avec Doubling-Halving ; implantations et expérimentations.
53 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 29 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Contrer la SPA : l échelle binaire de Montgomery! Montgomery Require: k = (k t 1,..., k 1, k 0 ) avec k t 1 = 1, P E(F q ) Ensure: Q = k P 1: Q 0 P, Q 1 2P 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1, Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1, Q 1 2 Q 1 7: return (Q 0 ) Échelle binaire de Montgomery pour l ECSM
54 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 i init k i Q 0 Q 1
55 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 i init k i P Q 0 Q 1
56 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 i init k i Q 0 P 2P Q 1
57 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 i init k i Q 0 P Q 1 2P 3P
58 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double: Q 0 2 Q 0 (Q 1 Q 0 + Q 1 = 2 Q 0 + P on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P Q 1 2P 3P
59 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double-and-add: Q 0 Q 0 + Q 1 = 2 Q 0 + P (Q 1 2 (Q 0 + P) on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P Q 1 2P 3P
60 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double-and-add: Q 0 Q 0 + Q 1 = 2 Q 0 + P (Q 1 2 (Q 0 + P) on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P Q 1 2P 3P 6P
61 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double-and-add: Q 0 Q 0 + Q 1 = 2 Q 0 + P (Q 1 2 (Q 0 + P) on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P 11P Q 1 2P 3P 6P
62 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double-and-add: Q 0 Q 0 + Q 1 = 2 Q 0 + P (Q 1 2 (Q 0 + P) on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P 11P Q 1 2P 3P 6P 12P
63 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 i init k i Q 0 P 2P 5P 11P Q 1 2P 3P 6P 12P 23P
64 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double: Q 0 2 Q 0 (Q 1 Q 0 + Q 1 = 2 Q 0 + P on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P 11P 22P Q 1 2P 3P 6P 12P 23P
65 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double-and-add: Q 0 Q 0 + Q 1 = 2 Q 0 + P (Q 1 2 (Q 0 + P) on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P 11P 22P 45P Q 1 2P 3P 6P 12P 23P
66 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 Double-and-add: Q 0 Q 0 + Q 1 = 2 Q 0 + P (Q 1 2 (Q 0 + P) on a alors Q 1 Q 0 = P) i init k i Q 0 P 2P 5P 11P 22P 45P Q 1 2P 3P 6P 12P 23P 46P
67 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment fonctionne-t-elle? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = 2P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 0 + Q 1,Q 0 2 Q 0 5: else 6: Q 0 Q 0 + Q 1,Q 1 2 Q 1 i init k i Q 0 P 2P 5P 11P 22P 45P Q 1 2P 3P 6P 12P 23P 46P l algorithme renvoie : Q 0 = 45P Jean-Marc ROBERT DALI/LIRMM, UPVD, France 30 / 60
68 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 31 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Échelle binaire de Montgomery avec Halving Comme pour l échelle binaire de Montgomery (avec doublings), nous voulons obtenir :
69 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 31 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Échelle binaire de Montgomery avec Halving Comme pour l échelle binaire de Montgomery (avec doublings), nous voulons obtenir : régularité des opérations ;
70 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 31 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Échelle binaire de Montgomery avec Halving Comme pour l échelle binaire de Montgomery (avec doublings), nous voulons obtenir : régularité des opérations ; conserver une différence constante entre Q 0 et Q 1, les deux points calculés au long de l algorithme.
71 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 31 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Échelle binaire de Montgomery avec Halving Comme pour l échelle binaire de Montgomery (avec doublings), nous voulons obtenir : régularité des opérations ; conserver une différence constante entre Q 0 et Q 1, les deux points calculés au long de l algorithme. Pour construire un Montgomery-Halving, nous récrivons le scalaire k comme pour l approche Halve-and-add: k P = (k 2 (t 1) mod #<P >) P.
72 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 32 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Algorithme pour le Montgomery Halving Montgomery Halving Require: Réécriture de k en k avec k = k 2 (t 1) mod #<P >, k i {0, 1} avec k t 1 = 1, P E(F 2 m ) Ensure: Q = k P 1: Q 0 P, Q 1 P 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: T Q 0 /2, Q 0 T, Q 1 Q 1 T 5: else 6: T Q 1 /2, Q 1 T, Q 0 Q 0 T 7: return (Q 0 ) Avec cet algorithme, nous avons atteint nos objectifs : Régularité : 1H + 1A à chaque itération de la boucle ; Q 1,j Q 0,j = 2 P tout au long du calcul ; l efficacité/complexité est moins bonne.
73 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 Q 1
74 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P Q 1
75 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P Q 1 -P
76 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P Q 1 -P -3P/2
77 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 Halve : Q 1 Q 0 = 2P i init k i Q 0 P P/2 Q 1 -P -3P/2
78 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P P/2 5P/4 Q 1 -P -3P/2
79 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 Halve-and-add: Q 1 Q 0 = 2P i init k i Q 0 P P/2 5P/4 Q 1 -P -3P/2-3P/4
80 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P P/2 5P/4 13P/8 Q 1 -P -3P/2-3P/4
81 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 Halve-and-add: Q 1 Q 0 = 2P i init k i Q 0 P P/2 5P/4 13P/8 Q 1 -P -3P/2-3P/4-3P/8
82 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P P/2 5P/4 13P/8 Q 1 -P -3P/2-3P/4-3P/8-19P/16
83 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 Halve : Q 1 Q 0 = 2P i init k i Q 0 P P/2 5P/4 13P/8 13P/16 Q 1 -P -3P/2-3P/4-3P/8-19P/16
84 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P P/2 5P/4 13P/8 13P/16 45P/32 Q 1 -P -3P/2-3P/4-3P/8-19P/16
85 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 Halve-and-add: Q 1 Q 0 = 2P i init k i Q 0 P P/2 5P/4 13P/8 13P/16 45P/32 Q 1 -P -3P/2-3P/4-3P/8-19P/16-19P/32
86 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 33 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Comment le Montgomery Halving fonctionne-t-il? Exemple : k = = 0x2D = [1, 0, 1, 1, 0, 1] 2 1: Q 0 = P; Q 1 = P. 2: for i from t 2 downto 0 do 3: if (k i = 0) then 4: Q 1 Q 1 Q 0 /2,Q 0 Q 0 /2 5: else 6: Q 0 Q 0 Q 1 /2,Q 1 Q 1 /2 i init k i Q 0 P P/2 5P/4 13P/8 13P/16 45P/32 Q 1 -P -3P/2-3P/4-3P/8-19P/16-19P/32 L algorithme renvoie : Q 0 = 45P/32 (puissances négatives de 2.)
87 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 34 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Algorithme parallèle Le scalaire k est transformé en k = k 2 l mod #<P >, avec dans ce cas: k = k 2 l = ( t k i 2i )2 l = i=0 l 1 k i 2i l i=0 }{{} puissances de t k i 2i l i=l }{{} puissances de 2>0
88 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 34 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Algorithme parallèle Le scalaire k est transformé en k = k 2 l mod #<P >, avec dans ce cas: k = k 2 l = ( t k i 2i )2 l = i=0 l 1 k i 2i l i=0 }{{} puissances de t k i 2i l i=l }{{} puissances de 2>0 Montgomery parallèle avec Halving/Doubling Require: scalar k, P F 2 m d ordre impair r, une constante l. Ensure: kp. 1: Réécriture : k = 2 l k mod r. (Barrier) 2: // Montgomery Doubling ECSM 4: // Montgomery Halving ECSM 3: Q D [(k t,..., k l )] P 5: Q H [(k l 1,..., k 0 )/2l ] P (Barrier) 6: return Q Q D + Q H
89 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 35 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Montgomery parallèle avec Halving/Doubling : stratégies d implantations Deux plateformes différentes : Optiplex 990, Intel core i7 langage C Nexus 7, Qualcomm Snapdragon (ARM) langage C gcc gcc Ubuntu Ubuntu touch Jeux d instructions : Architecture : MMX, AVX et AES (128 bits) ARM7 32 bits Multiplication de polynômes : approche Karatsuba + PCLMUL Inversion Itoh-Tsujii opérations sur le corps F 2 m Multiplication de polynômes : approche de Lopez-Dahab (Comb method) Inversion Itoh-Tsujii Autres opérations (carré, racine carrée, half-trace...) : approche par look-up table.
90 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 36 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Montgomery parallèle avec Halving/Doubling Figure : Montgomery parallèle avec Halving/Doubling, NIST B233, Intel Core i7
91 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 37 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Performance des implantations Performances échelles binaires de Montgomery Optiplex 990, Intel core i7, TurboMode et hyperthreading desactivés avec Doubling Halving Parallèle Gain (//-Doubling) NIST B cc cc cc 5,4% NIST B cc cc cc 10,5% Nexus 7, Qualcomm Snapdragon avec Doubling Halving Parallèle Gain (//-Doubling) NIST B cc cc cc 19% NIST B cc cc cc 19% (moyenne des minimums sur 2000 exécutions)
92 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 38 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Conclusion En synthèse, nous retenons : contributions sur l échelle de Montgomery, avec Halving et parallélisation ;
93 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 38 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Conclusion En synthèse, nous retenons : contributions sur l échelle de Montgomery, avec Halving et parallélisation ; algorithmes SPA resistant ;
94 Jean-Marc ROBERT DALI/LIRMM, UPVD, France 38 / 60 Dans la cryptographie sur courbe elliptique Montgomery revisité, ECC sur F 2 m Conclusion En synthèse, nous retenons : contributions sur l échelle de Montgomery, avec Halving et parallélisation ; algorithmes SPA resistant ; gains de performance (de 5,4 à 19 %, selon la plateforme et la courbe elliptique).
95 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 39 / 60 Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
96 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 40 / 60 Multiplication modulaire de Montgomery Soient A et B [0, N[. On pose C = A B, C < N 2. La réduction modulaire Montgomery de C = A B se présente de la façon suivante :
97 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 40 / 60 Multiplication modulaire de Montgomery Soient A et B [0, N[. On pose C = A B, C < N 2. La réduction modulaire Montgomery de C = A B se présente de la façon suivante : q A B ( N 1 ) mod 2 wn, Y (A B + q N)/2 wn. La division par 2 wn est exacte (les bits de poids faibles sont nuls)
98 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 40 / 60 Multiplication modulaire de Montgomery Soient A et B [0, N[. On pose C = A B, C < N 2. La réduction modulaire Montgomery de C = A B se présente de la façon suivante : q A B ( N 1 ) mod 2 wn, Y (A B + q N)/2 wn. La division par 2 wn est exacte (les bits de poids faibles sont nuls) Y satisfait Y = A B 2 wn mod N et Y < 2N.
99 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 40 / 60 Multiplication modulaire de Montgomery Soient A et B [0, N[. On pose C = A B, C < N 2. La réduction modulaire Montgomery de C = A B se présente de la façon suivante : q A B ( N 1 ) mod 2 wn, Y (A B + q N)/2 wn. La division par 2 wn est exacte (les bits de poids faibles sont nuls) Y satisfait Y = A B 2 wn mod N et Y < 2N. représentation de Montgomery : Ã = A 2wn mod N. Ã B 2 wn mod N = (AB) 2 wn mod N
100 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 41 / 60 SmallRed : réduction modulaire d un mot X (n mots machine) motsw bit dewords w bits décalage one word à droite right shift d un mot X X + [x 0 ( N 1 mod 2 w ) mod 2 w ] N X X /2 w, c est-à-dire < X /2 w + N
101 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Complexité : n + 1 WMult., 2n + 1 WAdd. Jean-Marc ROBERT DALI/LIRMM, UPVD, France 41 / 60 SmallRed : réduction modulaire d un mot X (n mots machine) motsw bit dewords w bits décalage one word à droite right shift d un mot X X + [x 0 ( N 1 mod 2 w ) mod 2 w ] N X X /2 w, c est-à-dire < X /2 w + N SmallRed (un mot machine) Require: Le module N et un entier positif X = (x n 1,..., x 0 ) 2 w de n mots machine et N = ( N 1 ) mod 2 w Ensure: Y = X 2 w mod N avec Y < X /2 w + N 1: q x 0 N mod 2 w 1 WMult. 2: Y (X + q N)/2 w n WMult., 2n + 1 WAdd. 3: return Y
102 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 42 / 60 Multiplication de Montgomery par bloc ABR 1 mod N = ( n 1 j=0 b j2 wj ) A 2 wn mod N
103 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 42 / 60 Multiplication de Montgomery par bloc ABR 1 mod N = ( n 1 j=0 b j2 wj ) A 2 wn mod N A b 0 2 w SmallRed (A b 0 2 w + A b 1 ) 2 w SmallRed ( n 1 j=0 b j 2 wj ) A 2 wn SmallRed
104 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 43 / 60 Multiplication de Montgomery par bloc Complexité : on effectue n smallred : n 2 + n WMult., 2n 2 + n WAdd. n multiplications 1 n : n 2 WMult., n 2 + n WAdd. n 1 additions n + 1 : n 2 1 WAdd. opération # multiplications de mots # additions de mots ABR 1 mod N 2n 2 + n 4n 2 + 2n 1 A 2 R 1 mod N 3 2 n n 1 3n2 + 5n 1
105 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Jean-Marc ROBERT DALI/LIRMM, UPVD, France 43 / 60 Multiplication de Montgomery par bloc Complexité : on effectue n smallred : n 2 + n WMult., 2n 2 + n WAdd. n multiplications 1 n : n 2 WMult., n 2 + n WAdd. n 1 additions n + 1 : n 2 1 WAdd. opération # multiplications de mots # additions de mots ABR 1 mod N 2n 2 + n 4n 2 + 2n 1 A 2 R 1 mod N 3 2 n n 1 3n2 + 5n 1
106 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 44 / 60 Table des matières 1 Introduction Cryptographie asymétrique Contributions de la thèse 2 Dans la cryptographie sur courbe elliptique Groupe additif considéré : ECC Multiplication scalaire de point de courbe elliptique (ECSM) Montgomery revisité, ECC sur F 2 m 3 Dans l exponentiation modulaire, combiner les opérations Multiplication modulaire Contributions Application aux exponentiations régulières 4 Conclusion
107 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 45 / 60 Contributions Notre but est d accélérer les algorithmes résistants à l attaque SPA. Pour y parvenir, nous proposons :
108 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 45 / 60 Contributions Notre but est d accélérer les algorithmes résistants à l attaque SPA. Pour y parvenir, nous proposons : deux multiplications par une opérande commune A B, A C ;
109 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 45 / 60 Contributions Notre but est d accélérer les algorithmes résistants à l attaque SPA. Pour y parvenir, nous proposons : deux multiplications par une opérande commune A B, A C ; des multiplications multiples par une opérande commune A B 0, A B 1,..., A B l ;
110 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 45 / 60 Contributions Notre but est d accélérer les algorithmes résistants à l attaque SPA. Pour y parvenir, nous proposons : deux multiplications par une opérande commune A B, A C ; des multiplications multiples par une opérande commune A B 0, A B 1,..., A B l ; l utilisation des opérations précédentes aux algorithmes protégés contre l attaque SPA.
111 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 46 / 60 CombinedMontMul A B, A C La multiplication modulaire de Mongtomery par bloc effectue : A B R 1 = n 1 b j 2 wj A 2 w(n+1) mod N j=0
112 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 46 / 60 CombinedMontMul A B, A C La multiplication modulaire de Mongtomery par bloc effectue : A B R 1 = n 1 b j 2 wj A 2 w(n+1) mod N j=0 n 1 = b j A 2 w(n+1 j) mod N j=0
113 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 46 / 60 CombinedMontMul A B, A C La multiplication modulaire de Mongtomery par bloc effectue : A B R 1 = n 1 b j 2 wj A 2 w(n+1) mod N j=0 n 1 = b j A 2 w(n+1 j) mod N j=0 n 1 = b j (A 2 w(n 1 j) mod N)2 2w mod N j=0
114 Dans l exponentiation modulaire, combiner les opérations Contributions Jean-Marc ROBERT DALI/LIRMM, UPVD, France 46 / 60 CombinedMontMul A B, A C La multiplication modulaire de Mongtomery par bloc effectue : A B R 1 = n 1 b j 2 wj A 2 w(n+1) mod N j=0 = = = où A (j) = A2 w(n 1 j) mod N pour j = 0,..., n 1. n 1 b j A 2 w(n+1 j) mod N j=0 n 1 b j (A 2 w(n 1 j) mod N)2 2w mod N j=0 n 1 b j A (j) 2 2w mod N j=0
115 Dans l exponentiation modulaire, combiner les opérations Contributions CombinedMontMul A B, A C La multiplication modulaire de Mongtomery par bloc effectue : n 1 A B R 1 = b j 2 wj A 2 w(n+1) mod N = = = j=0 n 1 b j A 2 w(n+1 j) mod N j=0 n 1 b j (A 2 w(n 1 j) mod N)2 2w mod N j=0 n 1 b j A (j) 2 2w j=0 mod N où A (j) = A2 w(n 1 j) mod N pour j = 0,..., n 1. Avec la même chose pour A C R 1, on obtient A C R 1 = n 1 c j A (j) 2 2w mod N. Jean-Marc ROBERT DALI/LIRMM, UPVD, France 46 / 60 j=0
Cryptographie. Cours 3/8 - Chiffrement asymétrique
Cryptographie Cours 3/8 - Chiffrement asymétrique Plan du cours Différents types de cryptographie Cryptographie à clé publique Motivation Applications, caractéristiques Exemples: ElGamal, RSA Faiblesses,
Plus en détailCryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI
Cryptologie Algorithmes à clé publique Jean-Marc Robert Génie logiciel et des TI Plan de la présentation Introduction Cryptographie à clé publique Les principes essentiels La signature électronique Infrastructures
Plus en détailCryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1
Cryptographie RSA Introduction Opérations Attaques Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1 Introduction Historique: Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé
Plus en détailPanorama de la cryptographie des courbes elliptiques
Panorama de la cryptographie des courbes elliptiques Damien Robert 09/02/2012 (Conseil régional de Lorraine) La cryptographie, qu est-ce que c est? Définition La cryptographie est la science des messages
Plus en détailFonction de hachage et signatures électroniques
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 pierre-louis.cayrel@xlim.fr Licence professionnelle Administrateur de Réseaux et de Bases de Données IUT
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailSommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références
Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références 2 http://securit.free.fr Introduction aux concepts de PKI Page 1/20
Plus en détailCryptographie et fonctions à sens unique
Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions
Plus en détailProblèmes arithmétiques issus de la cryptographie reposant sur les réseaux
Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Damien Stehlé LIP CNRS/ENSL/INRIA/UCBL/U. Lyon Perpignan, Février 2011 Damien Stehlé Problèmes arithmétiques issus de la cryptographie
Plus en détailCRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie
CRYPTOGRAPHIE Signature électronique E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr I. SIGNATURE ÉLECTRONIQUE I.1. GÉNÉRALITÉS Organisation de la section «GÉNÉRALITÉS»
Plus en détailQuelques tests de primalité
Quelques tests de primalité J.-M. Couveignes (merci à T. Ezome et R. Lercier) Institut de Mathématiques de Bordeaux & INRIA Bordeaux Sud-Ouest Jean-Marc.Couveignes@u-bordeaux.fr École de printemps C2 Mars
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailINF 4420: Sécurité Informatique Cryptographie II
: Cryptographie II José M. Fernandez M-3106 340-4711 poste 5433 Aperçu Crypto II Types de chiffrement Par bloc vs. par flux Symétrique vs. asymétrique Algorithmes symétriques modernes DES AES Masque jetable
Plus en détailCryptographie. Master de cryptographie Architectures PKI. 23 mars 2015. Université Rennes 1
Cryptographie Master de cryptographie Architectures PKI 23 mars 2015 Université Rennes 1 Master Crypto (2014-2015) Cryptographie 23 mars 2015 1 / 17 Cadre Principe de Kercho : "La sécurité d'un système
Plus en détailGestion des Clés Publiques (PKI)
Chapitre 3 Gestion des Clés Publiques (PKI) L infrastructure de gestion de clés publiques (PKI : Public Key Infrastructure) représente l ensemble des moyens matériels et logiciels assurant la gestion des
Plus en détailLa cryptographie du futur
La cryptographie du futur Abderrahmane Nitaj Laboratoire de Mathématiques Nicolas Oresme Université de Caen, France nitaj@math.unicaen.fr http://www.math.unicaen.fr/~nitaj Résumé Sans nous rendre compte,
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailCalculateur quantique: factorisation des entiers
Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique
Plus en détailCryptologie à clé publique
Cryptologie à clé publique La cryptologie est partout Chacun utilise de la crypto tous les jours sans forcément sans rendre compte en : - téléphonant avec un portable - payant avec sa carte bancaire -
Plus en détailCours 14. Crypto. 2004, Marc-André Léger
Cours 14 Crypto Cryptographie Définition Science du chiffrement Meilleur moyen de protéger une information = la rendre illisible ou incompréhensible Bases Une clé = chaîne de nombres binaires (0 et 1)
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailMicroprocesseur + Logiciel
Microprocesseur + Logiciel Robot EVALBOT MOHAMED AKIL BUREAU 5253 UNITE IGI 1001 PROGRAMMATION DES MICROPROCESSEURS Présentation [IGI1001] CONTEXTE SCIENTIFIQUE... 4 1. OBJECTIFS DE L UNITE... 6 2. OBJECTIFS
Plus en détailÉPREUVE COMMUNE DE TIPE 2008 - Partie D
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE
Plus en détailDOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.
A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur
Plus en détailSécurité et sûreté des systèmes embarqués et mobiles
Sécurité et sûreté des systèmes embarqués et mobiles Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Plan du cours Sécurité des SEMs La plate-forme et exemple (GameBoy, Smart
Plus en détailPrésentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plus en détailCryptographie Quantique
Cryptographie Quantique Jean-Marc Merolla Chargé de Recherche CNRS Email: jean-marc.merolla@univ-fcomte.fr Département d Optique P.-M. Duffieux/UMR FEMTO-ST 6174 2009 1 Plan de la Présentation Introduction
Plus en détailFeuille TD n 1 Exercices d algorithmique éléments de correction
Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments
Plus en détailTests de primalité et cryptographie
UNIVERSITE D EVRY VAL D ESSONNE Tests de primalité et cryptographie Latifa Elkhati Chargé de TER : Mr.Abdelmajid.BAYAD composé d une courbe de Weierstrass et la fonction (exp(x), cos (y), cos(z) ) Maîtrise
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailArchitectures PKI. Sébastien VARRETTE
Université du Luxembourg - Laboratoire LACS, LUXEMBOURG CNRS/INPG/INRIA/UJF - Laboratoire LIG-IMAG Sebastien.Varrette@imag.fr http://www-id.imag.fr/~svarrett/ Cours Cryptographie & Securité Réseau Master
Plus en détailCours 7 : Utilisation de modules sous python
Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est
Plus en détailNouveaux résultats en cryptographie basée sur les codes correcteurs d erreurs
MajecSTIC 2009 Avignon, France, du 16 au 18 novembre 2009 Nouveaux résultats en cryptographie basée sur les codes correcteurs d erreurs Pierre-Louis CAYREL Université Paris VIII Département de Mathématiques
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailPetite introduction aux protocoles cryptographiques. Master d informatique M2
Petite introduction aux protocoles cryptographiques Master d informatique M2 Les protocoles cryptographiques p.1/48-1 Internet - confidentialité - anonymat - authentification (s agit-il bien de ma banque?)
Plus en détailExercices - Polynômes : corrigé. Opérations sur les polynômes
Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailINF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Plus en détailInformatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse
Questions - Révision- - 1 er Semestre Informatique Durée de l examen : 1h pour 40 questions. Aucun document n est autorisé. L usage d appareils électroniques est interdit. Les questions faisant apparaître
Plus en détailTECHNIQUES DE CRYPTOGRAPHIE
Jonathan BLANC Enseignant : Sandrine JULIA Adrien DE GEORGES Année universitaire 23/24 Licence Informatique TECHNIQUES DE CRYPTOGRAPHIE - - TABLE DES MATIERES INTRODUCTION 3. TECHNIQUES DE CRYPTOGRAPHIE
Plus en détailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailLe format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.
Le format OpenPGP Traduit par : Sébastien Person personseb@yahoo.fr Matthieu Hautreux matthieu.hautreux@insa-rouen.fr Odile Weyckmans odile.weyckmans@insa-rouen.fr Relu et maintenu par : Yvon Benoist benoist@insa-rouen.fr
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailSécurité de l'information
Sécurité de l'information Sylvain Duquesne Université Rennes 1, laboratoire de Mathématiques 24 novembre 2010 Les Rendez-Vous Mathématiques de l'irem S. Duquesne (Université Rennes 1) Sécurité de l'information
Plus en détailEnseignement secondaire technique
Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:
Plus en détailFactorisation d entiers (première partie)
Factorisation d entiers ÉCOLE DE THEORIE DES NOMBRES 0 Factorisation d entiers (première partie) Francesco Pappalardi Théorie des nombres et algorithmique 22 novembre, Bamako (Mali) Factorisation d entiers
Plus en détailIntroduction à l étude des Corps Finis
Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur
Plus en détailRésolution d équations non linéaires
Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailDU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION
145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu
Plus en détailContexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,
Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très
Plus en détailPolynômes à plusieurs variables. Résultant
Polynômes à plusieurs variables. Résultant Christophe Ritzenthaler 1 Relations coefficients-racines. Polynômes symétriques Issu de [MS] et de [Goz]. Soit A un anneau intègre. Définition 1.1. Soit a A \
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailCours d Informatique
Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailMatrice d accès. Master SEMS, 2013-2014. Pierre Paradinas. October 16, 2013
Matrice d accès Master SEMS, 2013-2014 Pierre Paradinas October 16, 2013 Le Concept de Matrice d Accès ntroduit en 1971 par Butler Lampson Definition On note O, l ensemble des entités objet qui sont impliquées
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailCertificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC
Certificats X509 & Infrastructure de Gestion de Clés Claude Gross CNRS/UREC 1 Confiance et Internet Comment établir une relation de confiance indispensable à la réalisation de transaction à distance entre
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailD31: Protocoles Cryptographiques
D31: Protocoles Cryptographiques Certificats et échange de clés Nicolas Méloni Master 2: 1er semestre (2014/2015) Nicolas Méloni D31: Protocoles Cryptographiques 1/21 Introduction Protocole Diffie Hellman:
Plus en détailSignatures électroniques dans les applications INTERNET
ECOLE ROYALE MILITAIRE 156 e Promotion Polytechnique Lieutenant-Général Baron de GREEF Année académique 2005 2006 3 ème épreuve Signatures électroniques dans les applications INTERNET Par le Sous-lieutenant
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailGestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader
Gestion des Clés Pr Belkhir Abdelkader Gestion des clés cryptographiques 1. La génération des clés: attention aux clés faibles,... et veiller à utiliser des générateurs fiables 2. Le transfert de la clé:
Plus en détailASR1 TD7 : Un microprocesseur RISC 16 bits
{Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit
Plus en détailSystème binaire. Algèbre booléenne
Algèbre booléenne Système binaire Système digital qui emploie des signaux à deux valeurs uniques En général, les digits employés sont 0 et 1, qu'on appelle bits (binary digits) Avantages: on peut utiliser
Plus en détailhttp://cermics.enpc.fr/scilab
scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,
Plus en détailLa sécurité dans les grilles
La sécurité dans les grilles Yves Denneulin Laboratoire ID/IMAG Plan Introduction les dangers dont il faut se protéger Les propriétés à assurer Les bases de la sécurité Protocoles cryptographiques Utilisation
Plus en détailINF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
Plus en détailProgrammation Classique en langage C
DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric
Plus en détailRésolution de systèmes linéaires par des méthodes directes
Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailExo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.
Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailL ALGORITHMIQUE. Algorithme
L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques
Plus en détailExercices - Fonctions de plusieurs variables : corrigé. Pour commencer
Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy
Plus en détailDe même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que
Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer
Plus en détailFONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)
FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) Bernard Le Stum Université de Rennes 1 Version du 13 mars 2009 Table des matières 1 Fonctions partielles, courbes de niveau 1 2 Limites et continuité
Plus en détailProbabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12
Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailLes risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité
Les risques liés à la signature numérique Pascal Seeger Expert en cybercriminalité Présentation Pascal Seeger, expert en cybercriminalité Practeo SA, Lausanne Partenariat avec Swisscom SA, Zurich Kyos
Plus en détailLES SECURITES DE LA CARTE BANCAIRE
Projet tutoré 2007 TENEUR Jérôme Groupe: III MAHIEU Maxime Année 2006 / 2007 BINARD Romain RTFI1A LES SECURITES DE LA CARTE BANCAIRE 1 SOMMAIRE I - Introduction II - Le chiffrement symétrique 1 - Les principes
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailTravail d intérêt personnel encadré : La cryptographie
DÉCAMPS Régis & JUÈS Thomas 110101 111011 111001 111100 100011 001111 001110 110111 111011 111111 011111.......... 011111 110101 110100 011110 001111 000110 101111 010100 011011 100110 101111 010110 101010
Plus en détailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Plus en détailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailLa mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailIntroduction à l informatique en BCPST
Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de
Plus en détail