Examen de Cryptologie

Transcription

Examen de Cryptologie
Module LI336 - Introduction à la Cryptologie
Version enseignant
LI336 – page 1/6
Examen de Cryptologie
Auteurs
Guénaël Renault et Valérie Ménissier-Morain
Version du 20 juin 2011
Les seuls documents autorisés sont les slides du cours.
L’utilisation d’un appareil électronique est proscrit pendant toute la durée de l’épreuve.
Le barème sur 25 est donné à titre indicatif.
Exercice 1 – Équations diophantiennes linéaires et chiffrements affines (8 points)
Le but de cet exercice est, étant donnés a, b ∈ Z et n ∈ N \ {0}, de résoudre
ax = b mod n.
(1)
1. (Cas premier – 2 points) On suppose d’abord que a et n sont premiers entre eux. Montrer alors que l’équation
admet une solution et donner un algorithme pour la résoudre. Quelles sont les solutions de l’équation 3x + 4 =
6 mod 7 ?
Solution :
Puisque a et b sont premiers entre eux, l’identité de Bézout nous fournit deux entiers u et v tels que au+nv = 1.
Alors en multipliant les deux membres par b on a aub + nbv = b, d’où aub = b mod n et x = ub est solution
de l’équation 1.
Pour résoudre l’équation ax = b mod n, on calcule l’inverse modulaire u de a modulo n par l’algorithme
d’Euclide étendu, puis on le multiplie par b ce qui nous fournit une solution. Les solutions de l’équation 1 sont
de la forme ub + kn avec k ∈ Z.
L’équation 3x + 4 = 6 mod 7 peut être réécrite 3x = 2 mod 7. 3 et 7 sont premiers donc a fortiori premiers
entre eux. L’inverse modulaire de 3 modulo 7 est −2 puisque 3 ∗ (−2) + 1 ∗ 7 = 1. Les solutions de l’équation
sont donc de la forme −2 ∗ 2 + kn, autrement dit 3 + 7k pour k ∈ Z.
2. (Cas général – 3 points) On ne suppose plus maintenant que a et n sont premiers entre eux et notons d leur pgcd.
Montrer que l’équation (1) admet une solution si et seulement si d divise b. Donner un algorithme pour résoudre
l’équation (1) dans le cas général. Quelles sont les solutions de l’équation 4x = 6 mod 14 ?.
Solution :
Posons a = da0 et n = dn0 avec a0 u + n0 v = 1. Si ax = b mod n alors il existe k ∈ Z tel que b = ax + kn =
da0 x + kdn0 = d(a0 x + kn0 ) donc d doit diviser b pour que l’équation 1 admette des solutions.
Si d divise b avec b = db0 , alors l’équation 1 est équivalente à :
– il existe k ∈ Z tel que ax − b = kn
– il existe k ∈ Z tel que ax0 − b0 = kn0 en divisant par d
– a0 x = b0 mod n0
avec a0 et n0 premiers entre eux. On résout cette nouvelle équation selon la méthode de la question précédente
ce qui nous fournit l’ensemble des solutions ub0 + kn0 pour k ∈ Z.
Dans l’exemple, a = 4, b = 6, n = 14, d = 2, a0 = 2, b0 = 3, n0 = 7, u = 4 et les solutions sont de la forme
5 + kn0 c’est-à-dire 5 + 7k pour k ∈ Z.
c
2010-2011(by
UPMC/Licence d’Informatique/LI336 - Introduction à la Cryptologie)
20 juin 2011
Module LI336 - Introduction à la Cryptologie
Version enseignant
LI336 – page 2/6
3. (Problème d’injectivité – 1 point) Soit a un entier non premier avec n, notons d leur pgcd, et b un entier quelconque. Considérons l’application e de Z/nZ dans Z/nZ qui à x fait correspondre ax + b. Montrer que deux
éléments x1 et x2 ont même image par e si et seulement si x1 = x2 mod n0 où n0 = nd .
Solution :
ax1 + b = ax2 + b mod n ⇔ a0 (x1 − x2 ) = kn0 avec a0 = a/d et n0 = n/d. Comme a0 est premier avec n0
on a donc (x1 − x2 ) multiple de n0 .
4. (Application – 2 points) Soit (a, b) la clé d’un cryptosystème symétrique affine défini sur Z/nZ. Rappeler la
définition de la fonction de chiffrement associée et l’ensemble des messages et clés possibles.
Supposons que l’on souhaite définir un chiffrement affine avec un entier a non premier à n. Quel ensemble de
messages possibles devrions-nous choisir pour que la fonction de déchiffrement puisse être définie.
Solution :
D’après le cours, la fonction de chiffrement est e(x) = ax + b mod n et l’ensemble des clés possibles est
Z/nZ× × Z/nZ.
Plaçons-nous dans le cas où d = pgcd(a, n) > 1. L’application e : Z/nZ → Z/nZ qui à x fait correspondre
ax + b n’est pas injective d’après la question précédente. Par contre, elle le sera en remplaçant l’ensemble de
départ par Z/n0 Z.
Exercice 2 – RSA-3 (8 points)
Dans tout cet exercice, on se donne trois entiers premiers impairs p,q et r différents deux à deux. Soit N l’entier égal au
produit pqr. On s’intéresse ici à un cryptosystème identique à RSA.
1. (1 point) Montrer que l’on peut définir, de la même manière que pour RSA, une fonction de chiffrement et de
déchiffrement ainsi qu’un cryptosystème à clé publique en utilisant l’entier N . (Vous exhiberez les clés publiques et
privées et définirez l’ensemble des messages possibles.)
Solution :
Il n’y a rien à changer, on choisit un couple d’entiers (e, d) tel que ed = 1 mod φ(N ), on chiffre le message
clair x par y = xe mod N et on déchiffre le message chiffré y par x = y d mod N .
La clef publique est (e, N ), la clef privée (d, p, q, r) et l’ensemble des messages possibles est Z/N Z car pour
tout message m ∈ Z/nZ nous pouvons montrer comme pour RSA que m = DRSA-3 (ERSA-3 (m)).
On a x = y d mod n = (xe )d mod n = xed mod n.
Si x est premier avec N , alors d’après le petit théorème de Fermat, xφ(N ) = 1 mod N donc xed = x1+`φ(N ) =
x mod N pour un certain `.
Si x n’est pas premier avec N , alors x est un multiple de p premier avec qr ou un multiple de q premier avec pr
ou un multiple de r premier avec pq. Par exemple pour un multiple de p premier avec qr, la représentation de
x ∈ Z/nZ dans Z/pZ × Z/(qr)Z est (0e = 0, xqr = x mod qr) qui est chiffré par ERSA en (0, xeqr mod qr =
d = (xe )d mod (qr) = xed mod (qr).
yqr ), lui-même déchiffré par DRSA en (0d = 0, yqr
qr
qr
Or si ed = 1 mod φ(N ), il existe k tel que ed = 1 + k(p − 1)(q − 1)(r − 1) donc ed = 1 mod (q − 1)(r − 1) =
1 mod φ(qr). xqr = x mod (qr) est premier avec qr (parce que x est un multiple de p premier avec qr) donc
φ(qr)
d’après le petit théorème de Fermat, xqr = 1 mod (qr) et xed
qr = xqr mod (qr).
d mod (qr) = x ) de Z/pZ × Z/(qr)Z redonne évidemment par le CRT x.
Dans Z/nZ, le couple (0, yqr
qr
On notera ce cryptosystème RSA-3 dans toute la suite de l’exercice.
2. (2 points) Rappeler quels sont les messages qui sont dangereux lors de l’utilisation de RSA. Quels seront ceux qui
seront dangereux pour RSA-3 ? (Vous argumenterez votre réponse.)
c
2010-2011(by
UPMC/Licence d’Informatique/LI336 - Introduction à la Cryptologie)
20 juin 2011
Module LI336 - Introduction à la Cryptologie
Version enseignant
LI336 – page 3/6
Solution :
Les messages dangereux pour RSA sont ceux qui ne sont pas premiers avec N , puisqu’alors on trouve un facteur
commun au message et à N donc un des deux facteurs premiers de N , donc l’autre et φ(N ) donc d l’inverse
modulaire de e modulo φ(N ), c’est-à-dire toute la clef secrète.
Il en va de même ici : les messages dangereux pour RSA-3 sont ceux qui ne sont pas premiers avec N , puisqu’alors on trouve un facteur commun au message et à N , c’est-à-dire soit un facteur, disons p, soit le produit
de deux facteurs pq et on déduit le facteur r = N/(pq), dans tous les cas on déduit un des trois facteurs de N et
le produit des deux autres. En soi un seul message n’est pas dangereux, il faudra avoir la chance d’en trouver un
deuxième qui nous apporte la connaissance d’un autre facteur de N pour connaı̂tre alors la factorisation de N ,
d’où φ(N ) et d l’inverse modulaire de e modulo φ(N ), c’est-à-dire toute la clef secrète.
3. (3 points) Montrer qu’il est possible d’utiliser le CRT lors du déchiffrement d’un message. Quel sera le gain en
complexité de calcul (en fonction de la taille de N ) obtenue en utilisant cette technique ? (On pourra supposer ici
que les entiers premiers p, q et r sont de même taille.)
Solution :
Algorithme
On reçoit y et on doit calculer x = y d mod n. On calcule
dp = d mod (p − 1), dq = d mod (q − 1), dr = d mod (r − 1),
puis
xp = y dp mod p, xq = y dq mod q, xr = y dr mod r.
On a x = xp mod p, x = xq mod q et x = xr mod r. On utilise une première fois le théorème chinois pour
déduire x modulo le produit pq. La relation de Bézout pour p et q est up + vq = 1, on a x = xpq mod (pq) avec
xpq = vqxp + upxq . On utilise une seconde fois le théorème chinois pour déduire x modulo N . La relation de
Bézout pour pq et r est u0 pq + v 0 r = 1, on a finalement x = v 0 rxpq + u0 pqxr mod N .
Complexité
Le coût du calcul de ab mod c est O(log(b)M(log(c))). On remplace :
– l’exponentiation directe y d mod n de coût O(log(d)M(log(n))) soit O((log(n))3 ) puisque d est de l’ordre
de n et en supposant qu’on utilise la multiplication naı̈ve M(`) = `2
– par :
– trois exponentations y dp mod p, y dq mod q et y dr mod r de coûts respectifs O(log(dp )M(log(p))),
O(log(dq )M(log(q))) et O(log(dr )M(log(r))) soit au total O((log(p))3 + O(log(q))3 + O(log(r))3 )
et en comptant que log(p) ' log(q) ' log(r) ' log(n)/3 au final
O(1/9(log(n))3 )
(2)
– un CRT pour p et q coût en O((log(n))2 ) puis un CRT pour pq et r coût en O((log(n))2 ) aussi, qui sont
négligeables devant le O(1/9(log(n))3 ).
L’utilisation du CRT nous fait donc passer de O((log(n))3 ) à O(1/9(log(n))3 ), soit une division du coût par un
facteur 9.
4. (2 points) Donner le chiffrement de x = 13 et le déchiffrement de y = 11 en utilisant le CRT avec p = 3, q = 5,
r = 7 et e (l’exposant de chiffrement) égal à 19.
Solution :
e = 19, N = pqr = 105, φ(N ) = (p − 1)(q − 1)(r − 1) = 48, d = e−1 mod 48 = −5 = 43 car
−5 ∗ 19 = 95 = 2 ∗ 48 − 1.
Le chiffré de x = 13 est xe mod N = 1319 mod 105. On a
132 = 169 = 105 + 64 = 64 mod 105
c
2010-2011(by
UPMC/Licence d’Informatique/LI336 - Introduction à la Cryptologie)
20 juin 2011
Version enseignant
Module LI336 - Introduction à la Cryptologie
LI336 – page 4/6
et 642 = 4096 = 39 ∗ 105 + 1 = 1 mod 105
donc
xe mod N = 1319 mod 105 = 649 ∗ 13 = 14 ∗ 64 ∗ 13 = 64 ∗ 13 = 832 = 8 ∗ 105 − 8 = −8 = 97 mod 105.
Le déchiffré de y = 11 est y d mod N = 1143 mod 105. On a 112 = 121 = 105 + 16 = 16 mod 105,
16 ∗ 16 = 256 = 2 ∗ 105 + 46 = 46 mod 105,
462 = 2110 = 20 ∗ 105 + 16 = 16 mod 105
et 16 ∗ 46 = 736 = 7 ∗ 105 + 1 = 1 mod 105,
donc
y d mod N = 1143 mod 105 = 1621 ∗11 = 4610 ∗16∗11 = 165 ∗16∗11 = 166 ∗11 = 463 ∗11 = 16∗46∗11 = 1∗11 = 11.
Exercice 3 – Courbe Elliptique (6 points)
On se propose d’étudier le groupe G issu de la courbe
y 2 = x3 + x + 3
E:
définie sur F7 .
1. Vérifier que E définit bien une courbe elliptique sur F7 .
Solution :
On calcule le discriminant ∆ = −16(4a3 + 27b2 ) mod 7 = 5 ∗ (4 − 32 ) = −45 = 4 6= 0 mod 7 donc E définit
bien une courbe elliptique sur F7 .
2. Donner (sous la forme d’un tableau) l’ensemble des points (x, y) ∈ F7 × F7 de cette courbe. Montrer que le cardinal
du groupe G issu de cette courbe est de 6.
Solution :
On calcule tout d’abord les carrés pour y ∈ F7 :
y
y2
0 1 2 3 4 5 6
0 1 4 2 2 4 1
puis on calcule les x3 + x + 3 pour x ∈ F7 et lorsque la valeur de x3 + x + 3 correspond à y 2 dans la table
ci-dessus alors (x, y) est un point de la courbe elliptique :
x
0
1
2
3
4
5
6
x3 + x + 3
3
5
6
5
1
0
1
Points
(4, 1), (4, 6)
(5, 0)
(6, 1), (6, 6)
On a donc 5 points rationnels plus le point à l’infini soit 6 points sur la courbe et le cardinal de G est 6.
3. Montrer que le point (4, 1) est d’ordre 6 dans G. Exhiber un point d’ordre 2 dans G.
c
2010-2011(by
UPMC/Licence d’Informatique/LI336 - Introduction à la Cryptologie)
20 juin 2011
Module LI336 - Introduction à la Cryptologie
Version enseignant
LI336 – page 5/6
Solution :
Soit P1 = (4, 1). On sait que l’ordre de P1 divise le cardinal de G donc est un diviseur de 6, ce n’est pas 1, c’est
donc 2, 3 ou 6. On calcule donc P2 = [2]P1 et P3 = [3]P1 et si aucun de ces points n’est O alors P1 est d’ordre
6. On calcule :
3x2 +a
– P2 = [2]P1 : λ = 2y1 1 = 0, d’où x2 = λ2 − 2x1 = 0 − 2 ∗ 4 = 6 mod 7 et y2 = λ(x1 − x2 ) − y1 = −1 =
6 mod 7 donc P2 = [2]P1 = (6, 6).
6−1
5
2
1
– P3 = [3]P1 = P1 + P2 : λ = xy22 −y
−x1 = 6−4 = 2 = 5 ∗ 4 = 6 mod 7, d’où x3 = λ − x1 − x2 = 36 − 4 − 6 =
5 mod 7 et y3 = λ(x1 − x3 ) − y1 = 6 ∗ (4 − 5) − 1 = 0 mod 7 donc P3 = [3]P1 = (5, 0).
On en déduit que P1 est d’ordre 6 et par conséquent P3 est d’ordre 2.
4. Terminer de remplir le tableau suivant représentant la table d’addition de G.
+
O
(4, 1)
(6, 6)
O
(4, 1)
O
(4, 1) (6, 6)
(4, 1) (6, 6)
(6, 6)
O
O
O
O
O
Solution :
Pour cela on complète notre énumération précédente :
2
3x2 +a
– P4 = [4]P1 = P2 + P2 : λ = 2y2 2 = 3∗62∗6+1 = 45 = 4 ∗ 3 = 5 mod 7, d’où x4 = λ2 − 2x2 = 25 − 2 ∗ 6 =
6 mod 7 et y4 = λ(x2 − x4 ) − y2 = 5 ∗ (6 − 6) − 6 = 1 donc P4 = [4]P1 = (6, 1).
1−1
2
1
– P5 = [5]P1 = P1 + P4 : λ = xy44 −y
−x1 = 6−4 = 0, d’où x5 = λ − x1 − x4 = 0 − 4 − 6 = 4 mod 7 et
y5 = λ(x1 − x5 ) − y1 = −1 = 6 mod 7 donc P5 = [5]P1 = (4, 6).
On obtient donc :
O
O
(4, 1) (6, 6) (5, 0) (6, 1) (4, 6)
(4, 1) (4, 1) (6, 6) (5, 0) (6, 1) (4, 6)
O
(6, 6) (6, 6) (5, 0) (6, 1) (4, 6)
O
(4, 1)
(5, 0) (5, 0) (6, 1) (4, 6)
O
(4, 1) (6, 6)
(6, 1) (6, 1) (4, 6)
O
(4, 1) (6, 6) (5, 0)
(4, 6) (4, 6)
O
(4, 1) (6, 6) (5, 0) (6, 1)
5. Quelles sont les formes possibles pour le groupe G ? Montrer qu’ici G est cyclique. (Vous argumenterez toutes vos
réponses.)
Solution :
D’après le théorème de structure, G ' Z/d1 Z × Z/d2 Z avec d1 |d2 et d1 |q − 1. Ic on travaille sur F7 donc d1 |d2
et d1 |6. Le cardinal de G est égal à 6 d’après la question 2. Compte tenu que la factorisation de 6 ne contient
pas de carré, la seule possibilité est que d1 = 1 et d2 = 6, c’est-à-dire que G est isomorphe à Z/6Z et donc G
est cyclique. On aurait pu répondre plus rapidement en disant que (4, 1) est d’ordre 6 (le cardinal de G) et donc
G = h(4, 1)i est un groupe cyclique par définition.
Remarque importante : Les réponses des questions 3, 4 et 5 peuvent être données sans aucun calcul. Par
exemple, pour montrer que (4, 1) est d’ordre 6, on peut procéder de la sorte. Il est clair d’après le tableau
de la question 4 que [2](4, 1) = (6, 6) et comme (6, 6) et (4, 1) ne partagent pas la même abscisse, il est
impossible, d’après la définition géométrique de l’addition des points d’une courbe elliptique, que [3](4, 1) =
[2](4, 1) + (4, 1) = (6, 6) + (4, 1) soit égal à l’élément neutre. Ainsi (4, 1) est ni d’ordre 2 ni d’ordre 3 dans
c
2010-2011(by
UPMC/Licence d’Informatique/LI336 - Introduction à la Cryptologie)
20 juin 2011
Module LI336 - Introduction à la Cryptologie
Version enseignant
LI336 – page 6/6
G qui est d’ordre 6, ce point est donc d’ordre 6 et générateur de G. Le tableau de la question 4 peut aussi être
déduit très facilement sans aucun calcul.
Des réponses se basant sur le calcul sont toutes aussi justes et souvent plus faciles à appliquer directement. Elles
ont donc été le plus souvent utilisées par les étudiants ayant réussi ces questions.
Exercice 4 – Questions de Cours (3 points)
1. L’anneau Z/4Z est-il un corps ? Sinon, comment peut-on définir un corps à 4 éléments ? (Argumenter vos réponses.)
Solution :
Z/nZ est un corps si et seulement si n est premier. 4 n’est pas premier donc Z/4Z n’est pas un corps. On peut
aussi dire directement que 2 est un diviseur de 0 dans Z/4Z donc Z/4Z n’est pas un corps.
On définit un corps à 4 éléments en quotientant F2 le corps à 2 éléments par un polynôme irréductible de degré
2 sur F2 , tel que X 2 + X + 1.
2. Pourquoi est-il plus judicieux d’utiliser les courbes elliptiques plutôt que les corps finis dans le cadre d’un cryptosystème reposant sur le DLP ?
Solution :
– Pas d’attaque connue de complexité sous-exponentielle
– L’arithmétique peut être rendue très rapide
– Les clefs sont plus petites à sécurité équivalente : là où il faut 1024 bits pour RSA, il suffit de 160 bits pour
les courbes elliptiques.
3. Chiffrer le message ATTAQUEDEMAIN à l’aide de la clé KARL en utilisant un chiffrement de Vigenère.
Solution :
ATTAQUEDEMAIN
+ KARLKARLKARLK
--------------KTKLAUVOOMRTX
c
2010-2011(by
UPMC/Licence d’Informatique/LI336 - Introduction à la Cryptologie)
20 juin 2011