Chapitre 20 : Sécurisation des données.

🕐 Historique:

Le concept de cryptographie à clef publique — autre nom de la cryptographie asymétrique — est généralement attribué à Whitfield Diffie et à Martin Hellman qui l'ont présenté au public à la National Computer Conference en 1976, puis publié quelques mois plus tard dans New Directions in Cryptography. Le concept aurait cependant été découvert indépendamment par d'autres chercheurs à la même époque. Ralph Merkle aurait fait la même découverte à la même époque, même si ses articles ne furent publiés qu'en 1978.

Source : wikipedia

1. Un premier chiffrement : le chiffrement par décalage ou encore appelé "chiffre de César".

L'humanité n'a pas attendu la naissance de l'informatique pour comprendre la nécessité de chiffrer ses messages.

Il consiste à décaler d'un rang bien déterminé les lettres de l'alphabet.

Si par exemple on décale avec le nombre 3, la lettre A deviendra D, B deviendra E etc.

2. Exercice:

Quel est le défaut du code césar? Comment décoder un code chiffré?

3. Chiffrement symétrique et asymétrique.

Pour sécuriser les échanges sur un réseau, il existe deux grandes méthodes de chiffrement : symétrique et asymétrique.

Le chiffrement symétrique utilise une seule et même clé pour coder et décoder les messages. Cette clé doit être gardée secrète et connue uniquement des deux parties qui communiquent.

Le chiffrement asymétrique repose sur une paire de clés : une clé publique (connue de tous) pour chiffrer les messages, et une clé privée (secrète) pour les déchiffrer. Cela permet d’échanger en toute sécurité sans partager de clé secrète à l’avance.

4. Chiffrement symétrique.

Pour une communication sur un réseau du type internet par exemple, il est nécessaire de chiffrer certains messages. Une des possibilités de chiffrement est le chiffrement symétrique.

Pour cela, deux ordinateurs A et B utilisent la même clé de codage/décodage et cette clé doit être connu d'eux seuls.

5. Problème du chiffrement symétrique.

Le chiffrement symétrique a beaucoup d'avantage, notamment par sa rapidité d'encodage - décodage.

Idéalement, l'ensemble des échanges se ferait de façon symétrique mais l'échange des clés entre les deux est problématique. Deux ordinateurs ne peuvent pas s'envoyer les clés "en clair".

6. Chiffrement asymétrique.

Le chiffrement asymétrique est basé sur un système de clé publique, clé privé.

Une vidéo explique très bien cela:

7. Exercice:

Cet exercice est extrait d'une épreuve de type BAC.

Pour une meilleure lisibilité, des espaces sont placées dans les écritures binaires des nombres. Il ne faut pas les prendre en compte dans les calculs.

Pour chiffrer un message, une méthode, dite du masque jetable, consiste à le combiner avec une chaîne de caractères de longueur comparable.

Une implémentation possible utilise l’opérateur XOR (ou exclusif) dont voici la table de vérité :

Dans la suite, les nombres écrits en binaire seront précédés du préfixe 0b.

  1. Pour chiffrer un message, on convertit chacun de ses caractères en binaire (à l’aide du format Unicode), et on réalise l’opération XOR bit à bit avec la clé.Après conversion en binaire, et avant que l’opération XOR bit à bit avec la clé n’ait été effectuée, Alice obtient le message suivant : $$ m = 0b\: 0110\: 0011\: 0100\: 0110 $$
    1. Le message m correspond à deux caractères codés chacun sur 8 bits : déterminer quels sont ces caractères. On fournit pour cela la table ci-dessous qui associe à l’écriture hexadécimale d’un octet le caractère correspondant. Exemple de lecture : le caractère correspondant à l’octet codé 4A en hexadécimal est la lettre J.
    2. Pour chiffrer le message d’Alice, on réalise l’opération XOR bit à bit avec la clé suivante : $$ k = 0b\: 1110\: 1110\: 1111\: 0000 $$

      Donner l'écriture binaire du message obtenu.

    1. Dresser la table de vérité de l’expression booléenne suivante : $$ (a\: XOR\: b)\: XOR\: b $$
    2. Bob connaît la chaîne de caractères utilisée par Alice pour chiffrer le message. Quelle opération doit-il réaliser pour déchiffrer son message ?