Facebook EmaiInACirclel
Développement front-end, back-end

On va faire court 1, le chiffrement asymétrique

PentaGuy
PentaGuy
Blogger

Lors d’une de mes récentes interventions en public, il m’est apparu que la notion de chiffrement asymétrique par clés était un concept que peu de personnes comprenaient. J’étais en train de parler de blockchain et lorsque j’en suis venu à parler d’authentification de transaction, les questions ont commencé à encombrer les lèvres du public et cette histoire de clé privée et de clé publique a mis du temps à se résoudre.

Historiquement, le secret des communications a longtemps été réalisé au moyen d’une seule clé que l’émetteur et le destinataire se partageaient. Tant que cette clé n’était connue d’eux seuls, les messages qu’ils s’échangeaient, cryptés au moyen de cette clé, restaient inviolables. Les problèmes commençaient lorsque cette clé tombait entre les mains d’un tiers et, du coup, n’était plus secrète ! Un tiers en possession de la clé peut dès lors décoder les messages à l’insu de l’émetteur et de son destinataire.

L’idée de départ du chiffrement asymétrique est que chaque participant à un réseau de communication protégé dispose de deux clés : une clé publique et une clé privée. La condition sine qua none de protection des communications est que la clé privée de chacun reste inconnue des autres. En revanche, la clé publique, comme son nom l’indique, est destinée à être partagée.

Comment cela fonctionne-t-il en pratique ?

Imaginons qu’Alice veuille envoyer un message à Bob sans qu’Eve ne puisse en connaître le contenu. Alice et Bob ont échangé leurs clés publiques respectives et Eve a pu les intercepter. Faisons l’hypothèse qu’Eve dispose des clés publiques de Bob et d’Alice.

Alice va encoder son message à l’aide de la clé publique de Bob et lui envoyer. Eve intercepte le message et tente de le décoder à l’aide de toutes les clés publiques qu’elle a réussi à connaître. Manque de bol, le mécanisme de chiffrement est à sens unique ! La clé qui sert à encoder un message est inutile lorsque vient le moment de le décoder. Eve n’obtient que du charabia. En revanche, Bob, dispose de sa clé privée et peut alors décoder le message qui a été chiffré avec sa clé publique par Alice.

Comment Bob sait-il que c’est bien Alice qui lui a envoyé ce message ? Eh bien, Alice a pu signer son message au moyen d’une authentification cryptographique. Une fois son message écrit, Alice en réalise un condensat au moyen d’une fonction de hachage et va encoder ce condensat au moyen de sa clé privée. Alice émet le message crypté (avec la clé publique de Bob) accompagné du condensat de message lui aussi crypté (avec la clé privée d’Alice), la signature du message. Lorsque Bob reçoit le message et la signature qui l’accompagne, il va décoder le message à l’aide de sa clé privée, en obtenir le condensat en clair à l’aide de la même fonction de hachage qu’Alice a utilisée, puis, il va décoder la signature au moyen de la clé publique d’Alice pour en obtenir une version en clair. Si les deux condensats, celui que Bob vient de décrypter et celui qu’il vient de calculer à partir du message sont identiques cela signifie que le message provient bien d’Alice.

Maintenant, imaginons qu’Eve veuille authentifier un message en se faisant passer pour Alice. Eh bien, elle en est incapable puisqu’elle ne connait pas la clé privée d’Alice. Si Eve tentait de falsifier la signature d’Alice au moyen de la clé publique de cette dernière, Bob serait incapable de décrypter cette signature puisqu’il ignore la clé privée d’Alice, la signature « en clair » ne serait que du charabia et ne correspondrait pas au contenu du message.

La force du cryptage repose sur les propriétés des clés, des fonctions de hachage et sur certaines hypothèses :

L’hypothèse principale est un invariant : aucune clé privée de doit être communiquée sur le réseau.

Un message encodé avec l’une des clés ne peut être décodé qu’en utilisant l’autre clé.

La fonction de hachage employée pour calculer les condensats doit être une « bonne » fonction de hachage. La valeur de hachage d’un message doit pouvoir être calculée « facilement ». Il doit être, de fait, quasiment impossible, une valeur de hachage étant donnée, de construire un message ayant cette valeur de hachage. Modifier un message sans changer sa valeur de hachage doit également être quasiment impossible. Enfin, la probabilité de trouver deux messages différents ayant la même valeur de hachage doit être nulle.

Pour résumer

Alice encode avec… Bob décode avec… Eve… Utilisation
sa clé privée la clé publique d’Alice l’a dans le baba Authentification par signature
la clé publique de Bob sa clé privée l’a dans le baba Cryptage des communications
sa clé publique Tout le monde l’a dans le baba ça ne sert à rien

 

Pour aller plus loin

http://www.commentcamarche.net/contents/208-algorithme-de-chiffrement-rsa

https://fr.wikipedia.org/wiki/%C3%89change_de_cl%C3%A9s_Diffie-Hellman


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *