ГОСТ Р 34.10-2001
Материал из Википедии — свободной энциклопедии
ГОСТ Р 34.10-2001 (полное название: «ГОСТ Р 34.10-2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи») — российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи. Принят и введён в действие Постановлением Госстандарта России от 12 сентября 2001 года вместо ГОСТ Р 34.10-94.
Содержание |
[править] Область применения
Цифровая подпись позволяет:
- Аутентифицировать лицо, подписавшее сообщение;
- Контролировать целостность сообщения;
- Защищать сообщение от подделок;
- Доказать авторство лица, подписавшего сообщение.
[править] История
Данный алгоритм разработан главным управлением безопасности связи Федерального агентства правительственной связи и информации при Президенте Российской Федерации при участии Всероссийского научно-исследовательского института стандартизации. Разрабатывался взамен ГОСТ Р 34.10-94 для обеспечения большей стойкости алгоритма.
[править] Описание
ГОСТ Р 34.10-2001 основан на эллиптических кривых. Его стойкость основывается на сложности взятия дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции по ГОСТу Р 34.11.
После подписывания сообщения М к нему дописывается цифровая подпись размером 512 бит и текстовое поле. В текстовом поле могут содержаться, например, дата и время отправки или различные данные об отправителе:
|
+ |
|
|||
| Дополнение |
Данный алгоритм не описывает механизм генерации параметров, необходимых для формирования подписи, а только определяет, каким образом на основании таких параметров получить цифровую подпись. Механизм генерации параметров определяется на месте в зависимости от разрабатываемой системы.
[править] Алгоритм
[править] Параметры схемы цифровой подписи
- простое число p — модуль эллиптической кривой такой, что p > 2255
- эллиптическая кривая E задается своим инвариантом J(E) или коэффициентами
, где Fp — конечное простое поле. J(E) связан с коэффициентами a и b следующим образом
, при этом
. - целое число m — порядок группы точек эллиптической кривой (то есть число элементов группы). m не должно совпадать с p
- простое число q, порядок одной из циклических подгрупп группы точек эллиптической кривой, то есть выполняется m = nq, для некоторого
. Так же q лежит в пределах 2254 < q < 2256. - точка
эллиптической кривой E, являющаяся генератором подгруппы порядка q, или другими словами qP = 0. Здесь qP = P + P + ...(q раз). А 0 - нулевой элемент группы точек эллиптической кривой. - h(M) — хэш-функция (ГОСТ Р 34.11-94), которая конечные сообщения M отображет в двоичные вектора длины 256 бит.
Каждый пользователь цифровой подписи имеет личные ключи:
- ключ шифрования d — целое число, лежащее в пределах 0 < d < q.
- ключ расшифрования
— точка эллиптической кривой, dP = Q.
При этом должны выполняться
,
, где 
и 
[править] Двоичные векторы
Между двоичными векторами длины 256
и целыми числами
ставится взаимно-однозначное соответствие по следующему правилу
. Здесь αi либо равно 0, либо равно 1. Другими словами,
- это двоичное представление числа z.
Результатом операции конкатенации двух векторов
и
называется вектор длины 512
. Обратная операция — операция разбиения одного вектора длины 512 на два вектора длины 256.
[править] Формирование цифровой подписи
- Вычисление хэш-функции от сообщения М:

- Вычисление e = z(mod q), и если e = 0, положить e = 1. Где z — целое число соответствующее

- Генерация случайного числа k, такого что 0 < k < q
- Вычисление точки эллиптической кривой C = kP, и по ней нахождение r = xc(mod q) (xc — координата x точки C). Если r = 0, возвращаемся к предыдущему шагу.
- Нахождение s = rd + ke(mod q). Если s = 0, возвращаемся к шагу 3.
- Формирование цифровой подписи
, где
и
— векторы, соответствующие r и s.
[править] Проверка цифровой подписи
- Вычисление по цифровой подписи ξ чисел r и s, учитывая, что
, где r и s — числа, соответствующие векторам
и
. Если хотя бы одно из неравенств r < q и s < q неверно, то подпись неправильная. - Вычисление хэш-функции от сообщения М:

- Вычисление e = z(mod q), и если e = 0, положить e = 1. Где z — целое число соотвествующее

- Вычисление ν = e − 1(mod q).
- Вычисление z1 = sν(mod q) и z2 = − rν(mod q)
- Вычисление точки эллиптической кривой C = z1P + z2Q. И определение R = xc(mod q), где xc — координата x кривой C. В случае равенства R = r подпись правильная, иначе — неправильная.
[править] Криптостойкость
Криптостойкость цифровой подписи опирается на две компоненты — на стойкость хэш-функции и на стойкость самого алгорима шифрования.[1]
Вероятность взлома хэш-функции по ГОСТ 34.11-94 составляет 1,73 * 10 − 77 при подборе коллизии на фиксированное сообщение и 2,94 * 10 − 39 при подборе любой коллизии.[1] Стойкость алгоритма шифрования основывается на дискретном логарифмировании в группе точек эллиптической кривой. На данный момент нет метода решения данной задачи хотя бы с субэкспоненциальной сложностью.[2]
Одни из самых быстрых алгоримов, на данный момент, при правильном выборе параметров — ρ-метод и Ι-метод Полларда.[3]
Для оптимизированного ρ-метода Полларда вычислительная сложность оценивается как
. Таким образом для обеспечения криптостойкости 1030 операций необходимо использовать 256-разрядное q.[1]
[править] Отличия от ГОСТ 34.10-94 (старый стандарт)
Новый и старый ГОСТы цифровой подписи очень похожи друг на друга. Основное отличие — в старом стандарте часть операций проводится над полем
, а в новом — над группой точек эллиптической кривой, поэтому требования налагаемые на простое число p в старом стандарте(2509 < p < 2512 или 21020 < p < 21024) более жесткие, чем в новом.
Алгоритм формирования подписи отличается только в пункте 4. В старом стандарте в этом пункте вычисляются
и
и если r = 0, возвращаемся к пункту 3. Где 1 < a < p − 1 и aq = 1(mod q).
Алгоритм проверки подписи отличается только в пункте 6. В старом стандарте в этом пункте вычисляется R = (az1yz2(mod p))(mod q). Если R = r, подпись правильная, иначе неправильная. Где y — открытый ключ для проверки подписи, y = ad(mod p).
Здесь q — простое число, 2254 < q < 2256 и q является делителем p − 1.
Использование математического аппарата группы точек эллиптической кривой, позволяет существенно сократить порядок модуля p, без потери криптостойкости.[1]
Также старый стандарт описывает механизмы получения чисел p, q и a.
[править] Возможные применения
- Использование пары ключей (открытый, закрытый) для установления ключа сессии.[4]
- Использование в сертификатах открытых ключей.[5]
- Использование в S/MIME (PKCS#7, Cryptographic Message Syntax).[6]* Использование для защиты соединений в TLS (SSL, HTTPS, WEB).[7]
- Использование для защиты сообщений в XML Signature (XML Encryption).[8]
- Защита целостности Интернет адресов и имён (DNSSEC).[9]
[править] Примечания
- ↑ 1 2 3 4 Игоничкина Е. В. Анализ алгоритмов электронной цифровой подписи. Проверено 16 ноября 2008.
- ↑ Коржев В. Цифровая подпись. Эллиптические кривые. «Открытые системы» № 7-8/2002 (8 августа 2002). Проверено 16 ноября 2008.
- ↑ Бондаренко М. Ф., Горбенко И. Д., Качко Е. Г., Свинарев А. В., Григоренко Т. А. Сущность и результаты исследований свойств перспективных стандартов цифровой подписи X9.62-1998 и распределения ключей X9.63-199X на эллиптических кривых. Проверено 16 ноября 2008.
- ↑ Popov М., Kurepkin I., Leontiev S. 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 (англ.) (January 2006). — RFC 4357 (глава 5.2, «VKO GOST R 34.10-2001»). Проверено 16 ноября 2008.
- ↑ Leontiev S., Shefanovski D. 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 (англ.) (May 2006). — RFC 4491. Проверено 16 ноября 2008.
- ↑ Leontiev S., Chudov G. 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) (англ.) (May 2006). — RFC 4490. Проверено 16 ноября 2008.
- ↑ Leontiev, S., Ed. and G. Chudov, Ed. GOST 28147-89 Cipher Suites for Transport Layer Security (TLS) (англ.) (December 2008). — Internet-Drafts, work in progress. Проверено 12 июня 2009.
- ↑ 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 (англ.) (December 2008). — Internet-Drafts, work in progress. Проверено 12 июня 2009.
- ↑ V.Dolmatov, Ed. Use of GOST signature algorithms in DNSKEY and RRSIG Resource Records for DNSSEC (англ.) (April 2009). — Internet-Drafts, work in progress. Проверено 12 июня 2009.
[править] Ссылки
- Информационные технологии. Криптографическая защита информации. Процессы формирования и проверки цифроврй подписи. (2001). — ГОСТ Р 34.10-2001. Проверено 16 ноября 2008.
- Информационные технологии. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе ассиметричного криптографического алгоритма. (1995). — ГОСТ Р 34.10-94. Проверено 16 ноября 2008.
- Программные реализации
- Верба-W, Верба-OW. — криптографические проекты компании ЗАО «МО ПНИЭИ». Проверено 16 ноября 2008.
- Патч для OpenSSL. — криптографический проект компании ООО «Криптоком» по добавлению российских криптографических алгоритмов в библиотеку OpenSSL. Проверено 16 ноября 2008.
- КриптоПро CSP. — криптографический проект компании «Крипто-Про». Проверено 16 ноября 2008.
- Крипто-КОМ. — криптографический проект компании ЗАО «Сигнал-КОМ». Проверено 16 ноября 2008.
- LISSICryptoLib. — кроссплатформенная криптографическая билиотека компании ООО «ЛИССИ». Проверено 16 ноября 2008.
- Крипто-Си. — программная библиотека защиты информации компании ООО «КриптоЭкс». Проверено 16 ноября 2008.
- Домен-КС2, Домен-КМ. — программные комплексы, средства криптографической защиты информации компании ОАО «ИнфоТеКС». Проверено 03 мая 2009.
- Аппаратные реализации
- Шипка. — программно-аппаратный криптографический комплекс компании ОКБ САПР. Проверено 16 ноября 2008.

