Clé publique, clé privée et cryptographie asymétrique
Dans cet article, nous avons introduit les concepts de clés publiques, clés privées et les principes du chiffrement asymétrique. Nous avons comparé leurs avantages et inconvénients avec le chiffrement symétrique, ainsi que les différences dans leurs scénarios d'utilisation.
Vous avez peut-être entendu parler des clés privées et publiques dans de nombreux contextes, mais savez-vous vraiment ce qu'elles sont ?
Cryptographie asymétrique vs cryptographie symétrique
Les clés privées et publiques sont des concepts de la cryptographie asymétrique (également connue sous le nom de cryptographie à clé publique, PKC).
La cryptographie asymétrique fait référence à une méthode de chiffrement ou de signature des données en utilisant deux clés différentes (clé privée + clé publique), ce qui correspond au besoin de déchiffrement ou de vérification de signature. La clé publique est visible par tous, tandis que la clé privée est uniquement disponible pour le propriétaire de la clé. Vous pouvez facilement déduire cela des noms des clés.
De même, vous pouvez probablement deviner que la cryptographie symétrique se réfère à la méthode de chiffrement et de déchiffrement des données en utilisant la même clé.
Nous utilisons donc une annotation simple pour montrer le processus de chiffrement/déchiffrement de la cryptographie symétrique et asymétrique.
Il est important de noter que les fonctions de chiffrement/déchiffrement dans les algorithmes de chiffrement symétrique et asymétrique sont différentes et utilisent souvent des algorithmes différents. Les algorithmes de chiffrement symétrique communs incluent DES, AES, RC2, RC4, et d'autres, tandis que les algorithmes de chiffrement asymétrique courants incluent RSA et EC.
Logto utilise l'algorithme EC pour le chiffrement et le déchiffrement des transmissions de données car il est plus efficace et sûr que RSA, vous pouvez lire cet article pour plus de détails. Logto va également supporter RSA dans la prochaine version pour une meilleure compatibilité avec certains systèmes hérités.
Pourquoi utiliser la cryptographie asymétrique ?
La cryptographie asymétrique résout le problème de la distribution des clés dans la cryptographie symétrique.
Étant donné que le chiffrement symétrique utilise la même clé, la distribution de la clé sur une connexion réseau non sécurisée peut risquer d'exposer la clé à des tiers malveillants. Un tiers malveillant pourrait utiliser la clé volée pour accéder à toute information chiffrée avec cette clé, posant un risque de sécurité significatif.
Deux cas d'utilisation communs de la cryptographie asymétrique
Envoi de données chiffrées
L'expéditeur peut utiliser la clé publique du destinataire pour chiffrer les informations, et le destinataire utilise sa clé privée pour déchiffrer les informations.
Étant donné que les clés publiques sont théoriquement disponibles pour de nombreuses personnes, dans un scénario idéal, le destinataire peut recevoir des informations chiffrées de nombreux expéditeurs. De plus, plusieurs expéditeurs ne peuvent pas savoir quelles informations les autres expéditeurs ont envoyées au destinataire, car seul le destinataire (le détenteur de la clé privée) peut déchiffrer et récupérer les informations.
Les clés publiques et privées sont souvent générées simultanément. Ce que nous avons mentionné ci-dessus est la génération de clés privées et publiques sur une partie, puis la distribution de la clé publique à ses utilisateurs. Si vous devez assurer une communication sécurisée entre les deux parties, alors les deux parties doivent générer leurs propres clés privées et publiques, puis échanger leurs clés publiques respectives. De cette manière, les deux parties possèdent les clés publiques de l'autre, et elles peuvent utiliser leurs propres clés privées et la clé publique de l'autre partie pour le chiffrement et le déchiffrement.
Utilisation d'une signature pour garantir l'intégrité des données
En cryptographie asymétrique, la partie détenant la clé privée peut signer les données qu'elle envoie. Par la suite, le destinataire avec la clé publique peut vérifier la cohérence des données et de la signature à la réception des données, garantissant que les données n'ont pas été altérées pendant la transmission.
À l'aide de l'annotation que nous avons définie dans la section précédente, la signature et la vérification de la signature peuvent être représentées comme suit :
La vérification de la signature numérique prouve que la partie qui a généré la signature connaît la clé privée correspondante.
Vous trouvez probablement ces deux cas d'utilisation mentionnés ci-dessus très familiers. Dans notre vie quotidienne, presque tous les services avec une architecture client-serveur utilisent la cryptographie asymétrique pour assurer la sécurité des données.
En tant que cadre d'identité utilisateur en pleine croissance rapide, Logto utilise également largement la PKC pour garantir la sécurité des données utilisateur. Après que les utilisateurs aient terminé le processus de connexion, Logto émet un jeton d'accès aux utilisateurs pour leur accorder des autorisations spécifiques pour accéder aux ressources requises. La clé publique publiée par Logto est utilisée pour vérifier que le jeton d'accès est effectivement émis par Logto et n'a pas été altéré par des attaquants malveillants.
Inconvénients de la cryptographie asymétrique
En général, la longueur de clé pour le chiffrement symétrique est de 128 ou 256 bits, tandis que la longueur de clé pour le chiffrement asymétrique peut atteindre 4 096 bits. Cela est dû au fait que la clé privée et la clé publique sont des paires de clés mathématiquement liées et uniques. En théorie, connaître la clé publique permet de calculer la valeur de la clé privée, mais en raison de la complexité des algorithmes impliqués, cela prend souvent un temps considérable. Pour rendre la tâche de "craquer" la clé privée "impossible", l'utilisation de longueurs de clé plus longues est une approche directe.
Points à retenir
Le chiffrement asymétrique consomme plus de ressources de calcul et de temps par rapport au chiffrement symétrique pendant les calculs selon la discussion dans la section précédente. Dans les applications où la communication est fréquente, l'utilisation généralisée du chiffrement asymétrique peut impacter la performance et l'expérience utilisateur.
Dans les scénarios commerciaux, le chiffrement symétrique et asymétrique est souvent utilisé ensemble pour équilibrer la performance et la sécurité des données. Lorsque vous construisez votre propre service, vous pouvez considérer les exigences de sécurité des données à chaque étape et sélectionner les algorithmes de chiffrement appropriés en conséquence.