Научная статья на тему 'Некоторые протоколы доверенной цифровой подписи'

Некоторые протоколы доверенной цифровой подписи Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
525
171
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ / ДОВЕРЕННАЯ ЦИФРОВАЯ ПОДПИСЬ / АНАЛИЗ БЕЗОПАСНОСТИ / ГОЛОСОВАНИЕ / КОЛЛЕКТИВНАЯ ПОДПИСЬ / DIGITAL SIGNATURES / PROXY SIGNATURES / SECURITY ANALYSIS / VOTING / GROUP SIGNATURE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Толюпа Евгений Алексеевич

Предложены усовершенствование протокола доверенной цифровой подписи (ДЦП) авторов J.-Y Lee, J.-H. Cheon и S. Kim, устранившее его уязвимость, позволяющую сторонам создавать доверенный ключ подписания независимо друг от друга, и протокол коллективной ДЦП, который можно использовать при реализации процедуры голосования.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

An improvement proxy signature scheme by authors J.-Y. Lee, J.-H. Cheon and S. Kim is proposed. Under this improvement, the scheme does not allow parties to create proxy private key independently. A group proxy signature scheme is suggested too. It can be used for the implementation of voting procedures.

Текст научной работы на тему «Некоторые протоколы доверенной цифровой подписи»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

2011 Математические методы криптографии №1(11)

МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ

УДК 519.7

НЕКОТОРЫЕ ПРОТОКОЛЫ ДОВЕРЕННОЙ ЦИФРОВОЙ ПОДПИСИ

Е. А. Толюпа

Ярославский государственный университет им. П. Г. Демидова, г. Ярославль, Россия

E-mail: tolyupa@gmail.com

Предложены усовершенствование протокола доверенной цифровой подписи (ДЦП) авторов J.-Y Lee, J.-H. Cheon и S. Kim, устранившее его уязвимость, позволяющую сторонам создавать доверенный ключ подписания независимо друг от друга, и протокол коллективной ДЦП, который можно использовать при реализации процедуры голосования.

Ключевые слова: электронная цифровая подпись, доверенная цифровая подпись, анализ безопасности, голосование, коллективная подпись.

Введение

Традиционные протоколы цифровой подписи (ЦП) позволяют пользователю выполнить подпись под документом самостоятельно, и любой участник электронного информационного обмена может убедиться в верности подписи, однако эти протоколы не позволяют одному участнику, скажем A, делегировать свои права другому участнику — B, который может подписывать сообщения от имени A. Такая необходимость возникает, когда, например, руководитель организации по той или иной причине (по состоянию здоровья или техническим возможностям) не может подписать документ сам. В этой ситуации он может доверить право подписывать документы от своего имени другому лицу, например своему заместителю. Заместитель, получив такое право, может подписывать сообщения от лица руководителя, а проверяющий будет знать, кто и от чьего имени поставил данную подпись. Решить подобную задачу позволяют протоколы доверенной цифровой подписи (ДЦП, или proxy signature).

Основоположниками теории протоколов ДЦП и разработчиками первого такого протокола являются М. Mambo, K. Usudaи E. Okamoto [1]. Ими были сформулированы первые требования к безопасности протоколов ДЦП [1, 2], расширенные позже в [3, 4]. Безопасная ДЦП должна удовлетворять следующим требованиям:

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

2. Стойкость к фальсификации — только назначенная доверителем сторона может создать верную доверенную подпись от лица доверителя. Другими словами, участник A и третья сторона, не выбранная им в качестве доверенного подписчика, не смогут создать верную ДЦП от имени доверенного участника B.

3. Строгая идентификация — каждый может идентифицировать соответствующую доверенную сторону из доверенной подписи.

4. Неотрекаемость — если доверенный подписчик создает подпись под документом, то в дальнейшем он не сможет заявить, что подпись выполнена кем-то другим.

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

В данной работе изложены базовый протокол ДЦП, предложенный в [1], его модификация ЬСК из [5] на случай открытого канала связи и атака на нее из [6], демонстрирующая нарушение в ней требования 2 к безопасности. Предложено усовершенствование протокола ЬСК, устранившее его уязвимость этой атакой и сохранившее его пригодность для открытого канала. Предложен также протокол коллективной ДЦП с защищенным каналом связи, который можно использовать при реализации процедуры голосования. Все протоколы основаны на общей идее распределения ключевой информации, которая позволяет делегировать права подписи доверенной стороне, и построены по следующей общей схеме.

1. Общая схема протокола ДЦП

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

Пусть имеются два участника информационного обмена Л и И — соответственно доверитель права цифровой подписи и его доверенная сторона (доверенное лицо), получающая право подписывать от имени доверителя. Каждый из участников Л и В имеет свою пару ключей — (Ха,Уа) и (хв,ув) соответственно, где первый ключ (х) в паре закрытый, а второй (у) открытый. Л генерирует доверенность на право подписания от его имени и вместе с информацией о полномочиях (период действия доверенной подписи, типы документов, которые разрешено подписывать доверенной стороне, идентификаторы доверителя и доверенного лица и т.п.) передает (по защищенному или открытому каналу) участнику В, который на основании информации, содержащейся в доверенности, идентифицирует Л и создает пару доверенных ключей (хр ,уР), предназначенных соответственно для создания и проверки цифровой подписи по некоторому известному алгоритму. Теперь при помощи хр он может подписывать сообщения от лица Л, применяя этот алгоритм. Любой проверяющий должен самостоятельно вычислить ключ ур участника В, используя информацию из доверенности участника Л. Таким образом, убедившись, что ключ участнику В действительно доверил участник Л, можно проверить подпись с помощью процедуры верификации из того же алгоритма цифровой подписи.

Общая схема протокола ДЦП, реализующая эту основную идею, выглядит следующим образом.

Действия доверителя Л:

1. Генерирует случайное обязательство к и вычисляет его свидетельство К = f (к), где f — некоторая односторонняя функция.

2. Создает в а, зависящую от величин из {ха,Ув , к,К} и возможных полномочий , и величины в а, К и, возможно, , составляющие доверенность, отправляет доверенному лицу В.

Действия доверенной стороны В:

1. Проверяет (с целью идентификации Л) выполнение некоторого идентификационного условия, зависящего от у а, ув и полученных в а и К.

2. Если оно выполнено, то вычисляет доверенные ключи: xp — в зависимости от Sa,Xb, yа,Ув и, возможно, mw; yp = f (xp).

3. С помощью подходящего алгоритма ЦП подписывает некоторый документ M, используя xp в качестве ключа подписания. Созданную так подпись обозначает Sign(M, xp). Формирует доверенную подпись под M как a = (Sign(M, xp), K, yA, yB, mw), возможно, без mw.

Действия проверяющего:

1. Вычисляет ключ yp, применяя некоторый алгоритм к данным Уа,Ув, K и, возможно, mw, содержащимся в a.

2. По ключу yp проверяет подпись Sign(M, xp) под документом M при помощи процедуры верификации соответствующего алгоритма ЦП.

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

В рассматриваемых далее конкретных протоколах ДЦП используется аппарат теории чисел. В них, кроме уже обозначенного, используются: p и q — большие простые числа, причем q|p — 1; д Е Z*, порядок д равен q и д является общеизвестным. Считается, что вычисление дискретного логарифма — трудоёмкая задача. Соответственно в роли односторонней функции f (к) выступает дк mod p. Первый и второй ключи (x и y) в паре ключей каждого участника и в паре доверенных ключей связаны соотношением y = дх mod p. Действие 3 участника B и действие 2 проверяющего из общей схемы сохраняются во всех протоколах, с тем лишь уточнением, что в последних используется алгоритм ЦП, базирующийся на сложности задачи дискретного логарифмирования. В приводимых ниже описаниях протоколов эти действия опущены.

2. Протокол MUO

Этот протокол предложили М. Mambo, K. Usuda и E. Okamoto (MUO) в [1]. Именно он и является базовым для модификаций, рассматриваемых в данной работе.

Действия A:

1. Генерирует случайное число к Е Z* и вычисляет K = дк mod p.

2. Вычисляет Sa = (xa + к • K) mod q и посылает (sa, K) участнику B по защищенному каналу связи.

Действия B:

1. Для идентификации A проверяет сравнение: дЯА = уа • KK(mod p).

2. Если оно выполнено, то вычисляет доверенный ключ подписания

xp = (sa + xb • Ув) mod q.

Действия проверяющего:

1. Зная (из подписи) свидетельство K, открытые ключи доверителя (уа) и доверенной стороны (ув), вычисляет доверенный ключ yp для проверки подписи по правилу

yp = У а • KK • yyB mod p.

Заметим, что данный протокол не удовлетворяет пятому требованию безопасности, поскольку действие 2 участника A не включает в себя передачу информации о полномочиях.

В приводимых ниже модификациях протокола MUO действие 1 участника A то же самое, что и в базовом протоколе, в связи с чем в их описаниях оно опущено.

3. Протокол LCK

Протокол MUO требует наличия защищенного канала между доверителем и доверенной стороной. В своей работе [5] J.-Y. Lee, J.-H. Cheon и S. Kim (LCK) модифицировали его, что позволило передавать доверенность по открытому каналу.

Действия A:

2. Вычисляет sa = (xa + k ■ ув) mod q и пару (sa, К) отправляет участнику B по общедоступному каналу.

Действия B:

1. Проверяет идентификационное условие = Уа ■ КУв(modp).

2. Если оно выполнено, то B вычисляет доверенный ключ подписания:

Xp = (sa + хв ■ уа) mod q.

Действия проверяющего:

1. Вычисляет ключ yp по следующему правилу: yp = Уа ■ KУв ■ уВА mod p.

В [6] показано, что такая модификация протокола MUO приводит его к уязвимости, позволяющей:

1) сторонам A и B доверенный ключ подписания создавать независимо друг от друга, т. е. без участия их в выполнении протокола, и тем самым участнику A доверенную подпись за участника B ставить без его ведома, а участнику B подпись от имени A ставить, не имея на то доверенности от последнего;

2) третьей стороне C доверенный ключ подписания создать независимо от участников A и B, т. е. без их участия в выполнении протокола, и тем самым поставить доверенную подпись;

3) третьей стороне C доверенность для B модифицировать под себя, т. е. изменить её таким образом, как если бы участник A доверил право подписи стороне C, а не участнику B.

Первая атака выглядит следующим образом. Если A возьмет случайное число s и

вычислит K = ■ yByA Ув mod p и xp = (xA + s ■ yB) mod q, то это xp будет обладать

свойством доверенного ключа подписания, а именно: подпись, поставленную этим ключом, любой проверяющий ее на ключе yp примет за подпись, поставленную стороной B

от имени стороны A, ибо yp = yA ■ Kув ■ ууА mod p = yA ■ у-УА У_ j уВА mod p =

= Уа ■ gsyB mod p = gXAgsyB mod p = mod p, т. е. (xp, yp) является доверенной парой ключей.

Обратно, если участник B возьмет случайное s и изготовит K = ■ УаУв mod p и

xp = (s ■ уБ + xb ■ Уа) mod q, то будет yp = Уа ■ KУв ■ ууА mod p = Уа ■ у-1 gsyB ■ УуА mod p = = ^*Ув^ХвУА mod p = mod p, что означает, что и это xp является доверенным ключом подписания.

Вторая атака выглядит следующим образом. Если C возьмет случайное число s и вычислит K = у-Ув ■ у-УА Ув ■ mod p и xp = s ■ yB mod q, то это xp будет также обладать свойствами доверенного ключа подписания, так как yp = Уа ■КУв ■ уУА mod p =

1 1 \ Ув

УаУ- ■ У-УА'У_ ■ 9J УбА mod p = Уа ■ yA1 ■ У-УА ■ ^^'Ув ■ УбА mod p = ^5'Ув mod p = = mod p.

Третья атака заключается в следующем: имея (из открытого канала) доверенность (sa,K), предназначенную участником A для B, сторона C берёт случайное число k G Z*, вычисляет К = КУв'Ус 1 ■ mod p и sA = sA + k ■ yC mod q и получает пару

(sa, К), обладающую свойствами доверенности, сгенерированной участником A для C, так как д5А mod p = g^ yc mod p = дЖА+кУв +kyc mod p = yA ■ g(kУв 'y_1+k)yc mod p = = yA ^KУв ■y-1 ■ gkj mod p = yA ■ КУс mod p.

4. Авторская модификация протокола MUO

Предлагается следующая модификация протокола MUO с передачей доверенности по открытому каналу и без уязвимости предыдущей модификации.

Действия A:

2. Вычисляет sa = (xa + k ■ yB ■ К) mod q и пару (sa, К) отправляет участнику B по общедоступному каналу связи.

Действия B:

1. Проверяет сравнение д5А = Уа ■ КУв^K(modp).

2. Если оно выполнено, то B вычисляет доверенный ключ подписания как

xp = (sa + xb ■ уа) mod q.

Действия проверяющего:

1. Зная (из подписи) свидетельство К, открытые ключи доверителя (уа) и доверенной стороны (ув), вычисляет доверенный ключ yp для проверки подписи по правилу

yp = Уа ■ КУв ■K ■ уУА mod p.

Здесь, как и в протоколе LCK, доверенность sa зависит от значения у в. Предположим, что злоумышленник C воспользуется переданной по открытому каналу доверенностью и создаст секретный ключ xp = sa + xc ■ Уа. В этом случае соответствующий открытый ключ имеет вид yp = gXp mod p = Уа ■ КУв 'K ■ уУА mod p. Злоумышленник подписывает документ и заявляет, что сделал это по доверенности от A. Согласно протоколу, лицо, проверяющее эту подпись a = (Sign(M, xp), К, Уа, yc), располагая только свидетельством К, открытыми ключами доверителя (уа) и злоумышленника (yc), не сможет корректно вычислить yp и проверить подпись а, не подставив в выражение для yp значения открытого ключа ув того участника B, для которого в действительности предназначалась доверенность, и тем самым уличит мошенника. Таким образом, добавив в доверенность зависимость sa от ув, доверитель A однозначно определил доверенную сторону, что позволило использовать открытый канал для передачи доверенности.

Покажем, что при невозможности взятия дискретного логарифма атаки из [6], описанные выше, на этот протокол невозможны.

В самом деле, реализация первых двух атак выглядит следующим образом.

В первой атаке участник A должен взять такие s и К, чтобы для xp = (xa + +s ■ ув) mod q выполнилось равенство gXp mod p = yp, т. е. сравнение

Уа ■ #5Ув = Уа ■ КУв■K ■ уУА (modp),

или, что то же самое,

КK = gs ■ у~вА'У_1 (modp).

С другой стороны, участник B должен подобрать s и К так, чтобы для xp = (s ■ ув + +xB ■ Уа) mod q выполнилось равенство gXp mod p = yp, т. е. сравнение

КK = gs ■ yAy_ (mod p).

Для реализации второй атаки злоумышленник C должен подобрать значения s и К так, чтобы для xp = s ■ ув mod q выполнялось равенство gXp mod p = yp, т. е. сравнение

КK = gs ■ yAУ_ 1 ■ уВУА У_ 1 (mod p).

Для реализации третьей атаки злоумышленнику C необходимо подобрать такие значения k и К, чтобы выполнилось сравнение

gM+fc^c = yA ■ КУс K(mod p),

или, что то же самое,

КK = gk ■ КУв'Vc 'K(modp).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Следовательно, в каждом случае злоумышленник должен создать такие x и y, которые удовлетворяют сравнению уУ = agx(modp) для заданных a, g и p. При выбранном y нахождение нужного x требует вычисления дискретного логарифма, а при выбранном x нахождение нужного у представляется не менее сложной задачей.

Таким образом, добавив в протокол LCK зависимость sa от К, удалось убрать его слабость к атакам из [6].

5. Протокол коллективной ДЦП

Построим протокол ДЦП, в котором участвуют доверитель A и доверенное множество B, состоящие из n доверенных сторон B1, B2, ..., Bn. Доверенная подпись, поставленная любым из участников множества B, должна удовлетворять следующим условиям.

1) Проверяющий может убедиться, что подпись поставил один из участников B, но не должен узнать, кто именно.

2) Доверитель A может однозначно идентифицировать участника множества B, подписавшего документ.

Пусть для каждого i = 1, 2,... , n имеются: xj — секретный и у^ — открытый ключи участника Bj, связанные соотношением у^ = gxi mod p.

Действия A:

1. Генерирует случайные числа r1,...,rn G Z* и публикует набор чисел R1 = = gr1 mod p, ... , Rn = grn mod p без указания их соответствия участникам из множества B. Все значения R1,... , Rn должны быть различны.

2. Для каждого i = 1, 2,... ,n вычисляет Sj = (xa + Г ■ Rj) mod q и посылает (Si, Ri) участнику B» по защищенному каналу связи. Значение R необходимо передавать участнику Bj, так как последний не знает, какой именно элемент из опубликованных следует применять в вычислениях при идентификации A.

Действия множества B:

Для каждого i = 1, 2,... , n участник B» производит следующие действия:

1. Для идентификации участника A проверяет сравнение gSi = уа ■ RRi (mod p) и, если оно выполнено, то принимает Sj.

2. Выбирает случайное k G Z*, вычисляет К» = gki mod p и s» = k + x» ■ К» mod q. Отправляет пару (sj, Kj) как доверенность участникам множества B по защищенному каналу связи. На этом шаге B» доверил право подписи другим участникам множества B.

Таким образом, каждый участник Bj располагает набором

(Sj , Rj , s1 , . . . , sn, К1 , . . . , Kn) .

Действия подписывающего участника В^

1. Вычисляет секретный ключ (для доверенного подписания)

П

xVi = Si + Y, Sj(mod q). j=i

2. Доверенная подпись под документом M, поставленная с использованием ключа xPi, имеет вид a = (Sign(M, xPi); уа; Ri; yi,... , y« Ki,... , K«). Документ с подписью помещается на общедоступный ресурс.

Действия проверяющего:

1. Проверяет, что значение Ri из a содержится в наборе, опубликованном доверителем.

2. Вычисляет открытый ключ (для проверки доверенной подписи)

n

ypi = Уа ■ rRi П (Kj ■ yjKj ) mod p. (1)

j=i

(Непосредственно проверяется, что ypi = gXpi mod p, т. е. ypi —действительно ключ для проверки подписи Sign(M, xpi).)

В подписи a под документом M содержится открытый ключ доверителя (уа) и параметр Ri, который использовался при вычислении доверенности участника A участнику Bi в B. При вычислении открытого ключа (1) эти параметры позволяют убедиться, что подпись поставлена с согласия доверителя A одним из участников в B. Остальные n множителей имеют вид Kj ■ y- j. Исходя из этой информации, проверяющий не может сделать вывод, кто именно из участников множества B поставил подпись. Доверитель же A по элементу Ri может установить, кто из участников в B подписал сообщение.

Протокол коллективной ДЦП можно использовать для реализации процедуры голосования. Пусть доверитель хочет, чтобы n доверенных лиц проголосовали от его имени. Для этого он наделяет их соответствующими полномочиями, выполняя указанный протокол. Каждое доверенное лицо вычисляет свой секретный ключ и подписывает сообщение (голос). Проверяющий в момент вычисления открытого ключа контролирует, что значение Ri не повторяется. Это является залогом того, что каждое доверенное лицо проголосовало единожды. Проверяющий не может проверить, как проголосовал каждый из участников. Доверитель может идентифицировать подписавшего по значению Ri, что является борьбой со злоупотреблением со стороны доверенного лица.

Заключение

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

ЛИТЕРАТУРА

1. Mambo M., Usuda K., and Okamoto E. Proxy signatures: Délégation of the power to sign

messages // IEICE Trans. Fundamentals. 1996. V. E79-A. No. 9. P. 1338-1353.

2. Mambo M., Usuda K., and Okamoto E. Proxy signatures for delegating signing operation // Proc. of 3rd ACM Conference on Computer and Communications Security (CCS’96). ACM Press, 1996. P. 48-57.

3. Kim S., Park S., and Won D Proxy signatures, revisited // Information and Communications Security (ICICS’97). 1997. LNCS. V. 1334, P.223-232.

4. Lee B., Kim H., and Kim K. Strong proxy signature and its applications // Proc. of the 2001 Symposium on Cryptography and Information Security (SCIS’01), Oiso, Japan, Jan. 23-26, 2001. V. 2/2. P. 603-608.

5. Lee J.-Y., Cheon J.-H., and Kim S. An analysis of proxy signatures: Is a secure channel necessary? // LNCS. 2003. V. 2612. P. 68-79.

6. Wang G., Bao F., Zhou J., and Deng R. H. Security Analysis of Some Proxy Signatures // LNCS. 2004. V. 2971. P. 305-319.

i Надоели баннеры? Вы всегда можете отключить рекламу.