Что определяет алгоритм хеширования clearsign, используемый GnuPG?

1211
social_loser

При использовании GnuPG для очистки подписи текста в подписанном сообщении есть часть хеша. Возьмите пример:

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256  abc -----BEGIN PGP SIGNATURE-----  iQEzBAEBCAAdFiEEZZvqE5j3koIxs9Xim0+E4a5Vo2cFAlkRdvQACgkQm0+E4a5V o2ew2QgAzHuvZ7Hlb6+3qRLjc9Yhdi+6tBmNWXbWpKoAQxpzx6jKQp/FSpQeGWuj RxcYnqU3pk4ycMLtaCFcfnHEW5N0B95eXGcurgMGz7A6xhy0hy25x8WBdeKVAQ+2 PLA2ytJLUn2L1S3ueqJWcdVUBRaiczOOsYvvO ... ...  -----END PGP SIGNATURE----- 

Но алгоритм хеширования различен для разных ключей (или серверов), иногда SHA1, иногда SHA256, SHA512.

От чего зависит этот ключ или клиент GnuPG? Я не могу найти информацию об этом, когда вы используете gpgсоздание новых ключей, нет возможности указать алгоритм хеширования.

Обновление: чтобы уточнить мой вопрос, я добавил дополнительную информацию ниже. Команда, использованная для генерации вышеприведенного примера:

gpg --clearsign 

(Версия gpg - gpg2 в моей системе.)

Затем я набрал какой-то случайный текст, и результат выше. Я хочу знать, как генерировать вывод с конкретными значениями "Hash:"? скажи, SHA1?

3
[--Digest-алго] (https://www.gnupg.org/gph/en/manual/r2029.html) dave_thompson_085 6 лет назад 1
@ dave_thompson_085 Вот и все, спасибо! social_loser 6 лет назад 0
и "--personal-digest-Preferences" тоже работает. social_loser 6 лет назад 0
@ dave_thompson_085: Это было единственное решение, которое сработало для меня. Peter V. Mørch 5 лет назад 0

3 ответа на вопрос

1
Seth

В этом случае должно происходить то, что вы генерируете хеш для сообщения и используете ключ для его шифрования. Другая сторона использует противоположный ключ для дешифрования хеша, строит хеш сообщения и сравнивает его с хешем, который вы прикрепили.

Для контрагента важно знать, какой тип хеша вы использовали, но нет прямой связи между ключами и хешем.

шифрования нет, только команда "gpg --clearsign", я обновил свой пост, чтобы прояснить вопрос. social_loser 6 лет назад 0
Да, шифрование есть, потому что так оно и есть. Также см. [Это] (http://www.developer.com/java/ent/article.php/3092771/How-Digital-Signatures-Work-Digitally-Signing-Messages.htm) и особенно [этот рисунок] (http : //www.developer.com/img/articles/2003/10/16/DigDocSign01.gif) для более общего обзора. Посмотрите [это] (https://lists.gnupg.org/pipermail/gnupg-users/2013-August/047264.html) для получения более подробной информации. Seth 6 лет назад 0
ссылки, которые вы предоставили, очень полезны, теперь я понимаю. Ваш ответ объясняет теорию, а ответ Йенса Эрата объясняет ее под другим углом, это моя вина, мой вопрос неопределенный, и мой английский плохой, вы оба хороши, но я должен выбрать один. Я решил выбрать ответ Erat, большое спасибо. Извините за мой плохой английский. social_loser 6 лет назад 0
Это совершенно нормально. Это ваше решение, ответ на самом деле отвечает на ваш вопрос. Дополнительное владение английским языком не является обязательным условием для того, чтобы задать или ответить на вопрос. Хотя обычно это помогает. ;-) Если вы найдете ответ полезным, вы также можете рассмотреть [upvoting] (https://superuser.com/help/someone-answers). Нет причин говорить кому-либо, почему вы выбрали ответ. Также проверьте ответ для получения дополнительной информации о том, что делать, если кто-то отвечает на вопрос. Голосование должно быть одной из последних [привилегий] (https://superuser.com/help/privileges), которые вы заработали. Seth 6 лет назад 0
0
Jens Erat

Алгоритм хеширования выбирается реализацией OpenPGP, в вашем случае GnuPG. Какой из них выбран

Для шифрования сообщений дополнительно учитываются предпочтения получателя, хранящиеся в открытом ключе.

Я обновил свой вопрос, не могли бы вы сказать мне, как сделать команду "gpg --clearsign", чтобы генерировать вывод с определенным значением "Hash"? social_loser 6 лет назад 0
Я нашел его, просто добавив "--personal-digest-Preferences Sha512", чтобы изменить хэш Sha512! social_loser 6 лет назад 1
Лучше предоставить несколько вариантов, так как различные предпочтения будут объединены. Если вы предоставляете только «sha512», а другая сторона указывает на то, что он не поддерживается, вам останется [минимум SHA1 или даже MD5] (https://tools.ietf.org/html/rfc4880#section-9.4 ). Jens Erat 6 лет назад 0
0
osexp2003

краткий ответ: добавьте следующую опцию в команду gpg

--s2k-digest-algo SHA256 

Конечно, SHA256 можно изменить на SHA512 ... см. Доступный алгоритм в gpg --version

Образец:

$ gpg -a --yes --clearsign --s2k-digest-algo SHA256 --output dists/xenial/InRelease --local-user a@b.c --detach-sign dists/xenial/Release  $ grep -i hash dists/xenial/InRelease Hash: SHA256