Схема электронной цифровой подписи ECDSA
Пусть p>2 простое число. Эллиптическая кривая E задается уравнением
y 2 = x3+ax+b (mod p ) (*)
над конечным простым полем. Предположим, что группа E(Fp) содержит подгруппу простого порядка q, которая порождается точкой G из группы E(Fq).
Перейдем к рассмотрению протокола электронной цифровой подписи. Известными считаются эллиптическая кривая (*), в том числе простое число p и точка G из группы E(Fp). Секретным ключем является s (mod q), а открытым - точка W=sG из E(Fp).
Пусть вычет m (mod q) - хэш-значение подписываемого сообщения. Чтобы получить подпись для m, необходимо выполнить следующие шаги.
  1. Выбирать случайный вычет u(mod q) ( и хранить его в секрете), где 0<u<q. Вычислить точку
    V = uG =(xV,yV),
    где представитель класса вычетов xV выбирается из фиксированного интервала 0 < xV < p.
  2. Вычислить c=xV (mod q) . Если c=0(mod q) , то перейти к шагу 1. В противном случае вычислить
    d=u-1 (m+sc)(mod q).
    Если d=0 (mod q) , то перейти к шагу 1. В противном случае пара чисел (c,d), где 0<c,d<q есть подпись для m.
Чтобы проверить подпись под сообщением m (хэш - значением сообщения) необходимо выполнить следующие шаги.
  1. Вычислить h=d-1 (mod q) и вычеты
    h1 =hm (mod q), h2 = hc (mod q).
  2. Вычисляет точку P=h1G+h2W =(xP,yP), 0 <= xP <p.
  3. Если c=xP (mod q) , то подпись принимается, в противном случае - отвергается.
Несложно заметить, что эта схема, как и новый ГОСТ является переложением стандарта DSA на эллиптические кривые. В [7] высказано предположение о том, что этот переход связан с большими успехами специальных служб России и США в решении задач дискретного логарифмирования.
Слабость цифровой подписи ECDSA
Автор работы [5] считает, что новый стандарт небезопасен, так как позволяет имитировать подмену подписи. По его мнению, недостаток ECDSA в том, что этот стандарт позволяет рядовому пользователю выбрать свои секретный и открытый ключи так, что подписи для двух известных заранее сообщений совпадут. А это открывает простор для различных махинаций с использованием ЭЦП. Возможность имитации подделки основывается на том, что x-координаты противоположных точек эллиптических кривых совпадают. Если qG=0, то (q-1)G = -G, следовательно справедливы равенства:
c1 = xG = c2 = x(q-1)G = c,
где 0 - бесконечно удаленная точка эллиптической кривой (нейтральный элемент относительно операции +). Положим случайные вычеты q1 и q2 равными 1 и (q-1). Отметим также, что (q-1)-1 = (q-1) (mod q).
Подберем две одинаковые подписи для сообщений m1 и m2. Уравнения подписи имеют вид:
d1 = u1 -1 (m1 + sc) (mod q) = (m1 + sc) (mod q),
d2 = u2 -1 (m2 + sc) (mod q) = (q-1)(m2 + sc) (mod q).
Нам нужно, чтобы выполнялось равенство d1 = d2. Получим уравнение:
m1+sc = (q-1)(m2 +sc) (mod q).
Отсюда легко находится s:
2cs = (q-1)(m1 + m2) (mod q).
Так как q - простое число, то это уравнение однозначно разрешимо относительно s. Таким образом, мы получили две одинаковые подписи для двух заранее выбранных сообщений.

back next
Hosted by uCoz