Российский стандарт ЭЦП разрабатывался позже американского, поэтому параметры этого алгоритма выбраны с учетом возросших возможностей потенциального противника по вскрытию криптосистем. В частности, увеличена длина значения хэш-функции, что снижает вероятность столкновений, и, соответственно, порядок элемента-генератора, что делает более сложным решение задачи дискретного логарифма для восстановления секретного ключа. При описании алгоритма будут использоваться следующие обозначения:
B* – множество всех конечных слов в алфавите B = {0,1}.
|A| – длина слова А
Vk(2) – множество всех двоичных слов длины k.
A||B – конкатенация слов А и B, также обозначается как АВ.
Аk – конкатенация k экземпляров слова А.
<N>k – слово длины k, содержащее запись N(mod 2k), где N – неотрицательное целое.
Е – побитовое сложение слов по модулю 2.
[+] – сложение по правилу A [+] B = <A+B>k
(k = |A| = |B|).
m – передаваемое сообщение.
m1 – полученное сообщение
h – хэш-функция, отображающая последовательность m
в слово h(m)О V256(2).
p – простое число, 2509 < p < 2512, либо 21020 < p < 21024.
q – простое число, 2254 < q < 2256 и q является делителем для (p – 1).
a – целое число, 1 < a < p – 1, при этом aq(mod p) = 1.
k – целое число, 0 < k < q.
x – секретный ключ пользователя для формирования подписи, 0 < x < q.
y – открытый ключ для проверки подписи, y = ax(mod
p).
Система ЭЦП включает в себя процедуры выработки и проверки подписи под данным сообщением.
Цифровая подпись, состоящая из двух целых чисел, вычисляется с помощью определенного набора правил, изложенных в стандарте.
Числа p, q и a, являющиеся параметрами системы, не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число k, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число k снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.



