Le coin du cryptologue : 6 – Les échanges des clés de chiffrement

La cryptologie expliquée à mon voisin qui n'y connait rien mais qui voudrait savoir... Comme dans toutes mes rubriques "Le coin du cryptologue", un conseil pratique se trouve à la fin.

Vous trouverez les articles précédents sur le sujet :

  1. Le calcul d’empreinte dans la lettre mensuelle de Forum ATENA du mois d’avril 2016
  2. Chiffrer, déchiffrer, décrypter dans celle du mois de mai
  3. Le chiffrement à clé publique dans celle du mois de juin
  4. La signature numérique dans celle du mois de septembre
  5. Le chiffrement symétrique dans celle du mois d’octobre

Combiner chiffrement symétrique et chiffrement à clé publique

Nous avons écrit dans les articles précédents, qu’un chiffrement met en jeu des clés et un algorithme. On chiffre avec une clé à l’aide de l’algorithme, on déchiffre avec une clé et le même algorithme. Si la clé de chiffrement et celle de déchiffrement sont les mêmes, le chiffrement est dit « symétrique » et la clé est dite « secrète ». Si on chiffre avec une clé et on déchiffre avec une clé différente, le chiffrement est dit « asymétrique » ou encore « à clé publique » quand l’une des clés n’est pas un secret. Dans un chiffrement à clé publique, on chiffre avec la clé publique du destinataire, qui déchiffre avec une clé dite « privée » que seul lui possède.

Le chiffrement symétrique (exemple algorithme AES), basé sur des calculs simples, en particulier sur le « ou exclusif », est très rapide. Le chiffrement asymétrique (exemple RSA), basé sur des calculs lourds est très lent quand une grande quantité de données, ou des données très volumineuses, sont à chiffrer. Pour des questions de performance, c’est donc le chiffrement symétrique qui sera choisi pour chiffrer et déchiffrer les données numériques.

Le problème du chiffrement symétrique est que la clé secrète doit être échangée entre celui qui chiffre et celui qui déchiffre, mais cette clé doit rester secrète. Le problème de l’échange de la clé secrète est résolu par l’utilisation du chiffrement asymétrique. Ce chiffrement met en jeux deux clés, une clé privée que son propriétaire garde très confidentielle et une clé publique, mathématiquement liée à la clé privée, qui n’est pas confidentielle et qui donc peut, sans problème, être partagée avec tout le monde. On utilise la clé publique de son correspondant pour chiffrer, et son correspondant utilise sa clé privée, mathématiquement liée à sa clé publique, pour déchiffrer.

Les phases des échanges des clés

Introduisons le couple mythique de la cryptologie, Alice et Bob.

Bob veut échanger un message avec Alice en souhaitant que la confidentialité de ce message soit garantie. Autrement dit, seule Alice doit pouvoir le lire en clair. Bob va combiner le chiffrement symétrique et le chiffrement asymétrique. Les échanges de clés vont passer par différentes phases qui peuvent paraitre un peu complexes à première vue mais en fait, c’est très simple.

La complexité existe mais se trouve au niveau des algorithmes de chiffrement. Il n’est pas indispensable d’entrer dans le secret des algorithmes qui demandent des connaissances poussées en mathématiques pour comprendre les échanges de clés. Ici, nous n’irons pas du tout dans les détails mathématiques, nous analyserons étapes par étapes comment et avec quoi Bob chiffre son message et Alice le déchiffre :

  1. Bob, qui va émettre un message chiffré, demande d’abord à Alice son certificat numérique qui contient la clé publique d’Alice dont la propriété est attestée par l’autorité de confiance qui a signé numériquement ce certificat. Cette clé n’est pas confidentielle. Bob aurait pu aussi obtenir directement le certificat d’Alice dans un annuaire de certificats, généralement au format LDAP, ou déjà l’avoir obtenu si ce n’est pas la première fois qu’il chiffre des messages pour Alice. Si Bob a confiance en l’entité qui a signé le certificat d’Alice, si le certificat n’a pas été révoqué et s’il est dans ses dates de validité, Bob extrait, du certificat, la clé publique d’Alice. Alice possède sa clé privée, mathématiquement liée à sa clé publique pour être utilisée dans un algorithme asymétrique. Cette clé privée doit être gardée confidentielle par Alice.
  2. Bob génère une clé secrète, généralement aujourd’hui de 128, 196 ou 256 bits pour être utilisée par un algorithme symétrique. Cette clé sera valable pour la durée de la session. Elle est générée à partir d’une clé racine que Bob possède. Cette clé secrète de session doit évidemment être gardée confidentielle au cours de l’échange qui va suivre. Par sécurité, il est préférable que la clé racine, qui sert à générer les clés secrètes de sessions, se trouve sur un support amovible protégé par un code que seul Bob connait.
  3. Bob chiffre sa clé secrète, avec la clé publique d’Alice, et un algorithme de chiffrement asymétrique (comme le RSA).
  4. Bob chiffre son message avec sa clé secrète qu’il vient de générer et l’algorithme de chiffrement symétrique (comme l’AES). Le message de Bob ainsi chiffré est prêt à être envoyé. Mais Alice n’a pas encore la clé secrète générée par Bob.
  5. Bob envoie à Alice

     

    • Son message chiffré avec sa clé secrète
    • Sa clé secrète chiffrée avec la clé publique d’Alice.
  6. Alice a reçu ces deux informations chiffrées
  7. Le message chiffré avec la clé secrète de Bob
  8. La clé secrète de Bob chiffrée avec la clé publique d’Alice.
  9. Alice a tout pour obtenir le message de Bob en clair :
  10. Elle utilise sa clé privée pour déchiffrer par un algorithme asymétrique, la clé secrète de Bob. Rappelons que la clé secrète de Bob a été chiffrée avec la clé publique d’Alice. Rappelons aussi que ce qui est chiffré avec une clé publique, ne peut être déchiffré qu’avec la clé privée correspondante, et un algorithme asymétrique. Alice obtient donc en clair la clé secrète de Bob, qui a été transmise de manière sûre sur le réseau.
  11. Elle déchiffre le message de Bob avec la clé secrète de Bob qu’elle vient d’obtenir en clair.

Compliqué ? Pas du tout, mais peut-être faut-il relire plus d’une fois les étapes qui précèdent pour s’en imprégner et avoir une vue complète. En fait le génie de cette méthode tient dans sa simplicité.

Et c’est ainsi, en combinant chiffrement symétrique (pour chiffrer/déchiffrer le message) et asymétrique (pour transmettre la clé) que fonctionne par exemple le PGP (Pretty Good Privacy) mis en avant par Philip Zimmermann au début des années 90, et aujourd’hui la plupart des échanges chiffrés et le chiffrement sur disque.

L’apport de la physique quantique

La physique quantique, notez que nous ne parlons pas de calculateurs quantiques, mais de contribution de la physique quantique au chiffrement symétrique, apporte de bonnes solutions à plusieurs problèmes posés par la génération et par l’échange des clés. Nous n’évoquons ici que les problèmes et leur résolution. Le comment sera traité dans le prochain article.

La clé secrète générée par Bob doit être aléatoire, pour ne pas qu’il soit possible de la déduire. Mais un ordinateur classique ne peut générer que des clés pseudo aléatoires. Dans de grandes séries de clés générées, celles-ci ont tendance à se répéter. La physique quantique permet de créer des clés purement aléatoires.

Quand existeront des calculateurs quantiques opérationnels, la factorisation d’un grand nombre se fera très rapidement et donc le chiffrement à clés publiques sera compromis puisque, à partir d’une clé publique, on pourra calculer la clé privée correspondante en un temps acceptable.

Mais la physique quantique permet également de transmettre de manière sûre une clé secrète. Si quelqu’un tente d’observer la clé, le principe de décohérence quantique joue et on s’aperçoit qu’un espion est dans la boucle. Ainsi le chiffrement asymétrique n’aura pas à être utilisé pour transmettre la clé secrète. En utilisant le principe d’intrication quantique, la clé secrète pourrait même ne pas avoir besoin d’être transmise. Elle pourra apparaitre simultanément à deux endroits, même très éloignés.

Ceci fera l’objet du prochain article.

En conclusion

En combinant le chiffrement symétrique, type AES, pour chiffrer / déchiffrer les messages et le chiffrement asymétrique, type RSA, pour échanger la clé, on a combiné le meilleur des deux mondes, et c’est ainsi que se fait le chiffrement, en attendant que la physique quantique ne vienne bouleverser cet ordre établi.

Le conseil crypto du mois :

Bob veut envoyer, par mail un message à Alice, Alyne et Arlette, en préservant sa confidentialité. Il pourrait certes envoyer trois fois son message en procédant comme on a dit plus haut, mais il ne veut l’envoyer qu’une seule fois aux trois destinatrices, comment peut-il procéder ?

Bob demande aux trois destinatrices de son message leurs certificats numériques. Après vérification des autorités qui ont signé les certificats, il en extrait les trois clés publiques (celle d’Alice, d’Alyne et d’Arlette). Il génère sa clé secrète. Il la chiffre avec la clé publique d’Alice, ça lui donne un premier paquet, puis il chiffre sa clé secrète avec la clé publique d’Alyne, deuxième paquet et enfin il obtient un troisième paquet en chiffrant sa clé secrète avec la clé publique d’Arlette.

Il chiffre son message avec sa clé secrète.

Il joint à son message chiffré les trois paquets, et il envoie le tout aux trois destinatrices.

Chacune d’elles déchiffre le paquet qui lui est destiné avec sa clé privée, et un algorithme asymétrique, et obtient donc la clé secrète générée par Bob. Elle utilise cette clé secrète, et un algorithme symétrique, pour déchiffrer le message de Bob.

Alice, Alyne et Arlette ont donc obtenu le message en clair que bob leur a transmis chiffré.

 

 

 


< Revenir à la newsletter

Auteur: 
Gérard Peliks, ARCSI (Association des Réservistes du Chiffre et de la Sécurité de l'Information) http://www.arcsi.fr

Ajouter un commentaire

Full HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Vous pouvez utiliser du code PHP. Vous devrez inclure les tags <?php ?>.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.