ГОСТ Р 34.10-2012

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

ГОСТ Р 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 года.

Ссылки[править | править вики-текст]

Программные реализации
  • Верба-W, Верба-OW. — криптографические проекты компании ЗАО «МО ПНИЭИ». Проверено 16 ноября 2008. Архивировано 22 февраля 2012 года.
  • ГОСТы для OpenSSL. — криптографический проект компании ООО «Криптоком» по добавлению российских криптографических алгоритмов в библиотеку OpenSSL. Проверено 16 ноября 2008. Архивировано 24 августа 2011 года.
  • КриптоПро CSP. — криптографический проект компании «Крипто-Про». Проверено 16 ноября 2008. Архивировано 22 февраля 2012 года.
  • Крипто-КОМ. — криптографический проект компании ЗАО «Сигнал-КОМ». Проверено 16 ноября 2008. Архивировано 22 февраля 2012 года.
  • LISSICryptoLib. — кроссплатформенная криптографическая библиотека компании ООО «ЛИССИ». Проверено 16 ноября 2008. Архивировано 19 мая 2012 года.
  • Крипто-Си (недоступная ссылка — история). — программная библиотека защиты информации компании ООО «КриптоЭкс». Проверено 16 ноября 2008. Архивировано 11 декабря 2007 года.
  • Домен-КС2, Домен-КМ. — программные комплексы, средства криптографической защиты информации компании ОАО «ИнфоТеКС». Проверено 03 мая 2009. Архивировано 22 февраля 2012 года.
  • GOST 2.0. Проверено 13 мая 2009. Архивировано 22 февраля 2012 года.
Аппаратные реализации
  • ШИПКА. — программно-аппаратный криптографический комплекс компании ОКБ САПР. Проверено 25 июня 2014. Архивировано 15 декабря 2007 года.