ДСТУ 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. 1 2 Інформаційні технології. Криптографічний захист інформації. Цифровий підпис, що ґрунтується на еліптичних кривих. Формування та перевіряння. shop.uas.org.ua. Дата обращения: 13 декабря 2019. Архивировано 5 мая 2019 года.
  2. 1 2 Національні стандарти на які є посилання у нормативно-правових актах | ДП «УкрНДНЦ». uas.org.ua. Дата обращения: 13 декабря 2019. Архивировано 14 мая 2019 года.
  3. Приказ Минцифры Украины от 30 сентября 2020 года № 140/614. Дата обращения: 11 января 2020.