Это не официальный сайт wikipedia.org 01.01.2023

ГОСТ 34.10-2018 — Википедия

ГОСТ 34.10-2018

ГОСТ 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-94 и ГОСТ 34.310-95 была основана на задаче дискретного логарифмирования в мультипликативной группе простого конечного поля большого порядка. Начиная с ГОСТ Р 34.10-2001 стойкость алгоритма основана на более сложной задаче вычисления дискретного логарифма в группе точек эллиптической кривой. Также стойкость алгоритма формирования цифровой подписи основана на стойкости соответствующей хеш-функции:

Тип Наименование Введен в действие Функция хеширования Приказ
Национальный ГОСТ Р 34.10-94 1 января 1995 года ГОСТ Р 34.11-94 Принят постановлением Госстандарта России № 154 от 23 мая 1994 года
Межгосударственный ГОСТ 34.310-95 16 апреля 1998 года ГОСТ 34.311-95
Национальный ГОСТ Р 34.10-2001 1 июля 2002 года ГОСТ Р 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 бит (второй вариант формирования ЭЦП, описанный в стандарте) все преобразования аналогичны.

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

J ( E ) = 1728 4 a 3 4 a 3 + 27 b 2 ( mod p )  , причём 4 a 3 + 27 b 2 0 ( mod p )  .
  • целое число m   — порядок группы точек эллиптической кривой, m   должно быть отлично от p  
  • простое число q  , порядок некоторой циклической подгруппы группы точек эллиптической кривой, то есть выполняется m = n q  , для некоторого n N  . Также q   лежит в пределах 2 254 < q < 2 256  .
  • точка P = ( x P , y P )   эллиптической кривой E  , являющаяся генератором подгруппы порядка q  , то есть q P = 0   и k P 0   для всех k = 1, 2, …, q-1, где 0   — нейтральный элемент группы точек эллиптической кривой E.
  • h ( M )   — хеш-функция (ГОСТ Р 34.11-2012), которая отображает сообщения M в двоичные векторы длины 256 бит.

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

  • ключ шифрования d   — целое число, лежащее в пределах 0 < d < q  .
  • ключ расшифрования Q = ( x Q , y Q )  , вычисляемый как Q = d P  .

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

  • p t 1 ( mod q )  , t = 1.. B  , где B 31  
  • J ( E ) 0   и J ( E ) 1728  

Двоичные векторыПравить

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

Результатом операции конкатенации двух векторов h 1 ¯ = ( α 255 , . . . , α 0 )   и h 2 ¯ = ( β 255 , . . . , β 0 )   называется вектор длины 512 ( h 1 ¯ | h 2 ¯ ) = ( α 255 , . . . , α 0 , β 255 , . . . , β 0 )  . Обратная операция — операция разбиения одного вектора длины 512 на два вектора длины 256.

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

Блок-схемы:

  1. Вычисление хеш-функции от сообщения М: h ¯ = h ( M )  
  2. Вычисление e = z mod q  , и если e = 0  , положить e = 1  . Где z   — целое число, соответствующее h ¯ .  
  3. Генерация случайного числа k   такого, что 0 < k < q .  
  4. Вычисление точки эллиптической кривой C = k P  , и по ней нахождение r = x c mod q ,   где x c   — это координата x   точки C .   Если r = 0  , возвращаемся к предыдущему шагу.
  5. Нахождение s = ( r d + k e ) mod q  . Если s = 0  , возвращаемся к шагу 3.
  6. Формирование цифровой подписи ξ = ( r ¯ | s ¯ )  , где r ¯   и s ¯   — векторы, соответствующие r   и s  .

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

  1. Вычисление по цифровой подписи ξ   чисел r   и s  , учитывая, что ξ = ( r ¯ | s ¯ )  , где r   и s   — числа, соответствующие векторам r ¯   и s ¯  . Если хотя бы одно из неравенств r < q   и s < q   неверно, то подпись неправильная.
  2. Вычисление хеш-функции от сообщения М: h ¯ = h ( M ) .  
  3. Вычисление e = z mod q  , и если e = 0  , положить e = 1  . Где z   — целое число соответствующее h ¯ .  
  4. Вычисление ν = e 1 mod q .  
  5. Вычисление z 1 = s ν mod q   и z 2 = r ν mod q .  
  6. Вычисление точки эллиптической кривой C = z 1 P + z 2 Q  . И определение R = x c mod q  , где x c   — координата x   точки C .  
  7. В случае равенства R = r   подпись правильная, иначе — неправильная.

КриптостойкостьПравить

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

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

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

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

Отличия от ГОСТ Р 34.10-94 (стандарт 1994—2001 гг)Править

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

Алгоритм формирования подписи отличается только в пункте 4. В старом стандарте в этом пункте вычисляются r ~ = a k mod p   и r = r ~ mod q   и, если r = 0  , возвращаемся к пункту 3. Где 1 < a < p 1   и a q mod p = 1  .

Алгоритм проверки подписи отличается только в пункте 6. В старом стандарте в этом пункте вычисляется R = ( a z 1 y z 2 mod p ) mod q  , где y   — открытый ключ для проверки подписи, y = a d mod p  . Если R = r  , подпись правильная, иначе неправильная. Здесь q   — простое число, 2 254 < q < 2 256   и q   является делителем p 1  .

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

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

Возможные примененияПравить

ПримечанияПравить

  1. О принятии и введении в действие государственного стандарта. Постановление Госстандарта РФ от 12.09.2001 N 380-ст  (рус.). bestpravo.ru. Дата обращения: 1 сентября 2019. Архивировано из оригинала 1 сентября 2019 года.
  2. 1 2 3 4 Игоничкина Е. В. Анализ алгоритмов электронной цифровой подписи  (неопр.). Дата обращения: 16 ноября 2008. Архивировано 15 января 2012 года.
  3. Семёнов Г. Цифровая подпись. Эллиптические кривые  (неопр.). «Открытые системы» № 7-8/2002 (8 августа 2002). Дата обращения: 16 ноября 2008. Архивировано 31 декабря 2012 года.
  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.10-2001 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»
  • Текст стандарта ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»
  • Текст стандарта ГОСТ 34.10-2018 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»
Программные реализации
Аппаратные реализации