2011
ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА
Математика. Механика. Информатика Вып.3(7)
УДК 519.7
Доверенная цифровая подпись на базе алгоритма ЭЦП ГОСТ Р 34.10-94
Е. А. Толюпа
Ярославский государственный университет им. П.Г.Демидова Россия, 150000, Ярославль, ул. Советская, 15 tolyupa@gmail .сот; +7-915-981-69-29
Приведены основные понятия доверенных цифровых подписей. Показано, что можно построить протокол доверенной цифровой подписи, вычисляемой на базе отечественного стандарта цифровой подписи ГОСТ Р 34.10-94. Показано, что алгоритм является стойким против некоторых известных атак и сохраняет количество действий, требующихся для вычисления открытого доверенного ключа.
Ключевые слова: доверенная цифровая подпись; электронная цифровая подпись; ГОСТ Р 34.10-94.
Введение
Современные компьютерные сети позволяют совершать финансовые транзакции, вести переписку и хранить архивы в электронном виде. Однако эти операции возможны, если обеспечена безопасность обмена данными через открытые сети. Использование криптографических методов защиты информации позволяет эффективно решать эту проблему. Наиболее распространенными криптографическими средствами, обеспечивающими безопасность связи, является шифрование, электронные цифровые подписи (ЭЦП) и аутентификация [1]. Согласно [2] ЭЦП для сообщения является числом, зависящим от самого сообщения и от некоторого секретного, известного только подписывающему субъекту, ключа. Каждый должен иметь возможность осуществить проверку подписи без доступа к секретному ключу. Цифровая подпись решает три задачи: обеспечивает идентификацию источника сообщения, устанавливает целостность сообщения и обеспечивает невозможность отказа от факта подписи конкретного сообщения. Для реализации алгоритмов ЭЦП, как правило, используют конечные группы
© Е. А. Толюпа, 2011
большого порядка. В частности, группы вычетов по модулю большого простого числа p. Со времени открытия Диффи и Хеллманом [2, с.388] алгоритма ключевого обмена, основанного на сложности логарифмирования в группе вычетов по модулю простого числа, значительная часть криптографических протоколов использует указанный подход.
Традиционные алгоритмы электронной цифровой подписи позволяют пользователю выполнить подпись под документом самостоятельно, и любой участник электронного обмена может убедиться в верности подписи, однако данные схемы не позволяют участнику Л делегировать свои права участнику B, который может подписывать сообщения от имени участника Л. Такая необходимость возникает, когда директор организации уезжает в места, лишенные компьютерных сетей. В этой ситуации он может доверить право подписи другому лицу, например своему заместителю. Заместитель может подписывать сообщения от лица директора таким образом, что проверяющий сможет узнать, что данную подпись поставил заместитель от имени директора. Решить подобную задачу позволяют алгоритмы доверительных цифровых подписей (ДЦП). Наиболее известные алгоритмы ДЦП, основанные на сложности логарифмирования
в группе вычетов по модулю простого числа, приведены в [3-6]. В [7] проведен анализ безопасности этих алгоритмов.
Необходимые определения, касающиеся общепринятых криптографических терминов, можно найти в [1, 2].
1. Доверенные цифровые подписи
1.1. Основные положения
Основная идея, используемая при создании ДЦП, - создать такую схему распределения ключевой информации, чтобы можно было использовать уже существующие алгоритмы формирования и проверки цифровой подписи. В распределении ключевой информации лежит следующий принцип.
Пусть имеются два участника информационного обмена A и B - соответственно доверитель права цифровой подписи и его доверенная сторона (доверенное лицо), получающая право подписывать от имени доверителя. Каждый из участников (A и B) имеет свою пару ключей - (xA,yA) и (xB,yB) соответственно, где первый ключ (x) в паре секретный, а второй (у) - открытый. Участник A генерирует доверенность на право подписания от его имени и вместе с информацией о полномочиях (период действия доверенной подписи, типы документов, которые разрешено подписывать доверенной стороне, идентификаторы доверителя и доверенного лица и т. п.) передает участнику B, который на основании данных, содержащихся в доверенности, идентифицирует A и создает пару доверенных ключей (xp,yp), предназначенных соответственно для создания и проверки цифровой подписи. Теперь при помощи xp он может подписывать сообщения от лица A, применяя известный алгоритм ЭЦП. Любой проверяющий должен самостоятельно вычислить ключ у p
участника B, используя информацию из доверенности участника A. Таким образом, убедившись, что ключ участнику B действительно доверил участник A, можно проверить подпись с помощью процедуры верификации из того же алгоритма цифровой подписи.
Основоположниками теории протоколов ДЦП и разработчиками первого такого протокола являются М. Mambo, K. Usuda и E. Okamoto. Ими были сформулированы первые
требования к безопасности протоколов ДЦП [3, 4] и позже были расширены в [5, 6].
Безопасная ДЦП должна удовлетворять следующим требованиям:
Проверяемость - проверяющий может быть убежден, что подпись поставлена с согласия доверителя.
Стойкость к фальсификации - только назначенная доверителем сторона может создать верную доверенную подпись от лица доверителя. Другими словами, участник Л и третья сторона, не выбранная им в качестве доверенного подписчика, не смогут создать верную ДЦП от имени доверенного участника В.
Строгая идентификация - каждый может идентифицировать соответствующую доверенную сторону из доверенной подписи.
Неотрекаемость - если доверенный подписчик создает подпись под документом, то в дальнейшем он не сможет заявить, что подпись выполнена кем-то другим.
Противостояние злоупотреблению -доверенная сторона не должна использовать ключ подписания для целей, не разрешенных доверителем в информации о полномочиях. В случае злоупотребления ответственность доверенного подписчика должна определяться явно.
Перед тем как говорить о существующих алгоритмах, определим следующие параметры, которые будут использоваться дальше: р и q - различные большие простые числа, такие, что q | р - 1; Gq - подгруппа
порядка q мультипликативной группы Zр (порядка р-1): Gq = {g) ; g является общеизвестным; Н(т) - хэш-функция, устойчивая к коллизиям, то есть вычислительно сложно подобрать значения т' Ф т, такие, что
Н(ш') = Н(ш); тк - информация о полномочиях. Каждый участник (Л и В) имеет свою пару ключей - (хА, у А ) и (хв, ув ) соответственно. Ключи связаны соотношением у=gx modp. Будем считать, что вычисление дискретного логарифма - трудноразрешимая задача.
1.2. Алгоритм LKK
ДЦП на базе ЭЦП ГОСТ Р 34.10-94
В работе [5] B.Lee, H.Kim и K.Kim предложили протокол ДЦП на базе ЭЦП Шнорра.
Вычисление пары доверенных ключей происходит следующим образом.
Действия A
1. Генерирует случайное число к 6 Щ и вычисляет K = gk mod p.
Вычисляет sA = (k + xA • h(mw, K)) mod q, где mw - информация о полномочиях.
2. Отправляет (mw, sA, K) по защищенному каналу связи участнику B.
Действия B
1. Проверяет полученное значение:
gSA = yhjmw ,K) • K mod p.
2. Если условие выполнено, то он вычисляет доверенный секретный ключ:
xp = (sa + хв)mod q.
Генерация ДЦП
Когда доверенное лицо подписывает документ от имени доверителя, оно использует один из существующих алгоритмов ЭЦП, базирующихся на сложности задачи дискретного логарифмирования. Результат вычисления подписи обозначим Sign(M, xp ), где M
- документ, xp - секретный доверенный
ключ. Результат - ДЦП:
= (Sign(M, xp X mw , K, yA , Ув ) .
Проверка подписи
Для проверки подписи ст необходимо, чтобы проверяющий самостоятельно вычислил ключ y p по следующему правилу:
Ур = уТ",K) • K • Ув mod p = gx” mod p .
Вычисление доверенного открытого ключа y p является наиболее частой операцией и должна выполняться за минимальное количество операций. В алгоритме LKK для этого требуется два умножения и одно возведение в степень в группе Z*.
В работе [7] показано, что алгоритм не защищен от подделки участником A доверенной подписи участника B. Пусть A положит xB = s, k = 0 и K = yBl • gs mod p, где s -случайное число. В этом случае A вычислит секретный ключ xp = s + xA • h(mw, K) modq,
удовлетворяющий равенству
yp = K • yTw,K) • Ув mod p =
= gxA h(mw,K) • yBi • gs • Ув mod p = gx mod p. Отсюда получаем, что подпись, поставленная с помощью ключа x , является доверенной
подписью участника B, так как может быть проверена с использованием ключа y . Алгоритм не защищен от подделки ДЦП участником B без доверенности А, ибо если В возьмет K = yAh(mw’K) • gs modp и xp = s + xB mod q, то так же будет выполнено y = gx mod p. Следовательно, протокол
LKK не удовлетворяет второму требованию безопасности.
2. Авторский алгоритм доверенной цифровой подписи
Автор предлагает алгоритм ДЦП на базе отечественного стандарта ЭЦП ГОСТ Р 34.10-94, не предполагающий вычисление хэш-функции. Формально, это означает, что хэш-функция полагается равной единице. В этом случае алгоритм выглядит следующим образом.
Действия А
1. Выбирает случайное число ^ ^ ‘"'"ч и вычисляет
K = (gk mod p) mod q и K' = gk mod p . Если K = 0 или K' = 0, то выбирает
новое k .
2. Вычисляет доверенность
sA = (k + xA • K)modq.
Набор (sA, K, K') передает доверенной стороне B по защищенному каналу связи. Действия B
1. Проверяет равенство
K = (gsA • yA~K mod p) mod q.
2. В случае успешной проверки считает, что доверенность действительно отправил участник A, и вычисляет доверенный секретный ключ подписания:
xp = (sA + xB • K) mod q.
Действия проверяющего Вычисляет доверенный ключ проверки подписи:
yp = (Уа •K'• УвК )mod p =
= (Уа •Ув ) K •K 'mod p.
В предложенном алгоритме для вычисления открытого доверенного ключа необходимо сделать два умножения и одно возведе-
*
ние в степень в группе Р. Таким образом, удалось сохранить количество операций, требующихся для вычисления открытого доверенного ключа.
Предложенный алгоритм не позволяет проводить атаки, описанные в [7], дающие возможность сторонам A и B создавать доверенные ключи подписания независимо друг от друга, т.е. без участия их в выполнении протокола.
Для того чтобы участнику A ставить доверенную подпись за участника B, необходимо взять случайное число s, K и K' такие, что xp = s • yA mod q и выполнялось равенство gXp = y mod p , т.е.
gsy = yA^K' • yB mod p. (1)
Так как K = K'modq , то K' = a • q + K, где a - целая часть от деления. Пусть r - произвольный элемент группы Gq, а так как Gq имеет простой порядок,
равный q, то каждый неединичный элемент группы имеет порядок q. Отсюда справедливо равенство rq = 1mod p . Тогда
rK = ra• q+K' modp = ra• q • rK modp =
= 1a • rK mod p = rK mod p.
С учетом сказанного из (1) получаем gs’A = yK • K'• yB mod p. При выбранном K' нахождение нужного s требует вычисления дискретного логарифма, а при выбранном s на-
хождение нужного K' представляется не менее сложной задачей. Защищенность от подделки со стороны участника A доказывается аналогично.
Следовательно, предложенный алгоритм защищен от подделки ДЦП со стороны участника B. Таким образом, удалось построить алгоритм на базе отечественного стандарта ЭЦП и сохранить количество действий, необходимых для вычисления открытого ключа.
Список литературы
1. Мао Венбо Современная криптография: теория и практика. М.: Вильямс, 2005. 768 с.
2. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. 2-е изд. М.: Гелиос АРВ, 2002. 480 с.
3. Mambo M., Usuda K., Okamoto E. Proxy signatures: Delegation of the power to sign messages // IEICE Transaction Fundamentals. 1996. Vol. E79-A. № 9. P.1338-1353.
4. Mambo M., Usuda K., 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.
5. Lee B., Kim H., 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. Vol. 2/2. P.603-608.
6. Lee B., Kim H., Kim K. Secure mobile agent using strong non-designated proxy signature // LNCS. № 2119. P. 474-486.
7. Wang G., Bao F., Zhou J., Deng R. H. Security Analysis of Some Proxy Signatures // LNCS. 2003. № 2971. P.305-319.
Proxy signature based on digital signature GOST 34.10-94
E. A. Tolyupa
Yaroslavl State University, Russia, 150000, Yaroslavl, Sovetskaya st., 14 tolyupa@gmail.com ; +7-915-981-69-29
In this paper gives basic concepts of proxy signatures. It is shown that a proxy signature scheme can construct using digital signature GOST 34.10-94. It is shown that the algorithm is resistant against some known attacks and keeps the number of steps required to calculate proxy public key.
Key words: proxy signature; digital signature; GOST 34.10-94.