Académique Documents
Professionnel Documents
Culture Documents
Cryptographie symétrique.
Chiffrer Déchiffer
Cryptographie asymétrique.
Chiffrer Déchiffer
Chiffrements symétriques
Bob veut envoyer un message secret à Alice. Il utilise une clé secrète k pour
sécurité, alors leur adversaire Eve ne doit pas connaître k, ne doit pas
k. En utilisant cette clé secrète, ils peuvent à la fois chiffrer et déchiffrer les
messages, donc Bob et Alice ont des connaissances et des capacités égales
(ou symétriques). Pour cette raison, les chiffrements de ce type sont appelés
chiffrements symétriques.
Chiffrer Déchiffrer
1
Un peu de vocabulaire
Chiffrement: opération qui consiste à rendre le document illisible pour
toute personne non autorisée.
Clé: paramètre utilisé en entrée d’une opération cryptographique.
Déchiffrement: opération qui consiste à rendre le document chiffré en
document original (lisible).
Décrypter: opération qui consiste à rendre le document chiffré en
document lisible sans avoir la clé.
Message clair: Message lisible.
Message chiffré: Message illisible, également appelé cryptogramme.
1. Le chiffre de César
Description : Le chiffre de César est une des méthodes de cryptographie les
plus anciennes. Il consiste en une substitution mono-alphabétique, où la
substitution est simplement définie par un décalage de lettres. Par exemple, si
on décide de remplacer A par D, alors ensuite on remplace B par E, C par F, D
par G, etc... Ainsi, à partir de ce décalage de trois lettres, on obtient le tableau
suivant :
Texte A B C D E F G H I
clair
Texte D E F G H I J K L
codé
Texte J K L M N O P Q R
clair
Texte M N O P Q R S T U
codé
Texte S T U V W X Y Z
clair
Texte V W X Y Z A B C
codé
2
Exemple: Le texte que nous souhaitons coder est le suivant.
LES YEUX VERS LE SOLEIL IL ETAIT BAS ; DANS MOINS D'UNE HEURE
JE LEVAI
IL ARRIVERAIT JUSTE AUDESSUS DES BRANCHES SUPERIEURES DU VIEUX
CHENE.
ℤ ℤ
𝐶: ⟶ 𝑥 ⟼ 𝑎𝑥 + 𝑏,
𝑀ℤ 𝑀ℤ
2. Chiffre de Vigenère
Description : L'idée de Vigenère est d'utiliser un chiffre de César, mais
où le décalage utilisé change de lettres en lettres. Pour cela, on utilise une table
composée de 26 alphabets, écrits dans l'ordre, mais décalés de ligne en ligne
d'un caractère. On écrit encore en haut un alphabet complet, pour la clé, et à
gauche, verticalement, un dernier alphabet, pour le texte à coder :
3
Pour coder un message, on choisit une clé qui sera un mot de longueur
arbitraire. On écrit ensuite cette clé sous le message à coder, en la répétant
aussi souvent que nécessaire pour que sous chaque lettre du message à coder,
on trouve une lettre de la clé. Pour coder, on regarde dans le tableau
l'intersection de la ligne de la lettre à coder avec la colonne de la lettre de la
clé.
Pour coder la lettre C, la clé est donnée par la lettre M. On regarde dans le
tableau l'intersection de la ligne donnée par le C de la première colonne (en
vert), et de la colonne donnée par le M de la première ligne (en violet).
4
On trouve O. Puis on continue. Sous le R on trouve le A. La lettre dans le tableau
correspondant au R dans la colonne A est R. On remplace donc le R par lui-
même. Pour le Y, la lettre de la clé est T. Dans la colonne T, le Y est remplacé
par R. On continue ainsi et on trouve finalement le message chiffré :
ORRWPSHDAIOEI.
5
puis en I. Impossible par une analyse statistique simple de retrouver les lettres
les plus courantes. Dernière chose, on peut produire une infinité de clés et il
est très facile de convenir avec quelqu'un d'une clé donnée. Il résista aux
travaux des cryptanalystes jusqu'au XIXè siècle. Pourtant, à quelques
exceptions près, comme par exemple dans la correspondance de Marie-
Antoinette, ce chiffre, et plus généralement les chiffres polyalphabétiques,
furent peu utilisés. On leur préférait les codes à répertoires.
Il y a 26𝑘 choix possibles de clés, lorsque les blocs sont de longueur k. Pour
des blocs de longueur k = 4 cela en donne déjà 456 976, et même si un
ordinateur teste toutes les combinaisons possibles sans problème, il n’est pas
question de parcourir cette liste pour trouver le message en clair, c’est-à-dire
celui qui est compréhensible ! Il persiste tout de même une faiblesse du même
ordre que celle rencontrée dans le chiffrement mono-alphabétique : la lettre A
n’est pas toujours cryptée par la même lettre, mais si deux lettres A sont
situées à la même position dans deux blocs différents (comme par exemple
"ALPH ABET") alors elles seront cryptées par la même lettre. Une attaque
possible est donc la suivante : on découpe notre message en plusieurs listes,
les premières lettres de chaque bloc, les deuxièmes lettres de chaque bloc...
et on fait une attaque statistique sur chacun de ces regroupements. Ce type
d’attaque n’est possible que si la taille des blocs est petite devant la longueur
du texte.
3. Le chiffre de Hill
Description : Le sujet proposé ici regroupe deux thèmes
principaux : le calcul matriciel et le calcul modulo 26. Le chiffre que nous
allons étudier a été publié par Lester S. Hill en 1929. C'est un chiffre
polygraphique, c'est-à-dire qu'on ne (dé)chiffre pas les lettres les unes après
les autres, mais par paquets. Nous étudierons la version bigraphique, c'est-
à-dire que nous grouperons les lettres deux par deux, mais on peut imaginer
des pâquets plus grands. Les lettres sont d'abord remplacées par leur rang
dans l'alphabet :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0
Les lettres 𝑝𝑘 et 𝑝𝑘+1 du texte clair seront chiffrées 𝑐𝑘 et 𝑐𝑘+1 avec la formule
ci-dessous :
𝑐𝑘 𝑎 𝑏 𝑝𝑘
( )≡( )( ) (mod 26)
𝑐𝑘+1 𝑐 𝑑 𝑝𝑘+1
6
Ce qui signifie que
𝑐𝑘 ≡ (𝑎𝑝𝑘 + 𝑏𝑝𝑘+1 )mod26
𝑐𝑘+1 ≡ (𝑐𝑝𝑘 + 𝑑𝑝𝑘+1 ) mod26.
Pour fixer les idées, les deux premières lettres du message clair (𝑝1 et
𝑝2 ) seront chiffrées (𝑐1 et 𝑐2 ) selon les deux équations suivantes :
9 4
( )
5 7
pour chiffrer le message "je vous aime".
AprŁs avoir remplacé les lettres par leur rang dans l’alphabet (A = 1; B = 2;
etc:); elle obtiendra
𝑐1 ≡ (9 × 10 + 4 × 5) ≡ 110 ≡ 6 mod26
𝑐2 ≡ (5 × 10 + 7 × 5) ≡ 85 ≡ 7 mod26.
Elle fera de même avec les 3ème et 4ème lettres, les 5ème et 6ème …
Et obtiendra finalement:
Lettres j e v o u s a i m e
Rangs (𝒑𝒌 ) 10 5 22 15 21 19 1 9 13 5
Rangs chiffrés (𝒄𝒌 ) 6 7 25 7 5 4 19 16 7 22
Lettres chiffrées F G X G E D S P G V
Remarque
Certains auteurs posent "A" = 1; "B" = 2; …; "Z" = 0: On a utilisé ici cette
convention. Cependant, d’autres auteurs posent "A" = 0; "B" = 1; …; "Z" = 25.
Les deux conventions se défendent. L’essentiel est que les protagonistes se
mettent d’accord avant d’échanger des messages. On pourrait même imaginer
de prendre un alphabet désordonné, par exemple
"A" = 15; "B" = 16; etc; ce qui constituerait un surchiffrement.
Déchiffrement
Pour déchiffrer, le principe est le même que pour le chiffrement: on prend les
lettres deux par deux, puis on les multiplie par une matrice
7
𝑝𝑘 𝑎 𝑏 −1 𝑐𝑘
( )≡( ) ( ) (mod 26).
𝑝𝑘+1 𝑐 𝑑 𝑐𝑘+1
𝑎 𝑏 −1 1 𝑑 −𝑏
( ) ≡ (− ) (mod 26).
𝑐 𝑑 𝑎𝑑 − 𝑏𝑐 𝑐 𝑎
Mais que cela signifie-t-il dans le contexte ℤ/26 ℤ? Reprenons notre exemple.
Exemple de déchiffrement
Pour déchiffrer le message d’Alice, Bob doit calculer
9 4 −1 1 7 −4 7 −4
( ) ≡ ( ) (mod 26) = 43−1 (− ) (mod 26).
5 7 43 −5 9 5 9
−1
Comme gcd(43; 26) = 1; 43 est égale à 23. Bob a donc maintenant la matrice
de déchiffrement:
9 4 −1 7 −4 161 −92
( ) ≡ 23 (− ) (mod 26) = (− ) (mod 26)
5 7 5 9 115 207
5 12
≡ (15 25) (mod 26).
Bob prend donc la matrice
5 12
( ) (mod 26)
15 25
pour déchiffrer le message "FGXGE DSP GV ". Après avoir remplacé les lettres
par leur rang dans l’alphabet (A = 1; B = 2; etc:); il obtiendra
𝑝1 ≡ (5 × 6 + 12 × 7) ≡ 114 ≡ 10 mod26
𝑝2 ≡ (15 × 6 + 25 × 7) ≡ 265 ≡ 5 mod26.
Il fera de même avec les 3ème et 4ème lettres, 5ème et 6ème, etc. Il obtiendra
finalement:
Lettres chiffrées F G X G E D S P G V
Rangs chiffrés (𝒄𝒌 ) 6 7 25 7 5 4 19 16 7 22
Rangs (𝒑𝒌 ) 10 5 22 15 21 19 1 9 13 5
Rangs chiffrés (𝒄𝒌 ) 6 7 25 7 5 4 19 16 7 22
Lettres j e v o u s a i m e
8
Exercie: Chiffrement
la matrice
3 2
( )
1 3
"Rendez-vous ce soir".
Déchiffrement
Déchiffrez à la main le cryptogramme suivant qui a été chiffré avec la
matrice
3 2
( )
1 3
"UDZBI WLOSR VSSAY STAIE AM"
La cryptanalyse
Il est temps de donner une leçon importante sur le côté pratique de la science
de cryptographie :
Votre adversaire utilise toujours sa meilleure stratégie pour vous vaincre, pas
la stratégie que vous voulez qu’il utilise. Ainsi, la sécurité d’un système de
cryptage dépend des meilleures méthodes pour le casser.
Au fur et à mesure que que de nouvelles méthodes améliorées sont
developpées, le niveau de sécurité ne peut s’empirer, jamais meilleur.
But de la cryptanalyse:
L’objectif est de retrouver la clé secrète (casser les protections mises en place)
pas simplement le plaintext. Les techniques sont
brute force attack (attaque à force brute) :
essayer toutes les combinaisons (sur une ciphertext pour le déchiffrer) de la
clé jusqu’à trouver la bonne. En moyenne, il faut essayer au moins la moitié
des clés disponibles pour arriver à casser un cryptosystème.
cryptanalytic attack :
plus intelligente, exploite une connaissance sur l’algorithme et la manière dont
le plaintext est traité.
9
Un code de substitution comme le code de César ne résiste pas à une attaque
à texte chiffré connu.
Décodage par analyse de fréquence, cette méthode a été mise au point
au moyen âge par des lettrés arabes.
Voici un diagramme des fréquences des lettres en français.
10
Chiffrements asymétriques
Principes de Kerckhoffs
Ce principe n’est que la transposition des remarques de bon sens suivantes:
Un cryptosystème sera d’autant plus résistant et sûr qu’il aura été
conçu, choisi et implémenté avec la plus grande transparence et
soumis ainsi à l’analyse de l’ensemble de la communauté
cryptographique.
Si un algorithme est supposé être secret, il se trouvera toujours
quelqu’un soit pour vendre l’algorithme, soit pour le percer à jour, soit
pour en découvrir une faiblesse ignorée de ses concepteurs.
A ce moment là, c’est tout le cryptosystème qui est à changer et pas
seulement la clé.
étroite sur le dessus et la dépose dans un lieu public. Tout le monde dans le
monde est autorisé à examiner le coffre-fort et veillez à ce qu'il soit bien fait.
Bob écrit son message à Alice sur un morceau de papier et le glisse dans la
la fente de dépôt de nuit dans une banque a cette forme, bien qu'en pratique
la « fente » doit être bien protégé pour empêcher quelqu'un d'insérer une
11
Une fonctionnalité utile de notre cryptosystème coffre-fort-avec-fente, en
publique réels, c'est qu'Alice n'a besoin de mettre qu'un seul coffre-fort
dans un lieu public, puis tout le monde dans le monde peut l'utiliser à
plusieurs reprises pour envoyer des messages cryptés à Alice. Il n'est pas
correspondants. Et il n'y a pas non plus besoin de Alice pour ouvrir le coffre-
12
Authentification : Bob veut être certain que le message reçu vient bien d’Alice,
par exemple qu’un attaquant malveillant (Oscar) ne puisse pas se faire passer
pour Alice, mascarade ou usurpation d’identité.
Intégrité : Bob veut être certain que le message n’a pas été falsifié par un
attaquant malveillant (Martin),
Non-répudiation : Bob veut être certaine que l’expéditeur (Alice) ne pourra pas
nier avoir envoyé le message.
Calculs privés
Alice Bob
Choisit un entier secret a. Choisit un entier secret b.
13
Exemple : Alice et Bob conviennent d'utiliser le nombre premier p = 941 et
la racine primitive g = 627. Alice choisit sa clé secrète a = 347 et calcule
Alice envoie à Bob le numéro 390 et Bob envoie à Alice le numéro 691. Ces
deux transmissions sont effectuées sur un canal non sécurisé, donc A = 390
donc elle connaît les valeurs de 𝑔𝑎 et 𝑔𝑏 . Elle connaît aussi les valeurs de g et
p, donc si elle peut résoudre le PLD, alors elle peut trouver a et b, après quoi
il lui est facile de calculer la valeur secrète partagée d'Alice et Bob 𝑔𝑎𝑏 . Il est
résoudre le PLD, mais ce n'est pas tout à fait correct. Il est vrai qu'une
le PLD, mais ce n'est pas le problème précis dont Eve a besoin de résoudre. La
14
Il est clair que le PDH n'est pas plus dur que le PLD. Si Eve peut résoudre le
PLD, alors elle peut calculer les exposants secrets d'Alice et Bob a et b à
partir des valeurs interceptées A =𝑔𝑎 et B =𝑔𝑏 , et il lui est alors facile de
calculer leur clé partagée 𝑔𝑎𝑏 . (En fait, Eve n'a besoin de calculer qu'un seul
parmi a et b.) Mais l'inverse est moins clair. Supposons qu'Eve dispose d'un
laquelle Bob chiffre ses messages en utilisant la clé publique d'Alice. Alice ne
divulgue pas sa clé privée, qui est un autre nombre. La clé privée permet à
Alice, et seulement à Alice, de décrypter les messages qui ont été cryptés à
discret dans 𝔽∗𝑝 est difficile, et elle a besoin d'un élément g modulo p de
grand ordre (premier). Elle peut choisir p et g elle-même, ou ils peuvent avoir
Alice choisit un nombre secret a pour agir comme sa clé privée, et elle calcule
la quantité
A ≡ 𝑔𝑎 mod 𝑝.
15
Remarquez la ressemblance avec l'échange de clés Diffie-Hellman. Alice la
nombre k est appelé clé éphémère, puisqu'il existe uniquement dans le but
𝑥 ≡ 𝑐1𝑎 mod 𝑝,
puis
En effet
16
𝑐2 . 𝑥 −1 ≡ 𝑚(𝑔𝑎𝑘 ).(𝑔𝑘𝑎 )−1 mod 𝑝 ≡ 𝑚(𝑔𝑎𝑘 ).(𝑔𝑎𝑘 )−1 mod 𝑝
≡ 𝑚 mod 𝑝.
dessous.
Création de clé
Alice Bob
Choisit la clé privée 1 ≤a ≤ p-1.
Chiffrement
Choisit un texte clair m.
k.
calculer 𝑐1 ≡ 𝑔𝑘 mod 𝑝 et 𝑐2 ≡
𝑚𝐴𝑘 mod 𝑝.
17
Déchiffrement
Calcule 𝑐2 . 𝑥 −1 mod 𝑝 = m.
p), puisque la clé publique A de Alice est de notoriété publique. Si Eve peut
message. Sinon, il semble difficile pour Eve de trouver le texte en clair, bien
Bob décide d'envoyer à Alice le message m = 331. Il choisit une clé éphémère
au hasard, disons qu'il choisit k = 197, et qu'il calcule les deux quantités
La paire (𝑐1, 𝑐2 ) = (87, 57) est le texte chiffré que Bob envoie à Alice.
puis
𝑥 −1 ≡ 14 mod 467.
18
Il est temps de soulever une question importante. Le système ElGamal est-il
aussi dur pour Eve pour attaquer comme problème Diffie-Hellman ? Ou, en
suit :
les textes chiffrés à l'aide de clés publiques ElGamal. Elle peut alors utiliser
Remarque : Une attaque dans laquelle Eve a accès à un oracle qui décrypte
les textes chiffrés arbitraires sont connus sous le nom d'attaque par texte
sécurisé contre le texte chiffré choisi attaques. Plus précisément, il est sûr si
19
Quelle est la difficulté du logarithme discret problème?
Étant donné un groupe G et deux éléments g, h ∈ G, le problème du
en au plus n opérations, mais si n est grand, disons n >280 , alors ce n'est pas
calcul 𝑔 𝑥 ne doit pas être compté comme une seule opération de base.
porte le nom de ses inventeurs (publics), Ron Rivest, Adi Shamir, et Léonard
Adleman.
20
Proposition. Soient p et q deux nombres premiers distincts et soit e ≥ 1 tels
que
Et la congruence
𝑥 𝑒 ≡ 𝑐 mod 𝑝𝑞
𝑥 ≡ 𝑐 𝑑 mod 𝑝𝑞 .
soient e et c entiers.
trouver facilement x.
suivant.
21
Bob Alice
Création de clé
Choisit des nombres premiers
secrets p et q.
Choisit l'exposant de
chiffrement e
Publie N = pq et e.
Chiffrement
Choisit le texte clair m.
e)
calculer c ≡ 𝑚𝑒 mod 𝑁.
Déchiffrement
Calcule d satisfaisant
Calcule 𝑚’ ≡ 𝑐(𝑚𝑜𝑑 𝑁 ).
sont si petits qu'il serait facile pour Eve de factoriser le module N . Sécuriser
22
les implémentations de RSA utilisent des modules N avec des centaines de
chiffres.
Bob choisit deux nombres premiers secrets p = 1223 et q = 1987. Bob calcule
Ce
Cryptage RSA
Alice utilise la clé publique de Bob (N, e) = (2430101, 948047) pour calculer
Déchiffrement RSA
Bob connait
et trouve que
d = 1051235.
23
Exemple académique de codes RSA.
Alice publie sa clé publique (𝑛A , 𝑒A ) = (65, 5), sa clef secrète est 𝑑A .
Bob publie sa clé publique (𝑛B , 𝑒B ) = (77, 7), sa clef secrète est 𝑑B .
premiers 𝑛A = 13 × 5 et 𝑛B = 7×11.
𝑑A = 5 × 29 = 145 = 1 + 3 × 48 ⇒ 𝑑A = 29,
Respectivement
𝑑B = 7 × 43 = 301 = 5 × 60 + 1 ⇒ 𝑑B = 43.
Alice veut transmettre le message 3 à Bob. Elle calcule donc
37 = 31 mod 77
et elle envoit 31 à Bob. Bob décode en calculant
24