
я нашелэтот относительно старый вопросо том, какой алгоритм является предпочтительным для подписи и шифрования с помощью GnuPG — RSA или DSA.
При использовании gpg --gen-key
два соответствующих варианта — либо «RSA и RSA», либо «DSA и Elgamal». Какой из них имеет более сильный алгоритм шифрования? Что изменилось с 2009 года?
решение1
Надежные рекомендации
Когда на момент написания последнего поста еще шли дебаты об изменении алгоритмов по умолчаниювсе еще находится в веб-архивекоторый имел грубый консенсус,перейти на ключи RSA 2kкак было выполнено по умолчанию.
Дебианрекомендует использовать в своем документе ключ RSA 4kоб использовании подключейиdebian-ключиФайл readme. Подавляющее большинство из примерно трех четвертей ключей в связке ключей разработчиков Debian (все еще) — это DSA/Elgamal (подсчитано с помощью grepping в выводе gpg).
В интервью iX (немецкий журнал по компьютерным наукам, выпуск 11/2013, такжедоступно онлайн бесплатно), изобретатель PGPФил Циммерманнрекомендует "не менее 3k длины при использовании RSA", хотя ключи длиной 1k пока не взломаны. Но они "в пределах досягаемости злоумышленников, богатых ресурсами".
По вопросам безопасности
На данный момент оба варианта считаются безопасными для ключей адекватного размера (рекомендуется 4К для RSA, необходимо 2К для DSA2, в противном случае вам придется использоватьDSA1, который использует SHA-1).
Для выбораДлина ключа RSA, посмотри наобзор фактической прочности, предоставленный NIST(стр. 64). Легко видеть, что прочность не растет линейно с длиной ключа (и временем вычислений), поэтому двойной размер не означает «двойную безопасность».
Там былпроблема с реализацией DSA OpenSSL на Debian, но это было вызвано использованием неверных случайных данных и могло произойти и с RSA.
Выбор между RSA и DSA2
про RSA
- RSA более распространен, хотя и не обязателен в стандарте OpenPGP, все основные реализации могут с ним работать; DSA2 (пока) нет.
- RSA предлагает гораздо более быструю проверку подписи
про DSA2
- Подписи меньше, но они и так маленькие; для электронной почты и подписи кода, вероятно, незначительны.
- Более быстрое создание ключей (может быть актуально на маломощных и встраиваемых устройствах, таких как мобильные телефоны и маршрутизаторы)
- Немного быстрее для подписания
Мое собственное решение
Недавно при создании нового ключа OpenPGP я решил использовать 8k RSA для первичных ключей и 4k RSA в качестве подключаемых ключей для ежедневного использования. Подписи RSA в любом случае быстро проверяются, а огромные 8k подписи используются только для подписи других ключей, но 8k следует считать достаточным на очень долгое время. 4k вполне достаточно для текущего подключаемого ключа, поскольку его можно дешево отозвать, не теряя все подписи.
Создание этого ключа размером 8k заняло около 20 минут на моем Core 2 Duo T9300, так что не торопитесь и сделайте немного работы (для подпитки случайного источника).
решение2
В то время как я выбрал 4K RSA master key с 3K RSA signing subkey и 4K El-Gamal cryptoning subkey. Единственная причина, по которой я не выбрал более высокий master key на этом этапе, заключается в преобладании пользователей мобильных устройств, которые действительно испытывают трудности с большими ключами.
Конечно, у меня есть более крупные ключи для определенных целей, но они, как правило, не предназначены для общения с другими.