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