Pandey2021 Article FractalDimensionOfKatugampolaF
Pandey2021 Article FractalDimensionOfKatugampolaF
Pandey2021 Article FractalDimensionOfKatugampolaF
Cryptographie RSA
François DE M ARÇAY
Département de Mathématiques d’Orsay
Université Paris-Sud, France
1. Limitations physiques
Soit un nombre donné quelconque n > 1, représenté par exemple en base 10 comme
suite finie de chiffres appartenant à {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
Le Crible d’Eratosthène est la méthode la plus simple et la plus directe pour déterminer
si un tel nombre entier n donné est un nombre premier, ou un nombre composé.
√
On peut en effet s’arrêter à k ≈ n, car tous les entiers non premiers ont déjà été rayés
précédemment !
Cependant, ce procédé direct est limité dans la pratique à cause du très grand nombre
d’opérations qu’il exige.
In a very real sense, there are no large numbers : Any explicit integer can be said to be
‘small’. Indeed, no matter how many digits or towers of exponents you may write down, there are
only finitely many natural numbers smaller than your candidate, and finitely many that are larger.
Though condemned always to deal with small numbers, we can at least strive to handle numbers
that are larger than those that could be handled before. Richard Crandall, Carl Pomerance
La raison métaphysique simplette de cette limitation est claire : l’infini actuel n’existe
pas.
Supposons par exemple que l’on rêve d’imprimer la liste complète de tous les nombres
entiers premiers qui sont inférieurs à un certain entier nombre assez grand, disons pour se
satisfaire de possèder un petit « trésor mathématique ». Va-t-on y parvenir ?
Définition 1.1. Pour x > 1 entier, on note classiquement π(x) le nombre d’entiers premiers
inférieurs à x :
On connaît la valeur exacte de π(x) pour des x contenant une vingtaine de chiffres en
base 10.
1. Limitations physiques 3
Prenons par exemple x = 1020 . Il se trouve qu’à notre époque, on connaît la valeur
exacte :
π 1020 = 2 220 819 602 560 918 840
≈ 2 · 1018 .
De tels nombres n’ont « qu’une vingtaine de chiffres », ils peuvent donc sembler
« petits » — mais attention aux illusions !
Question 1.2. Si on connaît la valeur exacte de π(1020 ), cela semble vouloir dire que l’on
connaît effectivement tous les nombres premiers p 6 1020 , mais cela est-il bien vrai ?
En fait, non ! Même si chacun de ces ≈ 2 · 1018 nombres pouvait être représenté par un
seul caractère d’imprimerie ou un seul bit informatique, nous affirmons qu’il serait néan-
moins totalement impossible de les voir tous, ou de les stocker tous dans des ordinateurs.
En effet, considérons par analogie le nombre record de décimales du nombre d’Archi-
mède :
π = 3, 141592653589793238462643383279502884279169399375 · · ·,
qui, depuis octobre 2011, va jusqu’à 10 000 milliards, ce qui nous fait donc :
1013
décimales, c’est-à-dire 1013 caractères d’imprimerie, ou bits sur un ordinateur, un nombre
vraiment inférieur à 2 · 1018 . Mais même ce nombre se situe à la limite du visible.
Question 1.3. Combien de livres de 500 pages comportant 40 lignes chacune avec 80 ca-
ractères seraient nécessaires pour montrer à l’humanité éclairée les 1013 décimales connues
du nombre π ?
Dans un seul livre, on peut imprimer :
500 × 80 × 40 = 1 600 000
décimales, et donc il faudrait environ :
10 000 000 000 000
= 6 250 000,
1 600 000
4 François DE M ARÇAY, Département de Mathématiques d’Orsay, Université Paris-Saclay, France
livres, environ la moitié des quatorze millions de livres que possède et conserve la Biblio-
thèque Nationale de France.
Pour faire voir les ≈ 2 · 1018 nombres premiers inférieurs à 1020 , il faudrait alors au
moins :
1018−13 = 100 000
bibliothèques de cette taille de par le monde. En poussant jusqu’à 5 chiffres de plus :
Conclusion 1.4. Pour des raisons purement physiques, on ne pourra jamais « voir » tous
les nombres premiers ayant un nombre de chiffres 6 25 en base 10.
Rien n’est logique et rien ne semble absurde comme l’océan. Cette dispersion de soi-même
est inhérente à sa souveraineté et est un des éléments de son ampleur. Victor Hugo
Ainsi dans cette immensité, se noie ma pensée : et le naufrage m’est doux dans cette mer.
Leopardi
Le paradoxe contre-paradoxal 1, c’est que les théoriciens des nombres réussissent quand
même à capturer et à manipuler quelques gros poissons nombres premiers ayant jusqu’à
100, 200, 300 chiffres ! Les mathématiques évoluent alors comme dans une mer immense
de nombres gigantesques, en connaissant très peu de nombres premiers parmi ceux qui
comportent jusqu’à des dizaines de millions de chiffres en base 10.
Question 1.5. Comment engendrer des nombres premiers qui possèdent un très grand
nombre de chiffres ?
Aux alentours de l’année 2005, l’état des connaissances concernant les nombres de Fer-
mat jusqu’à F24 est résumé au moyen du tableau suivant.
1. Ce n’est parce qu’on ne peut pas tout connaître qu’il est impossible de connaître un tout petit peu d’un
trop grand tout.
2. Grands nombres premiers : pêche à la ligne 5
Dans ce tableau, tous les nombres explicitement écrits sont des nombres premiers, et la
lettre « P » désigne un grand facteur entier dont on a démontré qu’il est premier, tandis que
la lettre « C » désigne un très grand facteur composé, dont on ne connaît pas nécessairement
les facteurs premiers.
Néanmoins, comme les mathématiques savent produire un très grand nombre de for-
mules très compliquées, on peut toujours espérer qu’une modification de la formule de
Fermat pourrait engendrer une collection infinie de nombres premiers.
Question 2.1. Existe-t-il une formule générale simple F (k) dépendant d’un entier k > 1
dont toutes les valeurs :
Aucune telle formule magique n’est connue sur Terre, et il est très probable qu’il n’en
existe pas non plus sur les autres planètes habitées de l’Univers.
On peut alors abaisser les ambitions d’un cran.
Question 2.2. Existe-t-il une formule générale simple G (k) dépendant d’un entier k > 1
dont les valeurs contiennent au moins une infinité de nombres premiers ? (Sans demander,
toutefois, que toutes les valeurs G (1), G (2), G (3), . . ., soient des nombres premiers.)
0 6 k 6 40,
6 François DE M ARÇAY, Département de Mathématiques d’Orsay, Université Paris-Saclay, France
est certainement > 2. L’astuce élémentaire, pour conclure, consiste alors à observer, grâce
la formule du binôme de Newton (exercice), que pour tout entier λ > 1 :
d
G λ ` + k = g0 λ ` + k + · · · + gd−1 λ ` + k + gd
= G (k) + multiple de `
= multiple de `
= nombre non premier,
ce qui montre que G ne prend pas de valeurs entières premières sur la suite infinie (λ ` +
k)∞
λ=1 .
L’énoncé suivant, dont la démonstration peut faire l’objet d’un mémoire de Master 1 à
l’université, utilise de magnifiques outils d’Analyse Complexe.
Théorème 2.4. [Dirichlet] Pour tout couple d’entiers a, b > 1 premiers entre eux :
a ∧ b = 1,
la suite des valeurs : ∞
a + bk k=1
contient une infinité de nombres premiers.
Pour formuler un énoncé plus fin, rappelons que le Théorème des nombres premiers
stipule que la fonction :
π(x) := Card 2 6 p 6 x : p ∈ P est premier
Mais revenons à notre Question 1.5 qui demandait comment produire de grands nombres
premiers. Il est clair qu’il vaut mieux utiliser des formules exponentielles, car les poly-
nômes croissent moins vite que les exponentielles.
Il est intéressant de comparer le destin des nombres de Fermat à celui d’une autre conjec-
ture célèbre, qui concerne les nombres premiers de la forme :
2n − 1.
Théorème 2.6. Si, pour un entier n > 2, le nombre :
an − 1
est premier, alors a = 2 et n lui-même est premier.
Démonstration. En effet, si a > 3, alors on a la factorisation :
an − 1 = (a − 1) an−1 + · · · + a + 1 .
Donc on a a = 2 nécessairement.
Ensuite, si n = k l est composé, on peut à nouveau constater (exercice) que 2k − 1 et
2 − 1 divisent 2n − 1.
l
Définition 2.7. Un nombre de Mersenne 2 est un nombre premier qui s’écrit sous la forme :
Mp := 2p − 1,
avec p lui-même entier premier.
En 2005, tous les nombres premiers de Mersenne connus étaient ceux qui apparaissent
dans le tableau suivant.
Our ability to uncover large primes and prove them prime has outstripped our ability to factor,
a situation that gives tome comfort to cryptographers. Richard Crandall, Carl Pomerance
10 François DE M ARÇAY, Département de Mathématiques d’Orsay, Université Paris-Saclay, France
Le code de Cæsar — Julius, qui écrivait à Cléopâtre — permute simplement toutes les
lettres de l’alphabet :
a 7−→ d, b 7−→ e, c 7−→ f, ......, y 7−→ b, z 7−→ c.
Par exemple, Cæsar signera sa lettre enflammée par :
F dhvdu.
Exeunt, donc les codes trop antiques de Julius Cæsar et Cléôpatre, place à la science
high-tech d’Alice et de Bernard !
La seule méthode de codage dont on démontre qu’elle est entièrement sécurisée, au sens
de l’informatique théorique, est la suivante.
Soit ν > 1 le nombre de lettres du message à transmettre, par exemple, le message
« ECUREUIL» réduit pour simplifier à un seul mot. On choisit une autre séquence auxiliaire
de ν lettres produites au hasard, par exemple la séquence « DFTXMQIB ». On effectue la
correspondence la plus simple entre les 26 lettres de l’alphabet et les nombres de 0 à 25 :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
On place le message à transmettre ainsi que son compagnon aléatoire l’un au-dessus de
l’autre :
4 2 20 17 4 20 8 11
E C U R E U I L
D F T X M Q I B
3 5 19 23 12 16 8 1
Afin d’assurer qu’il n’y ait aucune ambiguïté dans la reconstitution de m à travers
le module n, il suffit que Bernard s’arrange à l’avance pour découper son message en
blocs codés par des entiers m qui soient tous 6 n − 1.
Proposition 3.1. Étant donné deux nombres entiers premiers p, q ∈ P, et étant donné un
élément inversible : ×
d ∈ Z (p − 1)(q − 1)Z
d’inverse e :
1 ≡ d e mod (p − 1)(q − 1),
pour tout entier m ∈ Z, on a toujours :
d
me mod p q ≡ m mod p q.
Démonstration. Par hypothèse, il existe un entier k ∈ Z tel que :
e d = 1 + k (p − 1)(q − 1).
14 François DE M ARÇAY, Département de Mathématiques d’Orsay, Université Paris-Saclay, France
Assertion 3.2. On a :
me d ≡ m mod p.
Preuve. Deux cas sont à considérer. Premièrement, lorsque p divise m, on gagne facile-
ment :
me d ≡ 0 mod p
≡ m mod p.
Deuxièmement, lorsque p ne divise pas m, d’où pgcd(p, m) = 1, le petit Théorème de
Fermat donne :
mp−1 ≡ 1 mod p,
d’où :
me d = m · mk (p−1) (q−1)
≡ m · 1 mod p
et là encore, on a gagné.
Par symétrie, on obtient aussi :
me d ≡ m mod q.
Autrement dit, me d −m est multiple de p et est multiple de q, et comme p et q sont premiers,
c’est que me d − m doit être (exercice mental) multiple de leur produit p q, ce qui conclut.
Le système RSA est dit à clé publique, ce qui signifie que :
ni l’algorithme de calcul ni la clé de codage ne sont cachés ;
la connaissance de la clé publique d’Alice permet à tous ses interlocuteurs potentiels :
Bernard, Gustave, Gédéon, Prosper, Léopold, de crypter les messages qu’ils lui destinent,
mais seule Alice peut décrypter les messages qu’elle reçoit, grâce à sa clé de décodage
privée, qu’elle cache soigneusement.
Les clés publiques peuvent être publiées dans un annuaire ou sont obtenues, à la de-
mande, en contactant préalablement celui à qui l’on veut faire parvenir un message.
Ce type de système possédant une clé de décodage différente de la clé de codage (le sys-
tème est dissymétrique) présente un avantage sur les systèmes classiques (dits symétriques,
car une seule et même clé sert à la fois au codage et au décodage) : avant un échange, les
deux interlocuteurs n’ont pas besoin de se rencontrer pour convenir d’une clé secrète, qui
devra rester connue d’eux seuls, ni n’ont besoin de faire circuler — sur un réseau informa-
tique ou autre — une clé secrète, transmission qui bien sûr engendre un risque. Seule la clé
publique, insuffisante pour le décryptage, est connue préalablement aux échanges cryptés
entre les deux interlocuteurs.
Pour terminer cette section, posons-nous la :
Question 3.3. Combien de temps faudrait-il pour factoriser un entier n à 600 chiffres en
base 10 en appliquant l’algorithme naïf d’Eratosthène ?
√
Il s’agit de supprimer tous les multiples de nombres premiers p 6 10600 = 10300 . Le
nombre de nombre premiers inférieurs à 10300 est approximativement égal à :
10300
≈ 1, 5 · 10297 .
log 10300
4. Codages préliminaires 15
Un processeur ayant une forte puissance de 10 Ghz (optimiste) fait environ 1010 opéra-
tions à la seconde.
Supposons sans sourciller qu’il y ait 1011 tels processeurs de part le monde (ce qui ferait
10 processeurs par être humain !).
On obtiendrait une puissance de calcul de 1021 opérations à la seconde.
Puisqu’il y a 60 · 60 · 24 · 365 ≈ 3 · 107 secondes dans une année, cela ferait au mieux
3 · 1028 opérations par an.
En supposant (fort abusivement !) qu’il n’y ait qu’une seule opération à effectuer par
nombre premier dans le crible d’Eratosthène, il faudrait donc un nombre d’années égal à
environ :
1.5 · 10297
≈ 5 · 10268 ,
3 · 1028
ce qui est insensé !
4. Codages préliminaires
Le texte de Bernard est certainement trop long pour être codé d’un seul tenant comme
un unique nombre m ∈ Z.
Je regrette les temps de la grande Cybèle
Qu’on disait parcourir, gigantesquement belle,
Sur un grand char d’airain, les splendides cités ;
Son double sein versait dans les immensités
Le pur ruissellement de la vie infinie,
L’Homme suçait, heureux, sa mamelle bénie,
Comme un petit enfant, jouant sur ses genoux.
Parce qu’il était fort, l’Homme était chaste et doux. Rimbaud
Il faut donc le découper en blocs de caractères d’imprimerie ayant tous une longueur
raisonnable approximativement équilibrée, par exemple ici, vers par vers :
Je regrette les temps de la grande Cybèle
Qu’on disait parcourir, gigantesquement belle,
Sur un grand char d’airain, les splendides cités ;
Son double sein versait dans les immensités
Le pur ruissellement de la vie infinie,
L’Homme suçait, heureux, sa mamelle bénie,
Comme un petit enfant, jouant sur ses genoux.
Parce qu’il était fort, l’Homme était chaste et doux. Rimbaud
Pour simplifier, nous supposerons que les caractères d’imprimerie que Bernard utilise
se réduisent aux lettres standard de l’alphabet :
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
16 François DE M ARÇAY, Département de Mathématiques d’Orsay, Université Paris-Saclay, France
et nous supposerons que Bernard pré-code ces caractères de 0 à 52. Dans la vraie vie de la
poésie, on doit coder avec une centaine de caractères. Dans la vraie vie des mathématiques,
plusieurs centaines sont nécessaires.
Soit alors une portion quelconque du texte de Bernard qui comporte un nombre ν > 1
de caractères :
`0 `1 . . . `ν−1 ,
appartenant tous à cet alphabet simplifié de lettres, espace, majuscules. Le précodage asso-
cie donc à cette portion une suite de ν nombres :
m0 m1 . . . mν−1
appartenant tous à {0, 1, . . . , 52}. Mais comme les ordinateurs sont en général construits
pour afficher en base 10 les calculs qu’ils font en base 2, il faut pouvoir transcrire cela en
un certain nombre :
m ∈ N,
écrit en base 10.
L’idée la plus naturelle consiste alors à faire représenter la suite des mλ par le nombre
écrit en base 53 :
m := m0 + m1 · 531 + · · · + mν−1 · 53ν−1 ,
et l’ordinateur calculera alors automatiquement cette somme comme un certain nombre
écrit en base 10. La correspondance est bi-univoque (exercice mental), et le nombre m est
toujours majoré par :
m 6 52 + 52 · 53 + · · · + 52 · 53ν−1
= 52 1 + 53 + · · · + 53ν−1
53ν − 1
= 52
53 − 1
ν
= 53 − 1.
Rappelons enfin que pour qu’Alice retrouve l’entier m sans ambiguïté modulo n, il est
préférable que Bernard découpe son texte en blocs de caractères auxquels correspondront
des nombres :
m 6 n − 1,
ce qui revient à demander que :
53ν 6 n,
à savoir à assurer que la longueur ν des blocs de caractères d’imprimerie soit majorée par :
log n
ν 6 ,
log 53
ce que Bernard peut fort aisément faire, puisque Alice a rendu publique sa clé n ! En ré-
sumé :
5. RSA : historique et réflexions diverses 17
Proposition 4.1. Pour pré-coder son message dans le langage de l’arithmétique des
nombres entiers, ayant pris connaissance de la clé publique n d’Alice, Bernard découpe
son texte en blocs de caractères d’imprimerie :
0
`0 . . . `0ν 0 −1
00
`0 . . . `00ν 00 −1
000
`0 . . . `000
0000
`0 . . . `0000
`0 . . . `ν−1 ν 000 −1 ν 0000 −1 ......
log n
de longueurs ν, ν 0 , ν 00 , . . . toutes 6 log 53
, et il associe à chacun de ces blocs des nombres
entiers :
0 00 000 0000
m m m m m ......
Dans cette approche, on découpe le message en blocs et on utilise RSA sur chaque bloc.
Dans la vraie vie, il est plus usuel d’utiliser RSA pour chiffrer une clé et d’utiliser ensuite
un chiffrement à clé privée pour faire le chiffrement réel du message. En effet, utiliser RSA
sur plusieurs blocs n’est pas sûr : on peut par exemple savoir si le même bloc est transmis
plusieurs fois.
Le système de cryptage RSA a été inventé en 1977 par Rivest, Shamir et Adleman,
dont les initiales forment l’acronyme RSA. Ces trois auteurs avaient décidé de travailler en-
semble pour établir qu’un nouveau système de codage révolutionnaire, dénommé « système
à clé publique » que Diffie et Hellman venaient d’inventer, était une impossibilité logique,
autrement dit, que tout système de cryptage de cette nature devait présenter certaines failles.
Ils ne réussirent pas dans leur projet, mais, au contraire, ils découvrirent un nouveau sys-
tème à clé publique qui supplanta rapidement celui de Diffie et Hellman.
Rappelons que la dissymétrie fondamentale qui sous-tend le protocole, est qu’il est im-
médiatement facile de multiplier deux nombres premiers ayant un grand nombre de chiffres,
alors qu’il est extrêmement difficile de déterminer les facteurs premiers d’un grand nombre
donné. Si l’on s’y prend naïvement, il faut diviser ce nombre par beaucoup de nombres plus
petits et déterminer le reste : si celui-ci est nul, on a déterminé ainsi un diviseur. Les mathé-
maticiens ont mis au point des moyens plus rapides que les divisions successives, mais le
nombre d’opérations à effectuer reste considérable pour des nombres de taille importante.
Ainsi il est actuellement impossible de « factoriser » des nombres de plus de 300 chiffres,
même avec les ordinateurs les plus rapides et les algorithmes les plus performants.
18 François DE M ARÇAY, Département de Mathématiques d’Orsay, Université Paris-Saclay, France
Insistons sur le fait que le jeu numérique élémentaire du protocole RSA est aujourd’hui
un système universel servant dans une multitude d’applications. Au cours des années, il a
devancé tous ses concurrents.
Le RSA est programmé aussi dans les systèmes d’exploitation de Microsoft, d’Apple,
de Sun. Il est intégré dans les cartes Ethernet et dans certaines cartes à puce bancaires.
Un très grand nombre d’institutions gouvernementales, universitaires ou militaires, l’uti-
lisent de façon interne. Le réseau Internet en fait un usage systématique pour assurer la
confidentialité du courrier électronique et authentifier les utilisateurs. Bref :
le protocole RSA est partout !
Sur le plan pratique, les experts recommandaient au début des années 2000 d’utiliser des
nombres n de 768 bits (232 chiffres décimaux) pour mettre en œuvre le RSA dans le cas
de données pas trop importantes, mais ils conseillaient 1 024 bits (309 chiffres décimaux)
pour un usage commercial et 2 048 bits (617 chiffres décimaux) pour avoir une garantie se
prolongeant sur une longue période de temps. Les clés de 512 bits (155 chiffres décimaux),
5. RSA : historique et réflexions diverses 19
encore utilisées, ne devraient plus l’être, car on a réussi, en août 1999, à factoriser un
nombre n (produit de deux grands nombres premiers) de 512 bits.
La confiance dans la sécurité du RSA n’est pas due à la démonstration théorique que
ce système est sûr, car une telle démonstration n’existe pas. La confiance affichée provient
de l’échec, répété depuis plus de 30 ans, de toutes les tentatives entreprises pour casser
ce système, tentatives qui n’ont conduit qu’à la formulation de quelques recommandations
pour le choix des paramètres p, q, e, d.
Sur le plan théorique, la situation est décevante et le restera certainement longtemps.
Celui qui sait factoriser n = p q retrouve ensuite facilement d. Inversement, les mathéma-
tiques montrent que celui qui connaît n, e et d peut trouver rapidement p et q. La robustesse
du RSA apparaît donc liée à la difficulté de la factorisation. Malheureusement, il n’est pas
exclu que quelqu’un, sans réussir à obtenir d ni p ni q, puisse décrypter un message : au-
trement dit, il n’a pas été prouvé que la difficulté du RSA est équivalente à celle de la
factorisation.
Deux attaques théoriques du RSA sont donc envisageables. Celle passant par la facto-
risation : quiconque sait factoriser les nombres de la taille de n = p q sait lire comme à
livre ouvert tous les messages cryptés par le RSA. Celle contournant la factorisation, dont
personne n’a su établir qu’elle était impossible et pour laquelle, au contraire, on a pro-
posé récemment des arguments indiquant qu’elle devait être sérieusement crainte. Boneh
et Venkatesan ont en effet établi en 1998 que casser le RSA, lorsqu’il est utilisé avec des
exposants e trop petits, n’est pas équivalent à factoriser n.
—————–