Культовая фраза Джеймса Франко из фильма “Интервью” (2014) – “То же самое, но по-другому, но все равно то же самое” – может прозвучать глупо, но она передает суть. Это можно отнести к RSA и DSA. Оба являются алгоритмами, которые используются в сфере кибербезопасности и выполняют одинаковые функции. Но тогда почему их два? Хороший вопрос, ответ на который будет дан ниже.
Что такое RSA?
RSA – одна из первых систем шифрования с открытым ключом, созданная в 1977 году. RSA был открыт Роном Ривестом, Ади Шамиром и Леонардом Адлеманом, чьи фамилии и составляют аббревиатуру RSA. Этот алгоритм разрабатывался долгое время, прежде чем нашел свое место. Однако, на заре интернета, RSA распространился как лесной пожар. Это был не просто еще один алгоритм шифрования, а совершенно новый способ удаленного обмена секретами. RSA также поставляется с цифровой подписью.
Советуем вам ознакомиться – стандарт шифрования pgp.
Что такое DSA?
DSA – это также алгоритм шифрования с асимметричным ключом, который появился намного позже RSA. С момента его разработки в 1991 году Национальный институт стандартов и технологий настоял на принятии алгоритма на федеральном уровне. Несмотря на широкую популярность RSA в частном секторе, DSA стал стандартом для многих правительственных учреждений.
DSA vs RSA: битва цифровых подписей
Криптография с асимметричным ключом основана на обмене двумя ключами — частным и открытым. Поскольку открытый ключ доступен всем, любой человек может получить его, выдавая себя за вас. К счастью, проблемы аутентификации были решены с помощью цифровых подписей.
Две основные части цифровой подписи в криптографии с открытым ключом – это частный ключ отправителя и хэш. Проще говоря, это сокращенная версия сообщения. Независимо от типа файла и его размера, хэш имеет длину всего 5-20 символов. Имейте в виду, что хэширование – односторонний процесс, то есть вы не можете превратить эти символы обратно в сообщение. Его единственная цель – защитить вас от поддельных версий файла. Даже если хакер внес мельчайшие изменения, хэш тоже изменится, что говорит о том, что сообщение больше не будет считаться подлинным.
В чем разница между RSA и DSA?
Во-первых, это использование алгоритмом математических задач. Оба алгоритма используют модульную арифметику, но сертификат RSA основан на простой факторизации, в то время как DSA использует задачу дискретного логарифма. На данный момент оба считаются полностью безопасными.
Еще одним отличием DSA от RSA является скорость. Первое – это более быстрая подпись, а второе – более эффективная при проверке. Но поскольку аутентификация требует и того, и другого, расхождения в скорости могут быть не такими значительными, как кажется.
Кроме того, DSA работает только с более безопасным, вторым изданием сетевого протокола Secure Shell (SSH). RSA работает с SSH2, но также совместим с оригинальным SSH, который теперь считается неполноценным. Поэтому, если вас беспокоит случайное использование SSH, DSA может быть лучшим выбором.
Как видите, что различия между RSA и DSA довольно незначительны. Поэтому не стоит слишком беспокоиться о выборе между ними, к тому же с точки зрения совместимости они равны. RSA и DSA используются для одних и тех же интернет-протоколов и сертификатов, таких как Nettle, OpenSSL, wolfCrypt, Crypto++ и cryptlib.