Si les mathématiques offraient mille exemples différents d’une même règle,... preuve d’un seul de ces exemples démontrerait l’exactitude de tous...

publicité
EPIGRAPHE
Si les mathématiques offraient mille exemples différents d’une même règle, la
preuve d’un seul de ces exemples démontrerait l’exactitude de tous les autres.
« MARY BAKER Eddy»
Page | i
DEDICACE
A l’Eternel, Père-Mère Dieu ;
A toute ma famille ;
A ma future épouse.
Je dédie ce travail.
Page | ii
REMERCIEMENTS
Nos sincèrement remerciements au Professeur Dr. MANYA
NDJADI Léonard, qui a bien voulu assurer la direction de ce travail
malgré ses multiples occupations.
Nous pensons également à tous les Professeurs, Chefs des
travaux et Assistants de la Faculté des Sciences en Générale et du
Département de Mathématiques et Informatique en particulier, pour la
formation qu’ils ont assurée durant toutes ces années d’études.
Nous pensons aussi à tous nos compagnons de lutte.
Enfin,
nous
remercions
très
sincèrement
toutes
les
personnes qui ont contribué d’une manière où d’une autre pour la
réussite de nos études.
Page | iii
Page | iv
INTRODUCTION
Les nombres aléatoires jouent un rôle important en
cryptographie. Ils sont utilisés pour générer des clés, à chiffrer les
messages ou à masquer les contenus de certains protocoles en les
associant avec une séquence aléatoire. Claude Shannon a montré que
dans un système cryptographique, si la clé est générée de manière
aléatoire et que cette clé n’est plus utilisée, alors ce système est
parfaitement sûr.
On distingue deux types des générateurs de nombres : les
générateurs
de
nombres
aléatoires
non
déterministes
et
les
générateurs de nombres aléatoires déterministes. Les générateurs de
nombres aléatoires non déterministes sont basés sur des mécanismes
physiques tels que le lancer des dés, roulette, le bruit thermique dans
les résistances de circuits électroniques, etc. La reproduction d’une
séquence du générateur non déterministe est impossible. Tandis que
les générateurs de nombres aléatoires déterministes sont basés sur
des moyens mathématiques, la séquence est initialisée par une valeur
appelée germe ou graine. La reproduction de la séquence est possible.
Dans ce travail, nous étudions comment produire une
séquence binaire aléatoire cryptographiquement sûr, indépendante,
imprédictible et équiprobable à utiliser pour clés au chiffrement par
flot ou au chiffrement de Verman.
Notre travail est subdivisé en quatre chapitres. Dans le
premier chapitre, nous parlons des quelques éléments de la théorie des
nombres. Nous avons beaucoup plus détaillé la notion des résidus
quadratiques qui constitue l’outil de base du générateur utilisé. Dans
le
second
chapitre,
nous
présentons
les
généralités
sur
la
Page | 1
cryptographie et ensuite nous présentons l’aspect d’un système
cryptographique parfaitement sûr. Le troisième chapitre concerne les
générateurs
pseudo-aléatoires.
Nous
avons
présenté
quelques
générateurs pseudo-aléatoires ; ensuite nous nous sommes concentrés
sur le générateur utilisé : Blum-Blum-Shub. Et enfin, au quatrième
chapitre, nous
présentons l’implémentation du générateur Blum-
Blum-Shub et l’interprétation des résultats obtenus.
Page | 2
CHAPITRE I : ELEMENTS DE LA THEORIE DES NOMBRES
[1], [2], [3], [13], [14], [15], [16]
I.1.Quelques notions de base
Définition
Un entier 𝑛 > 0 est dit premier s’il est différent de 1 et s’il n’admet
aucun diviseur positif différent de 1 et 𝑛.
Un nombre qui n’est pas premier est appelé nombre composé.
Proposition
Il existe une infinité de nombres premiers
Preuve
Montrons par l’absurde. Supposons qu’il n’existe qu’un nombre fini
d’entiers premiers, soit 𝑝1 𝑝2 … 𝑝𝑘 . On peut alors montrer un entier qui
n’est divisible par aucun de ces nombres premiers, ce qui est
contradictoire compte tenu du fait que cet entier possède un diviseur
premier. En effet, considérons 𝑛 = 𝑝1 𝑝2 … 𝑝𝑘 + 1 : si 𝑝𝑖 (1 ≤ 𝑖 ≤ 𝑘)
divisait 𝑛, alors 𝑝𝑖 diviserait 1, ce qui est absurde.
Lemme de Gauss.
Si des entiers 𝑎, 𝑏 et 𝑐 sont tels que 𝑎 divise 𝑏𝑐 et 𝑎 premier avec 𝑏,
alors 𝑎 divise 𝑐.
Preuve
Comme 𝑎 est premier avec 𝑏, on peut écrire 𝑎𝑢 + 𝑏𝑣 = 1 pour des
entiers 𝑢 𝑒𝑡 𝑣. Ainsi 𝑎𝑢𝑐 + 𝑏𝑣𝑐 = 𝑐 et comme 𝑎 divise 𝑎𝑢𝑐 (car il divise
𝑎) et 𝑏𝑣𝑐 (car il divise 𝑏𝑐), il divise la somme qui vaut 𝑐.
Page | 3
Théorème (Décomposition en facteurs premiers)
Ce théorème est appelé théorème fondamental de l’arithmétique.
Soit un entier 𝑛 ≥ 1 se décompose d’une et d’une seule manière en un
produit de nombres premiers. Autrement dit, pour tout entier 𝑛 ≥ 1, il
existe des nombres premiers deux à deux distincts 𝑝1 , . . . , 𝑝𝑘 et des
entiers strictement positifs 𝛼1 , . . . , ∝𝑘 , uniquement déterminés à l’ordre
près, tels que :
∝
∝
∝
𝑛 = 𝑝1 1 𝑝2 2 … 𝑝𝑘 𝑘
Preuve
Le théorème reste bien vrai pour 𝑛 = 1 : il faut choisir 𝑘 = 0, le
produit d’aucun entier étant par convention égal à 1.
Commençons par l’existence de la décomposition. On raisonne par
récurrence sur 𝑛. Pour 𝑛 = 2 alors ça s’écrit comme un produit de
nombres premiers, étant lui-même premier.
Soit 𝑛 ≥ 3 un entier. Supposons que tous les entiers strictement
inferieurs à 𝑛 s’écrivent comme le précise le théorème et montrons que
la conclusion subsiste pour l’entier 𝑛. Il y a deux cas : soit 𝑛 est
premier, soit il ne l’est pas. Le premier cas est vite réglé : 𝑛 premier
s’écrit bien comme un produit de nombres premiers. Supposons donc
que 𝑛 soit composé.
Ainsi, il s’écrit 𝑛 = 𝑑𝑑’ avec 2 ≤ 𝑑 < 𝑛 et2 ≤ 𝑑′ < 𝑛. Les entiers 𝑑 et
𝑑’ relèvent de l’hypothèse de récurrence et on peut écrire :
𝑑 = 𝑝1 𝑝2 … 𝑝𝑘
𝑑′ = 𝑝′1 𝑝′2 … 𝑝′𝑘′
pour des nombres premiers 𝑝𝑖 et 𝑝′𝑖 . Il ne reste plus qu’à effectuer le
produit pour conclure.
Montrons l’unicité :
Supposons que 𝑝1 𝑝2 … 𝑝𝑘 = 𝑝′1 𝑝′2 … 𝑝′𝑘′ Pour certains nombres premiers
𝑝𝑖 et 𝑝′𝑖 .
Page | 4
On veut montrer que 𝑘 = 𝑘′ et que les 𝑝𝑖 sont égaux aux 𝑝′𝑖 à l’ordre
près.
Raisonnons ensuite par l’absurde. Le nombre premier 𝑝1 divise le
produit 𝑝′1 𝑝′2 … 𝑝′𝑘′ donc par le lemme précédent, il divise 𝑝′𝑖 . ∀ 𝑖.
Or, les diviseurs de 𝑝′𝑖 (qui est premier) ne sont que 1 et 𝑝′𝑖 . Comme
𝑝1 ≠ 1, il
ne reste plus que la possibilité 𝑝1 = 𝑝′1 = 𝑝. On peut alors
simplifier l’égalité :
𝑝1 𝑝2 … 𝑝𝑘 = 𝑝′1 𝑝′ 2 … 𝑝′ 𝑘 ′
en divisant par 𝑝,on obtiens une contradiction et l’unicité est prouvé.
I.2. La congruence
Définition
Soient 𝑎 𝑏 ,et 𝑛 des entiers, alors on dit que 𝑎 est congru à 𝑏 modulo 𝑛,
ce qui s’écrit 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑛), si 𝑛/(𝑎 − 𝑏) ; 𝑛 est le module de la
congruence.
Propriétés de la congruence
∀ 𝑎, 𝑎1 , 𝑏, 𝑏1 , 𝑐 ∈ ℤ ∶
- 𝑎 ≡ 𝑏(𝑚𝑜𝑑 𝑛) ↔ 𝑎 et 𝑏 ont le même reste dans la division par 𝑛.
- 𝑎 ≡ 𝑎(𝑚𝑜𝑑 𝑛) (réflexivité).
- 𝑎 ≡ 𝑏(𝑚𝑜𝑑 𝑛) → 𝑏 ≡ 𝑎 (𝑚𝑜𝑑 𝑛) (symétrie).
- 𝑎 ≡ 𝑏(𝑚𝑜𝑑 𝑛) et 𝑏 ≡ 𝑐 (𝑚𝑜𝑑 𝑛) → 𝑎 ≡ 𝑐(𝑚𝑜𝑑 𝑛) (transitivité).
- 𝑎 ≡ 𝑎1 (𝑚𝑜𝑑 𝑛) et 𝑏 ≡ 𝑏1 (𝑚𝑜𝑑 𝑛) → {
𝑎 + 𝑏 ≡ 𝑎1 + 𝑏1 (𝑚𝑜𝑑 𝑛),
𝑎𝑏 ≡ 𝑎1 𝑏1 (𝑚𝑜𝑑 𝑛).
I.3. Classes des résidus
Soit 𝑚 > 0. Pour chaque entier 𝑎 on définit [𝑎] = {𝑥: 𝑥 ≡ 𝑎 (𝑚𝑜𝑑 𝑚)} , en
d’autres termes [𝑎] est l’ensemble de tous les entiers qui sont congrus
à 𝑎 modulo 𝑚. Les autres auteurs appellent [𝑎] la classe congruence
ou la classe d’équivalence de 𝑎 modulo 𝑚.
Page | 5
Théorème.
Pour 𝑚 > 0 on a : [𝑎] = {𝑚𝑞 + 𝑎/𝑞 ∈ ℤ}.
Preuve
Supposons 𝑥 ∈ [𝑎] ↔ 𝑥 ≡ 𝑎 (𝑚𝑜𝑑 𝑚) ↔ 𝑚⁄𝑥 − 𝑎 ↔ 𝑥 − 𝑎 = 𝑚𝑞
pour tout ∈ ℤ ↔ 𝑥 = 𝑚𝑞 + 𝑎 . Notons que [𝑎] dépends de 𝑚 .
On a deux façons d’écrire l’équation ci-haut :
𝑎
[𝑎] = {𝑚𝑞 + = 0, ±1, ±2, … } ou [𝑎] = {… , −2𝑚 + 𝑎, 𝑎, 𝑚 + 𝑎; 2𝑚 + 𝑎, … }
𝑞
Tout élément 𝑥 ∈ [𝑎] est une représentation de la classe de résidu [𝑎].
I.4. Ensemble réduit des résidus
Définition
On défini
ℤ𝑚 = { [𝑎] | 𝑎 ∈ ℤ} , alors ℤ𝑚 est l’ensemble de toutes les
classes modulo 𝑚. Nous appelons ℤ𝑚 l’anneau des entiers modulo 𝑚.
ℤ𝑚 = { [0], [1], [2], … , [𝑚 − 1] }
Addition et multiplication dans ℤ𝒎
Pour [𝑎] , [𝑏] ∈ ℤ𝑚 , on a :
[𝑎] + [𝑏] = [𝑎 + 𝑏] et [𝑎][𝑏] = [𝑎𝑏]
Exemple
Pour 𝑚 = 5
[2] + [3] = [5] et [2][3] = [6]
Notons que puisque 5 ≡ 0 (𝑚𝑜𝑑 5) et 6 ≡ 1 (𝑚𝑜𝑑 5) ,nous avons [5] = [0]
et [6] = [1]. Nous pouvons aussi écrire [2] + [3] = [0] et [2][3] = [1]
I.5. La fonction d’Euler ou fonction totient
Définition
Pour 𝑚 ≥ 0 ,soit 𝜑(𝑛) le nombre d’entiers premiers avec 𝑚 dans
l’intervalle [1, 𝑚]. La fonction 𝜑 est la fonction d’Euler.
Page | 6
Exemple
Pour 𝑚 = 6, il y a 6 différentes classes de résidu modulo 6 ; les classes
[0], [2], [3] et [4] ne sont pas premiers avec 6 ; ainsi seules les classes
[1] et [5] sont premiers avec 6 :alors φ(6) = 2 .
Si 𝑝 est un premier, toutes les 𝑝 − 1 classes [1], [2], [3], … , [𝑝 − 1] sont
premiers avec , alors 𝜑(𝑝) = 𝑝 − 1.
Exemple :
2
4
5
6
7
8
9
10
12
15
𝜑(𝑝) 2
2
4
2
6
4
6
4
4
8
𝑝
Théorème (Euler)
Soit (𝑚, 𝑎) = 1 , alors 𝑎 𝜑(𝑚) = 1 𝑚𝑜𝑑 𝑚
Ceci permet de calculer l’inverse modulaire définit par :
𝑎 𝜑(𝑚)−1 = 1 𝑚𝑜𝑑 𝑚
Exemple
Quel est l’inverse de 3 𝑚𝑜𝑑 7: on sait que 𝜑(7) = 7 − 1 = 6, 𝜑(7) − 1 = 5
On a (3,7) = 1, d’où 35 𝑚𝑜𝑑 7 = (32 . 32 . 3)𝑚𝑜𝑑 7 = 5
Théorème (Petit théorème de Fermat)
Soit 𝑚 un premier et 𝑎 un entier tel que (𝑚, 𝑎) = 1 alors 𝑎𝑚−1 = 1 𝑚𝑜𝑑 𝑚
Preuve
Considérons
ainsi
que
les
leurs
𝑚−1
restes
entiers
dans
suivants :𝑎, 2𝑎, 3𝑎, … , 𝑘𝑎, … , (𝑚 − 1)𝑎
la
division
euclidienne
par
𝑚,
notés : 𝑟1 , 𝑟2 , 𝑟3 , … , 𝑟𝑚−1 . Ces restes sont compris entre 1 𝑒𝑡 𝑚 − 1.
En effet, d’après le même de Gauss, si 𝑚 divisait un des ces produits
𝑘𝑎, 𝑚 diviserait 𝑘 puisque 𝑎 et 𝑚 sont premiers entre eux, mais ceci est
impossible puisque 1 < 𝑘 < 𝑚. De plus les restes de division de
𝑎, 2𝑎, 3𝑎, … , 𝑘𝑎, … , (𝑚 − 1)𝑎 par 𝑚 sont tous différents. Si on trouvait des
Page | 7
restes identiques pour 𝑘𝑎 et 𝑘′𝑎 (𝑘 > 𝑘 ′ ) alors le reste de (𝑘 − 𝑘 ′ )𝑎 par 𝑚
serait nul, ce qui est impossible d’après ce qui précède.
Notons que ces restes sont donc des entiers compris entre 1 et 𝑚 − 1.
En multipliant membre à membre les congruences :
𝑎 = 𝑟1 𝑚𝑜𝑑 𝑚 , 2𝑎 = 𝑟2 𝑚𝑜𝑑 𝑚, 3𝑎 = 𝑟3 𝑚𝑜𝑑 𝑚 , … , (𝑚 − 1)𝑎 = 𝑟𝑚−1 𝑚𝑜𝑑 𝑚
Alors nous obtenons :
𝑎, 2𝑎, 3𝑎, … , 𝑘𝑎, … , (𝑚 − 1)𝑎 = 1.2.3 … 𝑘 … (𝑚 − 1)𝑚𝑜𝑑 𝑚
⟺ 𝑎𝑚−1 (𝑚 − 1)! = (𝑚 − 1)! 𝑚𝑜𝑑 𝑚
Par définition de la congruence, cette égalité signifie que 𝑚 divise
(𝑚 − 1)! (𝑎𝑚−1 − 1). Or 𝑚 ne divise aucun des entiers 1.2.3 … 𝑘 … (𝑚 − 1),
il est également premier avec leur produit (𝑚 − 1)!
Ainsi d’après le lemme de Gauss 𝑚 divise (𝑎𝑚−1 − 1) c’est-à-dire
(𝑎𝑚−1 = 1 𝑚𝑜𝑑 𝑚).
Théorème de Wilson
Si 𝑚 est un premier, alors (𝑚 − 1)! ≡ −1 𝑚𝑜𝑑 𝑚
Preuve
Considérons la congruence 𝑥 2 ≡ 1 𝑚𝑜𝑑 𝑚. Alors
𝑥 2 − 1 ≡ (𝑥 − 1)(𝑥 +
1) 𝑚𝑜𝑑 𝑚 ≡ 0 , ainsi les seules solutions sont 𝑥 ≡ 1 et −1. Donc, pour
chaque 𝑖, 2 ≤ 𝑖 ≤ 𝑚 − 2, il existe qu’un inverse unique 𝑗 ≠ 𝑖 de 𝑖 , 2 ≤ 𝑗 ≤
𝑚 − 2. Ainsi lorsque nous groupons des inverses en pairs, nous
obtenons :
(𝑚 − 1)! ≡ 1.2 … (𝑚 − 2). (𝑚 − 1)
≡ 1.1 … 1. (𝑚 − 2)
≡ −1 𝑚𝑜𝑑 𝑚
Page | 8
Théorème du reste Chinois
Soit 𝑎1 , 𝑎2 , … , 𝑎𝑘 des entiers et 𝑚1 , 𝑚2 , … , 𝑚𝑘 des entiers relativement
premiers entre eux, alors le système des congruences
𝑥 ≡ 𝑎1 𝑚𝑜𝑑 𝑚1 ,
𝑥 ≡ 𝑎2 𝑚𝑜𝑑 𝑚2,
.
.
.
𝑥 ≡ 𝑎𝑘 𝑚𝑜𝑑 𝑚𝑘
admet une unique solution modulo 𝑚1 𝑚2 … 𝑚𝑘
Preuve
Soit 𝑚 = 𝑚1 𝑚2 … 𝑚𝑘 ,et considérons 𝑚/𝑚1 .Ceci est relativement premier
à 𝑚1 , ainsi il existe un entier 𝑡 1 tel que 𝑡1 .
En conséquence, soit 𝑠1 = 𝑡1 .
𝑚
𝑚1
𝑚
𝑚1
≡ 1 𝑚𝑜𝑑 𝑚1 .
. Alors 𝑠1 ≡ 1 𝑚𝑜𝑑 𝑚1 et 𝑠1 ≡ 0 𝑚𝑜𝑑 𝑚𝑗 , 𝑗 ≠
1. D’une manière similaire, ∀𝑖, il existe un 𝑠𝑖 tel que 𝑠𝑖 ≡ 1 𝑚𝑜𝑑 𝑚𝑖 et
𝑠𝑖 ≡ 0 𝑚𝑜𝑑 𝑚𝑗 ,𝑗 ≠ 𝑖. Alors 𝑥 = 𝑎1 𝑠1 + 𝑎2 𝑠2 + ⋯ + 𝑎𝑘 𝑠𝑘 est une solution du
système ci-haut.
Soit 𝑥 ′ une autre solution, alors 𝑥 − 𝑥 ′ ≡ 0 𝑚𝑜𝑑 𝑚𝑖
pour tout 𝑖 ⇒ 𝑥 − 𝑥 ′ ≡ 0 𝑚𝑜𝑑 𝑚1 𝑚2 … 𝑚𝑘
I.6. Résidus quadratiques
Soit 𝑛 > 1 un entier positif , et 𝑎 ∈ ℤ∗𝑛 tel que (𝑎, 𝑛) = 1.
On dit que 𝑎 est un résidu quadratique 𝑚𝑜𝑑 𝑛 si ∃ 𝑏 ∈ ℤ∗𝑛 tel que 𝑏 2 ≡
𝑎 𝑚𝑜𝑑 𝑛.
Si un tel 𝑏 n’existe pas, 𝑎 est un non-résidu quadratique 𝑚𝑜𝑑 𝑛.
Avec ℤ∗𝑛 = {𝑎 ∈ ℤ𝑛 | 𝑝𝑔𝑐𝑑(𝑎, 𝑛) = 1}
- Si 𝑎 et 𝑏 sont des résidus quadratique 𝑚𝑜𝑑 𝑛 ,alors leur produit
est 𝑎𝑏
Page | 9
- Si 𝑎 est un résidu quadratique 𝑚𝑜𝑑 𝑛, et 𝑏 un non-résidu
quadratique 𝑚𝑜𝑑 𝑛 , alors 𝑎𝑏 est un non-résidu quadratique
𝑚𝑜𝑑 𝑛
- Le produit de deux résidus quadratiques 𝑚𝑜𝑑 𝑛 n’est pas
nécessairement un résidu quadratique 𝑚𝑜𝑑 𝑛.
Théorème 1
Soit 𝑝 un nombre premier impair. Exactement la moitie des éléments de
ℤ∗𝑝 sont des résidus quadratiques.
Preuve
Chaque résidu quadratique modulo p est congru à un des
𝑝−1
2
résidus
suivants :
𝑝−1 2
12 , 22 , … , 𝑘 2 , … , (
)
2
On
montre
que
Pour 1 ≤ ℎ ≤ 𝑘 ≤
𝑝−1
2
ces
classes
des
résidus
sont
tous
distincts.
, ℎ2 ≡ 𝑘 2 𝑚𝑜𝑑 𝑝 si et seulement si (𝑘 − ℎ)(ℎ + 𝑘) est
divisible par p, ceci est impossible puisque chacun de 𝑘 − ℎ et ℎ + 𝑘 est
petit que 𝑝 .
Corollaire 1
Soit 𝑝 un nombre premier impair, le produit de deux non résidus est un
résidu quadratique.
Théorème 2
Soit 𝑝 un nombre premier impair. −1 est un résidu quadratique 𝑚𝑜𝑑 𝑝 si
et seulement si 𝑝 ≡ 1 𝑚𝑜𝑑 4.
Page | 10
Preuve
Si 𝑥 2 = −1 𝑚𝑜𝑑 𝑝 , alors par le petit théoreme de Fermat :
𝑝−1
2
(−1)
≡ 𝑥 𝑝−1 ≡ 1 𝑚𝑜𝑑 𝑝 . Ceci signifie que
Inversement si 𝑝 ≡ 1 𝑚𝑜𝑑 4, l’entier
𝑝−1
2
𝑝−1
2
est pair, et ≡ 1 𝑚𝑜𝑑 4 .
est pair. Par le théorème de
Wilson,
𝑝−1
2
𝑝−1
2
𝑝−1
2
𝑖=1
𝑖=1
𝑖=1
𝑝−1 2
((
) !) = ∏ 𝑗 2 = ∏ 𝑗(−𝑗) ≡ ∏ 𝑗(𝑝 − 𝑗) = (𝑝 − 1)! ≡ −1 𝑚𝑜𝑑 𝑝.
2
𝑝−1
Les solutions de 𝑥 2 = −1 𝑚𝑜𝑑 𝑝 sont donc 𝑥 ≡ ± (
2
) !.
Voici les racines carrés de −1 𝑚𝑜𝑑 𝑝 pour les 20 premiers nombres
premiers de la forme 4𝑘 + 1 :
𝑝
√−1
5
13
17
29
37
41
53
61
73
89
97
101
109
113
137
149
157
173
181
193
±2
±5
±4
±12
±6
±9
±23
±11
±27
±34
±22
±10
±33
±15
±37
±44
±28
±80
±19
±81
Théorème 3
Il y a une infinité des nombres premiers de la forme 4𝑘 + 1 .
Preuve
Supposons qu’il y a une finité des nombres premiers 𝑝1 , 𝑝2 , … , 𝑝𝑟 de la
forme 4𝑘 + 1 . Considérons le produit 𝑃 = (2𝑝1 , 𝑝2 , … , 𝑝𝑟 )2 + 1
Notons que ≡ 1 𝑚𝑜𝑑 4 . Puisque 𝑃 est grand que chaque 𝑝1 , 𝑝2 , … , 𝑝𝑟 , il
ne peut pas être premier, ainsi il doit y avoir un facteur premier 𝑝
différent de 𝑝1 , 𝑝2 , … , 𝑝𝑟 . Mais alors modulo ,-1 est une racine. Par le
théorème précédent, 𝑝 doit être de la forme 4𝑘 + 1 ., une contradiction.
Dans la table ci-dessus nous montrons pour les nombres premiers <
40 , les résidus quadratiques ainsi que leurs racines carrés. Il est à
noter que les racines carrées entrent en pairs. Par exemple, l’entrée
Page | 11
(2,7) pour le nombre premier 47 serait interpréter comme disant que
les deux solutions de la congruence 𝑥 2 = 2 𝑚𝑜𝑑 47 sont 𝑥 ≡ ±7 𝑚𝑜𝑑 47.
Aussi, pour les nombres premiers de la forme 𝑝 = 4𝑘 + 1, puisque -1
est un résidu quadratique modulo 𝑝 , on liste seulement les résidus
quadratiques plus petit que
𝑝
2
. Ceux qui sont plus grands que
𝑝
2
peuvent être trouvé avec l’aide des racines carrés de -1.
3
(1,1)
7
(-1,2) (1,1) (2,3) (4,2)
11
(1,1) (3,5) (4,2) (5,4) (9,3)
13
(-1,5) (1,1) (3,4) (4,2)
17
(-1,13) (1,1) (2,6) (4,2) (8,5)
19
(1,1) (4,2) (5,9) (6,5) (7,8) (9,3) (11,7) (16,4) (17,6)
23
29
(1,1) (2,5) (3,7) (4,2) (6,11) (8,10) (9,3) (12,9) (13,6) (16,4) (18,8)
(-1, 12) (1,1) (4,2) (5,11) (6,8) (7,6) (9,3) (13,10)
31
(1,1) (2,8) (4,2) (5,6) (7,10) (8,15) (9,3) (10,14) (14,13) (16,4) (18,7)
(19,9) (20,12) (25,5) (28,11)
37
(-1, 6) (1,1) (3,15) (4,2) (7,9) (9,3) (10,11) (11,14) (12,7) (16,4)
I.6.1.Le symbole de Legendre
Soit p un premier. Pour un entier 𝑎, on définit le symbole de Legendre
0, 𝑠𝑖 𝑎 𝑑𝑖𝑣𝑖𝑠𝑒 𝑝
( ) = {+1 , 𝑠𝑖 𝑎 𝑒𝑠𝑡 𝑢𝑛 𝑟𝑒𝑠𝑖𝑑𝑢 𝑞𝑢𝑎𝑑𝑟𝑎𝑡𝑖𝑞𝑢𝑒 𝑚𝑜𝑑 𝑝
p
−1, 𝑠𝑖𝑛𝑜𝑛
a
Lemme 1
𝑎𝑏
𝑎
𝑏
𝑝
𝑝
𝑝
( ) = ( )( )
Preuve
Ceci est équivalent de dire que, le produit de deux résidus
quadratiques 𝑚𝑜𝑑 𝑝 (respectivement non-résidu 𝑚𝑜𝑑 𝑝) est un résidu
quadratique 𝑚𝑜𝑑 𝑝, et le produit d’un résidu quadratique 𝑚𝑜𝑑 𝑝 et un
non-résidu quadratique 𝑚𝑜𝑑 𝑝 est un non résidu quadratique 𝑚𝑜𝑑 𝑝.
Page | 12
−1
Pour un premier impair 𝑝, ( ) = (−1)(
𝑝
𝑝−1
)
2
. Ceci est une répétition du
théorème 2 que -1 est un résidu quadratique 𝑚𝑜𝑑 𝑝 si et seulement si
𝑝 ≡ 1 𝑚𝑜𝑑 4.
Théorème (Euler)
Soit 𝑝 un premier impair. Pour chaque entier 𝑎 non divisible par 𝑝,
𝑎
( )≡𝑎
𝑝
𝑝−1
2
𝑚𝑜𝑑 𝑝.
Preuve
Supposons que 𝑎 est un non-résidu quadratique 𝑚𝑜𝑑 𝑝 . Les résidus
quadratique
mod p:
1,2, … , 𝑝 − 1
sont
partitionnés
satisfaisant l’équation 𝑥𝑦 = 𝑎. Dans ce cas, (𝑝 − 1)! ≡ 𝑎
en
𝑝−1
2
pairs
en
𝑚𝑜𝑑 𝑝.
Cas l’autre sens, si 𝑎 est un résidu quadratique, avec 𝑎 ≡ 𝑘 2 ≡
(𝑝 − 𝑘)2 𝑚𝑜𝑑 𝑝, à part 0, ±𝑘 , le reste de 𝑝 − 3 éléments de ℤ𝑝 peut être
partitionné en pairs satisfaisant 𝑥𝑦 = 𝑎
(𝑝 − 1)! ≡ 𝑘(𝑝 − 𝑘)𝑎
𝑝−3
2
= −𝑎
𝑝−1
2
𝑚𝑜𝑑 𝑝.
En résumant, on obtient
𝑎
(𝑝 − 1)! = − ( ) 𝑎
𝑝
𝑝−1
2
𝑚𝑜𝑑 𝑝.
Notons qu’en mettant 𝑎 = 1, on obtient le théorème de Wilson :
𝑎
(𝑝 − 1)! ≡ −1 𝑚𝑜𝑑 𝑝. Par comparaison, on obtient une formule pour ( ) :
𝑝
𝑎
( )≡ 𝑎
𝑝
𝑝−1
2
𝑚𝑜𝑑 𝑝.
I.6.2.Le symbole de Jacobi
Définition
Le symbole de Jacobi est une généralisation du symbole de Legendre
utilisant la décomposition en produit de facteurs premiers du nombre
du dessous. Sa définition est la suivante :
∝
∝
∝
Soit 𝑛 un entier impair supérieur à 2 et 𝑛 = 𝑝1 1 𝑝2 2 … 𝑝𝑘 𝑘
la
décomposition de n en facteurs premiers.
Page | 13
Alors,
pour
𝑥 ∝1
vaut : ( )
𝑝1
tout
𝑥 ∝2
( )
𝑝2
entier
𝑥
𝑎,
le
symbole
de
Jacobi
𝑥
( )
𝑛
∝𝑘
…( )
𝑝𝑘
Propriétés du symbole de Jacobi
Le symbole de Jacobi possède de très nombreuses propriétés :
1. Si 𝑛 est premier, le symbole de Jacobi et le symbole de Legendre
sont équivalents.
𝑎
2. ( ) ∈ {0,1, −1}
𝑛
𝑎
3. ( ) = 0 si et seulement si 𝑎 et 𝑛 ne sont pas premiers entre eux.
𝑛
𝑎𝑏
𝑎
𝑏
𝑛
𝑛
𝑛
4. ( ) = ( ) ( ) si 𝑛 est impair.
𝑎
𝑏
𝑛
𝑛
5. Si 𝑎 ≡ 𝑏 𝑚𝑜𝑑 𝑛 alors ( ) = ( ) si 𝑛 est impair.
1
6. ( ) = 1
𝑛
𝑛−1
2
−1
7. ( ) = (−1)
𝑛
𝑛2 −1
8
2
8. ( ) = (−1)
𝑛
vaut 1 si 𝑛 ≡ 1 𝑚𝑜𝑑 4 et -1 si 𝑛 ≡ 3 𝑚𝑜𝑑 4
vaut 1 si 𝑛 ≡ 1 𝑚𝑜𝑑 8 ou 𝑛 ≡ 7 𝑚𝑜𝑑 8 et -1 si 𝑛 ≡
3 𝑚𝑜𝑑 8 ou 𝑛 ≡ 5 𝑚𝑜𝑑 8
𝑚
𝑛
𝑛
𝑚
𝑚−1 𝑛−1
. 2
2
( ) = ( ) (−1)
𝑚
𝑛
𝑛
𝑚
si 𝑚 et 𝑛 sont impairs, autrement dit ( ) = ( )
sauf si 𝑚 et 𝑛 sont tous deux congrus à −1 𝑚𝑜𝑑 4 auquel cas
𝑚
𝑛
𝑛
𝑚
( ) = −( )
Les énoncés généraux sur les résidus quadratiques faisant intervenir
le symbole de Legendre ne s'étendent pas au symbole de Jacobi.
𝑎
Cependant, si ( ) = −1 alors 𝑎 n'est pas un résidu quadratique de 𝑛
𝑛
puisque 𝑎 n'est pas le résidu quadratique d'un des 𝑝𝑘 divisant 𝑛.
𝑎
Dans le cas où ( ) = 1 , il est impossible de dire si 𝑎 est un résidu
𝑛
quadratique de 𝑛. Puisque le symbole de Jacobi est un produit de
symboles de Legendre, il y a des cas ou deux symboles de Legendre
sont égaux à −1 et le symbole de Jacobi est égal à 1.
Page | 14
CHAPITRE II : GENERALITES SUR LA CRYPTOGRAPHIE
[5], [12], [13], [14], [15], [17], [18], [20]
II.1 Définitions
Cryptologie: Science des messages secrets, elle est composée en deux
disciplines: la Cryptographie et la cryptanalyse.
Cryptographie: Art de transformer un message clair en un message
inintelligible par celui qui ne possède pas les clés de chiffrement.
Cryptanalyse: Art d'analyser un message chiffré afin de le décrypter.
Chiffrement:
Procédé
qui
consiste
à
transformer
une
donnée
(généralement un message texte) afin de la rendre incompréhensible à
toute personne qui ne connait pas la clé.
Déchiffrement: Procédé qui consiste à retrouver le texte clair à partir
du texte chiffré.
Cryptogramme: Texte chiffré ou message chiffré.
Clé: Séquence sécrète en bits qui permettent de chiffrer ou de
déchiffrer un message donné.
II.1.1. Définition d’un système cryptographique
Soit 𝒜 un ensemble fini, appelé l'alphabet de définition.
Soit ℳ un ensemble appelé l'espace des messages clairs.
Soit 𝒞 un ensemble appelé l'espace des messages chiffrés.
Soit 𝒦 un ensemble appelé l'espace des clés.
Page | 15
Chaque 𝑘 ∈ 𝒦, détermine une injection 𝐸𝑘 de ℳ vers 𝒞, appelée fonction
de chiffrement, 𝑘 est appelé clé de chiffrement.
A chaque 𝑘 est associé un 𝑘′𝜖 𝒦, tel que 𝐷𝑘′ dénote une injection de 𝒞
vers ℳ , appelée fonction de déchiffrement, 𝑘′ est appelé clé de
déchiffrement.
Un
système
cryptographique
(cryptosystème)
est
un
quintuple
(ℳ, 𝒞, 𝒦, 𝐸, 𝐷) tel que
∀ 𝑘 𝑒𝑡 𝑘 ′ ∈ 𝒦, ∃ 𝐸𝑘 𝑒𝑡 𝐷𝑘′ ∶ 𝑥 ∈ ℳ, 𝐷𝑘 ′ (𝐸 (𝑥 )𝑘 ) = 𝑥
II.2 Cryptosystème symétrique et asymétrique
II.2.1 Cryptosystème symétrique
Les algorithmes de cryptographie symétrique utilisent les
mêmes clés lors du chiffrement et du déchiffrement.
Considérons un ensemble fini de fonctions de chiffrement {𝐸𝑘 : 𝑘 ∈ 𝒦 }
et un autre ensemble fini de fonctions de déchiffrement {𝐷𝑘′ : 𝑘′ ∈ 𝒦 } ,
nous avons: 𝑘 = 𝑘′
Dans un système symétrique, la sécurité repose sur la clé.
La clé doit rester inconnue aux tierces personnes. La génération des
clés est choisie d'une manière aléatoire dans l'espace des clés.
L'avantage du cryptosystème symétrique est basé sur sa rapidité et
son désavantage réside dans la distribution des clés. Pour un système
à 𝑛 utilisateurs, il y aura
𝑛(𝑛−1)
2
paires des clés.
Page | 16
II. 2.1.1 Exemples des chiffrements symétriques
II.2.1.1.1 Chiffrement symétriques classiques
Identifions l'alphabet usuel avec ℤ26 par
𝑎 = 0, 𝑏 = 1, … , 𝑧 = 25 et les
opérations sont réalisées dans ℤ26
1. Chiffrement par décalage
Soit 𝑀 = 𝐶 = 𝐾 = ℤ26
Soit 0 ≤ 𝑘 ≤ 25
Et soit 𝑥 et 𝑦 ∈ ℤ26
𝐸𝑘 (𝑥 ) = (𝑥 + 𝑘)𝑚𝑜𝑑 26 et 𝐷𝑘 (𝑦) = (𝑦 − 𝑘)𝑚𝑜𝑑 26
Ainsi pour 𝑘 = 3 nous avons le chiffrement de César.
Exemple: Avec 𝑘 = 3, le texte clair '' politique'', nous obtenons le texte
chiffré '' srolwltxh''
Ce système de chiffrement est facilement cassable puisque l'espace des
clés ne contient que 26 éléments (26 clés possibles).
2. Chiffrement par substitution
Soit 𝑀 = 𝐶 = 𝐾 = ℤ26
L'espace des clés est l'ensemble des permutations de ℤ26 .
Chacune des lettres est remplacée par une autre lettre de l'alphabet.
Pour 𝑘 ∈ 𝐾, nous avons :
𝐸𝑘 (𝑥 ) = 𝑘(𝑥 ) et 𝐷𝑘 (𝑦) = 𝑘 −1 (𝑦)
où 𝑥 𝑒𝑡 𝑦 ∈ ℤ26 et 𝑘 −1 est la permutation inverse de 𝑘
Le nombre de clés possibles est 26! > 4. 1026 , une recherche exhaustive
n'est pas possible. Cette méthode est facilement cassable suite à la
fréquence des lettres.
Page | 17
Exemple:
Soit la permutation suivante :
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
f l h j a r c p u x d i q y m k b t g w n z s v o e
Le texte clair ''symétrique'' est chiffré en '' goqawtubna'
3. Chiffrement du Vigenère
Soit 𝑚 ∈ ℕ∗
Soit 𝑀 = 𝐶 = 𝐾 = (ℤ26 )𝑚
Soit 𝑘 = (𝑘1 , … , 𝑘𝑚 )
Alors 𝐸𝑘 (𝑥 ) = 𝐸𝑘 (𝑥1 , … , 𝑥𝑚 ) = (𝑥1 + 𝑘1 , … , 𝑥𝑚 + 𝑘𝑚 )
et 𝐷𝑘 (𝑦) = 𝐷𝑘 (𝑦1 , … , 𝑦𝑚 ) = (𝑦1 − 𝑘1 , … , 𝑦𝑚 − 𝑘𝑚 )
où 𝑥 𝑒𝑡 𝑦 ∈ ℤ26
Le nombre de mots-clés possibles de longueur 𝑚 est 26𝑚 , une
recherche exhaustive est impossible.
Exemple:
Soit le mot en clair '' Faculté '' et la clé '' Ornela ''
Texte
f
a
c
u
l
t
e
claire
5
0
2
20
11
19
4
o
r
n
e
l
a
o
Clé
14
17
13
4
11
0
14
Texte
19
17
15
24
22
19
18
chiffré
t
r
p
y
w
t
s
Page | 18
4. Chiffrement par permutation
Soit 𝑚 ∈ ℕ
Soit 𝑀 = 𝐶 = (ℤ26 )𝑚
Soit 𝐾 l’ensemble des permutations de ℤ𝑚
Pour 𝑘 ∈ 𝐾 nous avons :
𝐸𝑘 (𝑥 ) = 𝐸𝑘 (𝑥1 , … , 𝑥𝑚 ) = (𝑥𝑘(1) , … , 𝑥𝑘(𝑚) ) et
−1
−1
𝐷𝑘 (𝑦) = 𝐸𝑘 (𝑦1 , … , 𝑦𝑚 ) = (𝑦𝑘(1)
, … , 𝑦𝑘(𝑚)
)
où 𝑥 𝑒𝑡 𝑦 𝜖ℤ26 et 𝑘 −1 est la permutation inverse de 𝑘.
Exemple :
Si 𝑚 = 6 et 𝑘 est la permutation qui envoie (1,2,3,4,5,6) sur (4,2,1,5,6, ,3)
alors le texte clair ‘’ cryptographie ’’ est chiffré en ‘’ prctoyprghea ‘’.
5. Chiffrement de Verman
Le chiffrement de Verman est aussi appelé Masque jetable, en Anglais
One- time pad est définit sur les bits, 𝑀 = 0,1
Ainsi pour un message binaire 𝑥1 , … , 𝑥𝑡 est modifié par une clé 𝑘1 , … , 𝑘𝑡
binaire de même taille, comme suit:
𝐸𝑘 (𝑥 ) = 𝑦 = 𝑥𝑖 ⊕ 𝑘𝑖 , 1 ≥ 𝑖 ≤ 𝑡
𝐷𝑘 (𝑦) = 𝑥 = 𝑦𝑖 ⊕ 𝑘𝑖 , 1 ≤ 𝑖 ≤ 𝑡
Le chiffrement est incassable si la clé est choisie aléatoirement, et si
cette même clé n'est plus jamais utilisée.
Exemple:
Soit
le
message
clair
‘’
101001101110101
‘’
et
la
clé
‘’
100111101110110 ’’
On a :
𝐸𝑘 (𝑥 ) = 𝑦 = 101001101000101 ⊕ 100111101110110 = 001110000000011
𝐷𝑘 ′ (𝑦) = 𝑥 = 001110000000011 ⊕ 100111101110110 = 101001101110101
Page | 19
I.2.1.1.2 Chiffrement par bloc
Un chiffrement par bloc 𝐵 est une fonction prenant en paramètre une
clé 𝑘 et un texte clair 𝑥 d'une longueur finie. Alors 𝐵 génère un texte
chiffré de longueur finie à partir d'un message clair et d'une clé.
Principe:
1. Remplacer les caractères du message par des bits
2. Segmenter cette chaine en blocs de chacun n bits
3. Chiffré successivement chaque bloc:
- Appliquer l'opération logique bit par bit avec une clé
- Déplacer certains bits du bloc
- Recommencer un certain nombre de fois l'opération 3.
4. Passer au bloc suivant et retourner au point 3 jusqu'à ce que
tout le message soit chiffré.
Il existe trois catégories de chiffrement par bloc:
- Chiffrement par substitution
- Chiffrement par transposition
- Chiffrement par produit
1. Chiffrement par substitution
Le chiffrement par substitution consiste à remplacer les symboles par
d'autres symboles.
Exemple:
Fig.1.Exemple de chiffrement par substitution
Page | 20
2. Chiffrement par transposition
Le chiffrement par transposition est un chiffrement dans lequel est
réalisé une permutation sur les symboles de chaque bloc à chiffré.
Exemple:
Fig.2.Exemple de chiffrement par transposition
3. Chiffrement par produit
Le chiffrement par produit est la combinaison du
chiffrement par substitution et du chiffrement par transposition.
Le chiffrement par substitution ou par transposition ne garantie pas
un niveau de sécurité élevée, on obtient en combinant ces deux
transformations, un chiffrement ayant un niveau de sécurité élevée.
Les algorithmes les plus utilisés sont: DES, 3DES, AES, RC5.
Exemple
Fig.3.Exemple de chiffrement par produit
Page | 21
II. 2.1.1.2 Chiffrement par flot
Le chiffrement par flot est un chiffrement par bloc de
longueur égale à un. Cette opération s'effectue sur chaque caractère,
bits. La structure d'un chiffrement par flot réside sur un générateur de
clés qui produit une séquence des clés
𝑘1 , 𝑘2 , … , 𝑘𝑛 (voir chapitre 3).
C'est la qualité du générateur qui détermine la sécurité du chiffrement
par flot. Si la séquence des clés est infinie et aléatoire, on a un Onetime pad.
Clé k
Texte
Clair
Clé k
Texte
Chiffré
⊕
Chiffrement
⊕
Texte
Clair
Déchiffremen
t
Fig.3. Schéma du chiffrement à flot
Une erreur dans 𝒞𝑖 n'affecte qu'un bit de ℳ𝑖 . La perte ou l'ajout d'un
bit de 𝒞𝑖 affecte tous les bits suivants de ℳ après déchiffrement.
II.2.2 Cryptosystème asymétrique
Dans un Cryptosystème asymétrique, chaque interlocuteur
possède deux clés, l'une étant privée (secrète) et l'autre publique, elles
sont mathématiquement liées avec impossibilité de déduire la clé
privée à partir de la clé publique. La clé privée doit rester secrète
Page | 22
tandis que la clé publique sera distribuer; la clé publique permet de
chiffré un message et la clé privée permet de déchiffré un message.
Soit un ensemble fini de fonctions de chiffrement
{𝐸𝑒 : 𝑒 ∈ 𝒦 } et de déchiffrement {𝐷𝑑 : 𝑑 ∈ 𝒦 }.
∀ 𝑦 ∈ 𝒞, pour toutes paires de transformation(𝐸𝑒 , 𝐷𝑑 ), il est impossible
(ou très difficile) de trouver le message clair 𝑥 ∈ ℳ tel que 𝐸𝑒 (𝑥 ) = 𝑦
Considérons deux interlocuteurs Alice et Bob qui
désirent communiquer ensemble, Bob sélectionne une paire de clés
(𝑒, 𝑑 ) et envoie 𝑒 à Alice. Alice après avoir reçu 𝑒, envoie un message 𝑥 à
Bob. Alice calcule 𝑦 = 𝐸𝑒 (𝑥 ) puis le fait parvenir à Bob. A la réception,
Bob calcule la transformation inverse 𝑥 = 𝐷𝑑 (𝑦).
II.2.2.1 Exemples de chiffrement asymétrique
Nous distinguons plusieurs méthodes de chiffrements
asymétrique tels que : RSA, CCE, Rabin, El Gamal, Mc Eliece, MerkleHellman, Gold wasser-Micali, etc.
- Méthode RSA
RSA est basé sur le calcul exponentiel; sa sécurité repose sur la
fonction unidirectionnelle et la difficulté de factoriser un grand nombre
en deux facteurs premiers.
a. Génération des clés
–
choisir aléatoirement deux grands premiers distincts 𝑝 et 𝑞
approximativement de la même taille
–
calculer 𝑛 = 𝑝. 𝑞 et 𝑧 = (𝑝 − 1)(𝑞 − 1)
–
choisir un entier 𝑒 aléatoire dans ]1, 𝑧[ tel que 𝑝𝑔𝑐𝑑 (𝑒, 𝑧) = 1
–
calculer l'unique 𝑑 ∈ ]1, 𝑧[ tel que 𝑒. 𝑑 = 1(𝑚𝑜𝑑 𝑧)
–
La clé publique est (𝑒, 𝑛) et la clé privée est (𝑑, 𝑛)
Page | 23
b. Chiffrement
Soit le message 𝑥 ∈ ℤ𝑛 à chiffrer,
Calculer 𝑦 = 𝑥 𝑒 𝑚𝑜𝑑 𝑛
c. Déchiffrement
𝑦 est déchiffré en calculant : 𝑥 = 𝑦 𝑑 𝑚𝑜𝑑 𝑛
Exemple :
Considérons 𝑝 et 𝑞 très petits, 𝑝 = 5 et 𝑞 = 11
Nous avons :
𝑛 = 𝑝. 𝑞 = 5.11 = 55
𝑧 = (𝑝 − 1)(𝑞 − 1) = 4.11 = 40
On peut choisir 𝑑 = 7 (7 est premier avec 40)
On calcule 𝑒 tel que :
𝑑. 𝑒 = 1 𝑚𝑜𝑑 𝑧 → 7. 𝑒 = 1 𝑚𝑜𝑑 40 → 𝑒 = 23
On obtient :
Clé publique : (23,55)
Clé privée : (7,55)
Soit le texte clair à chiffrer ‘’ IMAGE ‘’
I
M
A
G
E
9
13
1
7
5
1. Chiffrement
- I : 923 𝑚𝑜𝑑 55 = 14
- M : 1323 𝑚𝑜𝑑 55 = 52
- A:1=1
- G : 723 𝑚𝑜𝑑 55 = 13
- E : 523 𝑚𝑜𝑑 55 = 15
2. Déchiffrement
- 14 : 147 𝑚𝑜𝑑 55 = 9
- 52 : 527 𝑚𝑜𝑑 55 = 13
Page | 24
- 1:1=1
- 13 : 137 𝑚𝑜𝑑 55 = 7
- 15 : 157 𝑚𝑜𝑑 55 = 5
La distribution des clés ne pose pas problème, chaque
utilisateur possède une paire de clés. L'utilisateur après avoir chiffré le
message du destinataire ne sera plus capable de déchiffrer son propre
message, seul le détenteur de la clé gardée secrète pourra déchiffrer le
message. On utilise le chiffrement asymétrique aussi pour chiffrer les
nombres aléatoires qui servent de clés secrètes pour les algorithmes de
chiffrement
symétrique;
on
l'utilise
également
pour
assurer
l'authenticité d'un message.
II.3. Sécurité d’un système cryptographique
On distingue deux approches fondamentales dans l’étude de
la sécurité d’un cryptosystème : la sécurité parfaite de Shannon et la
sécurité calculatoire.
II.3.1. Notions élémentaires de probabilité
Définition classique de probabilité
Considérons une expérience aléatoire 𝜉 possédant la symétrie mutuelle
et 𝐴 un événement quelconque relatif à 𝜉 . La probabilité de
l’événement 𝐴 est le nombre ℙ (𝐴) =
𝑚
𝑛
, où 𝑚 est le nombre de cas
favorables à 𝐴 et 𝑛 le nombre total des éventualités rattaché à
l’épreuve.
Définition axiomatique de probabilité
Une mesure de ℙ définie sur un espace probabilisable (Ω, 𝒜 ) ,
l’application ℙ ∶ 𝐴 → ℝ qui vérifie les 3 axiomes suivants :
1. ℙ(𝐴) ≥ 0 , ∀ 𝐴 ∈ 𝒜
2. Si 𝐴1 , 𝐴2 , … , 𝐴𝑖 𝜖 𝒜 𝑡𝑞 𝐴𝑗 ∩ 𝐴𝑘 = ∅ pour 𝑗 ≠ 𝑘
Page | 25
alors ℙ (⨄ 𝐴𝑖 ) = ∑ ℙ ( 𝐴𝑖 );
3. ℙ(Ω) = 1.
Le triplet (Ω, 𝒜, ℙ) est appelé espace probabilisé.
Probabilité conditionnelle
Soient 𝐴 et 𝐵 deux événement telque 𝑃(𝐵) > 0
On appelle probabilité conditionnelle de l’événement 𝐴 par rapport à
l’événement 𝐵, ou encore la probabilité de A étant donné B :
ℙ(𝐴\𝐵) =
ℙ(𝐴 ∩ 𝐵)
ℙ(𝐵)
La probabilité conditionnelle nous permet de calculer la probabilité de
l’intersection :
ℙ(𝐴 ∩ 𝐵) = ℙ(𝐵)ℙ(𝐴\𝐵)
Indépendance stochastique des événements
Deux événements 𝐴1 et 𝐴2 sont indépendant si
ℙ(𝐴1 ∩ 𝐴2 ) = ℙ(𝐴1 )ℙ(𝐴2 )
si ℙ(𝐴1 ) > 0 et ℙ(𝐴2 ) > 0 et que les événement 𝐴1 et 𝐴2 sont
indépendants alors ℙ(𝐴1 \𝐴2 ) = ℙ(𝐴1 ) 𝑒𝑡 ℙ(𝐴2 \𝐴1 ) = ℙ(𝐴2 )
Les événements {𝐴𝑛 ∶ 𝑘 = 1,2, … , 𝑛 } sont indépendants si
ℙ(𝐴𝑘1 ∩ 𝐴𝑘2 , … , 𝐴𝑘𝑛 ) = ℙ(𝐴𝑘1 )ℙ(𝐴𝑘2 ), … , ℙ(𝐴𝑘𝑛 )
Théorème de Bayes
Si {𝐴𝑘 ; 𝑘 = 1, … , 𝑛} est un système complet d’événements et 𝐵 est un
événement quelconque.
Supposons que 𝐵 puisse se produire qu’en combinaison avec l’un des
événements de 𝐴𝑖 , c'est-à-dire 𝐵 = ⨄𝑛𝑖=1 (𝐴𝑖 ∩ 𝐵).
∀𝑘 = 1, … , 𝑛, alors on a la formule de Bayes
𝑃(𝐴𝑗 \𝐵) =
𝑃(𝐴𝑗 )𝑃(𝐵\𝐴𝑗 )
𝑃(𝐴𝑘 ∩ 𝐵)
= 𝑛
; 𝑗 = 1, … , 𝑛.
∑𝑘=1 𝑃(𝐴𝑘 )𝑃(𝐵\𝐴𝑘 )
𝑃(𝐵)
Preuve. Voir [12]
Page | 26
II.3.2. La sécurité calculatoire
La sécurité calculatoire est basée sur la mesure de la
quantité de calcul nécessaire pour casser un système. On dit qu’un
procédé est sûr au sens de la théorie de la complexité si le meilleur
algorithme pour le casser nécessite 𝑛 opérations où 𝑛 est un nombre
beaucoup trop grand pour que cet algorithme soit applicable en
pratique. Dans la pratique, on dit souvent qu’un système est sûr si la
meilleure attaque connue ne peut se faire avec une quantité
raisonnable de temps de calcul. Le problème de cette approche c’est
qu’un cryptosystème peut être sûr pendant un moment puis ne plus
l’être lorsque l’on découvre un algorithme plus efficace.
II.3.3 La sécurité parfaite de Shannon
Claude
Shannon
en
1949
dans
son
article
intitulé « Communication Theory of Secrecy System » introduit la
notion des systèmes cryptographiquement sûrs, qui eut une influence
considérable sur l’étude de la cryptographie.
Considérons l’ensemble fini ℳ de textes clairs, l’ensemble fini 𝒞 de
textes chiffrés, l’ensemble fini 𝒦 de clés.
Supposons qu’une clé 𝑘 est utilisée une et une seule fois.
Notons que l’ensemble des textes clairs ℳ est muni d’une probabilité
ℙℳ (𝑥) ainsi que l’ensemble des clés 𝒦 muni d’une probabilité ℙ𝒦 (𝑘).
Supposons que les clés sont choisies indépendamment des textes
clairs.
Ainsi les deux probabilités ℙℳ (𝑥)et ℙ𝒦 (𝑘) induisent une
probabilité sur l’ensemble des textes chiffrés 𝒞. Nous pouvons calculer
la probabilité ℙ𝒞 (𝑦) que le texte chiffré 𝑦 soit transmis.
Pour une clé 𝑘 ∈ 𝒦, 𝒞 (𝑘) = {𝐸𝑘 (𝑥 ) ∶ 𝑥 ∈ ℳ }, notons que 𝒞(𝒦 ) représente
l’ensemble des textes chiffrés avec la clé 𝑘, ∀ 𝑦 ∈ 𝒞, nous définissons
Page | 27
𝒞𝑦 = {𝑘 ∈ 𝒦 ∶ 𝑦 ∈ 𝒞(𝑘)} , qui est l’ensemble de toutes les clés possibles
qui permettent d’obtenir le chiffré 𝑦.
Nous avons alors la probabilité de 𝑦 donnée par :
ℙ𝒞 (𝑦) = ∑ ℙ𝒦 (𝑘)ℙℳ (𝑑𝑘 (𝑦))
𝑘𝜖𝒞𝑦
L’événement « le texte chiffré est 𝑦 » n’est possible que si 𝐸𝑘 (𝑥 ) = 𝑦 ou
𝑥 = 𝐷𝑘 (𝑦).
La probabilité d’avoir le « texte chiffré 𝑦 » est la somme de toutes les
probabilités mutuelles ℙ(𝑥, 𝑘). les événements « le texte clair est 𝑥 » et
« la clé est 𝑘 » sont supposés indépendants, alors cette probabilité est
égale à ℙℳ (𝑥 )ℙ𝒦 (𝑘).
∀ 𝑦 ∈ 𝒞 et 𝑥 𝜖 ℳ ,nous pouvons calculer la probabilité conditionnelle
ℙ(𝑦⁄𝑥) (la probabilité que 𝑦 soit le texte chiffré en sachant que 𝑥 est la
texte clair) par ℙ(𝑦⁄𝑥 ) = ∑𝑘𝜖𝐷𝑥,𝑦 ℙ𝒦 (𝑘) où 𝐷𝑥,𝑦 = {𝑘 ∈ 𝒦: 𝑥 = 𝐷𝑘 (𝑦)}.
En utilisant le théorème de Bayes, nous avons :
ℙ(𝑦⁄𝑥) =
ℙℳ (𝑥) ∑𝑘𝜖𝐷𝑥,𝑦 ℙ𝒦 (𝑘)
∑𝑘𝜖𝒞𝑦 ℙ𝒦 (𝑘)ℙℳ 𝐷𝑘 (𝑦))
II.3.4. Système cryptographique parfaitement sûr
Un système cryptographique parfaitement sûr si on a :
∀𝑥 ∈ ℳ, ∀ 𝑦 ∈ 𝒞, ℙ(𝑥 ⁄𝑦) = ℙ(𝑥 ). En d’autres termes : la probabilité que
le texte clair soit 𝑥 sachant que le texte chiffré est 𝑦 est égale à la
probabilité que le texte clair soit 𝑥. Dans ce cas le texte chiffré
n’apporte aucune information sur le texte clair.
Lemme 1
Un système cryptographique vérifiant la propriété de sécurité parfaite
et tel que ℙ(𝑦) > 0 ∀ 𝑦 ∈ 𝒞, alors :|𝒦 | ≥ |𝒞 | ≥ |ℳ |
Page | 28
Démonstration
Fixons 𝑥 ∈ ℳ tel que ℙ(𝑦) > 0 ∀ 𝑦 ∈ 𝒞, on a :
ℙ(𝑥 ⁄𝑦) = ℙ(𝑥 ), d’après le théorème de Bayes :
ℙ(𝑦)(ℙ(𝑥 ⁄𝑦) = ℙ(𝑦⁄𝑥) (ℙ(𝑥 ) donc ℙ(𝑦⁄𝑥) = ℙ(𝑦) > 0 ceci signifie qu’il
exite au moins une clé 𝑘 ∈ 𝒦 telle que 𝑒𝑘 (𝑥 ) = 𝑦 .
Par suite |𝒦 | ≥ |𝒞| , comme 𝑒𝑘 est injective on a : |𝒞| ≥ |ℳ |
Théorème
Un système cryptographique vérifiant |𝒦 | = |ℳ | = |𝒞 | ainsi que ℙ(𝑦) >
0
∀ 𝑦 ∈ 𝒞, il est à la sécurité parfaite si et seulement si les deux
conditions suivantes sont réalisées :
a. Toutes les clés sont équiprobables,
b. Pour chaque 𝑥 ∈ ℳ et chaque 𝑦 ∈ 𝒞 existe une unique clé 𝑘
vérifiant 𝑒𝑘 (𝑥 ) = 𝑦.
Démonstration
Supposons les conditions vérifiées. Alors ∀ 𝑦 ∈ 𝒞, on a successivement :
ℙ(𝑦) =
ℙ(𝑘)ℙ(𝑑𝑘 (𝑦)),
∑
𝑘∈𝒦
𝑦∈𝑒𝑘 (ℳ)
=
=
1
|𝒦|
1
|𝒦|
∑𝑘∈𝒦 ℙ(𝑑𝑘 (𝑦)),
∑𝑥∈ℳ ℙ(𝑥 ) =
1
|𝒦|
D’autre part pour 𝑥 ∈ ℳ et 𝑦 ∈ 𝒞, puisqu’il n’y a qu’une clé 𝑘 qui vérifie
𝑒𝑘 (𝑥 ) = 𝑦 on a :
ℙ (𝑦⁄𝑥 ) =
∑
ℙ(𝑘) =
𝑘⁄𝑒𝑘 (𝑥)=𝑦
1
|𝒦 |
En appliquant le théorème de Bayes :
ℙ(𝑥 ⁄𝑦) =
ℙ(𝑥 )ℙ(𝑦⁄𝑥)
,
ℙ(𝑦)
Page | 29
ℙ(𝑥 ⁄𝑦) =
ℙ(𝑥)⁄|𝒦|
1⁄|𝒦|
= ℙ(𝑥 ).
La sécurité est
donc parfaite.
Réciproquement, supposons que la sécurité est parfaite. Comme dans
le lemme précédent, on montre que pour chaque couple (𝑥, 𝑦) ∈ ℳ × 𝒞
, il existe une clé 𝑘 telle que 𝑒𝑘 (𝑥 ) = 𝑦.
Pour 𝑥 fixé on a donc {𝑒𝑘 (𝑥)/𝑘 ∈ 𝒦 } = 𝒞, ce qui montre que pour 𝑥 fixé
l’ensemble des 𝑒𝑘 (𝑥) est de cardinal |𝒞| = |𝒦 |. Ces 𝑒𝑘 (𝑥) sont donc
distincts deux à deux et pour chaque 𝑦 ∈ 𝒞, la clé 𝑘 vérifiant 𝑒𝑘 (𝑥 ) = 𝑦
est unique.
Pour deux clés 𝑘1 et 𝑘2 , comparons ℙ(𝑘1 ) et ℙ(𝑘2 ) . Pour cela fixons 𝑦
et désignons 𝑥1 et 𝑥2 les uniques éléments de ℳ vérifiant 𝑒𝑘1 (𝑥1 ) = 𝑦 et
𝑒𝑘2 (𝑥2 ) = 𝑦 (chaque 𝑒𝑘 est injective et donc ici bijective.
Par le théorème de Bayes, et à la sécurité parfaite on obtient :
ℙ(𝑦) = ℙ(𝑦⁄𝑥1 ) =
∑
ℙ(𝑘) = ℙ(𝑘1 )
𝑘⁄𝑒𝑘 (𝑥1 )=𝑦
Le même calcul peut être fait avec 𝑘2 . Ce qui prouve que ℙ(𝑘1 ) = ℙ(𝑘2 ).
Les clés sont donc équiprobables.
Exemple
Le chiffrement de Verman ou le one-time-pad ou encore le masque
jetable vérifie les conditions du théorème précédent. C’est un système
parfaitement sûr. Il utilise une clé secrète très longue (séquence
aléatoire binaire) où chaque bit est indépendant des autres et une
probabilité
1
2
d’être 0 ou 1.
Une nouvelle clé est utilisée à chaque
chiffrement, la clé est aussi longue que le texte clair. La construction
de cette clé aussi longue sera l’objet de notre chapitre suivant.
Page | 30
CHAPITRE III : GENERATEURS PSEUDO-ALEATOIRES
[4], [6], [7], [8], [9], [10], [11], [14] , [17], [19],[20], [21], [22], [23],
[24],[25], [26], [27]
Définition
Soit 𝑆 un ensemble fini appelé espace d’états, un générateur pseudoaléatoires est défini par :
𝑓: 𝑆 → 𝑆,
et l’état s’évolue selon : 𝑠𝑖 = 𝑓(𝑠𝑖−1 ), 𝑖 = 1,2,3, …
l’état initial 𝑠0 s’appelle germe ou graine.
Autrement dit un générateur pseudo-aléatoire est un procédé qui, à
partir d'une initialisation de taille fixée
appelée germe ou graine,
engendre de manière déterministe une séquence de très grande
longueur.
Cette séquence consiste à imiter une séquence de variables aléatoires.
Définition
Une séquence binaire 𝑥 constituée de 𝑛 bits est dite aléatoire
lorsque les 𝑛 bits sont indépendants, imprédictibles et équiprobables.
Un
générateur
de
nombres
pseudo-aléatoires
et
un
générateur de bits aléatoires ont pour buts de générer une séquence
de mots aléatoires. Les mots appartiennent à l’alphabet fini 𝒜. Dans le
cas d’un générateur de bits aléatoires, l’alphabet est de dimension 2
c’est.-à-dire. 𝒜 = {0,1}.
On distingue plusieurs générateurs pseudo-aléatoires tels
que Générateur à congruence linéaire, Générateur carré-médian,
Générateur à congruence additive, Générateur de type « multiplication
avec retenue », Générateur de Blum-Blum-Shub ou Générateur
quadratique etc.…
Page | 31
III.1. Exemples de quelques générateurs pseudo-aléatoires
1. Générateur à congruence linéaire
Le générateur à congruence linéaire est un algorithme inventé par
Lehmer en 1948. C’est une suite définie par la relation suivante :
𝑥𝑛+1 = (𝑎. 𝑥𝑛 + 𝑐 ) 𝑚𝑜𝑑 𝑚
où 𝑎 est appelé multiplicateur, 𝑐 est l’incrément, et 𝑚 est le module (le
maximum plus un des nombres de la suite). La suite est initialisée par
le germe 𝑥0 . Tous ces nombres sont positifs.
Pours avoir une période maximale, les paramètres suivants doivent
être respecté avec 𝑐 non nul :
- 𝑐 et 𝑚 doivent être premiers entre eux
- 𝑎 − 1 doit être multiple de 𝑝, ∀ 𝑝 nombre premier diviseur de 𝑚
Exemple : 𝑥𝑛+1 = (5𝑥𝑛 + 1) 𝑚𝑜𝑑 16
Avec 𝑥0 = 5, la suite est :10,3,0,1,6,15,12,13,2,11,8,9,14,7,4,5
2. Générateur carré-médian
Le générateur carre-médian est construit de la manière suivante : on
élève au carré un nombre de 2𝑘-chiffres et on prend les 2𝑘-chiffres du
milieu du produit (de 4𝑘 chiffres). Il fut historiquement l’un des
premiers générateurs utilisés mais c’est un très mauvais générateur ;
si l’on tombe sur zéro tous les autres termes de la suite seront nuls et
de manière générale sa période est trop courte.
Exemple :
𝑥0
12
14
19
36
29
84
5
2
0
0
𝑥02
0144 0196 0361 1296 0841 7056 0025 0004 0
0
Page | 32
3. Générateur à congruence additive
Le générateur à congruence additive est défini de la manière suivante :
Soient 𝑚, 𝑥0 , 𝑥1 , … , 𝑥𝑘−1 des entiers naturels, pour 𝑛 = 𝑘 , 𝑘 + 1, …
𝑥𝑛 = (𝑥𝑛−1 + 𝑥𝑛−𝑘 ) 𝑚𝑜𝑑 𝑚
Pour 𝑘 = 2 on obtient la suite de Fibonacci.
Cette méthode a deux inconvénients :
1. Il nécessite de stocker 𝑘 nombres.
2. Si 𝑘 est petit les nombres présentent une forte corrélation.
4. Générateur Blum-Blum-Shub
Définition
L’ensemble des résidus quadratiques 𝑚𝑜𝑑 𝑛 est noté par 𝑄𝑅𝑛 et
l’ensemble des non-résidus quadratiques 𝑚𝑜𝑑 𝑛 est noté par 𝑄𝑁𝑅𝑛
Définition
Un entier de Blum est un produit de deux premiers distincts dont tous
deux congrus à 3 modulo 4.
Proposition
Soit 𝑛 = 𝑝𝑞 un entier de Blum et soit 𝑥 un carrée de ℤ∗𝑛 alors 𝑥 possède
quatre racines carrées dont une (et une seule) est un carrée de ℤ∗𝑛 . Cette
racine est appelée racine principale de 𝑥.
Preuve
Comme le nombre de racines carrées de 𝑥 est quatre, on peut écrire
que ces racines carrées sont : (±𝑎
𝑝+1
4
, ±𝑎
𝑞+1
4
) dans ℤ∗𝑝 × ℤ∗𝑞 (qui s’identifie
à ℤ∗𝑛 grâce au théorème des restes chinois), seul le couple formé par les
deux racines principales de 𝑥 modulo 𝑝 et modulo 𝑞 est un carré
modulo 𝑛.
Définition
Le générateur Blum-Blum-Shub est définit de la manière suivant :
Soit 𝑛 = 𝑝𝑞 un entier de Blum tel que 𝑝 = 3 𝑚𝑜𝑑𝑢𝑙𝑜 4 et 𝑞 = 3 𝑚𝑜𝑑𝑢𝑙𝑜 4.
Page | 33
On choisit un nombre 𝑥 ∈ ℤ∗𝑛 d’une manière aléatoire tel que (𝑛, 𝑥) = 1,
alors le germe de la suite est calculé par : 𝑥0 = 𝑥 2 𝑚𝑜𝑑 𝑛. Et les autres
termes de la suite sont définis par :
𝑥𝑛+1 = (𝑥𝑛 )2 𝑚𝑜𝑑 𝑛
Exemple
Soit 𝑛 = 7 ∗ 19 = 133 et 𝑥 = 100. Alors 𝑥0 = 1002 𝑚𝑜𝑑 133 = 25. Les autres
termes
sont :
𝑥1 = 252 𝑚𝑜𝑑 133 = 93,
𝑥2 = 932 𝑚𝑜𝑑 133 = 4,
𝑥3 =
42 𝑚𝑜𝑑 133 = 16, 𝑥4 = 162 𝑚𝑜𝑑 133 = 123. La sortie en bit : 1, 0, 0,1, avec
𝑥𝑛+1 = (𝑥𝑛 )2 𝑚𝑜𝑑 2.
III.2. Générateurs cryptographiquement sûrs
Du point de vue de la formalisation de la sécurité d’un
générateur pseudo-aléatoire, il faut d’une part définir le problème de
sécurité, d’autre part il faut définir ce qu’est l’attaque. Un attaquant
est considéré comme un algorithme réalisable qui sort un résultat
relatif au problème de sécurité posé. La notion d’algorithme réalisable
est extrêmement importante car comme on travaille souvent sur des
situations finies on peut décrire théoriquement des algorithmes qui
cassent la sécurité des systèmes. Mais ces algorithmes ne sont pas
réalisables en pratique à cause de la durée des calculs. On cherche
donc à assurer la sécurité calculatoire.
Nous allons utiliser le générateur de Blum-Blum-Shub qui est
cryptographiquement sûr.
Page | 34
Définition
Soit 𝑘 ∈ ℕ un paramètre, appelé paramètre de sécurité.
Définition
Soit 𝑙 ∈ ℕ une fonction en 𝑘 telle que 𝑘 < 𝑙. Un générateur pseudoaléatoire est une fonction 𝐹 calculable en temps polynomial en 𝑙 de
𝒜 ⊆ {0,1}𝑘 dans{0,1}𝑙 .
Lorsque nous composons la distribution uniforme sur 𝒜 avec 𝐹, nous
obtenons une distribution sur {0,1}𝑙 appelée la distribution induite
par 𝐹.
Définition
Soit 𝐹 un générateur pseudo-aléatoire et 𝜀 > 0. Un 𝜀-distingueur pour
𝐹 est un algorithme 𝐷 probabiliste polynomial {0,1}𝑙 → {0,1} tel que
ℙ𝐹 {𝐷(𝑏1 , … , 𝑏𝑙 ) = 1} − ℙ{𝐷(𝑏1 , … , 𝑏𝑙 ) = 1} ≥ 𝜀
où ℙ𝐹 signifie que les bits 𝑏1 , … , 𝑏𝑙 sont choisis selon la distribution
induite par 𝐹 et ℙ qu’ils sont choisis selon la distribution uniforme.
Définition
Un générateur pseudo-aléatoire 𝐹 est dit cryptographiquement sûr s’il
n’existe d’ 𝜀-distingueur pour 𝐹 que pour des fonctions 𝜀 négligeables
(par rapport au paramètre 𝑙).
III.3. Extrapoleurs
Définition
Soit 𝐹 un générateur pseudo-aléatoire, 𝑡 ∈ [1, 𝑙 ] un entier, et 𝜀 > 0. On
note (𝑏1 , … , 𝑏𝑙 ) des bits choisis suivant la distribution induite par 𝐹 sur
{0,1}𝑙 . Un extrapoleur d’ordre 𝑡 pour 𝐹 d’avantage 𝜀 est un algorithme
probabiliste polynomial calculant le bit 𝑏𝑡 en fonction des précédents
1
𝑏1 , … , 𝑏𝑡−1 avec probabilité ≥ + 𝜀.
2
Ainsi à partir d’un extrapoleur 𝐸 d’ordre 𝑡 et d’avantage 𝜀 pour 𝐹, nous
obtenons un 𝜀-distingueur 𝐷 pour 𝐹 comme suit :
Page | 35
𝐸𝑛𝑡𝑟𝑒𝑟: (𝑏1 , … , 𝑏𝑙 ) ∈ {0,1}𝑙
𝑆𝑜𝑟𝑡𝑖𝑒: 𝑢𝑛 é𝑙é𝑚𝑒𝑛𝑡 𝑑𝑒 {0,1}
𝑆𝑖 𝐸 (𝑏1 , … , 𝑏𝑡−1 ) = 𝑏𝑡
𝑎𝑙𝑜𝑟𝑠 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒𝑟 1
𝑠𝑖𝑛𝑜𝑛 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒𝑟 0
La probabilité que 𝐸 (𝑏1 , … , 𝑏𝑡−1 ) soit égal à 𝑏𝑡 vaut au moins
1
2
+𝜀
lorsque (𝑏1 , … , 𝑏𝑙 ) est choisi selon la distribution induite par 𝐹 et vaut
1
2
lorsque (𝑏1 , … , 𝑏𝑙 ) est choisi selon la distribution uniforme.
Théorème de Yao
Un générateur pseudo-aléatoire 𝐹 est sûr si et seulement si, pour
chaque 𝑡 ∈ [1, 𝑙 ] entier, il n’existe pas d’extrapoleur pour 𝐹, autres que
d’avantage négligeable.
Preuve
D’après la construction de distingueur à partir d’un extrapoleur, 𝐹 ne
peut être sûr que si tout extrapoleur n’est que d’avantage négligeable.
Inversement, supposons que 𝐹 ne soit pas sûr. Pour 0 ≤ 𝑖 ≤ 𝑙, notons
𝐹𝑖 la distribution sur {0,1}𝑙 selon laquelle les 𝑖 premiers bits 𝑏1 , … , 𝑏𝑖
sont produits par 𝐹 et les autres 𝑏𝑖+1 , … , 𝑏𝑙 sont choisis uniformément
au hasard. Ainsi, 𝐹0 est la distribution uniforme et 𝐹𝑙 celle induite
par 𝐹. Par hypothèse, il existe un 𝜀-distingueur 𝐷 pour 𝐹 telle que 𝜀 ne
soit pas négligeable, c’est-à –dire
ℙ𝐹𝑙 {𝐷(𝑏1 , … , 𝑏𝑙 = 1} − ℙ𝐹0 {𝐷(𝑏1 , … , 𝑏𝑙 = 1} ≥ 𝜀
Donc il existe un 𝑡 ∈ [1, 𝑙 ] et une fonction 𝜀 ′ pas négligeable tels que
ℙ𝐹𝑡 {𝐷(𝑏1 , … , 𝑏𝑙 = 1} − ℙ𝐹𝑡−1 {𝐷(𝑏1 , … , 𝑏𝑙 = 1} ≥ 𝜀 ′
(1)
Considérons l’algorithme 𝐸𝑡 suivant :
Page | 36
𝐸𝑛𝑡𝑟𝑒𝑟: (𝑏1 , … , 𝑏𝑡−1 ) ∈ {0,1}𝑡−1
𝑆𝑜𝑟𝑡𝑖𝑒: 𝑢𝑛 é𝑙é𝑚𝑒𝑛𝑡 𝑑𝑒 {0,1}
𝐶ℎ𝑜𝑖𝑠𝑖𝑟 𝑏𝑡 , … , 𝑏𝑙 𝑎𝑢 ℎ𝑎𝑠𝑎𝑟𝑑
𝑆𝑖 𝐷(𝑏1 , … , 𝑏𝑙 ) = 1
𝑎𝑙𝑜𝑟𝑠 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒𝑟 𝑏𝑡
𝑠𝑖𝑛𝑜𝑛 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒𝑟 𝑏̅𝑡
Nous allons montrer que 𝐸𝑡 est un extrapoleur d’avantage 𝜀 ′ pour 𝐹.
On a tout d’abord ℙ𝐹𝑡−1 {𝑏1 , … , 𝑏𝑡−1 } = 2𝑙−𝑡+1 ℙ𝐹𝑡−1 {𝑏1 , … , 𝑏𝑙 } et
ℙ𝐹𝑡 {𝑏1 , … , 𝑏𝑡 } = 2𝑙−𝑡 ℙ𝐹𝑡 {𝑏1 , … , 𝑏𝑙 } .
On a aussi ℙ𝐹𝑡−1 {𝑏1 , … , 𝑏𝑡−1 } ℙ𝐹 {𝑏𝑡 |𝑏1 , … , 𝑏𝑡−1 } = ℙ𝐹𝑡 {𝑏1 , … , 𝑏𝑡 } , donc
ℙ𝐹𝑡−1 {𝑏1 , … , 𝑏𝑡−1 } ℙ𝐹 {𝑏𝑡 |𝑏1 , … , 𝑏𝑡−1 } =
1
ℙ {𝑏 , … , 𝑏𝑙 }
2 𝐹𝑡 1
(2)
Pour alléger les notations, nous posons 𝒃 = (𝑏1 , … , 𝑏𝑙 ) et 𝒃𝒊 = (𝑏1 , … , 𝑏𝑖 ).
La probabilité que 𝐸𝑡 prévoie le bit 𝑟𝑡 correctement est donnée par
ℙ𝐹 {𝐸𝑡 (𝑏𝑡−1 ) = 𝑏𝑡 }
= ∑ ℙ𝐹𝑡−1 {𝒃}(ℙ𝐹 {𝑏𝑡 |𝑏𝑡−1 }ℙ{𝐷(𝒃) = 1} + (ℙ𝐹 {𝑏̅𝑡 |𝑏𝑡−1 }ℙ{𝐷(𝒃) = 0})
𝒃
= ∑ ℙ𝐹𝑡−1 {𝒃}(ℙ𝐹 {𝑏𝑡 |𝑏𝑡−1 }ℙ{𝐷(𝒃) = 1} + (1 − ℙ𝐹 {𝑏𝑡 |𝑏𝑡−1 }ℙ{𝐷(𝒃) = 0})
𝒃
=
1
∑ ℙ𝐹𝑡 {𝒃}(ℙ{𝐷(𝒃) = 1} − ℙ{𝐷(𝒃) = 0}) + ∑ ℙ𝐹𝑡−1 {𝒃} ℙ{𝐷(𝒃) = 0} 𝑝𝑎𝑟(2)
2
𝒃
=
𝒃
1
∑ ℙ𝐹𝑡 {𝒃}(2 (ℙ{𝐷(𝒃) = 1} − 1) + ∑ ℙ𝐹𝑡−1 {𝒃} (1 − ℙ{𝐷(𝒃) = 1})
2
𝒃
𝒃
1
= ∑ ℙ𝐹𝑡 {𝒃} ℙ{𝐷(𝒃) = 1} − + 1 − ∑ ℙ𝐹𝑡−1 {𝒃} ℙ{𝐷(𝒃) = 1}
2
𝒃
=
𝒃
1
+ ∑(ℙ𝐹𝑡 {𝒃} − ℙ𝐹𝑡−1 {𝒃})ℙ{𝐷(𝒃) = 1}
2
𝒃
≥
1
+ 𝜀 ′ 𝑑 ′ 𝑎𝑝𝑟è𝑠(1)
2
Page | 37
III.4 Sécurité du générateur Blum-Blum-Shub
III.4.1 Problème de la résiduosité quadratique
Le problème de la résiduosité quadratique est comme suit : étant
donné un nombre 𝑥 ≤ 𝑛, il faut déterminer si 𝑥 est un carré modulo 𝑛
ou non.
Lorsque 𝑛 = 𝑝 un premier, le problème sera résolu en temps
𝑥
polynomial en la taille de 𝑝 par le calcule du symbole de Legendre ( ).
𝑝
Puisqu’on sait que 𝑥 est un résidu quadratique modulo 𝑝 si et
seulement si son symbole de Legendre est 1.
Lorsque 𝑛 est un nombre composé dont on ne connait pas la
factorisation, aucun algorithme polynomial en la taille de 𝑛 sera
disponible pour résoudre le problème de la résiduosité quadratique.
Supposons que 𝑛 = 𝑝𝑞 où 𝑝 et 𝑞 deux premiers distincts. Si la
factorisation de 𝑛 est connue alors le problème de la résiduosité
quadratique se résout en temps polynomial en cherchant tout
simplement si 𝑥 𝑚𝑜𝑑 𝑝 et 𝑥 𝑚𝑜𝑑 𝑞 sont des résidus quadratiques par le
calcul de leurs symboles de Legendre. Mais lorsqu’on ne connait pas la
factorisation de 𝑛 ,il sera impossible de résoudre le problème en temps
polynomial.
Un autre problème s’oppose à savoir l’extraction d’une racine carrée
modulaire : sachant qu’un nombre 𝑥 est un résidu quadratique 𝑚𝑜𝑑 𝑛,
comment déterminer un nombre 𝑦 tel que 𝑦 2 = 𝑥 𝑚𝑜𝑑 𝑛 ?
Page | 38
Nota
Soit 𝑛 un entier de Blum, 𝑥 un élément de symbole de Jacobi 1 et 𝑦 =
𝑥 2 𝑚𝑜𝑑 𝑛 son carré modulo 𝑛. On sait que 𝑦 ∈ 𝑄𝑅𝑛 , et possède 4 racines
carrées dont deux ont pour symbole de Jacobi 1 : 𝑥 et – 𝑥. Une et une
des deux valeurs 𝑥 et – 𝑥, est dans 𝑄𝑅𝑛 . En outre 𝑥 et – 𝑥 ont des parités
différentes. Autrement dit, si on disposait d’un algorithme capable de
déterminer avec une probabilité de succès non négligeable, à partir de
𝑦, quelle est la parité de la racine carrée qui est elle-même un carré, on
pourrait déterminer avec la même probabilité de succès si 𝑥 est un
carré ou non.
III.4.2 Détails sur la sécurité du générateur Blum-Blum-Shub
𝑎
On va noter 𝐽𝑛+ l’ensemble des entiers 𝑎 > 0 de symbole de Jacobi ( )
𝑛
valant 1.
Les nombres d’éléments de 𝐽𝑛+ est donné par :
⋕ 𝐽𝑛+ =
1
2
(𝑛 − (𝑝 + 𝑞 ) + 1)
Et aussi 𝑄𝑅𝑛 ⊂ 𝐽𝑛+ , alors ⋕ 𝑄𝑅𝑛 =
+
⋕𝐽𝑛
2
1
= (𝑛 − (𝑝 + 𝑞 ) + 1)
4
Comme 𝑛 est un entier de Blum, par conséquent l’application 𝑔𝑛 de
𝑄𝑅𝑛 dans lui-même définie par 𝑔𝑛 (𝑥 ) = 𝑥 2 𝑚𝑜𝑑 𝑛 est une bijection.
Soit 𝑘, la taille de l’entier 𝑛, qui servira de paramètre de sécurité. On
dispose d’un algorithme probabiliste polynomial en 𝑘, 𝒢, qui étant
donné en entrée le paramètre de sécurité 𝑘, construit au hasard un
environnement de travail, c’est-à-dire un entier de Blum 𝑛 de taille 𝑘
(pour notre cas). Soit la fonction 𝑔𝑛 d’élévation au carrée modulo 𝑛. On
note Γk l’ensemble des environnements possibles.
Soit 𝒜 un algorithme probabiliste polynomial en 𝑘, dont l’entrée est le
paramètre de sécurité 𝑘, le nombre 𝑛 et un élément 𝑎 de 𝐽𝑛+ et la sortie
un bit 𝑏 dont on souhaite qu’il détermine avec succès si 𝑎 est un
élément de 𝑄𝑅𝑛 ou non.
Page | 39
Considérons les expériences :
𝐸𝑥𝑝𝑡𝒢𝑟𝑒𝑠 (𝒜, 𝑘)
̃ 𝒢𝑟𝑒𝑠 (𝒜, 𝑘)
𝐸𝑥𝑝𝑡
(𝑛, 𝑔𝑛 ) ← Γk
(𝑛, 𝑔𝑛 ) ← Γk
𝑥 ← 𝐽𝑛+
𝑥 ← 𝐽𝑛+
𝑥 ← 𝑔𝑛 (𝑥)
𝑏 ← 𝒜(𝑘, 𝑛, 𝑥)
𝑏 ← 𝒜(𝑘, 𝑛, 𝑥)
𝑟𝑒𝑡𝑜𝑢𝑟 𝑏
𝑟𝑒𝑡𝑜𝑢𝑟 𝑏
𝐹𝑖𝑛
𝐹𝑖𝑛
L’avantage de l’attaquant 𝒜 est définie par :
̃ 𝒢𝑟𝑒𝑠 (𝒜, 𝑘) = 1)|
𝐴𝑑𝑣𝒢𝑟𝑒𝑠 (𝒜, 𝑘) = |𝑃𝑟𝑜𝑏 (𝐸𝑥𝑝𝑡𝒢𝑟𝑒𝑠 (𝒜, 𝑘) = 1) − 𝑃𝑟𝑜𝑏(𝐸𝑥𝑝𝑡
Le problème de la résiduosité quadratique est sûr par l’hypothèse de la
difficulté de la résiduosité quadratique, c’est-à-dire que pour tout
attaquant polynomial 𝒜 et pour tout entier 𝑚 ∶ lim 𝑘 𝑚 𝐴𝑑𝑣𝒢𝑟𝑒𝑠 (𝒜, 𝑘) = 0.
𝑘→+∞
Autrement dit tout attaquant polynomial a un avantage qui est une
fonction négligeable du paramètre de sécurité 𝑘.
Les algorithmes d’extrapolation
Soit 𝑘 le paramètre de sécurité, 𝑛𝑘 un entier de Blum de taille 𝑘 et 𝑓𝑛𝑘
le générateur des nombres pseudo-aléatoire définie par :
𝑓𝑛𝑘 : 𝑄𝑅𝑛 → {0,1}𝑙(𝑘) , où pour tout 𝑥0 ∈ 𝑄𝑅𝑛𝑘 le calcul de 𝑓𝑛𝑘 (𝑥0 ) se fait de
la façon suivante :
1. La bijection 𝑔𝑛𝑘 de 𝑄𝑅𝑛𝑘 dans lui-même définie par 𝑔𝑛𝑘 (𝑥 ) =
𝑥 2 𝑚𝑜𝑑 𝑛𝑘 permet de calculer 𝑥1 = 𝑔𝑛𝑘 (𝑥0 ), … , 𝑥𝑙(𝑘) = 𝑔𝑛𝑘 (𝑥𝑙(𝑘)−1 )
2. Chaque 𝑥𝑖 donne un bit 𝑋𝑖 = 𝑥𝑖 𝑚𝑜𝑑 2
3. 𝑓𝑛𝑘 (𝑥0 ) = (𝑋1 , 𝑋2 , … , 𝑋𝑙(𝑘) )
Lemme
Page | 40
Soit 𝑠 ∈ [1, 𝑙(𝑘)] et ℬ𝑠 un algorithme probabiliste polynomial qui étant
donnés les bits (𝑋𝑠 , … , 𝑋𝑙(𝑘) ) prédit le bit 𝑋𝑠−1 avec un avantage non
négligeable. Alors on fournit en entrée de cet algorithme probabiliste
polynomial, les 𝑙 (𝑘) − 𝑠 bits (𝑌1 , 𝑌2 , … , 𝑌𝑙(𝑘)−𝑠 ) d’un 𝑓𝑛𝑘 (𝑦0 ), il prédit le bit
𝑌0 = 𝑦0 𝑚𝑜𝑑 2 avec le même avantage non négligeable.
Preuve
Du fait 𝑔𝑛𝑘 est une bijection, la loi de probabilité du terme calculé
𝑥𝑠 𝜖 𝑄𝑅𝑛𝑘 , est la même que la loi de probabilité du terme tiré au sort
dans 𝑄𝑅𝑛𝑘 qui sert de germe 𝑥0 .
Pour prouver que le générateur BBS est sûr, on montrera que s’il
existe un extrapoleur probabiliste polynomial qui prédit le bit 𝑋0 avec
un avantage non négligeable, alors, il existe un algorithme probabiliste
polynomial qui possède un avantage non négligeable pour résoudre le
problème de la résiduosité quadratique.
Soit ℬ un algorithme polynomial probabiliste, dont les entrées sont
𝑘, 𝑛𝑘 , (𝑌1 , 𝑌2 , … , 𝑌𝑟 ) et dont l’avantage de prédiction du bit 𝑌0 n’est pas
une fonction négligeable de 𝑘. Construisons l’algorithme 𝒜 dont les
entrées sont ((𝑘, 𝑛𝑘 , 𝑥) où 𝑥 ∈ 𝐽𝑘+ et sort un bit.
𝒜 (𝑘, 𝑛𝑘 , 𝑥 )
𝑦0 ← 𝑥
𝑝𝑜𝑢𝑟 𝑖 = 1 à 𝑖 = 𝑙(𝑘)
2
𝑦𝑖 = 𝑦𝑖−1
𝑚𝑜𝑑 𝑛 ; 𝑌𝑖 = 𝑦𝑖 𝑚𝑜𝑑 2
𝑓𝑖𝑛 𝑝𝑜𝑢𝑟
𝑌0 = ℬ(𝑘, 𝑛𝑘 , (𝑌1 , 𝑌2 , … , 𝑌𝑟 ))
𝑏 = (𝑌0 = 𝑦0 𝑚𝑜𝑑 2)
𝑟𝑒𝑡𝑜𝑢𝑟 𝑏
𝐹𝑖𝑛
Page | 41
Par le nota précédent, on voit que l’algorithme 𝒜 ainsi construit, a un
avantage 𝐴𝑑𝑣𝒢𝑟𝑒𝑠 (𝒜, 𝑘) non négligeable pour le problème de la
résiduosité quadratique. En tenant compte de la difficulté de la
résiduosité quadratique, on conclut que le générateur Blum-BlumShub est sûr.
Page | 42
CHAPITRE IV : IMPLEMENTATION ET INTERPRETATION DES RESULTATS
Dans ce chapitre nous présentons l’implémentation de
l’algorithme de Blum-Blum-Shub et l’interprétation des résultats
obtenus.
Voici l’algorithme de Blum-Blum-Shub :
Générer p et q
Faire n : = p ∗ q
Choisir s ∈ [1, n − 1]
Calculer le germe : x0 : = s2 mod n
2
La séquence est bi : = xi−1
mod 2
Sortie est : b1 , b2 , … , bn−1
Nous avons implémenté l’algorithme de Blum-Blum-Shub en c++ à
partir du compilateur DEV-C++.
Voici les codes du programme :
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
int i,B;
unsigned long long int X,n,p,q,s;
cout<<endl<<"Entrer
la
valeur
de
p:";//
p
un
entier
congru à 3 modulo 4
cin>>p;
cout<<endl<<"Entrer la valeur de q:";//q un entier congru
à 3 modulo 4
cin>>q;
n=p*q;//ceci calcule l'entier de blum
Page | 43
cout<<endl<<" L'entier de Blum
cout<<endl<<"Entrer
la
est:"<<n;
valeur
pour
calculer
le
germe:";//Le germe,un entier premier avec n
cin>>s;
X=(s*s);
X=X%n;//calcule du germe
for(int i=1;i<=10000;i++)
{
X=(X*X)%n;//
B=X%2;//calcule les bits de la séquence
cout<<B;
}
getch ();
}
Nous savons que l’entier de Blum est défini par 𝑛 = 𝑝𝑞, où 𝑝 et 𝑞 sont
tous deux congrus à 3 modulo 4. En d’autres termes 𝑝 = 4 × 𝑘1 + 3 et
𝑞 = 4 × 𝑘2 + 3. Nous prenons 𝑝 et 𝑞 petits, avec 𝑘1 = 78962147 et 𝑘2 =
84562145.
Alors
𝑝 = 4 × 78962147 + 3 = 315848591
et
𝑞 = 4 × 84562145 + 3 =
338248583, alors 𝑛 = 106835338348296553 ,prenons 𝑠 = 4 × 9856347 +
3 = 39425391, puisque (𝑠, 𝑛) = 1 ,la séquence comportera 10.000 bits.
La séquence était produite en 1,20 secondes dans un ordinateur dont
les caractéristiques sont :
 Dual Core , Processeur AMD Sempron (tm) 2.10 GHz
 3.00 Go de RAM
Voici la sequence :
011100001010110011000110100111000001011000001000000101010101
110101101111110111110100011110100100100011000100100010010010
000001111100010111010101111110100001010101101011101100001111
111001101100100000110111000000101010011101010101111100100010
111110111111101010111111001110100101111010000001101110001101
100010111101000100110000010000101001110110110101000011010011
Page | 44
100000001111110110100110110101010100100110100111011010100101
001001111011001111010001000101000111110100011000110110000110
010110001000000101101010111001110101010001100100110111100110
110111011101101000100110011000011100101001000101011010010011
011101000001100001111111010000001010101001000110100010111101
000100111001010101011010001100011101011111010000011000110101
111011001010001110111100101101101111101110110100101000011001
111010000011110100001000111100000010011111111100010111011111
100010001001001110010111010101001111000101010011001010000111
010000000011011010110101011000111100011111100100110110000010
101100101111000111000111111110100001110100000101110100011110
001001011100100001111001101100101100001101011100010111011000
001011100000101010111000100111001010100110101111011111001111
001101000000000101111111101000000001001110011010010011011110
110110011111100001001010000111000111000110100111001010100011
111100011010100111110001110010011000101001110101111111100011
110001111001010001011011000001110001111110000010011011001000
011101000001110001101101010010010000011101111111101100101100
110000000011100011110100101101010010010000100010110010010101
010101011000110100100111111111010001010101000011001010111100
111111000011000001110011010011111011000111100000101101011010
011000010000000111011100011100110011011011010001100101001011
010001011101110111101100100010100000001100111011111000100011
000100110000110001110010000000011000101100000100110100101010
101011010011001011010111111100011001011011011110000110101111
101011111000000000101000000100011100100000111110010100111010
110101101011011000010001001111011100100010001010010000000010
010010000001001111011010101101011111000001111110000010100011
101011011110011011000111011011111100011011001000101001001010
110011010011110101111101011111010110111101011011110011100011
001100101010011010010111100101100111010001000100000011100100
110010001111000010010010100110001001100000110010100011010001
101000010111000100100001000010001000001010111010110001100010
001101100000001010011100101000011011000001011001001011011111
000100101010010011111101101110010110100010110101111101100111
010010101111110110111011111100110100010011111010010011010010
000011110000001110000011100000010011010000101000101110001001
001101100000000001001110110100110001000101100011000110010000
100100010001001000101100110001010010100111011100010001110100
111100011101100001011110100001110100001100000110010011110001
100000010000000111000001001000111010001011101010110000010011
010000100010101001001100111011100010011011010000100001001110
111111000100011100111010011000000110000101001111111101111100
Page | 45
001010111000100000101111000111101010011000110111010010100110
101010110110001010011001101000001101001100111101101110001101
011111101011100100000101101101010010111001110011001111110011
110000110111000100111010100001111111101110011000110110000101
110111101000001110100100010101101110101011101100101001111100
110100100011100110111001010011010110010100111100010010011010
111000111101010110011100010101111101011111111111101101010100
011010000000110101101101001100000010111001101100010100100001
001110001000101000001100110010010011011000000011011000100001
100110111110111111111000100101100000011001111110110110110110
011010111001000010100100110000111100101011100111011001100110
000110000111000101100111000100010111011101001110110101011001
111010101111001000101000110111000011000111110111100011000010
010101101100001111100100111001100110101000001011010000000010
110101000111011110111011001101001011010110111111000000001110
000011110001110011010101100101001000001111100011111101010000
010101101001010100100101110011001000111101111100011100010011
100001011001101001101100100111110111001011111001001011011111
010111000100011000110000100000000100000110001110011010111001
111101101000001101111000100101111000111010001110000001111101
110100011100101101010010010000000110010101110011001011101010
011000010101000100001111101001110111010010010000011011100000
001110000001110110010101000101010101001001001011001111001111
001011110000001100010010110001100111101110011000111001000010
011000111111010100110101101101001101111000001100100010110110
110001010010010101101100101100000000101001000001111110001110
001101100000100101110000101001001010111110000110110101000111
111011110010000101011111010110100110101011011110100101110110
001100100100000000010011001100000110011111011010000001111011
101001100111001010000100001000000000011101101001011110011100
000010000011001001010111111010011100000010010111101110001111
110011010011010000001000111100000100010001101111011100110011
000010011001010011001000011001010101110110010001100001011000
010011100101101111111110011010000101010000111001100000111110
101011011011001000101011011001010100110101110110100001111111
001111101111001001111111001110110011110101001010010100111010
010100111110011001100000001000010010101000111000111111100000
110100111001010110101101110111110110111110111001010101011101
011010101101010011000000010011000101100110011010111110110011
011000111111011000110000111111100110100111010110011100111100
001001111010000100101000111010111000101100110000100000111010
001000010100000000000111000110101011100011110000111100111010
001001100001110100001011111010010100011011111000110011010110
Page | 46
001110101000011100000101011110011001100010000011110010101011
001111011100110011001001100000110000101110101001110110010111
101011100011011001001010010111010111100110000011101100010010
010010111111011011101111111110101111110100000010110110100111
111001111001001111000110111111100101011111111111010001000100
011100101011100000001101111101100001001001010001101110010101
001110100111001110110101001111110011101111101110111010110001
000101001010101100001111101101100000001110010000000000000001
011100001010011101110110001100101101111011101110111101101001
110100010010111110101101110011001011000000001011011101100100
101011010111111111100001101000100010110110000000011010000110
010011000111010011010000111110001000100110111010110000111011
001101010111001010001110001111000100100001110110011101111101
010000000010000001110000100010001111001000101110111111010110
011010101100000101101111111010010100000011010100100101000001
010110100111100000100010010000111001011001111010110111010110
101011011010111011000101011011000000101111110011001101111010
100110010101001000101101101001101000000000110101011111001101
110101101000101111010100010000001110100100111110111010110110
101010111101000111101010101100100110011010000011111000011011
100100111001111111001101000110111010100110011110100100001010
111100111100001101010010000001010011010010110011000010100000
001111000101100111010000000000001000011111000100001111001111
001010011110001001000010101000000001011101010110111100110001
100010011110111001111100000111100100100010100010001111100100
001100011100111011011101011001010010101101001001011100111000
110011000011010011101101110111000011000000010000110001100110
100111010001011111100000011001000110111110001110010010101111
011111010111110101010111111100111001100100000010010011000011
111000000010011100000101111010111111110000001010010110011110
111110110101101001000111011011000110010011110110101110011010
011100111000000011110000001010001101001001010000001111110000
010111100110000011100111011001111101010011111110011110101110
010010001001111110011000100001010010101101111110010010111100
011011100001001110011000110001001010111011100100110110110001
110001001000000100101111110101111000011000001111100100001110
111001111010111110010101100101011110101111010000011011000001
000111101011000101100100001011000001100011110010101010111000
101001000111010000100011000010001101110001010111001111101011
010101010000000000101100100010110011000100100000000101011001
111001100100000010101000001010010101100000111111000001001010
000000000010111100100001010110101100101100101101100001011101
001011101110001110110000000010101101101101110000010101011100
Page | 47
001000100001100110010101011100101111011111001101110111001011
101111000001101011110110001101100010110001111110111010101110
011101011111101101101111000001000111011000011011010011110101
110100100001101100110001110000011101000011010010111001001101
100110110011011010101100000110001111010110001110111011110011
100110000111000110000011010011110100101100101111010001101111
100111111111100110111111110001010001111101110010101100110101
001111101001111010110011110001001010100101101110100111010001
100001110111001011010010100111101110001011010000110101010000
001010010011001010111010111111110110010101011000101000000101
101010100001010010111101000110111000010000001010010110101010
000101001101011100010010011100111000011110010001110101100001
101001111111100011011000010111011001101010110010101011110010
011101101001000101110100001000100010001011101001100101010001
110011000011001101010101010110011010111000110001101011011100
000111100111001100010111001011101011001100111011000011000001
111001100000110000011101001010000010110010110000000101111000
101100010111000010111110100000100001010100010111001110001001
010011101010100100011011010110110001000100111111111110011000
111001100011010011100111111010011011001101011101111010011011
010011001100010000001111100110110111111000100001010110011100
111011111110101110000101000111011010101011000001100010010110
000111011100010110101010100101111110001111101110100011010111
011010001110010011011111101010011011011100111101011100000001
010100110111010110001011101110101011000100101110111100011010
000110000111110110010111111000011111010101111100001110111011
110010011100010100101101101011001101001110001101111110110001
100001010100100011000111110110010011100110101111011100110011
010010011111011110100101101010100011010000100100011011001110
011101000011010000100111010101111000000100010011100100110001
101100111010111010011001100101011110111010010101101011111101
001010110000101100000100101111011000000
Page | 48
La séquence binaire aléatoire produite peut être utilisée pour
clés au chiffrement par flot ou au chiffrement de verman enfin de
répondre aux conditions du théorème de Claude Shannon sur la
sécurité parfaite : une nouvelle clé est tirée à chaque chiffrement, la clé
est aussi longue que le texte clair, toutes les clés sont équiprobables.
Si nous avons un message 𝑥 de 𝑛 bits à chiffrer, on considère les 𝑛
premiers bits de la séquence aléatoire générée qui constituent un mot
𝐾 et on fait l’opération « ou exclusif bit à bit » entre le message et la
partie de la séquence aléatoire considérée comme clé. C’est-à-dire 𝑦 =
𝑥⨁𝐾.
Il est à noter que l’expéditeur et le destinateur ont le même
générateur. A la réception, le destinateur extrait de la même façon les
𝑛 premiers bits de la séquence aléatoire et calcule ensuite 𝑥 = 𝑦⨁𝐾 .
Les deux interlocuteurs jettent la partie 𝐾 utilisée et peuvent effectuer
une nouvelle transaction en procédant de même avec le reste de la clé.
Voici le schéma illustrant l’utilisation de la séquence binaire générée
avec un message quelconque binaire 𝑥 = 10010010010
Partie utilisée K
0
1
1
1
0
0
0
0
⨁
Nouvelle clé
1
0
1
0
1
1
0
0
.
.
.
1
1
1
0
0
0
1
0
1
1
1
.
.
Clé
Message chiffré 𝒚 = 𝒙⨁𝑲
1
0
0
1
0
0
1
0
0
1
0
Message clair 𝒙
Fig.4. Schéma illustrant l’utilisation de la séquence binaire produite
Page | 49
CONCLUSION
Il existe plusieurs générateurs pseudo-aléatoires mais tous
ne sont pas utiliser pour l’usage cryptographique, la plupart sont
utilisés en simulation. Nous avons étudié dans le présent travail la
façon dont un générateur produit une séquence complètement
déterministe à partir d’une valeur initiale appelé germe.
Nous avons montré que le générateur Blum-Blum-Shub est
cryptographiquement
sûr
suite
au
problème
de
la
résiduosité
quadratique et à la difficulté de décomposer un grand nombre en deux
facteurs premiers. Même si le générateur Blum-Blum-Shub est
cryptographiquement sûr, il faudra respecter les paramètres de base
pour générer une bonne séquence sinon la séquence à produite serait
un échec du point de vue cryptographique.
Enfin,
la
génération
des
séquences
aléatoires
cryptographiquement sûres est un défi chez les cryptographes,
mathématiciens, informaticiens et ingénieurs.
Page | 50
BIBLIOGRAPHIE
I. Ouvrages
[1] Hans Delfs, Helmut Knebl, Introduction to Cryptography-Principles and
Applications, 2nd ed, (Springer, 2007) WW
[2] Johannes Buchmann, Introduction à la cryptographie, Dunod, Paris, 2006
[3] J.S. Milne, Algebraic Number Theory, version 3.02, April 30,2009
II. Articles
[4] Lenore Blum, Manual Blum, and Michael Shub. A Simple Unpredictable Pseudo-Random Number Generator. SIAM Journal on Computing,
15(2):364.383, May 1986.
[5] C.E. Shannon. Communication theory of secrecy systems. Bell Systems
Technical journal, 28 : 656-715, 1949.
[6] Pascal Junod. Cryptographic Secure Pseudo-Random Bits Generation : The
Blum-Blum-Shub Generator. August 1999
[7] Andrey Sidorenko and Berry Schoenmakers. Concrete Security of the
Blum-Blum-Shub
[8] Pseudorandom Generator, Lecture Notes in Computer Science 3796
(2005) 355-375. Springer-Verlag.
[9] Robert Rolland, Sécurité des générateurs pseudo-aléatoires
[10] Kaustubh Gawande and Maithily Mundle, Various implementations of
Blum Blum Shub pseudo-random sequence generator
[11] Robert Rolland, Sécurité des générateur de Blum Blum Shub, partie I, 22
mars 2008
Page | 51
III. Cours
[12] MANYA NDJADI L., Probabilité, Note de cours, deuxième graduat
Mathématiques, Université de Kinshasa, 2006-2007.
[13] Olivier MARKOVITCH , sécurité informatique , note de cours en format
imprimable,UNIVERSITÉ LIBRE DE BRUXELLES
[14] Francois ARNAULT, Théorie des nombres et cryptographie, Note de cours
de D.E.A en format imprimable, Univérsité de Limoges, France, 2002
[15] Renaud Dumont, Cryptographie et Sécurité informatique, note de cours
en format imprimable, Université de Liège, Faculté des Sciences
Appliquées, 2009 – 2010
[16] W. Edwin Clark, Elementary Number Theory, Note de cours en format
imprimable, University of South Florida, Departement of Mathmatics,
revised December 17, 2002,
IV.Thèses
[17] Renaud SANTORO, Vers des générateurs de nombres aléatoires
uniformes et gaussiens à très haut débit, Thèse en Traitement du signal
et télécommunications, école doctorale Matisse , Université de rennes
1,soutenue jeudi 17 décembre 2009.
[18] Dương Hiệu PHAN, Sécurité et efficacité des schémas cryptographiques,
École normale supérieure, Département d’informatique, présentée et
soutenue publiquement le 16 septembre 2005
[19] Andrea Röck, Quantifying Studies of (Pseudo) Random
Number Generation for Cryptography, Thèse de Doctorat présentée à
L’ÉCOLE POLYTECHNIQUE pour obtenir le titre de DOCTEUR EN
SCIENCES Spécialité Informatique soutenue le 18 mai 2009
Page | 52
V. Sites internet
[20] http://www.acrypta.fr
[21] http://en.wikipedia.org/wiki/Random_number_generation#cite_ref-0
[22] http://en.wikipedia.org/wiki/Hardware_random_number_generator
[23] http://www.random.org/randomness/
[24] http://en.wikipedia.org/wiki/Pseudorandom_number_generator#cite_note-0
[25] http://fr.wikipedia.org/wiki/Blum_Blum_Shub
[26] http://en.wikipedia.org/wiki/Lagged_Fibonacci_generator
[27] http://fr.wikipedia.org/wiki/Linear_congruential_generator
Page | 53
TABLE DES MATIERES
EPIGRAPHE ................................................................................................. i
DEDICACE .................................................................................................. ii
REMERCIEMENTS ..................................................................................... iii
INTRODUCTION .......................................................................................... 1
CHAPITRE I : ELEMENTS DE LA THEORIE DES NOMBRES ........................ 3
I.1.Quelques notions de base .................................................................... 3
I.2. La congruence .................................................................................... 5
I.3. Classes des résidus ............................................................................ 5
I.4. Ensemble réduit des résidus............................................................... 6
I.5. La fonction d’Euler ou fonction totient ................................................ 6
I.6. Résidus quadratiques ......................................................................... 9
I.6.1.Le symbole de Legendre ............................................................... 12
I.6.2.Le symbole de Jacobi ................................................................... 13
II.1 Définitions........................................................................................ 15
II.1.1. Définition d’un système cryptographique ................................... 15
II.2 Cryptosystème symétrique et asymétrique ........................................ 16
II.2.1 Cryptosystème symétrique .......................................................... 16
II.2.2 Cryptosystème asymétrique ........................................................ 22
II.3. Sécurité d’un système cryptographique............................................ 25
II.3.1. Notions élémentaires de probabilité ........................................... 25
II.3.2. La sécurité calculatoire .............................................................. 27
II.3.3 La sécurité parfaite de Shannon ................................................. 27
II.3.4. Système cryptographique parfaitement sûr ................................ 28
CHAPITRE III : GENERATEURS PSEUDO-ALEATOIRES ............................ 31
III.1. Exemples de quelques générateurs pseudo-aléatoires ..................... 32
III.2. Générateurs cryptographiquement sûrs .......................................... 34
III.3. Extrapoleurs .................................................................................. 35
III.4 Sécurité du générateur Blum-Blum-Shub ........................................ 38
III.4.1 Problème de la résiduosité quadratique...................................... 38
III.4.2 Détails sur la sécurité du générateur Blum-Blum-Shub ............. 39
Page | 54
CHAPITRE IV : IMPLEMENTATION ET INTERPRETATION DES RESULTATS
................................................................................................................. 43
CONCLUSION ........................................................................................... 50
BIBLIOGRAPHIE ....................................................................................... 51
TABLE DES MATIERES ............................................................................. 54
Page | 55
Page | 56
Téléchargement