ДСТУ 4145-2002

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Входные данные
  • общие параметры цифровой подписи
Алгоритм вычисления предподписи
  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. двоичный ряд длины является двоичным представлением выходного числа алгоритма

Ссылки

Программные реализации

Примечания

  1. Інформаційні технології. Криптографічний захист інформації. Цифровий підпис, що ґрунтується на еліптичних кривих. Формування та перевіряння. shop.uas.org.ua. Дата обращения: 13 декабря 2019.
  2. Національні стандарти на які є посилання у нормативно-правових актах | ДП «УкрНДНЦ». uas.org.ua. Дата обращения: 13 декабря 2019.
  3. Приказ Минцифры Украины от 30 сентября 2020 года № 140/614. Дата обращения: 11 января 2020.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.