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»
DEDICACE
A l'Eternel, Père-Mère Dieu ;
A toute ma famille ;
A ma future épouse.
Je dédie ce travail.
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.
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 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.
[1], [2], [3], [13], [14], [15], [16]
CHAPITRE I : ELEMENTS
DE LA THEORIE DES NOMBRES
I.1.Quelques notions de base
Définition
Un entier
est dit premier s'il est différent de
et s'il n'admet aucun diviseur positif différent de
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
. 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
: si
divisait
, alors
diviserait
, 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
pour des entiers
. Ainsi
et comme
divise
(car il divise
) et
(car il divise
), il divise la somme qui vaut
.
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
se décompose d'une et d'une seule manière en un
produit de nombres premiers. Autrement dit, pour tout entier
, il existe des nombres premiers deux à deux distincts
et des
entiers strictement positifs
, uniquement déterminés à l'ordre près,
tels que :

Preuve
Le théorème reste bien vrai pour
: il faut choisir
, 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
alors ça s'écrit comme un produit de nombres premiers,
étant lui-même premier.
Soit
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
et
. Les entiers
et
relèvent de l'hypothèse de récurrence et on peut
écrire :


pour des nombres premiers
et
Il ne reste plus qu'à effectuer le produit pour conclure.
Montrons l'unicité :
Supposons que
Pour certains nombres premiers
et
.
On veut montrer que
et que les
sont égaux aux
à l'ordre près.
Raisonnons ensuite par l'absurde. Le nombre premier
divise le produit
donc par le lemme précédent, il divise
.
Or, les diviseurs de
(qui est premier) ne sont que 1 et
. Comme
il ne reste plus que la possibilité
On peut alors simplifier l'égalité :

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
-
et
ont le même reste dans la division par

-
(réflexivité).
-
(symétrie).
-
et
(transitivité).
-
et

I.3. Classes des
résidus
Soit
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

Théorème.
Pour
on a :
.
Preuve
Supposons

pour tout
. Notons que
dépends de
On a deux façons d'écrire l'équation
ci-haut :
ou

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
.
Addition et multiplication dans

Pour
, on a :
et

Exemple
Pour
et

Notons que puisque
et
,nous avons
et
. Nous pouvons aussi écrire
et

I.5. La fonction d'Euler ou
fonction totient
Définition
Pour
,soit
le nombre d'entiers premiers avec
dans l'intervalle
. La fonction
est la fonction d'Euler.
Exemple
Pour
, il y a
différentes classes de résidu modulo
; les classes
et
ne sont pas premiers avec
; ainsi seules les classes
et
sont premiers avec
:alors
.
Si
est un premier, toutes les
classes
sont premiers avec , alors

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
, alors

Ceci permet de calculer l'inverse modulaire définit
par :

Exemple
Quel est l'inverse de
on sait que

On a
d'où

Théorème (Petit théorème
de Fermat)
Soit
un premier et
un entier tel que
alors

Preuve
Considérons les
entiers suivants :
ainsi que leurs restes dans la division euclidienne par
notés :
Ces restes sont compris entre

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
De plus les restes de division de
par
sont tous différents. Si on trouvait des 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
et
.
En multipliant membre à membre les
congruences :
Alors nous obtenons :
Par définition de la congruence, cette
égalité signifie que
divise
Or
ne divise aucun des entiers
il est également premier avec leur produit
Ainsi d'après le lemme de Gauss
divise
c'est-à-dire
.
Théorème de Wilson
Si
est un premier, alors
Preuve
Considérons la congruence
Alors
, ainsi les seules solutions sont
et
Donc, pour chaque
, il existe qu'un inverse unique
de
,
. Ainsi lorsque nous groupons des inverses en pairs, nous
obtenons :


Théorème du reste Chinois
Soit
des entiers et
des entiers relativement premiers entre eux, alors le
système des congruences
,





admet une unique solution modulo

Preuve
Soit
,et considérons
.Ceci est relativement premier à
ainsi il existe un entier
tel que
.
En conséquence, soit
. Alors
et
D'une manière similaire,
il existe un
tel que
et
,
Alors
est une solution du système ci-haut.
Soit
une autre solution, alors

pour tout

I.6. Résidus
quadratiques
Soit
un entier positif , et
tel que
On dit que
est un résidu quadratique
si
tel que
.
Si un tel
n'existe pas,
est un non-résidu quadratique
.
Avec

- Si
et
sont des résidus quadratique
,alors leur produit est

- 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
est congru à un des
résidus suivants :

On montre que ces classes des résidus sont tous
distincts. Pour
,
si et seulement si
est divisible par
, 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.
est un résidu quadratique
si et seulement si
.
Preuve
Si
, alors par le petit théoreme de Fermat :
. Ceci signifie que
est pair, et
. Inversement si
, l'entier
est pair. Par le théorème de Wilson,

Les solutions de
sont donc
.
Voici les racines carrés de
pour les 20 premiers nombres premiers de la forme
:
|
5
|
13
|
17
|
29
|
37
|
41
|
53
|
61
|
73
|
89
|
97
|
101
|
109
|
113
|
137
|
149
|
157
|
173
|
181
|
193
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Théorème 3
Il y a une infinité des nombres premiers de la
forme

Preuve
Supposons qu'il y a une finité des nombres premiers
de la forme
Considérons le produit

Notons que
. Puisque
est grand que chaque
, il ne peut pas être premier, ainsi il doit y avoir un facteur
premier
différent de
Mais alors modulo ,-1 est une racine. Par le théorème
précédent,
doit être de la forme
, une contradiction.
Dans la table ci-dessus nous montrons pour les nombres
premiers
, 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 (2,7) pour le nombre premier 47 serait
interpréter comme disant que les deux solutions de la congruence
sont
Aussi, pour les nombres premiers de la forme
, puisque -1 est un résidu quadratique modulo
, on liste seulement les résidus quadratiques plus petit que
. Ceux qui sont plus grands que
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
|
(1,1) (2,5) (3,7) (4,2) (6,11) (8,10) (9,3)
(12,9) (13,6) (16,4) (18,8)
|
29
|
(-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
un premier. Pour un entier
, on définit le symbole de Legendre
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
.
Pour un premier impair
,
. Ceci est une répétition du théorème 2 que
-1 est un résidu quadratique
si et seulement si

Théorème (Euler)
Soit
un premier impair. Pour chaque entier
non divisible par
Preuve
Supposons que
est un non-résidu quadratique
. Les résidus quadratique
sont partitionnés en pairs en satisfaisant l'équation
. Dans ce cas,

Cas l'autre sens, si
est un résidu quadratique, avec
à part 0,
, le reste de
éléments de
peut être partitionné en pairs satisfaisant

En résumant, on obtient
Notons qu'en mettant
on obtient le théorème de Wilson :
Par comparaison, on obtient une formule pour
:
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
la décomposition de n en facteurs
premiers.
Alors, pour tout entier
, le symbole de Jacobi
vaut :

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.
3.
si et seulement si
et
ne sont pas premiers entre eux.
4.
si
est impair.
5. Si
alors
si
est impair.
6. 
7.
vaut 1 si
et -1 si

8.
vaut 1 si
ou
et -1 si
ou

si
et
sont impairs, autrement dit
sauf si
et
sont tous deux congrus à
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
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ù
, 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.
[5], [12], [13], [14], [15], [17], [18], [20]
CHAPITRE II : GENERALITES SUR LA
CRYPTOGRAPHIE
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.
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
paires des clés.
II. 2.1.1 Exemples des chiffrements symétriques
II.2.1.1.1 Chiffrement symétriques
classiques
Identifions l'alphabet usuel avec
par
et les opérations sont réalisées dans

1. Chiffrement par décalage
Soit

Soit

Et soit
et

et
Ainsi pour
nous avons le chiffrement de César.
Exemple: Avec
, 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

L'espace des clés est l'ensemble des permutations
de
.
Chacune des lettres est remplacée par une autre lettre
de l'alphabet.
Pour
, nous avons :
et
où
et
est la permutation inverse de

Le nombre de clés possibles est
, une recherche exhaustive n'est pas possible. Cette méthode est
facilement cassable suite à la fréquence des lettres.
Exemple:
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
|
Soit la permutation suivante :
Le texte clair ''symétrique'' est chiffré en ''
goqawtubna'
3. Chiffrement du Vigenère
Soit

Soit

Soit

Alors

et
où
Le nombre de mots-clés possibles de longueur
est
, une recherche exhaustive est impossible.
Exemple:
Soit le mot en clair '' Faculté '' et la clé ''
Ornela ''
Texte
claire
|
f
|
a
|
c
|
u
|
l
|
t
|
e
|
5
|
0
|
2
|
20
|
11
|
19
|
4
|
Clé
|
o
|
r
|
n
|
e
|
l
|
a
|
o
|
14
|
17
|
13
|
4
|
11
|
0
|
14
|
Texte
chiffré
|
19
|
17
|
15
|
24
|
22
|
19
|
18
|
t
|
r
|
p
|
y
|
w
|
t
|
s
|
4. Chiffrement par permutation
Soit

Soit

Soit
l'ensemble des permutations de

Pour
nous avons :
et
où
et
est la permutation inverse de

Exemple :
Si
et
est la permutation qui envoie (
sur
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,

Ainsi pour un message binaire
est modifié par une clé
binaire de même taille, comme suit:

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 :


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

Fig.2.Exemple de chiffrement par transposition
Exemple:
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
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
(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
One-time pad.
Texte
Clair
Texte
Clair

Clé k
Chiffrement
Texte
Chiffré

Clé k
Déchiffrement
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 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, Merkle-Hellman, 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

- choisir un entier
aléatoire dans
tel que

- calculer l'unique
tel que

- La clé publique est
et la clé privée est

b. Chiffrement
Soit le message
à chiffrer,
Calculer

c. Déchiffrement
est déchiffré en calculant :

Exemple :
Considérons
et
très petits,
et

Nous avons :


On peut choisir
(7 est premier avec 40)
On calcule
tel que :

On obtient :
Clé publique :
Clé privée :

Soit le texte clair à chiffrer `' IMAGE `'
1. Chiffrement
- I :

- M :

- A :

- G :

- E :

2. Déchiffrement
- 14 :

- 52 :

- 1 :

- 13 :

- 15 :

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. 
2. Si
pour
alors
;
3. 
Le triplet
est appelé espace probabilisé.
Probabilité conditionnelle
Soient
et
deux événement telque
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
et
sont indépendant si

si
et
et que les événement
et
sont indépendants alors

Les événements
sont indépendants si

Théorème de Bayes
Si
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
.
, alors on a la formule de Bayes

Preuve. Voir [12]
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
, 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
alors :

Démonstration
Fixons
tel que
, on a :
, d'après le théorème de Bayes :
donc
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

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 :

=
,
=

D'autre part pour
et
, puisqu'il n'y a qu'une clé
qui vérifie
on a :

En appliquant le théorème de Bayes :

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
et
, comparons
et
. Pour cela fixons
et désignons
et
les uniques éléments de
vérifiant
et
(chaque
est injective et donc ici bijective.
Par le théorème de Bayes, et à la
sécurité parfaite on obtient :

Le même calcul peut être fait avec
Ce qui prouve que
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é
d'être
ou
. 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.
[4], [6], [7], [8], [9], [10], [11], [14] , [17],
[19],[20], [21], [22], [23], [24],[25], [26],
[27]
CHAPITRE III :
GENERATEURS PSEUDO-ALEATOIRES
Définition
Soit
un ensemble fini appelé espace d'états, un
générateur pseudo-aléatoires est défini
par :
,
et l'état s'évolue selon :
,

l'état initial
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.
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....
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 :

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
. 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
-
doit être multiple de
,
nombre premier diviseur de

Exemple :

Avec
, la suite est :

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
-chiffres et on prend les
-chiffres du milieu du produit (de
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 :
|
12
|
14
|
19
|
36
|
29
|
84
|
5
|
2
|
0
|
0
|
|
0144
|
0196
|
0361
|
1296
|
0841
|
7056
|
0025
|
0004
|
0
|
0
|
3. Générateur à congruence
additive
Le générateur à congruence additive est
défini de la manière suivante :
Soient
des entiers naturels, pour

Pour
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 :
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
et

On choisit un nombre
d'une manière aléatoire tel que
, alors le germe de la suite est calculé par :
. Et les autres termes de la suite sont définis par :

Exemple
Soit
et
. Alors
. Les autres termes sont :
. La sortie en bit : 1, 0, 0,1, avec
.
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.
Définition
Soit
un paramètre, appelé paramètre de
sécurité.
Définition
Soit
une fonction en
telle que
Un générateur pseudo-aléatoire est une fonction
calculable en temps polynomial en
de
dans
.
Lorsque nous composons la distribution uniforme sur
avec
, nous obtenons une distribution sur
appelée la distribution induite par
.
Définition
Soit
un générateur pseudo-aléatoire et
. Un
-distingueur pour
est un algorithme
probabiliste polynomial
tel que

où
signifie que les bits
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,
un entier, et
. On note
des bits choisis suivant la distribution induite par
sur
. Un extrapoleur d'ordre
pour
d'avantage
est un algorithme probabiliste polynomial calculant le bit
en fonction des précédents
avec probabilité
.
Ainsi à partir d'un extrapoleur
d'ordre
et d'avantage
pour
, nous obtenons un
-distingueur
pour
comme suit :





La probabilité que
soit égal à
vaut au moins
lorsque
est choisi selon la distribution induite par
et vaut
lorsque
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
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
, notons
la distribution sur
selon laquelle les
premiers bits
sont produits par
et les autres
sont choisis uniformément au hasard. Ainsi,
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

Donc il existe un
et une fonction
pas négligeable tels que

Considérons l'algorithme
suivant :






Nous allons montrer que
est un extrapoleur d'avantage
pour
On a tout d'abord
et
.
On a aussi
donc

Pour alléger les notations, nous posons
et
. La probabilité que
prévoie le bit
correctement est donnée par







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
Nota
Soit
un entier de Blum,
un élément de symbole de Jacobi 1 et
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
de symbole de Jacobi
valant 1.
Les nombres d'éléments de
est donné par :
Et aussi
alors

Comme
est un entier de Blum, par conséquent l'application
de
dans lui-même définie par
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
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.
Considérons les expériences :













L'avantage de l'attaquant
est définie par :

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
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 :
, où pour tout
le calcul de
se fait de la façon suivante :
1. La bijection
de
dans lui-même définie par
permet de calculer
2. Chaque
donne un bit

3. 
Lemme
Soit
et
un algorithme probabiliste polynomial qui étant donnés
les bits
prédit le bit
avec un avantage non négligeable. Alors on fournit en
entrée de cet algorithme probabiliste polynomial, les
bits
d'un
, il prédit le bit
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

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
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
et dont l'avantage de prédiction du bit
n'est pas une fonction négligeable de
. Construisons l'algorithme
dont les entrées sont (
où
et sort un bit.









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-Blum-Shub est sûr.
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
et

Faire

Choisir
Calculer le germe :

La séquence est

Sortie est :

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
cout<<endl<<" L'entier de Blum
est:"<<n;
cout<<endl<<"Entrer la 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
et
. Nous prenons
et
petits, avec
et
.
Alors
et
, alors
,prenons
, puisque
,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 :
011100001010110011000110100111000001011000001000000101010101110101101111110111110100011110100100100011000100100010010010000001111100010111010101111110100001010101101011101100001111111001101100100000110111000000101010011101010101111100100010111110111111101010111111001110100101111010000001101110001101100010111101000100110000010000101001110110110101000011010011100000001111110110100110110101010100100110100111011010100101001001111011001111010001000101000111110100011000110110000110010110001000000101101010111001110101010001100100110111100110110111011101101000100110011000011100101001000101011010010011011101000001100001111111010000001010101001000110100010111101000100111001010101011010001100011101011111010000011000110101111011001010001110111100101101101111101110110100101000011001111010000011110100001000111100000010011111111100010111011111100010001001001110010111010101001111000101010011001010000111010000000011011010110101011000111100011111100100110110000010101100101111000111000111111110100001110100000101110100011110001001011100100001111001101100101100001101011100010111011000001011100000101010111000100111001010100110101111011111001111001101000000000101111111101000000001001110011010010011011110110110011111100001001010000111000111000110100111001010100011111100011010100111110001110010011000101001110101111111100011110001111001010001011011000001110001111110000010011011001000011101000001110001101101010010010000011101111111101100101100110000000011100011110100101101010010010000100010110010010101010101011000110100100111111111010001010101000011001010111100111111000011000001110011010011111011000111100000101101011010011000010000000111011100011100110011011011010001100101001011010001011101110111101100100010100000001100111011111000100011000100110000110001110010000000011000101100000100110100101010101011010011001011010111111100011001011011011110000110101111101011111000000000101000000100011100100000111110010100111010110101101011011000010001001111011100100010001010010000000010010010000001001111011010101101011111000001111110000010100011101011011110011011000111011011111100011011001000101001001010110011010011110101111101011111010110111101011011110011100011001100101010011010010111100101100111010001000100000011100100110010001111000010010010100110001001100000110010100011010001101000010111000100100001000010001000001010111010110001100010001101100000001010011100101000011011000001011001001011011111000100101010010011111101101110010110100010110101111101100111010010101111110110111011111100110100010011111010010011010010000011110000001110000011100000010011010000101000101110001001001101100000000001001110110100110001000101100011000110010000100100010001001000101100110001010010100111011100010001110100111100011101100001011110100001110100001100000110010011110001100000010000000111000001001000111010001011101010110000010011010000100010101001001100111011100010011011010000100001001110111111000100011100111010011000000110000101001111111101111100001010111000100000101111000111101010011000110111010010100110101010110110001010011001101000001101001100111101101110001101011111101011100100000101101101010010111001110011001111110011110000110111000100111010100001111111101110011000110110000101110111101000001110100100010101101110101011101100101001111100110100100011100110111001010011010110010100111100010010011010111000111101010110011100010101111101011111111111101101010100011010000000110101101101001100000010111001101100010100100001001110001000101000001100110010010011011000000011011000100001100110111110111111111000100101100000011001111110110110110110011010111001000010100100110000111100101011100111011001100110000110000111000101100111000100010111011101001110110101011001111010101111001000101000110111000011000111110111100011000010010101101100001111100100111001100110101000001011010000000010110101000111011110111011001101001011010110111111000000001110000011110001110011010101100101001000001111100011111101010000010101101001010100100101110011001000111101111100011100010011100001011001101001101100100111110111001011111001001011011111010111000100011000110000100000000100000110001110011010111001111101101000001101111000100101111000111010001110000001111101110100011100101101010010010000000110010101110011001011101010011000010101000100001111101001110111010010010000011011100000001110000001110110010101000101010101001001001011001111001111001011110000001100010010110001100111101110011000111001000010011000111111010100110101101101001101111000001100100010110110110001010010010101101100101100000000101001000001111110001110001101100000100101110000101001001010111110000110110101000111111011110010000101011111010110100110101011011110100101110110001100100100000000010011001100000110011111011010000001111011101001100111001010000100001000000000011101101001011110011100000010000011001001010111111010011100000010010111101110001111110011010011010000001000111100000100010001101111011100110011000010011001010011001000011001010101110110010001100001011000010011100101101111111110011010000101010000111001100000111110101011011011001000101011011001010100110101110110100001111111
001111101111001001111111001110110011110101001010010100111010010100111110011001100000001000010010101000111000111111100000110100111001010110101101110111110110111110111001010101011101011010101101010011000000010011000101100110011010111110110011011000111111011000110000111111100110100111010110011100111100001001111010000100101000111010111000101100110000100000111010001000010100000000000111000110101011100011110000111100111010001001100001110100001011111010010100011011111000110011010110001110101000011100000101011110011001100010000011110010101011001111011100110011001001100000110000101110101001110110010111101011100011011001001010010111010111100110000011101100010010010010111111011011101111111110101111110100000010110110100111111001111001001111000110111111100101011111111111010001000100011100101011100000001101111101100001001001010001101110010101001110100111001110110101001111110011101111101110111010110001000101001010101100001111101101100000001110010000000000000001011100001010011101110110001100101101111011101110111101101001110100010010111110101101110011001011000000001011011101100100101011010111111111100001101000100010110110000000011010000110010011000111010011010000111110001000100110111010110000111011001101010111001010001110001111000100100001110110011101111101010000000010000001110000100010001111001000101110111111010110011010101100000101101111111010010100000011010100100101000001010110100111100000100010010000111001011001111010110111010110101011011010111011000101011011000000101111110011001101111010100110010101001000101101101001101000000000110101011111001101110101101000101111010100010000001110100100111110111010110110101010111101000111101010101100100110011010000011111000011011100100111001111111001101000110111010100110011110100100001010111100111100001101010010000001010011010010110011000010100000001111000101100111010000000000001000011111000100001111001111001010011110001001000010101000000001011101010110111100110001100010011110111001111100000111100100100010100010001111100100001100011100111011011101011001010010101101001001011100111000110011000011010011101101110111000011000000010000110001100110100111010001011111100000011001000110111110001110010010101111011111010111110101010111111100111001100100000010010011000011111000000010011100000101111010111111110000001010010110011110111110110101101001000111011011000110010011110110101110011010011100111000000011110000001010001101001001010000001111110000010111100110000011100111011001111101010011111110011110101110010010001001111110011000100001010010101101111110010010111100011011100001001110011000110001001010111011100100110110110001110001001000000100101111110101111000011000001111100100001110111001111010111110010101100101011110101111010000011011000001000111101011000101100100001011000001100011110010101010111000101001000111010000100011000010001101110001010111001111101011010101010000000000101100100010110011000100100000000101011001111001100100000010101000001010010101100000111111000001001010000000000010111100100001010110101100101100101101100001011101001011101110001110110000000010101101101101110000010101011100001000100001100110010101011100101111011111001101110111001011101111000001101011110110001101100010110001111110111010101110011101011111101101101111000001000111011000011011010011110101110100100001101100110001110000011101000011010010111001001101100110110011011010101100000110001111010110001110111011110011100110000111000110000011010011110100101100101111010001101111100111111111100110111111110001010001111101110010101100110101001111101001111010110011110001001010100101101110100111010001100001110111001011010010100111101110001011010000110101010000001010010011001010111010111111110110010101011000101000000101101010100001010010111101000110111000010000001010010110101010000101001101011100010010011100111000011110010001110101100001101001111111100011011000010111011001101010110010101011110010011101101001000101110100001000100010001011101001100101010001110011000011001101010101010110011010111000110001101011011100000111100111001100010111001011101011001100111011000011000001111001100000110000011101001010000010110010110000000101111000101100010111000010111110100000100001010100010111001110001001010011101010100100011011010110110001000100111111111110011000111001100011010011100111111010011011001101011101111010011011010011001100010000001111100110110111111000100001010110011100111011111110101110000101000111011010101011000001100010010110000111011100010110101010100101111110001111101110100011010111011010001110010011011111101010011011011100111101011100000001010100110111010110001011101110101011000100101110111100011010000110000111110110010111111000011111010101111100001110111011110010011100010100101101101011001101001110001101111110110001100001010100100011000111110110010011100110101111011100110011010010011111011110100101101010100011010000100100011011001110011101000011010000100111010101111000000100010011100100110001101100111010111010011001100101011110111010010101101011111101001010110000101100000100101111011000000
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

Fig.4. Schéma illustrant l'utilisation de la
séquence binaire produite
Clé

Partie utilisée K
Nouvelle clé
Message clair

Message chiffré

1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
.
.
.
.
1
1
1
0
0
0
0
1
0
.
1
1
1
1
0
0
0
1
0
1
1
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.
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 Unpredict
able PseudoRandom 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
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] Duong 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
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
TABLE DES
MATIERES
EPIGRAPHE
Erreur ! Signet non
défini.
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
CHAPITRE IV : IMPLEMENTATION
ET INTERPRETATION DES RESULTATS
43
CONCLUSION
50
BIBLIOGRAPHIE
51
TABLE DES MATIERES
54