Ce chapitre ne pourra pas faire l'objet d'une évaluation lors de l'épreuve terminale écrite et pratique de l'enseignement de spécialité. [BO MENE2121274N]{.cite-source}
Contenus | Capacités attendues | Commentaires |
---|---|---|
Sécurisation des communications. |
Décrire les principes de chiffrement symétrique (clef partagée) et asymétrique (avec clef privée/clef publique). Décrire l'échange d'une clef symétrique en utilisant un protocole asymétrique pour sécuriser une communication HTTPS. |
Les protocoles symétriques et asymétriques peuvent être illustrés en mode débranché, éventuellement avec description d'un chiffrement particulier. La négociation de la méthode chiffrement du protocole SSL (Secure Sockets Layer) n'est pas abordée. |
Sécuriser l'échange de données est un aspect crucial lors de l'échange d'informations par exemple lors d'un paiement sur internet. Il existe deux principaux types de chiffrement de données qui permettent de rendre un message lisible uniquement par son destinataire:
La cryptographie symétrique, également dite à clé secrète (par opposition à la cryptographie asymétrique), est la plus ancienne forme de chiffrement. Elle permet à la fois de chiffrer et de déchiffrer des messages à l'aide d'un même mot clé. On a des traces de son utilisation par les Égyptiens vers 2000 av. J.-C.
[Article Wikipédia sur la cryptographie symétrique]{.cite-source}
Cette technique repose sur l'utilisation d'une clé unique qui doit être connue par l'expéditeur et le destinataire.
Il existe de nombreux chiffrements de ce type qui ont évolué en complexité au cours du temps.
On décale les lettres de rangs la clé est tout simplement : le décalage.
Par exemple, César utilisait un décalage de 3 lettres:
Si on connait le décalage, on déchiffre le message en réalisant le décalage opposé, moins trois lettres dans note exemple.
Si on utilise 26 lettres majuscules, il n'existe que 26 clés possibles!
On remplace une lettre par une autre de l'alphabet, on a donc clés possibles.
Avec la clé suivante:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AZERTYUIOPQSDFGHJKLMWXCVBN
le message SUBSTITUTION
devient LWZLMOMWMOGF
Cette méthode a été mise au point durant la renaissance pour contrer la cryptanalyse par la méthode des fréquences de lettres qui permettait de "casser" les clés de cryptage assez facilement.
On choisit une clé sous la forme d'un mot ou d'une phrase qui donne le décalage à appliquer qui devient alors variable.
Supposons que la clé soit ABC
, les décalages successifs seront 0, 1,
2, 0, 1, 2, 0...
Avec la clé ABC
Le message SUBSTITUTION
devient: SVDSUKTVVIPP
SUBSTITUTION
ABCABCABCABC
------------
SVDSUKTVVIPP
Il s'agit d'un système parfaitement sûr, le mathématicien C.Shannon a montré que si on respecte bien les 3 règles de Vernam, ce système est inviolable.
Une méthode particulièrement efficace pour traiter le chiffrement et le
déchiffrement de messages à partir de la clé est d'utiliser la fonction
logique XOR
, le ou exclusif qui a une particularité très intéressante
dans notre cas.
On note le message et la clé secrète, XOR
se note .
On obtient le message chiffré en faisant: .
Le déchiffrement se fait tout simplement en appliquant la même opération car:
On souhaite transmettre le message NSI
de façon privée. Le code ASCII
correspondant est 01001110 01010011 01001001
.
On crée un masque aléatoirement que l'on transmet au destinataire:
11001001 11001101 01100011
.
La cryptographie asymétrique permet de résoudre le problème de l'échange de la clé secrète.
Elle fut inventée par Whitfield Diffie et Martin Hellman en 1976, qui reçurent le prix Turing de 2015 pour cette découverte.
En cryptographie asymétrique on a 2 clés:
[Cours l'algorithme RSA sur OpenClassRoom]{.cite-source}
Pour que cela fonctionne, il faut que la paire clé publique/clé privée ait une propriété particulière.
Soit la fonction de chiffrement utilisée avec la clé publique, et la fonction relative à la clé privée. Une relation particulière relie ces deux fonctions:
Enfin pour que ce système fonctionne, il faut que:
Un système qui satisfait ces deux critères est le système de chiffrement RSA utilisé pour échanger des données confidentielles sur Internet.
Cet algorithme fut inventé en 1977 par Ronald Rivest, Adi Shamir et Leonard Adleman breveté par le MIT en 1983. Le brevet a expiré le 21 septembre 2000 ce qui permet de l'utiliser librement depuis.
Ce système de cryptographie repose sur l'utilisation de nombres premiers et certaines propriétés de l'arithmétique modulaire.
Alice et Bob ont choisi un nombre premier et un nombre strictement plus petit que (ils peuvent aussi, comme montré sur la figure, ne décider de ce choix qu'au moment de l'échange, et se le communiquer en clair, ce qui n'améliore pas les chances d'Ève qui cherche à casser le code)
Alice choisit un nombre au hasard , élève à la puissance , et envoie à Bob le nombre .
De même Bob choisit un nombre au hasard , et fait de même; il transmet le nombre à Alice
En élevant le nombre reçu de Bob à la puissance , obtient .
Bob fait le calcul analogue avec le nombre reçu d'Alice et obtient , qui est le même résultat.
A la fin du protocole, Alice et Bob connaissent tous les deux le nombre mais pas Ève car elle ne peut pas calculer facilement.
[Article Wikipédia]{.cite-source}
Créez une clé secrète sur ce principe avec votre voisin en Python:
Bien que le système RSA à clé publique soit a priori sûr et pratique puisqu'il n'est pas nécessaire d'échanger la clé de chiffrement comme dans le cas du chiffrement symétrique. On utilise en pratique plutôt un système hybride, car le système à clé asymétrique est assez lourd à exécuter et prend du temps.
Regardons par exemple le cas d'échange d'informations sécurisées grâce au protocole HTTPS.
Dans le schéma d'échange de clés Diffie-Hellman, chaque partie génère une paire de clés publique / privée et distribue la clé publique. Après avoir obtenu une copie authentique des clés publiques de chacun, Alice et Bob peuvent calculer une clé secrète partagée hors ligne. La clé secrète partagée peut être utilisée, comme clé pour un chiffrement symétrique.