Cryptosystèmes et outils cryptographiques de base
En raison de la croissance rapide de la communication numérique et du transfert électronique de données, la sécurité de l'information est devenue une question cruciale dans l'industrie, le commerce et l'administration. La cryptographie moderne fournit des techniques essentielles pour sécuriser les informations et protéger les données.
Le service de base fourni par la cryptographie est la possibilité d'envoyer des informations entre les participants d'une manière qui empêche les autres de les lire.
La cryptographie est la science qui traite de la communication en présence d’adversaire. Le but d’un système cryptographique est de chiffrer un texte clair P en un cryptogramme C au moyen d’une clé K.
Cryptosystèmes et outils cryptographiques de base
Cryptosystèmes à clé secrète
La cryptographie est utilisée depuis des milliers d'années pour aider à fournir des communications confidentielles entre des parties de confiance mutuelle. Dans sa forme la plus basique, deux personnes, souvent désignées par Alice et Bob, se sont mises d'accord sur une clé secrète particulière. Plus tard, Alice peut souhaiter envoyer un message secret à Bob (ou Bob peut vouloir envoyer un message à Alice). La clé est utilisée pour transformer le message d'origine (qui est généralement appelé le texte en clair) en une forme cryptée qui est inintelligible pour quiconque ne possède pas la clé. Ce processus est appelé chiffrement et le message brouillé est appelé texte chiffré. Lorsque Bob reçoit le texte chiffré, il peut utiliser la clé pour retransformer le texte chiffré en texte brut d'origine ; c'est le processus de décryptage. Un cryptosystème constitue une spécification complète des clés et de la façon dont elles sont utilisées pour crypter et décrypter les informations.
Divers types de cryptosystèmes de plus en plus sophistiqués ont été utilisés à de nombreuses fins au cours de l'histoire. Parmi les applications importantes, citons les communications sensibles entre dirigeants politiques, les manœuvres militaires, etc. Cependant, avec le développement d'Internet et d'applications telles que le commerce électronique, de nombreuses applications nouvelles et variées sont apparues. Celles-ci comprennent des scénarios tels que le cryptage des mots de passe, des numéros de carte de crédit, des courriels, des documents, des fichiers et des médias numériques.
Le développement et le déploiement d'un système de cryptographie doivent aborder la question de la sécurité. Traditionnellement, la menace à laquelle la cryptographie faisait face était celle d'un adversaire qui écoutait aux portes et qui pouvait intercepter le texte chiffré et tenter de le déchiffrer. Si l'adversaire possède la clé, il n'y a rien à faire. Par conséquent, le principal problème de sécurité concerne un adversaire qui ne possède pas la clé et qui tente toujours de déchiffrer le texte chiffré. Les techniques utilisées par l'adversaire pour tenter de "casser" le cryptosystème sont appelées cryptanalyse.
L'inconvénient de la cryptographie à clé secrète est qu'Alice et Bob doivent pouvoir s'entendre sur la clé secrète à l'avance (avant de vouloir s'envoyer des messages). Cela peut être simple si Alice et Bob sont au même endroit lorsqu'ils choisissent leur clé secrète. Mais que se passe-t-il si Alice et Bob sont éloignés, par exemple sur différents continents ? Une solution possible est qu'Alice et Bob d'utiliser un système de cryptage à clé publique.
Cryptosystèmes à clé publique
L'idée révolutionnaire de la cryptographie à clé publique a été introduite dans les années 1970 par Diffie et Hellman. Leur idée était qu'il serait possible de concevoir un cryptosystème dans lequel il y a deux clés distinctes. Une clé publique serait utilisée pour chiffrer le texte en clair et une clé privée permettrait de déchiffrer le texte chiffré. Notez qu'une clé publique peut être connue de « tout le monde », alors qu'une clé privée n'est connue que d'une seule personne (à savoir, le destinataire du message crypté). Ainsi, un système de chiffrement à clé publique permettrait à n'importe qui de chiffrer un message à transmettre à Bob, disons, et seul Bob pourrait déchiffrer le message. Le premier exemple, et le plus connu, de système de cryptage à clé publique est le système RSA, inventé par Rivest, Shamir et Adleman.
La cryptographie à clé publique évite la nécessité pour les deux parties de se mettre d'accord sur une clé secrète partagée préalable. Cependant, il est encore nécessaire de concevoir une méthode pour distribuer les clés publiques de manière sécurisée. Mais ce n'est pas nécessairement un objectif trivial à atteindre, le principal problème étant l'exactitude ou l'authenticité des prétendues clés publiques. Les certificats sont une méthode courante pour traiter ce problème.
Chiffrements par blocs et par flux
Les cryptosystèmes sont généralement classés comme des chiffrements par bloc ou des chiffrements par flux. Dans un chiffrement par bloc, le texte en clair est divisé en morceaux de taille fixe appelés blocs. Un bloc est spécifié comme une chaîne de bits (c'est-à-dire une chaîne de 0 et de 1) d'une longueur fixe (par exemple, 64 ou 128 bits). Un chiffrement par bloc cryptera (ou déchiffrera) un bloc à la fois. En revanche, un chiffrement de flux utilise d'abord la clé pour construire un flux de clés, qui est une chaîne de bits qui a exactement la même longueur que le texte en clair (le texte en clair est une chaîne de bits de longueur arbitraire). L'opération de chiffrement construit le texte chiffré en tant que ou exclusif du texte en clair et du flux de clés. Le déchiffrement est accompli en calculant le ou exclusif du texte chiffré et du flux de clés. Les cryptosystèmes à clé publique sont invariablement des chiffrements par blocs, tandis que les cryptosystèmes à clé secrète peuvent être des chiffrements par blocs ou des chiffrements par flux.
Cryptographie hybride
L'un des inconvénients des cryptosystèmes à clé publique est qu'ils sont beaucoup plus lents que les cryptosystèmes à clé secrète. En conséquence, les cryptosystèmes à clé publique sont principalement utilisés pour crypter de petites quantités de données, par exemple un numéro de carte de crédit. Cependant, il existe un bon moyen de combiner la cryptographie à clé secrète et à clé publique pour obtenir les avantages des deux. Cette technique est appelée cryptographie hybride. Supposons qu'Alice veuille crypter un message « long » et l'envoyer à Bob. Supposons qu'Alice et Bob n'aient pas de clé secrète partagée antérieure. Alice peut choisir une clé secrète aléatoire et crypter le texte en clair, en utilisant un système de cryptographie à clé secrète (rapide). Alice crypte ensuite cette clé secrète à l'aide de la clé publique de Bob. Alice envoie le texte chiffré et la clé chiffrée à Bob. Bob utilise d'abord sa clé de déchiffrement privée pour déchiffrer la clé secrète, puis il utilise cette clé secrète pour déchiffrer le texte chiffré.