DSA

DSA (Digital Signature Algorithm) — это асимметричный криптографический алгоритм, предназначенный исключительно для создания и проверки цифровых подписей. Он не используется для шифрования данных, а только для обеспечения неотказуемости, целостности и аутентификации информации.

DSA был разработан NIST (Национальным институтом стандартов и технологий США) и принят как часть стандарта FIPS 186 (Digital Signature Standard). Впервые опубликован в 1991 году, с тех пор неоднократно обновлялся.

Основные характеристики

ХарактеристикаОписание
Тип алгоритмаАсимметричная цифровая подпись
Ключевые параметрыПростое число p, q и g
Длина ключаОбычно 1024, 2048 или 3072 бит
ИспользованиеЦифровая подпись документов, сертификатов, сообщений
СтандартыFIPS 186-1 до FIPS 186-4, ISO/IEC 14888-3:2016

Как работает DSA?

Алгоритм DSA состоит из трёх основных этапов:

1. Генерация ключевой пары

  • Выбираются параметры:
    • простое число p (длина зависит от уровня безопасности);
    • простое число q (делитель p−1);
    • генерируется g, зависящее от p и q.
  • Создаются:
    • закрытый ключ x (случайное число);
    • открытый ключ y = g^x mod p.

2. Создание подписи

  • Сообщение хэшируется функцией (например, SHA-256);
  • Генерируется случайное число k;
  • Вычисляются два значения: r и s, которые вместе образуют подпись.

3. Проверка подписи

  • Получатель использует открытый ключ y, параметры p, q, g и хэш документа для проверки корректности подписи;
  • Если вычисленное значение совпадает с r, подпись считается действительной.

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

Где применяется DSA?

  1. SSL/TLS и HTTPS: используется в целях аутентификации серверов, хотя сегодня всё чаще заменяется на ECDSA;
  2. Электронная цифровая подпись (ЭЦП): поддерживается в государственных системах, включая российские (ЕГАИС, налоговые сервисы, госзакупки, ЭДО);
  3. SSH-протоколы: раньше использовался для аутентификации хостов и пользователей.
  4. PGP / S / MIME: используется в протоколах защиты электронной почты;
  5. Федеральные системы США: обязательный к применению стандарт в рамках FIPS 186-4 для правительственных учреждений.

Преимущества DSA

  • Официальный стандарт США — утверждён NIST и Минторгом США;
  • Математическая надёжность — безопасность основана на сложности дискретного логарифмирования;
  • Поддержка в большинстве библиотек — реализован в OpenSSL, Java Cryptography Architecture, Microsoft CNG и других платформах;
  • Безопасность при правильной реализации — особенно актуален при использовании длинных ключей (2048+ бит).

Недостатки DSA

  • Не поддерживает шифрование — предназначен исключительно для подписи;
  • Устаревает в коммерческом секторе — уступает по популярности RSA и особенно ECDSA;
  • Чувствителен к качеству случайных чисел — неправильная генерация k может привести к компрометации закрытого ключа;
  • Ограниченная производительность — медленнее, чем ECDSA при той же степени защиты.

Сравнение DSA с другими алгоритмами

ПараметрDSARSAECDSA
НазначениеТолько подписьШифрование и подписьТолько подпись
Длина ключа1024–3072 бит2048–4096 бит256–521 бит
ПроизводительностьУмереннаяМедленнее при больших ключахВысокая
БезопасностьДостаточна при 2048+ битВысокая при 3072+ битОчень высокая
ПрименениеSSL/TLS, SSH, ЭЦПШирокоеБлокчейн, IoT, мобильные устройства
РегулированиеФормализован FIPS 186-4Широко поддерживаетсяПоддерживается FIPS

Пример работы с DSA через OpenSSL

# Генерация параметров DSA
openssl dsaparam -genkey 2048 -out dsa.key

# Извлечение открытого ключа
openssl dsa -in dsa.key -pubout -out public.key

# Подпись файла
openssl dgst -sha256 -sign dsa.key -out signature.bin file.txt

# Проверка подписи
openssl dgst -sha256 -verify public.key -signature signature.bin file.txt

Форматы файлов, связанных с DSA

РасширениеОписание
.pemТекстовое представление ключей и сертификатов в Base64
.derДвоичный формат хранения ключей
.p7b, .pfxКонтейнеры, содержащие открытые ключи и цепочки доверия
.crt, .cerОткрытые сертификаты, связанные с DSA-ключами

Перспективы DSA

Хотя DSA остаётся важной частью стандарта FIPS 186-4, его использование в коммерческих системах постепенно снижается. Современные решения всё чаще используют ECDSA или EdDSA, которые обеспечивают аналогичную или лучшую защиту при меньшей длине ключа и более высокой производительности.

Однако в правовых и регулируемых системах, где требуется строгое соответствие стандартам безопасности, DSA продолжает оставаться актуальным.