Comparer les deux directement, c'est un peu comme comparer un tracteur à un train - ce sont tous les deux des véhicules mais ont une fonction et une construction complètement différentes.
RSA est un chiffre asymétrique. Il est idéal pour l'échange sécurisé de messages sur un réseau non approuvé, car la clé publique peut être connue de tous - un message chiffré avec la clé publique ne peut être déchiffré que par la clé privée. En tant que tel, si deux parties connaissent les clés publiques de l'autre, elles peuvent échanger des messages en toute sécurité. Cela signifie qu'aucune information secrète ne doit être transmise - tant que l ' authenticité et l'intégrité sont maintenues, vous êtes en sécurité. Heureusement, RSA fournit une méthode de génération de signatures sur les données, qui aident à prouver leur authenticité. Étant donné un message signé par une clé privée, il est possible de vérifier cette signature à l'aide de la clé publique correspondante.
En règle générale, vous ne pouvez chiffrer que des données aussi grandes que la longueur de la clé RSA. Ainsi, si vous disposez d'une clé RSA de 4096 bits, vous ne pouvez crypter que des messages d'une longueur maximale de 4096 bits. Non seulement cela, mais c'est incroyablement lent. RSA n'est pas conçu comme un chiffrement de transport de données à pleine vitesse.
AES est un chiffrement par blocs symétriques, et est incroyablement rapide. Le texte brut est divisé en morceaux appelés blocs, et chaque bloc est chiffré dans une chaîne. Il existe différentes façons de faire cela, mais une méthode courante est appelée Cipher Block Chaining, ou CBC en abrégé. Cela permet des tailles de message théoriquement infinies. Cependant, les chiffrements symétriques comme AES nécessitent d'abord une clé secrète pour être échangés. Contrairement à RSA, la clé partagée doit rester inconnue des attaquants, vous devez donc garantir l'authenticité, l'intégrité et le secret. C'est difficile à faire directement.
Ce que vous aurez tendance à trouver, c'est que les deux schémas sont implémentés ensemble, de sorte que RSA est utilisé pour échanger la clé contre un chiffrement par bloc comme AES :
- Alice et Bob connaissent les clés publiques RSA de chacun. En général, ceux-ci sont échangés hors bande, par ex. via un certificat en cours de déploiement dans le cadre de votre système d'exploitation.
- Alice choisit une clé aléatoire de 256 bits pour AES et crypte cette clé avec la clé publique de Bob. Elle signe ce message avec sa clé privée et l'envoie à Bob.
- Bob utilise la clé publique d'Alice pour vérifier la signature. Il utilise ensuite sa clé privée pour déchiffrer le message.
- Eve (une espionne) a vu le message chiffré, mais ne peut pas le déchiffrer sans connaître la clé privée de Bob. Elle ne peut pas non plus modifier le message, car cela rendrait la signature incorrecte. Elle ne peut pas régénérer une signature valide sans connaître la clé privée d'Alice.
- Alice et Bob partagent maintenant une clé secrète de 256 bits et l'utilisent pour crypter les messages à l'aide d'un chiffrement symétrique, tel qu'AES.
Cela répond à quelques exigences:
- La conversation peut avoir lieu sur un réseau non approuvé sans qu'un attaquant puisse lire les messages.
- L'échange de clé de session peut être effectué de manière sûre, c'est-à-dire que l'authenticité et l'intégrité sont maintenues sur la clé.
- Les performances de cryptage et de décryptage des données de conversation réelles sont très bonnes.
En termes de niveau de sécurité, comparer RSA et AES n'a pas vraiment de sens. Ils font des tâches différentes. Nous supposons actuellement que les clés AES 128 bits sont sûres et que les clés RSA 2048 bits sont sûres, mais cela dépend entièrement des exigences de sécurité individuelles. L'utilisation de clés AES 256 bits et RSA 4096 bits devrait être plus que suffisante pour la prochaine décennie, en supposant que l'implémentation soit solide.
Notez que tout cela est une simplification, car il y a beaucoup de mises en garde et de détails impliqué, et décrire l'échange RSA comme un "cryptage" n'est pas strictement correct, mais dans l'ensemble, cela devrait être un aperçu de haut niveau raisonnable de la façon dont les deux types de crypto fonctionnent.