Information technology. Cryptographic data security. Signature and verification processes of electronic digital signature
МКС 35.040
Дата введения - 1 июня 2019 г.
Введен впервые
Предисловие
Цели, основные принципы и основной порядок проведения работ по межгосударственной стандартизации установлены в ГОСТ 1.0-2015 "Межгосударственная система стандартизации. Основные положения" и ГОСТ 1.2-2015 "Межгосударственная система стандартизации. Стандарты межгосударственные, правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия, обновления и отмены"
Сведения о стандарте
1 Разработан Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС")
2 Внесен Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 Принят Межгосударственным советом по метрологии, стандартизации и сертификации (протокол от 29 ноября 2018 г. N 54)
За принятие проголосовали:
Краткое наименование страны по МК (ИСО 3166) 004-97 |
Код страны по МК (ИСО 3166) 004-97 |
Сокращенное наименование национального органа по стандартизации |
Армения |
AM |
Минэкономики Республики Армения |
Киргизия |
KG |
Кыргызстандарт |
Россия |
RU |
Росстандарт |
Таджикистан |
TJ |
Таджикстандарт |
4 Приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 г. N 1059-ст межгосударственный стандарт ГОСТ 34.10-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 г.
5 Настоящий стандарт подготовлен на основе применения ГОСТ Р 34.10-2012
6 Введен впервые
Введение
Настоящий стандарт содержит описание процессов формирования и проверки электронной цифровой подписи (ЭЦП), реализуемой с использованием операций в группе точек эллиптической кривой, определенной над конечным простым полем.
Необходимость разработки настоящего стандарта вызвана потребностью в реализации электронной цифровой подписи разной степени стойкости в связи с повышением уровня развития вычислительной техники. Стойкость электронной цифровой подписи основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции по ГОСТ 34.11.
Настоящий стандарт разработан с учетом терминологии и концепций международного стандарта ИСО 2382 [1], а также международных стандартов серий ИСО/МЭК 9796 [2], [3], ИСО/МЭК 14888 [4]-[6] и ИСО/МЭК 10118 [7]-[10].
1 Область применения
Настоящий стандарт определяет схему электронной цифровой подписи (ЭЦП) (далее - цифровая подпись), процессы формирования и проверки цифровой подписи под заданным сообщением (документом), передаваемым по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения.
Внедрение цифровой подписи на основе настоящего стандарта повышает по сравнению с ранее действовавшей схемой цифровой подписи уровень защищенности передаваемых сообщений от подделок и искажений.
Настоящий стандарт рекомендуется применять при создании, эксплуатации и модернизации систем обработки информации различного назначения.
2 Нормативные ссылки
В настоящем стандарте использована нормативная ссылка на следующий межгосударственный стандарт:
ГОСТ 34.11-2018 Информационная технология. Криптографическая защита информации. Функция хэширования
Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочного стандарта в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если ссылочный стандарт заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться заменяющим (измененным) стандартом. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
3.1 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
3.1.1 дополнение (appendix): Строка бит, формируемая из цифровой подписи и произвольного текстового поля.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.2 ключ подписи (signature key): Элемент секретных данных, специфичный для субъекта и используемый только данным субъектом в процессе формирования цифровой подписи.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.3 ключ проверки подписи (verification key): Элемент данных, математически связанный с ключом подписи и используемый проверяющей стороной в процессе проверки цифровой подписи.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.4 параметр схемы ЭЦП (domain parameter): Элемент данных, общий для всех субъектов схемы цифровой подписи, известный или доступный всем этим субъектам.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.5 подписанное сообщение (signed message): Набор элементов данных, состоящий из сообщения и дополнения, являющегося частью сообщения.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.6 последовательность псевдослучайных чисел (pseudo-random number sequence): Последовательность чисел, полученная в результате выполнения некоторого арифметического (вычислительного) процесса, используемая в конкретном случае вместо последовательности случайных чисел.
Примечание - Адаптировано из ИСО 2382 [1].
3.1.7 последовательность случайных чисел (random number sequence): Последовательность чисел, каждое из которых не может быть предсказано (вычислено) только на основе знания предшествующих ему чисел данной последовательности.
Примечание - Адаптировано из ИСО 2382 [1].
3.1.8 процесс проверки подписи (verification process): Процесс, в качестве исходных данных которого используются подписанное сообщение, ключ проверки подписи и параметры схемы ЭЦП, результатом которого является заключение о правильности или ошибочности цифровой подписи.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.9 процесс формирования подписи (signature process): Процесс, в качестве исходных данных которого используются сообщение, ключ подписи и параметры схемы ЭЦП, а в результате формируется цифровая подпись.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.10 свидетельство (witness): Элемент данных, представляющий соответствующее доказательство достоверности (недостоверности) подписи проверяющей стороне.
3.1.11 случайное число (random number): Число, выбранное из определенного набора чисел таким образом, что каждое число из данного набора может быть выбрано с одинаковой вероятностью.
Примечание - Адаптировано из ИСО 2382 [1].
3.1.12 сообщение (message): Строка бит произвольной конечной длины.
Примечание - Адаптировано из ИСО/МЭК 14888-1 [4].
3.1.13 хэш-код (hash-code): Строка бит, являющаяся выходным результатом хэш-функции.
Примечание - Адаптировано из ИСО/МЭК 10118-1 [7].
3.1.14 хэш-функция (collision-resistant hash-function): Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам:
1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение;
2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции;
3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение.
Примечания
1 Адаптировано из ИСО/МЭК 10118-1 [7].
2 Применительно к области электронной цифровой подписи свойство по перечислению 1) подразумевает, что по известной электронной цифровой подписи невозможно восстановить исходное сообщение; свойство по перечислению 2) подразумевает, что для заданного подписанного сообщения трудно подобрать другое (фальсифицированное) сообщение, имеющее ту же электронную цифровую подпись; свойство по перечислению 3) подразумевает, что трудно подобрать какую-либо пару сообщений, имеющих одну и ту же подпись.
3 В настоящем стандарте в целях сохранения терминологической преемственности с нормативными документами, действующими на территории государства, принявшего настоящий стандарт, и опубликованными ранее на русском языке научно-техническими изданиями установлено, что термины "хэш-функция", "криптографическая хэш-функция", "функция хэширования" и "криптографическая функция хэширования" являются синонимами.
3.1.15 [электронная цифровая] подпись (signature); ЭЦП: Строка бит, полученная в результате процесса формирования подписи.
Примечания
1 Адаптировано из ИСО/МЭК 14888-1 [4].
2 Строка бит, являющаяся подписью, может иметь внутреннюю структуру, зависящую от конкретного механизма формирования подписи.
3 В настоящем стандарте в целях сохранения терминологической преемственности с нормативными документами, действующими на территории государства, принявшего настоящий стандарт, и опубликованными ранее на русском языке научно-техническими изданиями установлено, что термины "электронная подпись", "цифровая подпись" и "электронная цифровая подпись" являются синонимами.
3.2 Обозначения
В настоящем стандарте применены следующие обозначения:
- множество всех двоичных векторов длиной l бит;
V* - множество всех двоичных векторов произвольной конечной длины;
Z - множество всех целых чисел;
р - простое число, р > 3;
- конечное простое поле, представляемое как множество из р целых чисел {0, 1, ..., р - 1};
b(mod р) - минимальное неотрицательное число, сравнимое с b по модулю р;
М - сообщение пользователя, М V*;
() - конкатенация (объединение) двух двоичных векторов;
a, b - коэффициенты эллиптической кривой;
m - порядок группы точек эллиптической кривой;
q - порядок подгруппы группы точек эллиптической кривой;
О - нулевая точка эллиптической кривой;
Р - точка эллиптической кривой порядка q;
d - целое число - ключ подписи;
Q - точка эллиптической кривой - ключ проверки подписи;
- цифровая подпись под сообщением М.
4 Общие положения
Общепризнанная схема (модель) цифровой подписи [4] охватывает следующие процессы:
- генерация ключей (подписи и проверки подписи);
- формирование подписи;
- проверка подписи.
В настоящем стандарте процесс генерации ключей (подписи и проверки подписи) не рассмотрен. Характеристики и способы реализации данного процесса определяются вовлеченными в него субъектами, которые устанавливают соответствующие параметры по взаимному согласованию.
Механизм цифровой подписи определяется посредством реализации двух основных процессов (см. раздел 6):
- формирование подписи (см. 6.2);
- проверка подписи (см. 6.3).
Цифровая подпись предназначена для аутентификации лица, подписавшего электронное сообщение. Кроме того, использование ЭЦП предоставляет возможность обеспечить следующие свойства при передаче в системе подписанного сообщения:
- осуществление контроля целостности передаваемого подписанного сообщения;
- доказательное подтверждение авторства лица, подписавшего сообщение;
- защита сообщения от возможной подделки.
Схематическое представление подписанного сообщения показано на рисунке 1.
Рисунок 1 - Схема подписанного сообщения
Поле "Текст", показанное на данном рисунке и дополняющее поле "Цифровая подпись", может, например, содержать идентификаторы субъекта, подписавшего сообщение, и/или метку времени.
Установленная в настоящем стандарте схема цифровой подписи должна быть реализована с использованием операций группы точек эллиптической кривой, определенной над конечным простым полем, а также хэш-функции.
Криптографическая стойкость данной схемы цифровой подписи основывается на сложности решения задачи дискретного логарифмирования в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции. Алгоритмы вычисления хэш-функции установлены в ГОСТ 34.11.
Параметры схемы цифровой подписи, необходимые для ее формирования и проверки, определены в 5.3. В настоящем стандарте предусмотрена возможность выбора одного из двух вариантов требований к параметрам.
Настоящий стандарт не определяет процесс генерации параметров схемы цифровой подписи. Конкретный алгоритм (способ) реализации данного процесса определяется субъектами схемы цифровой подписи, исходя из требований к аппаратно-программным средствам, реализующим электронный документооборот.
Цифровая подпись, представленная в виде двоичного вектора длиной 512 или 1024 бита, должна вычисляться с помощью определенного набора правил, изложенных в 6.2.
Набор правил, позволяющих принять либо отвергнуть цифровую подпись под полученным сообщением, установлен в 6.3.
5 Математические объекты
5.1 Общие положения математических объектов
Для определения схемы цифровой подписи необходимо описать базовые математические объекты, используемые в процессах ее формирования и проверки. В настоящем разделе установлены основные математические определения и требования, предъявляемые к параметрам схемы цифровой подписи.
5.2 Математические определения
Эллиптической кривой E, определенной над конечным простым полем Fp (где р > 3 - простое число), называется множество пар чисел (х, у), х, y Fp, удовлетворяющих тождеству
,
(1)
где a, b Fp и 4а3 + 27b2 не сравнимо с нулем по модулю р.
Инвариантом эллиптической кривой называется величина J(E), удовлетворяющая тождеству
.
(2)
Коэффициенты a, b эллиптической кривой Е по известному инварианту J(E) определяются следующим образом:
,
(3)
где , J(E) 0 или 1728.
Пары (х, у), удовлетворяющие тождеству (1), называются "точками эллиптической кривой E"; х и у - соответственно х- и у-"координатами точки".
Точка эллиптической кривой обозначается Q(x, у) или просто Q. Две точки эллиптической кривой равны, если равны их соответствующие х- и у-координаты.
На множестве всех точек эллиптической кривой Е введем операцию сложения, которую будем обозначать знаком "+". Для двух произвольных точек Q1(x1, у1) и Q2(x2, у2) эллиптической кривой Е рассмотрим несколько случаев.
Для точек Q1 и Q2, координаты которых удовлетворяют условию х1 х2, их суммой называется точка Q3(x3, у3), координаты которой определяются сравнениями
,
(4)
где .
Если выполнены равенства х1 = х2 и у1 = у2 0, то координаты точки Q3 определяются следующим образом:
,
(5)
где .
Если выполнены условия х1 = х2 и у1 - y2 (mod p), то сумма точек Q1 и Q2 называется нулевой точкой О без определения ее х- и у-координат. В этом случае точка Q2 называется отрицанием точки Q1. Для нулевой точки О выполнены равенства
,
(6)
где Q - произвольная точка эллиптической кривой E.
Относительно введенной операции сложения множество всех точек эллиптической кривой E вместе с нулевой точкой образуют конечную абелеву (коммутативную) группу порядка m, для которого выполнено неравенство
.
(7)
Точка Q называется "точкой кратности k" или просто "кратной точкой эллиптической кривой E", если для некоторой точки Р выполнено равенство
.
(8)
5.3 Параметры цифровой подписи
Параметрами схемы цифровой подписи являются:
- простое число р - модуль эллиптической кривой;
- эллиптическая кривая E, задаваемая своим инвариантом J(E) или коэффициентами a, b Fp;
- целое число m - порядок группы точек эллиптической кривой E;
- простое число q - порядок циклической подгруппы группы точек эллиптической кривой E, для которого выполнены следующие условия:
;
(9)
- точка Р О эллиптической кривой E с координатами (хр, ур), удовлетворяющая равенству qP = О;
- хэш-функция h: V* Vl, отображающая сообщения, представленные в виде двоичных векторов произвольной конечной длины, в двоичные векторы длины l бит. Хэш-функция определена в ГОСТ 34.11. Если 2254 < q < 2256, то l = 256. Если 2508 < q < 2512, то l = 512.
Каждый пользователь схемы цифровой подписи должен обладать личными ключами:
- ключом подписи - целым числом d, удовлетворяющим неравенству 0 < d < q;
- ключом проверки подписи - точкой эллиптической кривой Q с координатами (xq, yq), удовлетворяющей равенству dP = Q.
К приведенным выше параметрам схемы цифровой подписи предъявляют следующие требования:
- должно быть выполнено условие рt 1 (mod q), для всех целых t = 1, 2, ... В, где В = 31, если 2254 < q < 2256, и В = 131, если 2508 < q < 2512;
- должно быть выполнено неравенство m р;
- инвариант кривой должен удовлетворять условию J(E) 0 и J(E) 1728.
5.4 Двоичные векторы
Для определения процессов формирования и проверки цифровой подписи необходимо установить соответствие между целыми числами и двоичными векторами длины l бит.
Рассмотрим следующий двоичный вектор длиной l бит, в котором младшие биты расположены справа, а старшие - слева:
,
(10)
где , i = 0, ..., l - 1 равно либо 1, либо 0.
Число Z соответствует двоичному вектору , если выполнено равенство
.
(11)
Для двух двоичных векторов
,
,
(12)
соответствующих целым числам и , операция конкатенации (объединения) определяется следующим образом:
.
(13)
Объединение представляет собой двоичный вектор длиной 2l бит, составленный из коэффициентов векторов и .
Формулы (12) и (13) определяют способ разбиения двоичного вектора длиной 2l бит на два двоичных вектора длиной l бит, конкатенацией которых он является.
6 Основные процессы
6.1 Общие положения
В настоящем разделе определены процессы формирования и проверки цифровой подписи под сообщением пользователя.
Для реализации данных процессов необходимо, чтобы всем пользователям были известны параметры схемы цифровой подписи, соответствующие требованиям 5.3.
Кроме того, каждый пользователь должен иметь ключ подписи d и ключ проверки подписи Q(xq, yq), которые также должны соответствовать требованиям 5.3.
6.2 Формирование цифровой подписи
Для получения цифровой подписи под сообщением M V* необходимо выполнить следующие действия (шаги) по алгоритму I:
Шаг 1 - вычислить хэш-код сообщения М : = h(М).
(14)
Шаг 2 - вычислить целое число , двоичным представлением которого является вектор , и определить
.
(15)
Если е = 0, то определить е = 1.
Шаг 3 - сгенерировать случайное (псевдослучайное) целое число k, удовлетворяющее неравенству
.
(16)
Шаг 4 - вычислить точку эллиптической кривой С = kР и определить
,
(17)
где - х-координата точки С.
Если r = 0, то необходимо вернуться к шагу 3.
Шаг 5 - вычислить значение
.
(18)
Если s = 0, то необходимо вернуться к шагу 3.
Шаг 6 - вычислить двоичные векторы и , соответствующие r и s, и определить цифровую подпись = () как конкатенацию двух двоичных векторов.
Исходными данными этого процесса являются ключ подписи d и подписываемое сообщение М, а выходным результатом - цифровая подпись .
Схема процесса формирования цифровой подписи приведена на рисунке 2.
Рисунок 2 - Схема процесса формирования цифровой подписи
6.3 Проверка цифровой подписи
Для проверки цифровой подписи под полученным сообщением М необходимо выполнить следующие действия (шаги) по алгоритму II:
Шаг 1 - по полученной подписи вычислить целые числа r и s. Если выполнены неравенства 0 < r < q, 0 < s < q, то перейти к следующему шагу. В противном случае подпись неверна.
Шаг 2 - вычислить хэш-код полученного сообщения М
.
(19)
Шаг 3 - вычислить целое число , двоичным представлением которого является вектор , и определить
.
(20)
Если е = 0, то определить е = 1.
Шаг 4 - вычислить значение v е-1 (mod q).
(21)
Шаг 5 - вычислить значения
.
(22)
Шаг 6 - вычислить точку эллиптической кривой С = z1P + z2Q и определить
,
(23)
где - х-координата точки С.
Шаг 7 - если выполнено равенство R = r, то подпись принимается, в противном случае - подпись неверна.
Исходными данными этого процесса являются подписанное сообщение М, цифровая подпись и ключ проверки подписи Q, а выходным результатом - свидетельство о достоверности или ошибочности данной подписи.
Схема процесса проверки цифровой подписи приведена на рисунке 3.
Рисунок 3 - Схема процесса проверки цифровой подписи
Библиография
Примечание - Оригиналы международных стандартов ИСО и ИСО/МЭК находятся в национальных (государственных) органах по стандартизации * государств, принявших настоящий стандарт.
------------------------------
* В Российской Федерации оригиналы международных стандартов ИСО и ИСО/МЭК находятся в Федеральном информационном фонде стандартов.
------------------------------
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Межгосударственный стандарт ГОСТ 34.10-2018 "Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи" (введен в действие приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 г. N 1059-ст)
Текст ГОСТа приводится по официальному изданию Стандартинформ, Москва, 2018 г.
Дата введения - 1 июня 2019 г.
Текст ГОСТа приводится с учетом поправки, опубликованной в ИУС "Национальные стандарты", 2021 г., N 1