Skip to content

Cryptographie

En sécurité, la cryptographie apporte de la confidentialité, de l'intégrité et de l'authentification pour l'information au repos et en transit.

C'est pour protéger l'information d'une utilisation et d'une visualisation non autorisée.

Le chiffrement de César

Pour protéger les communications entre Rome et ses forces en Europe, César utilisait un système cryptographique. Pour chiffrer un message, il remplacait chaque lettre du message par une lettre à droite de 3. Par exemple, A devenait D, B devenait E et Z devenait C. Aujourd'hui, c'est connu sous le nom de ROT3 (Rotate 3).

Le texte suivant :

Bonjour la gang

Devenait :

Erqmrxu od jdqj

Pour déchiffrer un message de César, il faut faire l'opération inverse, soit remplacer chaque lettre par celle à gauche de 3.

Exemple :

MRHO

M - 3(LKJ) = J
R - 3(QPO) = O
H - 3(GFE) = E
O - 3(NML) = L

Cracker un message de César

Les experts en cryptographie utilisent les statistiques de fréquence d'occurence des lettres pour déterminer quel serait le décalage de chaque lettre.

Voici les statistiques de fréquence d'occurence des lettres en français :

10-frequence-lettres-wikipedia

Source

Vous pouvez voir que la lettre E est la plus fréquente dans un texte en français.

Lorsque le texte est chiffré, ce ne sera pas la lettre E qui sera la plus fréquente. Alors, pour déchiffrer le message, il faut trouver le décalage de la lettre E. Si la lettre la plus fréquente est le I, le décalage serait pobablement de 4.

Prenons un exemple d'un texte chiffré :

"xqe xagfdqe (xgfduzmq) eazf gzq eagermyuxxq pq ymyyurqdqe omdzuhadqe pq xm rmyuxxq pqe ygefqxupqe. ux qjuefq bxgeuqgde qebqoqe pq xagfdqe, omdmofqdueqqe bmd pq oagdfqe bmffqe, pqe pausfe sdurrge qf bmxyqe (mgj bmffqe mhmzf qf mdduqdq) qf gzq xazsgq cgqgq.

oqffq eagermyuxxq m qfq pqodufq bagd xm bdqyuqdq raue qz bmd xq laaxasuefq otmdxqexgouqz nazmbmdfq.

pmze pq zayndqgj bmke, xqe xagfdqe azf puebmdg pq fagf ag bmdfuq pq xqgd mudq zmfgdqxxq pq dqbmdfufuaz, pq yqyq cgq xqe omefade cgu bmdfmsqmuqzf xqgd yuxuqg pq huq. oqe pqgj qebqoqeoxq razf x'anvqf pqbgue gz euqoxq qzhudaz pq bdafqofuaz qf pq bdasdmyyqe ag bdavqfe pq dquzfdapgofuaz ag oazradfqyqzf pq babgxmfuaze bmd fdmzexaomfuaz. xm xagfdq qfmzf bmdfuogxuqdqyqzf pueodqfq qxxq rmuf eaghqzf x'anvqf p'gz eguhu bmd dqotqdotq p'uzpuoq (bauxe, ymdcgmsq pq fqddufaudq, buqsqe btafasdmbtucgqe) qf p'gz eguhu fqxqyqfducgq bmd bgoq qxqofdazucgq"

Voici les statistiques de fréquence pour ce texte :

10-frequence-texte-chiffre

Outil pour calculer rapidement la fréquence des lettres

Outil pour déchiffrer un texte de César

La lettre la plus fréquente dans ce texte est la lettre Q. Nous pouvons supposer que le texte a été chiffré avec un décalage de 12 (Q - E = 12).

Note

-12 est pour déchiffrer. Plusieurs outils ont un choix de chiffrement entre ROT1 et ROT25. Alors le -12 serait le ROT14 (26-12).

Voici le texte lorsqu'on le déchiffre avec -12 :

"les loutres (lutrinae) sont une sousfamille de mammiferes carnivores de la famille des mustelides. il existe plusieurs especes de loutres, caracterisees par de courtes pattes, des doigts griffus et palmes (aux pattes avant et arriere) et une longue queue.

cette sousfamille a ete decrite pour la premiere fois en par le zoologiste charleslucien bonaparte.

dans de nombreux pays, les loutres ont disparu de tout ou partie de leur aire naturelle de repartition, de meme que les castors qui partageaient leur milieu de vie. ces deux especescle font l'objet depuis un siecle environ de protection et de programmes ou projets de reintroduction ou confortement de populations par translocation. la loutre etant particulierement discrete elle fait souvent l'objet d'un suivi par recherche d'indice (poils, marquage de territoire, pieges photographiques) et d'un suivi telemetrique par puce electronique"

Bases de la cryptographie

Un système de chiffrement symétrique est fait en sorte que la clé de chiffrement est la même clé pour le déchiffrement.

Un système de chiffrement asymétrique utilise une clé pour le chiffrement et une autre pour le déchiffrement. Ce sont deux clés différentes et il est impossible de déchiffrer avec la clé de chiffrement.

plain-texte : Texte lisible par l'humain avant d'être chiffré (représenté par un P)

chiffre-texte : Texte chiffré par un algorithme de chiffrement (représenté par un C)

Chiffrement symétrique

10-Chiffrement-Symetrique

Le chiffrement symétrique implique que la clé secrète est partagée entre l'émetteur et le récipiendaire d'un message.

C'est bon pour la confidentialité, mais ça ne prouve pas l'identité de l'émetteur du message, car la clé secrète est connue d'au moins 2 personnes.

La distribution de la clé est un problème. Il faut avoir un canal de distribution de la clé sécuritaire pour la transmettre sans risquer de se la faire intercepter. (Ne jamais envoyer une clé secrète par courriel, par exemple)

La clé doit être régénérée souvent. En effet, lorsqu'un membre du groupe qui possède la clé quitte, la clé ne peut plus être utilisée.

Chiffrement asymétrique

Le chiffrement asymétrique est aussi appelé chiffrement à clé publique. L'algorithme utilise une paire de clés, une privée et seulement connue du récipiendaire et l'autre publique, connue de tous.

10-Chiffrement-Asymetrique

Le chiffrement aide :

Aspect Impact
Confidentialité La communication ne peut être consultée sans la clé
Intégrité Avec une fonction cryptographique de hashage, on peut vérifier l'intégrité des données transmises
Authentication Un système demande à un client de chiffrer un message spécifique. Le message chiffré est la preuve que le client possède la bonne clé

Chiffrement par transposition

Le chiffrement par transposition réarrange les lettres d'un plain-texte. Par exemple, on pourrait simplement renverser l'ordre des lettres :

POMME deviendrait EMMOP

La transposition par colonnes prend une clé et calcule la position de chaque lettre en ordre alphabétique. Si une lettre revient deux fois, la seconde prend la position suivante. Ex :

P A T A T E
 4 1 5 2 6 3

Pour chiffrer le plain-texte suivant :

LE MOT DE PASSE EST CHEVAL123

Il faut l'écrire dans les colonnes comme suit :

P A T A T E
 4 1 5 2 6 3
 L E M O T D
 E P A S S E
 E S T C H E
 V A L 1 2 3

Ensuite, il faut écrire le chiffre-texte selon l'ordre des colonnes :

E P S A O S C 1 D E E 3 L E E V M A T L T S H 2

Pour déchiffrer un message par transposition, il faut tout d'abord diviser le nombre de caractères dans le chiffre-texte par la longueur de la clé.

Ex: Le chiffre-texte suivant : TTEPAHAEUREQIGI et la clé FROID

Le plain-texte a 15 caractères et la clé 5 caractères.

Il faut faire une grille comme suit :

F R O I D

Ensuite, remplir chaque colonne de la grille avec les caractères du chiffre-texte, en commençant avec la première position (le D de FROID) :

TTEPAHAEUREQIGI

F R O I D
T
T
E

La seconde colonne (le F) :

TTEPAHAEUREQIGI

F R O I D
P T
A T
H E

La troisième colonne (le I) :

TTEPAHAEUREQIGI

F R O I D
P A T
A E T
H U E

La quatrième colonne (le O) :

TTEPAHAEUREQIGI

F R O I D
P R A T
A E E T
H Q U E

La dernière colonne (le R) :

TTEPAHAEUREQIGI

F R O I D
P I R A T
A G E E T
H I Q U E

Lire le message par ligne :

PIRAT
AGEET
HIQUE

PIRATAGEETHIQUE

Chiffrement par substitution

Le chiffrement de Vigenère est un chiffrement par substitution polyalphabétique. Il utilise une charte de chiffrement et de déchiffrement démontré ici :

10-vigenere-tableau

Pour chiffrer, il faut utiliser une clé. Disons que la clé est :

CEGEP

Le plain-texte à chiffrer est :

LE COURS EST SUPER

Sous le plain-texte, il faut écrire la clé de chiffrement autant de fois que nécessaire pour avoir une ligne de texte aussi longue que le plain-texte.

Convertir chaque lettre du plain-texte en chiffre-texte :
1. Localiser la bonne colonne avec la lettre du plain-texte
2. Localiser la bonne ligne avec la lettre de la clé
3. L'intersection est la lettre du chiffre-texte

10-Vigenere-chiffrement

LE COURS EST SUPER
CE GEPCE GEP CEGEP
NI ISJTW KWI UYVIG

Pour le déchiffrement :
1. Localiser la bonne ligne avec la lettre de la clé
2. Sur cette ligne, localiser la lettre du chiffre-texte
3. Aller dans le haut de la colonne pour avoir le plain-texte

Ex:

Le chiffre-texte ZOHZI KST MQAEDI et la clé LUMIERE

Localiser la ligne :

10-vigenere-dechiffrer-1

Localiser la lettre :

10-vigenere-dechiffrer-2

Le haut de la colonne :

10-vigenere-dechiffrer-3

ZOHZI KST MQAEDI
LUMIE REL UMIERE
OUVRE TOI SESAME

Masque jetable

La méthode de substitution la plus sécuritaire est celle du masque jetable (one-time pad). C'est une clé aléatoire aussi longue que le texte à chiffrer. C'est la seule méthode de chiffrement qui est réputée sans faille si les règles suivantes sont respectées :

  1. La clé doit être générée de manière aléatoire
  2. La clé doit être protégée contre le vol, si un ennemi a la clé, le message peut être déchiffré
  3. La clé doit être utilisée qu'une seule fois. Si elle est utilisée plus d'une fois, des experts peuvent en déduire la clé
  4. La clé doit être aussi longue que le plain-texte

Pour envoyer un message à l'aide du chiffrement asymétrique, l'expéditeur utilise la clé publique du réceptionnaire pour chiffrer le message, qui sera déchiffré par ce dernier avec sa clé publique.

Le chiffrement asymétrique peut aussi être utilisé comme signature électronique, pour prouver que le message vient vraiment de l'expéditeur.

Comme il n'y a pas de distribution de clés privées, il est plus facile d'utiliser ce système.

Aucun besoin de régénérer des clés lorsqu'un membre du groupe quitte, il n'a jamais eu accès aux clés privées des autres membres.

Cependant, le chiffrement et déchiffrement est beaucoup plus lent que pour une clé symétrique.

Chiffrement asymétrique avec GPG

GPG : GNU Privacy Guard

GPG est installé par défaut dans Kali.

GPG est utilisé pour le chiffrement asymétrique. Pour créer une nouvelle clé :

gpg --gen-key

Pour exporter une clé publique dans un format lisible :

gpg --output cle.pgp --armor --export rivard.etienne@cegepvicto.ca

Ça donne ceci :

-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEaFxJZRYJKwYBBAHaRw8BAQdAmFAij9pipye6a3mPr0U/aiL453+pzwnbMdTW
YPpDy7i0LUV0aWVubmUgUml2YXJkIDxyaXZhcmQuZXRpZW5uZUBjZWdlcHZpY3Rv
LmNhPoiZBBMWCgBBFiEEaRbztuZd3HN94zs8j65vkZqQVG0FAmhcSWUCGwMFCQWj
moAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQj65vkZqQVG3t/wD9HWtE
wyuBKdhNHzLBujdIyshKifHCnjL3LNY55cW+IUMA/RNfIpcXC9X+0tE3xa8H7uRI
fyznmsIY5/2vna5Z9XYLuDgEaFxJZRIKKwYBBAGXVQEFAQEHQM9o0rfE9v71WZCF
b6+QdgY3W+dmEXbVq7iyp7d9TiAUAwEIB4h+BBgWCgAmFiEEaRbztuZd3HN94zs8
j65vkZqQVG0FAmhcSWUCGwwFCQWjmoAACgkQj65vkZqQVG3towEAqSbYvjg/vDri
DN4M6LbxZkch+ZkySiMoFPM/M2JbWrUBAIpiXhxqMUmfowGghRdt7yKpm8xf3ttX
a6jeWLv2rTEC
=1gpo
-----END PGP PUBLIC KEY BLOCK-----

Pour importer la clé publique du futur récipiendaire de vos messages :

gpg --import cle.gpg

Pour chiffrer votre message :

gpg --output chiffre-texte.gpg --encrypt --recipient destinataire@email.com plain-texte

Le récipiendaire pourra déchiffrer le message comme suit :

gpg --output plain-texte --decrypt chiffre-texte.gpg

Testez vos connaissances

Petit quiz sur le chiffrement