ГОСТ Р 34.10-2001
- простое число р — модуль эллиптической кривой, удовлетворяющее неравенству р > 2255. Верхняя граница данного числа должна определяться при конкретной реализации схемы цифровой подписи;
- эллиптическая кривая Е, задаваемая своим инвариантом J(E) или коэффициентами а, Ъ eFp;
- целое число т — порядок группы точек эллиптической кривой Е;
- простое число q — порядок циклической подгруппы группы точек эллиптической кривой Е, для которого выполнены следующие условия:
| т =nq , п е Z , п > 1 ; (D)
1 2254 < q < 2256 ; (D)
- точка Р ф О эллиптической кривой Е, с координатами (хр, ур), удовлетворяющая равенству qP = О;
-хэш-функция h( ■ ):Г^ ^ V256, отображающая сообщения, представленные в виде двоичных векторов произвольной конечной длины, в двоичные вектора длины 256 бит. Хэш-функция определена в ГОСТ Р 34.11.
Каждый пользователь схемы цифровой подписи должен обладать личными ключами:
- ключом подписи — целым числом d, удовлетворяющим неравенству 0 < d < q;
- ключом проверки — точкой эллиптической кривой Q с координатами (х?, у?), удовлетворяющей равенству dP = Q.
На приведенные выше параметры схемы цифровой подписи накладываются следующие требования:
- должно быть выполнено условие р* ф 1 (mod q), для всех целых . = 1, 2, ... В, где В удовлетворяет неравенству В > 31;
- должно быть выполнено неравенство т ф р;
- инвариант кривой должен удовлетворять условию #($) ф 0 или 1728.
5.3 Двоичные векторы
Для определения процессов формирования и проверки цифровой подписи необходимо установить соответствие между целыми числами и двоичными векторами длины 256 бит.
Рассмотрим следующий двоичный вектор длиной 256 бит, в котором младшие биты расположены справа, а старшие — слева
h = (а255:’ ... , h е (10)
где аг-, i = 0, ... , 255 равно либо 1, либо 0. Будем считать, что число а е Zсоответствует двоичному вектору h, если выполнено равенство
255
а = X аг- 2г' .
i = 0
Для двух двоичных векторов hj и h2, соответствующих целым числам а и в, определим операцию конкатенации (объединения) следующим образом. Пусть
hl = (а255:> ... , а0), (12)
h2 = (в255, ... , Ро*,
тогда их объединение имеет вид
hl II h2 = (а255, ... , а0, Р255, ... , Ро) (13)
и представляет собой двоичный вектор длиной 512 бит, составленный из коэффициентов векторов hl и h2.
С другой стороны, приведенные формулы определяют способ разбиения двоичного вектора h длиной 512 бит на два двоичных вектора длиной 256 бит, конкатенацией которых он является.
5