национальный стандарт рф гост р 34.10-2021 "информационная технология. криптографическая защита информации. процессы формирования и проверки электронной цифровой подписи" (утв. приказом федерального агентства по техническому регулированию и метрологии от 07.08.2021 n 215-ст) | гарант
Information technology. Cryptographic data security. Generation and verification processes of electronic digital signature
Дата введения – 1 января 2021 г.
3 Термины, определения и обозначения
3.1 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
3.1.10 свидетельство (witness): Элемент данных, представляющий соответствующее доказа-тепьство достоверности (недостоверности) подписи проверяющей стороне.
4 Общие положения
Общепризнанная схема (модель) цифровой подписи (см. ИСО/МЭК 14888-1 [4]) охватывает следующие процессы:
– генерация ключей (подписи и проверки подписи);
– формирование подписи;
– проверка подписи.
В настоящем стандарте процесс генерации ключей (подписи и проверки подписи) не рассмотрен. Характеристики и способы реализации данного процесса определяются вовлеченными в него субъектами, которые устанавливают соответствующие параметры по взаимному согласованию.
Механизм цифровой подписи определяется посредством реализации двух основных процессов (см. раздел 6):
– формирование подписи (см. 6.1);
– проверка подписи (см. 6.2).
Цифровая подпись предназначена для аутентификации лица, подписавшего электронное сообщение. Кроме того, использование ЭЦП предоставляет возможность обеспечить следующие свойства при передаче в системе подписанного сообщения:
– осуществление контроля целостности передаваемого подписанного сообщения;
– доказательное подтверждение авторства лица, подписавшего сообщение;
– защита сообщения от возможной подделки.
Схематическое представление подписанного сообщения показано на рисунке 1.
Рисунок 1 – Схема подписанного сообщения
Поле “Текст”, показанное на данном рисунке и дополняющее поле “Цифровая подпись”, может, например, содержать идентификаторы субъекта, подписавшего сообщение, и/или метку времени.
Установленная в настоящем стандарте схема цифровой подписи должна быть реализована с использованием операций группы точек эллиптической кривой, определенной над конечным простым полем, а также хэш-функции.
Криптографическая стойкость данной схемы цифровой подписи основывается на сложности решения задачи дискретного логарифмирования в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции. Алгоритмы вычисления хэш-функции установлены в ГОСТ Р 34.11-2021.
Параметры схемы цифровой подписи, необходимые для ее формирования и проверки, определены в 5.2. В настоящем стандарте предусмотрена возможность выбора одного из двух вариантов требований к параметрам.
Настоящий стандарт не определяет процесс генерации параметров схемы цифровой подписи. Конкретный алгоритм (способ) реализации данного процесса определяется субъектами схемы цифровой подписи исходя из требований к аппаратно-программным средствам, реализующим электронный документооборот.
Цифровая подпись, представленная в виде двоичного вектора длиной 512 или 1024 бита, должна вычисляться с помощью определенного набора правил, изложенных в 6.1.
Набор правил, позволяющих принять либо отвергнуть цифровую подпись под полученным сообщением, установлен в 6.2.
5 Математические объекты
Для определения схемы цифровой подписи необходимо описать базовые математические объекты, используемые в процессах ее формирования и проверки. В данном разделе установлены основные математические определения и требования, предъявляемые к параметрам схемы цифровой подписи.
5.1 Математические определения
Эллиптической кривой Е, определенной над конечным простым полем (гдер > 3 – простое число), называется множество пар (х, у), х, , удовлетворяющих уравнению
, (1)
где a, и не сравнимо с нулем по модулю р.
Инвариантом эллиптической кривой называется величина J(E), удовлетворяющая уравнению
. (2)
Пары (х, у), где х, y – элементы поля , удовлетворяющие уравнению (1), называются “точками эллиптической кривой E”; х и у – соответственно х- и у-координатами точки.
Точка эллиптической кривой обозначается Q(x, у) или просто Q. Две точки эллиптической кривой равны, если равны их соответствующие х- и у-координаты.
На множестве точек эллиптической кривой E определена операция сложения, обозначаемая знаком ” “. Для двух произвольных точек и эллиптической кривой E рассматривают несколько случаев.
Для точек и , координаты которых удовлетворяют условию , их суммой называется точка , координаты которой определяются сравнениями
, (3)
где .
Если выполнены равенства и , то координаты точки определяются следующим образом:
, (4)
где .
Если выполнены условия и , то сумма точек и называется нулевой точкой О без определения ее х- и у-координат. В этом случае точка называется отрицанием точки Для нулевой точки О выполнены равенства
, (5)
где Q – произвольная точка эллиптической кривой Е.
Относительно введенной операции сложения множество точек эллиптической кривой E вместе с нулевой точкой образуют конечную абелеву (коммутативную) группу порядка m, для которого выполнено неравенство
. (6)
Точка Q называется “точкой кратности k” или просто “кратной точкой эллиптической кривой E”, если для некоторой точки Р выполнено равенство
5.2 Параметры цифровой подписи
Параметрами схемы цифровой подписи являются:
– простое число р – модуль эллиптической кривой;
– эллиптическая кривая E, задаваемая коэффициентами a, ;
– целое число m – порядок группы точек эллиптической кривой E;
– простое число q – порядок циклической подгруппы группы точек эллиптической кривой E, для которого выполнены следующие условия:
; (8)
– точка эллиптической кривой Е, с координатами , удовлетворяющая равенству qP=O;
– хэш-функция , отображающая сообщения, представленные в виде двоичных векторов произвольной конечной длины, в двоичные векторы длины l бит. Хэш-функция определена в ГОСТ Р 34.11-2021. Если . Если .
Каждый пользователь схемы цифровой подписи должен обладать личными ключами:
– ключом подписи – целым числом d, удовлетворяющим неравенству ;
– ключом проверки подписи – точкой эллиптической кривой Q с координатами , удовлетворяющей равенству dP=Q.
К приведенным выше параметрам схемы цифровой подписи предъявляют следующие требования:
– должно быть выполнено условие , для всех целых t = 1, 2, … В, где В = 31, если , и B = 131, если ;
– должно быть выполнено неравенство ;
– инвариант кривой должен удовлетворять условиям: .
5.3 Двоичные векторы
Для определения процессов формирования и проверки цифровой подписи необходимо установить соответствие между целыми числами и двоичными векторами длины l бит.
Рассмотрим следующий двоичный вектор длиной l бит, в котором младшие биты расположены справа, а старшие – слева:
, (9)
где равно либо 1, либо 0.
Число соответствует двоичному вектору , если выполнено равенство
. (10)
Для двух двоичных векторов
,
. (11)
соответствующих целым числам и , операция конкатенации (объединения) определяется следующим образом:
. (12)
Объединение представляет собой двоичный вектор длиной 2l бит, составленный из компонент векторов , и .
Формулы (11) и (12) определяют способ разбиения двоичного вектора длиной 2l бит на два двоичных вектора длиной l бит, конкатенацией которых он является.
6 Основные процессы
В данном разделе определены процессы формирования и проверки цифровой подписи под сообщением пользователя.
Для реализации данных процессов необходимо, чтобы всем пользователям были известны параметры схемы цифровой подписи, соответствующие требованиям 5.2.
Кроме того, каждый пользователь должен иметь ключ подписи d и ключ проверки подписи , которые также должны соответствовать требованиям 5.2.
6.1 Формирование цифровой подписи
Для получения цифровой подписи под сообщением необходимо выполнить следующие действия (шаги) по алгоритму I:
Шаг 1 – вычислить хэш-код сообщения . (13)
Шаг 2 – вычислить целое число , двоичным представлением которого является вектор h, и определить
. (14)
Если е = 0, то определить е = 1.
Шаг 3 – сгенерировать случайное (псевдослучайное) целое число k, удовлетворяющее неравенству
. (15)
Шаг 4 – вычислить точку эллиптической кривой С = кР и определить
, (16)
где – х-координата точки С.
Если r = 0, то вернуться к шагу 3.
Шаг 5 – вычислить значение
. (17)
Если s = 0, то вернуться к шагу 3.
Шаг 6 – вычислить двоичные векторы и , соответствующие r и s, и определить цифровую подпись как конкатенацию двух двоичных векторов.
Исходными данными этого процесса являются ключ подписи d и подписываемое сообщение М, а выходным результатом – цифровая подпись .
Схема процесса формирования цифровой подписи приведена на рисунке 2.
Рисунок 2 – Схема процесса формирования цифровой подписи
6.2 Проверка цифровой подписи
Для проверки цифровой подписи под полученным сообщением М необходимо выполнить следующие действия (шаги) по алгоритму II:
Шаг 1 – по полученной подписи вычислить целые числа r и s. Если выполнены неравенства , то перейти к следующему шагу. В противном случае подпись неверна.
Шаг 2 – вычислить хэш-код полученного сообщения М:
. (18)
Шаг 3 – вычислить целое число , двоичным представлением которого является вектор , и определить
. (19)
Если е = 0, то определить е = 1.
Шаг 4 – вычислить значение . (20)
Шаг 5 – вычислить значения
. (21)
Шаг 6 – вычислить точку эллиптической кривой и определить
, (22)
где – х-координата точки С.
Шаг 7 – если выполнено равенство R = r, то подпись принимается, в противном случае – подпись неверна.
Исходными данными этого процесса являются подписанное сообщение М, цифровая подпись и ключ проверки подписи Q, а выходным результатом – свидетельство о достоверности или ошибочности данной подписи.
Схема процесса проверки цифровой подписи приведена на рисунке 3.
Рисунок 3 – Схема процесса проверки цифровой подписи
приложение. требования к форме квалифицированного сертификата ключа проверки электронной подписи | гарант
Требования к форме квалифицированного сертификата ключа проверки электронной подписи
I. Общие положения
2. В настоящих Требованиях используются следующие основные понятия, определенные в статье 2 Федерального закона:
1) электронная подпись (далее – ЭП) – информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации) или иным образом связана с такой информацией и которая используется для определения лица, подписывающего информацию;
2) ключ ЭП – уникальная последовательность символов, предназначенная для создания ЭП;
3) ключ проверки ЭП – уникальная последовательность символов, однозначно связанная с ключом ЭП и предназначенная для проверки подлинности ЭП (далее – проверка ЭП);
5) сертификат ключа проверки ЭП – электронный документ или документ на бумажном носителе, выданные УЦ либо доверенным лицом УЦ и подтверждающие принадлежность ключа проверки ЭП владельцу сертификата ключа проверки ЭП;
7) владелец сертификата ключа проверки ЭП – лицо, которому в установленном Федеральным законом порядке выдан сертификат ключа проверки ЭП;
9) средства ЭП – шифровальные (криптографические) средства, используемые для реализации хотя бы одной из следующих функций – создание ЭП, проверка ЭП, создание ключа ЭП и ключа проверки ЭП;
10) средства УЦ – программные и (или) аппаратные средства, используемые для реализации функций УЦ;
3. Настоящие Требования устанавливают требования к совокупности и порядку расположения полей квалифицированного сертификата (далее – форма квалифицированного сертификата).
4. При включении в состав квалифицированного сертификата дополнительных полей требования к их назначению и расположению в квалифицированном сертификате определяются в техническом задании на разработку (модернизацию) средств УЦ.
II. Требования к совокупности полей квалифицированного сертификата
5. Требования к совокупности полей квалифицированного сертификата устанавливаются на основании Федерального закона.
6. В соответствии со статьями 14 и 17 Федерального закона квалифицированный сертификат должен содержать следующую информацию:
– уникальный номер квалифицированного сертификата;
– даты начала и окончания действия квалифицированного сертификата;
– фамилия, имя и отчество (если имеется) владельца квалифицированного сертификата – для физического лица, либо наименование и место нахождения владельца квалифицированного сертификата – для юридического лица, а также в случаях, предусмотренных Федеральным законом, фамилия, имя и отчество (если имеется) физического лица, действующего от имени владельца квалифицированного сертификата – юридического лица на основании учредительных документов юридического лица или доверенности (далее – уполномоченный представитель юридического лица);
– страховой номер индивидуального лицевого счета (далее – СНИЛС) владельца квалифицированного сертификата – для физического лица;
– основной государственный регистрационный номер (далее – ОГРН) владельца квалифицированного сертификата – для юридического лица;
– идентификационный номер налогоплательщика (далее – ИНН) владельца квалифицированного сертификата – для юридического лица;
– ключ проверки ЭП;
– наименование используемого средства ЭП и (или) стандарты, требованиям которых соответствует ключ ЭП и ключ проверки ЭП;
– наименования средств ЭП и средств аккредитованного УЦ, которые использованы для создания ключа ЭП, ключа проверки ЭП, квалифицированного сертификата, а также реквизиты документа, подтверждающего соответствие указанных средств требованиям, установленным в соответствии с Федеральным законом;
– наименование и место нахождения аккредитованного УЦ, который выдал квалифицированный сертификат;
– номер квалифицированного сертификата аккредитованного УЦ;
– ограничения использования квалифицированного сертификата (если такие ограничения установлены).
7. Квалифицированный сертификат должен содержать квалифицированную ЭП аккредитованного УЦ (доверенного лица аккредитованного УЦ, уполномоченного федерального органа), подтверждающую принадлежность ключа проверки ЭП владельцу квалифицированного сертификата.
III. Требования к порядку расположения полей квалифицированного сертификата
10. Структура квалифицированного сертификата в форме электронного документа, определенная в соответствии со спецификацией абстрактной синтаксической нотации версии один 2, должна иметь следующий общий вид:
Certificate ::= SIGNED { SEQUENCE {version [0] Version DEFAULT v l,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
extensions [3] Extensions OPTIONAL } }
SIGNED { ToBeSigned } ::= SEQUENCE {toBeSigned ToBeSigned,
COMPONENTS OF SIGNATURE { ToBeSigned } }SIGNATURE { ToBeSigned } ::= SEQUENCE {algorithmIdentifier AlgorithmIdentifier,
encrypted ENCRYPTED-HASH { ToBeSigned } }ENCRYPTED-HASH { ToBeSigned } ::= BIT STRING (CONSTRAINED BY { ToBeSigned }).------------------------------
2 Справочно: Спецификация абстрактной синтаксической нотации версии один определена в ГОСТ Р ИСО/МЭК 8824-1-2001 “Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации”.
------------------------------
12. Поле encrypted содержит ЭП, сформированную аккредитованным УЦ, доверенным лицом аккредитованного УЦ либо уполномоченным федеральным органом под структурированной совокупностью полей квалифицированного сертификата (toBeSigned).
15. Поле signature (подпись) содержит идентификатор криптографического алгоритма, с использованием которого аккредитованный УЦ, доверенное лицо аккредитованного УЦ либо уполномоченный федеральный орган сформировали ЭП данного квалифицированного сертификата. Содержимое данного поля должно совпадать с содержимым поля algorithmIdentifier.
17. Стандартные атрибуты имени описаны в справочнике выбранных типов атрибутов 1. При описании формы квалифицированного сертификата используются следующие стандартные атрибуты имени:
------------------------------
1 Справочно: Выбранные типы атрибутов определены в ГОСТ Р ИСО/МЭК 9594-6-98 “Информационная технология. Взаимосвязь открытых систем. Справочник. Часть 6. Выбранные типы атрибутов” и в международном стандарте ISO/IEC 9594-6:2008 “Information technology – Open systems interconnection – The Directory: Selected attribute types”, опубликованном по адресу в информационно-телекоммуникационной сети Интернет: http://www.itu.int/rec/T-REC-X.520-200811-I/en.
------------------------------
20. Поле subject имеет тип Name и идентифицирует владельца квалифицированного сертификата.
22. Необязательные поля issuerUniqueIdentifier и subjectUniqueIdentifier имеют тип UniqueIdentifier. Настоящие Требования не устанавливают требований к использованию указанных полей.
25. Дополнение keyUsage определяет область использования ключа проверки ЭП, содержащегося в поле subjectPublicKeylnfo квалифицированного сертификата. Дополнение keyUsage имеет тип KeyUsage, структура которого определяется следующим образом:
KeyUsage ::= BIT STRING {digitalSignature (0),
contentCommitment (1),
keyEncipherment (2),
dataEncipherment (3),
keyAgreement (4),
keyCertSign (5),
cRLSign (6),
encipherOnly (7),
decipherOnly (8)}.
Значение “1” в нулевом бите означает, что область использования ключа включает проверку ЭП под электронными документами, отличными от квалифицированных сертификатов и списков уникальных номеров квалифицированных сертификатов ключей проверки ЭП, действие которых на определенный момент было прекращено УЦ до истечения их действия (далее – список аннулированных сертификатов), предназначенными для выполнения процедур аутентификации или контроля целостности.
Значение “1” в первом бите означает, что область использования ключа включает проверку ЭП под электронными документами, отличными от квалифицированных сертификатов и списков аннулированных сертификатов, в отношении которых ставится задача обеспечения невозможности отказа подписавшего лица от своего действия.
Значение “1” во втором бите означает, что область использования ключа включает зашифрование закрытых или секретных ключей, например в целях их защищенной доставки.
Значение “1” в третьем бите означает, что область использования ключа включает непосредственно зашифрование пользовательских данных без дополнительного использования методов симметричной криптографии.
Значение “1” в четвертом бите означает, что область использования ключа включает согласование ключей.
Значение “1” в пятом бите означает, что область использования ключа включает проверку подписей под квалифицированными сертификатами.
Значение “1” в шестом бите означает, что область использования ключа включает проверку подписей под списками аннулированных сертификатов.
Значение “1” в седьмом бите означает, что область использования ключа включает зашифрование данных в процессе согласования ключей (при этом в четвертом бите должно быть значение “1”).
Значение “1” в восьмом бите означает, что область использования ключа включает расшифрование данных в процессе согласования ключей (при этом в четвертом бите должно быть значение “1”).
Объектный идентификатор дополнения keyUsage имеет вид 2.5.29.15.
28. Сведения о классе средств ЭП владельца квалифицированного сертификата должны быть указаны в дополнении certificatePolicies путем включения следующих идентификаторов:
– для класса средств ЭП КС 1: 1.2.643.100.113.1,
– для класса средств ЭП КС2: 1.2.643.100.113.1, 1.2.643.100.113.2,
– для класса средств ЭП КС3: 1.2.643.100.113.1, 1.2.643.100.113.2, 1.2.643.100.113.3,
– для класса средств ЭП КВ1: 1.2.643.100.113.1, 1.2.643.100.113.2, 1.2.643.100.113.3, 1.2.643.100.113.4,
– для класса средств ЭП КВ2: 1.2.643.100.113.1, 1.2.643.100.113.2, 1.2.643.100.113.3, 1.2.643.100.113.4, 1.2.643.100.113.5,
– для класса средств ЭП КА1: 1.2.643.100.113.1, 1.2.643.100.113.2, 1.2.643.100.113.3, 1.2.643.100.113.4, 1.2.643.100.113.5, 1.2.643.100.113.6.
Для средств ЭП, класс которых отличается от класса средств УЦ, в которых используются указанные средства ЭП, следует указывать идентификаторы для класса средств ЭП, соответствующего классу средств УЦ.
29. Для указания в квалифицированном сертификате наименования используемого владельцем квалифицированного сертификата средства ЭП должно использоваться некритичное дополнение subjectSignTool типа UTF8String SIZE(1..200), объектный идентификатор которого имеет вид 1.2.643.100.111.
30. Для указания в квалифицированном сертификате наименования средств ЭП и средств аккредитованного УЦ, которые использованы для создания ключа ЭП, ключа проверки ЭП, квалифицированного сертификата, а также реквизитов документа, подтверждающего соответствие указанных средств требованиям, установленным законодательством Российской Федерации, должно использоваться некритичное дополнение issuerSignTool типа IssuerSignTool, имеющего следующее представление:
IssuerSignTool ::= SEQUENCE {signTool UTF8String SIZE(1.200),
cATool UTF8String SIZE(1..200),
signToolCert UTF8String SIZE(1.. 100),
cAToolCert UTF8String SIZE(1.100) }.
В строковом поле signTool должно содержаться полное наименование средства ЭП, которое было использовано для создания ключа ЭП, ключа проверки ЭП и квалифицированного сертификата.
В строковом поле cATool должно содержаться полное наименование средства аккредитованного УЦ, которое было использовано для создания ключа ЭП, ключа проверки ЭП и квалифицированного сертификата.
В строковом поле signToolCert должны содержаться реквизиты заключения ФСБ России о подтверждении соответствия средства ЭП, которое было использовано для создания ключа ЭП, ключа проверки ЭП, требованиям, установленным в соответствии с Федеральным законом (далее – заключение о подтверждении соответствия средства электронной подписи).
В строковом поле cAToolCert должны содержаться реквизиты заключения ФСБ России о подтверждении соответствия средства УЦ, которое было использовано для создания квалифицированного сертификата, требованиям, установленным в соответствии с Федеральным законом (далее – заключение о подтверждении соответствия средства удостоверяющего центра).
Объектный идентификатор типа IssuerSignTool имеет вид 1.2.643.100.112.
Символом “*” отмечены поля, которые в квалифицированном сертификате могут отсутствовать.
