Q: Si vous pédalez en arrière sur un poisson, est-ce qu'il recule?
UNE: ???
Un poisson n'est pas un vélo. De même, vous ne pouvez pas utiliser une clé privée pour crypter un message ou une clé publique pour décrypter un message. Ils n'ont pas le bon équipement.
Avec RSA , qui est un cryptosystème à clé publique populaire mais pas le seul, la clé privée et la clé publique ont les mêmes propriétés mathématiques, il est donc possible de les utiliser de manière interchangeable dans les algorithmes. (Ils n'ont pas les mêmes propriétés de sécurité, cependant - la clé publique est généralement facilement devinable à partir de la clé privée.) Vous pouvez prendre un algorithme de chiffrement RSA et lui donner une clé privée, ou un algorithme de déchiffrement RSA et le nourrir un public clé. Cependant, les résultats ne sont pas significatifs selon les algorithmes standard.
Cette symétrie entre les clés publiques et les clés privées ne s'étend pas à la plupart des autres cryptosystèmes à clé publique. En général, la clé publique n'est pas le bon type d'objet mathématique à utiliser pour l'algorithme de décryptage, et la clé privée n'est pas le bon type d'objet mathématique à utiliser pour l'algorithme de cryptage.
Cela dit, les cryptosystèmes à clé publique sont basés sur le concept de fonctions de trappe . Une fonction unidirectionnelle est une fonction facile à calculer, mais dont l'inverse est difficile à calculer. Une fonction de trappe est comme une fonction à sens unique, mais il existe une valeur «magique» qui rend l'inverse facile à calculer.
Si vous avez une fonction de trappe, vous pouvez l'utiliser pour créer un algorithme de chiffrement à clé publique: à l'avenir (dans la direction la plus simple), la fonction crypte; en reculant (dans la direction difficile), la fonction décrypte. La valeur magique requise pour déchiffrer est la clé privée.
Si vous avez une fonction de trappe, vous pouvez également l'utiliser pour créer un algorithme de signature numérique : en reculant (dans la direction difficile), la fonction signe ; aller de l'avant (dans la direction facile), la fonction vérifie une signature. Encore une fois, la valeur magique requise pour signer est la clé privée.
Les fonctions de trappe viennent généralement dans les familles; les données nécessaires pour spécifier un élément particulier de la famille sont la clé publique.
Même si le chiffrement à clé publique et les signatures numériques reposent sur les mêmes concepts, ils ne sont pas strictement identiques. Par exemple, la fonction de trappe RSA est basée sur la difficulté d'annuler une multiplication à moins que vous ne connaissiez déjà l'un des facteurs. Il existe deux familles courantes de schémas de chiffrement à clé publique basés sur RSA , appelés PKCS # 1 v1.5 et OAEP. Il existe également deux familles courantes de schémas de signature numérique basés sur RSA, appelés PKCS # 1 v1.5 et PSS. Les deux «PKCS # 1 v1.5» sont de conception similaire, mais ils ne sont pas identiques. Cette réponse de Thomas Pornin et cette réponse de Maarten Bodewes détaillent la différence entre signature / vérification et déchiffrement / chiffrement dans le cas de RSA.
Méfiez-vous que certaines présentations profanes de la cryptographie à clé publique masquent la signature numérique et la vérification en tant que décryptage et cryptage, pour des raisons historiques: RSA a été popularisé en premier, et le fonctionnement principal de RSA est symétrique. (L'opération principale de RSA, connue sous le nom de «manuel RSA», est l'une des étapes d'un algorithme de signature / vérification / chiffrement / déchiffrement RSA, mais elle ne constitue pas en soi un algorithme de signature, de vérification, de chiffrement ou de déchiffrement.) Ils sont symétriques de la vue 10000 pieds, mais ils ne sont pas symétriques une fois que vous entrez dans les détails.
Voir aussi Réduction des signatures au chiffrement? , ce qui explique que vous pouvez créer un schéma de chiffrement à partir d'un schéma de signature, mais uniquement sous certaines conditions.