Что лучше для ключей GPG - RSA или DSA?

39550
grawity

ssh-keygenпо умолчанию создает ключи RSA, но gpg --gen-keyпредпочитает DSA / ElGamal.

Какой из них - RSA или DSA - лучше для GPG?

56
См. Также [этот вопрос StackOverflow] (https://stackoverflow.com/questions/2841094/what-is-the-difference-between-dsa-and-rsa), а также [мой ответ] (https: // stackoverflow. ru / questions / 2821736 / что такое разница между id-rs-pub-and-id-dsa-pub / 27855045 # 27855045) для дубликата этого вопроса, в котором обсуждается, почему RSA значительно более безопасен, чем DSA, как в 2010 году, так и с известными сегодня уязвимостями (все из них для DSA). Adam Katz 7 лет назад 1

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

35
CesarB

Сопровождающие GPG подумывают об изменении значения по умолчанию на RSA (источник: устранение недостатков в SHA-1 [LWN.net] ). Таким образом, кажется, что RSA в настоящее время является лучшим вариантом (и они должны знать об этом больше, чем вы или я).

23
nik

RSA и DSA - неправильные представления и полезная информация содержат
пару старыхссылок на RSA и недавнююссылку на DSA ,


В 2003 году RSA против DSA подписей - Победитель ... - RSA .

Таким образом, генерация ключей невероятно быстрее для DSA, что имеет смысл, если вы понимаете алгоритмы. Подписание также быстрее для DSA, но не так сильно. Большая сила RSA - проверка, которая намного быстрее, чем DSA .

Недавний проект IETF: DSA с SHA-2 для DNSSEC, срок действия истекает 7 января 2010 года. У
него есть некоторые причины для продвижения DSA через RSA сегодня.

Использование DSA с SHA-256 в DNSSEC имеет некоторые преимущества и недостатки по сравнению с использованием RSA с SHA-256 при использовании 2048-битных ключей. Подписи DSA намного короче подписей RSA ; при этом размере разница составляет 512 бит по сравнению с 2048 битами. На типичных платформах, использующих 2048-битные ключи, подписывание DSA примерно в три раза быстрее, чем для RSA, но проверка подписей RSA более чем в десять раз быстрее, чем для DSA .

Криптографическая стойкость DSA, как правило, считается эквивалентной RSA, когда открытый ключ DSA и открытые ключи RSA имеют одинаковый размер. Такая оценка, конечно, может измениться в будущем, если будут найдены новые атаки, которые лучше работают с тем или иным алгоритмом.

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

Но это только черновик на данный момент.

Все любят скорость проверки RSA (!).

8
pgs

RSA. Были некоторые недостатки, обнаруженные в SHA-1, который является хешем, используемым DSA . Debian переносит все свои ключи из DSA в RSA.

5
Adam Matan

Цитирую обсуждение на форуме :

Мой совет - использовать ключ подписи RSA («первичный» или «главный» ключ) и подключ RSA для шифрования. Причина использования RSA для подписи заключается главным образом в том, что RSA позволяет использовать большие хэши, чем DSA. DSA2 также позволяет использовать большие хэши, но RSA поддерживается на много лет дольше, чем DSA2.

Я думаю, что если вы используете его стандартным способом (то есть вы не шифруете огромное количество данных), они оба преуспеют.

Я лично выбрал бы RSA, потому что я изучил алгоритм, и это один из самых красивых алгоритмов, которые я когда-либо видел.

4
Manuel Faux

Также использование алгоритмов SHA-2 возможно и разрешено начиная с текущей версии DSS; но я не смог выяснить, какая версия GPG следует.

Относительно текущей спецификации DSS ( FIPS-186-3, стр. I) может использоваться любая хеш-функция, указанная в SHS (FIPS-180-3, стр. Iv):

DSS:

Утвержденные FIPS алгоритмы цифровой подписи должны использоваться с соответствующей хэш-функцией, которая указана в SHS.

SHS:

В настоящем стандарте определены пять алгоритмов безопасного хеширования - SHA-1, SHA-224, SHA-256, SHA-384 и SHA-512 - для вычисления сжатого представления электронных данных (сообщения).


На вопрос: оба алгоритма основаны на математических задачах, которые не доказали свою безопасность (RSA использует проблему факторизации чисел, а DSA использует проблему дискретного логарифма), вы не можете сказать, что один является более безопасным, чем другой, потому что не один Ни та, ни другая проблема не были решены.

Но при использовании DSA с SHA-1 у вас могут возникнуть проблемы с безопасностью, как уже говорилось в pgs .

1
Ram

Дело в том, что это, вероятно, не имеет большого значения для вас :) В рамках подготовки к генерации пары ключей и в качестве части поддержки существующих пар ключей - независимо от того, какую асимметричную криптографию вы выберете, вы должны: 1) проверить текущую рекомендуемую длина ключа 2) выбрал базу / модуль по модулю для оптимизации для подписи или проверки - в зависимости от того, что будет происходить чаще (ключи, которые будут использоваться при выдаче сертификатов сервера TLS / SSL, должны быть оптимизированы для проверки, поскольку каждый веб-браузер будет проверять подпись ... ключи, используемые для подписи программного обеспечения, должны быть оптимизированы аналогичным образом) 3) убедитесь, что вы стареете свои ключи - использовали один и тот же ключ для ssh-auth в течение нескольких лет, возможно, пришло время восстановить его, даже если вы выбрали ключ размер, который все еще является разумным для приложения сегодня.

Оба RSA и DSA были в значительной степени оценены; если вы используете надежную кодовую базу (RSAREF, реклама RSA, Mozilla / Netscape, Microsoft, OpenSSL, ...), то вам, вероятно, все равно, какую криптосистему вы используете, если вы используете ее правильно и используете текущие рекомендации

Похожие вопросы