Cryptographie symétrique et asymétrique, kezako ?

par Ploum le 2018-07-13

Code de César et chiffrement symétrique

L’objectif initial de la cryptographie était d’échanger des messages sécurisés entre deux participants en utilisant un medium non-sécurisé. Traditionnellement, on dit qu’Alice veut envoyer un message à Bob mais elle ne veut pas qu’Eve puisse le lire même si elle a la capacité physique d’intercepter le message. Si la cryptographie a largement étendu son champs d’action (par exemple à travers l’anonymat, le vote électronique, la monnaie virtuelle, …), ce problème canonique d’échange de message entre Alice et Bob reste toujours aussi important.

Pour chiffrer un message, on va donc utiliser un algorithme de chiffrement. Un exemple très simple et très connu est « Le chiffre de César », qui consiste à décaler les lettres dans l’alphabet.

Par exemple, si on décale toutes les lettres de 2 rangs dans l’alphabet, A devient C, B devient D et donc « Le petit cryptographe » s’écrira « Ng rgvkv etarvqitcrjg ».

Il est intéressant de remarquer que même si Eve intercepte ce message et qu’elle sait qu’Alice et Bob utilise le chiffre de César pour communiquer, elle ne peut pas déchiffrer le message sans savoir de combien de rangs les lettres ont été décalées.

Ce nombre (dans notre cas 2) est appelé « la clé de chiffrement ». On dit que ce type de cryptographie est symétrique car la même clé sert à chiffrer et à déchiffrer un message. Alice et Bob doivent s’être mis d’accord sur la clé pour pouvoir s’échanger des messages. Ils peuvent chacun envoyer des messages à l’autre.

Le premier problème qui saute aux yeux est que même sans connaître la clé de chiffrement, Eve pourra assez facilement déchiffrer le message en essayant toutes les combinaisons. En effet, le chiffre de César ne comporte que 25 clés possibles. Il est donc bien vite indispensable de trouver des algorithmes qui permettent un grand nombre de clés afin de ne pas permettre à Eve de tester toutes les combinaisons (on parle de “force brute”). Avec l’avènement des ordinateurs et la facilité de tester des millions de combinaisons, les algorithmes doivent devenir de plus en plus complexes.

Les théories de Claude Shannon ont permis de démontrer que qu’un chiffrement pouvait être absolument sûr si la clé faisait au moins la taille du message.

En théorie, il faudrait donc qu’Alice et Bob s’échange une clé en utilisant un canal sécurisé avant de s’échanger le message final sur un canal non-sécurisé. Si un tel canal sécurisé existe, l’intérêt du chiffrement symétrique est donc réservé à des cas très particuliers où il est possible de s’échanger régulièrement des clés. C’était par exemple le cas du fameux téléphone rouge (en fait un téléscripteur) reliant la Maison Blanche au Kremlin.

Le chiffrement asymétrique ou le cadenas aux deux clés

Cet échange de clés préalable est un problème conceptuel de la cryptographie symétrique, aussi appelée “cryptographie à clé secrète”, qui la rend impropre à l’utilisation sur un réseau où on communique avec des interlocuteurs jamais rencontrés. En 1976, Whitfield Diffie et Martin Hellman se penchent sur le problème et présentent leur idée de cryptographie asymétrique sur base d’un concept théorique découvert par un étudiant de Diffie du nom de Ralph Merkle.

Pour l’anecdote, on sait aujourd’hui que Clifford Cocks avait inventé le même concept 3 ans plus tôt alors qu’il travaillait pour les services de renseignements britanniques. Malheureusement, sa découverte avait été classée top secret et n’avait mené à aucune application concrète.

Le concept de base de la cryptographie asymétrique est que chaque personne possède deux clés : une clé secrète, qui ne doit en aucun cas être partagée et une clé publique.

Tentons une analogie : Alice dispose d’un cadenas un peu particulier car la clé pour l’ouvrir est différente de la clé pour le fermer.

Il lui suffit d’envoyer un coffre, ce cadenas en position ouverte et la clé pour le fermer à Bob. Bob met son message dans le coffre, place le cadenas et le ferme avec la clé à fermer. Une fois le coffre fermé, même Bob ne sait plus l’ouvrir.

Il renvoie le coffre fermé à Alice. Eve l’intercepte. Elle intercepte également la clé pour fermer le cadenas car Alice en distribue à tout le monde. Mais rien à faire, elle ne peut ouvrir le coffre. Le coffre est donc remis à Alice qui peut l’ouvrir avec la clé d’ouverture, la clé secrète.

Si Diffie, Hellman et Merkle proposèrent le concept théorique, il faudra attendre 1978 et que Ronald Rivest, Adi Shamir et Leonard Adleman propose le premier système fonctionnel de chiffrement asymétrique, le célèbre RSA.

Depuis le RSA, le chiffrement asymétrique est de mieux en mieux maitrisé et est utilisé par exemple pour chiffrer ses mails avec PGP/GPG ou pour se connecter à un ordinateur avec SSH. Il reste néanmoins fort coûteux et complexe d’utilisation.

La grande qualité du chiffrement asymétrique est qu’il n’est pas nécessaire d’étudier toute la subtilité mathématique sous-jacente ni de maitriser chaque algorithme pour en avoir une compréhension globale. Il suffit de se rappeler le cadenas à double clé. La clé publique pour le fermer et la clé secrète pour l’ouvrir.

Mais si chacun dispose d’une clé secrète, ne pourrait-on pas imaginer de « signer » un document ou un mail afin d’en garantir la provenance ?

Rendue possible par le chiffrement asymétrique, le concept de signature électronique serait un sujet parfait pour un prochain billet.

Le Petit Cryptographe est une initiative de l’UCL Crypto Group soutenu par le FEDER dans le cadre du projet CryptoMedia/UserMedia. Photo by ali syaaban on Unsplash

https://miro.medium.com/max/600/1*VB9SVJlVmI0TiN78aRaUUA.png

Je suis Ploum et je viens de publier Bikepunk, une fable écolo-cycliste entièrement tapée sur une machine à écrire mécanique. Pour me soutenir, achetez mes livres (si possible chez votre libraire) !

Recevez directement par mail mes écrits en français et en anglais. Votre adresse ne sera jamais partagée. Vous pouvez également utiliser mon flux RSS francophone ou le flux RSS complet.


Permalinks:
https://ploum.net/cryptographie-symetrique-et-asymetrique-kezako/index.html
gemini://ploum.net/cryptographie-symetrique-et-asymetrique-kezako/index.gmi