ГОСТ Р 34.10-2012

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

ГОСТ Р 34.10-2012 (полное название: «ГОСТ Р 34.10-2012. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи») — российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи. Принят и введён в действие Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 года № 215-ст вместо ГОСТ Р 34.10-2001. До ГОСТ Р 34.10-2001 действовал стандарт ГОСТ Р 34.10-94.

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

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

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

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

Данный алгоритм разработан главным управлением безопасности связи Федерального агентства правительственной связи и информации при Президенте Российской Федерации при участии Всероссийского научно-исследовательского института стандартизации. Разрабатывался взамен ГОСТ Р 34.10-94 для обеспечения большей стойкости алгоритма.

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

ГОСТ Р 34.10-2012 и ГОСТ Р 34.10-2001 основаны на эллиптических кривых. Стойкость этих алгоритмов основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции. Для ГОСТ Р 34.10-2012 используется хэш-функция по ГОСТ Р 34.11-2012. Для ГОСТ Р 34.10-2001 — ГОСТ Р 34.11-94.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 1 2 3 4 Игоничкина Е. В. Анализ алгоритмов электронной цифровой подписи. Проверено 16 ноября 2008. Архивировано 22 февраля 2012 года.
  2. Семёнов Г. Цифровая подпись. Эллиптические кривые. «Открытые системы» № 7-8/2002 (8 августа 2002). Проверено 16 ноября 2008. Архивировано 22 февраля 2012 года.
  3. Бондаренко М. Ф., Горбенко И. Д., Качко Е. Г., Свинарев А. В., Григоренко Т. А. Сущность и результаты исследований свойств перспективных стандартов цифровой подписи X9.62-1998 и распределения ключей X9.63-199X на эллиптических кривых. Проверено 16 ноября 2008. Архивировано 22 февраля 2012 года.
  4. 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
  5. 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
  6. 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)
  7. 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 года.
  8. 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 года.
  9. 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 года.

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

Программные реализации
Аппаратные реализации
  • ШИПКА. — программно-аппаратный криптографический комплекс компании ОКБ САПР. Проверено 25 июня 2014. Архивировано 15 декабря 2007 года.