Jump to content

Алгоритм цифровой подписи

(Перенаправлено с DSA (криптография) )

Алгоритм цифровой подписи ( DSA ) — это криптосистема с открытым ключом и федеральный стандарт обработки информации для цифровых подписей , основанный на математической концепции модульного возведения в степень и задаче дискретного логарифма . В криптосистеме с открытым ключом генерируются два ключа: данные могут быть зашифрованы только с помощью открытого ключа, а зашифрованные данные могут быть расшифрованы только с помощью закрытого ключа. DSA — это вариант схем подписи Шнорра и Эль-Гамаля . [ 1 ] : 486 

Национальный институт стандартов и технологий (NIST) предложил DSA для использования в своем стандарте цифровой подписи (DSS) в 1991 году и принял его как FIPS 186 в 1994 году. [ 2 ] Было выпущено пять редакций первоначальной спецификации. Новейшая спецификация: FIPS 186-5 от февраля 2023 г. [ 3 ] DSA запатентован, но NIST сделал этот патент доступным по всему миру без лицензионных отчислений. Спецификация FIPS 186-5 указывает, что DSA больше не будет одобрен для создания цифровых подписей, но может использоваться для проверки подписей, созданных до даты внедрения этого стандарта.

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

В 1982 году правительство США запросило предложения по стандарту подписи с открытым ключом. В августе 1991 года Национальный институт стандартов и технологий (NIST) предложил DSA для использования в своем стандарте цифровой подписи (DSS). Первоначально была серьезная критика, особенно со стороны компаний- разработчиков программного обеспечения , которые уже вложили усилия в разработку программного обеспечения для цифровой подписи на основе криптосистемы RSA . [ 1 ] : 484  Тем не менее, NIST принял DSA в качестве федерального стандарта (FIPS 186) в 1994 году. Было выпущено пять версий первоначальной спецификации: FIPS 186–1 в 1998 году, [ 4 ] ФИПС 186-2 в 2000 г., [ 5 ] ФИПС 186-3 в 2009 г., [ 6 ] ФИПС 186-4 в 2013 г., [ 3 ] и FIPS 186–5 в 2023 году. [ 7 ] Стандарт FIPS 186-5 запрещает подписание с помощью DSA, но позволяет проверять подписи, созданные до даты реализации стандарта в качестве документа. Он должен быть заменен более новыми схемами подписи, такими как EdDSA . [ 8 ]

DSA защищен патентом США № 5 231 668 , поданным 26 июля 1991 г., срок действия которого истек, и принадлежит Дэвиду В. Кравицу. [ 9 ] бывший сотрудник АНБ . Этот патент был передан «Соединенным Штатам Америки в лице министра торговли Вашингтона, округ Колумбия», и NIST сделал этот патент доступным по всему миру без лицензионных отчислений. [ 10 ] Клаус П. Шнорр утверждает, что его патент США № 4 995 082 (срок действия которого также истек) распространяется на DSA; это утверждение оспаривается. [ 11 ]

В 1993 году Дэйву Банисару удалось получить подтверждение по запросу FOIA , что алгоритм DSA был разработан не NIST, а АНБ. [ 12 ]

OpenSSH объявил, что DSA планируется удалить в 2025 году. [ 13 ]

Операция

[ редактировать ]

Алгоритм DSA включает в себя четыре операции: генерацию ключей (которая создает пару ключей), распределение ключей, подписание и проверку подписи.

1. Генерация ключей

[ редактировать ]

Генерация ключей состоит из двух этапов. Первый этап — это выбор параметров алгоритма , которые могут быть общими для разных пользователей системы, а второй этап — вычисление одной пары ключей для одного пользователя.

Генерация параметров

[ редактировать ]
  • Выберите утвержденную криптографическую хеш-функцию. с выходной длиной биты. В оригинальном DSS всегда был SHA-1 , но более сильные хеш-функции SHA-2 одобрены для использования в текущем DSS. [ 3 ] [ 14 ] Если больше длины модуля , только крайний левый используются биты хэш-вывода.
  • Выберите длину ключа . Исходный DSS ограничен быть кратным 64 между 512 и 1024 включительно. NIST 800-57 рекомендует длину 2048 (или 3072) для ключей со сроком действия, превышающим 2010 (или 2030). [ 15 ]
  • Выберите длину модуля такой, что и . FIPS 186-4 определяет и иметь одно из значений: (1024, 160), (2048, 224), (2048, 256) или (3072, 256). [ 3 ]
  • Выберите -битное простое число .
  • Выберите -битное простое число такой, что кратно .
  • Выберите целое число случайно из .
  • Вычислить . В том редком случае, когда попробуйте еще раз с другим . Обычно используется. Это модульное возведение в степень можно эффективно вычислить, даже если значения велики.

Параметры алгоритма: ( , , ). Они могут использоваться разными пользователями системы.

Ключи для каждого пользователя

[ редактировать ]

Учитывая набор параметров, второй этап вычисляет пару ключей для одного пользователя:

  • Выберите целое число случайно из .
  • Вычислить .

это закрытый ключ и является открытым ключом.

2. Распределение ключей

[ редактировать ]

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

3. Подписание

[ редактировать ]

Сообщение подписывается следующим образом:

  • Выберите целое число случайно из
  • Вычислить . В том маловероятном случае, что , начните снова с другим случайным образом .
  • Вычислить . В том маловероятном случае, что , начните снова с другим случайным образом .

Подпись

Расчет и равносильно созданию нового ключа для каждого сообщения. Модульное возведение в степень в вычислениях — это самая затратная в вычислительном отношении часть операции подписания, но ее можно вычислить до того, как сообщение станет известно. Вычисление обратного модуля — вторая по стоимости часть, и ее также можно вычислить до того, как сообщение станет известно. Его можно вычислить с помощью расширенного алгоритма Евклида или малой теоремы Ферма : .

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

[ редактировать ]

Можно проверить, что подпись является допустимой подписью для сообщения следующее:

  • Убедитесь, что и .
  • Вычислить .
  • Вычислить .
  • Вычислить .
  • Вычислить .
  • Подпись действительна тогда и только тогда, когда .

Корректность алгоритма

[ редактировать ]

Схема подписи правильна в том смысле, что проверяющая сторона всегда принимает подлинные подписи. Это можно показать следующим образом:

Во-первых, поскольку , отсюда следует, что по малой теореме Ферма . С и является простым, должен быть порядок .

Подписавшаяся сторона вычисляет

Таким образом

С имеет порядок у нас есть

Наконец, корректность DSA следует из

Чувствительность

[ редактировать ]

При использовании DSA энтропия, секретность и уникальность случайного значения подписи являются критическими. Это настолько важно, что нарушение любого из этих трех требований может раскрыть злоумышленнику весь закрытый ключ. [ 16 ] Использование одного и того же значения дважды (даже при сохранении секрет), использование предсказуемого значения или утечка даже нескольких битов в каждой из нескольких подписей достаточно, чтобы раскрыть закрытый ключ . [ 17 ]

Эта проблема затрагивает как DSA, так и алгоритм цифровой подписи с эллиптической кривой ( ECDSA ) — в декабре 2010 года группа Fail0verflow объявила о восстановлении закрытого ключа ECDSA, используемого Sony для подписи программного обеспечения для игровой консоли PlayStation 3 . Атака стала возможной, потому что Sony не удалось сгенерировать новый случайный за каждую подпись. [ 18 ]

Эту проблему можно предотвратить, выведя детерминированно из закрытого ключа и хэша сообщения, как описано РФК   6979 . Это гарантирует, что различен для каждого и непредсказуем для злоумышленников, не знающих закрытый ключ .

Кроме того, могут быть созданы вредоносные реализации DSA и ECDSA, где выбран для подсознательной утечки информации через подписи. Например, автономный закрытый ключ может быть украден из идеального автономного устройства, которое выпускает только невинно выглядящие подписи. [ 19 ]

Реализации

[ редактировать ]

Ниже приведен список криптографических библиотек, обеспечивающих поддержку DSA:

См. также

[ редактировать ]
  1. ^ Jump up to: а б Шнайер, Брюс (1996). Прикладная криптография . Уайли. ISBN  0-471-11709-9 .
  2. ^ «FIPS PUB 186: Стандарт цифровой подписи (DSS), 19 мая 1994 г.» . qcsrc.nist.gov . Архивировано из оригинала 13 декабря 2013 г.
  3. ^ Jump up to: а б с д «FIPS PUB 186-4: Стандарт цифровой подписи (DSS), июль 2013 г.» (PDF) . csrc.nist.gov .
  4. ^ «FIPS PUB 186-1: Стандарт цифровой подписи (DSS), 15 декабря 1998 г.» (PDF) . csrc.nist.gov . Архивировано из оригинала (PDF) 26 декабря 2013 г.
  5. ^ «FIPS PUB 186-2: Стандарт цифровой подписи (DSS), 27 января 2000 г.» (PDF) . csrc.nist.gov .
  6. ^ «FIPS PUB 186-3: Стандарт цифровой подписи (DSS), июнь 2009 г.» (PDF) . csrc.nist.gov .
  7. ^ «FIPS PUB 186-5: Стандарт цифровой подписи (DSS), февраль 2023 г.» (PDF) . csrc.nist.gov .
  8. ^ «Стандарт цифровой подписи (DSS)» . Министерство торговли США. 31 октября 2019 года . Проверено 21 июля 2020 г.
  9. Доктор Дэвид В. Кравиц. Архивировано 9 января 2013 г., в Wayback Machine.
  10. ^ Вернер Кох. «DSA и патенты»
  11. ^ «Годовой отчет CSSPAB за 1994 год» . 26 августа 2009 г. Архивировано из оригинала 26 августа 2009 г.
  12. ^ Нойманн, Питер Г. (29 февраля 2020 г.). «Дайджест RISKS, том 14, выпуск 59» . Архивировано из оригинала 29 февраля 2020 г. Проверено 3 октября 2023 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  13. ^ «OpenSSH объявляет график удаления DSA [LWN.net]» . lwn.net . Проверено 11 января 2024 г.
  14. ^ «FIPS PUB 180-4: Стандарт безопасного хеширования (SHS), март 2012 г.» (PDF) . csrc.nist.gov .
  15. ^ «Специальная публикация NIST 800-57» (PDF) . csrc.nist.gov . Архивировано из оригинала (PDF) 6 июня 2014 г.
  16. ^ «Катастрофа Debian PGP, которая почти случилась» . корневые лаборатории rdist . 18 мая 2009 г.
  17. ^ ДСА -значение Требования
  18. ^ Бендель, Майк (29 декабря 2010 г.). «Хакеры описывают безопасность PS3 как эпический провал: получите неограниченный доступ» . Exophase.com . Проверено 5 января 2011 г.
  19. ^ Вербюхельн, Стефан (2 января 2015 г.). «Как идеальные офлайн-кошельки все еще могут утекать приватные ключи Биткойнов». arXiv : 1501.00447 [ cs.CR ].
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d68d902021427f4679c7ef7320284ee9__1722352320
URL1:https://arc.ask3.ru/arc/aa/d6/e9/d68d902021427f4679c7ef7320284ee9.html
Заголовок, (Title) документа по адресу, URL1:
Digital Signature Algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)