Электронная цифровая подпись СТБ 1176.2-99
Введенный в 1999г. стандарт Республики Беларусь СТБ 1176.2 "Информационная технология. Защита информации. Процедуры выработки и проверки электронной цифровой подписи " базируется на схеме ЭЦП Шнорра.

Параметры. При выработке и проверке подписи используются l-битовое простое число p и r-битовое простое число q, q | (p-1). Допустимые значения указаны в таблице 1. Применяется определяемая СТБ 1176.1 функция хеширования h, параметр L которой устанавливается равным (r-1).

Таблица 1. Допустимые значения параметров r и l.
Уровень стойкости r l
1 143 638
2 154 766
3 175 1022
4 182 1118
5 195 1310
6 208 1534
7 222 1790
8 235 2046
9 249 2334
10 257 2462
Часть преобразований стандарта выполняется в группе G, определяемой множеством Bp = {1,2, ...,p-1 } и операцией *:
u * v = uvR-1 ( mod p),
где R = 2l+2. Использование операции * вместо обычного умножения по модулю p упрощает применение алгоритма Монтгомери. Далее, u(m) - m-я степень числа u из Bp как элемента G. В стандарте приведены алгоритмы генерации чисел p,q и элемента a из Bp, имеющего порядок q в группе G. Числа p,q,a являются долговременными параметрам СТБ 1176.2-99, едиными для группы пользователей.
Входные данные.
Всякое сообщение M, подпись к которому вырабатывается или проверяется, задается последовательностью байтов. Если t- n-разрядное число по основанию 28 = 256, то есть
t = t0 (256)0+..+tn-1 (256)n-1,
причем 0 <= ti <256, tn-1 неравно 0,
то t||M --- сообщение, полученное вставкой байтов t0,t1,..,tn-1 в начало M.
Выработка подписи.
При выработке подписи S к сообщению M используется личный ключ x, 0<x<q. Выполняются следующие шаги.
  1. Выработать случайное секретное число k, 1<k<q.
  2. t = a(k).
  3. U = h(t||M). Если U=0, то вернуться к шагу 1.
  4. V = (k-xU). Если V=0, то вернуться к шагу 1.
  5. S = U2r+V.
Проверка подписи.
При проверке подписи S к сообщению M используется открытый ключ y = a(X). Алгоритм проверки подписи состоит из следующих шагов.
  1. V = S ( mod 2r).
  2. U = (S-V)/2r.
  3. Проверить условия 0<U<2r-1, 0<V<q. Если хотя бы одно из условий нарушается, то подпись признается недействительной и выполнение алгоритма завершается.
  4. t = a(V) * y(U).
  5. W = h(t||M).
  6. Если W неравно U, то подпись признается недействительной. Если W=U, то принимаются решения о том, что:
    а) подпись S была создана с помощью личного ключа x, связанного с открытым ключем y;
    б)подпись S и сообщение M не были изменены с момента их создания.

back next
Hosted by uCoz