Схемы неоспоримой подписи

Неоспоримая подпись, как и обычная цифровая подпись, зависит от подписанного документа и секретного ключа. Однако в отличие от обычных цифровых подписей, неоспоримая подпись не может быть верифицирована без участия лица поставившего эту подпись. Возможно, более подходящим названием для этих подписей было бы “подписи, не допускающие подлога”.

Рассмотрим два возможных сценария применения неоспоримой подписи [107,117].

Сценарий 1. Сторона А (клиент) хочет получить доступ в защищенную зону, контролируемую стороной В (банком). Этой защищенной зоной может быть, например, депозитарий (хранилище ценностей клиентов). Сторона В требует от А поставить на заявке о допуске в защищенную зону подпись, время и дату до предоставления ему доступа. Если А применит неоспоримую подпись, тогда сторона В не сможет впоследствии доказать кому-либо, что А получил допуск, без непосредственного участия А в процессе верификации подписи.

Сценарий 2. Предположим, что известная корпорация А разработала пакет программного обеспечения. Чтобы гарантировать подлинность пакета и отсутствие в нем вирусов, сторона А подписывает этот пакет неоспоримой подписью и продает его стороне В. Сторона В решает сделать копии этого пакета программного обеспечения и перепродать его третьей стороне С. При использовании стороной А неоспоримой подписи сторона С не сможет убедиться в подлинности этого пакета программного обеспечения и отсутствии в нем вирусов без участия стороны А.

Конечно, этот сценарий не препятствует стороне В поставить на пакете свою подпись, но тогда для стороны В будут утрачены все маркетинговые преимущества, связанные с использованием торговой марки корпорации А. Кроме того, будет легче раскрыть мошенническую деятельность стороны В.

Рассмотрим алгоритм неоспоримой цифровой подписи, разработанный Д.Чомом [107]. Сначала опишем алгоритм генерации ключей, с помощью которого каждая сторона А, подписывающая документ, выбирает секретный ключ и соответствующий открытый ключ.

Каждая сторона А должна выполнить следующее:

1. Выбрать случайное простое число p = 2q + 1, где q - также простое число.

2. Выбрать генераторное число a для подгруппы порядка q в циклической группе Zp*:

2.1. Выбрать случайный элемент b Î Zp* и вычислить a = b(p‑1)/q mod p.

2.2. Если a = 1, тогда возвратиться к шагу 2.1.

3. Выбрать случайное целое x Î {1, 2,..., q-1} и вычислить у = ax mod p.

4. Для стороны А открытый ключ равен (p, a, y), секретный ключ равен x.

Согласно алгоритму неоспоримой подписи Д.Чома, сторона А подписывает сообщение m, принадлежащее подгруппе порядка q в Zp*. Любая сторона В может проверить эту подпись при участии А.

В работе алгоритма неоспоримой подписи можно выделить два этапа:

1. генерация подписи,

2. верификация подписи.

На этапе генерации подписи сторона А вычисляет

s = mx mod p,

где s - подпись стороны А на сообщении m.

Сообщение m с подписью s отсылается стороне В.

Этап верификации подписи выполняется стороной В с участием стороны А и включает следующие шаги:

(1) В получает подлинный открытый ключ (p, a, y) стороны А.

(2) В выбирает два случайных секретных целых числа a, b Î {1, 2,..., q-1}.

(3) B вычисляет z = sa yb mod p и отправляет значение z стороне А.

(4) А вычисляет w = (z)1/x mod p, где хх-1 º 1 (mod q), и отправляет значение w стороне В.

(5) В вычисляет w’ = ma ab mod p и признает подпись s подлинной, если и только если w = w’.

Убедимся, что проверка подписи s работает:

w º (z)1/x º (sa yb)1/x º (mxaaxb)1/x º maab º w’mod p.

Можно показать, что с высокой степенью вероятности злоумышленник не сможет заставить В принять фальшивую подпись. Предположим, что s представляет собой подделку подписи стороны А на сообщении m, т.е. s ¹ mx mod p. Тогда вероятность принятия стороной этой подписи в данном алгоритме составляет только 1/q, причем эта вероятность не зависит от вычислительных ресурсов злоумышленника.

Подписавшая сторона А при некоторых обстоятельствах могла бы попытаться отказаться от своей подлинной подписи одним из трех способов:

(а) отказаться от участия в протоколе верификации;

(б) некорректно выполнить протокол верификации;

(в) объявить подпись фальшивой, даже если протокол верификации оказался успешным.

Отречение от подписи способом (а) рассматривалось бы как очевидная попытка неправомерного отказа.

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

Протокол дезавуирования для схемы неоспоримой подписи Д.Чома включает следующие шаги:

(1) В принимает от стороны А сообщение m с подписью s и получает подлинный открытый ключ (p, a, y) стороны А.

(2) В выбирает случайные секретные целые числа a, b Î {1, 2,..., q-1}, вычисляет z = sa yb mod p и отправляет значение z стороне А.

(3) А вычисляет w = (z)1/x mod p, где xx-1 º 1(mod q), и отправляет значение w стороне В.

(4) Если w = ma ab mod p, тогда В признает подпись s подлинной и протокол прекращается.

(5) В выбирает случайные секретные целые числа a’, b’ Î {1, 2,..., q‑1}, вычисляет z’= sa’yb’mod p и отправляет значение z’ стороне А.

(6) А вычисляет w’= (z’)1/x mod p и отправляет значение w’ стороне В.

(7) Если w’ = ma’ ab’ mod p, тогда В принимает подпись s и протокол останавливается.

(8) В вычисляет c = (wa-b)a’ mod p, c’= (w’a-b’)a mod p. Если с = c’, тогда В заключает, что подпись s фальшивая; в противном случае, В делает вывод, что подпись s подлинная, а сторона А пытается дезавуировать подпись s.

Нетрудно убедиться в том, что этот протокол достигает поставленной цели. Пусть m - сообщение и предположим, что s - подпись стороны А под сообщением m.

Если подпись s фальшивая, т.е. s ¹ mx mod p и если стороны А и В следуют протоколу должным образом, тогда w = w’ (и поэтому справедливо заключение В, что подпись s фальшивая).

Пусть s на самом деле является подписью стороны А под сообщением m, т.е. s = mx mod p. Предположим, что В точно следует протоколу, а А не следует. Тогда вероятность того, что w = w’ (и А преуспевает в дезавуировании подписи), составляет только 1/q.

Следует отметить, что третья сторона С никогда не должна принимать в качестве доказательства подлинности подписи s запись стороной В протокола верификации, поскольку сторона В может выдумать успешную запись шага 2 и последующих шагов протокола верификации без участия подписывающей стороны А.

Неоспоримая подпись может быть верифицирована только путем непосредственного взаимодействия с подписывающей стороной А.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: