Главная | О фирме | Теория | Реклама | Цены | Архив | Сервис | Тесты | Ссылки


Электронная цифровая подпись по ГОСТ Р 34.10-94

Область применения

В указанном стандарте устанавливается процедуры выработки и проверки электронной цифровой подписи (ЭЦП) сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, на базе ассиметричного криптографического алгоритма с применением функции хэширования.
Внедрение системы ЭЦП на базе указанного стандарта обеспечивает защиту передаваемых сообщений от подделки, искажения и однозначно позволяет доказательно подтвердить подпись лица, подписавшего сообщение.

Обозначения

В стандарте используются следующие обозначения:

B*

Множество всех конечных слов в алфавите B={0,1}. Чтение слов и нумерация знаков алфавита (символов) осуществляется справа налево (номер правого символа в слове равен единице, второго справа - двум и т.д.).

/A|

Длина слова A <- B*.

Vk (2)

Множество всех бинарных слов длины k.

z (mоd n)

Наименьшее по значению неотрицательное число, сравнимое с Z по модулю числа n.

A||B

Конкатенация слов A, B <- B* - слово длины |A|+|B|, в котором левые |A| символов образуют слово A, а правые |B| символов образуют слово B. Можно также использовать обозначение A||B = AB.

Ak

Конкатенация k экземпляров слова A(A<- B*).

A`

Неотрицательное целое число, имеющее двоичную запись A (A<- b*).

M

Передаваемое сообщение, M <- B*.

M1

Полученное сообщение, M1 <- B*.

h

Хэш-функция, отображающая последовательность M <- B* в слово h(M) <- V256(2).

p

Простое число, 2509 < p < 2512 или 21020 < p < 21024.

q

Простое число, 2254 < q < 2256 и q является делителем для (p-1).

a

Целое число, 1 < a < p-1, при этом aq(mоd p) =1.

k

Целое число, 0 < k < q.

dmin

Наименьшее целое число, не меньшее, чем d.

dmax

Наибольшее целое число, не большее, чем d.

e := g

Присвоение параметру e значения g.

x

Секретный ключ пользователя для формирования подписи, 0 < x < q.

у

Открытый ключ пользователя для проверки подписи, y = ax (mоd p).

<-

Обозначение принадлежности диапазону.

Общие положения

Система ЭЦП базируется на методах криптографической защиты данных с использованием хэш-функции.
Алгоритм вычисления хэш-функции сообщения определяется ГОСТ Р 34.11-94.
Процедуры цифровой подписи допускают как программную, так и аппаратную реализацию.
Система ЭЦП включает в себя процедуры выработки и проверки подписи под данным сообщением.
Цифровая подпись, состоящая из двух целых чисел, представленных в виде слов в алфавите B, вычисляется с помощью определенного набора правил, изложенных подробно в стандарте.
Числа p, q и a являются параметрами системы и вырабатываются по определенному алгоритму. Данные числа не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число k, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число k снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.

Процедура выработки подписи

Текст сообщения, представленный в виде двоичной последовательности символов, подвергается обработке по определенному алгоритму, в результате которого формируется ЭЦП для данного сообщения.
Процедура подписи сообщения включает в себя следующие этапы:

  • вычисляется h(M) - хэш-функция сообщения M;
  • вырабатывается целое число k, 0 < k < q;
  • вычисляются значения:
  • r = ak(mоd p) и r’ = r (mоd q)

    • с использованием секретного ключа x пользователя (отправителя сообщения) вычислить значение:

    s = (xr’ +kh(M)`)(mоd q)

    • подписью для сообщения M является вектор:

    <r’>256 || <s>256

    Отправитель направляет адресату цифровую последовательность символов, состоящую из двоичного представления текста сообщения и присоединенной к нему ЭЦП.

    Процедура проверки подписи

    Получатель должен проверить подлинность сообщения и подлинность ЭЦП, осуществляя ряд операций (вычислений).
    Это возможно при наличии у получателя открытого ключа отправителя, пославшего сообщение.
    Процедура проверки включает в себя следующие этапы:

    • проверка условий:

    0 < s < q и 0 < r’ < q

    • вычисление h(M1) -хэш-функцию полученного сообщения;
    • вычислить значение:

    v = (h(m1)`)q-2(mоd q)

    • вычислить значения:

    z1 = sv (mоd q) и z2 = (q-r’) v (mоd q)

    • вычислить значение:

    u = (aZ1 yZ2 (mоd p)) (mоd q)

    • проверить условие:

    r’ = u

    При совпадении значений r’ и u получатель принимает решение о том, что полученное сообщение подписано данным отправителем и в процессе передачи не нарушена целостность сообщения, т.е. M1 = M. В противном случае подпись считается недействительной.
    В тексте стандарта подробно описаны процедуры генерации всех необходимых чисел для описанных выше процедур вычисления и проверки подписи с контрольными примерами для проверки правильности функционирования.


    Copyright (c) 2000 ArgoSoft JSC