Crypto Bases
Crypto Bases
Guénaël Renault
POLSYS LIP6/UPMC/INRIA
Part I
Définitions
2/91
La cryptologie
Définitions
La cryptologie est la science du secret. Elle se divise en deux
disciplines :
La cryptographie qui est l’étude des algorithmes permettant la
protection d’informations (numériques). Ces algorithmes sont
appelés cryptosystèmes +design;
la cryptanalyse qui est l’étude du niveau de sécurité des
cryptosystèmes fournis par les cryptographes +attack.
3/91
La cryptanalyse
4/91
La cryptanalyse
4/91
La cryptanalyse
Peut essentiellement se diviser en deux grandes familles d’attaques
qui viseront deux cibles différentes :
Terminologie
Chiffrer : l’action de rendre un message clair M (plaintext) en un
message C appelé cryptogramme ou message chiffré, illisible.
Déchiffrer : Action inverse du chiffrement.
Cryptosystème : L’algorithme (ou le dispositif physique) permettant de
chiffrer des données.
Attaquer, Casser : Mettre à mal la sécurité d’un cryptosystème
(retrouver M à partir de C sans connaı̂tre la clé, retrouver la clé).
5/91
La cryptographie: outils mathématiques
6/91
Part II
Chiffrement symétrique
7/91
Chiffrement symétrique : Modélisation
Définition
Un chiffrement est dit symétrique (ou à clé privée) si pour chiffrer et
déchiffrer, la même clé secrète est utilisée.
9/91
Chiffrement d’un texte : Mode ECB
Chiffrement symétrique (la même clé K pour dé/chiffrer)
P et C les alphabets clairs et chiffrés.
K l’ensemble des clés possibles.
K ∈ K : eK : P → C et dK : C → P avec ∀x ∈ P dK (eK (x)) = x.
Les applications eK et dK nécessitent la connaissance complète
de K pour être définies.
Ce mode de chiffrement est à éviter. 9/91
Chiffrement d’un texte : Mode ECB
9/91
Période artisanale : Cesar
tr a-zA-Z n-za-mN-ZA-M
10/91
Période artisanale : Transposition/Substitution
11/91
Période artisanale : Transposition/Substitution
11/91
Période artisanale : Transposition/Substitution
11/91
Période artisanale : Transposition/Substitution
11/91
Période artisanale : le point faible du
monoalphabétique
12/91
Période artisanale : Vigenère et le polyalphabétique
Vigenère ou multi-décalage
On associe aux lettres un entier dans {0, . . . , 25} et on fixe un mot
C = (c1 , . . . , c` ) de ` lettres pour être la clé secrète . On découpe le
message à envoyer en blocs Bi = (x(i,1) , x(i,2) , . . . , x(i,`) ) de ` lettres . Le
chiffrement/déchiffrement par un multi-décalage sur les Bi :
E(x(i,j) ) = x(i,j) + cj mod 26
D(x(i,j) ) = x(i,j) − cj mod 26
13/91
Période artisanale : Vigenère et le polyalphabétique
Vigenère ou multi-décalage
On associe aux lettres un entier dans {0, . . . , 25} et on fixe un mot
C = (c1 , . . . , c` ) de ` lettres pour être la clé secrète . On découpe le
message à envoyer en blocs Bi = (x(i,1) , x(i,2) , . . . , x(i,`) ) de ` lettres . Le
chiffrement/déchiffrement par un multi-décalage sur les Bi :
E(x(i,j) ) = x(i,j) + cj mod 26
D(x(i,j) ) = x(i,j) − cj mod 26
13/91
Période artisanale : Vigenère et le polyalphabétique
Vigenère ou multi-décalage
On associe aux lettres un entier dans {0, . . . , 25} et on fixe un mot
C = (c1 , . . . , c` ) de ` lettres pour être la clé secrète . On découpe le
message à envoyer en blocs Bi = (x(i,1) , x(i,2) , . . . , x(i,`) ) de ` lettres . Le
chiffrement/déchiffrement par un multi-décalage sur les Bi :
E(x(i,j) ) = x(i,j) + cj mod 26
D(x(i,j) ) = x(i,j) − cj mod 26
+Pour la seconde étape on peut voir cela comme une attaque d’un
multi-chiffrement monoalphabétique.
Idée clé:
15/91
Cryptanalyse automatique : Utilisation des
Statistiques
William F. Friedman (1891 - 1969)
16/91
Cryptanalyse automatique : Utilisation des
Statistiques
Application
Karl Pearson (1857 - 1936)
Mono-Alphabétique
On s’intéresse à la
corrélation entre la
distribution d’un texte chiffré
et celle d’un texte clair dans
un langage donné.
Pn
i=1 (Xi − X̄)(Yi − Ȳ)
ρ(X, Y) = qP qP
n 2 n 2
i=1 (Xi − X̄) i=1 (Xi − X̄)
16/91
Cryptanalyse automatique : Utilisation des
Statistiques
William F. Friedman (1891 - 1969)
Définition
L’indice de coı̈ncidence d’un
texte est la probabilité de
tirer un couple de lettres
identiques au hasard.
25 25
X Cni
2
X ni (ni − 1)
IC = =
C2n n(n − 1)
i=0 i=0
16/91
Cryptanalyse automatique : Utilisation des
Statistiques
P25 ni (ni −1)
+IC = i=0 n(n−1) distingue l’aléatoire ⇒ attaque longueur de la clé
16/91
De l’artisanal à l’informatique via la mécanique
+Création de bureaux spéciaux de cryptanalyse
+Avant 1914, la crypto reste très proche de Vigenère.
17/91
De l’artisanal à l’informatique via la mécanique
+La cryptanalyse pousse les USA à entrer en guerre !
17/91
De l’artisanal à l’informatique via la mécanique
+La cryptanalyse d’un message allemand évite une défaite sur Paris !
Le chiffrement ADFGVX inventé par Nebel et cryptanalysé par Painvin.
17/91
Période intermédiaire entre deux guerres et WW2 :
Enigma la mécanique cryptographique
+Invention de la télécommunication et croissance du nombre des
échanges chiffrés
18/91
Période intermédiaire 1914-1945 : Enigma la
mécanique cryptographique
+Le Biuro Szyfrów, bureau du chiffre polonais autour du M. Rejewski
puis le centre de cryptanalyse anglais de Bletchley Park autour de A.
Turing perce le secret d’Enigma.
Définitions importantes
Chiffrement parfait
Entropie d’un langage
20/91
Chiffrement parfait
Intuition
Un cryptosystème sera dit chiffrement parfait lorsque la donnée d’un
message chiffré ne révèle aucune fuite d’information sur la clé ou le
message clair correspondant et aucune information non plus sur les
textes chiffrés futurs.
21/91
Chiffrement parfait
Caractérisation
Supposons qu’un cryptosystème vérifie
#K = #P = #C
21/91
Exemple : Vernam’s One Time Pad
22/91
Exemple : Vernam’s One Time Pad
23/91
Exemple : Vernam’s One Time Pad
23/91
Début 1970 : besoin de standardisation
˜
Basé sur deux concepts introduits par Shannon, le DES est proposé
en 1977 comme standard de chiffrement par bloc.
24/91
La fin du DES
Très tôt le DES est critiqué pour la taille de clé trop petite (64 bits mais
seulement 56 utiles).
Attaques théoriques
Cryptanalyse différentielle (Biham, Shamir, 1988) en 248
Cryptanalyse linéaire (Matsui, Gilbert, 1993) en 243
+On passe au 3DES pour assurer une bonne sécurité !
25/91
Le remplaçant du DES : AES
26/91
AES : Fips-197
+Représentation matricielle
27/91
AES : Fips-197
28/91
AES : Byte Sub
+Représentation matricielle
29/91
AES : Byte Sub (S-Box)
+Boite-S définit sur 8 bits (description arith. plus loin)
| 0 1 2 3 4 5 6 7 8 9 a b c d e f
---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
10 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
20 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
30 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
40 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
50 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
70 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
80 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
90 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
30/91
AES : Permutation (les lignes)
+Représentation matricielle
31/91
AES : Permutation (les colonnes)
+Représentation matricielle
32/91
AES : Addition de la sous-clé
+Représentation matricielle
33/91
AES : Un mode opératoire plus secure
34/91
Part III
35/91
Problématique
Bob
Alice Henry
Fred
Gil
Jean
Carl
Ken
36/91
New Directions in Cryptogra
Échanger des clés Invited Paper
+1976 Diffie, Hellman et Merkle publient le premier schéma d’échange
Whitfield Diffie and Martin E. Hellm
de clés. Ils proposent (enfin) la notion de clé publique.
37/91
Logarithme discret : du plan continue au discret
Étant donné ex
38/91
Logarithme discret : du plan continue au discret
38/91
Logarithme discret : du plan continue au discret
38/91
La trappe de Diffie-Hellman
+Le nombre croissant d’échanges augmente le nombre de clés
secrètes nécessaires.
+En 1975 ils proposent les grandes lignes de leur idée théorique pour
éviter ce problème.
Définition
Une fonction F : X → Y est à sens unique avec trappe , si :
F est à sens unique, i.e. elle est difficile à inverser, facile à
calculer.
La connaissance d’une information supplémentaire, appelée la
trappe, rend le calcul pour tout y ∈ Im(F) de x ∈ X tel que F(x) = y
réalisable en temps polynomial.
Clé publique : F
Clé secrète : la trappe
39/91
Rivest, Shamir, Adleman
+1977 première instance d’un cryptosystème à clé publique : RSA.
40/91
Rivest, Shamir, Adleman
+1977 première instance d’un cryptosystème à clé publique : RSA.
40/91
Rivest, Shamir, Adleman
RSA
Soient p et q deux nombres premiers et n = pq et deux entiers e, d tels
que ed = 1 mod φ(n) . L’instance F(n,e) : Z/nZ → Z/nZ qui à un
élément x fait correspondre son exponentiation modulaire xe mod p .
F est bien à sens unique, difficulté basée sur la factorisation de n .
La trappe est la connaissance de p,q et d.
Chiffrement x : xe mod n
Déchiffrement y : yd mod n
40/91
Complexités modulo N
41/91
Complexités modulo N
41/91
Calculer le PGCD : définition
Par définition on a
Y
PGCD(a, b) := pmin(vp(a)vp(b))
p∈P
+Dépend de la factorisation de a et de b
+Le meilleure algorithme permettant de factoriser des entiers est de
complexité sous-exponentielle. Le problème de la factorisation est
donc assez difficile.
+Si l’on ne connaissait pas d’autres algorithmes permettant le calcul
du PGCD il en serait de même...
42/91
Calculer le PGCD : Euclide
Lemmes immédiats
Si d divise a et c et que (a + b) = c alors d divise b.
Le pgcd d’un élément a 6= 0 et 0 est a.
43/91
Calculer le PGCD : dans un anneau Euclidien
L’anneau A possède donc une fonction d permettant d’ordonner les
éléments de cet anneau et de définir une division. Pour calculer le
pgcd de deux éléments a et b tels que d(b) < d(a).
Algorithme d’Euclide
Posant r0 = a et r1 = b on calcule jusqu’à obtenir un reste nul .
1 si r1 6= 0 on a r0 = r1 q1 + r2 avec d(r2 ) < d(r1 )
2 si r2 =6 0 on a r1 = r2 q2 + r3 avec d(r3 ) < d(r2 )
..
.
n − 1 si rn−2 6= 0 on a rn−2 = rn−1 qn−1 + rn avec d(rn ) < d(rn−1 )
n si rn−1 6= 0 on a rn−1 = rn qn + rn+1 avec rn+1 = 0 et d(rn+1 ) < d(rn )
u0 = 1, v0 = 0, r0 = a
u1 = 0, v1 = 1, r1 = b
46/91
Algorithme d’Euclide Étendu
Pour i > 1:
qi = ri−1 div ri , ri+1 = ri−1 mod ri
46/91
Algorithme d’Euclide Étendu
ui+1 vi+1 ri+1 −qi 1 ui vi ri
=
ui vi ri 1 0 ui−1 vi−1 ri−1
46/91
Algorithme d’Euclide Étendu
Exemple : a = 1234 et b = 896.
46/91
Nombre de boucles : le pire cas (pour une taille
donnée) !
13 = 1×8+5
8 = 1×5+3
5 = 1×3+2
3 = 1×2+1
2 = 2×1+0
+ Le nombre de calcul est maximal car les quotients sont tous (sauf le
dernier) réduits à 1.
47/91
Nombre de boucles : le pire cas (pour une taille
donnée) !
+Quand on ne peut pas faire mieux qu’utiliser la version simple
d’Euclide (géométrique) : dans ce cas la division euclidienne est
remplacée par une soustraction.
Plus généralement : cette propriété est vraie pour tout couple
Fn+2 , Fn+1 de nombres de Fibonaci successifs
13
3 2
Définition
F0 = 0
F1 = 1
Fn+2 = Fn+1 + Fn
Propriétés
√ √
(φn −φ̂n ) 1+ 5 1− 5
Fn = √
5
avec φ = 2 et φ̂ = 2 .
Le calcul de pgcd(Fn+2 , Fn+1 ) par l’algorithme d’Euclide demande
exactement n itérations .
De plus pgcd(Fn+2 , Fn+1 ) = 1
48/91
Nombre de boucles : le cas général
Théorème
Soit a > b > 0. Si le calcul pgcd(a, b) demande n itérations alors
50/91
Algorithme d’Euclide : résultat final
Retour sur la complexité de l’algorithme d’Euclide
Pour a > b > 0
Il y a O(log(b)) itérations de la boucle.
Le coût d’une boucle est majoré par celui de la division
En notant ti = log(ri ) la taille de ri le coût d’une boucle est
ri
O(log( ) log(ri+1 )) = ci ti+1 (ti − ti+1 )
ri+1
n
X n
X
ci ti+1 (ti − ti+1 ) 6 ct1 (ti − ti+1 ) 6 ct1 t0 6 O(log(a) log(b))
i=0 i=0
+complexité quadratique en la taille des entrées
50/91
Exponentiation modulaire
entrée a ∈ {0, . . . , n − 1} et k ∈ N.
sortie ak mod n
51/91
Exponentiation : square-and-multiply
52/91
Exponentiation : square-and-multiply
0 +···+k 2tk −1 )
= a2(k12 tk
52/91
Exponentiation : square-and-multiply
k1 21 +···+ktk 2tk
= (a )·a Multiply
52/91
Exponentiation : square-and-multiply
Pour calculer une exponentiation, réfléchissons (tk = `(k) − 1)
Ptk i
(a i=1 ki 2 )·a Multiply si k0 = 1
Algorithme récursif (écrire une version séquentielle de cet algorithme
est un bon exercice)
+on ne va faire que log(k) multiplications
+Beaucoup mieux !
52/91
Dans le cas modulaire
Conclusion
Complexité de l’exponentiation modulaire
O(log(n)M(log(n))) = O(log(n)3 )
53/91
Problèmes algorithmiques / RSA et DLP
Vérifications faciles
Étant donné n, a, b on peut vérifier n = a × b en multipliant !
Étant donné n, a, b, k on peut vérifier facilement b = ak mod n en
calculant une exponentiation modulaire !
54/91
Part IV
55/91
Rivest, Shamir, Adleman
RSA
Basé sur la difficulté de calculer une racine e-ième mod un entier N
de factorisation inconnue
Si on sait factoriser facilement alors ce problème se résout tout aussi
facilement.
56/91
Rivest, Shamir, Adleman
RSA
Soient p et q deux nombres premiers et n = pq . On choisit deux
entiers e, d tels que ed = 1 mod ϕ(n) . L’application
56/91
RSA : implémentation chiffrement
+Exponentation modulaire
Pl−1 l−1
i i
Y
e
x =x i=0 ei 2 = xei 2
i=0
57/91
RSA : implémentation déchiffrement
RSA et CRT1
On pré-calcule les valeurs :
up = q × (q−1 mod p) mod n
uq = p × (p−1 mod q) mod n
dp = d mod (p − 1)
dq = d mod (q − 1)
Pour déchiffrer y et obtenir le message x d’origine on utilise le CRT :
1 xp = ydp mod p
2 xq = ydq mod q
3 x = xp up + xq uq mod n
58/91
Théorème chinois des restes
Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau
φ : A −→ A/m1 A × A/m2 A
e 7−→ (e mod m1 , e mod m2 )
est surjectif.
59/91
Théorème chinois des restes
Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau
{e ∈ A tq e = 0 mod m2 et e = 0 mod m2 }
59/91
Théorème chinois des restes
Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau
Démonstration constructive:
Comment reconstruire l’élément e dans A/(m1 m2 )A à partir de son
image (e1 , e2 ) dans A/m1 A × A/m2 A ? (l’autre direction est triviale)
59/91
Théorème chinois des restes
Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau
Démonstration constructive:
Comment reconstruire l’élément e dans A/(m1 m2 )A à partir de son
image (e1 , e2 ) dans A/m1 A × A/m2 A ? (l’autre direction est triviale)
Pour cela, nous utilisons la relation de Bézout entre m1 et m2 :
um1 + vm2 = 1
59/91
Théorème chinois des restes
Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau
Démonstration constructive:
Comment reconstruire l’élément e dans A/(m1 m2 )A à partir de son
image (e1 , e2 ) dans A/m2 A × A/m1 A ? (l’autre direction est triviale)
En notant M = m1 m2 il vient alors
59/91
Théorème chinois des restes : algorithme général
CRT
!
x = e1 mod m1
x = c mod M = m1 m2
x = e2
x = e3 mod m3
mod m2
.. ..
.
.
x = ek mod mk x = ek mod mk
60/91
Théorème chinois des restes : exemple sur Z
Soit à résoudre le système
x = 2 mod 3
x = 3 mod 7
x = 8 mod 19
x = yd mod n
Cette opération prend ' log(d) log(n)2 ' log(n)3 mais on ne se sert
pas de la connaissance de p et q !
Mais d’après le CRT on a
62/91
CRT et RSA avec p et q de même taille
x = xp up + xq uq mod n
√
Ici on fait ' 2 × log( n)3 ' 14 log(n)3 pour le calcul des exponentiations
√
et 2 × log( n)2 + log(n) pour la reconstruction.
+log(n)3 >> 14 log(n)3
+Temps d’execution de 2 à 4 fois plus rapide avec le CRT !
62/91
Part V
63/91
Corps finis : Propriétés
+ On utilise la rupture
Définition
Soit P un polynôme irréductible de degré n
Fpn := Fp[X]/(P)
64/91
Corps finis : Exemple
Théorèmes
Fpn est de cardinal pn .
Pour tout p premier et tout entier n > 0 il existe un polynôme
irréductible de degré n dans Fp .
Exemple : Fp = Z/2Z et P = X 2 + X + 1
F4 = F2 [X]/(X 2 + X + 1)
Si on note ω une racine de P (image de X dans F2 [X]/P) on a :
F4 = {0, 1, ω, ω + 1}
65/91
Corps finis : Exemple
Exemple : Fp = Z/2Z et P = X 2 + X + 1
F4 = F2 [X]/(X 2 + X + 1)
Si on note ω une racine de P (image de X dans F2 [X]/P) on a :
F4 = {0, 1, ω, ω + 1}
× 0 1 ω ω+1
0 0 0 0 0
1 0 1 ω ω+1
ω 0 ω ω+1 1
ω+1 0 ω+1 1 ω
65/91
Corps finis : Application
Théorème
Le groupe multiplicatif F× n
pn est cyclique d’ordre p − 1 .
66/91
Corps finis : Application
67/91
Part VI
68/91
Signer un message
Problème de l’authentification
Étant donné un message m et sa signature s, on doit être capable de
vérifier l’expéditeur de m à partir de données publiques.
69/91
Signer avec RSA
+La signature permet d’authentifier l’expéditeur d’un message
La signature RSA
Soit N = pq un entier RSA et (e, d) un couple d’exposants de
chiffrement/déchiffrement choisis par l’expéditeur.
L’expéditeur publie N et d
Un message m ∈ (Z/NZ)× envoyé par l’expéditeur aura pour
signature
sm = me mod N
Le destinataire recevra le couple (m, s) et authentifiera l’expéditeur
à partir ses clés publiques (N, d) en vérifiant
m = sdm mod N
ATTENTION il ne faut pas mélanger chiffrement et signature RSA
n’importe comment. 70/91
Fonctions de hachage
Problème signature RSA : la signature est de la taille du message !
72/91
Signer avec DLP
+Elle repose sur une modification du chiffrement de ElGamal
+Nécessite l’utilisation d’une fonction de hachage de l’ensemble des
messages dans le groupe support du DLP.
72/91
Signer avec DLP
v=r mod q
72/91
Part VII
73/91
Création de la carte bancaire
+La signature RSA permet d’authentifier une transaction
Banque GIE CB
GIE priv
Csec Info
GIE pub
VS=GIEpriv(Info)
Centre de
Contrôle
Info, VS,
Csec, PIN
74/91
Utilisation de la carte bancaire
GIE CB Centre de
Contrôle
GIE priv
GIE pub Csec
Appel contrôle
Vendeur
Transaction
Info, VS, GIE pub
Csec, PIN
75/91
Utilisation de la carte bancaire
76/91
Part VIII
77/91
OTP par carte bancaire
78/91
OTP par carte bancaire
+CAP (Chip Authentication Protocol) permet une authentification forte
Attaque Side-Channel possible ?
78/91
Part IX
79/91
Rappel sur le DLP
Les meilleures attaques connues sont sous-exponentielles pour les
corps premiers. Une attaque de janvier 2013 implique le rejet total du
cas des corps finis généraux de petites caractéristiques.
80/91
Courbes elliptiques
+Lieu géométrique !
∆ := −16(4a3 + 27b2 ) 6= 0
y2 = x3 + ax + b
81/91
Courbes elliptiques sur R2
82/91
Courbes elliptiques sur Fp , p = 389, y2 = x3 − x + 1
83/91
Structure de groupe Ea,b = Ea.b ∪ O
84/91
Structure de groupe Ea,b = Ea.b ∪ O
P+O =O+P=P
Si x2 = x1 et y2 = −y1 alors P + Q = O
P + Q = (x3 , y3 ) avec
x3 = λ 2 − x1 − x2
y3 = λ(x1 − x3 ) − y1
3x12 +a y2 −y1
et λ = 2y1 si P = Q et λ = x2 −x1 sinon.
85/91
Un exemple concret
85/91
Un exemple concret
On étudie le groupe construit avec K = F11 et E1,6 : y2 = x3 + x + 6.
Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
z
x z = x3 + x + 6 mod 11 11 y
0 6 -1
1 8 -1
y z = y2 mod 11
2 5 1 ±4
0 0
3 3 1 ±5
±1 1
4 8 -1
±2 4
5 4 1 ±9
±3 9
6 8 -1
±4 5
7 4 1 ±9
±5 3
8 9 1 ±3
9 7 -1
10 4 1 ±9
+12 points rationnels + le point à l’infini = un groupe d’ordre 13, donc
cyclique engendré par tout élément autre que le neutre.
85/91
Exemple concret
Calculons explicitement avec K = F11 , E1,6 : y2 = x3 + x + 6.
Soit P = (2, 7) on veut calculer [2]P = P + P et [3]P .
λ = (3 × 22 + 1)(2 × 7)−1 mod 11
= 2 × 3−1 mod 11
= 2 × 4 mod 11
= 8
Propriétés
a1 a2 a1 a2 a a (mod p)
= et =
p p p p p
87/91
Carrés modulo p, symbole de Legendre
+Etant donné un entier a on ne connaı̂t pas d’algorithme déterministe
qui calcule b tel que a = b2 mod p en temps polynomial (en log p).
+On peut décider qu’un élément est résidu quadratique (un carré
modulo p) en temps polynomial
Réciprocité quadratique
Soit p et q deux premiers distincts > 2 (le cas p = 2 est trivial)
(
−1 1 si p ≡ 1 (mod 4)
= ,
p −1 si p ≡ −1 (mod 4)
(
2 1 si p ≡ ±1 (mod 8)
=
p −1 si p ≡ ±3 (mod 8)
q
p p si p ≡ 1 (mod 4) ou q ≡ 1 (mod 4)
=
q − q si p ≡ 3 (mod 4) et q ≡ 3 (mod 4)
p
87/91
Structure de groupe pour K = Fq avec q = pk et p > 3
Théorème de Hasse
Soit q = pk .
√ √
q + 1 − 2 q 6 |Ea,b | 6 q + 1 + 2 q
Théorème de structure
(Ea,b , +) ' (Z/d1 Z × Z/d2 Z, +)
où d1 divise d2 et d1 divise q − 1. En d’autres termes, le groupe
construit à partir d’une courbe elliptique est soit cyclique (le cas
d1 = 1), soit le produit de deux groupes cycliques.
89/91
Signer avec ECDSA
90/91
Signer avec ECDSA
90/91
Signer avec ECDSA
v=r mod q
90/91
mais parfois mal utilisées...
+En janvier 2011 , une équipe de hackers allemands ont
démontré qu’une très grand entreprise informatique utilisait des
cryptosystèmes sans les comprendre ... ERROR!
91/91
mais parfois mal utilisées...
+En janvier 2011 , une équipe de hackers allemands ont
démontré qu’une très grand entreprise informatique utilisait des
cryptosystèmes sans les comprendre ... ERROR!
91/91