Гост р 34.10-94: информационная технология. криптографическая защита информации. процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма
1 Область применения …….. 1
2 Нормативные ссылки . . . … 1
3 Обозначения . ………… 1
4 Общие положения .. 2
5 Процедура выработки подписи……….. 3
6 Процедура проверки подписи ……….. 3
7 Процедуры получения чисел р, q и а …….. 4
Приложение А Проверочные примеры……. 9
Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности в государственных и коммерческих структурах.
Криптографические методы защиты информации являются объектом серьезных научных исследований И стандартизации на национальных, региональных и международных уровнях.
Настоящий стандарт определяет процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма с применением функции хэширования.
Электронная цифровая подпись обеспечивает целостность сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, с гарантированной идентификацией ее автора (лица, подписавшего документ).
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология.
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ.
Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
Information technology.
Cryptographic Data Security.
Produce and check procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm.
Дата введения 1995—01—01
1 ОБЛАСТЬ ПРИМЕНЕНИЯ
Настоящий стандарт устанавливает процедуры выработки и проверки электронной цифровой подписи (ЭЦП) сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, на базе асимметричного криптографического алгоритма с применением функции хэширования.
Внедрение системы ЭЦП на базе настоящего стандарта обеспечивает защиту передаваемых сообщений от подделки, искажения и однозначно позволяет доказательно подтвердить подпись лица, подписавшего сообщение.
2 НОРМАТИВНЫЕ ССЫЛКИ
В настоящем стандарте использованы ссылки на следующий стандарт:
ГОСТ Р 34.11-94 Информационная технология. Криптографическая защита информации. Функция хэширования.
3 ОБОЗНАЧЕНИЯ
В настоящем стандарте используются следующие обозначения.
р* — множество всех конечных слов в алфавите р = {0,1}.
| А | — длина слова А<=р*.
Vk(2) — множество всех бинарных слов длины к.
Издание официальное
z(mod n) — наименьшее по значению неотрицательное число, сравнимое с г по модулю числа п.
<N>k — слово длины к, содержащее двоичную запись вычета N (mod 2к) неотрицательного целого числа N.
А — неотрицательное целое число, имеющее двоичную запись А (А ер*) (под длиной числа будем понимать номер старшего значащего бита в двоичной записи’числа).
А||В — конкатенация слов А, Вер* — слово длины |А| |В|, в котором левые |А| символов образуют слово А, а правые |В| символов образуют слово В. Можно также использовать обозначение Ajj В = АВ,
Ак — конкатенация к экземпляров слова А(Аер*).
М — передаваемое сообщение, Мер*.
Mi — полученное сообщение, Miep*M
h — хэш-функция, отображающая сообщение М в слово h (М) ^V256 (2).
р — простое число, 2509<р<2512 либо 21020<р<21024. q — простое число, 2254<q<2256 и q является делителем для
(Р-1).
а — целое число, 1 <а<р—1, при этом aq (mod р) = 1. к — целое число, 0<k<q.
[d] — наименьшее целое число, не меньшее чем d.
[dj — наибольшее целое число, не большее чем d. e: = g — присвоение параметру е значения g. х — секретный ключ пользователя для формирования подписи, 0<x<q.
у — открытый ключ пользователя для проверки подписи, y = ax(mod р).
4 ОБЩИЕ ПОЛОЖЕНИЯ
Система ЭЦП базируется на методах криптографической защиты данных с использованием хэш-функции.
Алгоритм вычисления функции хэширования установлен в ГОСТ Р 34.11.
Процедуры цифровой подписи допускают как программную, так и аппаратную реализацию.
Система ЭЦП включает в себя процедуры выработки и проверки подписи под данным сообщением.
*) Отправляемые и получаемые последовательности, в том числе сообщения и подписи, могут отличаться друг от-друга из-за случайных или преднамеренных искажений.
2
ГОСТ Р 34.10-94
Цифровая подпись, состоящая из двух целых чисел, представленных в виде слов в алфавите (3, вычисляется с помощью определенного набора правил, изложенных в стандарте.
Числа р, q ц а, являющиеся параметрами системы, должны быть выбраны (выработаны) по процедуре, описанной в пункте 7. числа р, q и а не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число к, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число к снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.
5 ПРОЦЕДУРА ВЫРАБОТКИ ПОДПИСИ
Текст сообщения, представленный в виде двоичной последовательности символов, подвергается обработке по определенному алгоритму, в результате которого формируется ЭЦП для данного сообщения.
Процедура подписи сообщения включает в себя следующие этапы:
1 Вычислить h(M)-— значение хэш-функции h от сообщения М.
Если h(M) (mod q)=0, присвоить h(M) значение 02551.
2 Выработать целое число k, 0<k<q.
3 Вычислить два значения: r = ak(mod р) и r’=r(mod q).
Если’г’=0, перейти к этапу 2 и выработать другое значение числа к.
4 С использованием секретного ключа х пользователя (отправителя сообщения) вычислить значение
s = (xr’ kh(M) (mod q).
Если s = 0, перейти к этапу 2, в противном случае закончить работу алгоритма.
Подписью для сообщения М является вектор <г/>25б||<s>256-
Отправитель направляет адресату цифровую последовательность символов, состоящую из двоичного представления текста сообщения и присоединительной к нему ЭЦП.
6 ПРОЦЕДУРА ПРОВЕРКИ ПОДПИСИ
Получатель должен проверить подлинность сообщения и подлинность ЭЦП, осуществляя ряд операций (вычислений).
3
ГОСТ Р 34.10-94
Это возможно при наличии, у получателя открытого ключа отправителя, пославшего сообщение.
Процедура проверки включает в себя следующие этапы:
1 Проверить условия:
0<s<q и 0<r/<q.
Если хотя бы одно из этих условий не выполнено, то подпись считается недействительной.
2 Вычислить h(Mi) — значение хэш-функции h от полученного сообщения Мь
Если h(Mi) (mod q) =0, присвоить h(Mi) значение О2551.
3 Вычислить значение
v=(h(Mi))4-2(mod q).
4 Вычислить значения:
zi = sv (mod q) и
z2— (q—г’) v(mod q).
5 Вычислить значение
u= (azlyz2(mod p))(mod q).
6 Проверить условие: r’=u.
При совпадении значений г’ и и получатель принимает решение о том, что полученное сообщение подписано данным отправителем и в процессе передачи не нарушена целостность сообщения, т. е. Mi = М. В противном случае подпись считается недействительной.
7 ПРОЦЕДУРЫ ПОЛУЧЕНИЯ ЧИСЕЛ р, q и а
Получение простых чисел осуществляется с’ использованием линейного конгруэнтного датчика по модулю 216 или по модулю 232 (x(1 = bxn_1 с). При этом пользователь должен задавать начальное состояние х0 и параметр датчика с.
Заданные величины необходимо зафиксировать (запомнить) для возможности проведения проверки того, что простые числа получены по установленной процедуре.
Ниже изложены процедуры получения параметров р, q и а.
7.1 Процедура А
Процедура позволяет получать простые числа р длины t^l7 битов с простым делителем q длины [t/J битов числа р-1.
Получение чисел осуществляется с использованием линейного конгруэнтного, датчика хл= (19381 xn–1 c)(mod 216).
Задаются число хо с условием 0<х0<216 и нечетное число с с условием 0<с<216.
Процедура вычисления включает в себя следующие шаги:
4
ГОСТ Р 34.10-94
1 Уо: = х0
2 Вычислить последовательность чисел (t0, ti, …, ts) по правилу:
to: = t
Если ti>17, то t1 L =[ti /2J,
Если ti < 17, то s: = i.
3 Найти наименьшее простое число р3 длины ts битов,
4 m: = s-l
5 Вычислить rm =rtm-i-i/1€Г[.
6 Вычислить последовательность (уь . . ., уг ) по рекурсивному правилу у1 1 = (19381 yi c) (mod 216).
§
1 Область применения …….. 1
2 Нормативные ссылки . . . … 1
3 Обозначения . ………… 1
4 Общие положения .. 2
5 Процедура выработки подписи……….. 3
6 Процедура проверки подписи ……….. 3
7 Процедуры получения чисел р, q и а …….. 4
Приложение А Проверочные примеры……. 9
Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности в государственных и коммерческих структурах.
Криптографические методы защиты информации являются объектом серьезных научных исследований И стандартизации на национальных, региональных и международных уровнях.
Настоящий стандарт определяет процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма с применением функции хэширования.
Электронная цифровая подпись обеспечивает целостность сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, с гарантированной идентификацией ее автора (лица, подписавшего документ).
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология.
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ.
Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
Information technology.
Cryptographic Data Security.
Produce and check procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm.
Дата введения 1995—01—01
1 ОБЛАСТЬ ПРИМЕНЕНИЯ
Настоящий стандарт устанавливает процедуры выработки и проверки электронной цифровой подписи (ЭЦП) сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, на базе асимметричного криптографического алгоритма с применением функции хэширования.
Внедрение системы ЭЦП на базе настоящего стандарта обеспечивает защиту передаваемых сообщений от подделки, искажения и однозначно позволяет доказательно подтвердить подпись лица, подписавшего сообщение.
2 НОРМАТИВНЫЕ ССЫЛКИ
В настоящем стандарте использованы ссылки на следующий стандарт:
ГОСТ Р 34.11-94 Информационная технология. Криптографическая защита информации. Функция хэширования.
3 ОБОЗНАЧЕНИЯ
В настоящем стандарте используются следующие обозначения.
р* — множество всех конечных слов в алфавите р = {0,1}.
| А | — длина слова А<=р*.
Vk(2) — множество всех бинарных слов длины к.
Издание официальное
z(mod n) — наименьшее по значению неотрицательное число, сравнимое с г по модулю числа п.
<N>k — слово длины к, содержащее двоичную запись вычета N (mod 2к) неотрицательного целого числа N.
А — неотрицательное целое число, имеющее двоичную запись А (А ер*) (под длиной числа будем понимать номер старшего значащего бита в двоичной записи’числа).
А||В — конкатенация слов А, Вер* — слово длины |А| |В|, в котором левые |А| символов образуют слово А, а правые |В| символов образуют слово В. Можно также использовать обозначение Ajj В = АВ,
Ак — конкатенация к экземпляров слова А(Аер*).
М — передаваемое сообщение, Мер*.
Mi — полученное сообщение, Miep*M
h — хэш-функция, отображающая сообщение М в слово h (М) ^V256 (2).
р — простое число, 2509<р<2512 либо 21020<р<21024. q — простое число, 2254<q<2256 и q является делителем для
(Р-1).
а — целое число, 1 <а<р—1, при этом aq (mod р) = 1. к — целое число, 0<k<q.
[d] — наименьшее целое число, не меньшее чем d.
[dj — наибольшее целое число, не большее чем d. e: = g — присвоение параметру е значения g. х — секретный ключ пользователя для формирования подписи, 0<x<q.
у — открытый ключ пользователя для проверки подписи, y = ax(mod р).
4 ОБЩИЕ ПОЛОЖЕНИЯ
Система ЭЦП базируется на методах криптографической защиты данных с использованием хэш-функции.
Алгоритм вычисления функции хэширования установлен в ГОСТ Р 34.11.
Процедуры цифровой подписи допускают как программную, так и аппаратную реализацию.
Система ЭЦП включает в себя процедуры выработки и проверки подписи под данным сообщением.
*) Отправляемые и получаемые последовательности, в том числе сообщения и подписи, могут отличаться друг от-друга из-за случайных или преднамеренных искажений.
2
ГОСТ Р 34.10-94
Цифровая подпись, состоящая из двух целых чисел, представленных в виде слов в алфавите (3, вычисляется с помощью определенного набора правил, изложенных в стандарте.
Числа р, q ц а, являющиеся параметрами системы, должны быть выбраны (выработаны) по процедуре, описанной в пункте 7. числа р, q и а не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число к, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число к снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.
5 ПРОЦЕДУРА ВЫРАБОТКИ ПОДПИСИ
Текст сообщения, представленный в виде двоичной последовательности символов, подвергается обработке по определенному алгоритму, в результате которого формируется ЭЦП для данного сообщения.
Процедура подписи сообщения включает в себя следующие этапы:
1 Вычислить h(M)-— значение хэш-функции h от сообщения М.
Если h(M) (mod q)=0, присвоить h(M) значение 02551.
2 Выработать целое число k, 0<k<q.
3 Вычислить два значения: r = ak(mod р) и r’=r(mod q).
Если’г’=0, перейти к этапу 2 и выработать другое значение числа к.
4 С использованием секретного ключа х пользователя (отправителя сообщения) вычислить значение
s = (xr’ kh(M) (mod q).
Если s = 0, перейти к этапу 2, в противном случае закончить работу алгоритма.
Подписью для сообщения М является вектор <г/>25б||<s>256-
Отправитель направляет адресату цифровую последовательность символов, состоящую из двоичного представления текста сообщения и присоединительной к нему ЭЦП.
6 ПРОЦЕДУРА ПРОВЕРКИ ПОДПИСИ
Получатель должен проверить подлинность сообщения и подлинность ЭЦП, осуществляя ряд операций (вычислений).
3
ГОСТ Р 34.10-94
Это возможно при наличии, у получателя открытого ключа отправителя, пославшего сообщение.
Процедура проверки включает в себя следующие этапы:
1 Проверить условия:
0<s<q и 0<r/<q.
Если хотя бы одно из этих условий не выполнено, то подпись считается недействительной.
2 Вычислить h(Mi) — значение хэш-функции h от полученного сообщения Мь
Если h(Mi) (mod q) =0, присвоить h(Mi) значение О2551.
3 Вычислить значение
v=(h(Mi))4-2(mod q).
4 Вычислить значения:
zi = sv (mod q) и
z2— (q—г’) v(mod q).
5 Вычислить значение
u= (azlyz2(mod p))(mod q).
6 Проверить условие: r’=u.
При совпадении значений г’ и и получатель принимает решение о том, что полученное сообщение подписано данным отправителем и в процессе передачи не нарушена целостность сообщения, т. е. Mi = М. В противном случае подпись считается недействительной.
7 ПРОЦЕДУРЫ ПОЛУЧЕНИЯ ЧИСЕЛ р, q и а
Получение простых чисел осуществляется с’ использованием линейного конгруэнтного датчика по модулю 216 или по модулю 232 (x(1 = bxn_1 с). При этом пользователь должен задавать начальное состояние х0 и параметр датчика с.
Заданные величины необходимо зафиксировать (запомнить) для возможности проведения проверки того, что простые числа получены по установленной процедуре.
Ниже изложены процедуры получения параметров р, q и а.
7.1 Процедура А
Процедура позволяет получать простые числа р длины t^l7 битов с простым делителем q длины [t/J битов числа р-1.
Получение чисел осуществляется с использованием линейного конгруэнтного, датчика хл= (19381 xn–1 c)(mod 216).
Задаются число хо с условием 0<х0<216 и нечетное число с с условием 0<с<216.
Процедура вычисления включает в себя следующие шаги:
4
ГОСТ Р 34.10-94
1 Уо: = х0
2 Вычислить последовательность чисел (t0, ti, …, ts) по правилу:
to: = t
Если ti>17, то t1 L =[ti /2J,
Если ti < 17, то s: = i.
3 Найти наименьшее простое число р3 длины ts битов,
4 m: = s-l
5 Вычислить rm =rtm-i-i/1€Г[.
6 Вычислить последовательность (уь . . ., уг ) по рекурсивному правилу у1 1 = (19381 yi c) (mod 216).