Безопасность программного обеспечения компьютерных систем


Краткое описание криптографических средств контроля целостности и достоверности программ - часть 11


Ключ S2 может быть открыт для того, чтобы конвертировать схему подписи с верификацией по запросу в обычную схему электронной цифровой подписи.

Вместе с обозначениями секретного и открытого ключей xRZq и yRZ*p (взятых из отечественного стандарта на электронную цифровую подпись) введем также обозначения S1=x и S2=u, uRZq, а также открытый ключ P=(g,y,w), где wgu(mod p). Открытый ключ P публикуется в открытом сертифицированном справочнике.

Подпись кода m вычисляется следующим образом. Выбирается kRZq и вычисляется rgk(mod p). Затем вычисляется s[xr+mku](mod q). Пара (r,s) является подписью для кода m. Подпись считается корректной тогда и только тогда, когда rugswy-rw , где wm-1(mod q).

Проверка подписи (с участием подписывающего) осуществляется посредством следующего интерактивного протокола.

II. Протокол верификации. Абонент вычисляет ?gswy-rw(mod p) и просит абонента S доказать, что пара (r,s) есть его подпись под кодом m. Эта задача эквивалентна доказательству того, что дискретный логарифм ? по основанию r равен (по модулю p) дискретному логарифму w по основанию g, то есть, что logg(p)wlogr(p)?. Для этого:

  1. Абонент V выбирает a,bRZq, вычисляет ?ragb(mod p) и посылает ? абоненту S.
  2. Абонент S выбирает tRZq, вычисляет h1?g1(mod p), h2h1u(mod p) и посылает h1 и h2 абоненту V.
  3. Абонент V высылает параметры a и b.
  4. Если ?ragb(mod p) , то абонент S посылает V параметр t; в противном случае - останавливается.
  5. Абонент V проверяет выполнение равенств h1ragb+1(mod p) и h2?awb+1(mod p) .

Если проверка завершена успешно, то подпись принимается как корректная.

III. Отвергающий протокол. В отвергающем протоколе S доказывает, что logg(p)wlogr(p)?. Следующие шаги выполняются в цикле l раз.

  1. Абонент V выбирает d,eRZq, d1, ?R{0,1}. Вычисляет age(mod p), bwe(mod p), если ?=0 и are(mod p) , b?e(mod p), если ?=1. Посылает S значения a, b, d.
  2. Абонент S проверяет соотношение au(mod p)b. Если оно выполняется, то a=0, в противном случае a=1. Выбирает RRZq, вычисляет cdagR(mod p) и посылает V значение c.
  3. Абонент V посылает абоненту S значение e.
  4. Абонент S проверяет, что выполняются соотношения из следующих двух их пар: age(mod p), bwe(mod p) и are(mod p), b?e(mod p).




    Начало  Назад  Вперед



    Книжный магазин