Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии

.pdf
Скачиваний:
4126
Добавлен:
28.03.2016
Размер:
7.75 Mб
Скачать

цифровые подписи

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

В качестве системы шифрования с открытыми ключами можно использовать, например, систему К8А.

§ 14.3. Цифровая подпись Фиата — Шамира

Рассмотрим подход к построению схемы цифровой под­ писи, основанной на сложности задач факторизации больших целых чисел и извлечения квадратного корня в кольце выче­ тов. Идея построения схемы принадлежит А. Фиату и А. Шамиру (см. гл. 12). Приведем одну из модификаций схе­ мы, предложенную ими совместно с У. Фейджем. В ней реа­ лизуется цифровая подпись с дополнением.

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

различных случайных

чисел

а {, а 2

е Ъп .

Открытым

ключом объявляется

набор

чисел

ЪХ, Ъ2

е Ъп, где

Ь1= ( а ~1) 2 тоАп , / = 1,...,т.

Алгоритм вычисления цифровой подписи для сообщения

Мсостоит в выполнении следующих действий:

1.Выбрать случайное число г, \ < г < п - \ .

2.Вычислить и - г 2 гтнх! п .

3.Вычислить к(М ,и) = ^ = (з{9з29—9зт) .

т

4. Вычислить / = г]-} а']‘ то<1 п .

/=1

5. Подписью для сообщения М положить пару (.у, ().

371

I лава 14

Алгоритм проверки подписи состоит в выполнении сле­ дующих действий:

1. По открытому ключу й,,62,...,Ьт т о ё л и значению / вычислить

 

т

 

и> = *2\ \ Ь*1 то д п

 

/=1

2 .

В ы ч и с л и т ь / ? ( М , и>) =

3.

Проверить равенство ^ = У .

Достоинствами описанной схемы являются возможность выработки цифровых подписей для нескольких различных сообщений с использованием одного секретного ключа, а также сравнительная простота алгоритмов вычисления и про­ верки подписи. Например, для схемы цифровой подписи, ос­ нованной на алгоритме К8А, соответствующие алгоритмы требуют выполнения значительно большего числа умноже­ ний. Попытка компрометации этой схемы сталкивается с не­ обходимостью решения сложной задачи нахождения квад­ ратных корней по модулю п.

Недостатком схемы является большая длина ключа, ко­ торая определяется числом т. Если двоичная запись числа п содержит / знаков, то длина секретного ключа составляет т1 бит, а открытого ключа — +1)/ бит. При этом необходимо учитывать, что для обеспечения достаточной стойкости дан­ ной схемы цифровой подписи числа / и т должны иметь в своей двоичной записи несколько сотен бит.

§ 14.4. Цифровая подпись Эль-Гамаля

Схема цифровой подписи Эль-Гамаля основана на слож­ ности другой задачи — вычисления значения логарифма в конечном поле (см. также § 1 1 .2).

Пусть р — простое число и а — примитивный элемент поля 2 . Выберем случайное число а в интервале

372

цифровые подписи

\ < а < р - 2 и вычислим значение р = а а шос! р . Число а

является секретным ключом, а набор {р, а, /3) — открытым ключом.

Подпись для сообщения М вычисляется с помощью сле­ дующего алгоритма:

1.Выбрать случайное целое число г, 1 < г < р - 2 .

2.Вычислить у - а г шос! р .

3. Для х = М вычислить 8 = (х - ау)г~хтос!(р - 1).

4. Подписью для сообщения М положить пару (у; 8). Алгоритм проверки подписи заключается в проверке

сравнения Р Уу 3 = а х{то<\р). Если оно верно, то подпись

принимается, если нет, то отвергается.

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

ма в поле Ъ р .

Сделаем два замечания.

Первое касается выбора числа г. Оно должно уничто­ жаться сразу после вычисления подписи. Действительно, зная число г и значение подписи, легко вычислить секретный ключ а:

а = ( х - гб)у~хтос1(р -1).

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

373

Глава 14

Второе замечание связано с тем, что реально при вычис­ лении подписи на шаге 3 алгоритма в качестве х целесообраз­ нее использовать свертку х = к ( М ) , а не само сообщение М.

Это защищает схему подписи от возможности подбора сооб­ щений с известным значением подписи. Существует несколь­ ко способов такого подбора. Например, если выбрать случай­ но числа /, у, удовлетворяющие условиям 0 < / < р 1 ,

О < ] < р 1 , (у, р - 1) = 1 , и положить

у = а 1 т о й р ,

8

- - у у-1 тос1(р - 1),

х

= - у у ~ хтос!{р - 1),

то легко убедиться в том, что пара (у 8) является верной циф­ ровой подписью для сообщения М = х .

Схема цифровой подписи Эль-Гамаля послужила образ­ цом для построения большого семейства во многом сходных по своим свойствам схем подписи. В их основе лежит провер­ ка сравнения вида

аАр в = у с {той р ) ,

вкотором тройка (А,В,С) совпадает с одной из перестановок чисел ±х, ±8 и ±у при некотором выборе знаков. Например, исходная схема Эль-Гамаля получается при А = х , В = - у и

С= 8 . На базе схем подписи из этого семейства построены и стандарты цифровой подписи США и России. Так, в амери­

канском стандарте

Э88 {Г>щИа1 ВщпаШге 8Шп8аг8) исполь­

зуются значения

А = х , В = у и С = 8 , а в российском

стандарте — значения А = - х , В = 8 и С = у .

Еще одним достоинством схемы Эль-Гамаля является возможность уменьшения длины подписи путем замены пары

374

цифровые побписи

чисел (/, 3) на пару чисел шос1 д, 5 шос! д ) , где д является некоторым простым делителем числа р -1 . При этом прове­ рочное равенство по модулю р следует заменить на модифи­ цированное равенство по модулю д:

( а Ар в той р ) т о й д = у с т о й д .

Именно так сделано в американском стандарте цифровой подписи Б 88.

§ 14.5. Одноразовые цифровые подписи

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

Рассмотрим, например, схему цифровой подписи Диффи — Лампорта на основе симметричных систем шифрования.

Пусть требуется подписать сообщение М = тхт2..,тп^ т1е {0,1}, / = 1,...,н. Согласно схеме Диффи — Лампорта под­ писывающий сначала выбирает 2п случайных секретных клю­ чей

* =[(*ю,*1 ,),...,(*я0Л|)]

375

 

 

I лава 14

для используемой

им

симметричной шифристемы, затем

п пар случайных чисел

 

5 = [(5|0,511),...,(5и0,5|11)],

где € {0,1}, / = 1,

]

- 0,1 , и вычисляет значения

К0 = Еку (8 0'1= 1’"*’П’ 1 = ° ’1 •

Наборы и Л = [(7?10,/г11),...,(7?л0,7?л1)] являются откры­

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

Подпись для сообщения М имеет вид { к ^ ^ . ^ к пт ).

Чтобы убедиться в ее правильности, следует проверить равенства

К у = Е ку ( 8 у ) ’ } = Щ> г = 1 - , п .

Недостатком этой схемы является слишком большой раз­ мер подписи, который может превышать размер самого под­ писываемого сообщения. Имеется несколько способов изба­ виться от этого недостатка (см. [Бер92]). Рассмотрим некото­ рые из них.

Во-первых, можно хранить не 2п значений секретных ключей, а лишь один секретный ключ к. Для этого можно воспользоваться, например, одной из следующих схем фор­ мирования последовательности К:

ку = Ек(/, /), у = 0,1, / = 1,..., п ;

376

цифровые подписи

 

\ЕкО ~ 1Д)» 3 ~ 0>

и

(/,0), ) = 1, *10=Я*«», / = и , « .

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

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

Контрольные вопросы

1.Что общего между обычной и цифровой подписями? Чем они различаются?

2.Какие задачи позволяет решить цифровая подпись?

3.В чем заключается принципиальная сложность в практи­ ческом применении систем цифровой подписи?

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

5.Проверьте, что указанный в тексте способ подбора подпи­ санных сообщений для схемы Эль-Гамаля действительно дает верные цифровые подписи.

377

Глава 15

Протоколы распределения ключей

Различают следующие типы протоколов распределения ключей:

протоколы передачи (уже сгенерированных) ключей;

протоколы (совместной) выработки общего ключа (от­ крытое распределение ключей);

схемы предварительного распределения ключей. Различают также протоколы распределения ключей меж­

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

§15.1. Передача ключей с использованием симметричного шифрования

Имеются протоколы, в которых стороны осуществляют передачу ключей при непосредственном взаимодействии, то есть двусторонние протоколы или, иначе, протоколы типа “точка-точка”, и протоколы с централизованным распределе­ нием ключей, в которых предусмотрена третья сторона, иг­ рающая роль доверенного центра.

Двусторонние протоколы

Рассмотрим сначала двусторонние протоколы передачи ключей с использованием симметричного шифрования. Раз­ личают протоколы, в которых стороны заранее располагают какой-либо известной им обоим секретной информацией, и протоколы, не требующие этого условия.

Пусть стороны А и В заранее обладают общей секретной

информацией. Допустим, что это — секретный ключ кАВ.

378

/1ротоколы распределения ключей

Тогда для передачи ключа к стороны могут использовать од­ ностороннюю передачу:

А - + В : Еклв(кА,В),

где Е — алгоритм шифрования, / — метка времени, В — идентификатор абонента В (для краткости вместо Ш(В) будем использовать лишь один символ В).

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

Заметим, что в приведенном протоколе вместо шифрова­ ния можно было использовать ключевую хэш-функцию, зави­ сящую от общего ключа:

А —^ В I к ©

Если дополнительно требуется аутентификация сеанса, то можно использовать следующий протокол типа “запросответ”:

(1)В - * А : г в ,

(2)А - + В : Е клв(к,гв ,В),

где гв — случайное число, сгенерированное абонентом В и

переданное абоненту А в начале сеанса. При использовании хэш-функции подобный протокол может выглядеть так:

379

/лава 75

(1)В - > А : гв ,

(2)А - > В : к ® к кАВ(гв ,В).

Если требуется двусторонняя аутентификация, то можно модифицировать последний протокол, предоставив возмож­ ность стороне А путем генерации своего случайного числа гА и введения его в сообщение на шаге (2) протокола убедиться в том, что он имеет дело именно с абонентом В.

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

Пусть абонентами А и В помимо случайных чисел г^ и г$ генерируют также случайные числа кд и к$ соответст­ венно. Тогда в результате выполнения протокола

(1)В - + А : г в ,

(2)А - > В : Е кАв(кл,гл,гв,В),

(3)В^> А : Е кАи(кв,гв,гл,А),

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

что в этом протоколе ни одна из сторон не может знать зара­ нее значения ключа.

Приведем теперь “бесключевой” протокол А. Шамира, позволяющий передать ключ без использования какой-либо общей секретной информации.

Пусть имеется некоторое коммутирующее шифрующее преобразование Е. Это означает, что при всех сообщениях х и ключах к\ и кг выполняется равенство

Ек^ Е кг{х)) = Екг(Екх{х)).

380