ГОСТ 34.10-2018

Материал из Википедии — свободной энциклопедии
(перенаправлено с «ГОСТ Р 34.10-2012»)
Перейти к навигации Перейти к поиску

ГОСТ 34.10-2018 (полное название: «ГОСТ 34.10-2018. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи», англ. «Information technology. Cryptographic data security. Signature and verification processes of electronic digital signature») — действующий межгосударственный криптографический стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи реализуемой с использованием операций в группе точек эллиптической кривой, определенной над конечным простым полем.

Стандарт разработан на основе национального стандарта Российской Федерации ГОСТ Р 34.10-2012 и введен в действие с 1 июня 2019 года приказом Росстандарта № 1059-ст от 4 декабря 2018 года.

Область применения[править | править код]

Цифровая подпись позволяет:

  1. Аутентифицировать лицо, подписавшее сообщение;
  2. Контролировать целостность сообщения;
  3. Защищать сообщение от подделок;

История[править | править код]

Первые версии алгоритма разрабатывались Главным управлением безопасности связи ФАПСИ при участии Всероссийского научно-исследовательского института стандартизации (ВНИИстандарт), позже разработка перешла в руки Центра защиты информации и специальной связи ФСБ России и ОАО «ИнфоТеКС».

Описание[править | править код]

Все стандарты семейства 34.10 основаны на эллиптических кривых. Стойкость этих алгоритмов основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости соотвествующей хеш-функции.

Тип Наименование Введен в действие Функция хеширования Приказ
Национальный ГОСТ Р 34.10-94 1 января 1995 года ГОСТ Р 34.11-94 Принят постановлением Госстандарта России № 154 от 23 мая 94 года
Межгосударственный ГОСТ 34.310-95 16 апреля 1998 года ГОСТ 34.311-95
Национальный ГОСТ Р 34.10-2001 1 июля 2001 года ГОСТ Р 34.11-94 Принят постановлением Госстандарта России № 380-ст от 12 сентября 2001 года[1]
Межгосударственный ГОСТ 34.310-2004 2 марта 2004 года ГОСТ 34.311-95 Принят Евразийским советом по стандартизации, метрологии и сертификации по переписке (протокол №16 от 2 марта 2004 года)
Национальный ГОСТ Р 34.10-2012 1 января 2013 года ГОСТ Р 34.11-2012 Утверждён и введен в действие приказом Федерального агентства по техническому регулированию и метрологии № 215-ст от 7 августа 2012 года в качестве национального стандарта Российской Федерации с 1 января 2013 года
Межгосударственный ГОСТ 34.10-2018 1 июня 2019 года ГОСТ 34.11-2018 Принят Межгосударственным советом по метрологии, стандартизации и сертификации (протокол №54 от 29 ноября 2018 года). Приказом Федерального агентства по техническому регулированию и метрологии № 1059-ст от 4 декабря 2018 г. введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 года


Стандарты используют одинаковую схему формирования электронной цифровой подписи. Новые стандарты с 2012 года отличается наличием дополнительного варианта параметров схем соответствующего длине секретного ключа порядка 512 бит.

После подписывания сообщения М к нему дописывается цифровая подпись размером 512 или 1024 бит и текстовое поле. В текстовом поле могут содержаться, например, дата и время отправки или различные данные об отправителе:

Сообщение М
+
Цифровая подпись Текст
Дополнение

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

Алгоритм[править | править код]

Приводится описание варианта схемы ЭЦП с длиной секретного ключа 256 бит. Для секретных ключей длиной 512 бит (второй вариант формирования ЭЦП, описанный в стандарте) все преобразования аналогичны.

Параметры схемы цифровой подписи[править | править код]

  • простое число  — модуль эллиптической кривой такой, что
  • эллиптическая кривая задаётся своим инвариантом или коэффициентами , где  — конечное поле из p элементов. связан с коэффициентами и следующим образом
, причём .
  • целое число  — порядок группы точек эллиптической кривой, должно быть отлично от
  • простое число , порядок некоторой циклической подгруппы группы точек эллиптической кривой, то есть выполняется , для некоторого . Также лежит в пределах .
  • точка эллиптической кривой , являющаяся генератором подгруппы порядка , то есть и для всех k = 1, 2, …, q-1, где  — нейтральный элемент группы точек эллиптической кривой E.
  •  — хеш-функция (ГОСТ Р 34.11-2012), которая отображает сообщения M в двоичные векторы длины 256 бит.

Каждый пользователь цифровой подписи имеет личные ключи:

  • ключ шифрования  — целое число, лежащее в пределах .
  • ключ расшифрования , вычисляемый как .

Дополнительные требования:

  • , , где
  • и

Двоичные векторы[править | править код]

Между двоичными векторами длины 256 и целыми числами ставится взаимно-однозначное соответствие по следующему правилу . Здесь либо равно 0, либо равно 1. Другими словами,  — это представление числа z в двоичной системе счисления.

Результатом операции конкатенации двух векторов и называется вектор длины 512 . Обратная операция — операция разбиения одного вектора длины 512 на два вектора длины 256.

Формирование цифровой подписи[править | править код]

Блок-схемы:

  1. Вычисление хеш-функции от сообщения М:
  2. Вычисление , и если , положить . Где  — целое число, соответствующее
  3. Генерация случайного числа такого, что
  4. Вычисление точки эллиптической кривой , и по ней нахождение где  — это координата точки Если , возвращаемся к предыдущему шагу.
  5. Нахождение . Если , возвращаемся к шагу 3.
  6. Формирование цифровой подписи , где и  — векторы, соответствующие и .

Проверка цифровой подписи[править | править код]

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

Криптостойкость[править | править код]

Криптостойкость цифровой подписи опирается на две компоненты — на стойкость хеш-функции и на стойкость самого алгоритма шифрования.[2]

Вероятность взлома хеш-функции по ГОСТ 34.11-94 составляет при подборе коллизии на фиксированное сообщение и при подборе любой коллизии.[2] Стойкость алгоритма шифрования основывается на проблеме дискретного логарифмирования в группе точек эллиптической кривой. На данный момент нет метода решения данной проблемы хотя бы с субэкспоненциальной сложностью.[3]

Один из самых быстрых алгоритмов, на данный момент, при правильном выборе параметров — -метод и -метод Полларда.[4]

Для оптимизированного -метода Полларда вычислительная сложность оценивается как . Таким образом для обеспечения криптостойкости операций необходимо использовать 256-разрядное .[2]

Отличия от ГОСТ 34.10-94 (стандарт 1994—2001 гг)[править | править код]

Новый и старый ГОСТы цифровой подписи очень похожи друг на друга. Основное отличие — в старом стандарте часть операций проводится над полем , а в новом — над группой точек эллиптической кривой, поэтому требования, налагаемые на простое число в старом стандарте ( или ), более жёсткие, чем в новом.

Алгоритм формирования подписи отличается только в пункте 4. В старом стандарте в этом пункте вычисляются и и, если , возвращаемся к пункту 3. Где и .

Алгоритм проверки подписи отличается только в пункте 6. В старом стандарте в этом пункте вычисляется , где  — открытый ключ для проверки подписи, . Если , подпись правильная, иначе неправильная. Здесь  — простое число, и является делителем .

Использование математического аппарата группы точек эллиптической кривой позволяет существенно сократить порядок модуля без потери криптостойкости.[2]

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

Возможные применения[править | править код]

Примечания[править | править код]

  1. О принятии и введении в действие государственного стандарта. Постановление Госстандарта РФ от 12.09.2001 N 380-ст. bestpravo.ru. Дата обращения 1 сентября 2019.
  2. 1 2 3 4 Игоничкина Е. В. Анализ алгоритмов электронной цифровой подписи. Дата обращения 16 ноября 2008.
  3. Семёнов Г. Цифровая подпись. Эллиптические кривые. «Открытые системы» № 7-8/2002 (8 августа 2002). Дата обращения 16 ноября 2008.
  4. Бондаренко М. Ф., Горбенко И. Д., Качко Е. Г., Свинарев А. В., Григоренко Т. А. Сущность и результаты исследований свойств перспективных стандартов цифровой подписи X9.62-1998 и распределения ключей X9.63-199X на эллиптических кривых. Дата обращения 16 ноября 2008. Архивировано 22 февраля 2012 года.
  5. RFC 4357, глава 5.2, «VKO GOST R 34.10-2001» — Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms
  6. RFC 4491 — Using the GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms with the Internet X.509 Public Key Infrastructure
  7. RFC 4490 — Using the GOST 28147-89, GOST R 34.11-94, GOST R 34.10-94, and GOST R 34.10-2001 Algorithms with Cryptographic Message Syntax (CMS)
  8. Leontiev, S., Ed. and G. Chudov, Ed. GOST 28147-89 Cipher Suites for Transport Layer Security (TLS) (англ.) (декабрь 2008). — Internet-Drafts, work in progress. Дата обращения 12 июня 2009. Архивировано 24 августа 2011 года.
  9. S. Leontiev, P. Smirnov, A. Chelpanov. Using GOST 28147-89, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms for XML Security (англ.) (декабрь 2008). — Internet-Drafts, work in progress. Дата обращения 12 июня 2009. Архивировано 24 августа 2011 года.
  10. V. Dolmatov, Ed. Use of GOST signature algorithms in DNSKEY and RRSIG Resource Records for DNSSEC (англ.) (апрель 2009). — Internet-Drafts, work in progress. Дата обращения 12 июня 2009. Архивировано 22 февраля 2012 года.

Ссылки[править | править код]

  • ГОСТ Р 34.10-94 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма»
  • ГОСТ 34.310-95 «Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма»
  • ГОСТ Р 34.10-2001 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»
  • ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»
  • ГОСТ 34.10-2018 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»
Программные реализации
Аппаратные реализации