Introduction à la Cryptologie 3I024 Seconde partie

publicité
Introduction à la Cryptologie
3I024
Seconde partie
Guénaël Renault
CALSCI LIP6/UPMC
Février 2016
Part I
Intermède : outils de chiffrement moderne
UPMC - Licence Info - Crypto - 2015/16
2/141
Plan
1
OpenSSL
2
Histoire contemporaine
UPMC - Licence Info - Crypto - 2015/16
3/141
Bibliothèque implémentant la cryptographie
OpenSSL
Toolbox regroupant libcrypto pour les algos cryptographiques et
libssl implémentant le protocole Transport Layer Security (TLS)
ainsi que son prédécesseur Secure Sockets Layer (SSL).
+interface terminal openssl

programmé en C ⇒ bug possible (Heartbleed 2014).
UPMC - Licence Info - Crypto - 2015/16
4/141
Exemple utilisation OpenSSL
Obtenir l’ensemble des chiffrements possibles
1
2
3
4
5
6
7
8
9
10
11
12
# openssl list-cipher-algorithms
AES-128-CBC
AES-128-CBC-HMAC-SHA1
AES-128-CBC-HMAC-SHA256
...
CAMELLIA-128-CBC
CAMELLIA-128-CFB
CAMELLIA-128-CFB1
...
SEED-CFB
SEED-ECB
SEED-OFB
Chiffrer/déchiffrer avec AES-128 (en mode CBC) et encodage Base64
1
2
3
# shachaopenssl enc -aes128 -base64 -in cours1.pdf -out cours1.pdf.enc
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
4
5
6
# openssl enc -d -aes128 -base64 -in cours1.pdf.enc > cours1.pdf
enter aes-128-cbc decryption password:
UPMC - Licence Info - Crypto - 2015/16
5/141
Plan
1
OpenSSL
2
Histoire contemporaine
UPMC - Licence Info - Crypto - 2015/16
6/141
Controverses sur le chiffrement des données
Le chiffrement a empêché la détection des attentats de Paris, selon la
NSA
FBI et Apple s’affrontent sur le chiffrement de l’iPhone
UPMC - Licence Info - Crypto - 2015/16
7/141
Part II
Problématique : L’échange des clés à
l’essor de l’informatique
UPMC - Licence Info - Crypto - 2015/16
8/141
Plan
3
Diffie-Helmann-Merkle
4
Le DLP en toute généralité
5
Résolution du DLP en toute généralité
6
DLP sur les corps finis
UPMC - Licence Info - Crypto - 2015/16
9/141
L’informatique et ses réseaux de communication se
mettent en place
1950 Les premiers ordinateurs commerciaux, cryptographie basée
sur la taille des clés, Théorie de Shannon.
1970 Réseaux numériques, standardisation du DES (chiffrement
symétrique) par la NSA
1970 L’ordinateur devient un outil pour toutes les entreprises
Problème : l’échange des clés
UPMC - Licence Info - Crypto - 2015/16
10/141
Problématique
Un nombre énorme de clés à gérer et échanger !
Bob
Alice
Henry
Fred
Gil
Eve
Ines
Dan
Jean
Carl
Ken
+Il faut un moyen sûr d’échanger chaque clé au préalable !
UPMC - Licence Info - Crypto - 2015/16
11/141
Directions !in Cryptogra
Échanger une clé sans jamais New
se rencontrer
Invited
Paperde
+En 1976, Diffie, Hellman et Merkle publient le premier
schéma
d’échange de clés à l’aide de la notion de clé
publique
Whitfield
Diffiequ’ils
and Martin E. Hellm
énoncèrent.
Abstract Two kinds of contemporary developments in cryptography are examined. Widening applications of teleprocessing have given rise to a need for new types of cryptographic
systems, which minimize the need for secure key distribution
channels and supply the equivalent of a written signature. This
paper suggests ways to solve these currently open problems.
It also discusses how the theories of communication and computation are beginning to provide the tools to solve cryptographic
problems of long standing.
1 INTRODUCTION
We stand today on the brink of a revolution in cryptography.
The development of cheap digital hardware has freed it from
the design limitations of mechanical computing and brought
the cost of high grade cryptographic devices down to where
UPMC - Licence Info - Crypto - 2015/16
communications o
raphy to insure pri
communicating pa
one else. This is do
secure channel su
private conversatio
tance is a common
unrealistic to expe
long enough for ke
The cost and dela
is a major barrier
to large teleproces
Section III prop
information over p
mising the security
enciphering and d
and D, such that
co
12/141
Échanger une clé sans jamais se rencontrer !
Soit p un premier et g un élément de Z/pZ bien choisi. Ces deux
éléments sont connus de tous. Les entiers a et b doivent être tenus
secrets
+Nécessite deux transactions sur un canal non sécurisé pour
l’échange de la clé commune K.
UPMC - Licence Info - Crypto - 2015/16
12/141
Coût de la mise en pratique (cryptographie)
+En tout, les deux entités ont à calculer 4 exponentiations mod p.
En utilisant un algorithme d’exponentiation modulaire rapide (voir cours
précédent), le coût total dépend de la taille du module p.
Complexité échange de clé par Diffie-Hellman-Merkle
Si l’on souhaite échanger une clé de taille ` il faudra faire
O(4`3 )
opérations binaires.
UPMC - Licence Info - Crypto - 2015/16
13/141
Sécurité de cette échange (cryptanalyse)
Etant donné y = ex ∈ R
Il est facile de calculer x (il suffit de calculer un log dans R)
UPMC - Licence Info - Crypto - 2015/16
14/141
Sécurité de cette échange (cryptanalyse)
Etant donné 192 = gx mod 449 (g = 3 générateur du groupe cyclique)
Il est difficile de calculer x
UPMC - Licence Info - Crypto - 2015/16
14/141
Sécurité de cette échange (cryptanalyse)
Etant donné 192 = gx mod 449 (g = 3 générteur du groupe cyclique)
Il est difficile de calculer x
+Il s’agit du problème du calcul du logarithme discret (DLP).
UPMC - Licence Info - Crypto - 2015/16
14/141
Plan
3
Diffie-Helmann-Merkle
4
Le DLP en toute généralité
5
Résolution du DLP en toute généralité
6
DLP sur les corps finis
UPMC - Licence Info - Crypto - 2015/16
15/141
Le DLP : vision générale
Définition
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Notations
Pour g ∈ G et t ∈ N on notera l’opération d’exponentiation de g en t par
:
[t]g = g ◦ · · · ◦ g, t fois
On peut généraliser à t ∈ Z en posant [−t]g l’inverse de [t]g.
UPMC - Licence Info - Crypto - 2015/16
16/141
Le DLP : vision générale
Définition
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Notations

Pour g ∈ G et t ∈ N on notera l’opération d’exponentiation de g en t
par [t]g = g ◦ · · · ◦ g, t fois. Cette notations permet d’homogénéiser les
notations, par exemple :
Si (G, ×) on a [t]g = g × · · · × g = gt
Si (G, +) on a [t]g = g + · · · + g = t · g
UPMC - Licence Info - Crypto - 2015/16
16/141
Le DLP : vision générale
Définition
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Définition
Le logarithme discret en base g de h est défini par
k = logg (h) avec h = [k]g
UPMC - Licence Info - Crypto - 2015/16
16/141
Plan
3
Diffie-Helmann-Merkle
4
Le DLP en toute généralité
5
Résolution du DLP en toute généralité
6
DLP sur les corps finis
UPMC - Licence Info - Crypto - 2015/16
17/141
Brute force attack
Problématique
Étant donnés :
un groupe fini cyclique H = hgi dans lequel on peut calculer
facilement;
un élément h dans H.
On cherche un entier t tel que h = [t]g.
+On peut se limiter à t ∈ {1, . . . , #H}.
Recherche exhaustive
On testera 2log(#H) valeurs de t différentes.
 La complexité de résolution du DLP s’exprime en
fonction de la taille de #H (la taille en bit du
groupe H)
UPMC - Licence Info - Crypto - 2015/16
18/141
Exemples ou le DLP est facile
Groupe additif modulaire
Ici H = (Z/nZ, +) le groupe modulaire additif. On a H = hgi et donc
pgcd(g, n) = 1.
Groupe additif : h = [t]g = t · g mod n
Ici on peut calculer facilement logg (h).
Preuve de la résolution du DLP dans ce cas
1
pgcd(g, n) = 1 ⇒ on peut calculer g−1 mod n par Bézout
2
on retrouve t facilement : logg (h) = h · g−1 mod n
La complexité binaire de cette attaque est quadratique en la taille de n
(qui est bien la taille de #H).
+Pour résoudre facilement un DLP, on peut essayer de se ramener à
cet exemple.
UPMC - Licence Info - Crypto - 2015/16
19/141
Résolution du DLP par transfert additif
Transfert additif
Soit H le groupe cyclique choisi pour support au DLP. Il faut pour un tel
transfert:
Isomorphisme entre H et Z/|H|Z
qu’il soit explicite
et que l’on puisse calculer efficacement l’image/image inverse d’un
élément par ce dernier
Le DLP sera facile dans H si l’on connait un tel isomorphisme. (On
envoie le problème dans Z/nZ avec l’isomorphisme, on le résout grâce
à Bézout et on remonte le résultat dans H toujours grâce à
l’isomorphisme.)
UPMC - Licence Info - Crypto - 2015/16
20/141
Complexité générique
Définition
On appelle groupe générique (ou en boite noire) un groupe dont on ne
connaît pas la structure mais avec lequel on peut réaliser des calculs.
En particulier, si (H = hhi, ◦) et h ∈ H sont donnés en boite noire, tous
les calculs de la forme
[a]h ◦ [b]g
sont possibles et on peut tester les égalités.
Théorème [Shoup 97]
La
p résolution du DLP dans un groupe générique nécessite au moins
|H| opérations dans H
Existe-t-il un algorithme optimal dans le cas générique?
+Simplification : connaissance de n = |H|.
UPMC - Licence Info - Crypto - 2015/16
21/141
Baby-Step Giant-Step de Shanks : idée générale
Soit n l’ordre du groupe H = hgi et h ∈ H.
+l’entier t = logg (h) vérifie 1 < t < n.
√
Division euclidienne par s = b nc + 1;
t = q · s + r avec 0 6 q, r < s
Recherche exhaustive sur q et r d’une collision
h = [t]g = [q · s + r]g ⇒ h ◦ [−q · s]g = [r]g et h ◦ [−r]g = [q · s]g
UPMC - Licence Info - Crypto - 2015/16
22/141
BSGS : imagée dans (Z/77Z, +) avec g = 2 et h = 11
h
g
e
UPMC - Licence Info - Crypto - 2015/16
23/141
BSGS : imagée dans (Z/77Z, +) avec g = 2 et h = 11
h
8 7
6
5
4
3
2
1
g
e
UPMC - Licence Info - Crypto - 2015/16
23/141
BSGS : imagée dans (Z/77Z, +) avec g = 2 et h = 11
h
8 7
6
5
4
3
2
1
g
e
[−1 · s]g ◦ h
[−2 · s]g ◦ h
UPMC - Licence Info - Crypto - 2015/16
23/141
BSGS : imagée dans (Z/77Z, +) avec g = 2 et h = 11
[−4 · s]g ◦ h
h
8 7
6
[−3 · s]g ◦ h
5
4
3
2
1
g
e
[−1 · s]g ◦ h
UPMC - Licence Info - Crypto - 2015/16
23/141
BSGS : deux tableaux
Input : Le générateur g du groupe H d’ordre n et h ∈ H \ {e}.
Output : Un entier 0 < t < n tel que h = [t]g.
√
s : = b nc + 1 ;
f o r i : = 1 to s do
BS[i] : = [i]g ; / / Tableau de Baby−Steps
GS[i] : = [i]([−s]g) ◦ h ; / / Tableau de Giant−Steps
end f o r ;
/ / Recherche C o l l i s i o n
T : = S o r t ( BS c a t GS ) ;
f o r i : = 1 to s do
i f T[i] == T[i + 1] then break end i f ;
end f o r ;
r e t u r n s× Index ( T[i] , GS ) + Index ( T[i] , BS )
UPMC - Licence Info - Crypto - 2015/16
24/141
BSGS : table de hachage
Input : Le générateur g du groupe H d’ordre n et h ∈ H \ {e}.
Output : Un entier 0 < t < n tel que h = [t]g.
√
s : = b nc + 1 ;
f o r i : = 1 to s do
Hash[[i]g] : = i ; / / Table de hachage des Baby−Steps
end f o r ;
i := 0 ; γ := h ;
while t r u e do / / Giant−Steps
i f not ( Hash[γ] == NULL ) then
r e t u r n i × s+ Hash[γ] ;
else
i := i + 1
γ : = γ ◦ [−s]g
end i f
end while
UPMC - Licence Info - Crypto - 2015/16
25/141
BSGS : complexités
+Complexité donnée en fonction de log(#H) = log(n)
Deux tableaux vs Table de hachage
√
√
1
Complexité calcul : O( nlog( n)) = O(2 2 log(n) log(n)) vs
1
O(2 2 log(n) )
√
Complexité mémoire : O( n)
Remarques
Le premier algorithme générique de complexité optimale
√
Nécessite une place mémoire de taille n pour la table de
hachage
Nécessite la connaissance de n = |H| mais on peut s’en passer
Ils existent des variantes de cet algorithme qui permettent de
descendre la complexité en mémoire mais pas en calcul (rho de
Pollard en particulier)
UPMC - Licence Info - Crypto - 2015/16
26/141
Conclusion : complexité DLP groupe générique
+Le BSGS est optimal !
+De plus, on peut utiliser la décompositon de n pour résoudre encore
plus efficacement (attaque basée sur le CRT, voir plus loin).
Pohlig-Hellman
Dans le cas d’un groupe générique H d’ordre
= pe11 pe22 · · · pekk il est
P n√
possible de résoudre le DLP dans H en O( ei pi ) calculs dans G.
Corollaire important
Si l’on souhaite que le DLP soit difficile, il faut choisir un groupe H
d’ordre possédant au moins un très grand facteur premier.
UPMC - Licence Info - Crypto - 2015/16
27/141
Échange DH en pratique
Création du groupe support au DLP
1
2
3
4
5
# openssl genpkey -genparam -algorithm DH -out dhp.pem
.....................+........................+.......
....................................................+.
...
.+...........................................++*++*++*
Ce à quoi ressemble ce groupe ?
1
2
3
4
5
6
# cat dhp.pem
-----BEGIN DH PARAMETERS----MIGHAoGBALoEHOMliM6Wr/Yg9aJNbSCmEOms9K5cDmu/n3G51PXrwp+gD7T14F+A
as0LixXgOSWHNuoxRk0ZYXpfhq4okI+I3geGbiJ6qIgFDvFqx/2ujFwB9LmeKsrK
mOvvgxkwmlzeOyYaZ2sPlNHNxGRDNNmmxKXtKt2zWuJhd9eKqUa7AgEC
-----END DH PARAMETERS-----
UPMC - Licence Info - Crypto - 2015/16
28/141
Échange DH en pratique
Meilleur affichage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# openssl pkeyparam -in dhp.pem -text
-----BEGIN DH PARAMETERS----MIGHAoGBALoEHOMliM6Wr/Yg9aJNbSCmEOms9K5cDmu/n3G51PXrwp+gD7T14F+A
as0LixXgOSWHNuoxRk0ZYXpfhq4okI+I3geGbiJ6qIgFDvFqx/2ujFwB9LmeKsrK
mOvvgxkwmlzeOyYaZ2sPlNHNxGRDNNmmxKXtKt2zWuJhd9eKqUa7AgEC
-----END DH PARAMETERS----DH Parameters: (1024 bit)
prime:
00:ba:04:1c:e3:25:88:ce:96:af:f6:20:f5:a2:4d:
6d:20:a6:10:e9:ac:f4:ae:5c:0e:6b:bf:9f:71:b9:
d4:f5:eb:c2:9f:a0:0f:b4:f5:e0:5f:80:6a:cd:0b:
8b:15:e0:39:25:87:36:ea:31:46:4d:19:61:7a:5f:
86:ae:28:90:8f:88:de:07:86:6e:22:7a:a8:88:05:
0e:f1:6a:c7:fd:ae:8c:5c:01:f4:b9:9e:2a:ca:ca:
98:eb:ef:83:19:30:9a:5c:de:3b:26:1a:67:6b:0f:
94:d1:cd:c4:64:43:34:d9:a6:c4:a5:ed:2a:dd:b3:
5a:e2:61:77:d7:8a:a9:46:bb
generator: 2 (0x2)
UPMC - Licence Info - Crypto - 2015/16
29/141
Échange DH en pratique
Création des clés privées/publiques à partir de ce groupe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# openssl genpkey -paramfile dhp.pem -out dhkeyA.pem
# openssl pkey -in dhkeyA.pem -text -noout
DH Private-Key: (1024 bit)
private-key:
58:dc:d8:6d:ac:54:90:70:ba:0d:fb:19:07:07:ab:
19:ad:3c:fe:01:2e:45:42:2c:df:9a:1a:44:d7:70:
1c:6e:2c:70:ff:fc:ad:df:57:da:88:07:68:ed:c4:
8a:ad:0d:c7:62:b2:8e:26:fd:4e:43:96:23:89:ea:
29:de:29:55:8e:c0:a6:1f:c8:7f:6f:89:31:f9:c3:
71:11:e9:3b:04:d1:a9:71:24:a2:88:b6:57:a3:fe:
e8:8a:15:56:c9:a3:d9:0d:3a:62:d3:e3:f3:cd:a4:
d0:f0:ee:b3:81:91:c8:aa:6f:cd:4f:f0:9f:91:c2:
78:2e:4e:41:7f:b7:96:6d
public-key:
06:75:e8:cd:d2:6f:9f:b1:ea:1f:61:a0:df:99:d3:
d1:a8:a8:8b:e2:0b:5e:0a:15:cb:b7:24:f0:5d:67:
c7:b7:0e:aa:64:7c:c6:25:d0:a1:83:c4:85:ec:81:
c2:e0:3e:e7:bb:27:af:eb:cc:20:d0:f6:d2:d2:40:
c8:e5:30:3d:f4:52:2f:13:96:e8:64:88:8f:bc:cf:
34:e8:7d:02:8f:a0:93:bc:72:8e:a2:60:5b:48:ff:
98:dc:41:f1:a5:5e:22:77:c8:ca:3e:ea:12:45:a9:
b6:ba:2f:d6:16:12:ad:96:79:c3:f3:d4:87:10:53:
71:ab:88:e9:85:89:4d:05
UPMC - Licence Info - Crypto - 2015/16
30/141
Échange DH en pratique
Alice extrait sa clé publique pour l’envoyer à Bob
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# openssl pkey -in dhkeyA.pem -pubout -out dhpubA.pem
# openssl pkey -pubin -in dhpubA.pem -text
-----BEGIN PUBLIC KEY----MIIBIDCBlQYJKoZIhvcNAQMBMIGHAoGBALoEHOMliM6Wr/Yg9aJNbSCmEOms9K5c
Dmu/n3G51PXrwp+gD7T14F+Aas0LixXgOSWHNuoxRk0ZYXpfhq4okI+I3geGbiJ6
qIgFDvFqx/2ujFwB9LmeKsrKmOvvgxkwmlzeOyYaZ2sPlNHNxGRDNNmmxKXtKt2z
WuJhd9eKqUa7AgECA4GFAAKBgQC27+c7AdgF/cGLbQJaLp1Hv6uZSy/t/MHm5zNy
v1fDZY0xYKf4gE+G4d00bPgDC3OshOwAHVKDVBLIRdBPv0MgKpGiabaajHT4b8Wn
q7DBMetqhaIvAEdNPhQ+1gfFmwSiun4eRYIUd/wdSc3WW29GkqHQCh1hQu/TXQmJ
CkBhDQ==
-----END PUBLIC KEY----DH Public-Key: (1024 bit)
public-key:
00:b6:ef:e7:3b:01:d8:05:fd:c1:8b:6d:02:5a:2e:
9d:47:bf:ab:99:4b:2f:ed:fc:c1:e6:e7:33:72:bf:
57:c3:65:8d:31:60:a7:f8:80:4f:86:e1:dd:34:6c:
f8:03:0b:73:ac:84:ec:00:1d:52:83:54:12:c8:45:
d0:4f:bf:43:20:2a:91:a2:69:b6:9a:8c:74:f8:6f:
c5:a7:ab:b0:c1:31:eb:6a:85:a2:2f:00:47:4d:3e:
14:3e:d6:07:c5:9b:04:a2:ba:7e:1e:45:82:14:77:
fc:1d:49:cd:d6:5b:6f:46:92:a1:d0:0a:1d:61:42:
ef:d3:5d:09:89:0a:40:61:0d
prime:
UPMC - Licence Info - Crypto - 2015/16
31/141
Échange DH en pratique
Alice construit la clé partagée à partir de la clé publique envoyée par
Bob
1
2
3
4
5
6
7
8
9
10
11
# openssl pkeyutl -derive -inkey dhkeyA.pem -peerkey dhpubB.pem
-out secret.bin
# xxd secret.bin
0000000: 5767 46d2 bc4d 2081 4a85 c570 94fb 9af0 WgF..M .J..p....
0000010: e528 dc62 3b63 80a8 ab27 5b2f e2a1 6e72 .(.b;c...’[/..nr
0000020: 0095 b3ed b2e0 c91b c455 25c1 7193 67e6 .........U%.q.g.
0000030: e0c4 7f1d 0272 eec3 3227 6df4 82ab 70f9 .....r..2’m...p.
0000040: 4ada 3e72 16b4 3506 6b30 51c3 b56c ea96 J.>r..5.k0Q..l..
0000050: 7554 790f acb0 f045 4ac5 f6e5 356a 891c uTy....EJ...5j..
0000060: 68c9 1b89 fbea 293d 8847 b586 a3da d95f h.....)=.G....._
0000070: b451 1a8e caa3 c1c4 6a2f 74b3 ebf1 7955 .Q......j/t...yU
Bob fait de même de son côté et il doit obtenir la même clé!
UPMC - Licence Info - Crypto - 2015/16
32/141
Plan
3
Diffie-Helmann-Merkle
4
Le DLP en toute généralité
5
Résolution du DLP en toute généralité
6
DLP sur les corps finis
UPMC - Licence Info - Crypto - 2015/16
33/141
Rappel DLP
DLP
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Quelles sont les bons choix de groupes G ? (i.e.
+ ceux qui assurent une certaine sécurité et suffisamment d’efficacité).
UPMC - Licence Info - Crypto - 2015/16
34/141
Corps finis : le support classique pour DLP
DLP
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Théorème [Shoup 97]
La
p résolution du DLP dans un groupe générique nécessite au moins
|H| opérations dans H es
Instanciation
En pratique le groupe G doit être spécifié (instancié).

En particulier le résultat ne plus s’appliquer directement. Mais on
souhaite que le groupe utilisé ait la même propriété qu’un groupe
générique
en terme de sécurité.
UPMC - Licence Info - Crypto - 2015/16
35/141
Corps premiers et corps finis : Définitions
Corps premiers
D’après l’étude que nous avons faite sur les quotients F = Z/NZ; nous
savons que lorsque N est premier alors F est un corps.
On les appelle les corps premiers et on les note Fp = Z/pZ (tous les
corps finis de cardinal un nombre premier p sont isomorphes à Fp ).
Corps Finis
Nous verrons, plus loin dans le cours, qu’il est toujours possible de
construire des corps Fq de cardinal fini q si et seulement si q est une
puissance q = pk d’un nombre premier p. Ils sont construits à partir des
corps premiers.
L’entier p est appelé caractéristique du corps fini Fq .
+Dans tout ce qui suit, on pourra, dans une première lecture, on peut
remplacer Fpk par Fp (k = 1) pour faciliter la compréhension.
UPMC - Licence Info - Crypto - 2015/16
36/141
Corps premiers et corps finis : Propriétés
Groupe multiplicatif d’un corps fini
L’ensemble F×
des inversibles de Fpk muni de la multiplication est un
pk
groupe. Il est d’ordre pk − 1 (seul 0 n’est pas inversible dans un corps).
Groupe cyclique et son générateur
Le groupe F×
est cyclique. Il existe donc α ∈ F×
tel que αi 6= 1 pour
pk
pk
tout 0 < i < pk − 1 et vérifiant
k
hαi = {1 = α0 , α1 , α2 , . . . , αp −1 = 1} = F×
.
pk
Un tel élément α est appelé élément primitif du corps Fpk .
UPMC - Licence Info - Crypto - 2015/16
37/141
Éléments primitifs : Propriétés
Fermat et Euler
Soit p un entier premier. On a ap−1 = 1 mod p pour tout entier a non
nul. Et plus généralement aϕ(n) = 1 mod n pour tout a premier avec un
entier quelconque n.
Généralisation (Corollaire du théorème de Lagrange)
Pour tout élément a d’un groupe G de cardinal m (appelé aussi ordre de
G) et d’élément neutre e. Comme l’ordre de a est un diviseur de m, on a
[m]a = e
+À partir de ce résultat on obtient facilement ceux de Fermat et Euler
UPMC - Licence Info - Crypto - 2015/16
38/141
Éléments primitifs : Propriétés
Généralisation (Corollaire du théorème de Lagrange)
Pour tout élément a d’un groupe G de cardinal m (appelé aussi ordre de
G) et d’élément neutre e. Comme l’ordre de a est un diviseur de m, on a
[m]a = e
Corollaires Lagrange (voir TD) : propriétés élément primitif
Soit a un élément non nul d’un corps fini Fpk
Si a n’est pas primitif alors il existe d un diviseur de pk − 1 tel que
ad = 1
Si a est primitif il en est de même pour ai avec i premier avec
pk − 1.
Il existe donc ϕ(pk − 1) éléments primitifs distincts dans Fpk
UPMC - Licence Info - Crypto - 2015/16
38/141
Corps finis et DLP
DLP sur Fpk
G est le groupe multiplicatif d’un corps fini Fpk .
G = F×
est cyclique (on peut donc prendre G = H).
pk
Exponentiation modulaire efficace (voir cours précédent et
TD/TME)
Il n’existe pas d’algorithme de complexité polynomiale pour
résoudre ce DLP
Transfert additif et grand facteur premier
1
2
Isomorphisme φ : F×
→ Z/(pk − 1)Z. Mais pas d’algo connu pour
pk
l’expliciter : aussi difficile que le DLP.
pk − 1 doit posséder un grand facteur premier (attaque par CRT).
UPMC - Licence Info - Crypto - 2015/16
39/141
Corps finis et DLP : BSGS de Shanks
p = 809 on veut calculer log3 525. Ici H ' Z/(p − 1)Z et donc s = 29.
Baby-steps: (j, 525 × (3j )−1 mod p) (j = 0, . . . , 28):
( 0 , 525 ) ( 1 , 175 ) ( 2 , 328 ) ( 3 , 379 ) ( 4 , 396 )
( 5 , 132 ) ( 6 , 44 ) ( 7 , 554 ) ( 8 , 724 ) ( 9 , 511 )
( 10 , 440 ) ( 11 , 686 ) ( 12 , 768 ) ( 13 , 256 ) ( 14 , 355 )
( 15 , 388 ) ( 16 , 399 ) ( 17 , 133 ) ( 18 , 314 ) ( 19 , 644 )
( 20 , 754 ) ( 21 , 521 ) ( 22 , 713 ) ( 23 , 777 ) ( 24 , 259 )
( 25 , 356 ) ( 26 , 658 ) ( 27 , 489 ) ( 28 , 163 )
Giant-steps: (j, 3j∗s mod p) (j = 0, . . . , 28):
( 0 , 1 ) ( 1 , 99 ) ( 2 , 93 ) ( 3 , 308 ) ( 4 , 559 )
( 5 , 329 ) ( 6 , 211 ) ( 7 , 664 ) ( 8 , 207 ) ( 9 , 268 )
( 10 , 644 ) ( 11 , 654 ) ( 12 , 26 ) ( 13 , 147 ) ( 14 , 800 )
( 15 , 727 ) ( 16 , 781 ) ( 17 , 464 ) ( 18 , 632 ) ( 19 , 275 )
( 20 , 528 ) ( 21 , 496 ) ( 22 , 564 ) ( 23 , 15 ) ( 24 , 676 )
( 25 , 586 ) ( 26 , 575 ) ( 27 , 295 ) ( 28 , 81 )
+t = s × 10 + 19 = 309
UPMC - Licence Info - Crypto - 2015/16
40/141
Corps finis et DLP : Index Calculus
+Algorithme le plus efficace pour résoudre le DLP dans les corps finis
(sous exponentiel et moins gourmand en mémoire).
Calcul d’indice
Décomposition selon une base finie de facteurs premiers
Recherche de relations à support dans cette base
Résolution de systèmes linéaires gigantesques

2048 bits est le minimum pour un bon niveau de sécurité du DLP sur
les corps finis premiers.

Les corps de petites caractéristiques sont faibles depuis 2013 (voir
cours sur extensions corps finis).
+Étudié dans la spécialité SFPN du Master Info UPMC.
UPMC - Licence Info - Crypto - 2015/16
41/141
Conclusion : DLP sur les corps finis
Première utilisation de la cryptographie asymétrique pour
résoudre le problème de l’échange de clé
La sécurité repose sur le problème du logarithme discret
problème difficile génériquement et qui reste suffisamment difficile
lorsqu’il est instancié à l’aide de corps finis bien choisis (meilleure
attaque de complexité sous-exponentielle)

Ça n’est pas parce que le problème (maths) sous-jacent est difficile
que la sécurité est complètement assurée. Notamment il faut analyser
les failles possibles du protocole utilisant la brique cryptographique !
UPMC - Licence Info - Crypto - 2015/16
42/141
Attaque de l’échange de clé Diffie-Hellman-Merkle
UPMC - Licence Info - Crypto - 2015/16
43/141
Attaque de l’échange de clé Diffie-Hellman-Merkle
UPMC - Licence Info - Crypto - 2015/16
43/141
Attaque de l’échange de clé Diffie-Hellman-Merkle
UPMC - Licence Info - Crypto - 2015/16
43/141
Attaque de l’échange de clé Diffie-Hellman-Merkle
Attaque Man In the Middle
 Comment authentifier son interlocuteur au moment du premier échange?
UPMC - Licence Info - Crypto - 2015/16
43/141
Attaque de l’échange de clé Diffie-Hellman-Merkle
 Comment authentifier son interlocuteur au moment du premier échange?
Autre solution ?
UPMC - Licence Info - Crypto - 2015/16
43/141
Part III
Chiffrement à Clé Publique
UPMC - Licence Info - Crypto - 2015/16
44/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
45/141
Idée Générale : La trappe de Diffie-Hellman-Merkle
+Outre le problème de l’échange des clés privées, Le nombre
croissant d’échanges augmente le nombre de clés secrètes
nécessaires ce qui rajoute un nouveau problème.
+En 1975 Diffie, Hellman et Merkle proposent les grandes lignes de
leur idée théorique pour éviter ce problème.
Définition d’une fonction avec trappe
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, pour tout y ∈ Im(F). le calcul de x ∈ X tel que
F(x) = y réalisable en temps polynomial.
Clé publique : F permet de chiffrer
Clé secrète : la trappe permet de déchiffrer
UPMC - Licence Info - Crypto - 2015/16
46/141
Premier exemple de chiffrement à clé publique
ElGamal 1985
Ce cryptosystème est basé sur le DLP.
L’espace des messages est représenté par le groupe G, ◦.
Alice tire aléatoirement k et calcule h = [k]g
Alice publie H = hgi et h et conserve secrètement k
Chiffrement : Pour envoyer x ∈ G à Alice, Bob choisit
t ∈ {1, . . . , |H|} aléatoirement et ne le publie pas. Il calcule
y1 = [t]g et y2 = x ◦ [t]h
et envoie le couple (y1 , y2 ) à Alice.
Déchiffrement : Alice calcule y2 ◦ [−1]([k]y1 ) et retrouve x.
+Le DLP est supposé difficile dans G, ◦
UPMC - Licence Info - Crypto - 2015/16
47/141
Equivalence DLP, Diffie-Hellman-Merkle, ElGamal ?
Attention !
Le DLP est, a priori, plus fort que les problèmes de
Diffie-Hellman-Merkle et ElGamal.
La résolution du DLP entraine la résolution de
Diffie-Hellman-Merkle
La résolution du DLP entraine la résolution de ElGamal
Aucune des deux réciproques n’est connue !
+Il existe peut être des algorithmes qui résolvent plus efficacement
Diffie-Hellman-Merkle et/ou ElGamal que le DLP !
UPMC - Licence Info - Crypto - 2015/16
48/141
ElGamal sur les corps finis
Exemple d’échange ElGamal :
Alice choisit G = H = Z/pZ× avec p = 2579 et g = 2 qu’elle publie. Elle
garde secret k = 765 et publie aussi
β = 2765
mod 2579 = 949
Bob veut transmettre x = 1299 à Alice. Il choisit t aléatoirement t = 853
et calcule
y1 = 2853
mod p = 435 puis y2 = 1299 × (949853 ) mod p = 2396
et les envoie à Alice. Elle reçoit donc (435, 2396) et calcule alors :
x = 2396 × (435765 )−1
mod 2579 = 1299
pour retrouver le message de Bob !
UPMC - Licence Info - Crypto - 2015/16
49/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
50/141
Rivest, Shamir, Adleman
+1977 première instance d’un cryptosystème à clé publique : RSA.
UPMC - Licence Info - Crypto - 2015/16
51/141
Rivest, Shamir, Adleman
UPMC - Licence Info - Crypto - 2015/16
51/141
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. Mais ATTENTION ce ne sont pas des problèmes
polynomialement équivalents.
UPMC - Licence Info - Crypto - 2015/16
51/141
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
F(n,e) : Z/nZ → Z/nZ définie par x 7→ xe mod n
F est bien à sens unique, difficulté basée sur le calcul de la racine
e-ieme modulaire.
La trappe est la connaissance de d (ou de manière équivalente p
et q).
+on chiffre en faisant xe mod n on déchiffre en calculant yd mod n
Preuve : On a |Z/nZ× | = ϕ(n) = (p − 1)(q − 1) ⇒ ed = 1 + k × ϕ(n)...

Les messages qui ne sont pas inversibles mod n sont dangereux!
UPMC - Licence Info - Crypto - 2015/16
51/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
52/141
Signer un message / Authentification
+La signature permet d’authentifier l’expéditeur d’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.
+Les problèmes RSA et DLP peuvent être utilisés à cet usage.
UPMC - Licence Info - Crypto - 2015/16
53/141
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

C’est l’acte de chiffrer qui devient la brique secrète dans le cadre de
la signature.
UPMC - Licence Info - Crypto - 2015/16
54/141
Fonctions de hachage
Problème signature RSA : la signature est de la taille du message !
Fonction de hachage cryptographique
Une fonction de {0, 1}∗ dans [0, 2t − 1] (avec t = 160, 256, 512 etc) est
dite de hachage si elle vérifie
difficile à inverser (construire un message ayant une signature
donnée)
difficile de reconstruire un second message de même signature
(seconde préimage)
la probabilité de trouver deux messages de même signature est
très faible (collision)
Exemples : MD5, SHA1, SHA2 (SHA-256, SHA-512), SHA3,...
+Permet de vérifier l’intégrité d’un fichier (paquets linux par exemple)
+Plutôt que signer un message, on signe son empreinte après
application d’une fonction de hachage.
UPMC - Licence Info - Crypto - 2015/16
55/141
Échange de clé et Authentification
 Comment authentifier son interlocuteur au moment du premier échange?
Autre solution ?
UPMC - Licence Info - Crypto - 2015/16
56/141
Échange de clé et Authentification
 Comment authentifier son interlocuteur au moment du premier échange?
Autre solution ?
Signer les clés publiques ?
UPMC - Licence Info - Crypto - 2015/16
56/141
Échange de clé et Authentification
 Comment authentifier son interlocuteur au moment du premier échange?
Autre solution ?
Repousse le problème à l’authentification des clés publiques qui
permettent de signer !?!!?
UPMC - Licence Info - Crypto - 2015/16
56/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
57/141
RSA : implémentation chiffrement/vérif. signature
+Exponentation modulaire
Square and Multpily
Basé sur l’écriture binaire de l’exposant e =
e
x =x
Pl−1
i=0
ei 2i
=
l−1
Y
Pl−1
i=0 ei 2
i:
i
x ei 2
i=0
+On réduit la complexité de l’exponentiation modulo n à O(log3 (n))
(voir cours précédent).
UPMC - Licence Info - Crypto - 2015/16
58/141
RSA : implémentation déchiffrement/signature
+dans ce cas on connaît p et q, idée couper les calculs en deux !
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
UPMC - Licence Info - Crypto - 2015/16
59/141
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/m1 A × A/m2 A ' A/(m1 m2 )A
Démonstration existentielle (à lire chez vous) :
Le morphisme d’anneau
φ : A −→ A/m1 A × A/m2 A
e 7−→ (e
mod m1 , e
mod m2 )
est surjectif.
UPMC - Licence Info - Crypto - 2015/16
60/141
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/m1 A × A/m2 A ' A/(m1 m2 )A
Démonstration existentielle (à lire chez vous) :
Le noyau de φ est donné par
{e ∈ A tq e = 0
mod m2 et e = 0
mod m2 }
ainsi le noyau est l’ensemble des multiples de m1 et m2 . Comme
pgcd(m1 , m2 ) = 1 on obtient le résultat.
UPMC - Licence Info - Crypto - 2015/16
60/141
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/m1 A × A/m2 A ' A/(m1 m2 )A
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)
UPMC - Licence Info - Crypto - 2015/16
60/141
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/m1 A × A/m2 A ' A/(m1 m2 )A
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
UPMC - Licence Info - Crypto - 2015/16
60/141
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/m1 A × A/m2 A ' A/(m1 m2 )A
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
e = e1 vm2 + e2 um1
UPMC - Licence Info - Crypto - 2015/16
mod M
60/141
Théorème chinois des restes : algorithme général
On applique récurssivement le procédé de résolution sur les équations
du système. Il faut que pgcd(mi , mj ) = 1 pour i 6= j.

x = e1



 x = e2
..

.



x = ek
CRT
mod m1
mod m2
mod mk
UPMC - Licence Info - Crypto - 2015/16
!

x = c mod M = m1 m2



 x = e3 mod m3
..

.



x = ek mod mk
61/141
Théorème chinois des restes : exemple sur Z
Soit à résoudre le système

 x = 2
x = 3

x = 8
mod 3
mod 7
mod 19
Les entiers 3, 7 et 19 sont premiers deux à deux. CRT possible.
Initialisation :
Calculs :
c←2
c ← c × u × mi + ei × v × M
M←3
M ← mi × M
c ← c mod M
avec umi + vM = 1 (relation de Bézout):
i
1
2
3
ei
mi
u
v
3
8
7
19
1
10
−2
−9
c
2
2 × 1 × 7 + 3 × −2 × 3 = −4
17 × 19 × 10 + 8 × −9 × 21 = 1718
M
3
7 × 3 = 21
19 × 21 = 399
c mod M
17
122
Les solutions sont de la forme 122 + 399k pour k ∈ Z.
UPMC - Licence Info - Crypto - 2015/16
62/141
CRT et RSA avec p et q de même taille
Lors du déchiffrement, on connaît p et q et l’on doit calculer
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
Z/nZ ' Z/pZ × Z/qZ
UPMC - Licence Info - Crypto - 2015/16
63/141
CRT et RSA avec p et q de même taille
Mais d’après le CRT on a
Z/nZ ' Z/pZ × Z/qZ
On peut donc faire les calculs à droite :
xp = yd
mod p = yd
mod (p−1)
mod p et xq = yd
mod (q−1)
mod q
et on reconstruit la solution modulo n :
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 !
UPMC - Licence Info - Crypto - 2015/16
63/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
64/141
Analyse des Cryptosystèmes
Pourquoi la cryptanalyse ?
(rappel)
Valider la sécurité des cryptosystèmes
Établir des standards
Retirer de la circulation des cryptosystèmes/paramètres peu sûrs
Comment ?
Math./Algo. où l’on cherche à "casser " les mathématiques
sous-jacentes (algorithmique, complexité)
Protocole où l’on cherche une faille dans l’utilisation d’un
cryptosystème en pratique
Canaux auxiliaires = Side Channels où l’on cherche à casser le
cryptosystème par des biais physiques
UPMC - Licence Info - Crypto - 2015/16
65/141
Rivest, Shamir, Adleman (RSA)
Rappel
RSA
Soient p et q deux nombres premiers et n = pq et deux entiers e, d tels
que ed = 1 mod ϕ(n). L’application F(n,e) : Z/nZ → Z/nZ qui à un
élément x fait correspondre xe mod n.
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
UPMC - Licence Info - Crypto - 2015/16
66/141
Casser complètement RSA
Problème RSA
Étant donné un entier RSA n = pq (p < q < 2p) on demande de
retrouver la clé secrète d

Ce problème est plus difficile que celui où l’on demande de
décrypter un message chiffré donné. Ici la résolution de ce problème
permet de décrypter n’importe quel message chiffré.
UPMC - Licence Info - Crypto - 2015/16
67/141
Factorisation et RSA
+n = pq avec p et q deux premiers distincts.
Lemme
Si l’on connaît la factorisation de n alors on casse complètement RSA.
Preuve
À partir de n = pq on peut calculer ϕ(n) = (p − 1)(q − 1). À l’aide de
l’algorithme d’Euclide étendue (complexité polynomiale) on calcule
facilement une relation de Bézout entre e et ϕ(n).
On retrouve alors l’inverse d de e modulo ϕ(n).
+On peut montrer la réciproque de manière probabiliste.

Il est peut être possible de décrypter un message chiffré donné
sans attaquer la clé secrète d ou la factorisation de n, ceci est une
question ouverte !
UPMC - Licence Info - Crypto - 2015/16
68/141
Factorisation : Fermat 160?-1665
+n = pq avec p et q deux premiers de même taille p < q < 2p.
Lemme
Si (x, y) est un couple d’entiers vérifiant
x2 − y2 = n alors n = (x − y)(x + y).
+Les facteur ne doivent pas être triviaux !
Fermat
√
Il testait les entiers x = (b nc + i) pour i = 1, 2, . . . jusqu’à ce que x2 − n
soit un carré parfait. Il développa une méthode pour tester si un entier
est un carré parfait basée sur des calculs modulaires ! (voir TD)
+La complexité reste exponentielle mais plus rapide que tester
brutalement si les facteurs p et q sont très proches l’un de l’autre.
UPMC - Licence Info - Crypto - 2015/16
69/141
Crible quadratique et successeurs
Les algorithmes de factorisation actuels sont de complexité
sous-exponentielle mais restent inspirés par celle de Fermat !
1
Pomerance 1981 : Quadratic Sieve elog 2
1
n log log 2 n .
1
Pomerance, Lenstra, etc 1990’s : Alg. Sieve elog 3
2
n log log 3 n .
+Record mondiale en 2011, l’humanité est capable de factoriser des
entiers RSA de taille 768bits à l’aide du crible algébrique.
UPMC - Licence Info - Crypto - 2015/16
70/141
Conclusion : factorisation et RSA
+La factorisation reste un problème difficile, le meilleur algo connu est
de complexité sous-exponentielle !
Peut-on réduire cette complexité de calcul dans le
cadre d’une instance RSA mal choisie ?
UPMC - Licence Info - Crypto - 2015/16
71/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
72/141
Hypothèses de l’attaque
Problème RSA
Étant donné un entier RSA n = pq (p < q < 2p) on demande de
retrouver la clé secrète d
Question de départ
Si le designer choisit une petite clé privée d (exposant de déchiffrement), pour des soucis d’efficacité par exemple, le problème RSA devient-il
plus facile à résoudre ?
+Peut-on en déduire un algorithme de résolution du problème RSA de
complexité polynomiale lorsque d est suffisamment petit ?
+la clé secrète d est toujours de taille au moins 100 bits pour éviter
une attaque force brute, mais est-ce suffisant ?
+Dans les années 1980 cette hypothèse (petit exposant) était
vraisemblable car les circuits intégrés étaient bien moins efficaces
qu’aujourd’hui.
UPMC - Licence Info - Crypto - 2015/16
73/141
Ingrédients théoriques
+Approximation diophantienne : trouver efficacement un rationnel
approchant un nombre réel donné
+Fractions continues
a0 +
UPMC - Licence Info - Crypto - 2015/16
1
a1 +
1
a2 +
1
1
a3 + ...
74/141
Fractions continues
Conventions :
1
0
= ∞ et
1
∞
=0
Représentation
Pour tout réel α, il existe une suite d’entiers naturels (ai )i>1 tel que α
puisse se réécrire sous la forme
a0 +
1
a1 +
1
a2 +
1
1
a3 + ...
avec a0 = bαc
Notations
On dénote a0 +
1
a1 +
1
a2 +
généralement par [a0 , a1 , a2 , a3 , . . .]
1
1
a3 + ...
UPMC - Licence Info - Crypto - 2015/16
75/141
Fractions continues
Conventions :
1
0
= ∞ et
1
∞
=0
Notations
On dénote a0 +
1
a1 +
1
a2 +
généralement par [a0 , a1 , a2 , a3 , . . .]
1
1
a3 + ...
Définition constructive
Si α = [a0 , a1 , a2 , a3 , . . .] alors α = a0 +
1
[a1 ,a2 ,a3 ,...] .
+Lorsque ∃k tq ∀i > k, ai = 0 on note [a0 , a1 , . . . , ak ]
UPMC - Licence Info - Crypto - 2015/16
75/141
Fractions continues et rationnels
Proposition
Soit α un réel. On a l’équivalence qui suit
α ∈ Q ⇔ ∃k tq α = [a0 , a1 , . . . , ak ]
Définition
Soit α = [a0 , a1 , a2 , . . . ] un réel. La suite de rationnels ([a0 , . . . , ak ])k>0
est appelée la suite des convergents (ou réduites) de α.
+On a [a0 , a1 , . . . , ak ]−−−−→ α
k→∞
+les convergents sont des approximations rationnelles de α
UPMC - Licence Info - Crypto - 2015/16
76/141
Fractions continues : exemples
30
13 = [2, 3, 4]
√
1+ 5
= [1, 1, 1. . . .]
2
π ' [3, 7, 15, 1, 192]
UPMC - Licence Info - Crypto - 2015/16
77/141
Fractions continues : rationnels et Euclide
Proposition
Soit α = ab un rationnel donné sous sa forme réduite. Une fraction
continue (finie) [a0 , a1 , . . . , an ] représentant α peut être calculée à l’aide
de l’algorithme d’Euclide.
+Cette fraction continue est la plus courte possible.
La suite des quotients qi calculés lors de l’algorithme d’Euclide avec pour entrée a et b fournit la représentation ab =
[q0 , q1 , . . . , qn ] (on fixera qi > 0 pour i > 1)
Corollaire
Une représentation en fraction continue d’un rationnel
calculée en temps
O(log2 (max(|a|, |b|))
UPMC - Licence Info - Crypto - 2015/16
a
b
peut être
78/141
Fractions continues : rationnels et Euclide étendu
Proposition
Soit α = ab un rationnel donné sous sa forme réduite. Les fractions
réduites ndkk représentant les convergents successifs [a0 , a1 , . . . , ak ] sont
toutes calculées au cours d’un algorithme du type Euclide étendu avec
a et b pour entrée.
On a n0 = a0 , d0 = 1, n1 = a0 a1 + 1, d1 = a1 et pour i > 1
ni+1 di+1
ai 1
ni
di
=
ni
di
1 0
ni−1 di−1
Corollaire
Une représentation en fraction réduite de tous les convergents d’un
rationnel ab peuvent être calculés en temps
O(log2 (max(|a|, |b|))
UPMC - Licence Info - Crypto - 2015/16
79/141
Fractions continues : application fondamentale
Soit à calculer une approximation de α une solution du polynôme
x2 − 5x − 1. On a α = 5 + α1 et en appliquant récursivement cette
relation on obtient
α = [5, 5, 5, . . .]
Cette fraction continue est périodique à partir d’un certain rang (on
note alors [5]). La suite de ses convergents fournit des approximations
de α (l’erreur diminuant au fur et à mesure que k augmente). Plus
généralement on a le résultat suivant (Lagrange, Gauss, Legendre)
Proposition
Une fraction continue représentant un réel α est périodique à partir
d’un certain rang k (i.e. α = [a0 , . . . , ak−1 , ak , . . . , ak+` ] ssi α est racine
d’un polynôme de degré 2 à coefficients entiers.
+On peut utiliser le même genre de résultat pour calculer des
approximations de racine carrée d’entiers.
UPMC - Licence Info - Crypto - 2015/16
80/141
Fractions continues : théorème fondamentale
Théorème de Legendre (1752-1834)
Soit α un réel et un couple d’entiers (a, b)
premiers entre eux et tel que b > 0. Si
l’inégalité
a
1
|α − | < 2
b
2b
a
est vérifiée alors b est la représentation sous
forme de fraction réduite d’un convergent de α.
UPMC - Licence Info - Crypto - 2015/16
81/141
Du théorème de Legendre à l’attaque de Wiener
+ϕ(n) vérifie, pour un certain entier k > 0 premier avec d, l’égalité
ed − kϕ(n) = 1
en divisant par d et ϕ(n) on obtient
e
k
1
− =
ϕ(n) d
dϕ(n)
si 2d < ϕ(n) alors on a
e
k 1 1
ϕ(n) − d = dϕ(n) < 2d2
e
+ dk est donc un convergent de α = ϕ(n)
. Si α est connu, en calculant
les convergents successifs de α on retrouvera d. Problème, ϕ(N) est a
priori inconnue ! (sa connaissance suffit pour factoriser n).
+Idée, remplacer ϕ(n) par une valeur connue proche : n
UPMC - Licence Info - Crypto - 2015/16
82/141
Attaque de Wiener : approximation de clés secrètes
+On remplace ϕ(n) par n et la relation précédente devient
e
k
ed − kn
ed − kϕ(n) − kn + kϕ(n)
1 − k(n − ϕ(n))
− =
=
=
n d
dn
dn
dn
√
Comme p < q < 2p et n = pq on a n − ϕ(n) = p + q − 1 < 3 n. Si
e < ϕ(n) (c’est a priori le cas) alors k < d et on en déduit
√
e
k(n − ϕ(n)) − 1 3k n
k
3k
3
− =
<
= √ <√
n d dn
dn
d n
n
+Pour que les hypothèses du Théorème de Legendre soient vérifiées
il suffit que √3n < 2d12 c’est-à-dire
1 1
d < √ n4
6
UPMC - Licence Info - Crypto - 2015/16
83/141
Attaque de Wiener : résultat principal
Théorème de Wiener
Soit n = pq un entier RSA avec p < q < 2p et (e, d) vérifiant ed = 1
mod ϕ(n). Si l’exposant de déchiffrement d (clé secrète) vérifie
1 1
d < √ n4
6
alors on peut casser totalement RSA avec un algorithme de complexité
polynomiale en la taille de cette clé secrète d.
+Par exemple si n fait 1024 bits et d moins de 256 bits, cette attaque
fonctionne (et pas la recherche exhaustive!)
UPMC - Licence Info - Crypto - 2015/16
84/141
Attaque de Wiener : démonstration constructive
1
Soit c le chiffré d’un message aléatoire m : c = me mod n
2
On calcule les convergents ( ndii )ti=0 de
3
On teste les di jusqu’à obtenir cdi = m mod n
e
n
(on a t = O(log(n)))
On a au plus t = O(log(n)) tour de boucle à faire.
Comme le coût total de toutes les opérations dans une boucle est
polynomial en log(n) on a bien un algorithme polynomial en la taille de
la clé d (puisque log(d) = O(log(n)))
UPMC - Licence Info - Crypto - 2015/16
85/141
Exemple
Soit le problème RSA avec (n = 160523347, e = 60728973).
On chiffre un texte pris au hasard, ici m = 313. On a
c = 31360728973
mod 160523347 = 75454098
qui nous servira à tester les candidats pour d.
Première étape: On calcule la fraction continue de ne :
e
= [0, 2, 1, 1, 1, 4, 12, 102, 1, 1, 2, 3, 2, 2, 36]
n
Seconde étape: On teste les convergents successifs. On s’aperçoit que le
sixième permet de résoudre ce problème RSA. En effet,
14
[0, 2, 1, 1, 1, 4] =
.
37
k
d
Testons si 14
mod n. On a
37 est bien égal à d en calculant c
7545409837
mod 160523347 = 313,
donc on a bien retrouvé la clé secrète d.
+En pratique on calcule directement les convergents successifs
UPMC - Licence Info - Crypto - 2015/16
86/141
Tester en Sage
On vous demandera de coder cette attaque dans un langage de bas
niveau (Python ou mieux C+GMP).
Vous pouvez dans un premier temps écrire une version haut niveau en
Sage pour vérifier vos programmes.
RSA
04/03/13
RSA -- Sage
n=160523347
e=60728973
alpha=e/n
alpha
60728973/160523347
cv=convergents(alpha)
cv
[0, 1/2, 1/3, 2/5, 3/8, 14/37, 171/452, 17456/46141, 17627/46593,
35083/92734, 87793/232061, 298462/788917, 684717/1809895,
1667896/4408707, 60728973/160523347]
m=313
c=pow(m,e,n)
c
75454098
for f in cv:
d=denominator(f)
if (pow(c,d,n) == m):
break
print d
37
UPMC - Licence Info - Crypto - 2015/16
87/141
Conclusion
Paramètres de RSA mal choisis ⇒ sécuritée n’est plus assurée !
+Il faut absolument suivre les recommandations des instituts
gouvernementaux
+Pour un attaquant, il faut toujours commencer par cette attaque
simple (au cas où !)
UPMC - Licence Info - Crypto - 2015/16
88/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
89/141
Cryptanalyse Opérationnelle de RSA
+Différents types de canaux auxiliaires
1
Social Engineering
2
Macroscopique
3
Microscopique
UPMC - Licence Info - Crypto - 2015/16
90/141
Social Engineering
+Repose sur les faiblesses humaines !
Faiblesse des mots de passe (nom de l’animal famillier, date
d’anniversaire ...)
Interrogatoires détournés
Taupe
Lecture derrière l’épaule
Hameçonnage
etc.
+Attaque la plus utilisée !
+Contremesure : éducation à la sécurité.
+Les mathématiques ne peuvent rien faire ici !
UPMC - Licence Info - Crypto - 2015/16
91/141
Canaux Macroscopique
+Repose sur les évaporations d’informations obtenues par
phénomènes physiques.
Emmissions radio des écrans (CRT)
Claviers mouchards
Ecoute à haute portée
...
+Les mathématiques tentent de construire des contremesures mais...
+un blindage du matériel sensible est nécessaire (Faraday).
UPMC - Licence Info - Crypto - 2015/16
92/141
Canaux Microscopiques
UPMC - Licence Info - Crypto - 2015/16
93/141
Canaux Microscopiques
+Basé sur les effets de bords de l’arithmétique utilisée
Exponentiation modulaire : attaque de Kocher sur RSA
On calcule yd mod n avec d de w bits.
s0 := 1
for k:= 0 upto w − 1 do
if (keme bit de d) = 1 then
Rk = (sk × y) mod n
else
Rk = sk
end if
sk+1 = R2k mod n
end for
return Rw−1
UPMC - Licence Info - Crypto - 2015/16
94/141
Canaux Microscopiques
+Basé sur les effets de bords de l’arithmétique utilisée
Exponentiation modulaire : attaque de Kocher sur RSA
On calcule yd mod n avec x de w bits.
s0 := 1
for k:= 0 upto w − 1 do
if (keme bit de d) = 1 then
Rk = (sk × y) mod n
else
Rk = sk
end if
sk+1 = R2k mod n
end for
return Rw−1
UPMC - Licence Info - Crypto - 2015/16
95/141
Canaux Microscopiques : attaque de Kocher
+L’attaquant cherche a retrouver l’exposant d.
Hypothèses de Kocher
1
On peut demander au matériel cryptographique des
déchiffrements quelconques avec la clé privée attaquée.
2
On peut mesurer les temps de calcul de manière précise pour
chacun des déchiffrement.
3
On peut avoir accès au même matériel et régler nos propres clés.
+Une attaque par corrélation de Pearson (brute force améliorée)
UPMC - Licence Info - Crypto - 2015/16
96/141
Canaux Microscopiques : attaque de Kocher
+Attaque par étude statistique
+Etude des corrélations (distributions) entre les différents tests
+Contremesure : rajouter des calculs vides pour équilibrer la charge
de travail.
UPMC - Licence Info - Crypto - 2015/16
97/141
Canaux Microscopiques : attaque par injection de
fautes
+A l’aide de radiations on peut changer la nature de quelques bits
pendant le calcul
+Utilisable sur les cartes à puces par exemple
UPMC - Licence Info - Crypto - 2015/16
98/141
Canaux Microscopiques : attaque par injection de
fautes
+A l’aide radiation on peut changer la nature de quelques bits pendant
le calcul
+Utilisable sur les cartes à puces par exemple
Attaque par faute : RSA et CRT
On veut calculer yd mod n rapidement. On connaît n = pq.
1
On calcule S1 = yd mod p
2
On calcule S2 = yd mod q
3
On reconstruit par CRT S = aS1 + bS2 mod n
+On injecte une erreur pendant le premier calcul.
UPMC - Licence Info - Crypto - 2015/16
99/141
Canaux Microscopiques : attaque par injection
d’erreurs
Attaque par faute : RSA et CRT
Supposons que un seul des Si est faux ici c’est S1 . Supposons aussi
que nous avons le résultat juste S et faux Ŝ issus d’un même message
y. Alors
S 6= Ŝ mod p et S = Ŝ mod q
et donc
pgcd(S − Ŝ, n) = q
+Contremesures arithmétiques plus compliquées
+Blindage du matériel pour éviter les fautes.
UPMC - Licence Info - Crypto - 2015/16
100/141
Conclusions
Canaux auxiliaires
Autres effets de bord : Thermiques, Radio-electrique,...
A de forts impacts sur l’électronique contemporaine : téléphonie,
carte à puce...
Des parades existent mais elles compliquent l’arithmétique
sous-jacente.
+Un cours de M2 du master SFPN est consacré a ces problématiques
+Un teaser vidéo de Tarnovsky!
UPMC - Licence Info - Crypto - 2015/16
101/141
Plan
7
La trappe et ElGamal
8
RSA
9
Chiffrement à Clé Publique et Authentification
10
Implémentation efficace de RSA
11
Cryptanalyse de RSA
12
Fractions continues(ées) et attaque de Wiener
13
Utilisation de RSA dans l’Embarqué et sa Cryptanalyse par
Canaux Auxiliaires
14
Protocole RSA dans des cartes bancaires (ancien protocole B0
utilisé avant 2004)
UPMC - Licence Info - Crypto - 2015/16
102/141
Création de la carte bancaire
+La signature RSA permet d’authentifier une transaction
Banque
Csec
GIE CB
Info
GIE priv
GIE pub
VS=GIEpriv(Info)
Centre de
Contrôle
Info, VS,
Csec, PIN
UPMC - Licence Info - Crypto - 2015/16
103/141
Utilisation de la carte bancaire
GIE CB
Centre de
Contrôle
GIE priv
GIE pub
Csec
Appel contrôle
Vendeur
Info, VS,
Csec, PIN
UPMC - Licence Info - Crypto - 2015/16
Transaction
GIE pub
104/141
Utilisation de la carte bancaire
Authentification de la carte : le terminal lit Info et VS sur la carte et
vérifie la signature à l’aide de GIEpub.
PIN : le PIN est envoyé à la carte pour calcul en place et
vérification.
Authentification par Csec : appel téléphonique à l’organisme de
contrôle pour vérifier de la présence la clé secrète.

Attaque Serge Humpich (1997, factorisation 32 bits), divulgation
des YES card (2000)
UPMC - Licence Info - Crypto - 2015/16
105/141
Part IV
Arithmétique des Polynômes et Corps
Finis
UPMC - Licence Info - Crypto - 2015/16
106/141
Plan
15
Support pour le DLP : corps finis généraux
16
Anneaux de Polynômes et Quotients
17
Corps finis généraux
18
Groupe des points rationnels d’une courbe elliptique
UPMC - Licence Info - Crypto - 2015/16
107/141
Retour à l’arithmétique modulaire: la notion d’idéal
Définition
Un sous-ensemble I d’un anneau A est un idéal de A s’il est stable par
addition interne et par multiplication externe (i.e. a + b ∈ I ∀(a, b) ∈ I 2
et ka ∈ I ∀(k, a) ∈ A × I).
Exemples:
A = Z l’ensemble 2Z = {2a : a ∈ Z} est un idéal.
I = A et I = 0 sont les deux idéaux triviaux.
Idéal principal
Plus généralement, tout ensemble de la forme eA = {ea : a ∈ A} est
un idéal de A (noté (e) quand il n’y a pas de confusion possible).
UPMC - Licence Info - Crypto - 2015/16
108/141
Retour à l’arithmétique modulaire: la notion d’idéal
Idéal principal
Plus généralement, tout ensemble de la forme eA = {ea : a ∈ A} est
un idéal de A (noté (e) quand il n’y a pas de confusion possible).
Définition
Un anneau A qui n’a que des idéaux principaux est dit principal.
UPMC - Licence Info - Crypto - 2015/16
108/141
Quotient d’anneau, Anneau Quotient
Soit I un idéal dans A.
Définition
Deux éléments a et b de A sont équivalents modulo I s’il existe c ∈ I tel
que
b = a + c.
La classe d’équivalence de a est donc l’ensemble a + I.
Arithmétique modulaire générale
Quelque soit le choix des représentants ā et b̄ des classes a + I et b + I
on a:
ā + b̄ ∈ (ā + b̄) + I
et
āb̄ ∈ (āb̄) + I
+Exemple Z/pZ
UPMC - Licence Info - Crypto - 2015/16
109/141
Quotient d’anneau, Anneau Quotient
Soit I un idéal dans A.
Arithmétique modulaire générale
Quelque soit le choix des représentants ā et b̄ des classes a + I et b + I
on a:
ā + b̄ ∈ (ā + b̄) + I
et
āb̄ ∈ (āb̄) + I
+Exemple Z/pZ
Définition-Proposition
L’ensemble A/I des classes de A modulo I muni de l’addition et la
multiplication modulaire forme un anneau : l’anneau quotient de A
modulo I.
UPMC - Licence Info - Crypto - 2015/16
109/141
Anneau Quotient : Propriétés
Définitions
Soit I un idéal d’un anneau A.
I premier si A/I est intègre.
I est maximal si A/I est un corps.
Propriétés importantes:
+ I maximal ⇒ I premier.
+ a irréductible dans A principal ⇔ l’idéal (a) est maximal.
+ I maximal est bien maximal au sens de l’inclusion des idéaux non
triviaux.
+ a ∈ A premier ⇔ à (a) premier.
UPMC - Licence Info - Crypto - 2015/16
110/141
Exemples importants de corps
Corps de fractions
Soit A un anneau intègre. Le plus petit corps contenant A est appelé
corps des fractions de A et est défini par les classes d’équivalence de :
Fr(()A) = A × A \ {O}
modulo la relation d’équivalence (a, b) ≡ (c, d) ⇔ ad = bc. Les
opérations qui font de cet ensemble un corps sont les opérations
habituelles sur les fractions.
+Fr(()Z) = Q.
+Inclusion canonique de A dans Fr(()A) avec a 7→ (a, 1).
UPMC - Licence Info - Crypto - 2015/16
111/141
Exemples importants de corps
Z/pZ
Cet anneau quotient est un corps premier de caractéristique p
Définition : Caractéristique
Pour tout anneau (A, +, ×) il existe un morphisme K de Z dans A défini
par K(n) = 1A + . . . + 1A (n fois). Deux cas sont possibles :
K est une injection alors le seul entier c tel que K(c) = 0A est c = 0;
K n’est pas une inclusion, alors il existe un entier minimal c > 0 tel
que (K) = 0.
L’entier c est la caractéristique de A
+Q est de caractéristique 0
+Z/pZ est de caractéristique p
+Comment construire de grands corps finis de carac. p ?
UPMC - Licence Info - Crypto - 2015/16
112/141
Plan
15
Support pour le DLP : corps finis généraux
16
Anneaux de Polynômes et Quotients
17
Corps finis généraux
18
Groupe des points rationnels d’une courbe elliptique
UPMC - Licence Info - Crypto - 2015/16
113/141
Polynômes
Définition
L’ensemble A[X] des suites finies d’éléments de A (i.e. nulles à partir
d’un certain rang) est appelé ensemble des polynômes à coefficients
dans A. L’élément X est la suite [0, 1] et est appelé indéterminée.
+On ne représente que les termes non nuls, on pourra utiliser les
autres mais ils seront nuls par définition.
+Le degré d’un polynôme est le plus grand indice des termes non nuls.
+X 2 + 1 est associé à [1, 0, 1] en tant qu’élément dans Z[X].
+X est formel, ce n’est qu’un symbole !
UPMC - Licence Info - Crypto - 2015/16
114/141
Polynômes : arithmétique
Soit a = [a0 , a1 , . . . , an ] et b = [b0 , b1 , . . . , bm ] deux polynômes dans A[X]
(on suppose m > n).
Définition
L’addition de a et b est donnée par
a + b = [a0 + b0 , a1 + b1 , . . . , am + bm ]
La multiplication c = ab est donnée par
X
ck =
ai bj
i+j=k
L’ensemble A[X] équipé de ces deux opérations est un anneau :
l’anneau des polynômes à coefficients dans A.
UPMC - Licence Info - Crypto - 2015/16
115/141
Polynômes : représentation
En machine
Un polynôme est un tableau. Deux choix sont possibles, la taille
correspond au degré (le tableau est dynamique) ou l’on conserve des
éléments nuls en tête du polynôme (le tableau est statique). On peut
utiliser conjointement ces deux représentations.
+Implantation plus facile que pour les grands entiers.
+Pour les calculs de complexités, attention à la croissance des
coefficients (le cas du pgcd par exemple).
UPMC - Licence Info - Crypto - 2015/16
116/141
Polynômes : résultats théoriques
Théorèmes
A corps ⇒ A[X] euclidien
A[X] principal ⇔ A corps
A factoriel ⇒ A[X] factoriel
+En particulier Z[X] n’est pas euclidien mais il est factoriel !
UPMC - Licence Info - Crypto - 2015/16
117/141
Polynômes : Euclide
Soit K un corps.
K[X] est euclidien
On prend comme fonction (stathme euclidien) celle qui à un polynôme
fait correspondre son degré. (Pour le polynôme nul cette fonction
renverra ∞.)
Exemple Q[X] :
1 3
1
1
X + X + 1 = X(X 2 + 1) + X + 1
2
2
2
UPMC - Licence Info - Crypto - 2015/16
118/141
Polynômes : les irréductibles
Soit K un corps.
Inversibles
Les inversible de K[X] sont les éléments non nuls de K.
Ainsi on a :
Irréductibilité
Les éléments irréductibles de K[X] sont les éléments P non nuls tel
ques s’il existe un coup (Q, R) dans K[X] vérifiant
P = QR
alors Q ∈ K× ou R ∈ K× .
+Nécessité d’algorithmes pour tester l’irréductibilité dans K[X].
UPMC - Licence Info - Crypto - 2015/16
119/141
Polynômes : Évaluation
Définition
Soit P = [a0 , . . . , an ] ∈ K[X] un polynôme et e un élément de K (ou plus
généralement d’une K-algèbre i.e un anneau tq’il existe un morphisme
de K dans cette algèbre). L’évaluation P(e) de P en e est définie par :
n
X
ai ei
i=0
+Évaluation brute force : On calcule la somme de la définition
brutalement, les monômes évalués successivement.
+n additions et 2n multiplications +2n × log2 (e) en mémoire
UPMC - Licence Info - Crypto - 2015/16
120/141
Polynômes : Évaluation
Définition
Soit P = [a0 , . . . , an ] ∈ K[X] un polynôme et e un élément de K (ou plus
généralement d’une K-algèbre i.e un anneau tq’il existe un morphisme
de K dans cette algèbre). L’évaluation P(e) de P en e est définie par :
n
X
ai ei
i=0
Algorithme de Horner (parenthèses emboîtées): [a0 , . . . , an ](e)
t := an
Pour i := n − 2 jusqu’à 0 faire
t := ai+1 + e × t
Fin pour
return a0 + e × t
UPMC - Licence Info - Crypto - 2015/16
120/141
Polynômes : Évaluation
Définition
Soit P = [a0 , . . . , an ] ∈ K[X] un polynôme et e un élément de K (ou plus
généralement d’une K-algèbre i.e un anneau tq’il existe un morphisme
de K dans cette algèbre). L’évaluation P(e) de P en e est définie par :
n
X
ai ei
i=0
Algorithme de Horner (parenthèses emboîtées): [a0 , . . . , an ](e)
t := an
Pour i := n − 2 jusqu’à 0 faire
t := ai+1 + e × t
Fin pour
return a0 + e × t
+n additions et n multiplications
+n × log2 (e) en mémoire
UPMC - Licence Info - Crypto - 2015/16
120/141
Polynômes : racines
Définition
Soit un corps contenant K et P ∈ K[X] un polynôme. Un élément α de
est une racine de P dans si P(α) = 0.
Théorèmes
Pour tout P il existe un corps contenant toutes les racines de P.
Si α est une racine de P alors P = (X − α)Q(X) dans [X].
Si P est de degré n alors P a au plus n racines (comptées avec les
multiplicités).
+Exemple : X 2 + 1 est un polynôme à coefficients dans Q qui a pour
racine i dans C.
UPMC - Licence Info - Crypto - 2015/16
121/141
Polynômes : racines
Problème
Comment calculer formellement avec
les racines d’un polynôme
irréductible de K[X] ?
√
Exemple : X 2 − 3 ∈ Q[X] a pour racine α = 3 ∈ R. Comment un
ordinateur peut-il manipuler √
α pour, par exemple, calculer une
représentation explicite de ( 3 − 1)−1 ?
+Calcul formel.
UPMC - Licence Info - Crypto - 2015/16
122/141
Polynômes : racines
+Soit P un polynôme irréductible à coefficients dans un anneau A. On
veut pouvoir calculer formellement avec une racine α de P.
Rupture
Soit K = Fr(()A). On construit le plus petit sur-corps K(α) de K
contenant α :
K[α] = {Q(α) : Q ∈ K[X]}
Représentation
On a la construction formelle (P irréductible) par isomorphisme :
Ψ : K[X] −→ K[α]
Q
7−→ Q(α)
Le morphisme Ψ est surjectif de noyau l’idéal (P). Ainsi K[α] peut être
représenté par K[X]/P et ainsi α est représenté par la classe de X
modulo P.
UPMC - Licence Info - Crypto - 2015/16
123/141
Polynômes : racines
Représentation
On a la construction formelle (P irréductible) par isomorphisme :
Ψ : K[X] −→ K[α]
Q
7−→ Q(α)
Le morphisme Ψ est surjectif de noyau l’idéal (P). Ainsi K[α] peut être
représenté par K[X]/P et ainsi α est représenté par la classe de X
modulo P.
+On ne peut distinguer algébriquement les racines de P entre elles (il
n’existe qu’un seul corps de rupture pour P.
+Les éléments de K(α) sont de la forme k0 + k1 α + · · · + kn−1 αn−1 où n
est le degré de P.
√
+Faire des calculs dans Q( 3) revient a calculer modulo X 2 − 3 dans
Q[X] !
UPMC - Licence Info - Crypto - 2015/16
123/141
Polynômes : racines
√
Exemple : X 2 − 3 a pour racine
√ α =−1 3. Comment un ordinateur peut-il
manipuler α pour calculer ( 3 − 1) par exemple ?
UPMC - Licence Info - Crypto - 2015/16
124/141
Polynômes : racines
√
Exemple : X 2 − 3 a pour racine
α
=
3. Comment un ordinateur peut-il
√
manipuler α pour calculer ( 3 − 1)−1 par exemple ?
√
A l’aide de la construction précédente, calculer ( 3 − 1)−1 revient à
calculer l’inverse de X − 1 dans Q[X]/(X 2 − 3). Pour ça on utilise
Euclide pour trouver une relation de Bézout :
UPMC - Licence Info - Crypto - 2015/16
124/141
Polynômes : racines
√
A l’aide de la construction précédente, calculer ( 3 − 1)−1 revient à
calculer l’inverse de X − 1 dans Q[X]/(X 2 − 3). Pour ça on utilise
Euclide pour trouver une relation de Bézout :
X 2 − 3 = X(X − 1) + X − 3
X − 1 = 1(X − 3) + 2
1
X − 3 = (X − 3)2 + 0
2
UPMC - Licence Info - Crypto - 2015/16
124/141
Polynômes : racines
√
A l’aide de la construction précédente, calculer ( 3 − 1)−1 revient à
calculer l’inverse de X − 1 dans Q[X]/(X 2 − 3). Pour ça on utilise
Euclide pour trouver une relation de Bézout :
X 2 − 3 − X(X − 1) = X − 3
X − 1 − 1(X − 3) = 2
2 = (X − 1) − (X 2 − 3) + X(X − 1)
UPMC - Licence Info - Crypto - 2015/16
124/141
Polynômes : racines
√
A l’aide de la construction précédente, calculer ( 3 − 1)−1 revient à
calculer l’inverse de X − 1 dans Q[X]/(X 2 − 3). Pour ça on utilise
Euclide pour trouver une relation de Bézout :
1
1
1 = (X + 1)(X − 1) − (X 2 − 3)
2
2
√
1 √
−1
( 3 − 1) = ( 3 + 1)
2
+Utiliser un tableau pour le calcul comme dans le cas Z.
UPMC - Licence Info - Crypto - 2015/16
124/141
Plan
15
Support pour le DLP : corps finis généraux
16
Anneaux de Polynômes et Quotients
17
Corps finis généraux
18
Groupe des points rationnels d’une courbe elliptique
UPMC - Licence Info - Crypto - 2015/16
125/141
Corps finis : Propriétés
A partir des corps premiers Fp = Z/pZ on veut pouvoir construire des
corps de même caractéristique p mais de cardinal plus grand.
On utilise la rupture
+
Définition
Soit P un polynôme irréductible de degré n
Fpn := Fp[X]/(P)
UPMC - Licence Info - Crypto - 2015/16
126/141
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}
UPMC - Licence Info - Crypto - 2015/16
127/141
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}
Pour calculer la table de multiplication dans F4 on revient au calcul
dans F2 [X]/P :
×
0
1
ω
ω+1
UPMC - Licence Info - Crypto - 2015/16
0
1
ω
ω+1
0
0
0
0
0
1
ω
ω+1
0
ω
ω+1
1
0 ω+1
1
ω
127/141
Corps finis : Propriétés
+Applications Crypto
Théorème
n
Le groupe multiplicatif F×
pn est cyclique d’ordre p − 1.
+Il existe un ω ∈ Fpn tel que tous les éléments de F×
pn puissent s’écrire
i
sous la forme ω .
+Ce groupe multiplicatif peut être utilisé comme support de DLP et
donc pour faire de l’échange de clés ou du ElGamal.
UPMC - Licence Info - Crypto - 2015/16
128/141
Corps finis : Conclusions
+Applications Crypto
On peut former des corps finis aussi grands que l’on souhaite
Il faut construire des polynômes irréductibles à coefficients dans
un corps fini
L’arithmétique modulo un polynôme est plus facile que celle sur les
grands entiers

En 2013 a été démontré que le DLP dans le groupe multiplicatif d’un
corps fini de petite caractéristique est de complexité quasi-polynomial.
UPMC - Licence Info - Crypto - 2015/16
129/141
Plan
15
Support pour le DLP : corps finis généraux
16
Anneaux de Polynômes et Quotients
17
Corps finis généraux
18
Groupe des points rationnels d’une courbe elliptique
UPMC - Licence Info - Crypto - 2015/16
130/141
Application Principale: Signature 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.
La signature DSA sur les corps finis
La génération des clés :
une fonction de hachage H (e.g. SHA1)
p, q deux premiers de tailles respectives 1024 et 160 bits tels que
p − 1 est un multiple de q
g un entier d’ordre q modulo p
un problème DLP : h = gt mod p (le groupe support est d’ordre q)
UPMC - Licence Info - Crypto - 2015/16
131/141
Application Principale: Signature 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.
La signature DSA sur les corps finis
L’expéditeur publie les clés publiques (p, q, g, h) et conserve t comme
clé secrète. La fonction de hachage H est aussi une donnée publique.
Pour signer un texte m, l’expéditeur procède comme suite
1
Il choisit un entier km au hasard (pour chaque message)
2
r = (gkm mod p) mod q
3
−1 (H(m) + t × r) mod q
s = km
4
si r et s sont non nuls alors la signature de m est le couple (r, s)
sinon retourner à la première étape.
+ATTENTION km doit vraiment être choisi au hasard ! (voir TD)
UPMC - Licence Info - Crypto - 2015/16
131/141
Application Principale: Signature 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.
La signature DSA sur les corps finis
Le destinataire vérifiera l’authenticité de l’expéditeur en vérifiant
v=r
mod q
où v est calculé comme suit :
1
u1 = H(m) × s−1 mod q
2
u2 = r × s−1 mod q
3
v = (gu1 hu2 mod p) mod q
+Alternative à l’utilisation de RSA pour la sécurité embarquée!
UPMC - Licence Info - Crypto - 2015/16
131/141
Application Principale: Signature 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.
La signature ECDSA sur les courbes elliptiques
Peut on faire plus efficace que le DLP sur les corps finis ?
UPMC - Licence Info - Crypto - 2015/16
131/141
Courbes elliptiques
+Lieu géométrique !
Sur K = Fpk avec p > 3
Pour a et b dans K vérifiant
∆ := −16(4a3 + 27b2 ) 6= 0
On définit la courbe elliptique Ea,b sur K par l’ensemble des points
(x, y) ∈ K2 vérifiant l’équation:
y2 = x3 + ax + b
+Définition équivalente dans le cas de la caractéristique 3 et 2.
UPMC - Licence Info - Crypto - 2015/16
132/141
Courbes elliptiques sur R2
UPMC - Licence Info - Crypto - 2015/16
133/141
Courbes elliptiques sur Fp , p = 389, y2 = x3 − x + 1
UPMC - Licence Info - Crypto - 2015/16
134/141
Structure de groupe Ea,b = Ea.b ∪ O
UPMC - Licence Info - Crypto - 2015/16
135/141
Structure de groupe Ea,b = Ea.b ∪ O
Groupe additif commutatif de la courbe
Soit P1 = (x1 , y1 ), Q = (x2 , y2 ) ∈ Ea,b
Point à l’infini O est l’élément neutre :
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
et λ =
3x12 +a
2y1
si P = Q et λ =
y2 −y1
x2 −x1
sinon.
+Ne pas oublier de rajouter le point à l’infini pour former le groupe !
UPMC - Licence Info - Crypto - 2015/16
135/141
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.
y
0
±1
±2
±3
±4
±5
z = y2 mod 11
0
1
4
9
5
3
UPMC - Licence Info - Crypto - 2015/16
136/141
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.
y
0
±1
±2
±3
±4
±5
z = y2 mod 11
0
1
4
9
5
3
x
0
1
2
3
4
5
6
7
8
9
10
UPMC - Licence Info - Crypto - 2015/16
z = x3 + x + 6 mod 11
6
8
5
3
8
4
8
4
9
7
4
z
11
-1
-1
1
1
-1
1
-1
1
1
-1
1
y
±4
±5
±9
±9
±3
±9
136/141
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.
y
0
±1
±2
±3
±4
±5
z = y2 mod 11
0
1
4
9
5
3
x
0
1
2
3
4
5
6
7
8
9
10
z = x3 + x + 6 mod 11
6
8
5
3
8
4
8
4
9
7
4
z
11
-1
-1
1
1
-1
1
-1
1
1
-1
1
y
±4
±5
±9
±9
±3
±9
+12 points rationnels + le point à l’infini = un groupe d’ordre 13, donc
cyclique engendré par tout élément autre que le neutre.
UPMC - Licence Info - Crypto - 2015/16
136/141
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
=
=
=
=
[2]P = (82 − 2 − 2 mod 11, 8(2 − 5) − 7
mod 11) = (5, 2)
Pour [3]P on a [3]P = [2]P + P, on calcule l’autre λ
λ
=
=
=
=
(7 − 2)(2 − 5)−1 mod 11
5 × 8−1 mod 11
5 × 7 mod 11
2
[3]P = (22 − 5 − 2 mod 11, 2(5 − 8) − 2
UPMC - Licence Info - Crypto - 2015/16
mod 11) = (8, 3)
137/141
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
Définition : Symbole de Legendre

si a est un résidu quadratique (mod p)

1
a
= −1 si a n’est pas un résidu quadratique (mod p)

p

0
si p divise a
Propriétés
a1 a2
p
=
UPMC - Licence Info - Crypto - 2015/16
a1
p
a2
p
et
a
a
=
p
(mod p)
p
138/141
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
si p ≡ 1 (mod 4)
−1
=
,
p
−1 si p ≡ −1 (mod 4)
(
1
si p ≡ ±1 (mod 8)
2
=
p
−1 si p ≡ ±3 (mod 8)
  q
si p ≡ 1 (mod 4) ou q ≡ 1 (mod 4)
p
p =
− q
q
si p ≡ 3 (mod 4) et q ≡ 3 (mod 4)
p
UPMC - Licence Info - Crypto - 2015/16
138/141
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.
+Pour la cryptographie on choisit des courbes elliptiques telles que
(Ea,b , +) soit cyclique (le cas d1 = 1) ou au moins contient un grand
groupe cyclique (Pohlig-Hellman).
UPMC - Licence Info - Crypto - 2015/16
139/141
Avantages des courbes elliptiques
Pas d’attaque connue de complexité sous-exponentielle
L’arithmétique peut être rendue très efficiace
Clés plus petites pour des sécurités équivalentes
UPMC - Licence Info - Crypto - 2015/16
140/141
Retour sur Échange de clé et Authentification
 Comment authentifier son interlocuteur au moment du premier échange?
UPMC - Licence Info - Crypto - 2015/16
141/141
Téléchargement