Code d`invitation de notre groupe Passer une commande

Agr´
egation interne 2014/2015
S´
eance du 21 octobre 2014 de 9h30 `
a 12h30
Arithm´etique dans Z - Cryptographie
R´
evisions de cours
1) Revoir une construction de Z `
a partir de l’ensemble N des entiers naturels.
2) Quelles propri´et´es de Z permettent de d´efinir la division euclidienne ? Enoncer et d´emontrer le th´eor`eme.
3) Revoir la d´efinition d’un id´eal dans un anneau commutatif. D´eterminer les sous-groupes additifs de Z,
puis les id´eaux de Z. En d´eduire que Z est principal.
4) Soit a et b deux ´el´ements non nuls de Z. D´efinir le pgcd et le ppcm de a et b, puis montrer leur existence.
A quelle propri´et´e de Z est-ce reli´e ?
5) Congruences - th´eor`eme chinois - anneaux Z/nZ.
6) Principes et exemples de chi↵rements `
a cl´e priv´ee (cf exercices 9,10,11).
7) Principes et exemples de chi↵rements `
a cl´e publique (cf exercices 12,13).
R´
ef´
erences
Bailly-Maitre, Gilles. — Arithm´etique et cryptologie, R´ef´erences sciences , Ellipses, Paris, (2012).
Dubertret, Gilles. — Initiation `
a la cryptographie, DUT et licence math´ematiques et informatique , Vuibert,
Paris, (2012).
Ramis, Jean-Pierre - Warusfel, Andr´e (sous la direction de). — Math´ematiques, tout-en-un pour la licence,
S´erie Ramis L1, Dunod, Paris, (2006).
Robin, Guy. — Apprenons l’arithm´etique ´el´ementaire pour comprendre la cryptographie moderne, , IREM
de Limoges, Limoges, (1998).
Terracher, Pierre-Henri - Ferachoglou, Robert. — Math, enseignement de sp´ecialit´e, Collection Terracher
Terminale S, Hachette, Paris, (1998).
Exercices divers
Exercice 1 (Crible d’Eratosth`ene)
C’est une m´ethode pour trouver tous les nombres premiers plus petits qu’un entier n.
a) On prend n = 40 : ´ecrire tous les nombres jusqu’`
a 40, barrer successivement tous les multiples de 2, sauf
2, tous les multiples de 3, sauf 3, etc... Jusqu’`
a quel nombre faut-il aller pour affirmer que seuls les nombres
premiers ne sont pas barr´es ?
b) G´en´eralisation `
a tout n entier.
c) Ecrire, puis programmer l’algorithme.
Exercice 2
D´emontrer le th´eor`eme d’Euclide : il existe une infinit´e de nombres premiers.
Exercice 3
D´emontrer que l’´equation en nombres entiers x2 + 1 = 3y 2 n’admet pas de solution. G´en´eraliser.
Solution : L’´equation modulo 3 devient x2 + 1 ⌘ 0[3] ; puisque 1 n’est pas un carr´e modulo 3, il n’y a pas de solution.
On peut g´
en´
eraliser `
a x2 + 1 = my 2 ; lorsque 1 n’est pas un carr´
e modulo m, il n’y a pas de solution.
Exercice 4 Calculs modulo 7
a) Dresser la table de multiplication dans Z/7Z.
b) R´esoudre dans Z la congruence x2 + 3 ⌘ 0 mod 7.
1
Exercice 5
a) Trouver par deux m´ethodes di↵´erentes les P GCD et P P CM de 5940 et 924.
b) Trouver tous les diviseurs communs de 5940 et 924.
Exercice 6
a) En utilisant l’algorithme d’Euclide trouver deux entiers u et v tels que 70u + 99v = 1.
Solution : 1 = 29 ⇥ 99 41 ⇥ 70.
b) Tel couple (u, v) est-il unique ?
c) R´esoudre dans Z2 l’´equation 70u + 99z = 11.
Solution : (u, v) = (29 ⇥ 11 + 70r, 41 ⇥ 11 99r).
Exercice 7 R´esidus quadratiques
Soit n un entier, n 2 et p un nombre premier impair. Pour x un entier, on note x˙ la classe de x dans Z/nZ.
On dit que x˙ est un carr´e ou r´esidu quadratique s’il existe y˙ 2 Z/nZ tel que y˙ 2 = x.
˙
a) D´eterminer les carr´es dans Z/13Z et dans Z/19Z.
b) Montrer que, dans Z/pZ, il y a exactement p+1
carr´es et que tout carr´e non nul admet deux racines
2
distinctes.
Solution : Consid´erons l’application ' : (Z/pZ)⇥ ! (Z/pZ)⇥ qui a` x˙ associe '(x)
˙ = x˙ 2 ; c’est un morphisme de
groupes et x˙ 2 = ( x)
˙ 2 . On en d´eduit que Ker ' = {±1} ; le noyau a deux ´el´ements, donc l’image a p 2 1 ´el´ements. Il y
p 1
p+1
a donc 2 carr´
es non nuls, ce qui fait 2 carr´
es modulo p et deux racines distinctes par carr´
e non nul.
p+1
p+1
c) Supposons que p ⌘ 3 mod 4. Montrer que si a˙ est un carr´e dans Z/pZ, alors ses racines sont a˙ 4 et a˙ 4 .
Solution : L’hypoth`ese p ⌘ 3 mod 4 permet de dire que p + 1 est divisible par 4 ; puisque a˙ est un carr´e, il existe x˙ tel
p+1
p+1
p+1
que a
˙ = x˙ 2 . On calcule alors (a˙ 4 )2 = (x˙ 2 )2 = x˙ p+1 = x˙ 2 = a˙ ; de mˆeme pour a˙ 4 .
d) Soit n = pq (entier de Blum) o`
u p et q sont congrus `
a 3 modulo 4. Montrer que a˙ est un carr´e dans Z/nZ
si et seulement si ses r´eductions dans Z/pZ et Z/qZ sont des carr´es.
Solution : Si a˙ est un carr´e, alors les r´eductions de a˙ dans Z/pZ et Z/qZ sont des carr´es.
R´
eciproquement, si a ⌘ x2 mod p et a ⌘ y 2 mod q , par le th´
eor`
eme chinois, comme p et q sont premiers entre eux, il
existe un entier m, unique modulo pq tel que m ⌘ x mod p et m ⌘ y mod q . On a alors a
˙ =m
˙ 2.
2
e) En d´eduire que si a˙ est un carr´e non nul dans Z/nZ, l’´equation x˙ = a˙ admet 4 solutions.
p+1
q+1
p+1
q+1
p+1
q+1
Solution : les quatre couples (a 4 mod p, a 4 mod q), (a 4 mod p, a 4 mod q),( a 4 mod p, a 4 mod q)
p+1
q+1
et ( a 4 mod p, a 4 mod q) fournissent via le th´
eor`
eme chinois les 4 solutions modulo pq .
Exercice 8 Logarithmes discrets
Soit p un nombre premier et g˙ un g´en´erateur de Z/pZ. Le probl`eme du logarithme discret est la r´esolution
de l’´equation g˙ x = a,
˙ pour a˙ donn´e dans (Z/pZ)⇥ .
a) Montrer que le probl`eme admet toujours une unique solution comprise entre 0 et p 2.
Solution : Puisque g˙ est un g´en´erateur de (Z/pZ)⇥ , pour tout ´el´ement a de (Z/pZ)⇥ , il existe x 2 N tel que g˙ x = a˙ .
˙ x = 15 pour p = 37.
b) R´esoudre les ´equations 2˙ x = 11 pour p = 13, puis 35
Solution : x = 7, puis x = 31 (d’o`u la n´ecessit´e de programmer).
c) Que se passe-t-il si p est tr`es grand ?
M´
ethodes de codage ou cryptage
Exercice 9 Le chi↵rement de C´esar
D´ecrire la m´ethode de codage et donner son ´ecriture math´ematique.
Solution : On choisit un entier a  26 et on consid`ere l’application x 7! x + a modulo 26.
Exercice 10 Un chi↵rement affine Terracher, Tale 2001
On assimile les 26 lettres A, B, · · · , Z de l’alphabet fran¸cais aux nombres 0, 1, · · · 25. On code alors un nombre
x ainsi : le nombre cod´e f (x) est le reste de la division euclidienne de 41x + 37 par 26.
a) Coder le mot ROIS.
b) D´eterminer un entier n tel que 41n ⌘ 1 modulo 26.
Solution : 41 ⇥ 7 = 287 = 260 + 27 ⌘ 1[26].
c) D´ecoder alors le mot IT OT en expliquant soigneusement la m´ethode utilis´ee.
Solution : On obtient F EV E
d) Ecrire la formule g´en´erale d’un chi↵rement affine.
2
Solution : Soit a premier avec 26, donc inversible modulo 26, et b un entier ; f (x) est le reste de la division euclidienne
de ax + b par 26.
Exercice 11 Le chi↵rement de Lester Hill, 1929
La fonction de codage agit sur des couples de nombres de l’ensemble {0, 1, · · · , 25}. Soit
f : {0, 1, · · · , 25} ⇥ {0, 1, · · · , 25} !
(x1 , x2 )
7!
{0, 1, · · · , 25} ⇥ {0, 1, · · · , 25}
(y1 , y2 ) = (5x1 + 11x2 mod 26, 8x1 + 3x2 mod 26)
a) Coder le mot REQUIN en d´etachant les trois blocs de deux lettres.
Solution : RE : (17, 4) 7! (129, 148) ⌘ (25, 18) ! ZS ;
QU : (16, 20) 7! (305, 188) ⌘ (19, 6) ! TG ;
IN : (8, 13) 7! (183, 103) ⌘ (1, 25) ! BZ.
On obtient ZSTGBZ.
b) Montrer que si (y1 , y2 ) = f (x1 , x2 ), alors
(
3y1 + 11y2 = 73x1 mod 26
8y1
5y2 = 73x2 mod 26
c) R´esoudre dans Z ⇥ Z l’´equation 73x + 26y = 1, avec 0  x  25.
Solution : 1 = 5 ⇥ 73 14 ⇥ 26
d) Ecrire la fonction de d´ecodage et d´ecoder YWFSLBNT.
Solution :
(
15y1 + 3y2 = x1 mod 26
14y1 + y2 = x2 mod 26
On obtient SUFKUZ.
e) G´en´eralisation.
Solution : On peut g´en´eraliser `a
(
y1 = ax1 + bx2 mod 26
y2 = a0 x1 + b0 x2 mod 26
Pour que le syst`
eme soit inversible, il faut que le d´
eterminant de la matrice associ´
ee au syst`
eme
inversible
modulo
✓
◆
cb0
ca0
a b
= ab0
a0 b0
a0 b soit
26. Dans ce cas, notons c son inverse modulo 26. La fonction de d´edocage est alors donn´ee par la matrice
cb
.
ca
Exercice 12 code Rivest, Shamir, Adleman (RSA),1977
Soient p et q deux nombres premiers distincts et e un entier.
a) Montrer que xp ⌘ x mod p pour tout entier x, puis que x(p 1)(q 1)+1 ⌘ x mod pq.
b) On consid`ere l’application e : x 2 Z 7! xe 2 Z/pqZ. A quelle condition l’application e est-elle bijective
de Z/pqZ dans Z/pqZ ? D´ecrire l’application r´eciproque.
c) Calculer '(pq), o`
u pour un entier positif n, '(n) repr´esente le nombre d’entiers compris entre 0 et n qui
sont premiers avec n.
d) Pour e entier premier avec '(pq), on appelle application de chi↵rement l’application e introduite en b)
et application de d´echi↵rement la r´eciproque. Quelle est l’application de d´echi↵rement de e ?
Application : Calculer e (4), puis d´eterminer l’application de chi↵rement dans les cas suivants :
– pour n = pq = 77 et e = 7 ; n = pq = 703 et e = 25.
Solution : p = 7 et q = 11, d’o`u 7 (4) = 47 = 256 ⇥ 43 = 25 ⇥ 64 = 60 modulo 77 ; 1 = 5 ⇥ 60 + 7 ⇥ 43 et
7
43 =id sur Z/77Z
p = 19, q = 37 et (p 1)(q 1) = 648, d’o`u 7 (4) = 47 = 256 ⇥ 43 = 1024 ⇥ 16 = 321 ⇥ 16 = 215 modulo
703
25
= 256 ⇥ 42 1 = 1024 ⇥ 42 0 = (321)2 ⇥ 415 = (403)2 ⇥ 45 = 16 ⇥ 321 = 215 modulo 703 ;
25 (4) = 4
1 = 13 ⇥ 648 + 587 ⇥ 25 et 25
587 =id sur Z/703Z
3
e) Expliquer comment utiliser ce code pour la signature de messages.
f ) Notons f l’inverse de e dans Z/'(pq)Z ; montrer que si l’on connaˆıt e, f et n, on peut factoriser n.
Solution : Puisqu’on connait e et f , on peut ´ecrire ef 1 = 2k r. Pour m 2 (Z/nZ)⇥ , on a mef 1 ⌘ 1 mod n. On
cherche `
a connaˆıtre la factorisation de n = pq .
l
l+1
l
Consid´
erons un message m et un entier l, 0  l < k tel que m2 r 6⌘ ±1[pq] et m2 r ⌘ 1[pq]. Alors x˙ = m
˙ 2 r est
une racine carr´
ee de 1 qui n’est pas 1 ni 1. En consid´
erant l’´
equation x˙ 2
1 = (x˙ 1)(x˙ + 1) = 0˙ , on constate que
si x˙
1 est divisible par p, il ne l’est pas par q . On en d´eduit p =pgcd(x 1, n), d’o`u un algorithme pour d´eterminer p,
puis q .
Exercice 13 chi↵rement de Rabin,1979
Soit n = pq o`
u p et q sont des nombres premiers congrus `
a 3 modulo 4 et B un entier compris entre 0 et
n 1.
On consid`ere la fonction
f : Z/nZ !
Z/nZ
˙
x˙
7! x(
˙ x˙ + B).
a) Montrer que 2˙ et 4˙ sont inversibles dans Z/nZ ; en d´eduire une mise sous forme canonique de l’´equation
x˙ 2 + x˙ B˙ = m
˙ 0.
Solution : p et q sont impairs, donc pq aussi. On en d´eduit que 2 et 4 sont inversibles dans Z/nZ. Notons c2 l’inverse
de 2 et c4 l’inverse de 4 ; on a c4 = c22 .
˙ = x˙ 2 + 2c2 B˙ x˙ = (x˙ + c2 B)
˙ 2 c2 B˙ 2 = (x˙ + c2 B)
˙ 2 c4 B˙ 2 . L’´equation x˙ 2 + x˙ B˙ = m
Alors x˙ 2 + x˙ B
˙ 0 est
2
2
2
0
˙
˙
´
equivalente `
a (x˙ + c2 B) = c4 B + m
˙ .
b) Montrer que si m
˙ 0 = f (m),
˙ l’´equation ci-dessus admet 4 solutions dans Z/nZ (cf. exercice 7).
Solution : Si l’on sait que l’´equation f (x) = m
˙ 0 admet une solution m
˙ , alors on sait que c4 B˙ 2 + m
˙ 0 est un carr´e
modulo pq et par l’exercice 7, il existe 4 solutions.
Application : n = 77 et B = 9 ; Alice re¸coit le message m0 = 22 de Bob. D´ecoder le message.
˙
Solution : On v´erifie que 11 ⌘ 3[4] et 7 ⌘ 3[4]. La fonction de codage est x(
˙ x˙ + 9)[77]
et 77 = 11 ⇥ 7.
D´
eterminons d’abord l’inverse de 2 modulo 77 : comme 2 ⇥ 39
77 = 1, l’inverse de 2 est 39. Il s’agit de r´esoudre
˙ 2 = 392 ⇥ 9˙ 2 + 22
˙ ou (x˙ + 43)
˙ 2 = 23
˙.
(x˙ + 39 ⇥ 9)
2
2
Utilisons l’exercice 7. 23 ⌘ 2[7] et 2 = 4 v´
erifie 4 = 16 ⌘ 2[7] ; de mˆ
eme 23 ⌘ 1[11] et 12 = 1 ⌘ 2[11] ; les quatre
˙ 1)
˙ , (4,
˙ 1)
˙ , ( 4,
˙ 1)
˙ et ( 4,
˙ 1)
˙ . Par le th´eor`eme chinois, on trouve les quatre
couples dans Z/7Z ⇥ Z/11Z sont (4,
˙ , 32
˙ , 45
˙ et 10
˙ . Le contexte (on part d’une lettre, donc modulo 26) permet de choisir la
solutions dans Z/77Z qui sont 67
solution m = 10.
c) Montrer que si l’on connaˆıt les quatre solutions de l’´equation ci-dessus, on peut factoriser n.
Solution : Si x et y sont deux solutions telles que x 6⌘ ±y modulo n, alors x y est divisible par p ou par q . On calcule
`
a nouveau pgcd(n, x
y), comme en 12.
Exercice 14 ElGamal, 1985
Alice choisit un nombre premier p, g˙ un g´en´erateur de (Z/pZ)⇥ et un entier a. Elle publie p, g et A = g a mod p.
Bob veut envoyer un message m `
a Alice. Il choisit un entier k et calcule K˙ = g˙ k .
a) Soit f l’application
f : Z/pZ ! (Z/pZ)⇥ ⇥ Z/pZ
˙ mA˙ k ).
m
˙
7!
(K,
Montrer que K˙ est inversible dans Z/pZ et calculer K˙ a mA˙ k .
b) Application : Alice choisit p = 1259, g = 3 et a = 100 ; Bob envoie le message (974, 1155). D´ecoder le
message.
˙ 1 = 857
˙ , 857
˙ 100 = 592
˙ .
Solution : K = 974, f (123) = (974, 1155) ; puis 974
c) Peut-on d´eterminer k choisi par Bob ? Comment peut-on d´eterminer m si l’on intercepte le message ?
Solution : R´esoudre g˙ k = K˙ ; puis calculer A = g a mod p pour casser le code ou calculer C˙ = g˙ ak connaissant
g˙ a = A˙ et g˙ k = K˙ (probl`eme de Diffie-Hellman).
4