Чи містять блоки приватного ключа PGP також відкритий ключ?


13

Я помітив, що якщо я імпортую свій приватний ключ з броньованим ASCII PGP в інакше порожній брелок GnuPG ( ~/.gnupgпопередньо видаливши ), брелок містить як відкритий, так і приватний ключі. Крім того, броньований блок приватних ключів ASCII приблизно вдвічі перевищує розмір мого аналога відкритого ключа, що призводить мене до того, що блок приватного ключа містить і приватний, і відкритий ключі, тоді як блок відкритого ключа містить лише останній.

Оскільки я створив свій ключ, до цього часу я створив резервну копію своїх ключів одним файлом, що містить мій експортований блок приватних ключів, а іншим - експортованим блоком відкритого ключа. Чи є резервна копія блоку відкритих ключів зайвою, і я не знаю, я просто зберігаю файл приватного ключа?

Я використовую цю команду для створення файлу приватного ключа:

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

і ця команда для створення файлу відкритого ключа:

gpg --export -a > public

1
Щоб хтось відповів на ваше запитання, вам потрібно буде додати команди, які використовуєте для експорту ваших ключів. Відповідь, мабуть, у тому. Але що б ви могли отримати, не експортуючи відкритий ключ? Я б сказав, що залиште це у своєму режимі резервного копіювання, він нічого не коштує і для будь-яких цілей, де вам потрібен лише відкритий ключ, у вас він уже є.
Брам

Дякую Брам; Я відредагував це питання для додаткової ясності. І так, економія ~ 3 Кб не має реальної користі, мені просто цікаво.
Делан Азабані

Відповіді:


15

Так, пакети "секретний ключ" та "секретний підрозділ" OpenPGP містять як загальні, так і приватні параметри. Ви можете перевірити це за допомогою pgpdump для вивчення експортованого ключа:

$ gpg - експортно-секретний ключ grawity | pgpdump
Старий: Пакет секретних ключів (тег 5) (1854 байт)
    Вер 4 - новий
    Час створення відкритого ключа - Сб 31 жовтня 14:54:03 EET 2009
    Pub alg - RSA Encrypt or Sign (паб 1)
    RSA n (4096 біт) - ...
    RSA e (17 біт) - ...
    Sym alg - CAST5 (sym 3)
    Ітераційна та солона рядок до ключа (s2k 3):
        Хеш-алг - SHA1 (хеш-2)
        Сіль - 12 24 0f e1 5b 7e e2 46 
        Кількість - 65536 (кодована кількість 96)
    IV - 91 a3 44 71 47 87 a4 ба 
    Зашифровані RSA d
    Зашифровані RSA стор
    Зашифровані RSA q
    Зашифровані RSA u
    Зашифрований хеш SHA1

Це справедливо для більшості асиметричних систем ключів, а не лише для OpenPGP.


Я не думаю, що це правда для блоків RSA PUBLIC KEY та RSA SECRET KEY, кодованих PEM.
vy32

2
@ vy32: Це не ключі OpenPGP, тому це не має значення. Але це все ще вірно і для тих. (Зверніть увагу , як openssl genrsaвиводить тільки «приватний» блок, таким чином , громадський блок може бути отриманий з нього.) Ви можете вивчити їх самостійно: openssl genrsa 512 | openssl asn1parse -i. Або перевірте RFC 3447 Додаток A, який чітко показує модуль & publicExponent в структурі RSAPrivateKey.
користувач1686
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.