Настоящие рекомендации определяют три схемы выработки общего ключа с аутентификацией на основе открытого ключа:
1) эхинацея-3 (Э-3) - схема выработки общего ключа с двусторонней аутентификацией при помощи ключа подписи;
2) эхинацея-2 (Э-2) - схемы выработки общего ключа с односторонней аутентификацией при помощи ключа подписи;
3) лимонник-3 (Л-3) - схема выработки общего ключа с возможностью использования двух различных эллиптических кривых и с двусторонней аутентификацией при помощи ключа схемы Диффи-Хеллмана.
4.1 Эллиптические кривые
Предполагается использование операций в группе точек эллиптической кривой E над конечным простым полем характеристики p, заданной в форме Вейерштрасса -
или в форме Эдвардса . Для обозначения параметров эллиптической кривой E в форме Вейерштрасса будет использоваться обозначение (p, a, b, m, q, xp, yp) согласно ГОСТ Р 34.10-2012, а для эллиптической кривой в форме Эдвардса - обозначение (p, a, b, m, q, xp, yp, e, d, up, vp) согласно [1].Используемые эллиптические кривые должны удовлетворять требованиям ГОСТ Р 34.10 при 2508 < q < 2512. Допускается использование эллиптических кривых и в других представлениях, при этом эквивалентное представление кривой в форме Вейерштрасса должно удовлетворять требованиям ГОСТ Р 34.10 при 2508 < q < 2512.
4.2 Код аутентификации сообщения
Для вычисления кода аутентификации сообщения могут использоваться:
1 Алгоритм блочного шифрования с длиной блока 128 бит ("Кузнечик") согласно ГОСТ Р 34.12 в режиме выработки имитовставки согласно ГОСТ Р 34.13.
2 Функция HMAC_GOSTR3411_2012_512, определенная в Р 50.1.113.
4.3 Вычисление производного ключа
В качестве функции вычисления производного ключа
могут использоваться:1) функция хэширования, определенная согласно ГОСТ Р 34.10-2012 с длиной хэш-кода 512 бит;
2) псевдослучайная функция PRF_TLS_GOST3411_2012_512 с длиной выхода 512 бит, определенная в Р 50.1.113.
4.4 Способ вычисления функции
В случае использования кривой в форме Вейерштрасса для Q = (xQ, yQ) выполняется
.В случае использования кривой в форме Эдвардса для Q = (uQ, vQ) выполняется
.Долговременными ключами сторон A и B являются ключи цифровой подписи sA, SA и sB, SB соответственно, определенные согласно 5.2 ГОСТ Р 34.10-2012, и удостоверенные сертификатами ключа проверки CertA и CertB.
Сторона A имеет (IdA,
Параметры эллиптической кривой считаются известными обеим сторонам и согласованными до начала протокола.
Предполагается, что выработка общего ключа и аутентификация осуществляются в рамках сеанса связи, с которым может быть ассоциирована доступная обеим сторонам открытая общая информация OI.
Схема выработки общего ключа с аутентификацией "Эхинацея-3" состоит из следующей последовательности действий.
1) Сторона A случайным образом выбирает kA, где
, и вычисляет точку эллиптической кривой KA = kAP.2) Сторона A посылает стороне B - (IdA, CertA, KA).
3) Сторона B проверяет валидность сертификата ключа проверки CertA. Если это условие не выполнено, то сторона B завершает протокол, возвращая ошибку стороне A, информирующую о невалидности сертификата ключа проверки CertA.
4) Сторона B проверяет, что
и . Если это условие не выполнено, то сторона B завершает протокол, возвращая ошибку стороне A, информирующую о неверном выборе параметров.5) Сторона B случайным образом выбирает kB, где
, и вычисляет точку эллиптической кривой KB = kBP.6) Сторона B вычисляет точку QAB = (m/q)·kBKA.
7) Сторона B вычисляет значение
.8) Сторона B вычисляет общие сеансовые ключи KAB = [TAB]0,255 и MAB = [TAB]256,511.
9) Сторона B вычисляет метку аутентификации
и метку подтверждения ключа .10) Сторона B посылает стороне A - (IdB, CertB, KB, autB, tagB).
11) Сторона A проверяет валидность сертификата ключа проверки CertB. Если это условие не выполнено, то сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невалидности сертификата ключа проверки CertB.
12) Сторона A проверяет цифровую подпись
. Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невозможности аутентификации.13) Сторона A проверяет, что
и . Если это условие не выполнено, то сторона A завершает протокол, возвращая ошибку стороне B, информирующую о неверном выборе параметров.14) Сторона A вычисляет точку QBA = (m/q)·kAKB.
15) Сторона A вычисляет значение
.16) Сторона A вычисляет общие сеансовые ключи KBA = [TBA]0,255 и MBA = [TBA]256,511.
17) Сторона A вычисляет метку подтверждения ключа
и проверяет tagB = tag'B. Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невозможности аутентификации.18) Сторона A вычисляет метку аутентификации
и метку подтверждения ключа .19) Сторона A посылает стороне B - (autA, tagA).
20) Сторона B проверяет цифровую подпись
. Если это условие не выполнено, сторона B завершает протокол, возвращая ошибку стороне A, информирующую о невозможности аутентификации.21) Сторона B вычисляет метку подтверждения ключа
и проверяет tagA = tag'A. Если это условие не выполнено, сторона B завершает протокол, возвращая ошибку стороне A, информирующую о невозможности аутентификации.22) Стороны A и B уничтожают ключи MBA и MAB соответственно.
Стороны A и B находятся в состоянии проведенной аутентификации с выработанным общим ключом
.Сторона B обладает долговременными ключами цифровой подписи sB, SB, определенными согласно ГОСТ Р 34.10-2012 (пункт 5.2), и удостоверенными сертификатом ключа проверки CertB.
Сторона A имеет (IdA,
Параметры эллиптической кривой считаются известными обеим сторонам и согласованными до начала протокола.
Предполагается, что выработка общего ключа и аутентификация осуществляются в рамках сеанса связи, с которым может быть ассоциирована доступная обеим сторонам открытая общая информация OI.
Схема выработки общего ключа с односторонней аутентификацией "Эхинацея-2" состоит из следующей последовательности действий.
1) Сторона A случайным образом выбирает kA, где
, и вычисляет точку эллиптической кривой KA = kAP.2) Сторона A посылает стороне B - (IdA, KA).
3) Сторона B проверяет, что
и . Если это условие не выполнено, то сторона B завершает протокол, возвращая ошибку стороне A, информирующую о неверном выборе параметров.4) Сторона B случайным образом выбирает kB, где
, и вычисляет точку эллиптической кривой KB = kBP.5) Сторона B вычисляет точку QAB = (m/q)·kBKA.
6) Сторона B вычисляет значение
.7) Сторона B вычисляет общие сеансовые ключи KAB = [TAB]0,255 и MAB = [TAB]256,511.
8) Сторона B вычисляет метку аутентификации
и метку подтверждения ключа .9) Сторона B посылает стороне A - (IdB, CertB, KB, autB, tagB).
10) Сторона A проверяет валидность сертификата ключа проверки CertB. Если это условие не выполнено, то сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невалидности сертификата ключа проверки CertB.
11) Сторона A проверяет цифровую подпись
. Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невозможности аутентификации.12) Сторона A проверяет, что
и . Если это условие не выполнено, то сторона A завершает протокол, возвращая ошибку стороне B, информирующую о неверном выборе параметров.13) Сторона A вычисляет точку QBA = (m/q)·kAKB.
14) Сторона A вычисляет значение
.15) Сторона A вычисляет общие сеансовые ключи KBA = [TBA]0,255 и MBA = [TBA]256,511.
16) Сторона A вычисляет метку подтверждения ключа
и проверяет tagB = tag'B. Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невозможности аутентификации.17) Сторона A вычисляет метку подтверждения ключа
.18) Сторона A посылает стороне B - (tagA).
19) Сторона B вычисляет метку подтверждения ключа
и проверяет tagA = tag'A. Если это условие не выполнено, сторона B завершает протокол, возвращая ошибку стороне A, информирующую о невозможности аутентификации.20) Стороны A и B уничтожают ключи MBA и MAB соответственно.
Стороны A и B находятся в состоянии проведенной односторонней аутентификации (B перед A) с выработанным общим ключом
.В данной схеме допускается использование двух (возможно, различных) эллиптических кривых EA и EB.
Долговременными ключами сторон A и B являются ключи цифровой подписи sA, SA и sB, SB соответственно, которые определяются соотношениями SA = sAPA, SB = sBPB, где 0 < sA < qA, 0 < sB < qB, и удостоверенные сертификатами ключей проверки CertA и CertB.
Сторона A имеет (IdA,
Параметры эллиптических кривых EA и EB считаются известными обеим сторонам и согласованными до начала протокола.
Предполагается, что выработка общего ключа и аутентификация осуществляются в рамках сеанса связи, с которым может быть ассоциирована доступная обеим сторонам открытая общая информация OI.
Схема выработки общего ключа с аутентификацией "Лимонник-3" состоит из следующей последовательности действий.
1) Сторона A случайным образом выбирает kA, где
, и вычисляет точку эллиптической кривой KA = kAPB.2) Сторона A посылает стороне B - (IdA, CertA, KA).
3) Сторона B проверяет валидность сертификата ключа проверки CertA. Если это условие не выполнено, сторона B завершает протокол, возвращая ошибку стороне A, информирующую о невалидности сертификата ключа проверки CertA.
4) Сторона B проверяет, что
и . Если это условие не выполнено, сторона B завершает протокол, возвращая ошибку стороне A, информирующую о неверном выборе параметров.5) Сторона B извлекает из сертификата CertA долговременный ключ проверки подписи SA.
6) Сторона B случайным образом выбирает kB, где
, и вычисляет точку эллиптической кривой KB = kBPA.7) Сторона B вычисляет точки QAB = (mA/qA)·kBSA и RAB = (mB/qB)·sBKA.
8) Сторона B вычисляет значение
.9) Сторона B вычисляет общие сеансовые ключи KAB = [TAB]0,255 и MAB = [TAB]256,511.
10) Сторона B вычисляет метку подтверждения ключа
.11) Сторона B посылает стороне A - (IdB, CertB, KB, tagB).
12) Сторона A проверяет валидность сертификата ключа проверки CertB. Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невалидности сертификата ключа проверки CertB.
13) Сторона A проверяет, что
и . Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о неверном выборе параметров.14) Сторона A извлекает из сертификата CertB долговременный ключ проверки подписи SB.
15) Сторона A вычисляет точки QBA = (mA/qA)·sAKB и RBA = (mB/qB)·kBSA.
16) Сторона A вычисляет значение
.17) Сторона A вычисляет общие сеансовые ключи KBA = [TAB]0,255 и MBA = [TAB]256,511.
18) Сторона A вычисляет метку подтверждения ключа
и проверяет tagB = tag'B. Если это условие не выполнено, сторона A завершает протокол, возвращая ошибку стороне B, информирующую о невозможности аутентификации.19) Сторона A вычисляет метку подтверждения ключа
.20) Сторона A посылает стороне B - (tagA).
21) Сторона B вычисляет метку подтверждения ключа
и проверяет tagA = tag'A. Если это условие не выполнено, сторона B завершает протокол, возвращая ошибку стороне A, информирующую о невозможности аутентификации.22) Стороны A и B уничтожают ключи MBA и MAB соответственно.
Стороны A и B находятся в состоянии проведенной аутентификации с выработанным общим ключом
.
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/prikaz/75/r_44707.html
На правах рекламы:
|