ГОСТ Р 34.10-2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи (применение прекращено с 01 января 2013 г., взамен введен ГОСТ Р 34.10-2012)

Содержание энциклопедии

К списку документов

5.3 Двоичные векторы

Для определения процессов формирования и проверки цифровой подписи необходимо установить соответствие между целыми числами и двоичными векторами длины 256 бит.

Рассмотрим следующий двоичный вектор длиной 256 бит, в котором младшие биты расположены справа, а старшие - слева

(10)

где , i = 0, ..., 255 равно либо 1, либо 0. Будем считать, что число соответствует двоичному вектору , если выполнено равенство

(11)

Для двух двоичных векторов и , соответствующих целым числам и , определим операцию конкатенации (объединения) следующим образом. Пусть

(12)

тогда их объединение имеет вид

(13)

и представляет собой двоичный вектор длиной 512 бит, составленный из коэффициентов векторов и .

С другой стороны, приведенные формулы определяют способ разбиения двоичного вектора длиной 512 бит на два двоичных вектора длиной 256 бит, конкатенацией которых он является.

6 Основные процессы

В данном разделе определены процессы формирования и проверки цифровой подписи под сообщением пользователя.

Для реализации данных процессов необходимо, чтобы всем пользователям были известны параметры схемы цифровой подписи, удовлетворяющие требованиям 5.2.

Кроме того, каждый пользователь должен иметь ключ подписи d и ключ проверки подписи , которые также должны удовлетворять требованиям 5.2.

6.1 Формирование цифровой подписи

Для получения цифровой подписи под сообщением необходимо выполнить следующие действия (шаги) по алгоритму I.

Шаг 1 - вычислить хэш-код сообщения

(14)

Шаг 2 - вычислить целое число а, двоичным представлением которого является вектор , и определить

(15)

Если е = 0, то определить е = 1.

Шаг 3 - сгенерировать случайное (псевдослучайное) целое число k , удовлетворяющее неравенству

0 < k < q .

(16)

Шаг 4 - вычислить точку эллиптической кривой C = kP и определить

(17)

где - x -координата точки С . Если r = 0, то вернуться к шагу 3.

Шаг 5 - вычислить значение

(18)

Если s = 0, то вернуться к шагу 3.

Шаг 6 - вычислить двоичные векторы и , соответствующие r и s , и определить цифровую подпись как конкатенацию двух двоичных векторов.

Исходными данными этого процесса являются ключ подписи d и подписываемое сообщение М , а выходным результатом - цифровая подпись .

Схематическое представление процесса формирования цифровой подписи приведено на рисунке 2.

Рисунок 2 - Схема процесса формирования цифровой подписи

6.2 Проверка цифровой подписи

Для проверки цифровой подписи , под полученным сообщением М необходимо выполнить следующие действия (шаги) по алгоритму II.

Шаг 1 - по полученной подписи вычислить целые числа r и s . Если выполнены неравенства 0 < r < q, 0 < s < q , то перейти к следующему шагу. В противном случае подпись неверна.

Шаг 2 - вычислить хэш-код полученного сообщения М

(19)

Шаг 3 - вычислить целое число , двоичным представлением которого является вектор , и определить

(20)

Если е = 0, то определить е = 1.

Шаг 4 - вычислить значение

(21)

Шаг 5 - вычислить значения

(22)

Шаг 6 - вычислить точку эллиптической кривой и определить

(23)

где - x -координата точки С .

Шаг 7 - если выполнено равенство R = r , то подпись принимается, в противном случае, подпись неверна.

Исходными данными этого процесса являются подписанное сообщение М, цифровая подпись , и ключ проверки Q, а выходным результатом - свидетельство о достоверности или ошибочности данной подписи.

Схематическое представление процесса проверки цифровой подписи приведено на рисунке 3.

Рисунок 3 - Схема процесса проверки цифровой подписи

ПРИЛОЖЕНИЕ А

(справочное)

Дополнительные термины в области ЭЦП

В настоящем приложении приведены дополнительные международные термины, применяемые в рассматриваемой и смежных областях.

А.1 заполнение (padding): Дополнение строки данных лишними битами (ИСО/МЭК 10118-1 [6]).

А.2 идентификационные данные (identification data): Последовательность элементов данных, включая отличительный идентификатор объекта, принадлежащая объекту и используемая для его обозначения (ИСО/МЭК 148881-1 [3]).

А.З уравнение цифровой подписи (signature equation): Уравнение, определяемое функцией цифровой подписи (ИСО/МЭК 148881-1 [3]).

А.4 функция проверки (verification function): Функция процесса проверки, определяемая ключом проверки, выдающая в качестве результата вычисленное значение свидетельства о достоверности подписи (ИСО/МЭК 148881-1 [3]).

А.5 функция цифровой подписи (signature function): Функция в процессе формирования подписи, определяемая ключом подписи и параметрами схемы ЭЦП. Эта функция в качестве исходных данных получает часть исходных данных и, возможно, формирователь последовательности псевдослучайных чисел (рандомизатор), а в результате выдает вторую часть цифровой подписи.

ПРИЛОЖЕНИЕ Б

(справочное)

Контрольный пример

Данное приложение носит справочный характер и не является частью стандарта. Приводимые ниже значения параметров р, а, b, m, q, Р , а также значения ключей подписи и проверки d и Q рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящем стандарте.

Все числовые значения приведены в десятичной и шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления. Символ "\\" обозначает перенос числа на новую строку. Например, запись

12345\\

6789010

499602D216

представляет целое число 1234567890, соответственно, в десятичной и шестнадцатеричной системах счисления.

Б.1 Параметры схемы цифровой подписи

Для формирования и проверки цифровой подписи должны быть использованы следующие параметры (см. 5.2).

Б.1.1 Модуль эллиптической кривой

В данном примере параметру р присвоено следующее значение:

р = 57896044618658097711785492504343953926\\

634992332820282019728792003956564821041 10

р = 8000000000000000000000000000000000000000000000000000000000000431 16

Б.1.2 Коэффициенты эллиптической кривой

В данном примере параметры a и b принимают следующие значения:

a = 7 10

a = 7 16

b = 43308876546767276905765904595650931995\\

942111794451039583252968842033849580414 10

b = 5FBFF498AA938CE739B8E022FBAFEF40563F6E6A3472FC2A514COCE9DAE23B7E 16

Б.1.3 Порядок группы точек эллиптической кривой

В данном примере параметр m принимает следующее значение:

m = 5789604461865809771178549250434395392\\

7082934583725450622380973592137631069619 10

m = 8000000000000000000000000000000150FE8A1892976154C59CFC193ACCF5B3 16

Б.1.4 Порядок циклической подгруппы группы точек эллиптической кривой

В данном примере параметр q принимает следующее значение:

q = 5789604461865809771178549250434395392\\

7082934583725450622380973592137631069619 10

q = 8000000000000000000000000000000150FE8A1892976154C59CFC193ACCF5B3 16

Б.1.5 Коэффициенты точки эллиптической кривой

В данном примере координаты точки Р принимают следующие значения:

= 2 10

= 2 16

= 40189740565390375033354494229370597\\

75635739389905545080690979365213431566280 10

= 8E2A8A0E65147D4BD6316030E16D19\\

C85C97FOA9CA267122B96ABBCEA7E8FC8 16


Страница 3 - 3 из 4
Начало | Пред. | 1 2 3 4 | След. | Конец