Le chiffre de Vigenère (diplomate français du

Transcription

Le chiffre de Vigenère (diplomate français du
Le chiffre de Vigenère (diplomate français du XVIème siècle)
Exemple n°1 : On crypte le message
Message
J A D O R E F A I R E D E S M A T H S
en clair
Clef
Message
chiffré
Table de Vigenère.
Lettre en clair
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
A
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
B
B C D E F G H I J K L M N O P Q R S T UVW X Y Z A
C
C D E F G H I J K L MN O P Q R S T U VWX Y Z A B
D
D E F G H I J K L M N O P Q R S T U VWX Y Z A B C
E
E F G H I J K L MN O P Q R S T U V WX Y Z A B C D
F
F G H I J K L M N O P Q R S T U V WX Y Z A B C D E
G
GH I J K LMN O P Q R S T U VWXY Z A B C D E F
H
H I J K L MN O P Q R S T U VWX Y Z A B C D E F G
I
I J K LMN O P Q R S T U VWX Y Z A B C D E F G H L
J
C
l K
é
L
U
t M
i N
l
i O
s
é P
e
Q
e
J K LMN O P Q R S T U V WX Y Z A B C D E F G H I t
K LMNO P Q R S T U V W X Y Z A B C D E F G H I J t
r
LMN O P Q R S T U VWX Y Z A B C D E F G H I J K e
MNO P Q R S T UVWX Y Z A B C D E F G H I J K L
c
N O P Q R S T U VWX Y Z A B C D E F G H I J K L M h
O P Q R S T U V WX Y Z A B C D E F G H I J K L MN i
f
P Q R S T U VWXY Z A B C D E F GH I J K L MNO f
Q R S T UVWX Y Z A B C D E F G H I J K L M N O P r
é
S
R S T U VWX Y Z A B C D E F G H I J K L M N O P Q e
S T U V WX Y Z A B C D E F G H I J K L MN O P Q R
T
T U VWX Y Z A B C D E F G H I J K L MN O P Q R S
U
U VWX Y Z A B C D E F G H I J K L MN O P Q R S T
V
V WX Y Z A B C D E F G H I J K L MN O P Q R S T U
W
WX Y Z A B C D E F G H I J K L M N O P Q R S T U V
X
XY Z A B C D E F G H I J K L MN O P Q R S T U VW
Y
Y Z A B C D E F G H I J K L M N O P Q R S T U VWX
Z
Z A B C D E F G H I J K L M N O P Q R S T U V WX Y
R
Lycée Emile Littré – MPS 2010 – N. Ténart
page 1 sur 6
Exemple n°2 : On déchiffre le message codé.
Message
en clair
Clef
Message
G W N L V X P
chiffré
A
N
G
S
S
Y
M
L
I
Z
S
Y
La grande force du chiffre de Vigenère est que la même lettre sera chiffrée de différentes manières. Par
exemple le E du texte clair ci-dessus a été chiffré successivement M V L P I, ce qui rend inutilisable
l'analyse des fréquences.
Évidemment, plus la clé sera longue et variée et mieux le texte sera chiffré. Il faut savoir qu'il y a eu une
période où des passages entiers d'œuvres littéraires étaient utilisés pour chiffrer les plus grands secrets. Les
deux correspondants n'avaient plus qu'à avoir en leurs mains un exemplaire du même livre pour s'assurer de la
bonne compréhension des messages.
Il faudra attendre le XIXème siècle pour que Charles Babbage trouve un moyen réellement efficace pour casser
ce chiffre.
En savoir plus : http://fr.wikipedia.org/wiki/Chiffre_de_Vigen%C3%A8re
Cryptage RSA
Le système de chiffrement RSA a été inventé par trois mathématiciens : Ron Rivest, Adi Shamir et Len
Adleman, en 1977 (On retrouve le sigle RSA dans les noms des inventeurs).
Ce système de chiffrement est beaucoup utilisé dans le commerce électronique (paiement en ligne,
consultation de compte bancaire, correspondance), mais aussi dans les cartes bleues, dans les logiciels
(exemple : OpenSSH), etc.
Lycée Emile Littré – MPS 2010 – N. Ténart
page 2 sur 6
Principe de codage asymétrique :
Alice souhaite pouvoir recevoir des messages chiffrés de n'importe qui. Elle génère alors une valeur à partir
d'une fonction à sens unique et à brèche secrète à l'aide d'un algorithme de chiffrement asymétrique, par
exemple RSA.
Alice diffuse à tout le monde la fonction pour coder les messages (notée clé publique) mais garde secrète la
fonction de décodage (notée clé privée).
1ère étape : Alice génère deux clés. La clé publique
2ème et 3ème étapes : Bob chiffre le message avec la clé
(verte) qu'elle envoie à Bob et la clé privée (rouge)
publique d'Alice et envoie le texte chiffré. Alice
qu'elle conserve précieusement sans la divulguer à
déchiffre le message grâce à sa clé privée.
quiconque.
Analogie du coffre-fort :
Alice a choisi un coffre-fort. Elle l'envoie ouvert à Bob, et en garde la clé. Lorsque Bob veut écrire à
Alice, il y dépose son message, ferme le coffre, il n'a pas besoin de la clef pour cela, et le renvoie à
Alice. À sa réception, seule Alice peut ouvrir le coffre, puisqu'elle seule en possède la clé, à
supposer le coffre inviolable, et que personne ne puisse retrouver la clé.
Quelques éléments mathématiques pour comprendre le cryptage RSA :
1. Nombres premiers :
• Les nombres entiers supérieurs ou égaux à 2 sont dits premiers s’ils ne sont divisibles que par 1
et par eux-mêmes.
• On a démontré qu’il y a une infinité de nombres premiers. Mais il
n’existe pas de règle connue permettant de construire un nombre
premier.
• Crible d’Eratosthène (Grec – IIIème siècle av. J.-C.) : table des nombres
premiers inférieurs à 100.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
•
Premier or not premier ? (rayez les nombres non premiers.)
159
223
551
127
101
197
Lycée Emile Littré – MPS 2010 – N. Ténart
231
543
1777
page 3 sur 6
•
17
34
23
99
150
41
16
35
500
1 000
1 001
15 678
5 182 005
30 000
2 010
Modulo – kézako ?
modulo
5
est égal à
modulo
5
est égal à
modulo
6
est égal à
modulo
8
est égal à
modulo
12 est égal à
modulo
3
est égal à
modulo
4
est égal à
modulo
17 est égal à
modulo
65 est égal à
modulo
2
est égal à
modulo
2
est égal à
modulo
15 est égal à
modulo
9
est égal à
modulo
21 est égal à
modulo
13 est égal à
2
4
5
car
car
car
car
car
car
car
car
car
car
car
car
car
car
car
17 = 3×5 + 2
34 = 6×5 + 4
23 = 3×6 + 5
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
On note :
17 ≡ 2 [5]
34 ≡ 4 [5]
23 ≡ 5 [6]
2. Un exemple simple pour comprendre :
• Transformons un message en suite de nombres :
Message
V
I
V
E
L
E
S
M A
T
H
S
en clair
Message
0 0
0 0
chiffré n°1
Il suffit de prendre le rang de chaque lettre dans l'alphabet et d'utiliser un double zéro pour l'espace.
On décide pour compliquer un peu plus, de regrouper les chiffres par paquets de trois.
Message
chiffré
0 0
0 0
n°1bis
(Simplement recopier la série de chiffres ci-dessus et compléter avec des zéros.)
• Codons le message :
Message
chiffré
n°2
On utilisera la clé publique (899 ; 13). C'est-à-dire Crypté ≡ Message13 [899].
•
Décryptage avec la clé privée (899 ; 517) :
7
5
4
3
8
1
2
1
6
0
0
1
2
8
1
5
7
7
6
1
4
5
0
8
2
8
1
8
7
9
4
5
7
1
0
3
4
5
7
3
3
0
0
0
0
6
2
9
2
1
7
6
5
4
2
2
3
7
5
9
4
1
7
N.B. Le message est en ligne. Quelques bugs à cause de la petitesse des nombres utilisés pour les clés...
Lycée Emile Littré – MPS 2010 – N. Ténart
page 4 sur 6
Principe de codage appliqué sur un exemple :
• On choisit deux nombres premiers, par exemple, p = 29 et q = 31
•
On calcule leur produit n appelé « module de chiffrement » : n = 29 × 31 = 899
•
On calcule l’ « indicatrice d’Euler », noté φ = (p – 1)(q – 1) = 28 × 30 = 840
•
On choisit un nombre e assez grand qui est premier avec φ. Prenons e = 13.
On a bien PGCD(840 ; 13) = 1. A vérifier sur votre cahier.
•
Soit d tel que e × d ≡ 1 [φ].
o On doit avoir, dans notre exemple : 13 × d ≡ 1 [840].
o On peut prendre, par exemple, d = 517 car
 13 × 517 ≡ 6721 ≡ 1 [840] car
 6721 = 8 × 840 + 1
•
La clé publique est constituée du couple de nombres (n ; e) c’est-à-dire (899 ; 13)
•
La clé privée est constituée du couple de nombres (n ; d) c’est-à-dire (899 ; 517)
•
La grande « Magie » du système de cryptage RSA vient du fait que :
o Bob utilise la clé publique pour crypter le message M en code C avec :
 C ≡ M13 [899]
 N’importe qui peut envoyer un code en utilisant la clé publique, MAIS…
o … seule Alice peut décoder le code C car elle seule possède la clé privée. Pour retrouver le
message M, elle doit calculer : M ≡ C517 [899]
o Exemple numérique :
Le nombre 123 est codé en 12313 [899] qui est égal à 402.
Le nombre 402 est décodé en 402517 [899] qui est bien égal à 123.
o Si l'on ne connaît pas d = 517, on ne peut pas décrypter le message crypté C et connaître le
message M. Pour connaître d, on doit connaître (p-1)*(q-1) = 840 pour trouver d à partir de
l'équation : e*d ≡ 1 [(p-1)*(q-1)]. Or, pour avoir (p-1)*(q-1), on doit en premier lieu être
capable de factoriser le grand nombre n = 899 en p et q, tous deux premiers. A partir du
moment où tous les nombres sont de très grands nombres (100 chiffres au moins), nous
pouvons dire qu'il est impossible en pratique qu'un tiers obtienne d, et puisse donc
décrypter le message crypté.
•
Vos calculatrices bloquent sur de tels calculs par les méthodes que vous connaissez.
Heureusement, les mathématiques permettent de simplifier énormément les calculs. (pour en savoir
plus voir : http://mathadora.free.fr/curiosites/dossier_cryptographie.html ).
Lycée Emile Littré – MPS 2010 – N. Ténart
page 5 sur 6
•
Voici un programme qui permet de trouver 402 en indiquant 12313 [899].
Commentaires
Texas Instrument 83
Casio Graph 35
Initiation du programme
PRGM puis NEW
Menu PRGM
puis Create New
Puis NEW
PROGRAM
Nom Programme
Name=RSA
[RSA
]
Message d’invite pour annoncer
PROGRAM :RSA
= = = = =RSA
======
les variables utilisées
: Lbl A
Lbl A ┘
: Disp "R = P^J [N] "
"R = P^J [N] " ┘
La machine demande les 3
nombres P, J et N.
Initialisation de R à 1
Boucle répétitive jusqu’à ce que J=1
Test
Si J est pair
Calculs
Sinon (Si J impair)
Calculs
Fin du test
Fin de la Boucle
Affichage du résultat
: Input "P=",P
: Input "J=",J
: Input "N=",N
: 1R
: Repeat J=1
: If J/2 = int(J/2)
: Then
: J/2J
: P² - N*int(P²/N)
P
: Else
: (J-1)/2J
: R*P - N*int(R*P/N
) R
: P² - N*int(P²/N)
P
: End
: End
: R*P – N*int(R*P/N
) R
: Disp "R = ",R
: Pause
: Goto A
Lycée Emile Littré – MPS 2010 – N. Ténart
"P=" ?P ┘
"J=" ?J ┘
"N=" ?N ┘
1R ┘
While J≠1 ┘
If J ÷ 2 = Intg (J ÷ 2) ┘
Then ┘
J ÷ 2J ┘
P² - N×Intg (P² ÷ N)P ┘
Else ┘
(J-1) ÷ 2J ┘
R×P-N×Intg (R×P ÷ N) R ┘
P² - N×Intg (P² ÷ N)P ┘
IfEnd ┘
WhileEnd ┘
R×P – N×Intg (R×P ÷ N) R ┘
"R = ":R ◄
┘
Goto A ┘
page 6 sur 6