Les blocs de clés privées PGP "contiennent-ils" également la clé publique?

11

J'ai remarqué que si j'importais ma clé privée PGP avec armure ASCII dans un trousseau de clés GnuPG, par ailleurs vide, (en les supprimant ~/.gnupgau préalable), ce trousseau contient à la fois les clés publique et privée. En outre, le bloc de clés privées blindées en ASCII représente environ deux fois la taille de mon équivalent de clé publique, ce qui me porte à croire que le bloc de clés privées contient à la fois les clés privée et publique, alors que le bloc de clés publiques ne contient que ces dernières.

Depuis que j'ai créé ma clé, jusqu'à maintenant, j'ai sauvegardé mes clés avec un fichier contenant mon bloc de clé privée exporté et un autre avec mon bloc de clé publique exporté. Ma sauvegarde par bloc de clé publique est-elle redondante et suis-je donc en sécurité en ne conservant que le fichier de clé privée?

J'utilise cette commande pour créer le fichier de clé privée:

gpg --export-secret-keys -a > private

et cette commande pour créer le fichier de clé publique:

gpg --export -a > public
Delan Azabani
la source
1
Pour que quelqu'un réponde à votre question, vous devez ajouter les commandes que vous utilisez pour exporter vos clés. La réponse est probablement dans cela. Mais que gagneriez-vous en n'exportant pas la clé publique? Je dirais que laissez-le dans votre routine de sauvegarde, cela ne coûte rien et pour tous les cas où vous n'avez besoin que de la clé publique, vous l'avez déjà.
Bram le
Merci Bram J'ai modifié la question pour plus de clarté. Et oui, économiser ~ 3 Ko n'a aucun avantage réel, je suis simplement curieux.
Delan Azabani

Réponses:

12

Oui, les paquets "clé secrète" et "sous-clé secrète" d'OpenPGP contiennent des paramètres publics et privés. Vous pouvez le vérifier en utilisant pgpdump pour examiner la clé exportée:

$ gpg --export-secret-key grawity | pgpdump
Ancien: Paquet de clés secrètes (étiquette 5) (1854 octets)
    Ver 4 - nouveau
    Heure de création de la clé publique - Samedi 31 octobre 14:54:03 EET 2009
    Pub alg - RSA Encrypt or Sign (pub 1)
    RSA n (4096 bits) - ...
    RSA e (17 bits) - ...
    Sym alg - CAST5 (sym 3)
    Chaîne à clé itérée et salée (s2k 3):
        Hachage alg
        Sel - 12 24 0f e1 5b 7e e2 46 
        Nombre - 65 536 (nombre codé 96)
    IV - 91 a3 44 71 47 87 a4 ba 
    RSA crypté d
    P RSA crypté
    RSA chiffré
    RSA crypté
    Hachage SHA1 crypté

Ceci est vrai pour la plupart des systèmes à clés asymétriques, pas seulement OpenPGP.

Grawity
la source
Je ne pense pas que ce soit le cas pour les blocs RSA PUBLIC KEY et RSA SECRET KEY codés PEM.
vy32
2
@ vy32: Ce ne sont pas des clés OpenPGP, donc ce n'est pas pertinent. Mais, cela reste vrai pour ceux-là aussi. (Notez comment openssl genrsane sort que le bloc « privé », de sorte que le bloc du public peut être dérivé.) Vous pouvez les examiner vous - même: openssl genrsa 512 | openssl asn1parse -i. Ou consultez la RFC 3447 Annexe A qui indique clairement le module et publicExponent dans la structure RSAPrivateKey.
Grawity