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

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

Обозначения

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

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
    . В противном случае подпись считается
    недействительной.
    В тексте стандарта подробно описаны процедуры
    генерации всех необходимых чисел для описанных
    выше процедур вычисления и проверки подписи с
    контрольными примерами для проверки
    правильности функционирования.

     

    Оставит комментарий