Apakah kunci pribadi PGP memblokir "mengandung" kunci publik juga?

13

Saya perhatikan bahwa jika saya mengimpor kunci privat PGP lapis baja ASCII saya ke dalam keyring GnuPG yang kosong (dengan menghapus ~/.gnupgsebelumnya), keyring itu berisi kunci publik dan privat. Juga, blok kunci pribadi lapis baja ASCII adalah sekitar dua kali ukuran rekan kunci publik saya, yang membuat saya percaya bahwa blok kunci privat berisi kunci privat dan publik, sedangkan blok kunci publik hanya berisi yang terakhir.

Sejak saya membuat kunci saya, sampai sekarang, saya telah membuat cadangan kunci saya dengan satu file yang berisi blok kunci pribadi saya yang diekspor, dan yang lainnya dengan blok kunci publik saya yang diekspor. Apakah cadangan blok kunci publik saya berlebihan, dan apakah karena itu saya aman hanya menyimpan file kunci pribadi?

Saya menggunakan perintah ini untuk membuat file kunci pribadi:

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

dan perintah ini untuk membuat file kunci publik:

gpg --export -a > public
Delan Azabani
sumber
1
Agar seseorang dapat menjawab pertanyaan Anda, Anda perlu menambahkan perintah yang Anda gunakan untuk mengekspor kunci Anda. Jawabannya mungkin dalam hal itu. Tetapi apa yang akan Anda dapatkan dengan tidak mengekspor kunci publik? Saya akan mengatakan biarkan dalam rutinitas cadangan Anda, tidak ada biaya apa pun dan untuk setiap tujuan di mana Anda hanya perlu kunci publik yang sudah Anda miliki tersedia.
Bram
Terima kasih, Bram; Saya telah mengedit pertanyaan untuk kejelasan ekstra. Dan ya, menabung ~ 3 KB tidak memiliki manfaat nyata, saya hanya ingin tahu.
Delan Azabani

Jawaban:

15

Ya, paket "kunci rahasia" dan "kunci rahasia" OpenPGP berisi parameter publik dan pribadi. Anda dapat memverifikasi ini dengan menggunakan pgpdump untuk memeriksa kunci yang diekspor:

$ gpg - ekspor-rahasia-kunci grawity | pgpdump
Lama: Secret Key Packet (tag 5) (1854 bytes)
    Ver 4 - baru
    Waktu pembuatan kunci publik - Sat 31 Okt 14:54:03 EET 2009
    Pub alg - Enkripsi atau Tanda RSA (pub 1)
    RSA n (4096 bit) - ...
    RSA e (17 bit) - ...
    Sym alg - CAST5 (sym 3)
    Iterasi dan asin string-to-key (S2 2):
        Hash alg - SHA1 (hash 2)
        Garam - 12 24 0f e1 5b 7e e2 46 
        Hitung - 65536 (hitung kode 96)
    IV - 91 a3 44 71 47 87 a4 ba 
    RSA terenkripsi d
    RSA terenkripsi hal
    RSA terenkripsi q
    RSA terenkripsi u
    Hash SHA1 terenkripsi

Ini berlaku untuk sebagian besar sistem kunci asimetris, bukan hanya OpenPGP.

pengguna1686
sumber
Saya tidak berpikir bahwa itu benar untuk blok RSA PUBLIC KEY yang dikodekan PEM dan kunci RAHASIA RSA.
vy32
2
@ vy32: Itu bukan kunci OpenPGP jadi tidak relevan. Tapi, itu masih berlaku bagi mereka juga. (Perhatikan bagaimana openssl genrsaoutput hanya "pribadi" blok, sehingga blok publik dapat diturunkan dari itu.) Anda dapat memeriksa mereka sendiri: openssl genrsa 512 | openssl asn1parse -i. Atau periksa RFC 3447 Lampiran A yang jelas menunjukkan modulus & publicExponent dalam struktur RSAPrivateKey.
user1686