Cryptographie hybride

Un article de Wikipédia, l'encyclopédie libre.

Sommaire

[modifier] Principe

La cryptographie hybride fait appel aux deux grandes familles de systèmes cryptographiques : la cryptographie asymétrique et la cryptographie symétrique. Les logiciels comme PGP et GnuPG reposent sur ce concept qui permet de combiner les avantages des deux systèmes.

La cryptographie asymétrique est intrinsèquement lente de par les calculs complexes qui y sont associés alors que la cryptographie symétrique brille par sa rapidité. Toutefois, cette dernière souffre d'une grave lacune, on doit transmettre les clés de manière sécurisée (sur un canal authentifié). Pour pallier ce défaut, on recourt à la cryptographie asymétrique qui travaille avec une paire de clés : la clé privée et la clé publique.

[modifier] Chiffrement

La plupart des systèmes hybrides procèdent de la manière suivante. Une clé aléatoire est générée pour l'algorithme symétrique (3DES, IDEA, AES et bien d'autres encore), cette clé fait généralement entre 128 et 512 bits selon les algorithmes. L'algorithme de chiffrement symétrique est ensuite utilisé pour chiffrer le message. Dans le cas d'un chiffrement par blocs, on doit utiliser un mode d'opération comme par exemple CBC, cela permet de chiffrer un message de taille supérieure à celle d'un bloc. La clé aléatoire quant à elle, se voit chiffrée grâce à la clé publique du destinataire, c'est ici qu'intervient la cryptographie asymétrique (RSA ou Diffie-Hellman). Comme la clé est courte, ce chiffrage prend peu de temps. Chiffrer l'ensemble du message avec un algorithme asymétrique serait bien plus lourd, c'est pourquoi on préfère passer par un algorithme symétrique. Il suffit ensuite d'envoyer le message chiffré avec l'algorithme symétrique et accompagné de la clé chiffrée correspondante. Le destinataire déchiffre la clé asymétrique avec sa clé privée et via un déchiffrement symétrique, retrouve le message.

[modifier] Authentification

Il est très courant d'ajouter des authentifications et des signatures aux messages envoyés. On utilise pour cela des fonctions de hachage (MD5, SHA-1 ou des codes authentificateurs comme HMAC).

[modifier] Voir aussi

Autres langues