Interested Article - ДСТУ 4145-2002

ДСТУ 4145-2002 (полное название: « ДСТУ 4145-2002. Информационные технологии. Криптографическая защита информации. Цифровая подпись, основанная на эллиптических кривых. Формирование и проверка ») — украинский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи , основанные на свойствах групп точек эллиптических кривых над полями и правилах применения этих правил к сообщениям, которые пересылаются по каналами связи и/или обрабатываются в компьютеризованных системах общего назначения.

Принят и введён в действие приказом государственного комитета Украины по вопросам технического регулирования и потребительской политики от 28 декабря 2002 года № 31 . Текст стандарта есть в открытом доступе .

В стандарте по умолчанию используется хеш-функция ГОСТ 34.311-95 , и генератор случайных последовательностей с использованием алгоритма ДСТУ ГОСТ 28147:2009 .

Согласно приказу Минцифры Украины от 30 сентября 2020 года № 140/614, с 1 января 2021 года стандарт должен использоваться совместно с ДСТУ 7564:2014 ( хеш-функция «Купина»), но использование стандарта совместно с ГОСТ 34.311-95 разрешено до 1 января 2022 года .

Основной алгоритм

Основными процедурами алгоритма цифровой подписи, установленными ДСТУ 4145-2002 являются вычисление , вычисление подписи, и проверка цифровой подписи .

Общие параметры цифровой подписи

  • степень расширения - простое число (параметр поля )
  • неприводимый полином степени , определяющий операции в
  • коэффициенты эллиптической кривой вида , где . Рекомендованные для использования эллиптические кривые для полиномиального базиса и оптимального нормального базиса указаны в Приложении к стандарту
  • базовая точка эллиптической кривой , порождающая подгруппу группы
  • порядок базовой точки ( простое число )
  • длина представления числа в двоичном виде
  • идентификатор используемой хеш-функции
  • длина цифровой подписи

Дополнительные условия на параметры

  • порядок циклической подгруппы должен удовлетворять условию
  • должно выполняться (условие Менезеса-Окамото-Венстоуна): для

Формирование цифровой подписи

Цифровая подпись вычисляется на основе сообщения и .

Входные данные

  • общие параметры цифровой подписи
  • личный ключ цифровой подписи
  • сообщение длины
  • хеш-функция с длиной хеш-кода и идентификатором
  • длина цифровой подписи , которая выбирается для группы пользователей:

Вычисление цифровой предподписи

Вычисление состоит в выборе первой координаты секретной, случайно выбранной точки из орбиты точки . После использования цифровой её сразу уничтожают вместе с соответствующим рандомизатором.

Входные данные
  • общие параметры цифровой подписи
Алгоритм вычисления предподписи
  1. выбор рандомизатора на основе криптографического генератора псевдослучайных чисел
  2. вычисление точки эллиптической кривой
  3. проверка значения координаты ( если , то повторить процедуру выбора рандомизатора)
  4. иначе принять . (иное обозначение: )
Результат
  • цифровая

Алгоритм вычисления подписи

  1. проверка корректности общих параметров, ключей, и выполнения условий и ограничений относительно значений промежуточных величин в соответствии с определенными стандартом процедурами
  2. вычисление хеш-кода на основе сообщения
  3. получение элемента основного поля из хеш-кода по установленной стандартом процедуре. Если при этом получается , то принимают
  4. выбор рандомизатора
  5. вычисление цифровой предподписи
  6. вычисление элемента основного поля (произведение является элементом ) (фактически, )
  7. получение целого числа из элемента основного поля по установленной стандартом процедуре (в случае выбирается новый рандомизатор)
  8. вычисление целого числа (если , выбирается новый рандомизатор)
  9. на основе пары целых чисел записывается цифровая подпись как двоичный ряд длины : в младших разрядах левой половины битов размещается значение , в младших разрядах правой половины битов размещается значение , оставшиеся разряды заполняются нулями

Результат

  • подписанное сообщение в виде ( , , ), где - цифровая подпись

Проверка цифровой подписи

Входные данные

  • общие параметры цифровой подписи
  • открытый ключ цифровой подписи ,
  • подписанное сообщение ( , , ) длины
  • хеш-функция

Алгоритм вычисления подписи

  1. проверка корректности общих параметров, ключей, и выполнения условий и ограничений относительно значений промежуточных величин в соответствии с определенными стандартом процедурами
  2. проверка идентификатора хеш-функции : если данный идентификатор не используется в заданной группе пользователей, то принимается решение "подпись недействительна" и проверка завершается
  3. на основании определяется длина хеш-кода
  4. проверка условий . Если хотя бы одно из них не выполняется, то принимается решение "подпись недействительна" и проверка завершается
  5. проверка наличия текста сообщения и его длины . В случае отсутствия текста либо при принимается решение "подпись недействительна" и проверка завершается
  6. вычисление хеш-кода на основе сообщения
  7. получение элемента основного поля из хеш-кода по установленной стандартом процедуре. Если при этом получается , то принимают
  8. выделение пары чисел из двоичной записи цифровой подписи
  9. проверка условий и . Если хотя бы одно из них не выполняется, то принимается решение "подпись недействительна" и проверка завершается
  10. вычисление точки эллиптической кривой
  11. вычисление элемента основного поля
  12. получение целого числа из элемента основного поля по установленной стандартом процедуре
  13. если , то принимается решение "подпись действительна", иначе - "подпись недействительна"

Результат

  • принятое решение: "подпись действительна" либо "подпись недействительна"

Криптостойкость

Криптостойкость цифровой подписи основывается на сложности дискретного логарифмирования в циклической подгруппе группы точек эллиптической кривой .

Используемые вспомогательные алгоритмы

Получение целого числа из элемента основного поля

Входные данные

  • элемент основного поля
  • порядок базовой точки эллиптической кривой

Результат

  • целое число , удовлетворяющее условию

Алгоритм вычисления

  1. если элемент основного поля равен 0, то , конец алгоритма
  2. нахождение целого числа
  3. принимается и находится , соответствующий наибольшему индексу , при котором . Если такого индекса нет, принимают и заканчивают выполнение алгоритма
  4. двоичный ряд длины является двоичным представлением выходного числа алгоритма

Ссылки

  • (укр.) .
  • . — Технические спецификации форматов криптографических сообщений. Защищённые данные. Архивировано из 26 мая 2012 года.
  • (укр.) .
Программные реализации
  • на сайте SourceForge.net — Библиотека с открытым исходным кодом для генерации ключей, создания и проверки ЭЦП по стандарту ДСТУ 4145-2002.
  • Bouncy Castle — Библиотека с открытым исходным кодом на языке Java . Реализует JCA интерфейс
  • - библиотека, принадлежащая акционерному обществу Приватбанк с открытым программным кодом на C (язык) , имеет
  • - библиотека с открытым исходным кодом на языке JavaScript
  • — лицензированная реализация стандарта на Java , C++ , Object Pascal

Примечания

  1. . shop.uas.org.ua. Дата обращения: 13 декабря 2019. 5 мая 2019 года.
  2. . uas.org.ua. Дата обращения: 13 декабря 2019. 14 мая 2019 года.
  3. . Дата обращения: 11 января 2020.
Источник —

Same as ДСТУ 4145-2002