ssh-keygen
за замовчуванням створює ключі RSA, але gpg --gen-key
віддає перевагу DSA / ElGamal.
Який з них - RSA або DSA - краще для GPG?
ssh-keygen
за замовчуванням створює ключі RSA, але gpg --gen-key
віддає перевагу DSA / ElGamal.
Який з них - RSA або DSA - краще для GPG?
Відповіді:
Обслуговувачі GPG думають змінити типовий параметр на RSA (джерело: Справа зі слабкістю в SHA-1 [LWN.net] ). Отже, здається, вони вважають, що RSA в даний час є кращим варіантом (і вони повинні знати про це більше, ніж ви чи я).
RSA та DSA - помилки та корисна інформація
містять декілька старихпосилань на RSA та нещодавнюпосилання DSA ,
У 2003 році RSA проти DSA Signatures - Переможець - ... - 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 (!).
RSA. Були виявлені деякі слабкі місця в SHA-1 , який є хеш, використовуваний DSA . Debian переносять усі свої ключі від DSA до RSA.
Цитування дискусії на форумі :
Моєю порадою буде використовувати ключ підпису RSA ("первинний" або "головний" ключ) та підрозділ RSA для шифрування. Причина використання RSA для підписання головним чином полягає в тому, що RSA дозволяє використовувати більші хеші, ніж DSA. DSA2 також дозволяє використовувати більші хеші, але RSA підтримується вже багато років довше, ніж DSA2.
Я думаю, що якщо ви використовуєте його стандартним способом (тобто ви не шифруєте величезну кількість даних), вони обидва будуть добре.
Я особисто вибрав RSA, тому що я вивчив алгоритм, і це один з найкрасивіших алгоритмів, який я коли-небудь бачив.
Також використання алгоритмів SHA-2 можливе та дозволено з моменту поточного перегляду DSS; але мені не вдалося з’ясувати, яка редакційна GPG випливає.
Що стосується поточної специфікації DSS ( FIPS-186-3 , p. I), будь-яка хеш-функція, визначена в SHS (FIPS-180-3, p. Iv), може використовуватися:
DSS:
Алгоритми цифрового підпису, затверджені FIPS, повинні використовуватися з відповідною хеш-функцією, яка визначена в SHS.
SHS:
Цей Стандарт визначає п'ять захищених хеш-алгоритмів - SHA-1, SHA-224, SHA-256, SHA-384 та SHA-512 - для обчислення зведеного подання електронних даних (повідомлення).
На питання: Обидва алгоритми засновані на математичних задачах, які не підтверджені як безпечні (RSA використовує задачу факторизації чисел, а DSA використовує дискретну логарифмічну задачу), ви не можете сказати, що один є більш безпечним, ніж інший, тому що не той Проблема ні інша ніколи не була вирішена.
Але, використовуючи DSA разом із SHA-1, у вас може виникнути проблеми із безпекою, як уже сказано в pgs .
Справа в тому, що це для вас, мабуть, не має великого значення :) Як частина підготовки до створення пари ключів і як частина підтримки існуючих пар ключів - незалежно від того, яку асиметричну криптовалюту ви виберете: 1) перевірка поточної рекомендованої Ключові довжини 2) вибрали базу / модуль для оптимізації підпису чи перевірки - залежно від того, що буде робитися частіше (ключі, які будуть використовуватися при видачі сертифікатів сервера TLS / SSL, слід оптимізувати для перевірки, оскільки кожен веб-браузер перевірятиме підпис ... ключі, які використовувались для підписання програмного забезпечення, повинні бути оптимізовані аналогічно) 3) переконайтеся, що ви старієте свої ключі - використовуйте той самий ключ для ssh-auth протягом декількох років, можливо, час регенеруватися, навіть якщо ви вибрали ключ розмір, який все ще розумний для застосування сьогодні.
І RSA, і DSA були суттєво оцінені; якщо ви використовуєте надійну базу коду (RSAREF, RSA комерційний, Mozilla / Netscape, Microsoft, OpenSSL, ...), то вам, мабуть, все одно, яку криптосистему ви використовуєте, поки ви правильно її використовуєте та використовуєте поточні найкращі практики