Sunteți pe pagina 1din 32

La cryptographie cl publique RSA :

un algorithme pour chirer et dchirer


des messages en toute condentialit
Par Joey Litalien, candidat n
o
000803022
Mmoire de recherche en mathmatique prsent
lOrganisation du Baccalaurat International
dans le cadre du programme du diplme
3945 mots
Collge Franois-Xavier-Garneau, Qubec, QC, Canada
Session dexamens de mai 2012
La cryptographie cl publique RSA Candidat n
o
000803022
Rsum
Le souci de condentialit na jamais t aussi grand
depuis larrive des mdias sociaux et des systmes de
commandes en ligne sur la toile, mais quel point les
procdures utilises aujourdhui pour crypter et dcryp-
ter des messages sont-elles ables ? Considrant les dif-
frents algorithmes dencodage assurant la scurit des
transactions bancaires et des changes dinformation, Ri-
vest, Shamir et Adleman publirent en 1978 larticle A
Method for Obtaining Digital Signatures and Public-Key
Cryptosystems mettant au point la cryptographie cl
publique RSA et pavant ainsi la voie vers une vritable
rvolution du domaine de la cryptologie. Les auteurs sug-
grent une mthode mathmatique scuritaire exploitant
la thorie lmentaire des nombres, principalement larith-
mtique modulaire, la fonction (n) dEuler ainsi que le
Petit thorme de Fermat et ciblent astucieusement le po-
tentiel mathmatique manant de la dicult factoriser
en un temps raisonnable un grand nombre n issu du pro-
duit de deux nombres premiers p et q. Ce mmoire se veut
une explication mathmatique dtaille du protocole RSA
et prcise comment et pourquoi il fonctionne toujours de-
puis son invention tout en commentant sa valeur sur le
march mondial. videmment, une certaine partie de cet
essai sera consacre aux notions fondamentales de thorie
des nombres ncessaires la comprhension de la matire.
Ayant les outils mathmatiques requis, le lecteur sera en
mesure de comprendre lalgorithme et les principes qui en
dcoulent, dont la signature lectronique et la construc-
tion de grands nombres premiers par mthode analytique
utilisant la fonction des nombres premiers (x) et le sym-
bole de Jacobi J(a, b) pour le test de primalit de Solovay-
Strassen.
2
La cryptographie cl publique RSA Candidat n
o
000803022
Remerciements
Comme prambule ce mmoire, je souhaiterais adresser mes
plus sincres remerciements aux personnes qui mont apport leur
aide et qui ont contribu llaboration de ce mmoire ainsi qu la
russite de ces deux formidables annes au Baccalaurat Internatio-
nal.
Je tiens exprimer ma reconnaissance envers Monsieur Mario
Fortin, professeur au dpartement de mathmatiques du Collge
Franois-Xavier-Garneau, qui sest toujours montr lcoute tout
au long de la ralisation de ce mmoire. Je lui communique toute
ma gratitude pour laide et le temps quil a bien voulu me consacrer
et sans qui ce mmoire naurait jamais vu le jour. Je remercie aussi
au passage Madame Louise Coll, professeur au mme dpartement,
pour avoir nourri mon amour inconditionnel des mathmatiques du-
rant mes trois premires sessions au collge.
Jaimerais galement remercier Olivier M. pour mavoir agrable-
ment initier au langage L
A
T
E
X2

, Simon-Pierre R. pour son support


mathmatique et ses commentaires pertinents, Olivier S. pour son
soutien moral, mes parents pour mavoir constamment appuy dans
mes tudes collgiales, Carl F. Gauss pour son impensable gnie et
certains proches qui ont nalement compris quil tait bien possible
de faire des mathmatiques durant les longues priodes de vacances.
Merci tous et toutes.
3
La cryptographie cl publique RSA Candidat n
o
000803022
Jai trouv une merveilleuse dmonstration de cette proposition,
mais la marge est trop troite pour la contenir
Pierre de Fermat (16011665),
sur son dernier thorme.
4
La cryptographie cl publique RSA Candidat n
o
000803022
Table des matires
1 Introduction 7
2 Un prlude au cryptosystme RSA 9
2.1 Rivest, Shamir et Adleman . . . . . . . . . . . . . . . 9
2.2 Une simplication de la cryptographie asymtrique . 10
2.3 Lalgorithme RSA : une premire rencontre . . . . . . 10
3 Quelques prrequis en thorie des nombres 12
3.1 Plus grand commun diviseur . . . . . . . . . . . . . . 12
3.2 Algorithme dEuclide . . . . . . . . . . . . . . . . . . 12
3.3 Identit de Bzout . . . . . . . . . . . . . . . . . . . 13
3.4 Congruence modulo n . . . . . . . . . . . . . . . . . 14
3.5 Inverse modulaire . . . . . . . . . . . . . . . . . . . . 14
3.6 Fonction (n) dEuler . . . . . . . . . . . . . . . . . 15
3.7 Petit thorme de Fermat gnralis par Euler . . . . 16
4 Le principe mathmatique du code RSA 17
4.1 Le protocole dchange . . . . . . . . . . . . . . . . . 17
4.2 Le cur de lalgorithme . . . . . . . . . . . . . . . . 18
4.3 Deux exemples . . . . . . . . . . . . . . . . . . . . . 18
4.3.1 Utilisation de petits entiers p et q . . . . . . . 18
4.3.2 Application aux changes commerciales . . . 19
4.4 Une signature lectronique . . . . . . . . . . . . . . . 20
4.5 Comment chirer du texte . . . . . . . . . . . . . . . 21
4.5.1 Tableau 1 . . . . . . . . . . . . . . . . . . . . 22
5 Construire de grands nombres premiers 23
5.1 Une mthode gnrale . . . . . . . . . . . . . . . . . 23
5.2 Le thorme des nombres premiers et (x) . . . . . . 23
5.3 Le test de primalit de Solovay-Strassen . . . . . . . 23
5.3.1 Le symbole de Jacobi J(a, b) . . . . . . . . . . 24
5.3.2 Lalgorithme vulgaris . . . . . . . . . . . . . 24
6 La cryptographie moderne 25
6.1 Le RSA aujourdhui . . . . . . . . . . . . . . . . . . . 25
6.2 Des algorithmes pour factoriser n . . . . . . . . . . . 25
6.3 Lordinateur quantique . . . . . . . . . . . . . . . . . 26
5
La cryptographie cl publique RSA Candidat n
o
000803022
7 Conclusion 27
8 Annexes 30
8.1 Preuve que (n) est multiplicative . . . . . . . . . . . 30
8.2 Supplments sur le test de primalit de Solovay-Strassen 31
8.2.1 Pseudocode de lalgorithme . . . . . . . . . . 31
8.2.2 Exemple . . . . . . . . . . . . . . . . . . . . . 31
8.3 Graphique 1 . . . . . . . . . . . . . . . . . . . . . . . 32
6
La cryptographie cl publique RSA Candidat n
o
000803022
1 Introduction
Lardent dsir dlucider un mystre a toujours t pour lhomme
une constante source de ludisme. Bien quil ait parfois t indirent
lide de connatre linconnu, lhomme sest exalt plus souvent
quautrement devant lnigme et le secret ayant jonch son histoire.
Des innombrables guerres antiques jusquau jour prsent, ces luttes
dinformation ont dlibrment forc les tats se doter de codes
sophistiqus capables dassurer la condentialit des messages en-
voys. Ils ont dailleurs jou un rle prpondrant dans llaboration
de moyens de communication scuritaires et ont permis daboutir
la dnition que lhomme daujourdhui se fait de la cryptographie
moderne.
Le chire de Csar, lanalyse frquentielle linguistique, le chire
de Vigenre bris par Babbage, le tlgramme de Zimmerman, la
machine Enigma, les travaux de Turing pendant la Seconde Guerre
mondiale et la cryptographie symtrique
1
; voil un bref portrait de
lvolution de la cryptologie qui a men la scurit infrangible que
nous enn, certains connaissons aujourdhui.
La cryptologie, science contemporaine englobant la cryptographie
et la cryptanalyse, constitue pour moi laboutissement dune longue
pope cisele par les arcanes de la diplomatie. Elle rassemble en
elle seule le savoir de centaines de scientiques qui, au cours de
leurs recherches, ont labor des systmes capables de dissimuler
et de prserver les messages des plus grands stratges militaires et
politiques. mes yeux, elle reprsente une facette trop souvent ou-
bli des sciences mathmatiques, une invention hors pair qui gt
lombre dune socit o la condentialit y est presque inalinable.
Je mattarderai essentiellement la cryptographie cl publique
de type RSA en tudiant le processus mathmatique de lalgorithme
dcrit par ses inventeurs Rivest, Shamir et Adleman dans larticle
original A Method for Obtaining Digital Signatures and Public-
Key Cryptosystems [14]. Fondamentalement, je montrerai com-
ment chirer et dchirer un message en toute scurit, tout en abor-
dant les notions mathmatiques ncessaires relatives la thorie des
1. Le lecteur intress se rfrera [19] pour une histoire explique de la cryptologie.
7
La cryptographie cl publique RSA Candidat n
o
000803022
nombres telles que la thorie des congruences de Gauss, lalgorithme
dEuclide, le thorme dEuler manant du petit thorme de Fermat
et la fonction (n). Des exemples concrets seront galement prsen-
ts an de valider le cryptosystme RSA, ainsi quune explication
rigoureuse concernant la signature lectronique. La gnration de
grands nombres premiers et le test de primalit de Solovay-Strassen
utilisant le symbole de Jacobi J(a, b)
2
seront nalement explicits,
suivis dune discussion sur la valeur du code RSA ce jour.
2. Je suis ici la notation de [17], mais il est plus frquent de voir
_
a
b
_
.
8
La cryptographie cl publique RSA Candidat n
o
000803022
2 Un prlude au cryptosystme RSA
2.1 Rivest, Shamir et Adleman
En 1976, Whiteld Die et Martin Hellman rent paratre leur
article New directions in cryptography portant sur llabora-
tion dune cryptographie asymtrique et introduisirent le concept
de cryptographie cl publique sans toutefois suggrer un algo-
rithme mathmatique lexpliquant rigoureusement. la lecture de
ce papier, Ronald L. Rivest, diplm de Yale en mathmatique, doc-
teur de Stanford et ce temps chercheur en informatique au MIT
(Massachussets Institute of Technology), entreprit des recherches en
cryptographie an de mettre au point une fonction sens unique
capable de rpondre aux exigences dun chire asymtrique.
Leonard M. Adleman et Adi Shamir, galement chercheurs en
mathmatique informatique, se joignirent bientt Rivest an de
former une quipe idyllique et accomplie. Rivest et Shamir tant
tous deux des spcialistes de linformatique capable dintgrer par-
faitement des nouvelles ides mathmatiques et de cibler assidment
le cur des problmes, Adleman se faisait le censeur du trio. Aprs
un an dhypothses et de thories insolites bien souvent renverses
par Adleman, lquipe en vint mettre en uvre le concept de cryp-
tographie asymtrique.
Ron Rivest t la dcouverte en 1977. Or, celle-ci tant le fruit
dune collaboration sans prcdent, il dcida dajouter les noms de
ses collgues son article. Prt contempler lannihilation de son
uvre, Rivest porta son article Adleman qui ny dcela cependant
aucune faiblesse apparente. Sa seule et unique critique fut la liste
des auteurs. Considrant quil navait pas assez contribu la dcou-
verte, Adleman demanda la rsiliation de sa signature, mais Rivest
refusa. Larticle [14] parut alors en 1978, contenant le nom des trois
mathmaticiens. Le sytme RSA acronyme de Rivest, Shamir et
Adleman tant n et allait devenir le chire le plus important de
la cryptographie moderne.
3
3. Voir [19] sous la section Alice et Bernard sachent en public, p. 338340.
9
La cryptographie cl publique RSA Candidat n
o
000803022
2.2 Une simplication de la cryptographie asymtrique
La cryptographie asymtrique utilise des fonctions sens unique
et brche secrte, cest dailleurs ce qui fait sa force. Une telle
fonction est dicilement inversible moins de possder la cl prive,
mais est facilement utilisable pour quiconque la connat.
On suppose quAlain veut envoyer un message Batrice.
4
Pour
ce faire, il doit tout dabord contacter cette dernire an quelle
gnre deux cls : une cl publique C
B
quelle envoie Alain et
une cl prive D
B
quelle conserve prcieusement. Alain possdant
la cl publique C
B
, il crypte son message et lenvoie Batrice. la
rception, elle utilise sa cl prive D
B
pour dcrypter le texte. Dans
la mesure o les deux compagnons dsireraient partager un secret,
ils doivent tous deux gnrer les deux cls direntes et schanger
les cls publiques.
Bonjour Batrice
Chiffrement

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

tel que a = bx. On note


la division a | b. (ii) Le plus grand commun diviseur, abrg pgcd,
de a et b est not (a, b) ou pgcd(a, b).
6
Il satisfait aux deux critres
suivants :
(a, b) | a et (a, b) | b
Si x | a et x | b, alors x | (a, b)
Plus formellement, on crit
pgcd(a, b) = max{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).

3.3 Identit de Bzout


Thorme 3 (Thorme de Bachet-Bzout). Soit a, b Z

. 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
.

3.4 Congruence modulo n


La thorie des congruences a t introduite par Carl Friedrich
Gauss (17771855) dans son ouvrage Disquisitiones Arithmeti-
cae , publi en 1801 alors quil ntait g que de 24 ans.
8
Elle
est de mme appele larithmtique modulo n et est une thorie
prpondrante en thorie algbrique des nombres puisquelle permet
la rsolution des problmes portant sur les nombres entiers. Elle d-
coule de lanalyse du reste obtenu par une division euclidienne.
Dnition 4 (Congruence sur les entiers modulo n). Soit n Z

.
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

tels que a < n. Si


(a, n) = 1, alors il existe x {1, . . . , n1}
9
unique appel inverse
8. Voir [4] sous la section Karl Friedrich Gauss, p. 68.
9. Lensemble {1, . . . n 1} sous-entend quil sagit de lensemble {1, 2, 3, . . . n 1}. On
utilisera ici et par la suite la premire notation.
14
La cryptographie cl publique RSA Candidat n
o
000803022
modulaire tel que
10
ax 1 (mod n). (4)
Preuve Comme (a, b) = 1, le thorme 3 assure lexistence de
x, y Z tels que ax+ny = (a, n) = 1. Donc, ax = 1ny, ou encore
ax 1 (mod n). Si x / {1, . . . , n 1}, alors on peut lui ajouter ou
retrancher un multiple de n pour ly ramener sans pour cela changer
la congruence ax 1 (mod n). Donc, lexistence est prouve.
Maintenant, supposons quil existe une deuxime solution
x

{1, . . . , n 1} telle que ax

1 (mod n). Alors, on a que


a(x x

) 0 (mod n). Ainsi, n | a(x x

). Comme (a, n) = 1, alors


n | xx

. On obtient xx

= kn o k Z, donc x x

(modn). De
l, on dduit que x = x

puisque x, x

{1, . . . , n 1}. La solution


est unique.

3.6 Fonction (n) dEuler


La fonction dEuler, connue galement sous le nom de fonc-
tion indicatrice dEuler est une fonction en thorie des nombres
essentielle de larithmtique modulaire. Elle est note par la lettre
grecque phi .
11
Dnition 6 (Fonction dEuler). (n) est le nombre dentiers dans
lensemble {1, . . . , n1} qui sont relativement premiers avec n pour
n > 1 et (1) = 1.
Thorme 7 (Fonction dEuler avec un nombre premier). Si n est
un nombre premier p, alors tous les entiers infrieurs p sont rela-
tivement premiers celui-ci, et donc (p) = p 1.
12
10. On voit parfois la notation a
1
1(modn) qui signie la mme chose que ax 1(modn).
Nanmoins, puisquil sagit de calcul modulaire, a
1
1 (mod n) = 1/a 1 (mod n).
11. On voit aussi la notation . Ces deux lettres grecques direntes sont bien souvent
employes an de distinguer la fonction dEuler et le nombre dor
1+

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.

3.7 Petit thorme de Fermat gnralis par Euler


Thorme 8 (Petit thorme de Fermat-Euler). Soit a N. Si
(a, n) = 1, alors
a
(n)
1 (mod n). (5)
Preuve Soit A = {a
1
, a
2
, . . . , a
(n)
} lensemble de tous les en-
tiers positifs infrieurs et relativement premiers n. Puisque le
pgcd(a, n) = 1, alors lensemble B = {aa
1
, aa
2
, . . . , aa
(n)
} est n-
cessairement congru avec lensemble A. En prenant le produit de ces
congruences, on obtient
(aa
1
)(aa
2
) (aa
(n)
) a
1
a
2
a
(n)
(mod n)
a
(n)
(a
1
a
2
a
(n)
) aa
1
aa
(n)
(mod n)
Puisque le pgcd(a
1
a
2
a
(n)
, n) = 1, on peut diviser de chaque ct
par a
1
a
2
a
(n)
et on obtient a
(n)
1 (mod n).

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

et on retrouve m grce aux proprits des exposants et des


modulos.

4.3 Deux exemples


Voici deux exemples ctifs mettant en uvre le principe du code
RSA prcdemment expliqu.
4.3.1 Utilisation de petits entiers p et q
Demble, on choisit p = 53 et q = 47, ce qui donne
n = 53 47 = 2491.
On calcule ensuite la fonction dEuler.
(n) = (p 1)(q 1) = 52 46 = 2392.
On slectionne un nombre e = 11. On a bien que pgcd(11, 2392) = 1.
Puis on calcule d, linverse de e modulo (n). Autrement dit, on
cherche le plus petit entier d tel que 11d + 1 | (n). On trouve
d = 435. En eet, 1 = 435 11 2 2392.
18
La cryptographie cl publique RSA Candidat n
o
000803022
La cl publique est donc (2491, 11) et la cl prive est (2491, 435).
On dsire maintenant chirer le message m = 31. On a que
pgcd(31, 2491) = 1. On calcule donc
31
11
928 (mod 2491)
et on lenvoie. Finalement, on calcule la rception
928
435
31 (mod 2491).
On a rcupr le message m en toute condentialit.
4.3.2 Application aux changes commerciales
Une compagnie dsire organiser un systme de commandes par
Internet. Elle dcide donc dinstaurer un cryptage cl publique
RSA pour la transmission du numro de carte de crdit de ses clients.
Ce numro comporte 16 chires auquel on doit ajouter la date dex-
piration 4 chires, suivie du code de vrication 3 chires, pour
un total de 23 chires. La rme choisit donc p et q, deux grands
nombres premiers. Ces deux entiers sont de lordre de 25 chires,
pour un n denviron 50 chires. La compagnie utilise Maple 15
comme suit an de crer p et q :
:= nextprime((rand(10
(1)
)..10

))()) (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

Si le message avait t envoy par un fraudeur, le receveur sen


aurait rapidement rendu compte la rception. Dans le cas dune
carte de crdit 23 chires comme lexemple 4.3.2, le message
m naurait certes pas t constitu dun tel nombre de chires. De
la mme manire, un texte chir par un imposteur donnerait des
phrases dcousues et illisibles.
4.5 Comment chirer du texte
Signer et chirer des nombres semblent dsormais possible grce
au code RSA. Mais que faire lorsquon dsire coder autre chose que
des nombres ? Heureusement, il existe certaines tables dquivalence
standards permettant la conversion. Le protocole ASCII (American
Standard Code for Information Interchange) est la norme de codage
de caractres en informatique la plus connue ce jour. Invent en
21
La cryptographie cl publique RSA Candidat n
o
000803022
1961, ce code assigne chaque lettre de lalphabet un nombre binaire
de 7 chires.
15 16
Il permet aussi une conversion en systme octal, d-
cimal ou hexadcimal. Le tableau suivant ne prsente quune petite
partie de la charte originale.
17
4.5.1 Tableau 1
Code ASCII de lalphabet latin majuscule en dcimal et en binaire
Caractre
Code en base
Caractre
Code en base
10 2 10 2
A 65 1000001 N 78 1001110
B 66 1000010 O 79 1001111
C 67 1000011 P 80 1010000
D 68 1000100 Q 81 1010001
E 69 1000101 R 82 1010010
F 70 1000110 S 83 1010011
G 71 1000111 T 84 1010100
H 72 1001000 U 85 1010101
I 73 1001001 V 86 1010110
J 74 1001010 W 87 1010111
K 75 1001011 X 88 1011000
L 76 1001100 Y 89 1011001
M 77 1001101 Z 90 1011010
Tableau ralis avec L
A
T
E
X2

.
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

, Version 4.31, GNU General Public


License, Cambridge (.-U.), 2010.
[12] R. Simanca, Santiago & Scott Sutherland, The RSA Pu-
blic key cryptosystem , Mathematical Problem Solving with
Computers (Notes for MAT 331, 2002), Stony Brook University,
28
La cryptographie cl publique RSA Candidat n
o
000803022
www.math.sunysb.edu/scott/Book331/RSA_Public_key.html ,
janvier 2012.
[13] Richman, Fred. Quadratic reciprocity : the Jacobi symbol ,
Florida Atlantic University, Department of Mathematics, Boca
Raton (.-U.), math.fau.edu/richman/jacobi.htm, janvier 2012.
[14] Rivest R. L., A. Shamir & L. Adleman, A method for obtai-
ning digital signatures and public key cryptosystems , Commu-
nications of the ACM, vol. 21, n
o
2, 1978, p. 120126.
[15] Rosenberg, Burton. The Solovay-Strassen primality test ,
Cryptography (Notes for MATH 609/597), University of Miami,
Miami (.-U.), 2000.
[16] Ross, Michael. IBMs Test-Tube Quantum Computer makes
history rst demonstration of Shors historic factoring al-
gorithm , IBM Press release of December 2001, www-
03.ibm.com/press/us/en/pressrelease/965.wss, janvier 2012.
[17] Rousseau, Christiane & Yvan Saint-Aubin. Mathmatiques et
technologie , Montral (Canada), ditions Springer, 2008, 593
pages.
[18] RSA Laboratories. Standards Initiatives : Public-Key
Cryptography Standards (PKCS) , EMC Corporation,
www.rsa.com/rsalabs/node.asp ?id=2213, janvier 2012.
[19] Singh, Simon. Histoire des codes secrets , ditions Livre de
Poche, 1999, 504 pages.
[20] Weisstein, Eric. Wolfram Mathworld,
www.mathworld.wolfram.com, janvier 2012.
29
La cryptographie cl publique RSA Candidat n
o
000803022
8 Annexes
8.1 Preuve que (n) est multiplicative
Preuve Soit m, n N tels que (m, n) = 1. Il faut montrer que
(mn) = (m)(n). On dispose dabord les entiers positifs infrieurs
mn dans la matrice A comme suit :
A =
_

_
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

S-ar putea să vă placă și