Documente Academic
Documente Profesional
Documente Cultură
C
B
a6G2k&%bL
Envoi
a6G2k&%bL
Dechiffrement
D
B
Bonjour Batrice
Figure 1
Vulgarisation de la cryptographie cl publique
2.3 Lalgorithme RSA : une premire rencontre
Le code RSA est un systme cryptographique cl publique, par
opposition la cryptographie symtrique. Il repose sur lutilisation de
cette cl (diuse publiquement) et dune cl prive (garde secrte).
Lune permet de chirer un message, tandis que lautre sert le
dchirer. Ces cls assurent la condentialit du contenu envoy.
Le fonctionnement de ce code est assez complexe, mais com-
prendre comment le casser en est presque enfantin. En eet, il sut
dtre en mesure de dcomposer un grand nombre en ses facteurs pre-
miers an daccder au message authentique. Mais que faire lorsque
ce nombre est de lordre de 500 chires ? Certes, mme pour les
ordinateurs les plus puissants et les scientiques de notre poque,
4. Ces deux noms sont utiliss pour direncier A et B. On voit plus souvent Alice et Bob.
10
La cryptographie cl publique RSA Candidat n
o
000803022
la factorisation dun trs grand entier en un temps respectable est
impossible. . . pour le moment.
Le code RSA se base principalement sur la thorie des nombres,
plus particulirement sur larithmtique modulo n et le petit tho-
rme de Fermat gnralis par Euler. videmment, quelques notions
mathmatiques connexes sont aussi importantes. Elles seront expli-
cites la section suivante. La mthode cryptographique fonctionne
en raison de trois facteurs :
Il est dicile pour un ordinateur de factoriser un grand nombre ;
Il est facile pour un ordinateur de construire de grands nombres
premiers ;
Il est facile pour un ordinateur de vrier si un grand nombre
est premier ou non.
An de comprendre entirement le fonctionnement mathma-
tique du code RSA, il est ncessaire dintroduire certaines notions
fondamentales.
5
5. On fera en partie rfrence [17] sous la section Quelques outils de thorie des nombres,
p. 214217.
11
La cryptographie cl publique RSA Candidat n
o
000803022
3 Quelques prrequis en thorie des nombres
3.1 Plus grand commun diviseur
Dnition 1 (Plus grand commun diviseur). (i) Soit a, b Z
.
On dit que a divise b sil existe x Z
: x | a et x | b} (1)
3.2 Algorithme dEuclide
Lalgorithme dEuclide permet de dterminer le plus grand com-
mun diviseur de deux entiers dont on ignore la factorisation. Cest
Euclide, dans son septime tome des lments , qui instaura lap-
plication rpte de la division algorithmique stipulant quun entier
a peut tre divis par un entier positif b tel que le reste r de la
division est plus petit que b.
7
Thorme 2 (Algorithme dEuclide). Soit a, b N
tels que a b.
On eectue la division euclidienne de a par b selon la suite {r
i
}. On
nomme le quotient q
i
et le reste r
i
. Ainsi, on a
a = bq
1
+ r
1
, 0 r
1
b.
En substituant r
1
b, on obtient
b = r
1
q
2
+ r
2
, 0 r
2
r
1
.
Et en itrant, on a donc
r
i1
= r
i
q
i+1
+ r
i+1
, 0 r
i+1
r
i
. (2)
6. On utilisera plus souvent la notation (a, b) que pgcd(a, b).
7. Pour une explication approfondie sur lAlgorithme dEuclide tendu, le lecteur intress
se rfrera [4] sous la section The Euclidean Algorithm, p. 3135.
12
La cryptographie cl publique RSA Candidat n
o
000803022
La suite {r
i
} tant strictement dcroissante, il existe n N tel que
r
n+1
= 0. Alors, r
n
= (a, b).
Preuve Il faut tout dabord montrer que r
n
| a et r
n
| b. Puisque
r
n+1
= 0, la dernire quation scrit r
n1
= q
n+1
r
n
. Donc, r
n
| r
n1
.
On a galement que lavant dernire quation est r
n2
= q
n
r
n1
+r
n
.
Puisque r
n
| r
n1
, alors r
n
| q
n
r
n1
+ r
n
. Donc, r
n
| r
n2
. On itre
en remontant les quations une une. Finalement, on obtient r
n
| r
i
pour tout i. Ainsi, r
n
| r
1
q
2
+ r
2
= b. De la mme manire, puisque
r
n
| b et r
n
| r
i
, alors r
n
| bq
1
+r
1
= a. Comme de fait, r
n
| a et r
n
| b
et on peut conclure que r
n
| (a, b).
On pose d tel que d | a et d | b. On dsire montrer que
d | r
n
. On procde donc inversement. On sait que d | r
1
= a bq
1
.
Dans la seconde quation, on a d | b et d | r
1
et corollairement
d | r
2
= b r
1
q
2
. En itrant, on obtient d | r
i
pout tout i et d | r
n
.
On en conclue que r
n
= (a, b).
. Il existe
x, y Z tels que
ax + by = (a, b). (3)
Preuve On utilise la preuve du thorme 2. On pose que
c = (a, b). Puisquon sait que c = r
n
, on remonte les quations
une une. Comme r
n2
= q
n
r
n1
+ r
n
, alors
r
n
= r
n2
q
n
r
n1
Dans cette quation, on substitue r
n1
= r
n3
q
n1
r
n2
pour ob-
tenir
r
n
= r
n2
q
n
(r
n3
q
n1
r
n2
)
= r
n2
(1 + q
n1
q
n
) q
n
r
n3
On eectue une substitution rebours. On substitue
r
n2
= r
n4
q
n2
r
n3
et on itre. la n, on obtient
r
n
= r
1
x
1
+ r
2
y
1
pour x
1
, y
1
Z. En remplaant r
2
= b r
1
q
2
,
on obtient
13
La cryptographie cl publique RSA Candidat n
o
000803022
r
n
= r
1
x
1
+ (b r
1
q
2
)y
1
= r
1
(x
1
q
2
y
1
) + by
1
On substitue r
1
= a bq
1
pour nalement obtenir
r
n
= (a bq
1
)(x
1
q
2
y
1
) + by
1
= a(x
1
q
2
y
1
) + b(q
1
x
1
+ q
1
q
2
y
1
+ y
1
)
= ax + by
O x = x
1
q
2
y
1
et y = q
1
x
1
+ q
1
q
2
y
1
+ y
1
.
.
On dit que a est congru b modulo n , et on crit a b (modn),
si n | (a b), cest--dire sil existe x Z tel que a b = nx.
Proprits des congruences Soit a, b, c, d, x, y Z et n N.
Alors,
a c (mod n) et b d (mod n) = ab cd (mod n),
a c (mod n) et b d (mod n) = a + b c + d (mod n),
a c (mod n) et b d (mod n) = ax + by cx + dy (mod n).
3.5 Inverse modulaire
Thorme 5 (Inverse modulaire). Soit a, n Z
. On obtient xx
= kn o k Z, donc x x
(modn). De
l, on dduit que x = x
puisque x, x
5
2
.
12. Dans le cas o n est le produit de deux nombres premiers p et q, alors
(pq) = (p)(q) = (p1)(q 1). Ainsi, la fonction dEuler est multiplicative. La dmonstra-
tion de cette proprit est ici laisse de ct, mais elle se trouve en Annexe suivant la preuve
de [4], p. 138139. Il est galement noter que tout n > 0 peut scrire (n) =
d|n
(d) ou
encore (n) = n
p|n
(1 1/p) daprs le thorme fondamental de larithmtique.
15
La cryptographie cl publique RSA Candidat n
o
000803022
Preuve Puisque n est premier, ses seuls diviseurs possibles sont 1
et n. On a donc que tous les entiers infrieurs n sont relativement
premiers avec lui.
16
La cryptographie cl publique RSA Candidat n
o
000803022
4 Le principe mathmatique du code RSA
4.1 Le protocole dchange
Choix de p et q Le receveur choisit p, q P o P est lensemble
des nombres premiers.
13
Il calcule ensuite le module de chirement
n = pq. Pour gnrer p et q, il est possible de dterminer des grands
nombres au hasard pour ensuite eectuer un test de primalit sur
ceux-ci.
14
Les nombres p et q demeurent secrets.
Calcul de la fonction dEuler Le receveur calcule la fonction
dEuler (n) = (p 1)(q 1) partir de p et q.
Choix dune cl de cryptage Le receveur choisit un nombre
e {1, ..., n 1} tel que pgcd(e, (n)) = 1, ce qui signie que e
est relativement premier avec (n). Ce nombre constitue lexposant
de chirement et est appel cl de cryptage. Il est galement public.
Construction dune cl de dcryptage Daprs le thorme
Bachet-Bzout, il existe x, y Z tels que pgcd(e, (n)) = ex+(n)y.
Ainsi, il existe galement un inverse modulaire d {1, . . . , n 1}
tel que ed 1 (mod (n)). Le receveur calcule la cl de dcryptage
d avec lAlgorithme dEuclide tendu. Le couple (n, e) constitue la
cl publique, alors que le couple (n, d) constitue la cl prive.
Cryptage du message m envoyer Lexpditeur veut envoyer
un message m {1, . . . , n 1} tel que pgcd(m, n) = 1. Pour le
chirer, il calcule le reste de la division de m
e
par n grce la cl
publique. Ainsi, m
e
a (modn) o a {1, . . . , n1}. Lexpditeur
envoie le message crypt a au receveur.
Dcryptage du message m reu En recueillant le message crypt
a, le receveur calcule a
d
(mod n), ce qui redonne le message m.
13. La notation P est assez courante malgr ne pas tre universelle. Elle sera frquemment
utilise dans le prsent mmoire. noter que P N.
14. Les spcications sur les entiers p et q seront donnes la section 6.1.
17
La cryptographie cl publique RSA Candidat n
o
000803022
4.2 Le cur de lalgorithme
Comment se fait-il que le procd mathmatique de cryptage et
dcryptage fonctionne ? La rponse rside dans les proprits des
congruences.
Proposition 9 (Cryptage-dcryptage RSA). Si on encode un mes-
sage m tel que (m, n) = 1 comme a, o m
e
a (mod n), alors le
dcodage redonne m puisque a
d
m (mod n).
Preuve Si m
e
a (mod n), alors
a
d
(m
e
)
d
= m
ed
= m
k(n)+1
= m
k(n)
.m = (m
(n)
)
k
.m
1
k
.m = 1.m = m (mod n)
Eectivement, comme ed 1 (mod (n)), alors ed = k(n) + 1 o
k Z
))()) (6)
O est le nombre premier et son nombre de chires. Cette
opration gnre les deux entiers premiers
p = 2079837531178409018889287
q = 4219989946770158557629509.
Le produit de ces deux nombres donnent
n = pq = 8776893472488152265104597671066650101750835170083
et la fonction dEuler
(n) = (p 1)(q 1)
= 8776893472488152265104591371239172153183258651288.
Lentreprise cre galement sa cl de cryptage
e = 2189375175
19
La cryptographie cl publique RSA Candidat n
o
000803022
qui satisfait (e, (n)) = 1 et calcule avec lAlgorithme dEuclide
tendu
d = 6681565402936615015268898856751168789622988067411.
Un client dsire eectuer un achat. Son numro de carte de cr-
dit est 4960 9713 5329 0087, la date dexpiration est le 07/14 et
le code de vrication est 597. Le message envoyer est donc
m = 49609713532900870714597. Avant denvoyer, le logiciel calcule
m
e
a 4545491832524543130442973
810910307214256675191921 (mod n).
la rception, la rme calcule
a
d
49609713532900870714597 (mod n).
Malheureusement, les entiers p et q sont trop petits dans cet exemple
et il serait facile pour un ordinateur deectuer la factorisation. De
fait, Maple 15 install sur un ordinateur avec processeur Intel
Core i7 de 1,60 GHz factorise n en 2,1 secondes.
4.4 Une signature lectronique
La mthode dcrite jusqu prsent fonctionne de manire ex-
haustive, mais nglige toutefois une information importante, soit
lauteur du message chir. Prfrablement, les virements banquaires
scuriss par RSA doivent tre accompagns dune signature lec-
tronique, sans quoi il devient bien simple de se faire passer pour
quelquun dautre.
Dans un tel scnario, tant lexpditeur et le receveur se fabriquent
un systme cl publique, soit un triplet (n, e, d). Rappelons que
la cryptographie RSA non-authentie demande au receveur seule-
ment de crer sa cl. Ici, deux cls publiques sont gnres.
Fabrication des deux cls Lexpditeur publie (n
A
, e
A
) et garde
secrtement d
A
, tandis que le receveur publie (n
B
, e
B
) et garde se-
crtement d
B
.
Signature du message Lexpditeur dbute par apposer sa signa-
ture en calculant m
1
m
d
A
(mod n
A
). Encore une fois, il faut que
(m
1
, n
A
) = 1.
20
La cryptographie cl publique RSA Candidat n
o
000803022
Cryptage du message m envoyer Si (m
1
, n
B
) = 1, il chire
ensuite avec la cl de cryptage du receveur m
2
m
e
B
1
(mod n
B
)
puis lenvoie. Si jamais (m
1
, n
B
) = 1, ce qui est trs peu probable
puisque n
B
ne possde que deux diviseurs tant p
B
et q
B
, lexpdi-
teur doit lgrement changer son message m tel que (m
1
, n
A
) = 1 et
(m
1
, n
B
) = 1.
Dcryptage du message m An de dcrypter le message m, le
receveur doit tout dabord rcuprer m
1
. Pour ce faire, il eectue
m
1
m
d
B
2
(mod n
B
). Enn, il retrouve le message m en utilisant
e
A
tant public en calculant m m
e
A
1
(mod n
A
).
En se basant sur la preuve de la proposition 1 la section 3.4,
il est possible de montrer le processus mathmatique utilis pour le
recouvrement du message sign. En eet,
m
d
B
2
m
e
B
d
B
1
m
k
1
(n
B
)+1
1
(m
(n
B
)
1
)
k
1
.m
1
m
1
(mod n
B
).
Par ailleurs,
m
e
A
1
m
d
A
e
A
m
k
2
(n
A
)+1
(m
(n
A
)
)
k
2
.m m (mod n
A
).
avec k
1
, k
2
Z
.
15. Il y a donc 2
7
= 128 manires de disposer une telle combinaison.
16. On dcoupe habituellement le texte en blocs et on eectue le cryptage-dcryptage RSA
sur chacun deux an de faciliter la tche.
17. Le tableau complet est facilement accessible sur le web.
22
La cryptographie cl publique RSA Candidat n
o
000803022
5 Construire de grands nombres premiers
5.1 Une mthode gnrale
Le code RSA ncessite la gnration de deux trs grands nombres
premiers. Pour ce faire, on gnre au hasard des nombres entiers de
chires et on teste sils sont premiers. Le thorme des nombres
premiers arme que pour tout x R
+
, le nombre (x) est dni
comme le nombre dentiers premiers infrieurs ou gaux x. Ainsi,
il donne la distribution asymptotique des nombres premiers parmi
les entiers.
5.2 Le thorme des nombres premiers et (x)
Thorme 10 (Thorme des nombres premiers).
18
Soit
(x) = #{p x | p P} (7)
alors
(x)
x
ln(x)
= lim
x+
(x)
ln(x)
x
= 1. (8)
Si on choisit au hasard un nombre n, on peut calculer approxi-
mativement la probabilit que n soit premier. En eet, on a
Prob(n P)
n
ln(n)
n
=
1
ln(n)
. (9)
Par exemple, on dsire avoir un entier premier n de = 500 chires.
On calcule avec (9) la probabilit de tirer un nombre qui sera impair.
Par consquent, on veut un nombre se terminant par {1, 3, 5, 7, 9}.
On eectue
_
1
2
_
ln(10
500
) =
_
1
5
_
500 ln(10) = 575, 646. On a donc
environ une chance sur 576 davoir un nombre premier en tirant au
hasard un entier de 500 chires.
5.3 Le test de primalit de Solovay-Strassen
Solovay-Strassen est un test probabiliste permettant de savoir
si un nombre impair est un nombre compos ou probablement pre-
mier, contrairement un test dterministe qui conrme la prima-
lit dun nombre.
19
Larticle original [14] propose lutilisation de
18. La preuve est dun niveau trs avanc et ne sera pas prsente ici.
19. Le test de primalit AKS (Agrawal, Kayal et Saxena) est un test dterministe.
23
La cryptographie cl publique RSA Candidat n
o
000803022
Solovay-Strassen pour obtenir de grands nombres premiers. Ce test
utilise toutefois le symbole de Jacobi.
5.3.1 Le symbole de Jacobi J(a, b)
Dnition 11 (Symbole de Jacobi). Soit a, b N tels que (a, b) = 1.
Le symbole de Jacobi prend les valeurs {0, +1, 1}. Si b P, alors
20
J(a, b) =
_
_
0 si a 0 (mod b)
+1 si x N x
2
a (mod b)
1 si un tel x.
(10)
5.3.2 Lalgorithme vulgaris
Thorme 12 (Test de primalit de Solovay-Strassen). Soit
E = {1, . . . , n 1} . Si n P et si a E, alors
21
_
(a, n) = 1
J(a, n) a
n1
2
(mod n)
(11)
Si n / P, alors au moins la moiti des nombres de E ne satisfont
pas (10). On dira quils chouent au test. Ds quun nombre a E
choue au test, on sait que n nest pas premier. Si on choisit a E
au hasard, on a donc
Prob(a russit le test | n / P)
1
2
. (12)
Lalgorithme de Solovay-Strassen consiste choisir alatoirement,
r fois de suite, n N et a {1, . . . n 1} tels que (a, n) = 1,
et de comparer J(a, b) et a
n1
2
(mod n). Ds que lon trouve un
rsultat dirent, on est certain que n est compos. Au contraire,
si on trouve un rsultat identique chaque essai r conscutif, alors
on peut armer que n P avec une probabilit X suprieure
X = 1
_
1
2
_
r
.
22 23
20. Si n / P, on peut alors crire b = p
1
pr et J(a, b) est dni par
J(a, b) = J(a, p
1
) J(a, pr) =
n
i=1
J(a, p
i
).
21. Euler a prouv que pour tout nombre premier p impair,
_
a
p
_
a
p1
2 (mod p) o
_
a
p
_
est le symbole de Legendre.
22. r x, lalgorithme de Solovay-Strassen prend de lordre de r(log n)
k
oprations.
23. Des supplments sur Solovay-Strassen sont disponibles en Annexe dont un exemple de
test sur un nombre n donn. Par ailleurs, le graphique 1 aussi en Annexe prsente X(r) et
montre la convergence htive vers 1,0 partir denviron r = 10 essais.
24
La cryptographie cl publique RSA Candidat n
o
000803022
6 La cryptographie moderne
6.1 Le RSA aujourdhui
Le chire RSA, malgr avoir t invent il y a plus de trente ans,
tient toujours. Il a vritablement incit des centaines de mathma-
ticiens trouver de meilleurs algorithmes capables de factoriser n
en un temps raisonnable. ce jour, personne na encore t en me-
sure de briser le fameux code. Il sut daugmenter le nombre de
chires de n pour confondre les plus astucieux chercheurs se pen-
chant sur le sujet. La conance quinspire lalgorithme RSA repose
principalement sur lchec. vrai dire, toutes les tentatives de bri-
ser le code depuis se sont avres vaines et nont conduites qu de
simples spcications sur p, q, e et d.
Le tableau 1 de larticle original [14] valuait en 1978 74 ans
le temps ncessaire pour factoriser un nombre de 100 chires,
3,810
9
annes pour un nombre de 200 chires et 4,210
25
annes
pour un nombre de 500 chires. tant donn lvolution fulgurante
du domaine de linformatique et laugmentation de la puissance des
ordinateurs, un n de 100 chires est maintenant dconseill. Selon
Delahaye dans [7] et [18], les experts recommandent des nombres
n de 768-bit (232 chires) pour des donnes trs peu importantes,
mais ils conseillent 1024-bit (309 chires) pour un usage commer-
cial et 2048-bit (617 chires) pour un contenu gard secret sur une
longue priode de temps.
Le RSA est implant dans plus de 300 millions de programmes in-
formatiques. Les platformes Windows, Mac OS et Linux contiennent
ncessairement des programmes cachs utilisant lalgorithme RSA.
En outre, plusieurs institutions gouvernementales, universitaires et
mme militaires lutilisent. Le SWIFT (Society for Worldwide In-
terbank Financial Telecommunication) lemploie galement.
6.2 Des algorithmes pour factoriser n
Il existe plusieurs algorithmes de factorisation pour de grands en-
tier n. Les plus ecaces sont le crible quadratique de Pomerance, la
mthode des courbes elliptiques de Lenstra ainsi que le crible gn-
25
La cryptographie cl publique RSA Candidat n
o
000803022
ral sur les corps de nombres
24
de Pollard, Adleman, Buhler, Lenstra
et Pomerance, soit le meilleur algorithme de factoriation connu
ce jour.
25
Ce dernier a dailleurs permis Thorsten Kleinjungle et
al. en dcembre 2009 de factoriser un n de 232 chires (RSA-768)
aprs plus de 2 ans de recherche dans le cadre du RSA Factoring
Challenge.
26
6.3 Lordinateur quantique
En 1994, Peter W. Shor mit au point un algorithme probabi-
liste thorique capable de factoriser un entier n en temps polyno-
mial mieux connu sous le nom dAlgorithme de Shor.
27
Malheureu-
sement, ce protocole ne fonctionne que sur un ordinateur quantique
qui na pas encore t invent, mme en 2012. Si on russit un jour
construire de telle machine calculer, la cryptographie mathma-
tique sera irrmdiablement branle, si ce nest pas jamais com-
promise. La factorisation de cls de plus de 500 chires ne prendrait
alors que quelques minutes ! Soulignons que de relles dmarches
ont t entreprises quant la cration dun ordinateur quantique.
En 2001, lquipe du laboratoire dIBM sous la supervision dIsaac
Chuang russit factoriser le nombre 15 en 35 sur un ordinateur
sept bits quantiques simultanment dans un tat superpos.
28
Il fau-
dra encore quelques annes, voire des dizaines, avant deectuer la
factorisation dun n de 2048-bit. Lalgorithme RSA est donc encore
en scurit pour un bon moment.
24. Lide exploite par une telle mthode vient de Pierre de Fermat : si on trouve x, y Z
tels que x
2
y
2
(modn), alors (x+y)(xy) = 0 (modn) et le pgcd(x+y, n) ou pgcd(xy, n)
donne un diviseur non trivial de n.
25. Il utilise O
_
exp
_
_
64
9
log n
_ 1
3
(log log n)
2
3
__
tapes pour factoriser un nombre entier n.
26. Le lecteur intress se rfrera [1] pour plus dinformations sur la procdure math-
matique utilis pour factoriser RSA-768.
27. Lalgorithme fonctionne en temps O((log n)
3
) et en espace O(log n). On nlaborera
point sur le principe de lalgorithme de Shor, puisquil dcoule de notions mathmatiques et
physiques extrmement pousses pouvant faire lobjet dun seul mmoire.
28. Voir [16] pour plus de dtails sur la procdure.
26
La cryptographie cl publique RSA Candidat n
o
000803022
7 Conclusion
Somme toute, il est non seulement possible, mais galement trs
astucieux de faire usage de la thorie lmentaire des nombres en
cryptographie an de chirer et dchirer des messages. On a, comme
de fait, montr par lentremise de diverses notions mathmatiques
relatives aux proprits des nombres premiers le fonctionnement
algorithmique du protocole RSA en sattardant principalement au
processus dencodage-dcodage en plus dy joindre une explication
dtaille sur la signature lectronique et llaboration de grands
nombres premiers par mthode analytique. Partant, on a mis lu-
mire sur le gnie de Rivest, Shamir et Adleman qui, trente-quatre
ans aprs, dmontre toujours son inhrente lgance et son prestige
malgr larrive de nouveaux algorithmes de cryptage symtrique
tels le DES (Data Encryption Standard) et le AES (Advanced En-
cryption Standard) sur lchiquier commercial.
La cryptographie cl publique RSA est une invention qui, comme
on la mentionn, a encore de bien belles annes devant elle. Les ma-
thmaticiens creront-ils un jour un code rellement impossible d-
crypter, aboutissement de leur ultime qute du secret absolu ? Seule
la cryptographie quantique changera la donne. On dit que la Pre-
mire Guerre mondiale a t la guerre des chimistes avec le chlore et
le gaz moutarde et que la Deuxime a t celle des physiciens avec la
bombe atomique. Certes, la Troisime, sil y en a une, sera celle des
mathmaticiens qui eux auront en main larme suprme : le contrle
de linformation.
27
La cryptographie cl publique RSA Candidat n
o
000803022
Mdiagraphie
[1] Aoki K., Franke J., Lenstra A.K., Thom E., Bos J. W., Gaudry
P., Kruppa A., Montgomery P. L., Osvik D. A., te Riele H., Ti-
mofeev A. & P. Zimmermann. Factorization of a 768-bit RSA
modulus , ACM Digital Library, Crypto 10 Proceedings of the
30
th
annual conference on advances in cryptology, 2010.
[2] Baldoni M. W., Ciliberto C. & G. M. Piacentini Cattaneo. Ele-
mentary number theory, cryptography and codes , Universit di
Roma, Rome (Italie), ditions Springer, 2009, 522 pages.
[3] Bayart, Frdric. La cryptographie explique , BibMath,
www.bibmath.net/crypto/plan.php3, janvier 2012.
[4] Burton M., David. Elementary number theory , University of
New Hampshire, Durham (.-U.), Allyn & Bacon Inc., 390 pages.
[5] Cayrel, Pierre-Louis. Arithmtique modulaire pour la crypto-
graphie , Universit de Limoges, Limoges (France), Bases de
donnes IUT, 47 pages.
[6] de Koninck, Jean-Marie & Armel Mercier. Introduction la
thorie des nombres , Mont- Royal (Canada), ditions Modulo,
1994, 254 pages.
[7] Delahaye, Jean-Paul. La cryptographie RSA 20 ans aprs ,
Pour la Science, n
o
267, 2000.
[8] Dietzfelbinger, Martin. Primality testing in polynomial time :
from randomized algorithms to PRIMES is in P , Lecture Notes
in Computer Science (LNCS), vol. 3000, Springer Editions, 2004,
147 pages.
[9] Ireland, David. RSA algorithm , DI Managemant (Cryptogra-
phy), www.di-mgt.com.au/rsa_alg.html , janvier 2012.
[10] Maplesoft. Maple 15.01 , Waterloo Maple Inc., Ontario
(Canada), 2011.
[11] Oetiker T., Partl H., Hyna I. & E. Schlegl. The not so short
introduction to L
A
T
E
X2
_
1 m + 1 2m + 1 (n 1)m + 1
2 m + 2 2m + 2 (n 1)m + 2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i m + i 2m + i (n 1)m + i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
m 2m 3m nm
_
_
(13)
On considre la i-me ligne de la matrice A. Si (m, i) = d > 1,
alors aucun lment de la i-me nest relativement premier avec m
et donc ne lest ncessairement pas avec mn. Tous les lments de la
i-me ligne tant de la forme km+i o k = n1, si (m, i) = d > 1,
alors d | m et d | i selon la dnition du pgcd et d | km + i. De
ce fait, pour trouver la fonction (n) tant le nombre dentiers dans
lensemble {1, . . . , mn1} qui sont relativement premiers avec mn,
il sut dexaminer la i-me ligne telle que (m, i) = 1. On compte
(mn) lignes satisfaisant ce critre. Parmi ces lignes, on doit main-
tenant dterminer le nombre dentiers relativement premiers avec
mn. On a i, m + i, 2m + i, . . . , (n 1)m + i. Puisque (m, i) = 1,
chaque entier n est relativement premier avec m. De tels entiers
forment un systme complet de rsidus modulo n et donc il y a
exactement (n) de ces entiers qui sont relativement premiers avec
n. Comme (n) entiers sont relativement premiers avec m, ils le sont
ncessairement avec mn.
En rsum, il y a prcisment (m) lignes de la matrice A conte-
nant des entiers relativement premiers avec mn. Chacune de ces
lignes contient (n) entiers relativement premiers avec mn. Ainsi,
(mn), soit le nombre total dentiers de A relativement premiers
avec mn, vaut bien (m)(n).
30
La cryptographie cl publique RSA Candidat n
o
000803022
8.2 Supplments sur le test de primalit de Solovay-Strassen
8.2.1 Pseudocode de lalgorithme
Selon [8], lalgorithme peut tre crit comme suit :
Entres : n : variable entire impaire dont on veut connatre la
primalit ; r : variable qui reprsente le nombre de fois o la primalit
sera teste.
Sortie : compos si n est compos, sinon probablement premier
rpter r fois :
choisir a au hasard dans {2, . . . , n 1}
x J(a, n)
si x = 0 ou a
n1
2
x (mod n), alors retourne compos
retourne probablement premier.
8.2.2 Exemple
On veut savoir si le nombre impair n = 713 est premier. On
calcule
n1
2
= 356. On choisit ensuite a = 123 < n et on teste
a
n1
2
(mod n) = 123
356
(mod 713) = 94.
Aprs, on dtermine le symbole de Jacobi modulo n. Cette opration
exige une bonne connaissance des proprits de J(a, n).
J(a, n) (mod n) = J(123, 713) (mod 713) = 1.
Dja, on sait que n est compos, puisque J(a, n) = a
n1
2
(modn). Si
lgalit avait t vraie, on aurait du recommencer avec un a di-
rent, et ce, r fois de suite jusqu ce quon obtienne une probabilit
susante que n soit premier . Dans cet exemple, ctait facile voir
que 713 = 23 31.
31
La cryptographie cl publique RSA Candidat n
o
000803022
8.3 Graphique 1
Probabilit X(r) = 1
_
1
2
_
r
quun nombre n soit premier en
fonction du nombre dessais r conscutifs et alatoires selon
lalgorithme de Solovay-Strassen
r
X(r)
30 20 10
0,2
0,4
0,6
0,8
1,0
Graphique ralis avec Maple 15
32