Интернет магазин китайских планшетных компьютеров



Компьютеры - ECDSA - Выбор параметров

29 мая 2011


Оглавление:
1. ECDSA
2. Выбор параметров
3. ECDSA согласно стандарту ANSI X9.62
4. Преимущества ECDSA над DSA
5. Практическая реализация



Для подписывания сообщений необходима пара ключей — открытый и закрытый. При этом закрытый ключ должен быть известен только тому, кто подписывает сообщения, а открытый — любому желающему проверить подлинность сообщения. Также общедоступными являются параметры самого алгоритма.

Параметры алгоритма

  1. Выбор хэш-функции H. Для использования алгоритма необходимо, чтобы подписываемое сообщение являлось числом. Хеш-функция должна преобразовать любое сообщение в последователность битов, которые можно потом преобразовать в число.
  2. Выбор большого простого числа q — порядок одной из циклических подгрупп группы точек эллиптической кривой.
    Замечание: Если размерность этого числа в битах меньше размерности в битах значений хэш-функции H то используются только левые биты значения хэш-функции.
  3. Простым числом p обозначается характеристика поля координат Fp.

Генерирование ключей ECDSA

Для простоты будем рассматривать эллиптические кривые над полем Fp, где Fp — конечное простое поле. Причем, если необходимо, конструкцию можно легко адаптировать для эллиптических кривых над другим полем.

Пусть E — эллиптическая кривая, определенная над Fp, и P — точка простого порядка q кривой E. Кривая E и точка P являются системными параметрами. Число p — простое. Каждая пользовательница Алиса конструирует свой ключ посредством следующих действий:

  1. Выбирает случайное или псевдослучайное целое число x из интервала .
  2. Вычисляет произведение Q = x·P.

Открытым ключом пользовательницы Алисы A является точка Q, а закрытым — x.

Вместо использования E и P в качестве глобальных системных параметров, можно фиксировать только поле Fp для всех пользователей и позволить каждому пользователю выбирать свою собственную эллиптическую кривую E и точку P\in E. В этом случае определенное уравнение кривой E, координаты точки P, а также порядок q этой точки P должны быть включены в открытый ключ пользователя. Если поле Fp фиксировано, то аппаратная и программная составляющие могут быть построены так, чтобы оптимизировать вычисления в том поле. В то же время имеется огромное количество вариантов выбора эллиптической кривой над полем Fp.

Вычисление цифровой подписи

Для того, чтобы подписать какое-либо сообщение, для которого подсчитано значение h хэш-функции H, пользователь A должен сделать следующее:

  1. Выбрать случайное целое число k в интервале .
  2. Вычислить k·P = и положить в r = x1, где r получается из целого числа x1 между 0 и приведением по модулю q.
    Замечание: если r = 0, то уравнение подписи s = k не зависит от секретного ключа x, и следовательно, не подходит в качестве цифровой подписи. Значит, в случае r = 0 необходимо вернуться к шагу 1.
  3. Вычислить k и положить s = k.
    Замечание: если s = 0, то значение s, нужное для проверки, не существует.

Значит, в случае s = 0 необходимо вернуться к шагу 1.

Подписью для сообщения является пара целых чисел .

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

Для того, чтобы проверить подпись пользовательницы Алисы на сообщение, пользователь Борис B должен сделать следующее:

  1. Получить подтвержденную копию открытого ключа Q пользовательницы А;
  2. Проверить, что числа r и s являются целыми числами из интервала , и вычислить значение хеш-функции h от сообщения;
  3. Вычислить u1 = s h и u2 = s r;
  4. Вычислить u1P + u2Q =, и относительно x0, как целого числа между 0 и , положить v = x0;
  5. Принять подпись, если и только если v = r.

Заметим, что, если пользовательница Алиса вычислила свою подпись правильно, то u1P + u2Q =P = kP, так как k = s, и поэтому v = r.

Для подтверждения публичного ключа Q нужно проделать следующее:

  1. Проверить, что Q не равно O и координаты верны;
  2. Проверить, что Q лежит на кривой;
  3. Проверить, что qQ = O;


Просмотров: 4582


<<< CEILIDH