web-dev-qa-db-fra.com

Cryptage AES, quelles sont les clés publiques et privées?

Dans le chiffrement AES (framework .net), comment les clés publiques et privées sont-elles utilisées?

Les clés publiques et privées sont-elles combinées pour former une clé complète, puis l'algorithme utilise-t-il la clé publique + privée pour chiffrer les données?

(clés simplifiées utilisées ci-dessous à titre d'exemple)

par exemple. clé publique = 12345 clé privée = 67890

la clé utilisée lors de la génération du résultat de chiffrement est donc: 1234567890

27
YOYO

Comme d'autres l'ont dit, AES est un algorithme symétrique ( cryptographie à clé privée ). Cela implique une clé unique qui est un secret partagé entre l'expéditeur et le destinataire. Une analogie est une boîte aux lettres verrouillée sans un emplacement de messagerie. Quiconque souhaite laisser ou lire un message doit avoir une clé dans la boîte aux lettres.

Si vous voulez vraiment connaître les détails sanglants d'AES, il y a un superbe dessin animé pour vous guider sur le chemin.

Cryptographie à clé publique implique deux clés associées pour chaque destinataire impliqué - une clé privée qui est un secret connu seulement du destinataire et une clé publique associée connue de tous les expéditeurs.

L'expéditeur crypte le message à l'aide de la clé publique du destinataire. Ce message ne peut être déchiffré que par un destinataire avec une clé privée correspondant à la clé publique.

Une analogie pour le cryptage à clé publique est une boîte aux lettres verrouillée avec un emplacement de messagerie. La fente à courrier est exposée et accessible au public. Son emplacement (l'adresse municipale) est la clé publique. Toute personne connaissant l'adresse peut aller à la porte et déposer un message écrit dans la fente. Mais seule la personne qui possède la clé privée peut ouvrir la boîte aux lettres et lire le message.

88
RoadWarrior

AES est un algorithme symétrique, il n'a donc pas de clés publiques et privées - seulement un secret partagé.

23
Martin v. Löwis

Une clé publique est liée à une clé privée. La clé publique ( RSA ) est distribuée au 'wild' et toute personne qui souhaite envoyer un fichier crypté (génériquement parlant ici), elle demandera au public clé et encoder contre elle. Le cypertexte est illisible pour quiconque accède au fichier, même s'il possède la clé publique.

La clé privée est nécessaire pour décoder le fichier. Tant que la clé privée est maintenue privée, il est statiquement improbable que quiconque devine ou pirate la clé. Improbable, pas impossible.

Le vrai problème est de garder la clé privée privée. La plupart des fissures sont faites avec piratage social . L'extorsion, les enregistreurs et la conversion de clé publique monkey-in-the-middle sont d'autres moyens plus probables que le forçage brutal du mot de passe ou de la clé.

Dans votre commentaire à Brawndo, vous avez demandé

quel est l'intérêt d'avoir une clé publique et privée alors si les deux peuvent décrypter les autres? Pourquoi pas les deux ont la même clé?

Ce que vous décrivez, ce sont des algorithmes à clé symétrique, qui AES en est un. La raison des clés publiques-privées est qu'avec les algorithmes à clé symétrique, comment passez-vous une clé symétrique sur des réseaux non sécurisés, courrier, téléphone ou autre sans que la clé ne soit interceptée. Peut-être en cryptant la clé, mais comment transmettre cette clé? Avec un combo clé publique-privée, cela devient MOINS pertinent.

"Dans la plupart des cas, il y a une plus grande probabilité que le soleil s'éteigne avant que tous les ordinateurs du monde puissent prendre en compte toutes les informations nécessaires pour forcer une clé de 256 bits", a déclaré Jon Hansen, vice-président du marketing pour AccessData. Corp, la société de Lindon, Utah, qui a construit le logiciel qui alimente l'ADN.

3
WolfmanDragon

Je ne sais pas comment fonctionne spécifiquement le framework .net (la question aurait probablement dû être taguée .net) mais d'après votre question, il semble qu'il implémente la cryptographie à clé publique/privée, en utilisant simplement AES pour son composant symétrique.

Le mode habituel de chiffrement par clé publique consiste à

  • Générer une clé symétrique
  • Chiffrez les données avec cette clé, en utilisant un algorithme symétrique comme AES.
  • Chiffrez la clé symétrique avec la clé publique, en utilisant un algo asymétrique comme RSA.
  • Regroupez la clé sym cryptée avec les données cryptées

La raison pour laquelle les algos symétriques sont préférés pour les données elles-mêmes est que les algos asymétriques sont très lents.

Étant donné qu'ils ne pouvaient pas tester la sécurité (tout ce qu'ils avaient vraiment était l'absence de pauses, pour plusieurs des candidats), la raison du choix de Rijndael pour AES était (principalement) liée aux performances.

3
MaHuJa

Sous la forme la plus simple:

AES est un algorithme symétrique, il utilise la même clé pour le chiffrement et le déchiffrement, donc celui qui a la clé peut lire votre message.

La clé privée et publique est pour les alogorithmes asymétriques comme RSA, normalement les gens utilisent la clé publique pour crypter et la clé privée pour décrypter (seuls HMAC ou MAC utiliseront la clé privée pour crypter et la clé publique pour décrypter) .La clé publique est connue de tous , la clé privée n'est connue que de vous, donc personne ne peut lire le message qui vous est envoyé.

2
Shuyi