You are on page 1of 526

рограммирован

Н. СМАРТ

Криптография

Перевод с английского
С.А. Кулешова
под редакцией С.К. Ландо

ТЕХНОСФЕРА
Москва
2005

Н. Смарт
Криптография
Москва:
Техносфера, 2005.

528 с. ISBN 5-94836-043-1

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

Cryptography:
An Introduction

Nigel Smart

A McCraw-Hili Publication

McGraw-Hill
London - eurr Ridg« IL • New York
St LOUIS • San Francisco - Auckland
Bogota - Caracas - Lisbon • Madrid
Mexico - Milan - Montreal - New Delhi
Panama - Paris • San Juan • Sao Pauto
Singapore Sydney ToJtyo Toronto

© 2003, Exclusive rights
by The McGraw-Hill Companies
© 2005, ЗАО «РИЦ «Техносфера»
перевод на русский язык, дополнение,
оригинал-макет, оформление.

ISBN 15-94836-043-1
ISBN 0077099877 (англ.)

ХРАНИ СВОИ
СЕКРЕТЫ
САМ!

www.lancrypto.ry
www.lancrypto.com
info@lancrypto.ru
теп.: 4^7-095-974-76-60
4-7-095-974-76-61
4-7-095-974-76-62
4-7-095-974-76-63
факс: 4-7-095-974-76-59

Содержание
Предисловие

13

Ч а с т ь I. П р е д в а р и т е л ь н ы е м а т е м а т и ч е с к и е сведения
Глава 1.
А р и ф м е т и к а о с т а т к о в , г р у п п ы , к о н е ч н ы е поля
и вероятность

22

1.1. Арифметика остатков
1.1.1. Группы и кольца
1.1.2. Функция Эйлера
1.1.3. Мультипликативные обратные по модулю N
1.2. Конечные поля
1.3. Основные алгоритмы
1.3.1. Наибольший общий делитель
1.3.2. Китайская теорема об остатках
1.3.3. Символы Лежандра и Якоби
1.4. Вероятность
1.4.1. Теорема Байеса
1.4.2. Парадокс дней рождения

22
24
26
28
30
34
34
39
41
46
48
49

Глава 2.
Эллиптические кривые

53

2.1. Введение
2.2. Групповой закон
2.3. Эллиптические кривые над конечными полями
2.3.1. Кривые над полем характеристики р > 3
2.3.2. Кривые над полем характеристики 2
2.4. Проективные координаты
2.4.1. Большая характеристика
2.4.2. Четная характеристика
2.5. Сжатие точек
2.5.1. Случай большой характеристики поля
2.5.2. Четная характеристика

53
56
60
62
62
63
64
65
65
66
67

Содержание

Ч а с т ь II. С и м м е т р и ч н о е п1ифрование
Глава 3.
И с т о р и ч е с к и е гыифры

71

3.1. Введение
3.2. Шифр сдвига
3.3. Шифр замены
3.4. Шифр Виженера
3.5. Перестановочные шифры
3.6. Одноразовый шифр-блокнот
3.7. Роторные машины и «Энигма»

71
73
77
81
87
88
88

Глава 4.
Теоретико-информационная стойкость

96

4.1. Введение
4.2. Вероятность и шифры
4.2.1. Модифицированный шифр сдвига
4.2.2. Шифр Вернама
4.3. Энтропия
4.4. Ложные ключи и расстояние единственности

96
98
105
105
106
113

Глава 5.
С и м м е т р и ч н ы е П1ифры

122

5.1. Введение
5.1.1. Упрош,енная модель
5.1.2. Поточные шифры
5.1.3. Блочные шифры
5.2. Шифр Фейстеля и DES
5.2.1. Обзор действия шифра DES
5.2.2. Разворачивание ключа в DES
5.3. Rijndael
5.3.1. Операции алгоритма Rijndael
5.3.2. Структура раундов
5.3.3. Разворачивание ключа
5.4. Режимы работы DES
5.4.1. Режим ЕСВ
5.4.2. Режим СВС
5.4.3. Режим OFB
5.4.4. Режим СЕВ
5.5. Подлинность сообш[;ений

122
124
125
127
131
133
136
138
140
143
144
144
145
146
147
148
149

Содерэюанив
5.6. Современные поточные шифры
5.6.1. РСЛОС
5.6.2. Комбинирование РСЛОС
5.6.3. RC4

151
151
156
157

Глава 6.
Распределение симметричных ключей

162

6.1. Управление ключами
6.1.1. Распределение ключей
6.1.2. Выбор ключа
6.1.3. Время жизни ключа
6.1.4. Разделение секрета
6.2. Распределение секретных ключей
6.2.1. Обозначения
6.2.2. Протокол широкоротой лягушки
6.2.3. Протокол Нидхейма-Шредера
6.2.4. Протокол Отвэй-Риса
6.2.5. Цербер
6.3. Формальные методы проверки протоколов
6.3.1. Анализ протокола широкоротой лягушки

162
163
164
165
166
167
168
169
170
172
173
174
177

Ч а с т ь III. К р и п т о с и с т е м ы с о т к р ы т ы м к л ю ч о м
и подписи
Глава 7.
Основные а л г о р и т м ы ш и ф р о в а н и я с о т к р ы т ы м
ключом
7.1. Криптография с открытым ключом
7.2. Односторонние функции
7.3. RSA
7.3.1. Шифрование RSA и одноименная задача
7.3.2. Секретная экспонента и проблема факторизации
7.3.3. Значение функции Эйлера (f{N) и проблема факто­
ризации
7.3.4. Разделенный модуль
7.3.5. Использование малых шифрующих экспонент
7.4. Криптосистема Эль-Гамаль
7.5. Криптосистема Рабина

183
183
185
192
193
194
196
197
198
200
203

Содероюание

Глава 8.
Т е с т ы на п р о с т о т у и ф а к т о р и з а ц и я

209

8.1. Простые числа
8.1.1. Пробное деление
8.1.2. Тест Ферма
8.1.3. Тест Миллера - Рабина
8.1.4. Доказательство простоты
8.2. Алгоритмы факторизации
8.2.1. Пробное деление
8.2.2. Гладкие числа
8.2.3. (Р — 1)-метод Полларда
8.2.4. Разность квадратов
8.3. Современные методы факторизации
8.3.1. Комбинирование соотношений
8.4. Метод решета в числовом поле
8.4.1. Линейное решето
8.4.2. Решето в числовом поле
8.4.3. Как найти множество S1
8.4.4. Как извлекать квадратные корни?
8.4.5. Выбор начальных многочленов
8.4.6. Пример

209
210
211
213
214
215
216
217
218
220
221
222
224
224
227
228
230
231
231

Глава 9.
Дискретные логарифмы

236

9.1. Введение
9.2. Метод Полига-Хеллмана
9.2.1. Определяем ^4
9.2.2. Ищем х^
9.2.3. Определяем хц
9.3. Шаги младенца/шаги гиганта
9.4. Методы Полларда
9.4.1. /?-метод Полларда
9.4.2. А-метод Полларда
9.4.3. Параллельный р-метод
9.5. Суб-экспоненциальные методы в числовых полях
9.6. Специальные методы ^\ля эллиптической кривой

236
236
239
239
240
240
243
243
247
249
251
253

Содержание
Глава 10.
Распределение ключей, схемы подписей
и хэп1-функции

257

10.1. Распределение ключей Диффи-Хеллмана
10.2. Схемы цифровой подписи
10.3. Хэш-функции
10.3.1. Семейство MD4
10.3.2. Хэш-функции и блочные шифры
10.4. Алгоритмы цифровой подписи
10.5. Подпись Шнорра
10.6. Подпись Ниберга-Руппеля
10.7. Соглашение об аутентифицированном ключе

257
261
264
268
270
271
276
278
280

Глава 11.
Реализация операций

286

11.1. Введение
11.2. Алгоритмы возведения в степень
11.3. Потенцирование в RSA
11.3.1. Шифрование (проверка подписи) в RSA
11.3.2. Расшифровывание (подписывание) в RSA
11.4. Потенцирование в DSA
11.5. Арифметика многократной точности
11.5.1. Сложение
11.5.2. Умножение в столбик
11.5.3. Умножение Карацубы
11.5.4. Деление
11.5.5. Арифметика Монтгомери
11.6. Арифметика в конечных полях

286
287
292
293
293
294
295
295
296
297
298
299
303

Глава 12.
Получение аутентичного о т к р ы т о г о ключа

316

12.1. Обилие сведения о цифровых подписях
12.2. Цифровые сертификаты и PKI
12.3. Пример приложения инфраструктуры открытых ключей
12.3.1. PGP
12.3.2. Протокол защиш;енных сокетов
12.3.3. Сертификаты X50S/
12.3.4. SPKI
12.4. Другие приложения третьей доверенной стороны
12.5. Неявные сертификаты

316
317
. 323
323
324
326
327
330
332

Содероюание

12.5.1. Описание системы
12.5.2. Запрос сертификата
12.5.3. Обработка запроса
12.5.4. Действия Алисы
12.5.5. Действия пользователя
12.6. Криптография идентификационной информации

332
333
333
333
333
334

Глава 13.
Протоколы

337

13.1. Введение
13.2. Схемы обязательств
13.3. Доказательства с нулевым разглашением
13.4. Система электронного голосования
13.4.1. Установки системы
13.4.2. Заполнение бюллетеня
13.4.3. Распределение бюллетеней
13.4.4. Проверка достоверности информации
13.4.5. Подсчет голосов

337
337
341
347
348
348
348
349
349

Часть IV. Проблемы стойкости
Глава 14.
А т а к и на с х е м ы с о т к р ы т ы м к л ю ч о м
14.1. Введение
14.2. Атака Винера на RSA
14.3. Решетки и приведенные базисы
14.4. Атаки на RSA^ основанные на решетках
14.4.1. Атака Хастада
14.4.2. Атака Франклина-Рейтера и обобп],ение
Копперсмита
14.4.3. Обобш;ение атаки Винера
14.5. Частичное раскрытие ключа
14.5.1. Частичное раскрытие секретной экспоненты в RSA ..
14.5.2. Частичное раскрытие простых множителей модуля
RSA
14.5.3. Частичное раскрытие младших значаш,их цифр се­
кретной экспоненты RSA
14.6. Анализ дефектов

353
353
354
356
362
365
366
368
369
369
370
370
371

Содероюание

Глава 15.
Определения стойкости

375

15.1. Стойкость шифрования
15.1.1. Понятия стойкости
15.1.2. Виды атак
15.1.3. Другие концепции стойкости
15.2. Стойкость актуальных алгоритмов шифрования
15.2.1. RSA
15.2.2. Эль-Гамаль
15.3. Семантически стойкие системы
15.4. Стойкость подписей

375
376
378
381
382
383
384
386
389

Глава 16.
Т е о р е т и ч е с к а я слолсность

393

16.1. Классы полиномиальной сложности
16.2. Криптосистемы, основанные на задаче о рюкзаке
16.3. Битовая стойкость
16.3.1. Сильные предикаты для дискретных логарифмов
16.3.2. Сильные предикаты для задачи RSA
16.4. Случайная саморедукция
16.5. Рандомизированные алгоритмы

393
398
403
404
405
406
408

Глава 17.
Доказуемая стойкость со случайным оракулом

414

17.1. Введение
17.2. Стойкость алгоритмов подписи
17.2.1. Примеры пассивного противника
17.2.2. Активный противник
17.2.3. RSA-FDH
17.2.4. RSA-PSS
17.3. Стойкость шифрующих алгоритмов
17.3.1. Иммунизация криптосистем, основанных
на Эль-Гамаль
17.3.2. RSA-OAEP
17.3.3. Преобразование схем СРА в схемы ССА2

414
417
419
421
423
424
426
426
430
434

Глава 18.
Д о к а з у е м а я с т о й к о с т ь б е з с л у ч а й н о г о оракула

438

18.1. Введение
18.2. Некоторые новые задачи

438
439

8.З.. Операции А. Схема подписи Крамера-Шоупа 443 18.5. Функции А. Отношения А.3.5.4.java 501 Б.9. Блочные шифры 490 Б.5.1. Хэш-функции 494 Б.6.4. Шифрование с открытым ключом 492 Б. Схема подписи Дженнаро-Галеви-Рабина 442 18.java 502 Б.2. Гомоморфизмы А.4. 440 18.2.3.7. Интерактивные хэш-предположения Диффи .4.3.1.2.2. Цифровые подписи 495 Б.Java 499 Б. Факторгруппы А. 1.5.1. 1.Commitment. Размерность и базисы 454 455 457 460 463 466 470 473 475 479 480 482 483 483 485 Приложение Б.4. Сильные i?S'Л-пpeдпoлoжeния 439 18.java 505 .2. Алгоритмы шифрования 445 18. Private. Кольца А. prog.1.2.3. Множества А.6.6. Свойства векторов А. Нормальные подгруппы и классы смежности А.2. П р и м е р ы на я з ы к е Java 489 Б.Содерэюание 18.1. Подпространства А.9.5. Parameters . Public-Commitment. Схема шифрования Крамера-Шоупа 445 18.java 501 Б.3. Доказательства с нулевым разглашением и обязательства 499 Б.5. Схемы подписи 441 18.6.2. Схема шифрования DHIES 448 Прилолсение А .9. Группы А. Векторные пространства А.Java 500 Б.З. Proof.5.4.1. Поля А.6. Перестановки А.5.Хеллмана. Основная м а т е м а т и ч е с к а я т е р м и н о л о г и я 454 А.2.2. Commitment-Factory.5.9.3.

1. Д. Сетевая система с абсолютной стойкостью Д.Содерэюание Д о п о л н е н и е 1. Введение Д. Заы1ифрованные поисковые с и с т е м ы Д.2. 1. Стохастическая технология и семантический анализ текста Д. Реализация одноразового режима шифрования в систе­ ме с применением перекодера ЦСФКП 520 Предметный указатель 524 518 518 .2. Семантический анализ зашифрованных текстов Д.3.2.5.4.1. Процесс формирования и использования сетевых одно­ разовых ключей Д.2.1. Универсальность защищенных поисковых систем 507 507 507 509 511 515 Д о п о л н е н и е 2. Логический вывод на основе стохастической технологии.1. 1. 1.

одни из которых дают общее представление обо всех областях криптографии. по­ ка они не смогут свободно пользоваться специальной литературой. Кро­ ме того. плюс некоторым уча­ щимся.четвер­ того года обучения по специальности «вычислительная техника и информатика». Следовательно. в частности. Предполагается. с арифметикой остатков) и имеет представление о задачах и методах теории вероятностей. автор надеется. Некоторым из них достаточно крат­ кого обзора существующих алгоритмов и умения их применять. например Шнайер (Schneier). Не то.Предисловие Можно спросить: зачем нужен еще один учебник по криптогра­ фии? Уже написано множество книг. тех­ нический подход к алгоритмам с открытым ключом заметно изме­ нился за последние несколько лет. Настоящий учебник предназначен студентам третьего . Сейчас есть система понятий и методов. слушающим этот раздел науки в качестве дополнительного спецкурса. Подготовка студентов на этих факультетах. появилось понятие «доказуемой стойкости». в то время как другие посвящены энциклопедическому изложению предмета. что читатель прошел (хотя и плохо по­ мнит) начальный курс математического анализа. которая позволяет свести вопрос о безопасности криптосистемы к другим хорошо изученным задачам. Действи­ тельно. чтобы ма- . в то время как других необходимо подвести к переднему краю мно­ гообразных современных исследований. Однако ни одна из них не подходит д^ля начального курса. начинающемся с самых основ и ведущего студентов сквозь дебри понятий и методов до тех пор. возникает насущная потребность в учебнике. Кроме того. Теперь криптографы не пускаются в длин­ ные интуитивные обоснования безопасности своих шифров. Курсы по криптографии в настоящее время читаются во всех ведущих университетах. как и цели. различны. что читатель знаком с основами дискретной математики (в частности. иногда — в программу факультетов вы­ числительной техники или электронного машиностроения. Иногда их включают в программу мате­ матических факультетов. подобно «Справочнику прикладной крипто­ графии» {Handbook of Applied Cryptography или НАС). как правило. стоящие перед ними. отдельный курс по этой науке необходим сту­ дентам всех трех упомянутых специальностей.

Это довольно стандартный курс для будущих специалистов в вычислительной технике и информатике. чем в воспитании любителей поко­ паться в теоретических аспектах предмета. Многие из подходов этой книги к алгоритмам с открытым клю­ чом редукционны по своей природе. предназначено приложение А. что является обычным для со­ временной разработки протоколов и составляет главное отличие мо­ его учебника от остальных курсов криптографии. в котором содержится выжимка из основ алгебры и приведены все понятия.Предисловие тематический анализ был так уж необходим ^\ля изучения крипто­ графии. вместо полных доказательств приводятся лишь их схемы. многие места в книге лишены абсолютной математической строгости. что трудноразрешимость второй задачи — непререкаемая истина. Учитывая интересы потенциального читателя. желающим углубиться в необходимую для криптогра­ фии математику или нуждающимся в дополнительной информации. где они требуются. где принято доказывать сводимость одной сложной задачи к другой. так что учебник может читать даже тот. на­ пример. а другая имеет дело с формальными подходами к разработке протоколов. вся необходимая предваритель­ ная информация будет здесь представлена. как это свойство можно использовать при решении первой. Это делается в предположении. Обе эти главы можно читать без какой-либо предварительной подготовки в теории сложности и формальных методах. распознавание образов или искусственный интеллект. . как графика. Тем не менее. Редукционный подход — следствие техники. а в конце ее приводится краткий обзор доказуе­ мой стойкости. но умение свободно оперировать формулами и символами безусловно полезно. В результате одна глава посвящена приложениям теории сложности в криптографии. применяемой в теории сложности. и показывается. Студентам. кто все основательно забыл или не знал вовсе. необходимые для изучения современных криптосистем с отрытым ключом. Поэтому я рассказываю о некоторых разделах теории вычислительных систем и информа­ тики там. Большинство аналогичных курсов сконцентрировано на разработке программно­ го обеспечения и приложениях вычислительной техники к таким областям. В настоящей книге стой­ кость криптографических схем неоднократно исследуется именно таким способом. не включающий в себя многого из теории сложности и формальных методов. Главная цель этих курсов состоит скорее в подготов­ ке специалистов-прикладников. Часто.

раскрываемых в главе. которое представлено в виде те- . Чтобы помочь чи­ тателю преодолеть указанные трудности. Делается это по двум причинам. . терминология снабдит читателя необ­ ходимым словарем. что трудности при первом знакомстве с про­ токолами и криптосистемами заключаются в отделении открытой части алгоритма от той.текст главы. когда впервые сталки­ ваешься с шифрующим алгоритмом с открытым ключом или пред­ принимаешь попытки расколоть шифр замены. С другой стороны. с чем Вам предстоит столкнуться. подходящий к теме список которых приводится в разделе «Дополнительная литература» в конце каждой главы. . которую пользователи стремятся хранить в тайне. приступил к самостоятельным изысканиям. ^1итатели. Во-вторых. ключ) — строчными. почему протокол был разработан именно таким. студенты. могут обра­ титься к учебникам. чтобы он мог самостоятельно изучать отчеты о последних достижениях в области криптологии и. чтобы любой жела­ ющий мог изучать книгу самостоятельно.краткое содержание главы. набор текста имеет стандартный вид. как правило. найдут эту терминологию очень полезной. Особенно явно убеждаешься в этом. Практика показа­ ла. В других ситуациях. открытые чисти шифра или шифрограммы. набираются прописными буквами. Такое выде­ ление будет применяться всюду. что соседство абстрактных понятий с реальными конкретными примерами и мотивациями дает очень хорошие результаты. Предлагае­ мый курс опробован в Бристоле на студентах. а не другим способом. при столкновении с «реальным миром». Я пытался доступно объяснить. а секретные (исходное сообщение.краткий список тем. даже не стремящиеся продвинуться в изучении предмета до аспи­ рантского уровня. терминология групп и конечных полей упо­ требляется практически с самого начала книги. Я всегда полагал. где оно может помочь разобрать­ ся в объяснениях. у которых не было никакой подготовки в этой области математики. Каждая глава организована таким образом. с самого начала дающий представление о том. как следствие. напри­ мер при описании программных интерфейсов (API) и стандартов документов. когда смысл написанного прозрачен или все упоминающиеся данные секретны. Во-первых.Предисловие Тем не менее я стремился показать привлекательность используемой математики. а именно: . предпо­ читающие более глубокое и математически обоснованное изучение всех пропущенных или вскользь упомянутых моментов.

Эти ссылки относятся. Они не потребуют от Вас много времени. или заглянуть в НАС. • Лабораторные работы. Каждая глава содержит список нескольких книг или статей. глав­ ным образом. Фактически.Упражнения. приведенные в этом разделе. обучаю­ щиеся на факультетах вычислительной математики и кибернетики. В то время как студенты.предисловие зисов. . Разные студенты в разнообразных институтах изучают различ­ ные языки программирования. к тому материалу. которой есть что сказать по каждой теме. . В тексте отсутствуют ссылки на предшествующие работы. упомянутых в разделе «Дополни­ тельная литература». я включил в некоторые главы примеры возможных упражнений по программированию. что ЛЮБОЙ из результатов книги — мой собственный. Это — учебник. представленной в этом учебнике. На них следует отвечать по памя­ ти сразу после прочтения. и мне не хотелось ломать плавный поток изложения пе­ рекрестными ссылками. они предназначе­ ны ц^ля проверки: удержалось ли у Вас в голове хоть чтонибудь в результате подробного знакомства с главой. но непро­ веренные в основном тексте. Он оста­ влен как общая книга.Дополнительная литература. • Упражнения. Поскольку практически любая тема криптографии освещена в НАС^ я не включаю этот справоч­ ник в каждый список дополнительной литературы. Поскольку большинство студентов прикладных дисциплин сейчас требуют практических за­ даний. Тот. изучению которого подго­ товила Вас данная глава. то это должны быть именно утверждения. В книге они разделены на три типа: • Контрольные вопросы. используемые. Если Вы хотите что-то прочно закрепить в памяти. кто хочет получить сведения о первоисточниках. В некоторых из задач требуется доказать не­ сложные математические факты. дол­ жен обратиться к одной из книг. рассчитанные на уро­ вень студентов. Их цель — заставить Вас немного напрячься и глубже понять материал. из которых можно получить даль­ нейшую полезную информацию. здесь нет НИ ОДНОГО моего ре­ зультата. . Фактически. Однако Вы не должны считать отсутствие ссылок свидетельством тому. Поэтому многие вопросы из этого раздела можно использовать преподавателям в каче­ стве домашнего задания или J\ля составления экзамена.

овладев алгебраическим пакетом программ на подо­ бие Maple или Mathematica. например. Желаюш. В некоторые из языков. А вот «пишущим» на языках С и С-\--{. Java. необходимо освоить описание и оперирование с достаточно большими целыми числами и элементами конечных полей. но каждый должен отдавать себе отчет в том.ения к компьютеру. В Бристоле мы пытаемся воспитать «многоязычных» специалистов. называемые Java Cryptographic Engines или JCEs.Предисловие специализируются в языке С или Java^ студенты-математики впол­ не счастливы. Кроме то­ го. приведенных в книге. В такие языки как Java^ Haskell или алгебраический пакет Maple.509 certificates). не испытываюш. но толь­ ко тогда. достаточно большие целые числа и операции над ними уже встроены. с первого курса преподавая множество языков программирования одновременно. где при­ меняются различные приемы (и языки) для наилучшего объяснения алгоритмов. в нем имеются средства для работы с протоколом Х. За исключением таких ситуаций для опи­ сания алгоритмов я использую естественный язык или С-подобный псевдокод. встроены доступные криптографические алгоритмы. Иногда при рассказе о программах я использую конкретный язык. Любой компетентный студент может в них ра- . задание рекурсивной функции наиболее естественно выглядит в командах языка Haskell.им патологического отвраш. Этого будет вполне доста­ точно для оперирования с большими целыми числами в образова­ тельных или экспериментальных целях. Например.им реализовать на компьютере какие-то из алгоритмов. В нем также есть различные криптографические би­ блиотеки. Некоторые предпочитают языки функ­ ционального программирования аналогичные Haskell^ а другим бо­ лее удобен объектно-ориентированный язык похожий на (7++.придется организо­ вать доступ к соответствующим библиотекам или самостоятельно написать соответствующие процедуры. Задания по программированию формулируются на нейтральном языке и вполне могут быть выполнены любым студентом. когда от этого выигрывает понимаемость текста. что на практике в криптографических системах используются специальные средства повышения эффективности. Аналогичный прием использован и здесь. библиотека стандарт­ ных программ языка Java содержит возможности для вычисления хэш-функций и передачи электронной цифровой подписи. Напри­ мер.509 (Х. Я не ставлю перед собой цель детально описать классы стан­ дартных библиотек.

как сертификаты (certificates). Вместо этого в качестве по­ мощи читателю в приложении Б приведено несколько примеров. необходимые для изучения криптографии.Предисловие зобраться в течение нескольких часов. 5. я предлагаю ориенти­ роваться на главы 3. Часть II посвящена обсуждению симметричных алгоритмов шифрования и проблеме распределения ключей. я советую включить в курс главы 3. Последнюю часть следует рассматривать как щадящее. например. введение в теоретические аспекты современной криптографии. Работа со стандартными криптографическими программами и J СЕ API аналогична работе с большинством процедур языков С и (7++. кто планирует дать быстрый обзор (за 2030 лекций) современной криптографии. что­ бы подготовить читателя к восприятию основных концепций части IV. Лекторам. В части III рас­ сказано о криптосистемах с открытым ключом и электронных под­ писях вместе с некоторыми дополнительными темами. Обсуждение алгоритмов с откры­ тым ключом в третьей части было построено таким образом. специализирующихся в математике). Часть IV — наиболее сложная и охватывает множество проблем. необходимой для понимания по­ следующего материала. касающими­ ся ключей. Тем преподавателям. так что я ограничился примерами на Java^ поскольку на сегодняшний день он является самым изучаемым языком в универ­ ситетах. 8. кто обучает будущих спе­ циалистов в вычислительной технике. необходимый для со­ временных криптосистем с открытым ключом. Поэтому при первом чтении ее можно пропустить. Доступные криптографические библиотеки дают возмож­ ность преподавателям заниматься практическими исследованиями или создавать учебные проекты для студентов. а не аб­ солютно строгое. Книга состоит из четырех частей. В первой даны краткие ма­ тематические сведения. такими. схе­ мы передач и доказательство с нулевым разглашением. 10 и 12. (например для сту­ дентов. посвятив первую лекцию главе 1. относящихся к более теоретической области криптографии. вероятно. Тем же. следует выбросить . включал современное понятие доказуемой стойкости. ис­ пользующих обе упомянутые библиотеки стандартных программ и программу API для машин SUN JCE. 9 и 11. Точнее говоря. 7. я использовал версию Cryptix для SUN JCE. возникающей в связи с их применением. 7. чтобы во­ оружить студентов информацией. читающим курс криптографии с акцентом на ее математическом фундаменте. возвращаясь к началу по мере необходимости.

8 и 9. Фонг Нгуен (Phong Nguyen). Вин­ сент Риймен (Vincent Rijmen). поскольку они слишком математизированы. Дэн Пэйдж (Dan Page). мы включаем во второй курс темы. по­ священный только шифрованию. приобретающих все более важное значение. проблемах. Кроме того. Это становится все более и более важной областью.ля курсовой работы или дополни­ тельного чтения. связанной с реализацией криптографи­ ческих алгоритмов. отраженных в главах 6. касающиеся теоретико-информационной стой­ кости. в особенности Конору Грэхем (Conor Graham) и Максу Элвей (Мах Elvey). в Бристоле курс. не вошедшие в эту книгу. 5. кото­ рые мне очень помогали на всем протяжении работы над книгой. 4. Джон Мерриман (John Мегriman). следующие люди помо­ гли мне. относяш. например. Если позволяет время.Предисловие из курса главы 2. Флориан Хесс (Florian Hess). давших полезные комментарии к обоим нашим курсам и чер­ новому варианту этой книги. Найджел Смарт Университет Бристоля . Например. Ник Хоугрэйв-Грэхам (Nick Howgrave-Graham).ихся к управлению ключами. что эта тема больше подходит р. мощный дифференциальный анализ и другие стороны исследования информационных каналов. 7 и 15. что я не упоминаю времен­ ной анализ. Мне показалось. Кроме того. то в курс лекций можно включить прак­ тически весь материал учебника. 10. Эдлин Теск (Edlyn Teske) и Фридерик Веркаутерен (Prederik Vercauteren). так и не вошло в книгу. обеспечивая взаимосвязь между многообразными главами и темами: Ян Блэк (Ian Blake). В нем шифрование представлено просто как «нажимание на кнопки». Джон Мэлон-Ли (John Malone-Lee). е. Множество тем. цифровой подписи и РК1^ т. поскольку наиболее распространенные из них находятся во враждебной среде. А в другом мы рассказываем о проблемах. как. Венбо Мао (Wenbo Мао). Один из основных пробелов — подробное обсу­ ждение линейного криптоанализа блочных шифров. изящная кредитная карта в Вашем бумажнике. отвечающие за шифрование и расшифр ование. мы читаем беря за основу главы 3. Я хотел бы выразить свою признательность сотрудникам издательства Мак-Гроу Хилл. Второе упущение — то. Я хотел бы поблагодарить студентов Бристольского универси­ тета. 12 и 13.

Jassim) — университет Бэкингема. Menezes. J.Д-р Р. способствовавшим в написании этой книги: . Эшман (Н. . Жэан (N. Murtagh) — Королевский университет. Д.Д-р М. The Handbook of Applied Cryptography.Проф. Джассим (S. Aspinall) — университет Эдинбурга. 1997. Белфаст. . Эспиналл (D. Zhang) — университет Манчестера. Huth) — Имперский колледж Лондонского уни­ верситета. Р. Пэуит (R.Проф. . .Д-р С. Мэрфи (S. Ф. . Ashman) — университет Нотингема.Д-р Н.Д-р X. A. van Oorschot and S.Предисловие Дополнительная литература А. Vanstone. . . Мэртаф ( F.Д-р С. Poet) — университет Глазго. Дополнительные благодарности Автор благодарен своим коллегам. . CRC Press. Хае (М. Murphy) — Королевский колледж Лондон­ ского университета (Holloway).

предназначено приложение А. возвращаясь к первой по мере необходимости. можно найти в университетском курсе «Дискретная математика» или учебниках. тогда. нам необходимо осветить некоторые основные математические факты. позволяющий приступить к изучению основного материала книги. Поэтому Вы можете при желании сразу начать чтение со второй части. посвященных про­ граммированию. Эта часть — по существу краткий обзор необходимых сведений. Поэтому Вам далеко не все параграфы покажутся незнакомыми. Многое из того. желающему узнать более формализован­ ные определения или понятия. Читателю. когда встретите незнакомое Вам понятие.ЧАСТЬ I ПРЕДВАРИТЕЛЬНЫЕ МАТЕМАТИЧЕСКИЕ СВЕДЕНИЯ Прежде чем вплотную заняться криптографией. что изложено в этой части. распо­ ложенное в конце книги. .

ведь в сутках 24 часа. поскольку остаток от деления 13 на 12 равен 1. китайская теорема об остатках и символ Лежандра. • Выучить основную технику — алгоритм Евклида. Делается это довольно просто. ГРУППЫ. 1. поскольку именно она является основой современной крипто­ графии и криптосистем с открытым ключом в частности. . с которой Вы знакомитесь в детстве. что и один час в 12-часовой.ГЛАВА I АРИФМЕТИКА ОСТАТКОВ.1. «Арифметика часов» связана с пересчетом времени из 24-часовой системы в 12-часовую и обратно. достаточно разделить его на 12. • Познакомиться с группами и конечными полями. В связи с этим в данной главе вводятся необходимые основные понятия и техника арифметики остатков. Остаток от деления и будет искомым значением в 12часовой системе. Например. • Освоить основные идеи теории вероятностей. 13:00 в 24-часовой системе — то же самое. КОНЕЧНЫЕ ПОЛЯ И ВЕРОЯТНОСТЬ Ц е л и главы • Понять арифметику остатков. Чтобы перевести значение в 24-часовой системе в 12-часовую. Арифметика остатков Эта книга во многом посвящена приложениям арифметики остат­ ков. а на цифер­ блате их всего 12. Идея арифметики остатков по существу очень проста и похо­ жа на «арифметику часов».

Все возможные остатки от деления чисел на N образуют множе­ ство Z/NZ= {О. что в этом случае числа а и b имеют один и тот же остаток^ от деления на N. Еш.1. которое называется модулем. Если разность двух целых чисел Ь — а делится на N нацело. что (—3) (mod 2) = 1.1 8 (mod 7) = 3. Например. Очевидно. — Прим. перев. что числа а и 6 сравнимы по модулю iV. Кроме того. Арифметика остатков Объясним более четко. мы будем использовать (modN) как обозначение оператора модуля на множестве целых чисел.2=-1. а мы будем полагать. Часто мы будем лениться и писать просто а = Ь^ если ясно по какому модулю N происходит сравнение. . Таким образом. мы можем считать. Прежде всего мы фиксируем положительное натуральное число iV. Например. оперируя с целыми числами по модулю 7V. в языках С или Java оператор модуля действует так: (-3)У. Заметим. 7 V .е раз отметим. Тем не менее в этой книге мы будем придерживаться обозначе­ ния Z/7VZ. что такое арифметика остатков. за тем исключением. . сравнимое с данным по модулю N. Поскольку все срав­ нимые между собой по модулю N целые числа имеют один и тот же остаток. что элемент х G Z/iVZ изображает целый класс чисел вида х + kN^ где А: G Z. то пишут а = b (modN) и говорят. . . что в нашей книге значения этого оператора обычно неотрицательны. (11 + 13) (mod 16) = 24 (mod 16) = 8. который вычисляет наименьшее натуральное число. что некоторые авторы обозначают это множество через ZAT. Z/NZ — множество значений оператора модуля (mod N). 18 (mod 7) = 4. например.1. ^Отсюда название «арифметика остатков». Они определяются обычным путем. . что любой элемент множества Z/iVZ — это остаток от деления некоторого числа на N. На множестве Z/iVZ есть две основных операции — сложение и умножение. мы будем считать все сравнимые между собой числа равными друг другу и использовать традицион­ ный знак «= » вместо « =». Очевидно. Оператор модуля похож на оператор % в языке программирования С. .1 } .

Сравнения^ группы. Г р у п п ы и кольца Сложение и умножение по модулю N работают почти так же. они обладают следующими свойствами. 7.Глава 1. конечные поля и вероятность так как 24 = 1 • 16 + 8.с=^ а .{b .а) . 1. се Z/NZ : {а Л-b)-\-с = а-h {b-\-с). b. be Z/NZ: a-beZ/NZ. Замкнутость сложения: Va.1Л. 1. be Z/NZ: a'b = b'a.а) + а = 0. В частности. b. се Z/NZ : {а . 10. 3. 5. с G Z/NZ : {аЛ-Ь) . Умножение и сложение связаны законом дистрибутивности: Va.с^ а-c-Vb . Всегда существует обратный элемент по сложению {противополоэюный): Va G Z/NZ : а + (iV .(TV . поскольку 143 = 8-16 + 15. Ассоциативность сложения: Va. 9. Число 1 является единичным элементом (единицей) по умно­ жению: MaeZ/NZ: а • 1 -= 1 • а = а. и (11 • 13) (mod 16) = 143 (mod 16) = 15. 2. Коммутативность сложения: Va. be Z/NZ: a + b = b-\-a. . как арифметические операции над вещественными и целыми числами. Коммутативность умножения: Va. 8. Замкнутость умножения: \/а.с). Ассоциативность умножения: Va.b) . Нуль является единичным элементом (или единицей) по сло­ жению: Va е Z/NZ : а-\-0 = 0-\-а = а. 6. 4. beZ/NZ: a+ beZ/NZ. 6.с.

Введем для таких множеств специаль­ ные термины. Еди­ ницей здесь является обычный О. любое множество с операцией. замкнута.к. по­ скольку X • х~^ =^\. Итак. Абелева группа называется циклической^ если в ней есть такой специальный элемент (образующая)^ что любой другой элемент группы получа­ ется многократным применением к нему^ групповой операции. 2. и обратным к х будет ж~^. Стандартные примеры групп. — абелевы. обладает единицей. Группа называется мультипликативной^ операцию как умножение. На2 И обратному к образующей. Группу с коммутативной операцией называют коммутативной^ или абелевой. удовлетворяющее свойствам 1.Целые.Ненулевые рациональные. т. •) в том случае. наделены некоторыми из этих свойств. поскольку именно свойство коммутативности придает им криптографический интерес. с которыми мы будем встречаться. а обратным к х служит —ж. точкой: f =9'h и 9^ если мы записываем ее =9'9'9'9-9' Такую группу мы обозначаем (G. вещественные или комплексные чи­ сла. которая - Группой называется множество с операцией. — Прим. Определение 1.{—х) = 0. вещественные или комплексные числа по сложению. а если операция удовлетворяет еще и свойству 5.1. когда возможны сомнения относительно используемой в ней операции. 3 и 4 из перечисленных выше. т. . е. на­ зывается группой. ассоциативна.1. то — абелевой группой. с которыми Вы встречаетесь еще в школе. Почти все группы. .1. встречающиеся в криптографии. относительно нее каждый элемент обладает обратным. Единица в них — это 1. +). Группу назы­ вают аддитивной^ если ее операция записывается как сложение: f =g+h и 5-9 = 9 + 9 + 9 + 9 +9- Для аддитивных групп мы используем обозначение (G. это: . X -\. Арифметика остатков Многие множества. перев.

(-1) + (-1).2. которые обладают свойствами 1-9 со стр. В мультипликативном случае каждый элемент h группы G можно записать в виде а в аддитивном h=^X'g. Вы знакомы с беско­ нечными коммутативными кольцами целых.Глава 1.2. +). Таким образом. Кольцо вычетов — один из центральных объектов криптографии. т. Например. что умножение в данном кольце коммутативно. Если окажется. Множество остатков Z/NZ с операциями сложения и умножения тоже является коммутативным кольцом. Такое определение на первый взгляд может показаться сложным. с ко­ торыми мы постоянно имеем дело. группы. на свойствах кото­ рого основаны многие методы шифрования. число 1 — образующая группы целых чисел по сло­ жению. 1. в группе целых чисел по сложению любой элемент можно получить в результате многократного сложения 1 (или —1) с собой. конечные поля и вероятность пример.1. называемое дис­ кретным логарифмом элемента h по основанию д. Линейное уравнение ах = b с вещественными коэффициентами при . Определение 1. 24. сложением и умножением. Действительно. то мы будем называть его коммутативным кольцом. Мы можем обозна­ чать кольцо вместе с его операциями тройкой (Д. Если д — образующая циклической группы G. традиционно обозначаемыми «+» и «•». которое ча­ сто называют кольцом вычетов по модулю N. но оно просто суммирует многообразные свойства множеств. удовлетворяющего этому равенству.2 . где X в обоих случаях — некоторое целое число. . •. мы пишем G = {д). Сравнения. поиск элемента х G Z/A/'Z. Ф у н к ц и я Э й л е р а Одна из центральных задач арифметики остатков — это решение уравнения а • X = b (modiV). Кольцо — это множество R с двумя операци­ ями. е. вещественных и ком­ плексных чисел. Введем понятие кольца. 7 = 1 + 1 + 1 + 1 + 1 + 1 + 1.

Случай же кольца вычетов еш. . существует очень простой критерий. имеет ли данное уравнение ни одного. что числа а и N взаимно просты. дается функцией Эйлера (р и равно ^{N). Например. после чего искомое неизвестное х вычисляется по формуле х = b . уравнение 11-ж = 3 (mod 143) решений не имеет. ^ . . когда НОД(а. суш. .с (modiV). Оно может быть найдено с помощью промежуточного числа с. где а' = | .1.ествует ровно одно решение уравнения 7-д: = 3 (mod 143). . .е более сложный.Л^) = 1.1.Если НОД (а. 6' = I и ЛГ' = ^ . Действительно. то существует ровно одно решение.ающего уравнение 2гг = 5 в верное равенство. позволяюш.Если НОД {а^ N) ^ 1 и д = НОД (а. обраш. Значение (p{N) можно найти по .N' где г = 0. что А^ЛЯ нее вводится специальное название. Если ж' — решение полученного уравнения.ествует целого числа ж. Говорят. Ситуация. не суш. Чтобы их найти. 6 и ЛГ уравнение ах = b (mod N) имеет решения и как их все найти? К счастью. 7V) = 1. Таким образом. одно или много решений. в то время как множество решений уравнения 1 1 . настолько важна. нужно разделить исходное уравнение на д: а' -х' = Ь' (modiV'). то решение исходного — любое число вида X x' + i.В других случаях решений нет. а потому и интерес­ ный с любой точки зрения. . N) делит 6.1. 1. Мы просто вычисляем наибольший общий делитель чисел аиМ: Н0Д(а. ^ = 22 (mod 143) насчитывает 11 элементов. то уравнение будет иметь д решений. Число элементов кольца Z/7VZ. .7У). встает вопрос: при ка­ ких условиях на а. взаимно простых с 7V. Арифметика остатков а 7^ О всегда разрешимо. удо­ влетворяющего уравнению а-с = 1 (modiV).ий определить. Если же рассматривать его над кольцом целых чисел. то ответ найдется не всегда.

е. если р — простое число. перев. НОД(а. когда ai/iN взаимно просты. т. ^То есть обратим. Сравнения. то ip{p) =р-1. то v'W = ПРГЧР» -1). существует ли число с. то любой ненулевой элемент в Z/pZ обладает мультипликативным обратным^. Как уже было от­ мечено. Особый интерес представляют следующие частные случаи: 1. Иначе говоря. Заметим. конечные поля и вероятность разложению числа N на простые множители.3. Если р и q — простые числа и р ^ q^ то (p{p'q) = {p-l){q-l). группы. мы приходим к вопросу о существовании мультипликативного обрат­ ного у числа а по модулю N. что последнее утверждение очень важно с точки зре­ ния криптографии: по разлоэюению числа N на простые множите­ ли легко вычислить значение (f{N). Особенно интересен случай простого модуля N = р^ поскольку при этом А^ля любого ненулевого элемента а G Z/NZ найдется единственное решение уравнения ах = 1 (modp). обратный к а существует только тогда.1. Кольца с таким свойст­ вом называются полями. .28 Глава 1. Если р простое. необходимо выяснить. Итак. удовлетворяющее равенству ас = са^\ (mod iV)? Такое число с естественно обозначить через а~^. — Прим. М у л ь т и п л и к а т и в н ы е о б р а т н ы е п о м о д у л ю Л^ Решая уравнение вида ах — Ь (modiV).Л/^) = 1. 2. Если где Pi — различные простые числа. 1.

р-1}. когда N = р — простое число. Далее мы обсудим конечные поля более общего типа.. Полем называется множество (F.+) с двумя операциями. Определим множество обратимых элементов в Z/NZ как (Z/iVZ)* = {хе Z/NZ\ ЯОД{х. а сейчас от­ метим лишь тот существенный момент. В нашей ситуации легко проверить.4. чтобы Q ф 1.^(^) = 1 (modTV). поле — это коммутативное кольцо. •) — группа по­ рядка (с числом элементов) п = #G^ то каждый ее элемент а Е G удовлетворяет соотношению а^ = 1. . р . .. Иными словами. Нужно также потребовать. = {z/pzy = {1.(F..ЛЯ наибольшего его подмножества элементов.р-1} и F. ..3. (Теорема Лагранжа. Как следует из определения. таковыми являются множества рациональных.. +) — абелева группа с единичным элементом О..(F. для х G (Z/iVZ)* выполнено равенство а. поскольку каждый ненулевой элемент кольца Z/pZ взаимно прост ери поэтому обратим.1 } .1. что множество (Z/NZ)* — группа по умножению с числом элементов (p{N). . вещественных и комплексных чисел.1. Теорема 1. Арифметика остатков Определение 1. С полями Вы уже тоже встре­ чались. . Следовательно. •) — абелева группа с единичным элементом 1. В специальном случае. получаем: (Z/pZ)* = {l. В част­ ном случае поля вычетов получаем Fp = z/pz = {о. которые образуют группу по умноже­ нию. перев. — Прим. мультипли­ кативная группа F* поля F совпадает с множеством F \ { 0 } . . Этот параграф заканчивается самой важной теоремой из эле­ ментарной теории конечных групп. •.М) = 1}. в котором каждый ненулевой элемент обратим. которое обычно называется полем вычетов по модулю р и обозначается символом ¥р. . обладающее дополнительными свойствами: . что целые числа по модулю N образуют поле тогда и только тогда. •. Для общего кольца А обозначение А* закреплено А. Например. Z/pZ является конечным полем. когда N — простое число...) Если (G. +) удовлетворяет закону дистрибутивности^.{F \ {0}. Таким образом.

что число р простое и а G F*. основывающегося на регистре сдвига с обратными связями. и при изучении криптоси­ стем. который будет рассматриваться в следующих главах.5. Оно обозначается через ¥p[x]/f{x)¥p[x] или ¥p[x]/{f{x)). 1. Здесь мы разберем еще один. Это мно­ жество обозначается через ¥р[х] и образует кольцо относительно естественных операций суммы и умножения многочленов. Конечные поля Целые числа по простому модулю — не единственный пример ко­ нечных полей. возможные остатки будут образовывать кольцо.) Предположим. Теорема 1. (Малая теорема Ферма. Малая теорема Ферма является частным случаем теоремы Ла­ гранжа и служит основой одного из тестов на простоту. Можно зафиксировать многочлен f{x) и рассматривать осталь­ ные элементы кольца ¥р[х] по модулю^ / ( ^ ) . Особый интерес представляет случай р = 2^ откуда мы и будем черпать наши примеры в данном параграфе. в корне отличной от малой). ^То есть оперировать с остатками от деления многочленов на f{x). Поэтому при первом чте­ нии этот параграф можно пропустить. более общий. связанных с эллиптической кривой.Глава 1.х^. Закрепим букву р за простым числом и рассмотрим множество многочленов от переменной х с коэффициентами из F^. Упомяну­ тый общий тип полей будет использоваться лишь при обсуждении блочного шифра Rijndael^ поточного шифра. . конечные поля и вероятность поскольку #(Z/iVZ)* = ^{Ю. перев. тогда а^ = 1 (modp). в кольце ¥2[х] выполнены равенства: {1 + х + х'^)-\-{х + х^) = 1-\-х'^ -\. Сравнения. — Прим. {1 + х + х^) ' (х-^х^) =x-i-x'^ -^-х"^ + х^. представляющий интерес А^ЛЯ криптографии. тип конеч­ ных полей. Например. группы.2.Как и натуральные чи­ сла по модулю 7V.Это следствие теоремы Лагранжа подводит нас к малой теореме Ферма (не путать с великой теоремой Ферма.

каждое из которых состоит из 2^ двоичных многочленов^. как и в целых числах по модулю ЛГ. кольцо ¥p[x]/{f{x)) является конечным полем тогда и только тогда. / ) = 1. перев. . Предположим. т.1. следует помнить. Напомним. равных О или 1. ответ зависит от наибольшего обш. Поэтому число всех многочленов — 2^. Многочлен называется неприводимым^ если у него нет делите­ лей. Тогда {l + x + x'^) '{х + х^) (modx^ + 1) = 1 + ж^. когда многочлен f{x) непри­ водим. так как X + ж^ + ж^ + ж^ . Напомним. что р = 2 и рассмотрим два неприводимых мно­ гочлена / l ( x ) = Ж^ + X + 1 и / 2 = Х^ + Х^ + 1. только ес­ ли TV — простое число.его делителя многочленов а и / и возможны три ситуации.(ж 4. например. Проверяя выписанные равенства. Легко понять. что целые числа по модулю N образуют поле. Таким образом. Существует ли решение уравнения аа = b (mod/) относительно неизвестной а? Здесь. когда ПОД (а. Сложение в обоих полях выглядит оди­ наково. е. что при знакомстве с целыми числами по модулю N нас интересовало уравнение ах = b (modTV). Конечные поля Пусть. Точно так же. что все коэффи­ циенты рассматриваются по модулю 2. А вот умножаются элементы этих ^Действительно.2. где п — степень неприводимого многочлена f(x). отличных от него самого и констант. У нас возникают два конечных поля Fi=¥2[x]/{Mx)) и Г2 = ¥^[х]/{/2(х)). поскольку при вычислении суммы складываются коэффици­ енты многочленов по модулю 2. степень которых не превосходит 6. любой такой многочлен имеет ровно 7 коэффициентов. Ь и / — многочлены из Fp[a:]. Можно поставить аналогичный вопрос и для многочленов.1) • (ж^ + 1) + (1 + х^). — Прим.ая из них возникает при взаимно простых а и / . что простота целых чисел. неприво­ димость многочленов — это то же самое. Пусть а. что в общей ситуа­ ции поле ¥p{x)/{f{x)) насчитывает р^ элементов. Самая интригуюш. f (х) = х"^ + 1 и р = 2.

Галуа написал свои блестящие работы в раннем возрасте и погиб на дуэли. Это поле называется простым подполем поля К. Существует единственное (с точностью до изомор­ физма) конечное поле с числом элементов. но отметим. . все конечные поля фактически совпадают либо с целыми числами по простому модулю. что поля Fi и F2 изоморфны. charFp = р. В частности. Теорема 1. Обозначение GF{q) означает поле Галуа из q элементов. равным степени простого числа. {х^ + 1)-[х^^1) {modf2{x))=x\ Возникает любопытный вопрос: действительно ли различны поля Fi и F2. группы. В частности. Нам необходимо объяснить несколько технических терминов. как выражается корень f2{x) в виде многочлена от корня fi{x).6. Сравнения. мы приходим к фундаментальной теореме. свя­ занных с конечными полями. или это только кажущееся различие? На математическом языке вопрос формулируется так: изоморфны ли поля Fi и F2? Го­ ворят. имеет место равенство ¥р = ¥р[х]/{х).Глава 1. Итак. что для построения изоморфизма между Fi и F2 достаточно показать. конечные поля и вероятность полей по-разному: {х^ + 1) • {х^ + 1) (mod/i(x)) =х^ + х^ + х. Число р элемен­ тов простого подполя называется характеристикой поля и обозна­ чается через char if. он су­ ществует и между нашими полями Fi и F2. У него была интересная жизнь. Мы не будем доказывать здесь этого факта. называемое изоморфизмом^ которое удовлетворяет двум требованиям: Оказывается. Любое конечное поле К содержит в себе экземпляр поля целых чисел по некоторому простому модулю р. Так что можно утверждать единственность конструкции конечных полей. Приведенные выше конструкции по существу одинаковы и дают единственный способ построения конечных полей. Следовательно. Конечно. Будем обозначать поле из q = р^ элементов символом F^ или GF{q). изоморфизм существует между любыми двумя конеч­ ными полями с одинаковым числом элементов. либо с многочленами по модулю неприводимо­ го многочлена (который тоже можно называть простым). Так (после XIX века) иногда называют конечные поля по имени фран­ цузского математика Галуа. если существует отображение (р : Fi —> F2.

что отображение Фробениуса — изоморфизм по­ ля F^ с самим собой. Заметим. что неподвижное поле автоморфизма Фробениуса совпадает с простым подполем F^. . всегда можно найти такой элемент д ^¥q^ что любой ненулевой элемент а G F^ будет предста­ вляться в виде при некотором целом показателе х. {ae¥pd\ а^' = a } = Fpe. Такого сорта изоморфизмы принято называть автоморфизмами. как и образующих циклических групп. Конечные поля На конечном поле характеристики р можно определить так на­ зываемое отобраэ/сение Фробениуса: Легко проверить. может быть несколько. поскольку группа его ненулевых элемен­ тов всегда циклическая. Подчеркнем. Интересное свойство автоморфизма Фробениу­ са заключается в том. которое принято называть неподвижным полем автоморфизма х. ^Примитивных элементов. К тому. остающихся неподвижными при действии Ф. можно добавить.е. что Fpd содержит подполе Fpe р^ля любого числа е. что поле ¥q содержит копию Fp.2. перев. что множество элементов из F^.Таким образом. Ненулевые элементы конечного поля. что взяв произвольный элемент а G F^ и сложив его с собой р раз.1. что это утверждение — обобщение малой теоремы Фер­ ма на случай любых конечных полей. т. Иначе говоря. Другое интересное свойство характеристики р поля F^ заключается в том. Например в поле F49 имеет место равенство Х + Х + Х + Х + Х + Х + Х = 7Х = 0 (mod 7). {ae¥q\ аР = а} = ¥р. множество которых обычно обозначается через F*. делящего d. совпадает с его простым подполем. предыдущее утверждение говорит о том. т. мы получим 0.е. составляют конечную абелеву циклическую группу. что примитивный элемент есть в любом конечном поле. Если х — произвольный авто­ морфизм конечного поля. то множество неподвижных относительно него элементов тоже образует подполе. — Прим. Это под­ поле может быть определено как неподвижное поле автоморфизма Ф^. Образующая группы F* называется примитивным элемен­ том^ конечного поля.

3. к. 1. имеет ли данный элемент а G Z/NZ (или а E¥p[x]/{f)) обратный элемент по умноже­ нию. формальный корень. т. группы.1. а^ = a^ + а. перев.1. е. а^ = а + 1. а^ Н-1. а^ =: Qf^. некий искусственно введенный элемент.Глава L Сравнения.китайской теореме об остатках. Z/pZ = ¥р — конечное поле. к. что а — прими­ тивный элемент поля F23: а^ == а. что для решения уравнений а ' X = b (mod N) в целых числах или аа = b (mod/) в многочленах по простому модулю нам необходимо найти наиболь­ ший общий делитель. Н а и б о л ь ш и й о б щ и й д е л и т е л ь В предыдущем параграфе мы отмечали. которые следует знать каждому читателю. В частности. N) = 1 (соответственно НОД (а. а^ + о^ + 1.алгоритме Евклида. а^ = а^ + а + 1. а^ + а.Убедимся. а^. . т. . . 1. а именно 1.3. конечные поля и вероятность В качестве примера рассмотрим поле из восьми многочленов F23 =¥2[х]/{х^ -\-x-hl). что целые числа по модулю р также имеют примитивный элемент. т. a^ = a^ + l. они часто ис­ пользуются в данной книге. т. Основные алгоритмы Существует несколько численных алгоритмов или технических при­ емов. / ) = 1)? Мы не объяснили как вычислить этот наибольший ^Более точно. а. Здесь мы сконцентрируем внимание на .е. выполнено ли равенство НОД (а. в котором все действия выполняются по модулю 2. удовлетворяющий ^удовлетворяющий соотношению а^ ++ а + 1 = 0. Отметим. в нем существует семь ненулевых элементов. надо выяснить.вычислении символов Якоби и Лежандра. а + 1. а^ = 1. — Прим. где а — корень многочлена^ х'^ + х -\.

так и Ь.3. Г4. гз. например. Если бы мы могли разложить числа а и N на. что символ degg обозначает степень многочлена д. Разделить целое число а на число b с остатком — это значит найти такие числа q и г с О ^ г < |Ь|. Из данного разложения мгновенно получается НОД: НОД (а. такие что^ О ^ degr < degg и f =zq. простые делители. Исправим наше упущение описанием старейшего алгоритма.1. Если мы хотим разделить многочлен / на многочлен д с остатком.g-^r. то оно делит и все ^Напомним.. Алгоритм Евклида. алгоритма Евклида. а = 230895 588 646 864 = 2^ • 157 • 4513^ Ь = 33 107 658 350 407 876 = 22-157-2 269^ . что мы сейчас и продемонстрируем. — Прим. а имен­ но. что если число d делит как а.3. Для вычисления наибольшего общего делителя чисел го = а и Г1 = Ь мы последовательно вычисляем Г2. которая равна наибольшей степени входящих в него мономов. Распространить его на многочлены несложно. при которых выполняется равенство а = q ' Ь-Ь г. то нам нужно найти многочлены g и г. то вычислить наи­ больший общий делитель не составило бы труда.4 513. а многочлены а и / на неприводимые множители. по­ скольку как целые числа. перев. Однако разложение на простые множители — очень трудоемкая опе­ рация. производя деле­ ние с остатком по следующей схеме: Г2 = qm + Го. Пусть. ^3 = д2П2 + п . Ь) = 2^ -157 -4513 = 2 834164.. Здесь мы рассмотрим только слу­ чай целых чисел. . Основные алгоритмы общий делитель и не рассказали о методе построения обратного элемента при условии его существования. так и многочлены обладают свойством евклидовости: их можно делить с остатком. 1.1. в то время как вычисление наибольшего общего делителя сравнительно несложно. известного человечеству.1... ^ т ^^ Чт—1'^m—l ~г ^т—2? Очевидно.

1417 082) = НОД (1417082. 9) = = НОД (3. Н0Д(а. как Haskell. Приведем пример и с большими числами.12) = = НОД (12 (mod 9). Продемонстрируем работу алгоритма на вычислении НОД (21. 12) = = НОД (9. равного. поскольку он естественно записывается в рекуррентном виде: myGcd : : I n t -> I n t -> I n t myGcd a b = gcdstep (abc a) (abc b) gcdstep : : I n t -> I n t -> I n t gcdstep a b I a == 0 = b I otherwise = gcdstep (b 'mod' a) a Bo многих языках программирования.3) = .3) =3.810 653 094 756) = = НОД (810 653 094 756.194 637 629 782) = = НОД (194 637 629 782. С или пакетах компьютерной алгебры типа Maple из-за больших затрат .9) = = Н0Д(9 (mod3).4 251 246) = НОД (4 251246.Н О Д (0. мы находим искомый делитель за несколько шагов: НОД (21. таких как Java. Следовательно.252 240 596) = НОД (252 240 596.616 015 464 974) = = НОД (616 015 464 974.1 769 935 418) = = = = = НОД (1 769 935 418.2 022176 014) = = НОД (2 022176 014.12) = НОД (21 (mod 12). Используя функциональный язык программирования. НОД (1426 668 559 730. без сомнения. напри­ мер.ri) = ••• = Н О Д ( г „ _ ь г ^ ) = г^.32102 575 628) = = НОД (32 102 575 628.12).0) = 1417082. начиная с г = О и заканчивая г — т. Сравнения. Используя описанную схему. такой.Глава 1.6) = НОД (ro. алгоритм Евклида легко реализовать на практике. конечные поля и вероятность г^. 3. группы.

Последнее отображение дает основу р^ля двоично­ го алгоритма Евклида. например. — Прим.1. что отображение (а.Ь) н-). Ь/2). while (a != 0) { long temp=by. ^ Аналогично делению на 10 в десятичной системе счисления. b=a. long b) { a=Math. ((а — 6)/2. b=Math. перев. как выделит из НОД максимально возмож­ ную степень двойки. мы не обязаны реализовывать алгоритм Евклида именно как рекурсию. на Java мы можем написать: s t a t i c p u b l i c long g c d d o n g a. Ь). Напомним. как хотелось бы. если а четное.abs(a).их отображе­ ний. что компьютерам делить на 2 довольно легко. По суш.(а (mod6). . } Работа алгоритма Евклида основана на том. поскольку в двоичной системе счисления эта операция равносильна простому сдвигу разрядов^. Ъ) у-^ ^ («/2.3. а Ь нечетное. Основные алгоритмы ресурсов рекуррентное определение функции может оказаться не самым лучшим способом действия. Поэтому реализация алгоритма с приведенным выше отображением обычно не столь эффективна.ий пример на псевдокоде объясняет. a=temp. (а. Неприятность состоит в том. К счастью. (а. Следуюш. чем вычислять остатки и частные.еству. как работает этот алгоритм с данными натуральными числами а и 6. Однако найден ряд других подходяп]. что компьютерам намного легче складывать и умножать числа. этот алгоритм использует последнее отображение после того. которые также сохраняют НОД.abs(b). который обычно и реализуется в компьютер­ ных программах. но более экономичны с точки зрения компьютера. ft) сохраняет наибольший обилий делитель. } return b.a. Например. если а и 6 нечетные.6). если а нечетное и Ъ четное.

т . что алгоритм Евклида — это последовательное деление с остатком П-2 = Qi-iri-i + п . n = Гг-2 — дг-1П-1 = = а(5г_2 . даже если он существует. вычисляя НОД (а. else b=(b-a)/2. Sm^tm-. обрати­ мо ли число а по модулю N. .Глава 1. Напомним. . /* Выделение степени двойки из НОД */ while ((аУ.3.qi~lSi-i) + b{ti-2 - qi-lU-l). g=2*g.qm =агз = ri- qib. 1. Сейчас мы преобразуем эти формулы. . С помощью алго­ ритма Евклида. 6). Сравнения. П_2 = Si-20> + ti-2b. .} while (Ь7.qib) ^ -q2a + (1 + qiq2)b. . группы. } Return g*b.2==0) and (ЬУ.q2{a . Ti-i = Si-ia + U-ib.2==0)) { а=а/2.2==0) {b=b/2. как же найти обратный к а элемент. b=b/2. /* По кра1Йней мере одно из а и b сейчас нечетно •/ while (а != 0) { while ((а%2==0) {а=а/2. Однако мы до сих пор не знаем.2. Ь) ^ Sma + tmb.1. д2Г2 = Ь. конечные поля и вероятность g=i . Расширенный алгоритм Евклида. где Го = а^ ri = b и Гт = НОД (а.} /* Сейчас как а так и b нечетны */ if (a>=b) then a=(a-b)/2. г :== О. Расширенный алгоритм Евклида по данным целым числам а и b выдает Гт-. 7V). Г2 = Го. 1. так что Гт = НОД (а. выразив все остатки п через а и Ь. мы можем выяснить.

8 .1.1 9 + 3 • 7 Г4 = 1 = 5 .8 = 11 (mod 19). (-19 + 3 • 7) = 3 • 19 . d = sa + tN — sa (modTV).N) =sa-\-tN. КТО утверждает. что уравнение ах = 1 (modiV) имеет решение только тогда. Например система I X = 4 (mod 7).2 . 7) . 1. Теперь видно. Отсюда 1 = . Положим Го = 7. возраст которой не менее 2000 лет. когда d = 1.5 = 7 .2. Говоря неформально.7 (mod 19).2 . Сначала мы применяем расширенный алгоритм Евклида к числам а и N VL получаем такие числа d. например.3. X = b (mod М) имеет единственное решение по модулю М • N тогда и только тогда. она дает простой метод поиска этого решения. Г2 = 5 = 19 . поскольку 18 (mod 7) = 4 и 18 (mod 5) = 3. Основные алгоритмы Теперь мы готовы решить исходную задачу по определению обрат­ ного элемента для а по модулю АГ.8 • 7.3. что си­ стема уравнений { X = а (modJV). 7) = . Значит. Легко убедиться в истинно­ сти найденного ответа. Г1 = 19 и проведем описанную процедуру. В качестве примера вычислим обратный элемент к 7 по моду­ лю 19. р^ля улучше­ ния процедуры расшифрования в криптосистеме RSA и в некоторых других протоколах. При этом решение имеет вид х = а~^ = s. что d = EO^{a.2 = 7 . Но как он был найден? . 2 = (19 . гз . s и t.2 . когда М и N взаимно просты.2 . Мы будем использовать КТО неоднократно. X = 3 (mod 5) будет иметь решением ж = 18 (mod 35). так что 7"^ = .(19 .2 • 7. Кроме того. если это в принципе возможно сделать. К и т а й с к а я т е о р е м а о б о с т а т к а х Китайская теорема об остатках или КТО также является очень древней находкой математики.

X = b (modM). Сначала определим Т^М-^ (modTV). а затем расскажем об обш. Подставляя первое из соотношений во второе. то для некоторого целого числа и должны быть выполнены равенства: х = 4:-\-7и и :r=:3(mod5). поскольку 2 . что возможно сделать ввиду предположения о взаимной простоте чисел М и N. . как решить эту конкретную задачу. Затем вычисляем и= {Ь-а)Т (modTV). Предположим. Теперь осталось подставить найденное значение и в выражение для X и получить решение х = А-\-7и = 4 + 7-2 = 18.5) = ПОД (7. Если X удовлетворяет каждому из них. Затем найдем значение 4 = 2-^-4 (mods) = 3-4 (modS) =2 (modS).5) = 1. Прежде всего вычислим 2~^ (mod 5) = 3. что мы приведем обш. конечные поля и вероятность Сначала мы покажем «на пальцах».3 = 6 = 1 (mod 5). Поскольку п о д (2.ую формулу ее решения.40 Глава 1. мы можем решить последнее уравнение относительно и. у нас есть урав­ нения X — А (mod7) и X = Ъ (mod5).иМ. что числа М и N взаимно просты и дана система { X = а (modTV). получаем 4 + 7и = 3 (mod5). Решение по модулю М • N задается формулой X = а -{. придем к уравнению 2и = 7и = 3-4 = 4 (mods).ем методе. Сделав преобразования. Система двух уравнений имеет настолько важное значение. Итак. Сравнения^ группы.

. .). М2 = 91.а + (Ь . Уг = 12. .3. причем все гПг попарно взаимно просты. а^ — целые числа. Китайская теорема об остатках гарантирует существование и един­ ственность решения и дает ответ: г X = ^aiMiyi (modM). такое что X = 5 (mod?). . сделаем проверку. Вернемся к общему случаю КТО. Пользуясь формулой. гПг и ai. вычисляем Ml . большее 2. посвященному системе из более чем двух уравнений.143. В качестве примера найдем число х по модулю М = 1001 = = 7 • 11 • 13. Нужно найти такой элемент X по модулю М = mim2 • • • тпг. Рассмотрим отображение . X (modM) == а + иМ (modM) = а. х^З (mod 11). X {moAN) = а + иМ (modAT) ^ а + (6 . Руководствуясь методом. С и м в о л ы Л е ж а н д р а и Я к о б и Пусть р — простое число. у2 . i=l где Mi = М/гПг. . . уг = Мг^ (modm. Основные алгоритмы Чтобы убедиться в верности метода. что X = Gi (mod ГПг) Д-^я^ всех г. у1 = 5.а)ТМ (modiV) == . х = 10 (mod 13). Пусть mi.3.а)М-^М (mod N) = b. Мз = 77. .4.3. получаем решение X = yZ^i^^yi (fiaod'M) r= г=1 = 715 • 5 + 364 • 3 + 924 • 10 (mod 1001) = 894. 1. .1.

1) Иначе говоря. т. I в других случаях. -f 1.4) . например. Символ Лежандра легко вычисляется. называются квадратичными невычетами. конечные поля и вероятность сопоставляющее каждому элементу поля его квадрат. по формуле Q = а(Р-1)/2 (modp). (^ J При вычислении символа Лежандра большую помощь оказывают следующие дополнительные формулы: (Л ^ (_1)(Р^-1)/8. G Fp можно извлечь ква­ дратный корень. (1. если а — квадратичный вычет по модулю р.е. если а — квадратичный невычет. из которых нельзя извлечь квадратный корень. группы.Глава 1. Эле­ менты группы F*. (1. Множество всех квадратичных вычетов по модулю р является подгруппой порядка {р—1)/2 в мультипликативной группе F*. если из ненулевого элемента а. если а делится на р. р' I "(f)? если р — ^ == 3 (mod4). кроме того. ров­ но половина элементов из F* являются полными квадратами. Полные квадраты в F* называются квадратичными вычетами по модулю р. то таких корней у него ровно 2 и. Однако использование этой формулы сопряжено с вычислениями больших степеней и на практике предпочитают пользоваться за­ коном квадратичной взаимности (Л = fP\ (_1)(р-1)(</-1)/2. Для выявления полных квадратов по простому модулю р вводит­ ся символ Леэюандра Он равен О. Сравнения. и — 1. На множестве ненулевых элементов поля ¥р это отображение в точности «два-водин».

= -1. то вводится символ Якоби^ . 1. Положим у = п^ (modp). 6. Р/ Пусть е. г = е. ^ — целые числа с нечетным д. • положить t = у^"^ "^ (modp).. Основные алгоритмы 43 Используя разложение на множители. х = а^^"^^/^ (modp). что а — квадратичный вычет. Положим b = ах^ (modp). Вывести X. не зависящий от возможности раз­ ложения числа на множители. соответствующий символ Ле­ жандра равен 1. что ^2 ^ ^{р+1)/2 ^ ^(р-1)/2 . Сейчас мы приведем метод ее решения. 4. Символ Лежандра определен только в случае простого знаме­ нателя. 3. то для извлечения корня из а можно исполь­ зовать формулу X = а^Р^^^/^ (modp).3. а значит. у — t^ (modp). такое что 6^"^ = 1 (modр). Последнее равенство здесь верно ввиду предположения о том. вычислим символ Лежандра. Формула дает правиль­ ный ответ потому. называемый алгоритмом Шэнкса. Извлечение квадратного корня из квадратичного вычета а по модулю р — тоже несложная задача. удовлетворяющие со­ отношению р — 1 = 2^q. Через некоторое время мы изучим более эффективный алгоритм вычисления символа Лежандра. г = т^ • положить X = xt (modp). b = by (modp). х = ах (modp). Если p = 3 (mod 4). Выберем наугад такое п. Если же знаменатель составной. Пока Ь 7^ 1 (modp) делать: • найти наименьшее число т . о ^ ( « у а = а. что 2. которая имеет неоспоримое преимущество перед общим алгоритмом Шэнкса ввиду ее явности и эффективности. 5.1.

квадратный корень из а может не извлекаться! Пусть п ^ 3 — нечетное число.Глава 1. Несмотря на благоприятное равенство. (v)=(-•)'"-"'• Все это дает нам быстрый алгоритм вычисления символа Якоби и.^) \V\) \Р2/ \Vk) Символ Якоби можно вычислять так же.) = ^• п ( ! ) = (-')'"""". выведенное из закона квадратичной взаим­ ности: 2 у fn ( m o d a i ) \ ^_j^(ai-i)(n-i)/4^ о- где а = 2^а\ и а\ нечетно. что а — полный квадрат. Обозначим через Qn подмноже­ ство полных квадратов в {Ъ/пЪУ: Qn = {х^ (modn)l X е (Z/nZ)*}. группы. Увы. что нужно сделать. Однако из равенства (^) = +1 нельзя сделать вывод о том. то символ Якоби будет ра­ вен -Ы. что символ Лежандра f ^ j сообщает нам. сим­ вол Якоби (^) ничего не утверждает о возможности извлечения квадратного корня из а по модулю составного числа п. Полезно помнить еще несколько формул. Если а в действительности квадрат по модулю п. это выделить максимальную степень двойки: Напомним. как и символ Лежандра. как его частный случай. справедливых при нечетном п: . большее 2и Символ Якоби определяется через символы Лежандра простых де­ лителей числа п следующим образом . . без утомительного разложения на множители. опираясь на тождество. Единственно. является ли а полным квадратом по модулю простого числа р. конечные поля и вероятность обобщающий символ Лежандра. Пусть п — нечетно^ число. соответственно. Сравнения. символа Лежандра.

Щд . т. то • #Qn = #{Jn . Предположим. для вычисления искомого корня мы применяем китайскую теорему об остатках к системе X =^ Sp ( m o d p ) . — Прим.Qn) = {р. то • #<5„ = (п . Jn = {xe{Zlnzy\ (^) = i}Таким образом. Наконец.^ чей символ Якоби равен 1. .5) X = Sq ( m o d ^ ) . как извлечь корень из числа по модулю составного п = р • q. .е. т. чей символ Якоби равен 1. ^То есть квадратичных невычетов. Затем извлечем корень из а по модулю q и назовем его Sq. В заключение параграфа выясним.Если п = pq — произведение двух простых. Опираясь на китайскую теорему об остатках. Основные алгоритмы С другой стороны. например. Вычислим. корень из а = 217 по модулю п = 221 = 13 • 17. разложение числа п на простые множители может быть неизвестно. Квадратные корни из а по модулям 13 и 17 соответственно равны 513 = 3 и 517 = 8.Криптографов интересуют два относительно простых част­ ных случая: когда п простое число или произведение двух простых чисел. Вообще говоря. перев. что а действительно полный ква­ драт по модулю п.Если п — простое число. множество всех псевдо-квадратов^ — это разность Jn\Qn. .1. Как мы еще увидим. допустим. особенно когда п — произведение двух простых чисел. е. мы его знаем.3.1)/2. Будем также считать. нам надо найти ква­ дратный корень из а по модулю п. но. (1. множества Jn и Qn сыграют заметную роль в ряде криптографических алгоритмов и протоколов.1)/4. пусть Jn обозначает подмножество элементов в {Ъ/пЪу. ^а\ (а\ Сначала мы извлечем корень из а по модулю р и обозначим его через Sp.

р{Т = решка) = . Случайной величиной называется переменная X. группы.01. 179. представля­ ющая результат подбрасывания симметричной монеты. принимающая свои значения с некоторой вероятностью. p{E^z) =0. принимающую буквенные значения. S13 = 10. 1. Если переменная X при­ нимает значение s с вероятностью 0.5) с 513 = 10. поскольку п имеет два простых де­ лителя. Вероятность в какой-то момент нам потребуется понимание основ элементарной теории вероятностей. суш. s\z = 3. р{Е = е) = 0. например. sn = 9. мы будем писать р(Х = 5) = 0.082.127. Предположим. sn = 8. Так как по­ явление орла или решки равновероятны. 127.001. Чтобы их отыскать.. в качестве другого примера рассмотрим английский текст и обозначим через Е случайную величину. На самом деле. . что Т — случайная величина. достаточно применить КТО к трем системам вида (1. 94.4. Статистический анализ большого количества информа­ ции позволяет оценить относительные вероятности появления той или иной буквы в тексте: р{Е=^а) = 0. то р{Т = орел) = .01. Сравнения.ествуют еще три разных квадратных корня из числа 217 по модулю п = 221.Глава 1. Для большинства читателей изложенный здесь материал знаком по учебе в ВУЗе. Sn = 9 и получить полный ответ: 42. конечные поля и вероятность получаем s = 42. Проверим правильность найденного решения пря­ мыми вычислениями: ^2 = 422 = 217 (mod221). Сейчас мы кратко дадим теоретические све­ дения и разберем несколько примеров..

p{Y = у). Так. Обозначим через V случайную величину появле­ ния карты определенного достоинства при сдаче.. а через С — ее цвет.. Таким образом. В общем случае имеют место следующие свойства: р{Х = х)^0. Вероятность одновременного ра­ венства X = X и У = у называется совместной вероятностью р{Х = x.Вероятность Если X — дискретная случайная величина^. Две случайные величины X и Y называются независимыми^ если для всех возможных значений х и у имеет место равенство р{Х = x. p{S = трефа) = . р{С = черный^ S = бубна) = О. р{С = черный^ S = пика) = .1.Y = y)=p{X = x). перев.TO р{С = красньщ S = трефа) — О. рас­ скажем о нем и мы. через S — масть карты. р{С = черный^ S = черва) = О. Пусть X и Y — две случайные величины с распределением веро­ ятностей р{Х = х) и p{Y = у). случайные величины С и 5 не являются независи­ мыми. иллюстрирующий теорию вероятностей.Y = у). а Т2 — второй. р{С = красныщ S = бубна) = . Следуя традиции. связан со стандартной колодой в 52 карты. Пусть Ti — итог подбрасы­ вания первой монеты.. Поскольку в силу физических ^То есть ее множество значений конечно или счетно.. то множество вероят­ ностей всех ее значений называют распределением вероятностей^ а функцию р{Х — х\ сопоставляющую значению переменной соот­ ветствующую вероятность — плотностью распределения вероят­ ностей. Тогда р{С — красный) — . р{у ^ туз треф) = —. В качестве примера независимых величин рассмотрим экс­ перимент. р{С — черныщ S = трефа) = . р{С — красньщ S = черва) = . р{С = красныщ S — пика) — О. — Прим. X Классический пример. во время которого подбрасываются две правильные мо­ неты последовательно друг за другом..4.. ^ р ( Х = х) = 1. . если X = С и¥ = S.

то р{Х = x\Y = у) р{Х = х)-р{¥ = у\Х = х) р{У = у) p{X=^x. что Т\ и Т2 — независимые случайные величины. Теорема Байеса Условной вероятностью р{Х = x\Y = у) случайных величин X и Y называется вероятность того. Сформулируем одну из самых значимых теорем элементарной теории вероятностей Теорема 1. Во втором случае условие С = черный ограничивает выбор карты ровно напо­ ловину. p(Ti = ретка^Т2 = орел) = . p{Ti = орел. можно предположить.7. соответствующая вероятность равна ^ .Y = y) р{У = у) ' Применим теорему Байеса к нашему примеру с картами. что Y = у. имеем p{S = пика\С = красный) = О и p(^V — туз пик\С = черный) = •—. p{S = пика\С = красный) = p{S = пика^ С = красный) р{С = красный) р-' = 0.1-1 =0.1. и поскольку у нас есть только один туз пик среди 26 воз­ можных карт. что переменная X принимает значение гг. Это подтверждается со­ вместным распределением вероятностей: p{Ti = орел^Т2 = орел) — .4. если известно. p{Ti = решка^Т2 = решка) = -. (Теорема Байеса. что пика имеет черный цвет и указанные события не могут произойти одновременно..Т2 = решка) = .Глава 1. Сравнения. Возвращаясь к примеру с колодой карт. 1. конечные поля и вероятность законов результат подбрасывания первой монеты никак не может сказаться на подбрасывании второй. .. 26 Первое равенство следует из того.) Если р{У = у) > О. группы..

J _1 52 ~ 26" Для независимых случайных величин имеем p{X = x\Y = y)=p{X = x). то ожидаемое число шариков. записывают его цвет. воспользовавшись выписанной формулой. Если m достаточно большое.2. что такая вероятность крайне мала. е. считая практически невозможным совпадение чьей-то даты рождения с его собственной. Т. в ящике находятся m шариков разно­ го цвета. П а р а д о к с д н е й р о ж д е н и я Еще один полезный результат из элементарной теории вероятно­ стей. что после п вытаскиваний нам попадется хотя бы два шарика одного цвета. все элементы которого обратимы. чему равна случайная величина У. равна где т^"") = т{т . которые нам придется просмотреть до первого совпадения.Группа — это множество с ассоциативной операцией и едини­ цей.1. если выбираем среди 30 человек. если среди 100. Допустим. Так она равна 0. К р а т к о е с о д е р ж а н и е главы .1){т . возвращают его в ящик и тянут снова. что вероятность совпадения дат рождений у двух лю­ дей из 23 равна 365(2'» На самом ]\^дл(д вероятность совпадения быстро возрастает с ростом количества людей. равно yj^Чтобы понять причину названия парадокса. Арифметика остатков .п + 1). Мно­ гие наивно полагают. называется парадок­ сом дней рождения.Вероятность p{V = туз пик\С = черный) = 49 р{у = туз пик^ С = черный) р{С = черный) -' 52 \2j А2 .706.4. который нам потребуется в дальнейшем. 1. Вероятность того. Однако. значение величины X не зависит от того. из которых производится выборка.999 999 6.2) • • • ( т .4. Из ящика не гляд^я достают один шарик. и 0. лег­ ко убедиться. оценим вероятность совпадения дней рождений двух людей из некоторой группы.

Oxford University Press. Сравнения. Хотя с умножением необходимо быть осторожным. насколько быстро появится повторение. L. Парадокс дней рождения позволяет нам оценить. Дополнительная литература Бэч и Шаллит — наилучшее известное мне введение в конечные по­ ля и алгоритм Евклида. Rosen. Теорема Байеса позволяет вычислять условные вероятности. некоторым она может показаться слишком математезированной. Bach and J. McGraw-Hill.Глава 1. Более традиционное введение в основы дискретной математики. Shallit. сложность которого можно оценить первым курсом информатики — это учебники Биггса и Розена. . MIT Press. K. Е. Полные квадраты по модулю простого числа выявляются сим­ волом Лежандра. Кольцо вычетов по модулю простого числа — пример поля. обладающими теми же свойствами. 1989. 1996. в котором каждый ненуле­ вой элемент обладает мультипликативным обратным. Эта книга содержит довольно много исто­ рической информации и превосходный указатель важной исследова­ тельской литературы. Discrete Mathematics and its Applications. Volume 1: Efficient Algorithms. мы можем определить группу и относительно умножения по модулю. Discrete Mathematics. Обратить элемент в кольце вычетов можно на основе расши­ ренного алгоритма Евклида. конечные поля и вероятность вместе с операцией сложения по определенному модулю доста­ вляет примеры групп. Biggs. Остатки от деления на целое число — пример кольца. Полные квадраты и квадратные корни по модулю составного числа п могут быть эффективно вычислены. N. Квадратные корни можно эффективно извле­ кать по алгоритму Шэнкса. группы. Система линейных уравнений в арифметике остатков может быть решена с помощью китайской теоремы об остатках. если производить выборку из ко­ нечного множества. Поле — это коммутативное кольцо. если известны все делители числа п. Algorithmic Number Theory. 1999. что умножение и сложение натуральных чисел. Кольцо — это множество с двумя операциями. Предназначенная для специалистов в области информатики. H.

что число а по модулю составного п является пол­ ным квадратом.1. Почему ненулевые целые числа не образуют группу по умно­ жению? 1. если его символ Якоби относительно п ра­ вен 1? 1. 1.1.6. Сравните продолжительность их работы.1. Почему множество целых чисел не является полем? 1.3.2. Почему ¥p[x]/{f{x)) всегда кольцо? 1. 1.1.2. Реализуйте на компьютере алгоритм вычисления символа Ле­ жандра на основе квадратичного закона взаимности. Разработайте программу.5. как его использовать р^ля выяснения того.3. является ли данное число полным квадратом по модулю простого числа р.8. Сформулируйте определения группы. Дайте определение символа Лежандра и объясните.1. постепенно увели­ чивая их входные данные. говоря о ве­ щественных или рациональных числах как о группе по умно­ жению? 1. Сначала используйте стандартное отображе­ ние.1. Почему мы учитываем только ненулевые числа.1. который уже вытаскивали? Лабораторные работы 1. .2. 1. Сколько раз нужно вытаскивать шарик из ящика с шестьюде­ сятью шариками разного увета (и возвращать его обратно). пока не попадется цвет.1.2. Напишите программу (на знакомом Вам языке) для стан­ дартного и двоичного алгоритмов Евклида вычисления ПОД.4' Вероятность 51 Контрольные вопросы 1. 1.7. а затем двоичное.1.2.1. Чему равно значение функции Эйлера (p{N) при N = р VL N — р ' q^ где р и g — простые числа? 1.4.1. Верно ли.1. реализующую расширенный алго­ ритм Евклида. кольца и поля.9. сохраняющее ПОД.

1. Вы­ числите о 1/3 (modTV) HbV5 (modTV). Числа Фибоначчи определяются по рекуррентному правилу: Fo = 0. Напишите аналог двоичного расширенного алгоритма Ев­ клида р^ля многочленов с двоичными коэффициентами. когда р^~^ == 1 (modp) и д^ ^ 1 (modp) для всех простых делителей q числа р — 1. рав­ ны 1. Дано составное число N и числа а. Покажите. что число решений уравнения х^ = \ (modn) равно 2^.3. 1. Покажите. 6).3. группы.3. Fn+i = F^ + F ^ . а 1/3^1/5 (modiV). обладаюш. вычисляющем НОД (а. Найдите примитивный элемент в каждом из конечных полей ¥2п при 1 ^ п ^ 8.3. вычислите обратный элемент к многочлену ж^ + ж + 1 в конечном поле F28 = ¥2[х]/{х^ + х^ + х^ -\-х+ 1). Ис­ пользуя его.6.1. Сравнения.3.Глава 1. . 1.3.3.ее к разными простыми делителями. что если все неполные частные qi^ которые по­ являются в алгоритме Евклида. конечные поля и вероятность Упражнения 1. 1. 1. Вычислите символы Якоби ( | ^ ) и (fff).7. то а и 6 — соседние числа Фибоначчи. Докажите. Fi = 1. что стандартный и расширенный алгоритмы Ев­ клида могут быть приспособлены р^ля работы с многочлена­ ми. Покажите.3.8. что элемент д £¥р является образующей цикличе­ ской группы F* тогда и только тогда.i .3. используя лишь кар­ манный калькулятор. 1. 1.4.5. Ь.2. Пусть п — нечетное число.

1. 2. две точки (4. Эллиптической кривой Е называется множество точек проек­ тивной плоскости. Проективная плоскость ¥'^{К) над полем К определяется как множество троек (X. что эллиптическая кривая над конечным полем — конечная абелева группа. XZ) для любых X е К\ Так.1.1) и (5. Z) . удовлетворяюш. почему эллиптическая кривая представляет инте­ рес для криптографии.3) эквивалентны в P^(F7). понимая лишь. что такое эллиптическая кривая. У.ГЛАВА 2 ЭЛЛИПТИЧЕСКИЕ КРИВЫЕ Ц е л и главы • Рассказать.(АХ. Введение Эта глава посвяш. в которой можно ставить задачу о вычислении дискретных логарифмов.ена введению в теорию эллиптических кривых над конечными полями. • Выяснить. Класс эквивалентности троек называется проективной точкой. как использование проективных координат повы­ шает скорость вычислений. Z) не равных одновременно нулю элементов X^Y^Ze К.3. Некоторые из наиболее современных криптогра­ фических систем с открытым ключом основаны на использовании эллиптической кривой. • Показать. в результате чего они обеспечивают высо­ кую эффективность и большую пропускную способность. • Объяснить. как сжатие точек используется д^ля повышения эф­ фективности вычислений. например. АУ. поскольку мно­ гое из этой книги можно читать.их однородному уравнению Вей- . Настоя­ щую главу можно пропустить при первом чтении. У. на котором введено отношение эквивалентности: (X.

a^XZ^ . отличная от бесконечно удаленной (Z т^ 0). что частные производные дР дР дР Ъх' W' dz не должны обращаться в нуль одновременно ни в одной ее точке. Z) кривой. когда проективные координаты (X. ae G A'.1) с Oi Е К.a2X^Z + asYZ^ . Хотя большинство протоколов в криптографии используют эллиптическую кривую в аффинном виде. /С-рациональные точки в аффинном случае — это решения урав­ нения в К^ и бесконечно удаленная точка О. (2. a2. удовлетворяющих уравнению кривой. Ее принято называть бесконечно удаленной точкой (или просто точкой на бесконечности) и обозначать сим­ волом О. такой переход легко осуществить: . Эллиптические кривые ерштрасса Е : F{X. не лежащей на бесконечности. Кривая должна быть неособой в том смысле. К счастью. . Это уравнение также называют длинной формой Вейерштрасса.Глава 2.0). чья координата Z равна нулю. Как мы увидим. Z) представляют аффинную точку (X/Z^. обозначается через Е{К). переходит в аффинную точку с координа­ тами ( f . У). F. «3. где ai. | ) .точка на бесконечности всегда переходит в бесконечно уда­ ленную точку. F. Z). . е.1.asY = Х^ + азХ^ + ОАХ + ае.проективная точка (X.чтобы найти проективные координаты аффинной точки (X. Z) = = -Х^ + Y^Z + aiXYZ .a^Z^ = 0. а именно (0. Для удобства мы будем часто пользоваться аффинной версией уравнения Вейерштрасса: Е: у2 + aiXY -\. иногда будет удобнее пользоваться слегка моди­ фицированной формой проективной плоскости. достаточно выбрать произволь­ ное значение Z G К* и вычислить (X • Z. Множество Х-рациональных точек кривой Е^ т. . с точки зрения вычислений бывает удобно перей­ ти к проективным координатам. Y/Z^). a4. как при переходе от аффинных координат к проективным. F • Z. точек из Р^(/С). что кривая имеет ровно одну точку. От­ метим. F. так и наоборот.

то дискриминант можно вычислить и так: 1728 Заметим. что 1728 = 2^3^. Сделаем замену переменных с набором констант [и^ г. т.Ь | +866264-216Ьб. вводятся следующие константы.е. заданной уравнением (2. чья характеристика отлична от 2 и от 3.24^4.2П1 + 9626465. 5. Сб = .1). что Д ^^ 0. когда Д т^ 0. найдем Д = 3 и j{E) = 5. С4 = Щ. Для неособых кривых вводится j-инвариант Рассмотрим пример эллиптической кривой. к которому мы часто будем возвращаться: Е: у2 = Х^ + X + 3. что кривая Е с координатами X и Y изоморфна над полем К кривой Е^ с координатами Х^ и Y^ (обе заданы урав­ нением Вейерштрасса). Ьв = «3 + 4аб.2) над по­ лем ¥j. У = u^Y' + su^X' + t кривая Е перейдет в кривую Е\ Отметим. если найдутся такие константы г^ s. Инвариант j тесно связан с понятием изоморфизма эллиптических кривых. что изоморфизм кривых определен относительно поля К. Если char К ф2^ 3.и'^Х' + г. t G К и и Е К*^ что при замене переменных X . С этого момента будем предполагать. Вернемся к нашему примеру. bs = ofaG + 4а2аб . что кривая Е неособа тогда и только тогда. Дискриминант кривой J5 определяется по формуле Д = -Ь^бз . которые будут использованы в дальнейших формулах: 62 = а\ + 4а2.2.2) Вычисляя выписанные ранее константы.1. ^4 = CLicts + 2а4. определенной над полем Fy. (2.aiasa4 + а2а\ .а\. кривой Е из (2. Извест­ но. Введение J\RK эллиптической кривой. t] = . так что деление на это число имеет смысл только в тех полях.8Ь1 . Говорят.

заданной уравнением Е" : Y"^ = Х''^ + 4Х" + 4. jf-инвариант кривой над полем F j . Но эти кривые не изо­ морфны над Fy. содержаш. выглядит как X = ЗХ'' и Y = V6Y'\ Но л/б ^ ¥j. 3 и рассмотрим замену переменных переводящую кривую.Глава 2. Итак. Получим изоморфную кривую. в изоморфную ей кривую.а. задаюш.2.1. Эти кривые будут изоморфны над любым алгебраиче­ ским расширением поля Fy.ими ^-инвариантами изоморфны над алгебраическим замыканием К. определяемую короткой формой Вейер­ штрасса Е: Y^ = Х^ + аХ + Ь .2)).5].ая изомор­ физм. любые кривые с совпадаюш.им элемент л/б. что сЪ. поскольку замена переменных. что ^-инвариант разде­ ляет классы эквивалентности этого отношения над алгебраическим замыканием К поля К. задаваемую уравнением Е' : У'2 + 4XV + ЗУ' = Х'^ + X ' + 1. положим Х = 4ХЧЗ и У = У Ч 2 Х ' + 5. равен 5. Эллиптические кривые = [2. Е и Е^^ определены над полем Fy.4. заданную длинной формой Вейерштрасса (2. Например.тК т^ 2. Легко убедиться.е.ая лемма показывает. Изоморфизм эллиптических кривых является отношением экви­ валентности. Групповой закон Допустим. но не изоморф­ ны над ним. над полем F72 = F7[A/6]. (2. Изоморфные над полем К кривые имеют один и тот же j-инвариант. С другой стороны.3. что j{E) = j{E') = 5.1). Однако кривые с одним и тем же ^-инвариантом не обязательно изоморфны над основным полем. Лемма 2. как и у нашей кривой Е (см. например. Следуюш. т. 2.

. В этой ситуации Р + Р = О и говорят.1). Сложение точек определяется с помощью хорд (рис. мы получим точку [2]Р = Р + Р. Рис. Точка R будет опреде­ лена над тем же полем.1. что Р — точка порядка 2.2). Последняя точка и будет суммой Р + Q. b Е К. Отразив R относительно горизонтальной оси. Отразим затем точку R относительно горизонтальной оси коорди­ нат и получим точку. Пусть Р — произвольная точка эл­ липтической кривой (рис. . что сама кривая и исходные точки Р и Q. Она пересечет кривую еще в какой-то одной точке R (ку­ бическая кривая пересекается с прямой по трем точкам с учетом кратности пересечения). Она обя­ зательно пересечет кривую в какой-то третьей точке i?. не­ льзя сложить точку с собой). 2. 2.2. определенную над основным полем. Вертикальная касательная в точке Р «пересекает» кривую в бесконечно удаленной точке. Соединим их прямой линией. Групповой закон при некоторых а.2. На таких представителях классов изоморф­ ных эллиптических кривых можно наглядно ввести групповой закон методом хорд и касательных. поскольку мы пересекаем кубическую кривую прямой. Проведем касательную к кривой в точке Р. 2. Пусть Р и Q — две точки кривой. Сложение точек на эллиптической кривой Касательные служат для удвоения точек (используя хорду.

е. Необходимо только заменить отражение относительно оси абсцисс на симметрию отно­ сительно прямой Y = aiX -f аз. Эллиптические кривые Можно показать. заданной длинной формой Вейерштрасса (в частно­ сти.2. характеристика поля может быть любой). Это необходимо сделать. т.2. нуля. поскольку вычерчивание диаграмм в поле ко­ нечной характеристики — дело безнадежное. Опреде­ ление операций можно легко перенести на случай общей эллипти­ ческой кривой.Точка —Pi имеет .Глава 2. Пусть Е — эллиптическая кривая. 2. что метод хорд и касательных наделяет элли­ птическую кривую структурой абелевой группы с бесконечно уда­ ленной точкой в качестве единичного элемента. реализующие сложение точек по методу хорд и касательных. на которой выбраны точки Pi{xi^yi) и Р2{х2'. Удвоение точек на эллиптической кривой В дополнение к сказанному приведем алгебраические формулы. Лемма 2. Рис.У2). определяемая урав­ нением Е: Y^ + aiXY + a^Y = Х^ + а з ^ з + а^Х + ае.

0). т Это отображение — основа криптографических систем. т. е.1)./i .Если то ггз и Уз вычисляются по формулам: жз = А^ + aiA . а координаты других предста­ влены списком: (4. е. Фиксируем натуральное число т и обозначим через [т] отобра­ жение кривой на себя. сопоставляющее каждой точке Р ее кратное [т]Р.6)..2.XI _ —xf + a4^i + 2ae — a^yi 2j/i + aixi + аз если xi = X2-. на этой кривой всего лишь шесть точек. Введем коэффициенты л _ л— У2 -У1 У1Х2 - _ . Сведем их в таблицу 2.1).Ж2. Результаты сложения несложно получить по формулам леммы 2. опираю­ щихся на эллиптическую кривую.2 И _ 3xi + 2a2Xi + а4 — aij/i 2yi + aixi + аз ' Х2 . поскольку его можно легко вы­ числить. заданную уравнением (2.1) . У2Х1 fi — Х2 —XI при Ж1 7^ а. т. (5.2.аз. по данным координатам Р{х^ у) и [т]Р{х\ у') найти т очень трудно. Найдем координаты образов точки Р(4. наше выска­ зывание о сложности обращения предполагает специальный выбор эллиптической кривой и соблюдение нескольких других условий. Групповой закон координаты -Pi{xi -у1 -aixi -аз). Оказывается.а2 . но крайне сложно обратить. Конечно. Так что на изоморфных кривых указанные формулы определяют структуры изоморфных абелевых групп.2). Описанный ранее изоморфизм эллиптических кривых сохраня­ ет структуру группы. (6. Закончим этот параграф иллюстрацией группового закона на эллиптической кривой. (6. к чему мы еще вернемся. HO P2 7^ —^1. Уз = -(А + ai)a:3 . одна из которых — О. Вновь рассмотрим кривую Е над полем F7.2.6).Ж1 . (4.1.

у").1) (4. В хорошо известной теореме Хассе дана оценка порядка группы -B(F^).6) О (4.1) (4. Элли­ птическая кривая над любым конечным полем будет конечной абелевой группой.6) над полем F? (6.б).0) (6.0) (4. ЩР = 0.0) (5.1) (6. у) = (^г".t .1) — ее образующая. Эллиптические кривые над конечными полями Как мы уже отмечали. циклической (или близкой к циклической).1) О (4.1) (6. количество F^-рациональных точек эллипти­ ческой кривой конечно.(f. что.1) (6.1) (6. [2]Р(б. где «дефект» t называется следом отображения Фробениуса в q. Обозначим его символом #Е{¥д).1) (4.1) (6.6) (5.1).6) (6.Глава 2.6) О О (4.6) (6. [4]Р(6.1) (4.^ £.6) (5. Теорема 2. конечно. Из вычислений видно. 1933.29.0) (6..1) 2.6) (4.0) (6.6) (5.1) (4.6) точек на кривой (2. Так что след отображения Фробениуса здесь равен 2. и. [3]Р(5.1) (4.0) (5.3.0) (6.1) (5.6) (5.). меньше 2 у ^ = 2 v ^ « 5.1) (4. а точка Р(4.) . Ожидае­ мое число точек кривой близко к ^ + 1 и можно положить #EiFg) = q + l .0) (6.6) (4. <^(а. Сложение О 1+ О о (4.3.2) кривая над полем F7 имеет 6 точек.0).6) (6. Таблица 2.6) (5.6) О (4.6) (6. (Хассе.) След отображения Фробениуса удо­ влетворяет неравенству в примере (2. . что в нашем примере E{¥i) — конечная ци­ клическая группа порядка 6.4) (4. что очень удачно. Эллиптические кривые при отображении [т] для различных т .1. <^(С?) = О.6).1) (6. На эллиптической кривой Е над полем F^ определено отображе­ ние Фробениуса: ^ : E(F. [5]Р(4.

рассматривая алгоритмы решения задачи о дискрет- . Таких кривых также стараются избегать в криптографии. Если же q = р^ ^ то t у суперсингулярных кривых может принимать значения при нечетном / : t = О. Другими словами. при четном / : t^ = 4^. В котором сложение и вычитание — суть групповые операции на эллиптической кривой.3. Эта кривая особенно неудобна. В связи с этим необходимо научиться вычислять порядок груп­ пы Е{¥д).Кривая E{¥q) называется аномальной^ если ее след Фробени­ уса равен 1. когда q — простое число. который мы не можем объяснить в этой книге. е. чтобы число ее точек делилось на достаточно большое простое чи­ сло. Достаточно запомнить. у) кривой выполнено соотношение ( a ^ ' ' ^ / ) . т. В следу­ ющих главах. поскольку t = О в этом случае.Кривая E{¥q) называется суперсингулярной^ если характери­ стика р поля F^ делит след отображения Фробениуса t. так и в практических планах. <p{P + Q) = ip{P)+<piQ). . Сед отображения Фробениуса и эндоморфизм Фробениуса свя­ заны уравнением: ¥ ' ' . нужно стремиться к тому. что вычисление порядка группы воз­ можно как в теоретическом. который обычно называют эндоморфизмом Фробениуса. ij^E{Fq) = q.y) = 0 . т. t^ = q^ если р = 1 (mod3).2. Эллиптические кривые над конечными полями Оно сопоставляет точке кривой Е точку на той же кривой. t^ = 2д и t^ = 3^'. При q = р суперсингулярная кривая насчитывает р + 1 точку. над которым эта точка определена. если р ^ 1 (mod 4). что порядок произвольной группы E{¥q) над любым полем вычисляется за полиномиальное время. и ^ = О. е. для произвольной точки Р(ж.ью сложного алгоритма. Выбирая кривую А^ЛЯ шифрования. ср — эндоморфизм группы Е над алгебраическим замыканием F^.[ % + Ы = [о]. Есть два частных случая криптографически непригодных эллиптических кривых: . Известно. отображение Фробениуса сохраняет групповую операцию. Это делается с помош. Т. Кроме того.M ( a : ^ y ' ^ ) + [g](a:.е. вне за­ висимости от поля.

Формулы из леммы 2.ие груп­ повой закон. что информация о порядке группы очень суш.ено в специальной литературе. описываюп1. базируется на поле ¥2^^.Хз)Х . чья характе­ ристика равна 2. отыскать эллиптическую кривую с хорошими криптографическими свойствами ^ля создания безопасного протокола.ей кривой.УЪ где при х\ф Х2 Х= У2 . В этом случае ^'-инвариант кривой Е вычисляется по формуле . —yi) и. Эллиптические кривые ных логарифмах. основанного на соответствуюш. Поэто­ му в конце текущей главы мы сконцентрируем внимание на полях характеристики 2 и р > 3. уравнение кривой над таким полем можно представить в виде короткой формы Вейерштрасса Е: Г^ = Х^ -f аХ + й. (2.У 1 а при х\ — Х2. что хорошо освеш. Можно менять как основное поле. Одним из достоинств эллиптических кривых является то. Кривые над полем характеристики р > 3 Пусть основное поле JFC = F^ с g = р^. Уз = {Xl . опустив случай chbxK = 3.3.Х2. мы увидим. или на поле Fp с большим простым числом р. У\ф^ Х= 3x1 + а 2У1 2. Наконец. основан­ ных на эллиптической кривой. Кривые над полем характеристики 2 Здесь мы ограничимся конечными полями F^ с ^ = 2^ при п ^ 1. Как было отмечено ранее.их рассуждений с некоторой модификацией переносится на случай характеристики три. 2.3) Ее дискриминант равен А = — 16(4а^ + 27Ь'^)^ а j-инвариант — j{E) = —1728(4а)^/Д. если Рз(^з? Уз) = = Pi + Р2 ^ О^ то координаты жз? Уз вычисляются так: Хз = Х^ .3. так и коэффициенты уравнения кривой.1.Глава 2.XI . Как уже отмечалось.аются: —Pi = (^i. также упрош. Реализация криптографических систем.ественна для оценки стойкости протокола. Большин­ ство обш. 3 требуют дополни­ тельных усилий. относительно легко.2. случаи char iC = 2.2. что они доставляют большое число возможных групп. где р > 3 — простое число и п ^ 1.

включает в себя некий вариант расширенного алгоритма Евклида. Уз = (А + \)хг + /i = (ж1 + ггз)А + жз + Уъ где при х\ф Х2 л _ У2 + У1 л — . Деление в конечном поле считается дорогой операцией. который хотя и имеет приблизи­ тельно ту же сложность.4' Проективные координаты j{E) = а Р / А . т.2 преобразуется к виду . если Рз = (^з. в характеристике 2 равносильно суперсингулярности кривой Е. В этих предположениях представитель любого класса изомор­ физма эллиптических кривых над F^ записывается уравнением ^ : Г^ + Х Г = Х^ + а^Х^ + ае. возникающих при использовании формул груп­ пового закона как при большой. т.Уз) = Pi + Р2 7^ О.P i = (Ж1.7}. ai = О. При этом уравнение эллиптической кривой записывается .Здесь 7 — фиксированный элемент поля F^.4) где «б G F* и а2 G {0. Условие j{E) = О. то жз = А^ + Л -h а2 + ^1 + Х2. удовлетворяющий соотношению: Тг^|2(7) = 1? где Тг^|2 — абсо­ лютный след.2. вычисляющийся по формуле п-\ г=0 Когда характеристика поля равна 2. формула ]\319L противополож­ ного элемента эллиптической кривой из леммы 2. однако обычно не может быть реализован достаточно эффективно. что суперсингулярные кривые — очень специфический случай. который не используется в криптографии. (2.4. то Хх 2. к.у1 + хх) и. так и при четной характеристике поля. что КЕ) ф 0. Поэтому будем предполагать.е.XI _ У1Х2 + У2Х1 /i — 5 Ж2 + Xi а если х\— Х2ф О. связана с необходимостью деления. Х2 -\. что и умножение. Во избежание операции деления применяют проективные коор­ динаты. Мы уже отмечали. Проективные координаты Одна из проблем.

^з) вычисляется последовательно по правилу: Ai = X\Z\.1.Уз.А2. которая легко заменяется умножением на заранее вычисленное число 2~^ (modp). A? = Ai + A2. что здесь нет ни одной операции деления. А4 = A5 = Y2Zf.А з . Удвоение точек (Хз.1. . заданной уравне­ нием у2 = Х^ + aXZ'^ + ЬZ^ над полем большой характеристики выглядят теперь как где тройка координат (Хз. У). Xs = XQ — A7A3. Эллиптические кривые через три координаты (X.y. Однако вместо стандартного варианта уравнения кривой. A9 = ArAi .A8Ai)/2. У.y/Z3). 2. который был приведен в начале главы.yi. Аб = A4 . А2 = X2Z1. Точка на бесконечности здесь также имеет координаты (0.Глава 2. Аз = 8УД Уз = А 1 ( А 2 . Обратите внимание.Уз.Х з ) . но переход от проективных координат к аффинным осуществляется по правилу (X.Zi) упрощается с помо­ щью формул X^ = 3Xf + aZf.^з) = [2](A'i. Ag = A4 + A5. кро­ ме деления на 2.Аз.2 А 2 . YiZ^. Выбор таких проективных координат обусловлен стремлением сде­ лать арифметические операции более эффективными.2X3. Z) вместо двух (X. Zs = Z1Z2A3. Болыпая характеристика Формулы сложения точек эллиптической кривой. Уз = (АдАб .0). А2 = 4Х1УД ХЗ = А 2 . используется уравнение вида Е: у2 + aiXYZ + агУ^^ = Х^ + a2X'^Z'^ + a^XZ^ + a^Z^. Zs = 2YiZi. A3 = Ai .Z)H^(X/Z2.4.

Итак. А5 = 5^2^17 Аб = А4 Н.5. Сложение точек (Хз.Уз. А4 = Y1Z2. координаты удвоенной точки определяются по правилу: Z^ = X^Zl Xз = № + a 6 Z 2 ) ^ \ = Z^ + Xl + YiZi.Z2) В этом случае осуществляется по рецепту: Ai = X1Z2J Л2 = X2Z1. Значит.5. вместо двух координат для идентификации точки кривой можно хранить в памяти компьютера только координату х и еще некий . 2. Четная характеристика Уравнение эллиптической кривой над полем четной характеристики записывается в виде у2 + XYZ = Х^ + a2X^Z'^ + aeZ^.Yi. наконец.2.Y2.4. в обоих интересных случаях — при большой и четной харак­ теристиках поля — мы исключили дорогостоящую операцию деле­ ния. Xj = Z1A3. что уравнение кривой в аффинных координатах при фиксированном значении х превращается в квадратное уравнение относительно координаты у. Однако экономнее применять так называемую технику сжатия точек. Сэюатие точек 2. Ag = Аб-Х'2 + A7I2) Za = A7Z27 А9 = Аб + Zs^. И. Поэтому каждому возможному значению координаты х точки кри­ вой соответствует не более двух значений координаты у.2. Xs = a2Zl + АбАд + \ l Уз = A9X3 + AgA?.Аз. Сжатие точек Во многих криптографических протоколах возникает необходимость хранить в памяти или передавать по сети отдельные точки элли­ птической кривой. A3 = Ai + А2.^з) = {Xi. Уз = XfZ^ + XXs.Zi) + {X2. Метод сжатия точек работает благодаря тому. В аффинных координатах это можно сделать с помощью двух элементов поля: координат х и у.

а затем переменной у присваивают значение /3. 1 . что ^9 = О. . когда четности разные. какое именно значение координаты у нужно брать.061) и (06100. ^Не путать с коэффициентом Ь в уравнении (2. Если же оказалось. Таким образом. В реальных криптографических протоколах получается более существенная экономия компьютерной памяти.06110). ту же кривую. Эллиптические кривые двоичный параметре 6.060). как вос­ становить полную информацию о координатах точки по паре (ж. в то время как при использовании метода сжатия точек всего че­ тыре: (06100. мож­ но положить у = 0. Рассмотрим. 2 .6) в двоичной системе счисления нам потребуется шесть разрядов: {Ob 100. Ь). р — 1. но над полем Fp с р = 1125 899 906 842 679 = 2^^ + 55.1) и (4. и р — /3. то квадратные корни ±(5 из элемента а € Fp представляются натуральными числами разной четности из промежутка 1. Сначала вычисляется^ /3 = ух^ + ах -\-Ь (modp). как вычислять параметр b и как по нему и данному х восстановить у-координату нужной точки. . поскольку —/3 = р — ^ (modp). напри­ мер.Глава 2. если четность /3 со­ впадает с четностью Ь. Для представления каждой из ее точек (4. В качестве примера рассмотрим кривую Е: Y^ = Х^-\-Х-{-3 над полем F j . С л у ч а й болыыой х а р а к т е р и с т и к и поля Заметим. ^Напомним.06001) и (06100. что если р > 2. что кривая в случае большой характеристики поля определяется уравнением (2.3).3). Покажем теперь. . . . перев. в качестве параметра b можно выбрать четность у-координаты соответствующей точки. то. сообщающий о том. не обращая внимания на параметр 6. Остается только решить. — Прим. перев. — Прим. 5 .

что нам дана точка Р(а. Хотя это делается с помощью сложного алгоритма. у) на элли­ птической кривой F^ + Х Г = Х^ + а2Х2 + а^. . то у = ж/З. почему этот метод правильно восстанавли­ вает ^/-координату точки. что координаты (ж. При сжатии информации эту точку можно представить в виде (1125 899 906 842 675.245 132 605 757 739). Краткое содержание главы . Существует очень много та­ ких групп. напомним.В криптографии необходимо уметь вычислять порядок груп­ пы.. Для объяснения того. В противоположной ситуации у = х{/3 -i-l). Cotcamue точек На ней есть точка с координатами (1125 899 906 842 675.5) Если у = О. Для восстановления у по данной паре (ж. поскольку мы вольны в выборе как коэффициентов кривой. Ь) в случае а.2.5.2.е один при­ мер конечной абелевой группы. 2. 7^ О вычисляют а = ж + а2 + -5" и обозначают через ^ одно из решений уравнения z'^ -h Z = а. (2. Если наименьший двоичный разряд числа /3 совпадает с 6.5).1). Предположим.Эллиптическая кривая над конечным полем — еш. над которым она определена. Четная характеристика В случае четной характеристики необходимо проявить больше изо­ бретательности. у) точки Р — решение уравнения (2.5. то можно положить 6 = 0. для записи которой нам потребовалось 102 разряда. о ко- . в противном случае вычисля­ ют Z = у/х и присваивают переменной b самый младший двоичный разряд числа z. где использовано только 52 разряда. так и поля. Поэтому пары (х^у/х) и {х^1 + у/х) удовлетворяют соотношению Z^ + Z = X^a2 + ^ .

кто хочет аккуратно выучить общую теорию эллиптических кривых. Как правило. Для чего нужны проективные координаты? . J.их групповой закон на кри­ вой. Что означает совпадение j-инвариантов у двух эллиптиче­ ских кривых? 2. вычисления занимают полино­ миальное время. Что такое след отображения Фробениуса. Скорость алгоритмов. и какому неравен­ ству он удовлетворяет? 2.1. 2.1.1. Когда эллиптическая кривая особа? 2. реализуюш. Elliptic Curves in Cryptography.4. 1999.2. Springer-Verlag.1. Интересуюш. Сироуси и Смарта. P. суперсингулярные и аномальные кривые не ис­ пользуются в криптографических приложениях.1. Полная информация восста­ навливается также довольно эффективно. Cambridge University Press. Для увеличения пропускной способности и экономии памяти координаты точки эллиптической кривой (ж.1.иеся лишь криптографическими приложениями эллиптических кривых и соответствующими алгоритмами могут просмотреть книгу Блэка. Seroussi and N. если использовать проективные коор­ динаты. у) успешно сжи­ маются до X и отдельного бита Ь. Blake.3. Silverman. можно увеличить. В каком случае эллиптическую кривую называют аномаль­ ной? 2. 1985. I. Контрольные вопросы 2.H. Эллиптические кривые тором здесь не рассказывалось.5.1. F. Дополнительная литература Тем. Smart. The Arithmetic of Elliptic Curves.Глава 2.6. можно порекомендовать учебник Сильвермана (предназна­ ченный студентам математических факультетов). G. Опишите метод хорд и касательных и объясните. как с его помощью реализуется групповой закон на эллиптической кри­ вой.

Покажите. сжимающие и восста­ навливающие точки.3. что кривые Е: У^ = X^ + aX + 6 и Е': Y'^ = Х^ + ad^X+ bS. Сжатие точек 2.2 из геометрического описания группового закона.1. складывающих и удваивающих точки эллиптической кривой по модулю р.2. включив в нее программы ра­ боты с проективными координатами. Лабораторные работы 2.3. 2. 2. . заданная уравнением над полем характеристики р > 3.1. Опишите возможные точки порядка три^ на кривой Е.2. Создайте электронную библиотеку программ. Упражнения 2. изоморфны над алгебраическим замыканием К.2.3.3.1. Когда они будут изоморфны над исходным полем К1 ^То есть точки Р.5. определенные над полем if. Расширьте Вашу библиотеку.2. перев. Пусть Е — эллиптическая кривая. 2. Выведите формулы леммы 2. удовлетворяющие условию [3]Р = О. Объясните.7.2. как сжатие точек экономит память и увеличива­ ет скорость при передаче точек эллиптической кривой. — Прим.

В следуюш. . симметричные по своей природе. Кроме того. исторические (т. слу­ жат основой многих современных криптосистем. е. использо­ вавшиеся до 1960 г.ЧАСТЬ II СИММЕТРИЧНОЕ ШИФРОВАНИЕ Кодирование в большинстве случаев опирается на блочные и группо­ вые шифры.) шифры. но сначала мы познакомимся с докомпью­ терными шифрами.их главах будет рассказано о теории и практике симме­ тричных криптосистем. Главный недостаток симметричного шифрования связан с про­ блемой распределения секретных ключей между пользователями. которые служат типичными примерами симметричных алгоритмов шифрования.

ГЛАВА 3 ИСТОРИЧЕСКИЕ ШИФРЫ Цели главы • Рассказать о некоторых докомпьютерных шифрах. за­ висящие от двух разных ключей. Обратный процесс называют расшифрованием и пишут m = Dk{C). как шифр Цезаря. Заметим. что алгоритмы шифрования и расшифрования Е и D от­ крыты. Этот процесс называют шифрованием. атаку с выбо­ ром открытого текста. шифр замены и машине «Энигма». таких. к — сек­ ретный ключ и С — шифротекст. 3. кри­ птограмму) с помощью секретного ключа.ествуют алгоритмы шифрования. или криптосистема­ ми с секретным ключом. в связи с чем такие алгоритмы принято называть симметричными криптосистемами. Первый из них открыт и нужен для шифрования.его языка. • Ввести понятия замены и перестановки как основных компо­ нентов шифра.1. например. в то время как второй — секретный и употребляется . и секретность исходного текста т в данном шифротексте С зависит от секретности ключа к. шифрограмму. • Описать несколько атак на шифры. Мы будем писать где т — открытый текст^ Е — шифрующая функция. Введение Алгоритм шифрования (или шифр) — это перевод открытого тек­ ста в текст зашифрованный (или шифротекст. Обе части этого процесса исполь­ зуют один и тот же ключ. Суш. • Показать ненадежность этих шифров ввиду наследования шифротекстом статистики подлежаш.

4 0. В этой главе мы познакомимся с несколькими ранними шифра­ ми. Но не следует думать.1 7. Подслушивающей сторо­ не. Соответствующая гисто^ Редакцией было принято решение не переводить примеры дешифрования на русский язык. В главе 4 мы обсудим связь между стойкостью ши­ фра и знанием статистического распределения букв подлежащего открытого текста. что сто­ роны. Исторические шифры при восстановлении текста из шифровки.1 0. в нашем случае английского^. 3. обычно обозначаются Л и Б . которая взламывает шифротекст.0 2.8 1. мы вполне можем описывать обмен секретной информацией между двумя автономными механизмами.1. участвующие в процессе. Среднестатистические частоты употребления английских букв Буква Процентное содержание а b с d е f 8. — Прим. поскольку в реальной жизни перехваченная шифровка может быть написана на любом языке. употребляют более дружественные имена: Алиса и Боб. Мы покажем.0 2.Глава 3.0 6. . что эти шифры легко взламываются с помо­ щью статистических исследований языка.3 9. однако.9 0.2 12. перев.8 4. Мы их будем изучать в следующих главах. Таблица 3. применявшимися для защиты информации в докомпьютерную эпоху.0 2^4 X 1 у z Процентное содержание 6J 7.1.8 4. обязательно люди.2 g h i J к 1 m Буква n о 1.0 6. Эти последние криптоси­ стемы называются асимметричными^ или криптосистемами с от­ крытым ключом. обменивающиеся шифрованной информацией. Довольно часто.5 1.1 2. обычно дают имя Ева. «плохой девочке».7 2.2 p q r s t u 2. Используя эти имена.1 6.5 2.0 ОД Распределение (встречаемость) букв в английском среднестати­ стическом тексте представлено в табл.0 V w 0. Стороны. на котором они написа­ ны (такой язык принято называть подлежащим).

15 1.21 en 1. а именно. 3.2. Таблица 3.20 nd 1.72 1.54 1. 3. and. частоту встречаемости групп из двух и трех букв.28 1. Шифр сдвига грамма изображена на рис.69 1. вме­ сто буквы «Ь» появится «Е» и т. Слово «hello» будет представлено . a b c d e f g h i j k l m n o p q r s t u v w x y z Рис.18 1 3.1. д. Наиболее часто встречающиеся биграммы представлены в табл.1. мы готовы сейчас исследовать и взломать несколько классических шифров. Как видно из этих данных. ing. При взломе шифра полезно знать статистическую информацию и второго порядка.48 1. for. nth. Частота встречаемости английских биграмм 1 Биграмма Процентное содержание Биграмма Процентное содержание th an er es ea at 3.2. tha. her. eth. 3. Относительная встречаемость английских букв Вооруженные такой статистической информацией.45 1. то буква «а» исходного текста в шифровке изображается «D». Шифр сдвига Коллекцию классических криптосистем открывает один из самых первых известных типов шифра.45 1. наиболее часто встречающиеся буквы — это «е» и «t». Про­ цесс шифрования заключается в замене каждой буквы на другую. ere. was. а самые попу­ лярные триграммы выписаны в строку в порядке убывания частоты их использования: the. например. если ключ равен 3.3.2.31 1. ent.24 he in re on ti St 2. называемых биграммами и триграммами. отстоянную от исходной на определенное число позиций в алфавите в зависимости от значения ключа.51 1. Так. называемый шифром сдвига.2.

заменяя каждую букву соответствующим номером. NAQ OL N FYRRC GB FNL JR RAQ GUR URNEG-NPUR NAQ GUR GUBHFNAQ ANGHENY FUBPXF . и тут уж без статистического подхода не обойтись. шифр сдвига можно интерпретировать как поточный шифр с потоком ключей в виде повторяющейся последовательности й/ъ hb hb Ш/% гь^ гь^ гь^ Гь^ гь^ й/ъ 1/ъ Гь^ • • • Этот поток. далек от случайного. как к каждому числу в этой последовательности прибавляется значение ключа к по модулю 26. приложение этого метода к ши­ фру сдвига иллюстрирует проявление статистики исходного откры­ того текста в соответствующем шифротексте. Наивный путь атаки на шифр сдвига состоит в простом переборе возможных значений ключа до тех пор.е. составленными из нескольких шифров сдвига. Рассмотрим пример шифрограммы. и получаем последова­ тельность чисел. Поскольку существует ровно 25 вариантов (ключ О не меняет текста). Затем мы переписываем исходный текст. Строго говоря. Когда этот шифр употребляется с ключом. Сначала нужно пронумеровать все буквы алфавита.д. А. BE AEG GB OR: GUNG VF GUR DHRFGVBA: JURGURE VVF ABOYRE VA GUR ZVAQ GB FHSSRE GUR FYVATF NAQ NEEBJF BS BHGENTRBHF SBEGHAR. Однако позже мы позна­ комимся с шифрами. очевидно. вследствие чего криптостойкость шифра сдвига крайне низка. естественно. начиная с О. В случае шифра сдвига такой спо­ соб не является острой необходимостью. до буквы «z» под номером 25. равным трем. которым мы будем руководствоваться при дальнейшем обсуждении. которые применяются поочередно. то д^ля их перебора потребуется не очень много времени. т. как можно взломать шифр сдвига. такое обобщение не совсем допустимо. GB OR. Шифротекст возникает после того. BE GB GNXR NEZF NTNVAFG N FRN BS GEBHOYRF. Покажем сейчас. Существует более математизированное описание шифра сдвига. и т. Исторические шифры шифровкой «KHOOR». Кроме того. его часто называют шифром Цезаря.. «Ь» — 1. хотя во многих книгах это название относится к шифру сдвига с любым ключом.Глава 3. — целое число между О и 26. пока не получится осмысленный текст. AB ZBER. особенно в случае короткой шифрограммы. Таким обра­ зом. NAQ OL BCCBFVAT RAQ GURZ? GB OVR: GB FYRRC. поскольку Юлий Цезарь пользовался шифром сдвига именно с ключом 3. букве «а» присваивается номер О. опираясь на статистику подлежащего языка.

3. Поскольку в английском языке таковыми словами могут быть лишь «а» и «i». Наиболее употребляемая буква в английском тексте — это «е».1. Сравнивая гистограммы. ключом может служить одно из чисел: 2. Среди двух серий гипотетических ключей есть только одно совпа- . замечаем.2. «N».е. 9. легко предположить. поскольку он не был нам известен. 3. Посмотрев на них. Шифр сдвига GUNG SYRFU VF URVE GB. расположенных друг над другом. насколько вто­ рая сдвинута относительно первой. либо 5 («N» — пятая буква после «I»).2). 3. отражающая статистику букв в шифротексте. ZHFG TVIR HF CNHFR: GURERT GUR ERFCRPG GUNG ZNXRF PNYNZVGL BS FB YBAT YVSR. SBE VA GUNG FYRRC BS QRNGU JUNG QERNZF ZNL PRZR JURA JR UNIR FUHSSYRQ BSS GUVF ZBEGNY PBVY. 6. «R» или «В». GB QVR. что гистограм­ ма (б). Но даже если игнорировать информацию о длине слов. мы можем без особого труда вскрыть шифр сдвига. Один из приемов взлома этого образца шифротекста основывается на том. получаем. Отсюда мораль — пробелы между словами в исходном тексте перед его шифрованием с помощью шифра сдвига следует убирать. что мы не вычисляли частоты j\jui вычерчивания первой диаграммы по исходному открытому тексту. что буква «е» исходного текста может быть заменена на «G». Полученная информация представлена на двух гистограммах (рис. очень похожа на сдвиг гистограммы (а) со среднестатистической информацией. Вычислим частоты появления букв в шифротексте и сравним их со среднестатистическими из табл. 13 или 17. можно предположить. применив частотный анализ. к. GB FYRRC. GB FYRRC: CREPUNAPR GB QERNZ: NL. легко убедиться. GURERT GUR EHO. Аналогично. что ключ равен либо 13 (т. что возможный ключ равен одному из 1. Например. 13 или 23. WF N PBAFHZZNGVBA QRIBHGYL GB OR JVFU'Q. исследуя кандидаттуры на букву «а». т. Мы просто воспользовались легко доступной стати­ стической информацией о подлежащем языке. «N» появляется в нем как однобуквенное слово. Заметим. «N» — тринадцатая буква в алфавите после «А»). что шифровка все еще сохраняет относительные длины слов исходного текста. Отмечая большие столбцы во второй гистограмме.

а именно 13. 3. And by opposing end them? To die: to sleep. Сравнение частот появления букв в шифротексте со среднеста­ тистической То Ье. 4is a consummation Devoutly to be wished. Поэтому естественно предположить. конечно. or not to be: that is the question: Whether His nobler in the mind to suffer The slings and arrows of outrageous fortune.2. Must give us pause: there's the respect That makes calamity of so long life. . to sleep. To sleep: perchance to dream: ay. ABCDEFGHI J K L M N O P Q R S T U V W X Y Z (б) Рис. For in that sleep of death what dreams may come When we have shuffled off this mortal coil. Приняв это за рабочую гипотезу. сделаем попытку расшифровать сообщение и обнаружим осмысленный текст. Вы. что именно 13 и является истинным ключом. there's the rub. узнали знаменитый монолог Гамлета из трагедии Вильяма Шекспира.Глава 3. Or to take arms against a sea of troubles. Исторические шифры дающее значение. and by a sleep to say we end The heart-ache and the thousand natural shocks That flesh is heir to. No more. To die.

Шифры замены имеют богатую и интересную историю. а не­ посредственно под ним — тот же алфавит. Количество всех возможных ключей такого шифра совпадает с числом всевозможных перестановок 26 элементов. т. Таким образом. и как правило именно они фигурируют во всевозможных детективных исто­ риях. что суще­ ствует слишком мало возможных ключей.3. мы можем взломать шифр замены. Шифр замены Основной недостаток шифра сдвига заключается в том. порядком симметрической группы S'265 равным 26! ?^4. . но с переставленными буквами^ Это дает нам правило.е. что задача о дешифровании конкретного сообщения перестанет быть актуальной. мы потратим столько време­ ни. простого). зависящего от ис­ пользуемого алгоритма. Тем не менее. Шифр замены 3.3. азбука Морзе. нужно каждую его букву найти в нижней строке таблицы и заменить ее соответствующей верхней. например. как мы вскрыли шифр сдвига. сначала выписывается алфавит. когда шифротекст получается комбинацией открытого текста с потоком клю­ чей. блок в котором состоит из одной английской буквы. аналогично тому. шифр замены похож на более современный блочный шифр. Один из таких шифров описан в рассказе Артура Конан Дойля ^Или любой другой набор различных знаков. В целях устра­ нения указанного недостатка был изобретен шифр замены. перебирая все возможные ключи с помощью самого со­ временного и быстрого компьютера. всего 25. Поэтому. Чтобы описать ключ такого шифра. Чтобы расшифровать шифротекст. по которому буквы открытого тек­ ста замещаются символами шифровки. abcdefghij к Imnop qrs tuvwxy z GOYDSIPELUAVCRJWXZNHBQFTMK Шифрование состоит в замене каждой буквы в открытом тексте на соответствующую ей нижнюю букву. Блок шифротекста получается из блока открытого текста в результате применения не­ которого ключа (предположительно. Например. Однако в этой книге автор ограничивается перестановками стандартного алфавита. опираясь на статистику подлежащего языка. Если шифр сдвига можно считать поточным шифром. — Прим.03-10^^ ^2^^. если пользоваться приведенным соответствием. перев.3. крипто­ грамма слова «hello» будет выглядеть как ESVVJ.

UTKSIAO LOTJAIAD. XSO JODIVA STW T JTCIGLQ DJVHIAD AZUMOJ VY lAAVNTXINO AOH KVUCTAIOW. WXTYY WOKVAGUOAXW TAG NIWIXIAD lAGZWXJITL WXTYY. XSO GOCTJXUOAX STW T LTJDO CJVDJTUUO VY JOWOTJKS WZCCVJXOG MQ lAGZWXJQ. XSO OZJVCOTA ZAIVA. XSO MJIWXVL JODIVA STW VAO VY OZJVCO'W LTJDOWX KVAKOAXJTXIVAW VY SIDS XOKSAVLVDQ lAGZWXJQ. GIDIXTL UOGIT. UVMILO TAG HOTJTMLO KVUCZXIAD. которым Холмс и Ватсон взломали шифр. RZTAXZU KVUCZXIAD. XSO TKTGOUIK JOWOTJKS CJVDJTUUO IW VJDTAIWOG lAXV WONOA DJVZCW. TAG ZE DVNOJAUOAX JOWOTJKS OWXTMLIWSUOAXW TAG CZMLIK KVJCVJTXIVAW. Метод. Рассмотрим шифротекст. TLVADWIGO GIDIXTL UOGIT. кото­ рая предварительно была упрощена по сравнению с оригинальной: в ней оставлены промежутки между словами подлежащего открытого текста. KVUCZXOJW. Интрига детектива замешана на шифре за­ мены. TWHOLL TW SVWXIAD UTAQ JOWOTJKS TAG CJVGZKX GONOLVCUOAX KOAXJOW VY UTPVJ DLVMTL KVUCTAIOW. приведен­ ный ниже. UIKJVOLOKXJVAIKW TAG UOGIT lAGZWXJIOW lA XSO MJIWXVL JODIVA. что это сильно облегчит нам задачу. проводя атаку на шифротекст. . T EOQ OLOUOAX VY XSIWIW XSO WXJVAD LIAEW XSTX XSO GOCTJXUOAX STW HIXS XSO KVUCZXOJ. Мы разберем в деталях пример атаки на криптограмму. В какой-то момент мы воспользуемся этой информацией. KVUUZAIKTXIVAW TAG UIKJVOLOKXJVAIKW TJO HOLL JOCJOWOAXOG. LTADZTDOW TAG TJKSIXOKXZJO. XSO KVUCZXOJ WKIOAKO GOCTJXUOAX STW KLVWO JOLTXIVAWSICWHIXS UTAQ VY XSOWO VJDTAIWTXIVAW NIT KVLLTMVJTXINO CJVPOKXW. который мы и возьмем на вооружение. и есть тот действенный способ. KVUUZAIKTXIVAW. Сделано это в целях более наглядной демонстрации метода. IX STW JOKOAXLQ lAXJVJZKOG WONOJTL UOKSTAIWUW YVJ GONOLVCIAD TAG WZCCVJXIAD OAXJOCJOAOZJITL WXZGOAXW TAG WXTYY. Исторические шифры «Пляшущие человечки». хотя стоит признаться. в котором буквы замеш. WQWXOU NOJIYIKTXIVA. TAG TIUW XV CLTQ T WIDAIYIKTAX JVLO lA XSO GONOLVCUOAX VY SIDS-XOKSAVLVDQ lAGZWXJQ I A XSO JODIVA. TAG KJQCXVDJTCSQ TAG lAYVJUTXIVA WOKZJIXQ.Глава 3.ались схематично изображенными че­ ловечками в различных положениях. KVUCZXOJDTUOW TAG OLOKXJVAIKKVUUOJKO.

3). Заметим. что имеет место соответствие X = t. IVA. табл.5874 11. AXS — чаще всего встречаюш.1390 3. AG. У них есть общая буква «t».3. .0000 7.7802 Буква Гс F I L 0 R и X Частота 3.их триграмм шифротекста.иеся триграммы. TXI.2645 1.479.1255 8.0000 0. TAG. Частоты встречаемости букв в шифротексте примера Буква А D G J М Р S V 1 Y Частота 8. В связи с этим можно с большой долей вероятности за­ ключить. XS.6278 4. S = h. JV. 3. IA.8968 0.8923 3.3452 8. а именно 11. WX.0717 Кроме того.Триграмма XSO шифротекста соответствует «**е» исходного сообщения. eth и the.0762 1.6771 7. А п. Шифр замены Вычислим частоту встречаемости отдельных букв в этом шифротексте (см. можно предположить. а вторая с нее начинается. Таблица 3. а ОАХ.ения.3.0896 4.2690 0. VA. Ограничившись . наиболее употребительные биграммы в шифров­ ке — это ТА. что она соответству­ ет букве «е» открытого текста.1793 3. KVU. Посмотрим.6636 1.479 0. Поскольку буква «О» в нашем образце имеет самую высокую ча­ стоту.Триграмма ОАХ шифротекста соответствует «е**» исходного сообш.0493 0. что это может означать р.3. XSO. J 0 . .6143 Буква В Е Н К N Q т W Z Частота 0. Даже после столь небольшого анализа мы намного облегчили по­ нимание открытого текста.6995 3.0717 6.0852 0. UOA. ОА.ля наиболее обш. скрытого в шифровке. 73) и выберем из них те.6367 2. Вспомним теперь часто употребляемые триграммы в англий­ ском языке (стр. что первая из популярнейших триграмм шифротекста оканчивается буквой «X». Аналогичным свойством обладают вы­ бранные триграммы открытого текста: ent и the. АХ.5874 7. которые начинаются или оканчиваются на букву «е»: ent.

KVUCZteJW. TLVnDWIGe GIDItTL UeGIT.1).0 и 8. A = n. aLVnDWIde dIDItaL Uedia. Таковой является триграмма TAG. Частота буквы «Т» в шифротексте — 8. соответственно. считая. G = d. Теперь мы сжульничаем и воспользуемся тем. На этом этапе исследуем двубуквенные слова.0717. S = h. Напомним. так что перенесем наше внимание к следующей по популярности триграмме. Отсюда вполне обоснованно можно сделать вывод: G = d. что такое продвижение в дешифровании произошло по­ сле замен: 0 = е. попадающиеся в криптограмме. 3.2 (см. произведем в них замены наиден­ ных соответствий. S = h. Исторические шифры двумя первыми предложениями. что в криптограмме оставлены промежутки между словами. а среднестатистические частоты букв «i» и «а» равны. Поскольку буква «Т» появля­ ется в шифровке как отдельное слово. Следовательно. KVUCZteJ DTUeW TnG eLeKtJVnIK KVUUeJKe. . X = t. A = n. KVUUZnIKatlVnW and UIKJVeLeKtJVnIKW aJe HeLL JeCJeWented. KVUCZteJ. Такой результат получился после шести замен: 0 = е. она может замещать лишь одну из двух букв открытого текста: «i» или «а». табл. KVUCZteJW. что она означает триграмму an* открытого текста. KVUUZnIKTtlVnW TnG UIKJVeLeKtJVnIKW TJe HeLL JeCJeWenteG.Глава 3. При всех сделанных предположениях о соответствии букв ча­ стично дешифрованный кусок шифровки имеет вид: the MJIWtVL JeDIVn haW Vne VY eZJVCeW LaJDeWt KVnKentJatIV nW VY hIDh teKhnVLVDQ IndZWtJQ. Произведя извест­ ные замены. DaUeW and eLeKtJVnIK KVUUeJKe. скорее всего Т = а. the MJIWtVL JeDIVn hTW Vne VY eZJVCeW LTJDeWt KVnKentJTtIV nW VY hIDh teKhnVLVDQ InGZWtJQ. X = t. Т = а. Мы уже рассмотрели самую встречаемую триграмму в шифров­ ке. 7. что нашли их правильно. увидим. поскольку триграмма and — одно из наиболее употребительных бу­ квосочетаний английского языка.

Так что возможно. Частота встречаемости символа «Y» в криптограмме — 1. а букву «г»— 6. XV соответствует сочетанию «t*» открытого текста. Это слово. IW должно означать «i*». означает *t. А = n. откуда V = о. KoUCZteJs. что буква «а» открытого текста замеш. I = i. W = s первые два предложения шифротекста выглядят так: the MJistoL JeDion has one of eZJoCe^s LaJDest KonKentJations of hiDh teKhnoLoDQ indZstJQ. подменяюп1. взятый с веб-сайта факульте­ та вычислительной математики Бристольского университета. Значит. Напри- . KoUUZniKations and UiKJoeLeKtJoniKs aJe HeLL JeCJesented. и у нас остается только две возможности д^ля выбора.ается буквой «Т».4. G = d. Однако мы уже убедились. Так как пары для символов «f». только два двубуквенных слова английского языка оканчиваются на «t»: «at» и «it». после вычисленных замен: О ::= е.6. «и» и «t» нам известны. Поэтому при взломе ши­ фра эффективно работает статистика подлежащего языка. имеет место соответствие У = f. Т = а.0. Таким образом.Шифр Виоюенера IX. Поэтому буква «Y» шифровки может замеш. то W = s. «W» замещает одну из четырех букв: «f». Но мы уже знаем букву шифротекста. S = h. в то время как вероятность встретить букву «f» в английском тексте равна 2. Даже с половиной определенных букв теперь не очень сложно понять подлежаш. KoUCZteJ DaUes and eLeKtJoniK KoUUeJKe. aLonDside diDitaL Uedia. «п» или «г».ать лишь «f». V = o. буква шифра «I» может замеш. VY можно заменить на «о*».2.4.к. так что остается одна возможность: I = i. «s» или «t».ую собой «п». «п». как мы знаем. X = t. 3.ать либо «а». Мы оставляем читателю выявить все оставшиеся буквы и восстановить текст полностью. Шифр Виженера Основной недостаток шифров сдвига и замены заключается в том. Y = f. что каждая буква открытого текста при шифровании заменяется раз и навсегда фиксированным символом.ий открытый текст. Итак. т.3. либо «i».

то мы не смо­ жем найти символ шифра. многократно увеличивая пространство ключей. описанный в предыдуш. не составляет труда определить. При этом буква «1». можно рассмотреть такое соответствие: a b c d e f g h i j k l m n o p q r s tuvwxyz TMKGOYDSIPELUAVCRJWXZNHBQF D C B A H G F E M L K J I Z Y X W V U T S R Q P ON. блок кото­ рого равен двум английским буквам. а вторая и тре­ тья — первый и второй алфавиты шифротекста. относится к так называемым моноалфавитным шифрам замены. Шифр замены. встречаюш.ается разными символами.ий собой стандартный алфавит. замеш. В этом примере мы. Например. Действительно. подменяюш.ественно усложнили применение статистических методов при атаке на шифр. за каким знаком в шифровке скрывается буква «Е». Но для среднего пользователя начала XIX века такая система шифрования казалась . Таким образом. мы имеем дело с блочным шифром. то число возможных ключей равно (26!)^ ^ 2^^^.ие знаки из разных наборов в опре­ деленной последовательности. Естественно. лег­ ко подсчитать. Следовательно. а вплоть до пяти различных алфавитов шифротекста. Исторические шифры мер. стояш. необходимо скрыть количество ис­ пользуемых алфавитов. мы суш. Итак. чтобы брать несколько наборов симво­ лов вместо стандартного алфавита и шифровать буквы открытого текста. исходное слово hello в шифротексте будет выглядеть как SHLJV. Один из путей решения указан­ ной проблемы состоит в том. Шифры такого типа носят название полиалфавитных шифров замены. что если мы берем символы из пяти замещающих наборов. чтобы усложнить жизнь Еве. На практике можно использо­ вать не два.Глава 3. выбирая соответствуюш. в которых используется только один упорядоченный набор символов.аяся два раза. В этой ситуации буквы открытого текста.ими буквами второй строки. С начала XIX века разработчики шифров пытались преодолеть такую связь между открытым текстом и его шифрованным вариантом. по существу.ие на нечетных позициях. в котором первая строка — английский алфавит. что в этом случае ключ — по­ следовательность из 26-5 = 130 букв. считал его частью ключа. замеш.аются соответствуюш. Однако пользователю необходимо помнить. вскрывающей шифр. Если теперь применить наивный частотный анализ. подменяющий собой самую популярную английскую букву «е».ем параграфе. за один шаг шифруем две бу­ квы. а стоящие на чет­ ных — третьей.

мы снова перенумеруем буквы. чтобы запомнить его. на каком месте открытого текста она стоит.аюш. самые известные шифры XIX столетия основывались именно на описанном принципе. JV UPL О UVADGR HRRWXF. но имел несложный для запоминания ключ. если ключом явля­ ется слово sesame^ то шифрование выглядит так: thisi sat e s t m e s sage s e same + sesamese same " L L A S U W S X W S F Q W W K A S I . то про­ странство ключей сводится к 26^ ^ 2^^ возможностям. поскольку ключ был слишком большим.4. RLS BHZLXMSNP KDKS.аюш.ающих алфавитов. начиная с 0. Как и в случае шифра сдвига. LCOV . множество замеш.его языка. WX RKU GI TZN.е. часто называемое лозунгом)^ которое повторяется снова и снова. опираясь на статистику подлежаш. YYM SRB PER SBS. шифр Виженера является полиалфавитным блочным шифром. Кодирование заключается в сложении букв открытого текста с буквами потока ключей (воспринимаемых как числа). В качестве примера рассмотрим следующую криптограмму: UTPDHUG NYH USVKCG МУСЕ FXL KQIB. MG UCTESVA. Например. Ес­ ли. а в качестве ключа можно запомнить 5 чисел между О и 25. MCYE.3. слово. WP КЕТ ZCQU MAW KOIJS. Как только мы узнаем длину ключевого слова.им шифр сдвига. Как блочный шифр алгоритм Виженера относится к полиалфа­ витным шифрам.их наборов которого огра­ ничивается 26 циклическими сдвигами стандартного алфавита. С одной стороны. Однако описание шифра Виженера как поточного шифра более естественно. 0U КЕТ ZCQU MAW QKKW ZGSY. TBF RQ VHCF R KPG. Несмотря на указанный недостаток. что и в этом примере буква «а» замеп]. например.ается различными символами в зависимости от того. в нем применяются 5 замеш. Заметим. СЕВ Ш HKEWIBA. Шифр Виженера все же не очень сложно взломать. Секретный ключ здесь — это короткая последо­ вательность букв (т. но его можно также отнести и к поточным шифрам.Шифр Виоюенера слишком громоздкой. естественно обобш. Шифр Виэюенера был одним из вариантов полиалфавитного шифра заме­ ны. ЕР PGM QKETK UQEB DER EZRN. JV ZTVOOV УН ZCQU У UKWGEB. нам останется несколько раз применить тактику взлома шифра сдвига. формируя поток ключей. PL UQFB Р FOUKCG.

НОД (30. Расстояние между повторениями в таком слу­ чае должно быть кратно длине лозунга. . QNH NZTTWIREL IAS VERPE ODJRXGSPTC EKWPTGEES. Учитывая это. Его идея основана на периодичности пото­ ка ключей. возникает надежда. что расстояния 9 и 21 попали случайно. Отдельные совпадения могут возникнуть случайно. TBF BLDPWPX RWTH ULAW TG VYCHX KQLJS US DCGCW OPPUPR.66) = 6. Возьмем теперь каждую шестую букву шифротекста и приме­ ним частотный анализ. а длина ключа равна 6. НОД (3. SXVPN HBG! Существует способ. Исторические шифры NTHDNV JPNUJVB Ш GGV RWX ONKCGTHKFL XG VKD.66) = НОД (9. CJ EPOS VYC BTZCUW XG ZGJQ PMHTRAIBJG WMGEG. Вычислим попар­ ные наибольшие общие делители этих чисел. XMS UZGJQJL.30) = НОД (21. 21. JZQ DPB JVYGM ZCLEWXR:CEB lAOV NYH JIKKC TGCWXE UHE JZK. Этот способ называют тестом Казисского. RLS EWVKJT ASGUCS MVGD. так что бу­ дем считать. VG KFDNUJK GI JIKKC PL KGCJ lAOV KFTR GJFSAW KTZLZES WG RWXWT VWTL WP XPXGG.9) = НОД (9. взламывая шифр сдвига. Некоторые из расстояний между по­ вторениями этого буквосочетания равны 9. в естественном языке существуют часто встречаемые буквосочетания: биграммы и триграммы. вычислив наибольший общий делитель всех таких расстояний. YH MWPP RXE CDJCGOSE. GMCG TTVVPLTEEJ. ZJM VG CCI MVGD JPNUJ. HFP VHSF. YCW WV NYH TZYRWH LOKU MU AWO. что повторяющиеся наборы символов в шифротексте — след повторений популярных биграмм и триграмм открытого текста. Кроме того. мы получим рабочую гипотезу о длине ключа. Маловероятно.Глава 3. генерирующего поток ключей. RR LAWEY QDFS RVMEES FZB СНН JRTT MVGZP UBZN FD ATIIYRTK WP КЕТ HIVJCI. DDK VG NYH PWUV CCHIIY RD DBQN RWTH PFRWBBI VTTK VCGNTGSF FL IAWU XJDUS. DYN MVCK ZT MEWCW HTWE ED JL. как мы уже делали. что ключевое слово состоит из трех букв. с помощью которого можно определить дли­ ну лозунга. WX VCULD YTTKETK WPKCGVCWIQT PWVY QEBFKKQ.66) = 3. Исследуем расстояния между повторениями биграммы WX в при­ веденном выше шифротексте. GPU YAE CH LQ! PGR UE. Слодовательно. в то время как остальные содержат информацию о длине ключевого слова. KEPM VG BLTP VQN RD DSGG AWKWUKKPL KGCJ. XY GPP KPG ONZTT ICUJCHLSE KET DBQHJTWUG. 66 и 30.

на­ чиная со второй. ABCDEFGHI J К LMNO (б) QR S Т и V W X Y Z Рис. поскольку именно она обеспечивает такой сдвиг. Соответствующие гистограммы изображены на рис. даже если каждая шестая буква шифротекста бу­ дет угадана. Следовательно. в примере шифра Виженера со среднестатистической Применим аналогичный анализ для каждой шестой буквы. стоящей на втором месте ключевого слова. Сравнение повторяемости каждой шестой буквы. Используя ту же технику. Продолжая в том же духе. что гистограмма (б) «сдвинута» относительно диаграммы (а) на 17 позиций.3. первая буква ключа — «о>. получить осмысленный текст мы не сможем. начиная с пер­ вой. со среднестатистической. мы отмечаем возможные замены букв «а». Теперь можно про­ честь исходный текст: . Так что метод гистограмм более продуктивен в этой ситуации.3 дано сравнение частот повторяемости каждой шестой буквы. 3.4. На рисунке 3. Преимущество гистограмм в ча­ стотном анализе здесь очевидно. мы видим.3. что соот­ ветствует букве «л>.4' Шифр Виоюенера и определим первую букву ключа. найдем оставшиеся четыре буквы ключа и обнаружим. и делаем вывод. Изучая эти гистограммы. «е» и «t» естественного языка. что они сдвинуты на 2. 3. Действительно. что лозунг — это «crypto». поскольку наивный перебор всех возможных 26 ключей не сможет дать убедительного результата. начиная с первой.

at which some people did not have their fill of laughter in the outset. who did not die. he was a second father. or borough. His own heart laughed: and that was quite enough for him. May that be truly said of us. ever afterwards. town. God bless Us. but lived upon the Total Abstinence Principle. and knowing that such as these would be blind anyway. but he let them laugh. and as good a man. he thought it quite as well that they should wrinkle up their eyes in grins. and little heeded them. for good. as good a master. Some people laughed to see the alteration in him. 3. or any other good old city. in the good old world. He had no further intercourse with Spirits. Исторические шифры Scrooge was better than his word. as the good old city knew. that he knew how to keep Christmas well. as have the malady in less attractive forms. Сравнение повторяемости каждой шестой буквы.Глава 3. and it was always said of him. and to Tiny Tim. He became as good a friend. . He did it all. if any man alive possessed the knowledge. Святочный рассказ с привидениями». в примере шифра Виженера со среднестатистической Отрывок взят из произведения Чарльза Диккенса «Рождествен­ ская песнь в прозе. Every One! 12n 12n ABCDEFGHI J K L M N O P Q R S T U V W X Y Z (6) Р и с . for he was wise enough to know that nothing ever happened on this globe. and infinitely more. начиная со вто­ рой. as Tiny Tim observed.4. and all of us! And so.

ля этого нужно навязать отправителю шифрованных со­ общений нужный нам открытый текст и получить его в зашифро­ ванном виде. получим шифротекст coenunpaoteitmheewralsiatiergllclaendoswiwthe. Разобьем текст на части по 5 букв: опсеи ponat imeth erewa salit egirl calle dsnow white. Поз­ же мы увидим. что в шифрах DES и Rijndael присутствуют ком­ поненты. Предположим. Фиксируется симметрическая группа Sn и какой-то ее элемент а Е Sn. Затем переставим буквы в них в соответствии с нашей перестановкой: соепи npaot eitmh eewra Isiat iergl Iclae ndosw iwthe. которые являются простыми под­ становками.Именно перестановка а является секретным ключом. что участвующая в шифровании ис­ пользованная симметрическая группа (т. Пред­ положим. разрабатывающими симметричные алгоритмы. который легко поддается взламыванию. е.5. движут и современными криптографами. что а={ / 1 2 3 4 5 \ ]= \ 2 4 1 3 5 у . параметр п) не слишком велика. Здесь мы опишем один из самых простейших. Другие составляющие современных симметричных ши­ фров основываются на перестановках. Перестановочные шифры Идеи. лежащие в основе шифра замены. Перестановочные шифры 3. чтобы скрыть значение п. что нам удалось подсунуть алфавит abcdefghijklmnopqrstuvwxyz и получить его шифрованную версию CADBEHFIGJMKNLORPSQTWUXVYZ. Ц. 1243 G 55 и зашифруем с ее помощью открытый текст: Once upon а time there was a little girl called Snow White. . например. Перестановочный шифр поддается взлому атакой с выбором откры­ того текста в предположении. Перестановочные шифры активно применялись в течение не­ скольких столетий.3. называемые S-блоками.5. Убрав теперь промежутки между группами.

Пе­ ред шифрованием второй буквы открытого текста коммутацион­ ный диск поворачивается на одну позицию и получается другое пра­ вило замещения: . Одноразовый шифр-блокнот Во время Первой Мировой Войны криптологи активно использо­ вали так называемый одноразовый шифр-блокнот.у После короткого анализа полученной информации мы обнаружива­ ем повторяюш. Эта коммутация определяла замену букв в начальном угловом положении. что коммутация диска задает подстановку a b c d e f g h i j k l m n o p q r s tuvwxyz TMKGOYDSIPELUAVCRJWXZNHBQF. Таким образом. что п = 5.6. называемой коммутацией диска. причем контакты соединялись между собой по некоторой подста­ новке. получаем переста­ новку / 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 .иеся серии перестановок: каждые пять чисел пере­ ставляются одинаково. Наиболее подходящим для этого типом ши­ фра казался подстановочный. При изменении угло­ вого положения диска изменялась и соответствующая замена на со­ пряженную подстановку. 3. взяв первые пять столбцов этой таблицы. Отсюда название механического устрой­ ства — ротор^ или роторная машина. которая реализуется в начальном угловом положении. и восстановить ключ. 3. не менее интерес­ ной криптосистеме. Предположим. Для механизации процесса шифрова­ ния брался полый диск с нанесенными с двух сторон контактами. . Тогда пер­ вая буква сообщения замещается согласно этому соответствию. Исторические шифры Сопоставляя открытый текст и криптограмму.. а сейчас мы перейдем к другой. Роторные машины и «Энигма» С наступлением 1920 года назрела необходимость механизировать процесс шифрования.Глава 3. Этот алгоритм подробно изучается в четвертой главе.7. \ \2 4 1 3 5 7 9 6 8 10 12 14 11 13 15 . . который часто называют шифром Вернама. можно сделать вывод. соответствующими алфавитам открытого и шифрованного текста..

Аналогично пошаговые итерации третьего ротора контролируются вторым ротором. Таким образом.3. выбираемых из большего набора перестановок. д. Все это дает нам полиалфавитный шифр замены с 26 алфа­ витами.алась раз­ ными символами при каждом нажатии на клавишу. стоявшая на вооружении Германии во время второй мировой войны. За счет враш. начальные угловые положения дисков и положения колец. в формировании пространства ключей принима­ ли участия коммутации дисков. Роторные машины и «Энигма» a b c d e f g h i j k l m n o p q r stuvwxyz MKGOYDSIPELUAVCRJWXZNHBQFT Для третьей буквы используется очередная подстановка: abcdefghijk Imnopq rstuvwxyz KGOYDSIPELUAVCRJWXZNHBQFTM и т. Число всех положений двух колец составляет 26^ = 676. Поэтому число возможных компоновок дисков в нашем примере равно 5 • 4 • 3 . применяемые в конце войны. имели большее число дисков. Наконец. В результате обш.е 10^^ возможных ключей.7. Оба кольца подвижны. Обратите внимание. Мы опишем самую простую версию «Энигмы».ля двойной замены букв при каждом шифровании ис­ пользовалась штекерная панель. р. содержашую лишь три коммутационных диска. Наиболее знаменитой из роторных машин была машина «Эниг­ ма».60. При каждом повороте первого ротора соединенное с ним кольцо попадает в паз второго диска и толкает его. что увеличивало сложность и доба­ вляло еш. порядок их компоновки.ественен.ее число секретных ключей доходило до 2^^. .их перестановок: abcdefghijklmnopqr stuvwxyz E K M F L G D Q V Z N T O W Y H X U SPA I BR С J AJDKSIRUXBLHWTMCQGZNPYFVOE BDFHJLCPRTXVZ N Y E I W G A K M U S QO ESOVPZJAYQUIRHXLNFTGKDCMWB VZBRGITYUPSDNHLXAWMJQOFECK Машины.ения дисков конкретная буква текста замеш. что порядок компоновки дисков в машине суш. которые реализовывали три из следуюш. и их положения тоже формируют часть простран­ ства ключей.

3. Именно этот недосмотр в режиме работы «Энигмы» по­ зволил сотрудникам Блетчлеи Парка раскрыть график передвиже­ ния германских войск.Глава 3. Предполо­ жим теперь. За­ метим.5.ие установки: - расположение штекеров. «с» в «С» и «d» в «В». 3. коммутационные диски и их компоновку.5). поскольку шифрование слишком большого коли­ чества информации с одними и теми же установками — неудачная практика. что шифрование и расшифрование должно осуш. Упрощенная машина «Энигма» При эксплуатации «Энигмы» немцы ежедневно меняли следуюш. так что «а» перейдет в «D» под воздействием первого диска.5 приведено схематическое изображение упрощенной ма­ шины «Энигма». начальные угловые положения дисков. куда перейдет «а» открытого текста при втором шаге шифрования (см.ения.ествляться машинами. Исторические шифры Ц^ля контроля соответствия операций шифрования и расшифро­ вания использовался так называемый рефлектор. в качестве которо­ го выступала фиксированная открытая подстановка. что утечка информации про- . Вам стоит продумать. Однако правильнее было бы менять ключ с передачей каждого нового сообш. по которому бу­ ква «а» открытого текста заменяется на знак «D» шифротекста. находящимися в одном и том же положении. индикаторы клавиатура штекеры 1 диски 2 3 рефлектор Р и с . заданная таб­ лицей abcdefghi j к Imnopqrstuvwxyz YRUHQSLDPXNGOKMIEBFZCWVJAT На рис. позиции колец. что первый диск провернули на одну позицию. рис. Подчеркнем. Жирными линиями выделен путь. 3. «Ь» в «А».

ение. т. g» (на современном языке это называется сеансовым ключом)^ которая дважды шифровалась. По суп1. Адресат. которое они так никогда и не использовали. которое мы намерены взломать. что система шифро­ вания «Энигма» нестойка даже в том случае. Именно эта схема использования позволила людям из Блетчлей Парка взломать «Энигму». известное сотрудни­ кам разведки. Допустим. близок ли шифр криптограммы по своей природе к подстано­ вочным шифрам. После этого мы поочередно помещаем штекеры на панель до полной расшифровки текста. Н. можно с достаточной долей вероятности утверждать. а не из-за слабой криптостойкости алгоритма. Такой подход к взлому не был ис­ пользован в военных действиях.ения. . полу­ чив комбинированный шифротекст. шестибуквенная последовательность (в нашем примере «G. произошел ли данный шифро­ текст из чего-либо похожего на естественный язык. Ежедневно перед отправкой первого шифрованного сообш. Для осуществления описанной выше атаки нам необходимо по­ нять. Р. штекерная панель и композиционные дис­ ки — ортогональные механизмы шифрования. Другими словами. Как только мы получили искомую близость. дешифровал сеансовый ключ и в соответствии с результатом менял настройки машины. Критерием корректности подбираемо­ го расположения служит близость статистики частично расшифро­ ванного текста к естественной. касаюш. что найденные установки коммутационных дисков и колец действитель­ но верные.ения менялись и фиксировались на весь день настройки машины.S. Сначала мы игнорируем участие штекерной панели в алгоритме и пытаемся нащупать положения всех комму­ тационных дисков и колец. указанных в разделе «Дополнительная литература» этой главы. У «Энигмы» было и другое слабое место.l. передавалась в самом начале сообш. L. скажем «а. Т»). а большинство реаль­ ных перехваченных немецких сообщений были очень короткими.ихся взлома этого шифра. Расска­ жем о схеме такой атаки. Полученный шифротекст. Режим эксплуатации «Энигмы» во время военных действий вы­ глядел следуюш. поскольку для его успешной реали­ зации необходим пространный шифротекст.ения. можно про­ честь в книгах.им образом. что допускает успеш­ ную атаку на отдельный достаточно большой шифротекст. Роторные машины и «Энигма» изошла ввиду неверной эксплуатации машины. После это­ го расшифровывался текст первого сообш. К.еству.е. Выбиралась короткая последовательность букв. у нас есть большое шифрованное сообш. f. О подробностях. Наличие этого дополнительного недостатка показывает. если эксплуатируется правильно.

. которая даст самый высокий индекс совпадения 1С для преобразованного текста. а диски вновь устанавливаются в позицию «а. Исторические шифры Один из статистических методов. . Проходим через все положения каждого из трех коммутационных дисков и первого кольца. с соблюдением порядка. определим ту комбинацию. Эта замечательная находка используется при атаке на шифр «Энигма» следующим образом. а. который мы хотим предло­ жить Вашему вниманию. /25 — числа появлений букв в строке.065. Аппроксимируем начальные угловые полоэюения дисков. Найдем порядок коммутационных дисков. . 0 3 8 . i.Глава 3.ж^ — строка букв. а». Однако мы верим в то. При этом происходит 26^ « 2^^ расшифрований. Освободим панель от штекеров и установим диски в позицию «а. . найденного на предыдущем шаге. написанного на английском или немецком языках он равен 1С{х) ?^0. что начальные угловые положения дисков на предыдущем ша­ ге были точно определены. Вновь стремимся приблизить коэффициент 1С к мак­ симальному значению. Перебирая все угловые положения дисков и их взаимные расположения. Па этом этапе штекерная панель все еще остается пустой. не вызывает доверия. . . После указанной процедуры мы определим наибо- . а. расшифровывая сообщения при каждой комбинации. а». Заметим. а /о. Вели­ чина 25 Е fiUi -1) 1С{х) = ^ —п{п — 1) называется индексом совпадений. что их взаимное расположение найдено верно. и носит название индекс совпадения. (Индекс совпадения. впервые был применен Фридманом в 1920 г. .1.i. 2. Определение 3. что для случайного набора букв этот индекс равен 1С{х) « 0 . . в то время как р^ля осмысленного текста. Теперь выяс­ ним стартовые угловые позиции.) Пусть a. Тот факт. Па это потребуется 60 • 26^ ^ 2^^ операций расшифрования.

Важнейшие приемы.l. В результате мы найдем точные положения второго коль­ ца и второго коммутационного диска. чем ожи­ далось. Теперь мы перебираем все положения второго кольца и второго дис­ ка. основан­ ного на информации о распределении триграмм подлежаш. поскольку не смогли скрыть ста­ тистики подлежаш. . можно рекомендовать книгу Сингха. были взломаны.Многие шифры. Единственное. Однако она слишком большая. 3.ие в основе первых шифров — это замены и перестановки. Теперь мы знаем порядок дисков.его языка. К этому моменту мы знаем как порядок следования дисков. связанные со статистикой языка. Определение начальных угловых полооюений. — это выявить комбинацию штекеров. и тому. их начальные угловые положения и позиции колец. . Дополнительная литература Лучшая книга по истории шифров написана Каном. мы уже обна­ ружили приблизительные начальные положения остальных дисков. пока не сможем прочитать шифротекст.Шифры. Кроме того. либо из-за конструкционных недочетов. лежап1. Краткое содержание главы .ие действия. применявшиеся на ранней стадии развития криптологии. адаптированной в ин­ тересах операторов. так и начальные положе­ ния первого кольца и первого ротора. либо в связи с неграмотной политикой использования. .его языка. Мы подбираем штекеры по­ очередно до тех пор. оказались менее стойкими. Роторные машины и «Энигма» лее вероятное приближение к начальным позициям коммутационных дисков и нащупаем положение первого кольца.Шифры работали с блоками знаков посредством снабженного ключом алгоритма или просто прибавляли очередное число из потока ключей к каждой букве открытого текста. кто хочет получить быстрое представле­ ние о истории криптографии. повторяя предыдуш. Похожая процедура прово­ дится и А^ля третьего диска. предназначенные устранить недостатки. Это потребует операций. Это можно сделать с помош. Монография Черчхауса тоже содержит краткий обзор множества .S. 4. что остается.ью индекса совпадения 1С (что требует очень большого шифротекста) или статистического теста.Определение позиций штекеров.

2. (г) «Энигма».ий открытый текст написан по-английски).Глава 3. Покажите. Особенно хорошо в ней рассказано о маши­ не «Энигма» и истории ее взлома.1. чем похожи и в чем разнятся перестановки и за­ мены как компоненты шифров. 3. Kahn. Scribner. реализуюп1. S. D.2.6. Исторические шифры исторических шифров.1.1.3.1. The Codebreakers: The Comprehensive History of Secret Com­ munication from Ancient Times to the Internet.4. Лабораторные работы 3. The Codebook: The Evolution of Secrecy from Mary Queen of Scots to Quantum Cryptography. the Enigma and the Internet. PELCG BTENC ULVFN AVAGR ERFGV ATFHO WRPG.1. по­ лученный с помощью шифра сдвига (предполагая. Doubleday. (в) замены. Codes and Ciphers. 2001. 2000. Для компьютерной реализации последнего Вам стоит чуть больше узнать о шифре «Энигма» из интернета или книги Черчхауса. Напишите программы. для следуюш. Какие из биграмм и триграмм английского языка наиболее употребительны? 3. 3. Churchhouse.5. 1996. Cambridge University Press.1.2.1. Приведенный ниже шифротекст был получен с помощью ши­ фра сдвига.2. Объясните. что соответствуюш. 3. Julius Caesar.их шифров: (а) сдвига. Расскажите.1. .ие шифрование и расши­ фрование (при условии известного ключа). R. Контрольные вопросы 3. (б) Виженера. Расшифруйте его. Назовите три наиболее популярные буквы английского алфа­ вита. 3. которая дешифрует шифротекст. Создайте программу. 3. как шифр замены связан с машиной «Энигма». Singh. какое отношение имеет шифр Виженера к шифру сдвига.

имеющую в качестве входных дан­ ных шифротекст.1. . Попытайтесь его расшифровать. 3. Сделайте аналогичную программу р^ля «Энигмы».ля формиро­ вания потока ключей вместо повторяющегося лозунга берет­ ся часть текста из книги.2. что шифры Цезаря.4*. полученный при помощи шифра Виженера. Роторные машины и «Энигма» 3. Считайте. и выдающую набор символов. Покажите.3. 3. Криптоаналитик при атаке с выбором открытого текста пыта­ ется подсунуть противнику для шифрования открытый текст по своему выбору. начинающегося с заранее оговорен­ ного места. Следующее сообщение зашифровано с помощью книжного шифра: BAACG WLTIV SLSKH ZFSVI RESSM HPACW LPCHB BUIK.3. Разработайте программу.2. Насколько большой шифротекст Вы должны обработать Ва­ шими программами для получения достаточно разумного ре­ зультата? Упражнения 3.2.2. достаточную ^\ля взлома.3.3. 3. Для каждого из этих шифров определите наименьшую длину открытого текста. что используется английский язык.5. Виженера и замены могут быть мгновенно взломаны таким способом. наиболее близкий к открытому тексту. Книэюный шифр похож на шифр Виженера.7. но р.

Ввести понятие энтропии. выходя за который алгоритмы взлома становятся слишком дорогостояп1. атакуюп]. Введение Теория информации — один из краеугольных камней вычислитель­ ной техники. если наилучший из возможных алгоритмов. На первом этапе нам потребуется обш. Принимая во внимание мощность современных компью­ теров. Мы не будем предполагать.иш. больше 2^^.ГЛАВА 4 ТЕОРЕТИКОИНФОРМАЦИОННАЯ СТОЙКОСТЬ Ц е л и главы • • • • Ввести концепцию абсолютной стойкости. что никакую реальную систему нельзя .енностью (или практи­ ческой стойкостью). если мини­ мальное число N операций. что читатель знаком с этой тео­ рией. Таким образом. Объяснить понятия ложного ключа. Говоря неформально.ему данную криптосистему.1. что 280 операции.ее представление о разни­ це между теоретико-информационной стойкостью (или теоретиче­ ской стойкостью) и вычислительной заш. 4. Обсудить стойкость одноразового шифр-блокнота.ена. взламываюш. В данной главе изучается ее отношение к криптогра­ фии. криптографическая си­ стема называется вычислительно защищенной (или вычислитель­ но стойкой). что она вычисли­ тельно заш. требует неоправданно высоких затрат вычислительных ресурсов. то говорят. можно считать. • Использовать эти понятия для объяснения слабой криптостойкости ранних алгоритмов шифрования.ими.их ее. это тот предел. необходимых для взло­ ма шифра. Заметим. необходимых алгоритму. фиктивных ключей и рас­ стояния единственности.иш.

Если размер ключа мал. вычислительно. что нельзя считать корректным доказательством. либо в результате крупного алгорит­ мического прорыва. С другой стороны. Сле­ довательно. абсолютно стойкую схему взло­ мать невозможно. . чьи вычисли­ тельные ресурсы ограничены.Важно следить за последними алгоритмическими достижени­ ями и развитием компьютерной техники. но ограниченными ресурсами. Введение обоснованно считать вычислительно защищенной. или доказуемо. . независимо от алгоритмических достижений и совер­ шенства вычислительной техники. что вскрытие конкретной криптосистемы рав­ носильно разложению данного большого целого числа на множите­ ли. Однако при этом стойкость системы обосновывается сведением к трудной задачи. поскольку мы не сможем доказать оптимальность найденного метода взлома. то у противника вполне может хватить ресурсов для взлома криптосистемы.1. Даже в том случае. чтобы свести взлом системы к реше­ нию хорошо изученных трудных проблем. активно эксплуатирующихся в на­ стоящее время.Мы должны быть готовы к тому. мы можем по­ пытаться показать. он все еще не сможет взломать систему. Другой практический подход. При изучении вычислительно запщщенных схем необходимо иметь четкие представления о некоторых проблемах: . Большинство криптосистем.4. если ее не­ льзя взломать даже с помощью бесконечного числа операций.Нужно позаботиться о длине ключа. В литературе можно встретить и другой тер- . когда противник обладает большими. Такие системы часто называют доказуемо стойкими. стойкая криптоси­ стема является стойкой по отношению к противнику. По существу. система называется абсолютно стойкой или совершенной. если мы не ограничиваем вычислительной мощности противника. Поэто­ му на практике мы утверждаем ее защищенность в вычислительном отношении в том случае.. что наша криптосистема в какой-то момент будет взломана либо из-за усовершенствова­ ния аппаратных средств. если лучший из известных алгоритмов для ее взлома требует недопустимо большого количества вычислений. связанный с вычислительной за­ щищенностью. Поэтому в каждой из по­ следующих глав мы будем уделять много внимания вычислительной стойкости изучаемых криптосистем. Иначе говоря. Например. состоит в том. криптосистема совершенна. вычислительно защищены.

поскольку их можно полностью раскрыть.шифр замены. Вот эту систему можно назвать совершенной. а именно.). К вычислительно стойким системам можно отнести криптоси­ стемы . . т. е. закрепленный за абсолютной стойкостью.иш. простран­ ство сообщений. Символом С{к) . если наше пространство сообщений имеет вид Р = = {а. имея довольно скромные компьютерные мош. Вероятность и шифры Прежде чем дать формальное определение абсолютной стойкости.енными.шифр сдвига. 4. Например. 6. Мы уже видели. в котором вероятности обозначаются как р{Р = т ) .Глава 4' Теоретико-информационная стойкость мин. т. .ЭльГамаля. Каждое из этих множеств можно понимать как пространство собы­ тий. . теоретикоинформационная стойкость.DES и Rijndael.RSA.ие системы не являются вычисли­ тельно заш. Однако упомяну­ тые системы не являются абсолютно стойкими. пользователь не меняет ключ шифра в зависимости от содержа­ ния открытого текста. Зафиксируем следующие обозначения: Р — множество возможных открытых текстов. Чуть позже в этой главе мы познакомимся с одноразовым шифрблокнотом. если она используется корректно. с} и сообщение а встречается с вероятностью 1/4. е. нам необходимо в деталях осознать роль вероятности в понимании простых шифров. С — множество шифротекстов.ности: .2. но только в том случае. подлежащего шифрованию. . что следуюш. то мы пишем р{Р = а) = | . К — совокупность возможных ключей.шифр Виженера. что любые события Р G Р и JC G К независимы. р{К = А. С ними мы познакомимся в следующих разделах. Будем считать. р{С = с).

4}. Имеет место соотношение р{С = с)= J2 PiK = k)-p{P = Dkic)).2625. 2.4^2. d} с распределением вероятностей р{Р = а) = 1 р{Р = Ь) = р ( Р = с) = 20. Ь. Пусть.: сеС{к) где Dk — расшифровывающая функция.2625. где Ek — шифрующая функция.2125. р{С = 2) = р{К = ki)p{P = с) + р{К = к2)р{Р = d)+ + р{К = кз)р{Р = d) = 0. 10' Предположим.i 3 4 2 1 к2 3 1 4 2 кг 4 3 1 2 Используя формулу (4. р{К = кг) = 1. Отсюда видно.1) А. р{Р = d) = ^. Вероятность и шифры 99 обозначим множество всех криптограмм. 3. ^. С = {1. наконец. (4. р(С = 3) = р{К = ki)p{P = а) +р{К = к2)р{Р = а)+ + р{К = кг)р{Р = Ь) = 0. р(С = 4) = р{К = ki)p{P = b) + р{К = к2)р{Р = с)+ + р{К = кг)р{Р = а) = 0. что пространство ключей имеет вид IK = {fci. что шифротексты распределены почти однородно. вычислим распределение вероятностей на множестве С. к2ч к^}^ а вероятности их выбора равны p{K = ki) = \ . В качестве базисного примера этого параграфа рассмотрим про­ странство сообщений Р = {а. а функция шифрования предста­ влена таблицей: a b e d A. р{С = 1) = р{К = ki)p{P = d) +р{К = к2)р{Р = Ь)+ + р{К = кз)р(Р = с) = 0.2625. . р{К = к2) = \ .1). полученных из простран­ ства сообщений шифрованием посредством ключа к: C{k) = {Ek{x)\xeF}. с.

ение для данной криптограммы.25. требуемые условные вероятности способен опреде­ лить любой. р{р = с\С = 1) = 0. вычислим для нашего примера следуюш.25. вычисляется по формуле: р(Р = т\С = с) = р{Р = т)р{С = с\Р = т) ^^^--^ . р{С = 3\Р = Ь)=0. р{Р = d\C = 1) = 0. р{С . р{С = 1\Р = а) = О.Теоретико-информационная стойкость Для пары с Е С и т Е F можно вычислить условную вероятность р(^С = с\Р = ш).143. . что открытый текст — это т . р(С = 3|Р = d)=0. р{Р = Ь\С = 1) = 0. Вооружившись этой полезной формулой. Таким образом. Однако при взломе шифра нам нужна условная вероятность дру­ гого сорта. как только Вы увидите криптограмму. Опираясь на эти условные ве­ роятности. т.Глава 4. вероятность выбора шифротекста с. что т — действитель­ но исходное сообп]. р{С = 2\Р = с)= 0.25. Вероятность того.5.571. р(С = 1|Р = d) = 0.25. для которых значение dk на шифрограмме с совпадает с данным открытым текстом т.75. р{С = 2\Р = 6) = О. р{С = 2|Р = d) = 0.286. То есть мы хотим знать вероятность открытого текста при данном шифротексте.75.25. р{С = 3|Р = а) = 0.е. р{С = 4|Р = d) = 0.4|Р = а) = 0.25. кому известна функция шифрования и распределение вероятностей на множествах К и Р. если из­ вестно. р{С = 1\Р = с)= 0. р(С = 1|Р = Ь) = 0. р{С = А\Р = Ь) = 0. Вычи­ слим условные вероятности для базисного примера. р(С = 4|Р = с) = 0. можно сделать определенные выводы относительно от­ крытого текста. Справедлива формула р{С = с\Р = т)= Y1 Р(^ = ^)- (4-2) к: m=dk{c) Здесь сумма берется по всем ключам /с. р{С = 3\Р = с) = О.5. р{С = 2|Р = а) = О.ие вероятности: р{р = а\С = 1) = О.

Если у нас оказалась последняя шифрограмма. если равенство стойко­ р{Р = т\С = с)= р{Р = т) имеет место р^ля всех открытых текстов m G Р и всех криптограмм CGC. . более вероятно. Иначе говоря. что соответствующий открытый текст — Ь. Таким образом. р{Р = d\C = 3) = О.294. чем с или d. предположение о том. Вновь под- . то отправлен­ ное сообщение отлично от d. Криптосистема обладает абсолютной стью. р{Р = с\С = 4) = 0.857. Мы стремимся к тому. чтобы по криптограмме невозможно было получить какую-либо информацию об открытом тексте. мы заключаем. р{Р = с\С = 2)= 0. Вероятность и шифры р{Р = а\С = 2)= О.1. р{Р = d\C = 2) = 0. шифротекст в которой не дает никакой инфор­ мации о соответствующем открытом тексте. можно сделать следующие вы­ воды: . то точно знаем. что отправлен­ ное сообщение не может быть ни с и ни d. Однако у нас очень мало основа­ ний предпочесть какое-либо из оставшихся. но имеет большие шансы оказаться текстом а. Криптосистема. р{Р = с\С . наличие шифрограммы никак не сказывается на вероятности того. шифротекст в нашем примере дает немало инфор­ мации относительно оригинального сообщения.143. что исходное со­ общение — не а и не Ь. Но именно этого мы и хотим избежать.Если мы получили шифротекст 1.При получении шифротекста 2 мы уверены.4^2. . что открытый текст совпадает с т. что исходное сообщение не может быть а.286. р{Р = а\С = 3) = О.352. р{Р = Ь\С = 4) = 0.0. Определение 4. р{Р = d\C = 4) .352. называется абсолютно стойкой^ или совершенной. Анализируя полученные результаты. р{Р = а\С = 4) = 0.2) = О. Более того. а скорее всего — d.Увидев третью криптограмму.3) = О.3) = 0. . 714 р{Р = Ь\С . р{Р = Ь\С .

конечно.(с).2. что р{К = к) > О и 7п = dk{c) (см.Теоретико-информационная стойкость черкнем: абсолютная стойкость шифра означает. Криптосистема является абсолютно стойкой.с) > 0. поскольку шифруюш. Для абсолютно стойкой криптосистемы имеет место неравенство: где #1К — число возможных ключей. естественно.ая функция должна быть инъективной. то можно подправить определение множества С. Тогда любое сообщение т и шифротекст с абсолютно стойкой криптосистемы удовлетворяют соотношению р{С = с\Р = т)= р{С . . Доказательство. выбросив из него лиш­ ние элементы.При этом. Если это не так.. Доказательство. Лемма 4. перев. (4. • ^Если. что шифротекст не несет в себе сведений об открытом тексте^. Vc € С р{С = с) > 0.3. Прежде всего заметим.2)). что в любой криптоси­ стеме выполнено равенство: # с ^ #р. что при шифровании может получиться любой шифротекст с G С. что д. — Прим. Предположим. если р^ля всех т и с . откуда # К ^ # С .ля любой пары ттг и с найдется такой ключ А. Следовательно. зафикси­ ровав открытый текст т = т о . Второй способ опре­ деления абсолютной стойкости дает следуюш. Утверждение леммы немедленно следует из опре­ деления абсолютной стойкости и формулы р{Р = т\С = с) = р{Р = 7п)р{С = с\Р = т) р{С = с) Первое свойство абсолютно стойких криптосистем сформулиро­ вано в лемме 4. т. что (1^(с){^) = ^ о . Лемма 4. # С — количество возможных шифрограмм и # Р — размер пространства сообщений.102 Глава 4. не знать ключа.ая лемма. Из него следует. мы можем каждой шифрограмме с поставить в соответствие такой ключ А.е.3. разным шифротекстам будут отвечать разные ключи.

Так что для всех ?тг G Р и с G С существует ровно один ключ А.для каждой пары m G Р и с G С существует единственный ключ fc. G К. как мы уже убедились при доказатель­ стве предыдущей леммы. при котором dk{c) = т. . Вероятность и шифры 103 Это подводит нас к основной теореме Шеннона. Доказательство. что криптосистема наделена аб­ солютной стойкостью.4-2. такой что ek{m) = с. е. для каждой пары m G Р и с Е С найдется такой ключ А. . Опираясь на абсолютную стойкость криптосистемы. получаем #{efc(m)|A. . . Фиксируем с G С и пронуме­ руем ключи fci. в. кп так. т. 1 ^ г ^ п}. что Ck^ (m) = ek2 (^) = с. Ввиду симметрично­ сти криптосистемы это равенство влечет соотношение: ek{m) = с. что применение всех ключей равновероятно. Тогда. в которой # Р = # С = #1К. G К со свойством ek{m) = с. р{К = к) = J g УкеК. В частности. на соот­ ношение р{Р = ггц\С = с) = р{Р получаем р{Р = rrii) = р{Р = т{\С = с) = = ГПг). тройка ( т .). что ^kii^^i) = С при 1 ^ г ^ П. т. dk{')) обозначает симметричную криптосистему. которая дает критерий абсолютной стойкости шифра. к) удовлетворяет соотношению Р{С = с\Р = т) = Р{К = к).(.4.) Пусть набор (Р.использование всех ключей равновероятно. (Шеннон. . Отсюда. когда . К. т. Т. С.GK} = # K . .е. благодаря предположению # С = #1К. с. р{К = к) = щ Ук€К. Предположим. Теорема 4. е. Покажем. не существует таких двух ключей ki ик2. Она обладает абсолютной стойкостью тогда и только тогда. Пусть п = #1К и Р = {шг. е.

покажем справедливость равенства р{Р = т\С = с) = р{Р = т ) . Если с = ek{in). А^ля которого ekipi) = с. предположив. Докажем вторую часть критерия. . для всех 1 ^ г ^ п р{С = с) = р{К = кг). -р{Р = т). что . Из равновероятности применения ключей получаем р{С = с)= Y^PiK = к)р{Р = dk{c)) = к Кроме того. а именно. G К. ввиду фиксированности с. что все ключи используются с одинаковой вероятностью р{К = к) = р{С = с) = —rip для всех А. Теперь из теоремы Байеса вытекает р{Р = т\С = с) = р{Р = т)р{С = с\Р = т) р{С = с) j_ Теорема доказана. . р{С = с) = 1/#К. т Значит.# К = # С = #Р.использование ключей равновероятно. то р{С = с\Р = т) = = р{К = к) = 1/#К. поскольку для каждой пары т и с существует един­ ственный ключ fc. переводящий ттг в с.Теоретико-информационная стойкость ^ р{С = С\Р = тг)р{Р = ТПг) ^ р{С = с) ^ р{К = кг)р{Р = ГЩ) р{С = с) Следовательно. имеем J^piP = dk{c)) = ^р{Р fe = m) = 1. вытекает.04 Глава 4. . Из этого равенства.для любой пары m G Р и с G С существует единственный ключ fc.

Модифицированный шифр сдвига Напомним.ения из п букв. Шифр Вернама Главная операция описанного в предыдуш. основанный на этой операции. Обратите внимание.2.1. Тогда количество всех ключей. В первую очередь нас интересует сложение по модулю 2.2. Вероятность и шифры Закончим параграф обсуждением двух систем с абсолютной стой­ костью. можно заключить. что с точки зрения вычислительной техники является слишком дорогостояш. Чтобы проверить это. выбирая свой ключ А^ля каждой буквы сообщения. что шифром сдвига считается тот шифр. в то время как двоичная арифметика сравнительно легка. рас­ смотрим шифрование сообп1.ее ИЛИ». К тому же каждый ключ будет применяться с одной и той же ве­ роятностью р{К = к) = 2 ^ . Модифицируем его. скажем fuiat. что описанная криптосистема обладает абсолютной стойкостью.им. При использовании в шифре сдвига разных равномерно распре­ деленных случайных ключей для каждой буквы текста получает­ ся абсолютно стойкая криптосистема. криптограмм и открытых текстов равно # К = # С = # Р = 26^. Например. Затем прибавим по модулю 26 ключевое слово к открытому тексту и по­ лучим шифрограмму MYTLH. 4.4-2. 4. который теперь называют шифром Вернама или од­ норазовым шифр-блокнотом. обозначаемой обычно «XOR»: © 0 1 0 0 1 1 1 0 в 1917 г. Гильберт Вернам запатентовал шифр. при котором шифрование заключается в «прибавлении» фиксированной буквы к каждому знаку открытого текста. что буква «1» открытого текста переходит в разные символы шифровки. В результате. благодаря теореме Шеннона. которое равносиль­ но логической операции «исключаюп]. а для любой пары тис выделен единственный ключ к = с — т (mod26) со свойством ek{m) = с.2. для шифрования сло­ ва «hello» мы возьмем 5 случайных ключей.ем подпараграфе модифи­ цированного шифра сдвига — сложение по модулю 26. Для пересылки строки битов необхо- .

ля шифрования данных. Ева перехватила два сообщения. требующая ключа той же длины. к которой мы будем возвращаться снова и снова.генерирует сообщение т и подсовывает его Алисе для шифро­ вания. сложив шифрограммы: ci © С2 = (mi © /и) © {7П2 ®к) = mi® m2. создать «защиту от дураков».Глава 4. связанные с распределением ключей.Теоретико-информационная стойкость ДИМ ключ. Любой ключ разрешается использовать для шифрования толь­ ко один раз. например для осу­ ществления сделок через Интернет. состоит в следующем.3. Несмотря на проблемы. Энтропия Криптосистема. од­ норазовый шифр-блокнот применялся как в минувших войнах. Предположим.е. возникающая при двойном употреблении ключа. С2 = m2 © к. Но при разработке криптосистемы мы обя­ заны учесть любые ситуации. в том числе и глупого пользователя. Та­ ким образом.вычисляет к = с®т. что Алиса всегда пользуется одним ключом р. что и сообще­ ние. Ева пытается определить этот ключ и пред­ принимает следующую атаку: . Вы можете возразить. Чтобы убедиться в неизбежности неприятностей при шифровании нескольких тек­ стов одним ключом. что и сообщение. . что Алиса не настолько глупа. чтобы ши­ фровать сообщение Евы. что . состоящий из того же количества двоичных знаков. Тогда она может получить частичную информацию о сообщениях. т. Допустим. крайне неудобна при интенсивной эксплуатации. Каждый бит посылаемой строки складывается по моду­ лю 2 с соответствующим знаком 1слюча и получается криптограмма. Происходит это потому. 4.получает с = т®к^ . зашифрованные одним ключом ci = mi © fc. Другая проблема. так и в дипломатической почте. рассмотрим атаку с выбором открытого тек­ ста. распределение ключей здесь — основная проблема. отсюда и название: одноразовый шифр-блокнот. вместе с условием однократного использования каждого ключа.

Возникающую проблему называют проблемой распределения ключей. На пер­ вый взгляд. такое отождествление довольно странно. . В применении к криптографии основной принцип можно пояснить так. В луч­ шем случае они будут вычислительно защищены. «Энтропия»— синоним слова «неопределенность». В частности. При этом: . содержащийся в Вашем предположе­ нии. что означает данная криптограмма.один ключ используется несколько раз. В целях преодоления указанной трудности абсолютно стойкие криптографические алгоритмы заменяются системами. и т. по существу. одна из которых — изобретение системы. перев. то его уточнение дает Вам информацию. мы будем эксплуатировать идею Шеннона об энтропии^ как о способе измерения количества инфор­ мации. . Предположим. Основные резуль­ таты здесь вновь принадлежат Шеннону и относятся к концу 40-ых годов прошлого века. находящейся в шифротексте. удовлетворяющей следующим требованиям: .Вы могли бы что-то предположить относительно соответству­ ющего открытого текста. — Прим.небольшим ключом шифруются длинные сообщения. то же самое. но специали­ сты приводят в его пользу следующий аргумент: если Вы сомневае­ тесь в значении чего-либо. Энтропия передача секретного ключа в рамках одной криптосистемы от од­ ного пользователя к другому становится неразрешимой задачей. вычислительно заш. что Вы хотите извлечь информацию из шифротекста.енными. Основной прин­ цип теории информации состоит в таком наблюдении: информа­ ция.иш. ка­ сающиеся вычислительно стойких криптосистем. тот .следуюш.4'S. Нам потребуются некоторые разделы теории информации. Такие схемы не будут совершенными ввиду теоремы Шеннона. хотите знать. Действительно. . ^В русскоязычных книгах по криптографии вместо термина «энтропия» упо­ требляется термин «мера неопределенности».Уровень неизвестности. будем наде­ яться. . другими словами. соответствует количеству информации. В этом состоят задачи совре­ менных криптографов.его. что и неопределенность.Вам неясно. скрытая передача необходимого ключа требует оче­ редного ключа. д. каково его истинное значе­ ние.

количество информа­ ции. которое там присутствует. Определение 4. то мой ответ Вам ничего не дает. принимающая значения xi {1 ^ г ^ п) с вероятностями р{Х = Xi) = pi. В терминах энтропии это можно записать как Н{Х) = 1. ассоциированной со случайной перемен­ ной X. В предыдущем случае сообщение состояло либо из двух.о • log2 0 . т. Поскольку ответ известен заранее. Пусть X — случайная величина. что X — ответ на какой-то вопрос. Ее энтро­ пией^ называется величина п г=1 При этом считается. Предположим.1 • log2 1 . то своим ответом даю Вам один бит информации. Стало быть. . Н{Х) — 0. равновероятны. р2 = О и. перев. Априорной мерой неопределенности. Заметим. что и wem. X — мой ответ да или нет на некий вопрос. что я всегда тупо повто­ ряю (9а. Вернемся к нашему примеру с вопросами и покажем. Если Вам заранее неизвестна моя реакция на вопрос. Во второй ситуации. поэтому нет и энтропии. либо из трех букв ((9а. соответ­ ствует формальному определению. прояс­ няющему основные идеи этого понятия. е. содержащейся в X. он не несет в себе информации. Отложив формальное определение этой величины на будущее. нет или да. то pi = 1.0 . т. т. что pi log2 Pi = О как только pi = 0. обозначается через Н{Х). а я говорю да с той же вероятностью. Если известно. когда мои ответы да или нет. что я на любой вопрос всегда говорю (9а. что инту­ итивное понятие об энтропии. Н{Х) = . е. что энтропия не зависит от длины фактического со­ общения. обратимся к простому примеру. Если Вам известно. wem). что мой ответ не дает Вам ни малейшей информации. а количество информации не превыша­ ло одного бита. равно О. согласно определению. Теперь дадим строгое определение. Напомним. получаем я(х) =-!5|i .5. pi = Р2 = 1/2.е.!2|i = 1. — Прим. Это означает.Глава 4' Теоретико-информационнал стойкость Количество энтропии.

3.15. например. однако. говоря наивно.Если Pi = ^ для всех г. 2 5 . там были пространства исходов Р = { а . поскольку нижняя ее граница нам известна: Н{Х) ^ 0. Позже мы выясним. . при желании посылаемые данные можно было бы сжать до 1/8 их первоначального размера. «Y» вместо да и «N» вместо wem.25.2125. Обратимся к нашей «детской» криптосистеме из предыдущего параграфа. а при j "^ i имеем pj = 0. А:2. только один бит информации. а какая — на открытый текст. Н{С) ^ 1.9944. 2. Энтропия Здесь мой ответ сообщает Вам один бит информации. Из определения энтропии следуют несколько ее элементарных свойств. .) Предположим. что п г=1 .Энтропия всегда неотрицательна: Н{Х) ^ 0. с.i.2625. d } .4'S. р{С = 1) = р{С = 2) = р{С = 3) = 0. Посылая ответы да или нет с помощью одного символа в коде ASCII.6. какая доля из этой «утечки» при­ ходится на ключ. Соответствующие энтропии имеют значения Н{Р) « 1. Напомним. Ь. сообщение длины п. K={A. р{С = 4) = 0. ^з} и С = {1. С другой точки зрения энтропия измеряет степень сжатия ин­ формации.5. фактически.9527. когда jpi = 1 для некоторого г. . (Неравенство Иенсена. поскольку ровно столько неопределенности содержится в отдельной шифрограмме. (4. Н{К) « 1.3) Следовательно. то Н{Х) = log2 п.5 бита информации о ключе и соответствующем открытом тексте. р{К = к2) = 0.5. Таким образом. Для этого нам потребуется следующий частный случай неравенства Иенсена Теорема 4. р ( Р = с) = 0. Следовательно. 4} с распределением вероятностей р(р = а) = 0 . Хотелось бы получить какую-нибудь оценку сверху для энтропии случайной величины. сжатое с коэффициентом £ от исходно­ го размера.Энтропия Н{Х) равна нулю тогда и только тогда. р{К = ki) = р(К = ks) = 0. 3. я передаю 8 битов данных. шифротекст в нашем примере «дает утечку» в 1. p{P = b)=p{P = d)=0. содержит е • п битов информации.

Теорема 4.j. докажем следуюы]ую теорему.jlog.I 10 Глава 4.ЛЯ двух случайных величин в теории вероятностей опре­ деляется совместное распределение: Tij = р{Х = XiHY = yi) при 1 ^ г ^ п . Например. 1 ^ ^ ^ 7 т г . е. Энтропия случайной величины X.7. . Нижняя граница неравенства достигается на случайной величине. Мы уже обсудили все.^'£n. По нему можно вычислить их совместную энтропию п H{X. принимающей одно из своих значений с вероятностью 1.6.. принимающей все свои значения равновероятно.Теоретико-информационная стойкость где а^ > О при 1 ^ г ^ п. принимающей п различных значений. Тогда для положительных чисел ж^ > О имеет место неравенство п / ^ \ ^ аг log2 Xi ^ log2 f ^ аг^г 1 .. так что сконцентрируем свои усилия на верхней. а верхняя — на равномерно распределенной. Доказательство. когда xi = Х2 = " ' = Хп- Опираясь на этот факт. когда все р^ = ^.ri. • Основы теории энтропии близки к основам теории вероятностей. Пусть X — случайная величина с распределением вероятностей pi.Y) = т -Y. т. удовлетворяет неравенству О ^ Н{Х) ^ log2 п. знак «^» меняется на «=» тогда и только тогда. 1=1 j=l . е. В си­ лу неравенства Иенсена. ^ Рп^ причем все pi > 0. Тогда п ^ ( ^ ) = " ^Pi п 1^ё2Рг = ^Pi ^ 1^ё2 ij2\P''~)) ^ log2 — ^ = ^^S2 ^• Неравенство в этих преобразованиях следует из теоремы 4. А. т. г=1 \г=1 / равенство в котором достигается тогда и только тогда. касающееся нижней гра­ ницы энтропии. случайная величина X распределена равномерно.

определим условную энтропию случайной величины X при данной величине ¥ как я ( х | У ) = -Y.Y) = H{Y) + HiX\Y).J2piX = x\Y = у) log2p(X = x\Y = у). нам известно. что р{Х = х\¥ = у) показывает вероятность равенства X = х при условии У = у. описанных в конце главы. Напомним.Е Е Р ( ^ = У)Р^^ = ^1^ = y)iog2P(^ = АУ = у)X у Это та неопределенность в отношении величины X. которая оста­ ется после раскрытия значения У. ^Апостериорная мера неопределенности.4. Энтропия Совместную энтропию Н{Х^ Y) можно понимать как количество ин­ формации.3. как совместное распределение в теории вероятно­ стей ассоциировано с условной вероятностью. которое получается из наблюдения пары значений (х^у) этих случайных величин. В этом случае энтропия случайной величины X определяется формулой: Н{Х\у) = . Пред­ положим. где равенство достигается только в случае независимых случайных величин X и ¥. Доказательство этих формул мы также оставляем читателю в качестве упражнения. X Используя это. Оста­ вим его доказательство читателю в качестве упражнения. — Прим. Имеет место неравенство превращающееся в равенство только при независимых X и¥. что значение случайной величины ¥ рав­ но у. понятие совместной энтропии связано с понятием энтропии условной^. Точно так же. перев. Последнее — важ­ нейший инструмент исследования неидеальных шифров.p{y = y)H{x\y) = у = . Пусть X и¥ — случайные величины. . Условная и совместная энтропии связаны соотношением: HiX. откуда получается оценка сверту H{X\Y) ^ Н{Х).

к. поскольку она относит­ ся к условной энтропии Н{К\С)у называемой неопределенностью ключа. Y) = H{Y) + (т. Совмещая два предыдупщх равенства. очевидно. Последняя формула имеет особое значение. С) (т. к. описанных в сле­ дующих главах. Н{К. К) = (т. Н{К. Я ( Х .Н{С). имеют место следующие тождества: Н{К.Н{Р\К^ С) = 0: при известных шифротексте и ключе мы пол­ ностью знаем соответствующий открытый текст. Величина Н{К\С) — это то количество неопределенности относительно истинного ключа. к.К) + Н{С\Р. Это высказывание справедли­ во для всех шифров. H{X\Y)) H{X\Y)) Следовательно. и остает­ ся в силе для симметричных криптосистем.3)). С) = = Н{К. К) = = Н{Р. К) = 0) = Н{К) -h Н{Р) (т. которое остается после прочтения шифротекста.С)=^ = Н{Р. .С) = = Н{К. касающихся энтропии величин Р^ К т С. Н{Р\К.Н{С\Р^К) = 0: если мы знаем открытый текст и ключ. к. находим Н{К\С) = Н{К.С)=Н{К)-^Н{Р). Я ( Х . 109 мы уже вычислили энтропию величин Р^ К и С для «игрушечной» криптосистемы (соотношение (4. Напомним. Я ( С | Р . (4. с которыми мы уже знакомы. при условии правильного их применения. Подставив эти . С) . . то можем получить шифротекст. С) = 0). неопределенность в знании ключа при известном ши­ фротексте равна сумме неопределенностей относительно открытого текста и ключа за вычетом неопределенности в отношении шифро­ текста. Однако в современных схемах шифрования с открытым ключом.4) Иначе говоря. поскольку в противном случае расшифрова­ ние будет работать неправильно. Этот факт. На стр.Н{С) = Н{К) + Н{Р) .Р.Р. к. что наша цель — определение ключа по данной шифрограмме. У) = H{Y) + (т.Глава 4' Теоретико-информационная стойкость Возвращаясь к криптографии. С) + Н{Р\К. Кроме того. указанное свойство нарушается. верен. К и Р независимы). выпишем несколько очевидных утверждений.

ие двум возможным ключам: «ft и «w». Как-никак. То есть отдельный шифротекст сообп]. Для возможных. Такой язык обычно называют естественным^ дабы отличать его от строк битов. соответствуюш. Мы подробно расскажем об этом термине несколько позже. а знание одной шифровки уменьшает неопре­ деленность до 1. но отличных от истинного ключей вводится термин лоэюный ключ.4). почему ее нельзя считать стой­ кой.9527 + 1. т. поскольку он исключает неко­ торое подмножество неподходящих ключей. е. после просмотра отдельного шифротекста нам оста­ ется найти около полутора бит информации об истинном ключе шифровки. используемых в компьютерных сетях. как в шифре замены. что язык открытого тек­ ста — английский. шифр.9944 . 70. и показывает. Но довольно часто бывают исключе­ ния. 4 5 8 3 . Один из них истинный. Отметим.ает о ключе 1. энтропия случайной последовательности ан­ глийских букв равна log2 26 ^ 4. Ложные ключи и расстояние единственности Отдельный шифротекст выдает ненулевое количество информации об истинном ключе криптосистемы.4. Тогда есть только два разумных кандидата на открытый текст: river и arena. но на сей раз опираясь на понятие расстояния единственно­ сти. как криптосистема допускает утечку информации. а в других — не­ кий его образ.4-4' Лоэюные ключи и расстояние единственности числа в формулу (4.4593 бита. 5 ^ 1 .9944 — 1. что такое открытый текст. 4. получим Н{К\С) ^ 1.535 бита информации. В наших обсуждениях мы рассматриваем ситуацию. .4593 ^ 0. а второй — ложный. Во многих компьютерных сетях открытый текст можно рассматривать как случайную строку битов. в котором один ключ используется для замены любой буквы. вначале у нас есть 1. Обоснуем в очередной раз слабую криптостойкость шифра за­ мены. Этот пример объясняет. Рассмотрим (немодифицированный) шифр сдвига. Среди всех оставшихся лишь один правилен.9944 бита неопределенности относительно ключа. когда исходный открытый текст взят из английского языка. В одних случаях шифруется обычный текст.1 . Таким образом. а сейчас более четко представим себе. Возьмем шифрограмму WNAJW и предположим. Сначала найдем энтропию (количество информации) HL^ кото­ рую несет одна буква естественного языка (в нашей ситуации — ан­ глийского).

при его вычислении мы не учитывали наиболее употребительных три­ грамм. т.. . Возникает гипотеза. Обозначив через р{Р = i^P' = j) вероятность появления биграммы «ij».127. И опять нас не может удовлетворить такое ограничение..Р{Р = hP' = j)log^p{P = г. но его мож­ но аппроксимировать. р^ля ее улучшения надо исследовать совместное рас­ пределение трех букв Р^ и подсчитать Н{Р^)/3^ что увеличит ка­ чество оценки. Определение 4. j9(P = е) = 0.Глава 4' Теоретико-информационная стойкость Поэтому справедлива оценка HL ^ 4. учитывая среднестатистическую частоту букв в ан­ глийском тексте. . Эта величина вычислялась неоднократно разными авторами. пусть Р^ — случайная биграмма.Р' = j). найдем Н{Р'') = -Т. . а биграмма «th» наиболее популярна в англий­ ском языке. Энтропия естественного языка L определяется по формуле п—^оо fi Точное значение этого предела найти крайне сложно.1 на стр. но не до конца. 001 (сравните с табл.8. Фактически пользуются экспериментальной . например. принимающая значения букв в английском тексте. р{Р = z) =Q. 70. а не 4. По стандартной формуле получаем HL ^ Н{Р) « 4. Однако и это приближение далеко от истинного значения.14. 72).082. . Итак.12 Отсюда энтропия отдельной буквы оценивается как Яь^—у-^^3. по­ скольку буквы нельзя считать независимыми. что на каждую букву прихо­ дится 4. что р. Значит.ему определению.7. Следовательно. Обыч­ но ее считают равной Я(Р^) « 7. за «q» всегда следует «и». можно утверждать.к.14 бит информации. Так. Случайная величина Р . .ля лучшего приближения к истинному значению энтропии HL СТОИТ изучить распределение биграмм. имеет распреде­ ление р{Р = а) = 0. 3..56. Этот процесс последовательного со­ вершенствования подводит нас к следуюш. как мы предполагали после грубой оценки.

75. его вниманию предлагается следующая известная строчка: «Бу** мг**ю **бо к**ет. On** ир^^ а ^**е ^**ге **5 а ^^г1 ^^ah^d S^^w W^^te.PiC = c) = CGC^ 5^p(C = c ) # K ( c ) ) .4-4' Лодюные ключи и расстояние единственности I 15 оценкой. Тогда #1К(с) — 1 — число ложных ключей для данного с.Оно равно sn= Y^piC = c)i#K{c)-l) = J2P(C = C)#K(C) CGC^ = -Y.5 MB Вернемся к общему шифру и предположим. две из каждых четырех букв^. что с G С^. с помощью которых из шифрограммы с получаются подда­ ющиеся интерпретации тексты. с — шифротекст. log2 26 Таким образом. Формально избыточность языка вычисляется по правилу log2#P Положив HL ~ 1. жении. получим. из которого все хотя там и удалены по том. ^Поскольку наивно предполагать совершенное знание английского у русскоязыч­ ного читателя.l .25. состоящий из п знаков. что естественный язык имеет высокую в чем легко убедиться на следующем предло­ еще можно извлечь заложенный в нем смысл.5.е. теоретически мы можем сжать десятимегабайтный файл с английским текстом до 2. Это свидетельствует о степень избыточности. Определим К{с) как множество ключей. которая в случае английского языка имеет вид 1. .но содержит в себе не более 1.требует 5 битов для представления в компьютере. что избыточность английского языка равна - - '''' =0.0 ^ Я ь ^ 1. — Прим. . Так что каждая буква . т. Среднее число ложных ключей обозначается символом 'Sn.5 битов информации. **хри **ежн** кру**». перев.

имеюш. K. Для абсолютно стойких криптосистем щ = оо. при больших n и # P = # C имеет место оценка: При атаке на шифр нам хотелось бы понизить число ложных ключей до нуля. Я ( С " ^ ) nRb log2 # P ^ n log2 # C ) (T.75-4. это сред­ ний объем шифротекста.) ^F(K)-nlog2#C+ + n ( l .Глава 4' Теоретико-информационная стойкость Для достаточно большого п при условии # Р = # С получаем log2(5„ + 1) = log2 Yl Pi*^ = С)#К(С) ^ ^ y ^ p{C = c) log2 #IK(c) > (неравенство Йенсена) ^ J2 P{C = c)H{K\c) = = Я(7<'|С*) = (no определению) = H{K) + HiP"") . что расстояние единственности приблизительно равно 88.Я(С") = (т.4)) « Н{К) + пНь . # P = # C ) .26! « 4 .HiC") и (формула (4.ей формуле Sn = 0: .7 . 10-26 И используя значение RL = О.4 пп ^ ~ 25. Ясно. По ^ log2#K . начиная с которой число лож­ ных ключей становится равным нулю. Итак. но для других — расстояние единственности может оказаться опасно малым. п > 1) = Н(К) - Н{С'')+ + п(1 — /?i) log2 # Р ^ (по определению i?i..им неограниченные вычислительные ресурсы. Расстоянием единственности шифра назы­ вают такую длину по шифротекста. что с ростом длины шифротекста число ложных ключей уменьшается. K. Rblog^W Для шифра замены имеем # Р = 26. к.i?b) log2 # P = = H{K)- (T. Оценим По. положив в предыдуш. ° 0. получаем. # К . Другими словами. необходимый для точного вскрытия ключа атакующим. 75 для английского языка.

ествуют атаки и другого типа. Их называют активными. при которой атакуюш. то сжатый текст уже не будет обладать избыточностью. когда перед передачей текст в фор­ мате ASCn сжимается. находим расстояние единственности I 41 Теперь рассмотрим ситуацию. Мы только что исследовали возможности так называемой пас­ сивной атаки. Следуя тактике активной атаки. Возникает естественный вопрос: могут ли современные криптоси­ стемы зашифровать текст с нулевой избыточностью? Ответ — нет: даже если современный шифр и сжимает данные. поскольку там любому позволено шифровать все что угодно. Поэтому там следует ставить преграды перед атаками . е. что RL == О. Если при этом пользоваться идеально архивируюш. тогда # Р . для увеличения криптостойкости он добавляет некоторую избыточную информа­ цию к открытому тексту перед шифрованием.Лооюные ключи и расстояние единственности Таким образом. нападаюш.4. состоявшего из / би­ тов. кото­ рый шифрует строку битов с помощью ключа. теоретически нам достаточно шифротекста из 25 букв ^1^ля взлома шифра замены. значение М/ станет очень близким к 0. Первая разновидность активной атаки называется атакой с выбором открытого текста. невозможно препятствовать атаке с выбором от­ крытого текста. напри­ мер. содержаш.4. В криптосистемах с открытым ключом. # К = 2К Вновь считая. 75 (что не совсем верно. что у нас есть современный шифр. если у нас неограниченные вычисли­ тельные возможности. расшифровывается однозначно. е. Суш.им алгоритмом. т. с которыми мы позна­ комимся дальше.= сх). что шифротекст. т. код ASCn).ий свыше 25 букв. поскольку теперь нам нужно какое-нибудь электронное представление языка. В этом случае расстояние единственности будет выглядеть как щ^ I . атаки на шифр.ий генери­ рует открытый текст или шифрограмму по своему выбору и подсо­ вывает свой продукт законным пользователям для шифрования или расшифрования.ий может исследовать только шифротекст и по нему должен восстановить се­ кретный ключ. в зависимости от ситуации. Во всяком случае мы ожидаем. а вторая — с выбором шифротекста. Предположим теперь.2.

Накопленный опыт эксплуатации крипто­ систем с открытым ключом говорит о пользе добавления некоторой избыточной информации в открытый текст перед его шифровани­ ем. Welsh.Глава 4' Теоретико-информационная стойкость с выбором шифротекста. Cryptography: Theory and Practice. в которых знание шифротекста ничего не до­ бавляет к той информации. причем новых для каждо­ го следующего послания. D. но требуют ключей той же длины. Общее введение в теорию информации. 1988. J. . Cambridge University Press. Другой возможный источник информации об этой теории — книга Уэлша.A. Поэтому абсолютно стойкие системы ценны только с теоретической точки зрения и малоприменимы на практике. Нападающий фактически стремится к извлече­ нию информации об открытом тексте по его шифрованному варианту.«Информация» и «неопределенность». . что для взлома наивных шифров не требуется слишком длинного ши­ фротекста.Криптосистемы. которой атакующий обладал до его просмотра. по существу. Дополнительная литература Наше обсуждение теории Шеннона близко следовало книге Стинсона. CRC Press. родствен­ ные понятия. Stinson. Codes and Cryptography. . 1997.C. называются абсолютно стойкими. van der Lubbe. 1995. D. что и само сообщение. Oxford University Press.Избыточность естественного языка приводит к тому. Мы обсудим это в следующих главах.Абсолютно стойкие системы существуют. который можно было бы удовлетворительно расшифро­ вать. . Это сильно затрудняет нападающему задачу по созданию ши­ фротекста. К р а т к о е содерлсание главы . включая ее приложения к теории шифрования. Количество неопределенности в случайной величи­ не измеряется ее энтропией. изложено в книге ван дер Люббе.Соотношение Н{К\С) = Н{К) + Н{Р) — Н{С) позволяет нам оценить величину неопределенности ключа после прочтения шифротекста. . Information Theory.

с. 4.ЛЯ атакуюш.ую функцию. Дайте определение терминов «ложный ключ» и «расстояние единственности».5. Пусть случайная величина X принимает не более t значений.1.1.3.1. который обладает теоретико-информационной стойкостью? 4.1. 4.1. если щ > П2? .4.1. Какой из них предпочти­ тельней использовать. Вспомните определение энтропии случайной величины X с распределением вероятностей pi = р{Х = Xi). Аргументируйте свой ответ. соответственно. Определите. 4.6. Найдите ошибку в таблице a b e d X Y ^1 W к2 Z Y Z кг X Z W к4 У W X Z X Y Z задающей шифруюш. Известно.1. что расстояния единственности шифров Ci и С2 равны. H{K.О .1. какое из соотношений справедливы р^ля любых шифров: а) б) Н{Р\К.1.С) . Какими свойствами должен обладать шифротекст.7.2.4^4' Ложные ключи и расстояние единственности I 19 Контрольные вопросы 4. 4. Ь. определенную на множе­ стве открытых текстов Р = {а. его шифрованная версия? 4. d} со значениями в ши­ фрограммах С = {W^ X^Y^ Z}^ которая использует ключи 4. а с Объясните свой ответ.его: р{С = с\Р = т) или р{Р = т\С = с).8. щ и П2. На­ зовите минимальное и максимальное значение энтропии Н{Х). где т — открытый текст.P)=H{K)-hH{P). Какая из величин более интересна А.

3.ью подсчитанных условных вероятностей.3. 4.3. р{С = X). Z} и К = {/ci.2.3. Н{С) и Н{К\С). Докажите. X.ую значения Н{Р'^) при разных п для части введенного текста.1.3. вычисляюп1.7. С = {VF. Докажите неравенство Иенсена. Напишите программу. Виженера и шифра замены и примените полученные результаты к объяснению их незап1. 4. насколько хороша эта криптосистема. /^2.120 Глава 4. 4.Теоретико-информационная стойкость Лабораторные работы 4. Вычислите приближенное значение рассто­ яния единственности А^ЛЯ шифров Цезаря.иш. d}. Воспользуйтесь Ва­ шей программой для оценки энтропии Hi и избыточности RL естественного языка. 4. ^з? k^}i а функция шифрования задана таблицей а b с d h W X Y Z к2 X Z W Y кг Z W X У к^ Y W Z X Считайте. Упра^кнения Несколько первых задач относятся к «игрушечной» криптосистеме. в которой Р = {а.4.3.У)^Н{Х)+Н{¥) .ения и ключи равновероятны. Подтвер­ ждают ли найденные значения Ваши оценки? 4. Н{Р). с ) . У. что неравенство Н{Х.5. что все сообш.1. Исследуйте докомпьютерные шифры из главы 3 с помощью техники главы 4. Оцените с помоп]. Вычислите энтропии Н{К). 4.енности от взлома.3.2. Ь. 4.3. р{С = у) и р{С = Z). Вычислите вероятности р{С — Ж).6. с. Вычислите условные вероятности р{Р = т\С = с) для всех пар ( т .

что энтропии случайных величин удовлетворяют соотношению H{X. 4.3. 4. Обозначим через Z = X + Y их сумму. Пусть X и¥ — случайные величины. Покажите. Докажите.3.12. неравенство превращается в равенство тогда и только тогда.8. 4.9. После удаления из высказывания всех гласных букв и проме­ жутков между словами получилось следующее: WHTWLDYLKFRLNCHTDY.10. когда они независимы.4. 4. . Кро­ ме того.4' Ложные ключи и расстояние единственности 121 справедливо р^ля любой пары случайных величин X иУ.11. что равенство достигается тогда и толь­ ко тогда. Проверьте. когда ХиУ независимы.3.3. 4. что если шифр с каким-то распределением веро­ ятностей открытых текстов является абсолютно стойким. Покажите.13. что шифротексты абсолютно стойкой криптоси­ стемы с условием # Р = # К = # С распределены равномерно.3. покажите. то он остается таковым и при любом их распределении.Y) = H{Y)-hH{X\Y). Покажите. Восстановите сообщение. что H{Z) <H{X.Y). 4. отражающие результат бросания двух костей.3. Проверьте истинность оценки H{X\Y) К Н{Х).

Введение Работа симметричных шифров включает в себя два преобразова­ ния: C = Ek{m) и m = Dk{C).еизвестны. Существует много отдельных фирм. Схема. • Очертить область поточных шифров и регистров сдвига с ли­ нейной обратной связью (РСЛОС). называемый принципом Керкхоффа^ был из­ вестен еще начиная с середины 1800-ых годов. не может изучаться никем. и тайна сообщения при известном шифротексте зависит только от секретности ключа к. из которой создают коммерческую тайну.ая функция. • Узнать о стандартных режимах работы блочных шифров. • Разобраться в работе алгоритма DES. так и расшифровываюш.ая функция. кто не работает на соответствующую компанию. D — расшифровываюш. . которые изучались в течение длительного времени большой армией исследователей и рекомендованы к применению как наиболее безопасные. как только кто-то из персонала допускает утечку информации о деталях алгоритмов.ГЛАВА 5 СИММЕТРИЧНЫЕ ШИФРЫ Ц е л и главы • Понять основные принципы современных симметричных алго­ ритмов. что как шифруюп1. Следует отметить. что наилучшими схемами шифрования являются те. множество компаний все еще игнорирует его. разра­ батывающих собственные секретные схемы шифрования. как работает алгоритм Rijndael.ая функции обш. С — шифротекст.1. • Понять. Опыт показывает. к — секретный ключ. Е — шифруюш. которые теряют свою стойкость.ая. где т — открытый текст. Хотя этот хорошо обоснованный принцип. 5.

ставя гипотетического противника в максимально выгодное поло­ жение. по­ скольку обе стороны. Позже мы встретимся с криптосистемами с открытым ключом. Хороший разработчик шифра в совершенстве владеет двумя спе­ циальностями: он должен взламывать криптосистемы так же бле­ стяще. в то время как второй.имеет в своем распоряжении некоторое количество пар (откры­ тый текст. в ближайшие нес­ колько лет будут неосуществимы. то атакующий имеет воз­ можность взломать шифр простым перебором вариантов.е. мы считаем. что шифрующий ключ легко восстанавливается по расши­ фровывающему и наоборот. Если количество возможных ключей мало. Именно для исключения такого сорта атаки необходимо преду­ смотреть достаточно большое пространство ключей. При этом считается невозможным для кого бы то ни было вычи­ слить секретный ключ.5. В этом случае мы будем предпо­ лагать. что при проектировании криптоалгоритма мы обязаны учитывать самый плохой сценарий развития событий. пока не получит соответству­ ющий известный шифротекст. что атакующий . отметим. где криптостойкость шифров доказыва­ ется цепочкой логических рассуждений. в отличие от алгорит­ мов с открытым ключом. Введение Алгоритм.1. исключаюыщй взлом простым перебором. Принято счи­ тать. В результате искомый ключ будет найден. . несмотря на многочислен­ ные попытки. должен насчитывать по крайней мере 80 битов. т.обладает полнотой информации о шифрующем (расшифровы­ вающем) алгоритме. начинающейся достаточно . называется криптосистемой с симметричным ключом. Иногда симметрич­ ные криптосистемы используют два ключа: один д^ля шифрования. до тех пор. Возвращаясь к симметричной криптографии. а другой для обратного процесса. Это требование возникает в связи с тем. опираясь на информацию об открытом. В наши дни. что вычисления. символическая запись которого приведена в начале главы. шифротекст) ассоциированньвс с истинным ключом к. последовательно ис­ пользуя разные ключи. В них только один ключ хранится в тайне и называется секретным. Поэтому ключ. состоящие из 2^^ шагов. как и изобретать их. обменивающиеся шифрованной информаци­ ей. все еще не найден метод аналитического доказатель­ ства стойкости симметричных криптосистем. доступен всем желающим. что чи­ сло возможных ключей должно быть очень велико. открытый ключ. применяют один и тот же секретный ключ. Он может шифровать один из данных открытых текстов.

что шифруя каждое новое сообп]. шифрующая строку битов Такую модель легко реализовать на практике. Упрощенная модель На рис. 5. которая. Однако симметричные алгорит­ мы все еш. Симметричные шифры естественными предположениями. Напомним. поскольку порождает почти неразрешимую проблему распределения ключей.ествует несколько типов атак на основную массу шифров. но. разделив их на пассив- . т. длина которого совпадает с дли­ ной открытого текста. 5. Упрощенная модель.1Л. Естественно.ение своим ключом. некоторые из которых мы приведем ниже. он не применяется на практике. с другой стороны. такие системы далеки от абсолютно стойких. мы получим абсолютно стойкую симметрич­ ную криптосистему. причем этот ключ можно использовать несколько раз. Однако. что такая криптосистема называ­ ется одноразовым шифр-блокнотом. а именно.Глава 5. рас­ пределение ключей А^ля них — хотя и трудная. пока не достигают цели. е.1 изображена упрощенная модель шифрования битовой строки. побитовое сложение по модулю 2 открытого текста со «случайным потоком» битов. Идея модели состоит в применении к открытому тексту обратимой операции р^ля получения шифротекста. сложение по модулю 2. поскольку р^ля ее реализации необходима одна из простейших компьютерных опера­ ций — исключающее ИЛИ. Суп1.ью обратной операции. поскольку лучшие методы атак на эти шифры. открытый текст \ шифрование 1 ШИФРОТЕКСТ. В главе 4 мы убедились.е активно эксплуатируются.ими криптоаналитиками. в которых длинное сообп1. 1 . разработанные ведуш. которое обо­ значается знаком «©». вполне подходит р^ля практического применения.ение шифруется коротким ключом. В связи с этим разрабатываются симметричные криптосистемы. [расшифрование! открытый текст случайный поток битов] случайный поток битов Р и с . Получатель может восстановить текст с помоп]. несмотря на свою простоту. но вполне решаемая задача. 5 . сложив шифротекст с тем же самым случайным потоком. несмотря на совершен­ ство этого алгоритма.

. Здесь противник лишь читает перехвачен­ ные шифрованные сообщения и пытается взломать криптоси­ стему либо раскрыв ключ. удалять или повторять сообщения. пассивное нападение организовать проще.2 дает простую. ^^i. Они позволяют очень быстро шифровать боль- . В этой ситуации противник может вста­ влять. в которых за один шаг обрабатывается группа элементов данных (например. Здесь биты шифротекста получаются по правилу: Сг = mi®ki^ где ттго.Активная атака. случайный поток битов теперь генери­ руется по короткому секретному ключу с помощью открытого ал­ горитма.Пассивная атака.5. • — биты открытого текста. утечки которой и хотели избежать законные пользовате­ ли криптосистемы. . просты и удоб­ ны для реализации. Обратите внимание. а вторая — блочные шифры. •. Вообш. Тем не менее. где за один раз об­ рабатывается один элемент данных (бит или буква). а А. 64 бита). Первая — поточные шифры.i. A. — биты ключевого потока. Большинство симметричных шифров можно разделить на две больших группы. . Эта техни­ ка восходит своими корнями к первой мировой войне. чем активное. похожие на описанные выше. Введение ные и активные.2. по существу. расшифрование является. но яркую иллюстрацию поточного ши­ фра. как она похожа на предыдущую упрощен­ ную модель. так и восстановления текста. Один из стандартных приемов пассивного нападения состоит в анализе обмена сообщениями. когда внезапное усиление радиопереговоров на отдельном участке западного фронта свидетельствовало о неизбежном наступле­ нии. той же самой операцией: Поточные шифры.е говоря. 5. Поскольку процесс шифрования — это сложение по модулю 2.о. либо узнав ту секретную информа­ цию. П о т о ч н ы е хыифры Рисунок 5. . Обычно требуется. вклиниваясь между переговаривающимися партнерами. называемого генератором ключевого потока. чтобы для проведения атаки вставки необходимо было предваритель­ но взломать шифр.1. . а сам шифр должен обеспечивать возмож­ ность как обнаружения атаки удалением или повторением.1.

а фактические данные ши­ фруются после этого с помош.ими сообш. с помош. найдется такое число п. Однако повторное использование того же ключа дает тот же ключевой поток. необходимо менять ключи либо с каждым новым сообш. Предположим. Следовательно. перехватив шифровки. Тогда противник. В результате мы стал­ киваемся с трудностями управления ключами и их распределения. как мы позже увидим. Число п называется периодом последовательности.ением. что вле­ чет за собой зависимость между соответствуюш. Симметричные шифры шой объем данных.ения mi и т2 были зашифрова­ ны одним ключом к. Как минимум. .ью поточного или блочного шифров. закрепленного за отдельным сообщением или за целым сеансом связи. что ki — ki-\-n р^ля всех значе­ ний г. в этом процессе не происходит накопления ошибки. легко найдет сумму по модулю 2 открытых текстов: Ci е С2 = (mi © А. Поточные шифры Чтобы придать необходимую стойкость шифру. генератор клю­ чевого потока производит строку битов с определенными свойства­ ми.ениями. Обычно алгоритмы с открытым клю­ чом применяются р^ля передачи ключа. и ^\ля обеспечения стойкости шифра выбирается достаточно боль­ шим.Глава 5. Если отдельный бит шифротекста исказился в процессе передачи вследствие слабого радиосигнала или из-за вмешательства противника. ключевой поток должен: .и видео-сигналов в реальном времени. Кроме того. то в расшифрованном откры­ том тексте только один бит окажется неверным. например. открытый текст 110010101 е ГЕНЕРАТОР КЛЮЧЕВОГО ПОТОКА ШИФРОТЕКСТ 011011011 поток ключей 101001110 секретный ключ Р и с . которые преодолеваются. что сообш. Поскольку ключевой поток получает­ ся в результате детерминированного процесса из основного ключа.ью крипто­ систем с открытым ключом.Иметь большой период.2.) е (т2 © А:) = mi © m2. либо с очередным сеансом связи. 5. Поэтому они подходят для передачи аудио.

что поточным шифрам необходимо постоянно помнить о том.3 изображена схема блочного алгоритма шифрования.ля шифрования обычно выбирают разумно боль­ шим.ая функция. В идеале. какую часть ключевого потока нужно сейчас генериро­ вать. поскольку восстано­ вление значительной части этой последовательности должно быть неосуществимым в вычислительном отношении. мы пишем C = Ek{m) и m = Dk{C). D — расшифровываюш. блочные же шифры избавлены от этой необходимости. Схема работы блочного шифра Размер блока р. Е — ши­ фрующая функция.Обладать линейной сложностью.3. С — блок шифротекста. Как и в случае поточных шифров. даже если кто-то знает первый миллиард битов ключевой последовательности. Далее в этой главе мы объяс­ ним значение этого термина.3.6 мы обсудим. где т — блок открытого текста. Основное отличие блочного шифра от поточного состоит в том. 5.ий бит не должна превышать 50%. блок открытого текста т секретный ключ к ШИФРУЮЩАЯ ФУНКЦИЯ £ БЛОК ШИФРОТЕКСТА С Р и с . Други­ ми словами. Введение . В системе DBS (стандарт шифрования данных). Блоч­ ный шифр за один прием обрабатывает блок открытого текста. как создаются поточные шифры с исполь­ зованием комбинации простых микросхем.1. например. к — секретный ключ. . называемых «регистром сдвига с линейной обратной связью». вероятность угадать следуюш. Б л о ч н ы е хиифры На рис. Генератор должен произво­ дить последовательность. генерируемая последовательность должна выдер­ жать определенное число статистических тестов на случай­ ность. .5. какое место битовой строки они в данный момент обрабатывают.Иметь псевдо-случайные свойства. Однако перечисленных условий не хватает. чтобы определить. которая кажется случайной.1. 5. 5. В §5.

MARS от группы при компании /ВМ. В ответ на эту проблему национальный институт стандартов и тех­ нологий США (NIST) положил начало своего рода соревнованию по поиску нового блочного шифра. присущий всему сообщению. В настоящее время можно восстановить 56-битовый ключ системы DES.Two fish от группы базирующейся в Коунтерпэйне. Симметричные шифры он состоит из 64 битов. некоторые из которых с большой долей вероятно­ сти используются Вашим web-браузером: RC5. В отличие от фактически засекреченных работ над проектиро­ ванием DES^ проект AES осуществлялся публично.RC6^ представленная компанией RSA Security\ . используя либо сеть компьютеров. в зависимости от режима работы (и приложений) выби­ рается ключ сообщения или сеанса связи. DBS или 3DES. вводимого пе­ ред операциями шифрования и расшифрования. но к началу 90-ых годов назрела необходимость в разработке новых стандартов. Множество ис­ следовательских групп всего мира представили свои варианты AES на конкурс. международным стандартом в банковских операциях. так и размер ключа (56 битов) оригинального алгоритма DES оказались недостаточными Лля обеспечения секретности сообщений.е. либо специализированные аппаратные средства ЭВМ. основанных на стирании или вставке. Сегодня принято на вооружение довольно много разновидностей блочных шифров. В финал вышли пять алгоритмов. дефакто. которые изучались глубже с целью выбора победителя. DES успешно выдержал испытание временем. Каждый режим шифрования предполагает свою защиту от накопления ошибок из-за сбоев передачи шифротекста. Произошло это потому. .Глава 5. а в современных блочных криптосисте­ мах он достигает 128 битов и более. Наиболее знаменитый из них — DES^ т. придавая каждому блоку шифротекста контекст. Впервые он был опубликован в середине семидесятых го­ дов XX века как федеральный стандарт США и вскоре оказался. Позже в этой главе мы обсудим режимы блочных шифров более детально. Такой прием обычно называют реоюимом шифрования. Беркли и других местах. Например. стандарт шифрования данных. Режимы использу­ ются. многие режимы шифрования требуют некоего начального значения. Это были криптосистемы: . что как длина блока (64 бита). Часто зашифрованный первый блок сообщения используют для шифрования следующего. . достойного названия «новый стан­ дарт шифрования» [AES). Кроме того. RC6. чтобы избежать некоторых атак..

работающих в Израиле. Некоторые (неудачно спроектированные) блочные шифры мо­ гут оказаться беззащитными перед атакой с выбором открытого текста. Разрабо­ тано небольшое число довольно успешных методов нападений. должна быть обратимой. Чтобы шифротекст можно было успеш­ но расшифровать. полный перебор. Наконец. Существует несколько общих методик. например. NIST объявил. сочетают математические приемы взлома с навыками раз­ гадывания головоломок. как правило. условно называемый «разделяй и власт­ вуй». тем не менее. опи­ рающийся на предварительно вычисленные таблицы промежуточ­ ных параметров. но и все функции. При расшифровании подключи применяются в поряд­ ке. выводящийся из основного секретного ключа к с помощью алгорит­ ма разворачивания ключа. . При каждом применении раундовой функции используется подключ кг при 1 ^ г ^ 5. но станет совершенно очевидным после подробно­ го обсуждения криптосистемы DES. в конце 2000 г.5. где шифрование специально выбранного сообщения может выявить важные свойства секретного ключа. неко­ торые из которых применимы вообще к любому шифру (а не только к блочному). Введение ~ Serpent от группы трех ученых. в котором они использовались при шифровании. но. Функции. Как правило. которые можно приме­ нять при взломе блочного шифра. да и толика удачи не помешает. каждый раунд обратим. с увеличением числа раундов уровень стойкости блочного шифра повышается. Нор­ вегии и Британии. в схеме Rijndael обратимы не только раунды. в нем участвующих. обратном тому. В то же время. В таких шифрах стойкость обеспечивается повторяющимся использованием простой раундовой функции^ преобразующей п-битовые блоки в п-битовые блоки. которые в ней ис­ пользуются. или прием. На первый взгляд это ка­ жется странным. генерирующая подключи.Rijndael от двух бельгийских криптографов. необратимы. Требование обратимости каждого раунда не подразумевает обра­ тимости функций. функция. что победителем конкурса был выбран шифр Rijndael. Криптоаналитики. . Криптосистема DES и все финалисты проекта AES — приме­ ры итерированного блочного шифра.1. где п — размер блока шифра. Число раундов S может меняться или быть фиксированным.

что докомпьютерные шифры тоже включают в себя эти операции. что с одной стороны дает больше возможностей для его взло­ ма. что его легко трансформировать в поточный. .Поточный шифр имеет более математизированную структуру. какой из ши­ фров лучше — блочный или поточный? Увы. Несмотря на то. что хороший блоч­ ный шифр содержит нелинейные компоненты. Поскольку DES и Rijndael^ вероятно. идея.Линейный криптоанализ. корректного ответа не существует. так как они обычно шифруют один .Общие поточные шифры не очень удобны с точки зрения про­ граммного обеспечения. А цель его все та же — опираясь на распределение вероятностей. исходные сообще­ ния в которых имеют специфические различия. Напомним. Они оба используются и обладают разными свойствами.Глава 5. и мы увидим. можно надеяться на выявление основной структуры ключа. однако. В дифференциальном кри­ птоанализе изучаются пары шифротекстов. применяют более запутанные перестановки и замены. . Сей­ час. не потеряют свою значи­ мость в течение нескольких ближайших лет. чем остальные. . Их важность с точки зрения обучения обусловлена еще и тем. Закончим этот параграф обсуждением вопроса. Определенные дифференци­ алы обладают характерными свойствами. . выудить по­ лезную информацию о ключе. Симметричные шифры . но с другой — позволяет легче изучать и строго оценивать его стойкость. вычисленных при атаке с выбором открытого текста. так что с тех пор мало что изменилось. Удивительно. зависящими от ис­ пользованного ключа. состоит в аппроксимации нели­ нейных компонент линейными функциями. Сами по себе они не обеспечивают стойкости шифра. Исследуя вероятности дифференциалов. на кото­ рой основан линейный анализ. но при их ис­ пользовании на протяжении нескольких раундов можно получить достаточную А^ЛЯ практических целей криптостойкость. что на их примере можно четко увидеть основные принципы конструирования шифров: замены и переста­ новки. Однако они пасуют перед DES и Rijndael^ двумя самыми важными блочными шифрами современности. Результат при­ менения логической операции исключающего ИЛИ к таким па­ рам называется дифференциалом. но эти методы весьма эффективно взламывают не­ которые шифры.Блочный шифр является более общим. мы изучим их более подробно.Дифференциальный криптоанализ.

Шифр Фейстелл и DES бит за прием. как поточные. что мы несколько упростили первоначальный проект. но этот выигрыш происходит за счет сниже­ ния гибкости.и секретного ключа.аться при помош. n-i). обратимся к формулам.4. Аппаратные средства функционируют быстрее. Чтобы в этом убе­ диться. Блочные шифры удобны как для программных. Шифр Феистеля и DES Шифр DES — вариант базисного шифра Феистеля (см.4).2. Однако они высоко эффективны с точки зрения аппаратной реализации. названного по имени Г. рис. но они не допускают такой высокой скорости обработки информации. Интересная особенность шифра Феистеля заключается в том. Гг = h-i е F{ki. расшифрование происходит за счет преобразований: Ti—i =• li^ Н—1 ^^ ^г Ф -^ \"^г5 н)" блок открытого текста \ 1о \ го \ п-1 1 ^-1 1 Sраундов / /ТТЛ*-ki + * БЛОК ШИФРОТЕКСТА Li.5. рис. Ltis * \ п \ \ Ls \ Р и с . поскольку . 5. 5. Каждый раунд шифрования осуще­ ствляется по правилу k = Гг-1. чем программ­ ное обеспечение. 5.ую функцию. Феистеля. Основные операции пхифра Феистеля Выписанные формулы показывают.4). . работавшего в фирме IBM и вы­ полнившего некоторые из самых ранних невоенных исследований в области алгоритмов шифрования.2. что функция раунда обратима вне за­ висимости от свойств функции F (см. так и для аппа­ ратных средств.в качестве F можно выбрать любую функцию и получить шифруюш. 5. Следовательно. которая будет обраш.

В документах национального института стандартизации США (ANSI) криптосистема DES называется алгоритмом шифрования данных (DEA)^ а международная организация по стандартизации.сколько должно быть раундов. Отправной точкой проекта послужил более ранний шифр — «Люцифер». что изменения состояли в исполь­ зовании ловушки в функции F. как называли его в IBM. так и д^ля расшифрования. . Было известно. что управление национальной безопас­ ности {NSA) внесло изменения в проект. . Поэтому его стоит отметить как важней­ шую веху на пути криптографии от чисто военного использования к широкомасштабному применению. Конечно. в нем - число раундов S равно 16. которые в этих процессах обратны друг другу. Долгое время специалисты в области секретности считали. . . Работа над DES была начата в начале 1970-ых годов группой со­ трудников IBM^ в которую входил и Фейстель. длина ключа становится равной . . что для многих современных алгоритмов длина ключа в 56 битов недостаточна. каждый из подключей fci. fcie насчитывает 48 битов. В частности.ение шифра Фейстеля и. эти модификации укрепили сопротивляемость шифра дифференци­ альному криптоанализу — технике. как легко подсчитать. что он — обобш.e надо позаботиться о том. проводя три итерации стандартного процес­ са. Этот алгоритм являлся мировым стандартом на протяжении более чем двадцати лет и утвердился как первый доступный всем желаюш. Симметричные шифры . ссылаясь на шифр DES^ пользуется аббревиатурой DEA-1.как определить функцию F. что они были направлены на повьппение безопасности шифра. . с которой гражданские иссле­ дователи не были знакомы до 1980-ых годов.одну и ту же микросхему можно использовать как р^ля шифро­ вания.как генерировать подключи. /1:2. размер ключа — 56 битов. А^ля создания криптостойкого шифра нам все eni. Заметим. Основные черты шифра DES определяются прежде всего тем. длина блока п — 64 бита. Поэтому в DES зачастую используют три ключа вместо одного. При этом. . кроме того. Нам необходимо лишь про­ следить за порядками подключен. Однако теперь считается.им официальный алгоритм.Глава 5.

Это позволяет ис­ пользовать одно и то же программное обеспечение и «железо» для двух сторон процесса: шифрования и расшифрования. Конечная перестановка обратна начальной.6) на то. и пользователи часто за­ давались вопросом: зачем ее BOo6ni. Шифр Фейстелл и DES 168 битам.2. О б з о р д е й с т в и я хпифра преобразует открытый текст из 64 битов следующим образом: Т 2 \блок открытого текста] БЛОК ШИФРОТЕКСТА Р и с . в первом при­ ближении DES — это шифр Фейстеля с 16 раундами (рис. за исключением того.6). как два блока меняют­ ся местами перед последней перестановкой алгоритма. так и после основных ите­ раций алгоритма Фейстеля осуществляются некоторые перестановки. 5.ествляет 16 раундов с одним и тем же набором операций. расш. Обратите внима­ ние (рис.6. соединяет половины блока. Тройной DES 1 PES 1 .епляет блок на левую и правую половины. Алгоритмы ^^^ ^ Фейстеля производит начальную перестановку (IP). Упражнение 5. что как перед.2. осуш. что она об­ легчает микросхемную реализацию процеду­ ры шифрования.5.5. Ш и ф р DES 3 i 5. Есть и другой способ модификации DES^ в которой берут два ключа. Разворачива- . 5.3. 5. производит конечную перестановку. Р и с . 5. Эта замена никак не влияет на стойкость шифра.3 посвяп1.5).e делать? Один из членов творческого коллектива. увеличивая длину основного ключа до 112 битов.ено подробностям этого метода. 5.1. раз­ работавшего DES^ утверждал.» 1 PES'' 1 -• 1 DES 1 t 1 1 i 1 PES'' 4- - i PEs\<- PES'' 1 DES Как уже не раз отмечалось. Такая версия классического шифра называется тройным DES или 3DES (рис.

. В каждом раунде алго­ ритма DES оно состоит из шести шагов: . 5.Расщепление. К строке из 48 битов. о которых речь пойдет ниже. Правая половина из 32 битов растягивается до 48 битов и перемешивается. что подключ используется только в этом месте алгоритма.Р-блок.ей ячейки таблицы. Первый и шестой бит задают номер строки. какую строку и какой столбец необхо­ димо использовать ^\ля замены. которые мы пока полностью не раскрыли. Симметричные шифры ние ключа дает 16 подключен по 48 битов каждый. S-блоки — нелинейные компоненты алгоритма DES и именно они дают основной вклад в криптостойкость шифра.ается в большое на выходе). и подключу (его длина то­ же 48 битов) применяется операция исключаюш.его ИЛИ. Пе­ рестановка с расширением (отличная от начальной) выбирает­ ся так. Это помогает рас­ пространять зависимости и создает лавинный эффект (малое различие между двумя наборами входных данных превраш.их битов складывается по моду­ лю 2.Слоэюение с подключом. Каждый 6-битовый кусок передается в один из восьми S-блоков (блоков подстановки).7. чтобы один входной бит воздействовал на две замены через S-блоки. Каждый S-блок представляет собой поисковую таблицу из че­ тырех строк и шестнадцати столбцов. . каждая пара соответствуюп]. .S-блок. .Глава 5. формируя выход функции F. Выход S-блока — значение соответствуюп1. Сейчас мы подробно расскажем о тех шагах.Перестановка с расширением.их в Sблок битов определяют. полученной после перестановки с расширением. т. Структура функции F алгоритма DES схематически изображена на рис. а остальные — номер столбца. Это помогает рассеиванию связи между входными битами и выходными. На этот момент у нас есть восемь групп 4-битовых элементов. . которые комбинируются здесь в 32-битовую строку и перемешиваются. Результат предыдуш. где он превраш. Шесть входяш. выделяя их из 56-битного основного ключа.его шага расщепляется на 6 частей по 8 битов в каждом. Сейчас мы опишем действие функции F.ается в набор из 4 битов. е. Заметим.

второй бит перемещается в позицию 50. как биты. 5. следует читать слева направо и сверху вниз. Начальная перестановка 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7 Обратная перестановка задается таблицей 5.2.1. расположенное в первой строке и пер­ вом столбце таблицы. . изображающие перестановки. IP. согласно этой таблице.2.2. нумерующие строку од­ ного S-блока (первый и последний бит каждой строки). д. означает. и т.1. 5. Аналогично.2. Таблица 5. Обратите внимание. Эту и все другие та­ блицы. Структура функции F алгоритма DES 5. Начальная перестановка. Перестановка Е так­ же представляется таблицей (таб. Начальная перестанов­ ка алгоритма DES определяется таблицей 5.1.2.1. влияют на выбор столбца другого S-блока. число 58. Так.1.7. Шифр Фейстелл и DES 135 перестановка с расширением 12345678901234567890123456789012 Рис. Перестановка с расширением Е. что IP перемещает пятьдесят вось­ мой бит входных данных на первое место. 5.3). входящим в соответствующий S-блок на следую­ щем шаге.5. Каждая строка в ней соот­ ветствует битам.

Напомним. Перестановка в Р-блоке. включающей в себя контрольные би- .S-блок. 5.2. который пред­ ставлен строкой из 64 знаков. что каждый из них представляет собой таблицу из 4 строк и 16 столбцов.36 Глава 5. Содержимое восьми S-блоков алгоритма пред­ ставлено в табл.стаLHOB ка с расширением 32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 4 8 12 16 20 24 5 9 13 17 21 25 24 28 28 32 29 1 25 29 26 30 27 31 5. Таблица 5. 5. Симметричные шифры Таблица 5.5.1. Перестановка в Р-блоке 16 29 1 5 2 32 19 22 7 12 15 18 8 27 13 11 20 28 23 31 24 3 30 4 21 17 26 10 14 9 6 25 5. как показано в табл.2.2. Эта перестановка пре­ вращает 8 групп 4-битовых элементов на выходе из S-блоков. Перестановка.4.3. в 32битовую строку. соединяя и перемешивая их. 5.2. Р.2. обратная к начальной 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 17 64 63 62 61 60 59 58 57 32 31 30 29 28 27 26 25 .4.4.1. Разворачивание ключа в DES Разворачивание ключа работает с 56-битовым ключом.

е. Таблица 5. 14 4 13 1 О 15 7 4 4 1 14 8 15 12 8 2 2 15 11 8 3 10 б 12 5 9 14 2 13 1 10 6 12 11 9 5 13 6 2 11 15 12 9 7 3 10 4 9 1 7 5 11 3 14 10 О S-блок 2 15 1 8 14 б 11 3 4 3 13 4 7 15 2 8 14 О 14 7 11 10 4 13 1 13 8 10 1 3 15 4 2 S-блок 3 10 О 13 7 13 б 1 10 S-блок 4 7 13 14 3 13 8 11 5 10 б 9 О 3 15 О б S-блок 5 S-блок 8 б 3 8 б 7 О 8 б 3 15 5 1 13 4 б 10 2 8 15 3 О 11 1 9 8 7 4 15 О б 9 10 1 2 б 15 О 3 4 7 12 11 7 13 15 1 10 1 13 8 9 4 2 13 12 О 1 10 б 9 12 6 9 3 7 12 О 5 7 8 О 13 5 11 2 14 10 5 15 9 12 7 11 4 2 8 5 14 12 11 15 1 2 12 5 10 14 7 14 3 11 5 2 12 8 5 2 12 1 10 14 9 11 12 4 15 3 5 14 5 11 12 2 7 8 2 4 14 2 12 4 1 7 10 11 б 8 5 3 15 13 О 14 11 2 12 4 7 13 1 5 О 15 10 3 9 4 2 1 11 10 13 7 8 15 9 12 5 б 3 11 8 12 7 1 14 2 13 б 15 О 9 10 4 14 8 О 5 9 б 14 3 12 10 9 4 cS-блок 7 4 13 1 б S-блок б 9 14 О 9 4 9 13 О 9 12 5 11 О 3 5 6 1 15 14 3 11 0 4 11 10 4 15 2 2 11 11 13 15 2 5 12 14 7 13 8 9 7 2 9 15 4 12 1 2 12 8 5 0 9 3 4 б 9 12 15 8 1 7 10 8 5 3 10 13 10 14 7 0 б 7 11 3 14 10 9 13 1 0 14 12 3 15 5 3 13 4 1 9 5 б 0 4 14 10 7 7 12 8 15 14 0 1 б 5 2 0 14 7 11 13 0 10 15 5 2 5 11 3 8 И б 8 13 б 1 8 б 9 2 3 12 13 2 8 4 б 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 б 11 0 14 9 2 7 И 4 1 9 12 14 2 0 б 10 13 15 3 5 8 4 10 8 13 15 12 При разворачивании ключа сначала. 16. перемешиваются его биты. согласно перестановке из табл. S-блоки S-блок 1. т.2. стоящий на позициях 8. Эта перестановка имеет 64 вхо- . чтобы каждый байт ключа состоял из нечетного числа битов. отвечает за то. 64. 5. следящие за четностью. . Шифр Фейстелл и DES 137 ты.5. Каждый восьмой бит этой строки. .5.6. . .

две части Ci и Di соединяются вместе и подаются на вход следующей перестановки. после ее применения.6. делится на две половины (по 28 битов в каждой).i . Di = Di^i<^pi. Эта криптосистема. Перестановка РС-1 57 1 10 19 63 7 14 21 49 58 2 11 55 62 6 13 41 50 59 3 47 54 61 5 33 42 51 60 39 46 53 28 25 34 43 52 31 38 45 20 17 26 35 44 23 30 37 12 9 18 27 36 15 22 29 4 Результат этой перестановки. где x<^pi обозначает циклический сдвиг битовой строки х влево на Рг позиций.Глава 5. Перестановка PC-2 14 3 23 16 41 30 44 46 17 28 19 7 52 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32 3. относясь к блочным шифрам. а правая — через DQ. Симметричные шифры да и 56 выходов. Т а б л и ц а 5. алго­ ритм Rijndael^ был разработан двумя бельгийскими криптографа­ ми: Дименом (Daemen) и Рийменом (Rijmen).2. Т а б л и ц а 5. имеет много общего с DES^ хотя и . Наконец. в частности.9 и 16 имеем р^ = 1. Для раундов с номером i = 1.7. называемой PC-2 (табл. 5.3. Теперь р^ля каждого ра­ унда с номером г вычисляется d = Ci-i<^pi. а для остальных — pi = 2. Rijndael Победитель конкурса AES^ объявленный в конце 2000 года. Левая часть обо­ значается через Со.7). отбрасываются контрольные биты. выхо­ дом которой и будет 48-битовый подключ г-го раунда. Таким образом. называемой в литературе P C .

что цифра 8 шестнадцатиричной системы. Например. Отождествление делается в формате «перевертыш».'03/г^ заметив. Заметьте. Rijndael использу­ ет сильную математическую структуру: большинство его операций основаны на арифметике поля F28. Напомним. т. Кроме того. т. затем разделим на блоки по 4 цифры и каждый блок заменим шестнадцатиричной цифрой. представляющих дво­ ичные многочлены. Само число 8 = 2^ в двоичной систе­ ме записывается в виде последовательности 1000 двоичных знаков. можно сказать. стоящая во втором разряде представляет число 8-16 = 8-2^. Осталось к этой строке битов прибавить запись числа 3 в двоичной системе. Этот набор двоичных разрядов можно полу­ чить непосредственно из байта '83/i' = ^80h^ Н. Rijndael не является непосредственным обобщением шифра Фейстеля.X -\-1 над полем F2. цифры от 10 до 15 замещаются буквами A. байт '83/г' в шестнадцатиричной си­ стеме^ соответствует двоичному числу '1000ООПЬ'. Таким образом. слово ao||ai||a2||a3 ^Российское представление чисел в шестнадцатиричной системе. 'ОНО 1100 1111 Ь' = 'eCFh' . Арифметические операции в поле F28 соответствуют операциям над двоичными многочленами из F2[X] по модулю неприводимого полинома т{Х) = Х^ + Х^ + Х^ + X + 1. ООН. к. '83/г' ^ 8 • 16 + 3 = 131 в десятичной системе.е. число '80/г' = 2^ • 2^ в двоичной системе счисления выгля­ дит как '1000 00006'.F. Для перевода десятичного числа в шестна­ дцатиричную систему.5.E.B. пе­ рестановок и прибавления ключа.C.D. переведем его сначала в двоичную. каждый из которых состоит из замен. что при этом до­ статочно к числу 8 (1000) в двоичной системе приписать число 3 (ООН). Для обеспечения криптостойкости алгоритм Rijndael включает в себя повторяющиеся раунды.е. В алгоритме Rijndael 32-битовые слова отождествляются с много­ членами степени 3 из F28[X]. Напри­ мер. что элементы поля F28 хранятся в памяти компьюте­ ра в виде 8-битовых векторов (или байтов). Так. например. т. Значит. старший (наиболее значимый) бит соответству­ ет младшему коэффициенту многочлена. Цифры: пер­ вые десять цифр от О до 9 представляются стандартно.3. в отличие от DES^ ши­ фрование и расшифрование в этом алгоритме — процедуры разные. Однако. Указанная последовательность битов соответствует много­ члену Х^ -\. что шестнадцатиричное число '83/г' представляет тот же многочлен.

0 52.1 52.2 53. Заметим. Для каждой комби­ нации блока и размера ключа определено свое количество раундов.1.2 52.2 ^0.1 53.1 ^1. В целях упрощения обсуждения мы рассмотрим самый простой и.0 ^1.3. Один тип применяется при шифровании.1 51. произведение которых равно 0. Симметричные шифры соответствует многочлену азХ^ -h а2Х'^ + aiX + ао. и.0 50.3/ которую обычно записывают как вектор 32-битовых слов.3 5. С данного момента мы будем иметь дело лишь с этой простой версией. Каждое слово в векторе представляет столбец матрицы. состоят из 128 битов. В алгоритме есть два типа S-блоков. 192 или 256 битов.0 fco.1 ^2.3 52.2 ^2. которые мы сейчас опишем. как и ключ. при ко­ тором блоки. Арифметика в алгоритме совпадает с арифметическими действи­ ями в кольце многочленов F28[X] по модулю многочлена М{Х) = = Х^ + 1. бывают пары ненулевых элементов.1)^ приводим.3 ^53.1 50. в частности.o ^1.0 ^2.l ^0. Rijndael — настраиваемый блочный алгоритм.0 53. Операции алгоритма Rijndael Раундовая функция в Rijndael действует с использованием четырех операций.3 ^2. SubBytes. арифметические действия в алгоритме отличны от операций поля.3. . называемой матрицей состояний: ^ 50. а другой — при расшифровании. 5. В этом случае в алгоритме выполняется 10 раундов. вероятно.1. что многочлен М{Х) = {X -{.3 ^ 51.Глава 5.2 A:i.3 h. который может работать с блоками из 128. Подключи также хранятся в виде матрицы 4 x 4 : Ki /k 0. следовательно. наиболее часто используемый вариант алгоритма. Rijndael оперирует с внутренней байтовой матрицей размера 4 x 4 .2 51.1.2 50.

. . . Эта математическая структу­ ра не только повышает сопротивляемость дифференциальному ана­ лизу. Их работа состоит из двух шагов. 1. 5. В рассматриваемой версии ши- . . не имеющий обратного.1. Вычисляется мультипликативный обратный к элементу s G F28 и записывается как новый байт х = [xj^ . 2. Битовый вектор х с помош. элемент [О. В Ri­ jndael S-блоки имеют прозрачную математическую структуру. . So]. S-блоки поочередно обрабатывают строки матрицы состояний 5 = [^7. 0].2. что позволяет формально анализировать устойчивость шифра к диффе­ ренциальному и линейному анализам.5.ью линейного преобразования над полем F2 переводится в вектор у: ( Уо^ / 1 0 0 0 1 1 1 1 ^ У1 1 1 0 У2 1 1 1 0 2/3 1 1 1 1 0 У4 1 1 1 1 1 0 У5 0 2/6 0 0 \У7 ) 0 0 f Хо ^ 1 1 1 XI 1 1 Х2 0 0 1 хз 0 0 Х4 0 Х^ 1 1 1 1 1 0 Хб 0 0 1 1 1 1 1 0 1^ 0 0 0 1 1 1 1 1 ^ \^7 ) служащий выходом S-блока.3. что в алгоритм не закрался не­ досмотр. остается неиз­ менным.. чтобы предотвратить взлом шифра с помош. Действия S-блока на стадии расшифро­ вания состоят в обратном линейном преобразовании и вычислении мультипликативного обратного.. ^ хо]. но и убеждает пользователя. S-блоки в алгоритме DES отби­ рались из большого числа себе подобных так. Т1о соглаше­ нию. используя табличный поиск или микросхему. .ью дифференциального криптоанализа. Операция Shift Rows в Rijndael осуществля­ ет раундическии сдвиг матрицы состояний. воспринимая их как элементы поля F28. . реализу­ ющую вычисление обратных элементов в F28 и линейные преобра­ зования.3. Каждая из ее строк сдвигается на свое число позиций. ShiftRows. Эти преобразования байтов можно осуществить. Rijndael Каждый из них обратен другому. .

но в про­ тивоположном направлении.2 52. ^Элементы поля F28 мы записываем либо как битовый вектор. — Прим.1 -^0. Операция MixColumns задумана с тем.а2Х^ Н.3 J У 53.2 52.3.3 52.1 51. Мы представляем каждый столбец матрицы состояний как мно­ гочлен степени 3 с коэффициентами из F28: а{Х) = ао + aiX Н.2 5з. поэтому операция MixColumns обратима.0 52.2 50. 5.0 52.2 J Обратная операция — тоже простой циклический сдвиг. ) Матрица коэффициентов невырождена над F28.142 Глава 5.1 ' 50.0 5о.3 ^ 51.1 5з.2 51.3 53.0 52. что столбцы матрицы состояний будут «взаимодействовать» друг с дру­ гом на протяжении нескольких раундов. чтобы строки матрицы состояний «взаимодействовали» друг с дру­ гом на протяжении всех раундов.0 53.1 53. MixColumns. Новый столбец получается умножением многочлена а{Х) на фикси­ рованный многочлен^ с{х) = 'Q2h' + 'Qlh' • X + 'Qlh' • Х2 + '03/i' • Х^ по модулю многочлена М{Х) — Х^ + 1. '03/г' — это элемент поля F28.0 53.а^Х .3 ^ 51. либо как байт.0 51.1 51.0 «50.3 51. В частности. Операция Shif tRows гарантирует.3 52. ее можно представить в виде действия матрицы: 1ьЛ / '02/i' '03/i' 'Qlh' 'Qlh' 6i b2 \h) — '01/i' \ '{)2h' '03/i' '01^' 'Ol/i' 'Qlh' у 'OZh' 'Qlh' 'mh' 0>1 'mh' 'Qlh' '{)2h' 1аЛ «2 1 \а.1 У 5з.1 5о. . а обратное к ней действие реализуется ма­ трицей. Так как умножение на мно­ гочлен — линейная операция.1. Симметричные шифры фра это преобразование имеет вид: ' 5о. В комбинации с предыдущей опе­ рацией она наделяет каждый байт выходных данных зависимостью от каждого байта на входе. перев. представляемый многочленом X + 1 по модулю М{х). обратной к выписанной.2 5о.3.3 51.2 52.

K[10]).4. AddRoundKey(S. i++) { SubBytes(S). предназначенный для шифрования. совпадает с исходной.3. } SubBytes(S).AddRoundKey. С т р у к т у р а раундов Запишем алгоритм Rijndael на псевдокоде. MixColuinns(S) . InverseShiftRows(S). ShiftRows(S). i > = l . ShiftRows(S). за­ писывается в виде матрицы состояний S. 1пуег8еМ1хСо1шш18(8).KCO]).K[i]). i<=9. .ествляется. InverseSubBytes(S).K[0]). Обратите внимание. Сложение с подключом осуществляется просто. очевидно. Процедура расшифрования представлена следуюш.1.K[i]). Нужно сложить по модулю 2 (применить операцию исключа­ ющего ИЛИ) все байты матрицы состояний (которую мы посто­ янно меняли) с соответствующими элементами матрицы подключа. AddRomidKey(S. AddRoundKey(S. Полученный в результате алгоритма шифротекст представляется той же матрицей.3.ей программой на псевдокоде.3. for (i=9. for ( i = l . InverseShiftRows(S).К[10]) Блок открытого текста. AddRoundKey(S. 5. i ~ ) { AddRoшldKey(S.5. Обратная операция. что в последнем раунде операция MixColumns не осуш. InverseSubBytes(S) } AddRoundKey(S.2. Rijndael 5.

4.i. Ошибка.е один федеральный стандарт.ii^io. что основной ключ алгоритма состоит из 128 битов. А. С тех пор эти режимы стали обш. описанной на стр. подобный DES или Rijndael^ можно по-разному ис­ пользовать д^ля шифрования строк данных. W[2]=K[2].ЕСВ.о. это вычисление подключен. но слабо заш. Эти слова соответ­ ствуют столбцам матрицы. Напомним.3. В нем через RotBytes обозначена процеду­ ра циклического сдвига слова влево на один байт. рекомендующий четыре способа эксплуатации алгоритма DES р^ля шифрования дан­ ных. W[4*i+2]=W[4*i-2]AW[4*i+l] . W[4*i+l]=W[4*i-3]AW[4*i] . . .епринятыми и применяются с любыми блочными шифрами.Глава 5. каждый из кото­ рых включает в себя четыре 32-битовых слова. Перечислим их. T=SubBytes(T).. W [4*i+3] =W [ 4 * i . влияет на целый блок в расшифрованном тексте. после чего подключи получаются в результате выполнения приве­ денного ниже алгоритма. for ( i = l .3. Здесь использу­ ется константа раунда RCi^ вычисляющаяся по правилу RCi = X' (modX^ + Х^ + Х^ + X + 1). Режимы работы DES Блочный шифр. 140. а через SubBytes — применение S-блока (из этапа шифрования) к каждому байту слова. Разворачивание ключа Единственное.енная в одном из битов шифротекста. W[l]=K[l]. A. . что осталось осветить. Симметричные шифры 5.2.СВС— наилучший способ эксплуатации блочного шифра. i++) { T=RotBytes(W[4*i-l]). а нам нужно произвести 10 подключей Ki^.ении..ения потерь в результа- . допуш.Основной ключ алгоритма делится на четыре 32-битовых слова (А. Вскоре после DES в США был принят еш. W[3]=K[3]. W[4*i]=W[4*i-4]AT. } 5. W[0]=K[0]. i<=10. А:з).l ] AW [4*i+2] . по­ скольку предназначен ^\ля предотврап]. Т=ТЛКС [ i ] . Обозначим г-ый подключ через (VF4b 1^4г+ь М^4г+2^ ^4г+з). Этот режим прост в обраш.ищен от возможных атак с удалениями и вставками.

. и атакующий мо. что ошибка в один бит. Шифровани блока не оставляет следов.1. как показано на рис. . гпд. в котором содержится.8.ий блок.CFB. Р е ж и м ЕСВ Режим ЕСВ (Electronic Code Book — электронная кодовая книга) является простейшим среди стандартных способов использования блочного шифра. рис. . . здесь блочный шифр транс­ формируется в поточный. .8. Вторая проблема связана с ^ ^ з тем. Данные т . С режимом ЕСВ связан ряд проблем. что можно лег­ ко определить и интерпретировать как сигнал о предпринятой атаке. m2. . 5.е. дает только один ошибоч­ ный бит в расшифрованном тексте. которые предстоит зашифровать. при необходимости. 5. . Последний из них.5. дополняют до длины п.PeoicuMbi работы DES те атаки с использованием удалений и вставок. При таком методе блочный шифр превращается в по­ точный. . Cq как результат воздействия ши­ фрующей функции d = Ekirrii). Разберем каждый из стандартных режимов шифрования подробно. но и портит один бит в следующем блоке открытого текста. Это. Как и в предыдуш. Отдельная ошибка в криптограмме при этом влияет как на блок. действительно.4. одинаковые блоки ^к \ \ ^к \ \ ^к на входе индуцируют совпадающие блоки на выходе.в режиме ЕСВ жет таким образом исказить передаваемую .4. в котором она была допуш. по1 1 1 скольку шаблонные начало и конец сообще1 i i НИИ совпадают. .OFB. что при равенстве "?i ^2 '"з гщ = rrij МЫ получим одинаковые блоки шиi i i фротекста Ci = Cj^ т. что удаление из сообщения какого-либо р^^^ 5.ем случае. де­ лятся на блоки по п битов: mi. . 5.ена. Здесь ошибоч­ ный бит шифротекста при расшифровании не только превраш. Расшифрование здесь — простое обраще­ ние предыдущей операции (см.9). Пер­ вая возникает из-за того. просочившаяся в шифротекст. проблема. так и на следуюш.ает в ошибочный блок. как при режиме СВС. Режим обладает тем свойством. По ним определяются блоки Ci.

в добавлении к ка­ ждому блоку шифротекста контекстного идентификатора.9. Как и в предыдущем режиме. как обычно. Сообразите. которое получено из первого заменой одного из блоков на блок из второго сообщения. чтобы длина открытого текста стала кратной длине . . . последний блок может потребовать дополнения. поставив блок «А» шифротекста в начало первого сообщения. Режим СВС Один из путей обхода проблем. что «А»— шифрованный вариант частицы «не» открытого текста.Глава 5. в которой блок соответствует слову. Таким атакам можно противостоять. мы можем приостановить выплаты Алисе. Симметричные шифры информацию. отправив ему сообщение У КОШКИ ДВЕ НОГИ. В этом режиме открытый текст. при котором к каждому блоку шифротекста добавляется «контекстный идентификатор». Мы можем теперь заставить получателя оплатить Алисе две сотни фунтов. но связана со встав­ кой блоков из других сообщений. ^ у ЧЕЛОВЕКА ДВЕ НОГИ.е. mq. . добавляя контрольные сум­ мы нескольких блоков открытого текста или используя режим. 5. возникающих при использовании ре­ жима ЕСВ^ состоит в «зацеплении» шифра. Чтобы лучше представить себе эти про­ (-\ с.4. Кроме того.2. Вы заметили. Расшифровывание в режиме ЕСВ у КОШКИ ЧЕТЫРЕ НОГИ. Яе плати Бобу двести фунтов ^^ ^"2 '"з в зашифрованном виде выглядит так: \ Рис. Третья очень близка ко второй. блемы. с. разбивается на серию блоков: m i . 5. Самый простой способ сделать это — применить режим «сцепления блоков шифра» или СВС (сокращение от «Cipher Block Chaining»). вместо од­ ной. и пред­ положим. возьмем простейшую модель шифра. что открытое сообщение i 1 L\ ^* 4j I I I Плати Алисе сто фунтов. как мы можем побудить полу­ чателя криптограммы выплатить Бобу двести фунтов. . Надеюсь. т.

им образом (рис. 5 . Расшифро­ вание в режиме СВС получается большей.10). 5. ние в режиме СВС Естественно. Этот процесс выглядит следуюш. или OFB (Output Feedback). Шифрова­ виде как часть сообщения. ошибочный знак повлияет не только на свой блок.3. 5. mi = Dk{Ci) 0 Q-i i i i при i > 1. Е.11): i i ГГЦ = Dk{Ci) е IV. 5. Для этого выбирается переменная j А А А (1 ^ j ^ п). рис. величина IV участвует и в расшифровании. 5. i i . и на практике ее передают в открытом Рис. что при шифровании в режиме ЕСВ ошибка в одном знаке шифротекста.5.4. но и на соответствующий бит в следующем блоке. Шифрование осуш. Напомним. С помощью блочного шифра созда­ 1 ется поток ключей.• ( дует отнести к заданию шифруюш. ОТ2 комендуется брать j равное п. 1 1 . Ре­ от. повлияет на весь блок. Нет необходимости скрывать значе­ ние IV. как видно из формул. будет расшифрован неверно. что в вычисле/Из НИИ первого блока шифротекста участвует ве­ личина IV (начальное значение). и он. с тем. В случае режима СВС. которую сле­ / ^ . поскольку при этом ожидаемая длина периода потока ключей Р и с . обозначающая число битов на вы­ ходе генератора потока ключей при каждой IV-^i итерации. (см. адапти­ рует блочный шифр к его поточному исполь­ зованию.10.ей функ­ i ции. называемый «обратной связью по вы­ ходу». появляюш. естественно. j битов за один раз. нежели при других значе­ ниях. Обратите внимание на то. в котором она допущена. Р е ж и м OFB Режим.4' Режимы работы DES блока.ествляется согласно формулам Ci = Ek{mi е IV).аяся на стадии передачи сообщения. Ci = Ekirui 0 C^-i) при г > 1. Величину IV привлекают к шифрованию Е. чтобы шифрованные версии одинако­ вых частей открытого текста выглядели поразному.

Расшифрование происходит ана­ логично (см. Напомним. бг = j крайних слева битов блока Уг^ Ui =• TTii 0 е^. . вы­ Рис. 5.4. в отличие от пре­ дыдущих случаев.ей функции.13. оставив ее в качестве упражнения. Мы не будем разбирать процедуру расшифрования. вг = j крайних слева битов блока Zi. Р е ж и м CFB Последний режим. но блочный шифр в нем транс­ ^Ч формируется в поточный.13).Глава 5. 5. . рис. носит название «обратной связи по шифротексту» или СРВ (Ci­ -i pher FeedBack). В жиме OFB случае СРВ поток ключей возникает в результате еще одного шифрования блоков криптограммы (рис. Но на этот раз.14): и Уо = IV.12). Шифрование в режи­ ме OFB У1 = Ek{xi). q'. (j битов открытого текста) | Р и с . Симметричные шифры Как и ранее. блоки состоят из j битов.12. Zi = Ekivi-i) Vi = rrii ® ei.4. делаются i Q (7 битов шифротекста) преобразования: \У1-\ ч i t I m. За­ выбор левыху битов тем. при г = 1. (J битов открытого текста) | значения шифруюш. 5. 1 выбор левыху битов] что в предыдущем режиме начало поi rrij и битов шифротекста) тока ключей получается из значения 1^ IV ^ а остальной поток формируется t пошагово. 2. Процесс шифрования проис­ r-i ходит по следующей схеме (рис. мы разбиваем открытый текст на серию блоков: mi.ей стадии. Он похож на режим УА [f^ 0 F 5 . 5. в результате шифрования I с. 5. . . Расшифрование в ре­ численного на предыдуш. который мы рас­ смотрим. 5. . переменной xi присва­ ивается начальное значение IV. Прежде всего.

Точности ради стоит отметить. что информация при пере­ даче не была искажена. 5. а М — сообщение. Предположим. но наиболее из­ вестная и широко используемая — это СВС-МАС. вместо DES можно брать любой блочный шифр.5. где F — контрольная функция (check function). . ^Поэтому оно и обозначено заглавной буквой. что стороны. перев. хотят быть уверенны­ ми в том. Опишем процедуру.ий (shared) секретный к л ю ч и а л г о р и т м с к л ю ч о м (напри- ГГГ I. Они могут ис­ пользовать обш. Если нам нужно засекретить сообщение.Сначала данные дополняются так. изданных в начале 80-ых годов прошлого столетия. что в стандартах говорится об использовании алгоритма DES в режиме СВС для создания системы аутентификации сообщений. поскольку пытаемся на этом этапе сохранить це­ лостность данных. а не их конфиденциальность. или MAC (Message Authentication Codes): MAC = Fk{M). Шифрование в режи­ емого вместе с данными.14. Подлинность сообщений 149 5. Коды СВС-МАС упоминаются в различных международных стандартах. хотя. чтобы их можно было раз­ бить на серию п-битовых блоков. к — секретный ключ. блочный шифр) для генерирова­ ния контрольного значения. оче­ видно.. В результате такой комбинации пользователь передает Ek{m\\MAC{m)).ений. Этот код обоб­ щает режим СВС блочного шифра. в результате которой из п-битового блочно­ го шифра получается т-битовый ( т < п) MAC. — Прим.5. обмениваюш. i ^k 1^' выбор левыху битов] i ff^ Т 1 • Q (y битов шифротекста) |т. Подлинность сообщений Блочные шифры могут не толь­ ко обеспечивать конфиденциальность сообш.5.(/ битовоткрытоготекста)! мер. посыла­ Р и с . Такие зна­ ме СРВ чения называют кодами аутентифи­ кации сообщений. .иеся секретной информацией. но и контролировать це­ лостность данных. то его следует зашифровать после вставки MAC. Существует несколько различных типов MAC. При этом мы не предполагаем секрет­ ность сообщения^.

При пользовании схемой вычисления СВС^^ 1^2 щ MAC необходимо осторожно обращаться с ^ ^ начальными дополнениями данных. Симметричные шифры . Mq — n-битовые блоки данных.Последний из полученных блоков после необязательной заключи­ тельной обработки и отбрасывания лишних битов (при т < п) является требуемым кодом аутентификации MAC. результат которой обрезается до нужного раз­ мера и считается искомым MAC (рис. стиРис. . Таким образом. если не ты СВС-МАС известна длина оригинального сообще­ ния. если оно оканчивается строкой нулей. [необязательная! процедура Стандарты предписывают два возможных необязательных за­ ключительных шага.Полученные блоки шифруются блочным шифром в режиме СВС. §10. что при нем невозможно обнаружить добавление. если Mi. При этом секретный ключ присоединяется к сообщению. . 2) выбрать ключ к2 и вычислить Oq = Ek^ioq). Но на этот раз к со­ общению добавляется специальный блок. содержащий инфор­ мацию о длине исходного текста. . Схема раборание или перемещение нулей.Глава 5. то эта­ пы вычисления MAC можно описать так: oi = Ek{Mi). 2. МеждуТ I I народные стандарты предлагают три спосо' г~п ба дополнения: [^ [^ Ы 1. . разработанных для усложнения атакующим поиска ключа методом полного перебора: 1) выбрать ключ ki и вычислить Oq = Ek{Dki{oq)). . Опять все дополняющие символы — нули. Последнее значение Oq подается на вход необязательной заключи­ тельной процедуры. . и вся связка подается на вход хэш-функции. В конце всех добавляемых по необходимости нулей вставля­ ется одна единица. .15. 5. Все дополняющие символы — нули. связанных с тем.3). Другой способ аутентификации основан на криптографических хэшфункциях (см. . Выход хэшфункции и есть код MAC. 3. li = Mi® Oi-i для г = 2. Oi = Ek(li).15). . сигнализирующая о конце сообщения. Этот метод имеет множество недостат4' ков. . 5. q.

5.5. или «живое» видео) в реальном времени. . 51. требуется что-то бо­ лее быстрое. Однако это сложно осуществить на практике. «вытолкнутый» из регистра. в современных системах поток ключей генерируется из короткого основного ключа с помощью однозначно определенных детерминированных алгоритмов. в каждой из которых записан один бит информа­ ции. а в остальных ячейках — ну­ ли. 5. Для этих целей подходят поточные шифры. . Современные поточные шифры 151 5. . описанный выше. Но в качестве функции обратной связи берется логическая операция XOR исключающего ИЛИ.16. Множество таких ячеек и образует регистр. бит — выход регистра сдвига на данном шаге (рис. Допустим. сдвигая все остальные его биты на одну позицию вправо. Однако вместо фиксированного пото­ ка ключей. похожи на одноразовый шифр-блокнот. . Это микросхема с ячейками памяти. А ее значение записывается в самую левую ячейку регистра. в качестве функций обрат. с/].^^Р^'Тнои связью зъю или. например.16). которые на­ зываются отводами^ пропускается через функцию обратной связи. . и поэтому пользуются реги- Рис. 5о]. с которым мы уже встреча­ лись. Современные поточные шифры При шифровании большого объема данных (таких.6. РСЛОС^ функция обратной связи в котором линейна. сокращенно. . 5. как правило. рассмотренных ра­ нее. Они. По причинам. в которой на отводах стоят единицы. Этот регистр устроен так же. На каждом шаге содержимое нескольких заранее определенных ячеек. .6. о которых мы будем го­ ворить позже. который в ранних поточных шифрах и являлся секрет­ ным ключом. Их суть заключается в сложении по модулю 2 битов потока ключей с битами сообщения.1. Задается последовательность битов [ci.6. как речь. РСЛОС Стандартный способ генерирования потока битов основан на ис­ пользовании регистра сдвига с обратной связью. . Регистр сдвига с стром сдвига с линейной обратной сея.гН-^/-1И/-2Н-з1 ••• H2Hil'^ol-» ной связи желательно брать нелинейные L| ^фЦия обратной tвяtи ^ функции. что в начальном положении в регистре записана по­ следовательность [5/_1. нежели один из блочных шифров. На языке математики работу регистра длины / можно описать следующим образом. Самый крайний справа. На выходе регистра получается . как и общий.

окажется пери­ одической.. мы получим периодичность. при котором для всех достаточно больших значений пара­ метра i выполняется равенство Нетрудно подсчитать. 5/.ие ячейки регистра. Свойства выдаваемой РСЛОС последовательности тесно связа­ ны со свойствами двоичного многочлена С{Х) = 1 + ciX + С2Х^ + • • • + ciX^ е F2[X]. = (в). Двоичный многочлен С(X) стеX 4-Х-hi пени I называется примитивным^ если он неприво­ дим. то и на выходе мы будем получать сплошные нули. Напомним. Иначе говоря. ассоциированного с этим регистром. на что можно рас­ считывать. что периодом последовательности называется наименьшее натуральное число АГ. как и "* 1 "^3 1 "^2 1 "^l г соответствуюш. 5. Заметим.ие i значения аргументов функции обратной связи. На практике применяют РСЛОС ной связью. мы волей-неволей по­ лучим одну из уже встречавшихся. число возможных последовательностей длины I конечно. при­ митивный многочлен степени / удовлетворяет двум условиям: -¥2[Х]/{С{Х))=¥2{в)=¥21.ествует 2^ — 1 разных ненулевых на­ чальных состояний регистра. ввиду детермини­ рованности процесса. На 1—е-—' рис. что суш. где при j ^ I Sj = Ci • 5j_i 0 C2 • Sj_2 ©•••©€/••• 5j_/. это на то. ас.18 — с многочлеГИСТр сдвига с оо ^Q ^ ТТ П^ТГХ^^ линейной обрат. . 5/_|_i. Поэтому максимум. Его ненуле­ вые коэффициенты называются отводами. После этого. . поставляюш.. то ге­ нерируемая последовательность. 5. в конечном счете. Если же стартовал последовательность была нетривиальной. . а на рис.С примитивным ассоциированным многочленом.^^^ ^ + А "^ -f-1. 5/_i. социированный с многочленом Определение 5Л..Глава 5. и меняя их на каждом шагу..17 изображен РСЛОС^ ассоциированный с ^^' • • ^' многочленом X^-i-X+1. 52. что регистр сдвига с линейной обратной свя­ зью при любом ненулевом начальном положении будет генерировать последовательность битов периода 2^ — 1. Симметричные шифры последовательность 5о. что если в начальном состоянии регистра во всех его ячей­ ках стояли нули. . а его корень в является образующей мульти­ пликативной группы поля F2Z. . 5i. Действительно.. .F.

ге­ нерирующие примитивные многочлены.1].ая последовательность называ­ ется неособой.Х ^ . Регистр сдвига с линейной обратной связью.ассоциированный с многориодичность генерируемой последо. равенство s^j^i = Si выполнено для всех г. • Если С{Х) примитивен.Если с т а р ш и й к о э ф ф и ц и е н т ассоци^ ^«^-^5. т. Его можно найти в любом хорошем учебнике. представленную в табл. Иными словами. что произошло ввиду примитивности многочлена Х^ +Х + 1. то любое ненулевое начальное со­ стояние регистра дает последовательность с максимально возможным периодом 2^ — 1. что перед началом процесса в регистре записана после­ довательность [0.е. Ограничимся лишь неболь- . Как следствие. при котором многочлен С{Х) делит 1 -I. то начиная со следующего шага мы будем получать по­ вторения. В качестве примера рассмотрим РСЛОС с ассоциирован­ ным многочленом I + X + Х^. Поскольку внутреннее состояние на седьмом шаге вернулось к исходному. то соответствуюш. соответствующие многочленам со следующими дополнительными свойствами: • Когда С{Х) неприводим. при любом ненулевом начальном состоянии регистра период генерируемой последовательно­ сти равен наименьшему числу iV. Генерируемая последовательность в этом случае имеет вид Sj = Sj-i © 5j_3. г»|^2feiкзо I • • • I -^з I "^2 Hi !-• генерируемой РСЛОС^ зависят от ассоцив< ированного многочлена: т . период последовательности оказался ра­ вен 7. . тогда период генерируемого потока битов будет равен 7. период последователь­ ности будет делить число 2^ — 1. Современные поточные шифры Свойства последовательности битов. Допустим. то не.8.членом Х^^ + Х^ + 1 вательности может проявляться не сразу. 5. ированного многочлена с/ = О.6. криптографии или системам передачи данных. посвященном приложениям конечных по­ лей к теории шифрования. Наиболее интересны неособые последо­ вательности.Если Q = 1. Опустим доказательство этих утверждений. Мы не будем здесь обсуждать существующие алгоритмы.0.5. а не только для достаточно больших. и мы получаем последовательность.18. Она будет периодичной с самого начала.

что функ­ ция обратной связи в этой ситуации — просто сложение значений отводов по модулю 2. Очевид­ но.1.0] [1. е.Глава 5.1] [1. поскольку стартовое состояние регистра 5о. .ую известной нам части исходного сообш.0] [1. . вы­ шедших из РСЛОС^ можно вычислить весь генерируемый поток. Таблица 5. тем быстрее работает соответствующий регистр сдвига. Напомним. собственно.ения. действующая по формуле Sj = y^Ci • Sj-i j-i (mod2).1] [0. .1] генерируемый бит 1 0 0 1 1 1 0 1 Обосновывая слабую криптостойкость линейных регистров. Симметричные шифры шим списком таких многочленов с малым числом отводов.1. когда мы получаем шифрограмму. Х^^ + Х^ + 1.0. Х^^+Х^ + 1. ^ 3 9 + Х^ + 1. набор Ci коэффициентов ассоциированного многочлена. т.1. особенно при аппаратной реализации. Х^^ + Х + 1.1] [0. . исходя из ключа малого размера. именно того свойства. что для этого нам достаточно определить значения от­ водов. Х^° + X + 1.0.1] [1.0] [0. по­ кажем. . что зная длину / регистра и 21 последовательных битов.1. Хотя РСЛОС быстро генерирует поток битов.8. соответствуюш. Та­ кие данные можно получить с помощью атаки с известным откры­ тым текстом. Пример генерируемой последовательности бит Номер шага 0 1 2 3 4 5 б 7 состояние [0.0.0. Х^^+Х^ + 1. что чем меньше отводов в многочлене. Заметим. они плохо подходят для целей криптографии ввиду их линейности. Si-i можно взять из известной нам последовательности сгенерированных битов. X'^^ + X^ + l. которое придает им высокую эффективность в аппаратных средствах.

0. Линейной слоэюностью бесконечной последова­ тельности битов S = 5 0 . ассоциированный с РСЛОС. .1. найдем.О. . называется величина L{s)^ равная .0.L{s®t) ^L{s)-\-L{t).1.2. Поскольку бесконечную последовательность битов просмотреть невозможно. . . равен Х"^ -\-Х +1. .итен перед атаками с из­ вестным открытым текстом.. 2/ — 1. что поточный шифр. Определение 5.Если последовательность s периодична и ее период равен iV. . Можно сделать вывод.1.1. обозначая эту часть как 5^. ограничиваются ее первыми п элементами. если S нельзя получить с помош. если S — последовательность нулей. Подставляя в предыдущую систему уравнений элементы перехваченной последовательности и решая ее по модулю 2.§2.Для любого п ^ 1 выполнено неравенство О ^ L{s^) ^ п.1. . что мы перехватили последовательность битов 1. которые нам и нужно определить. получим систе­ му / линейных уравнений с неизвестными с^.0. .0. .ью какого-нибудь РСЛОС^ .длине наименьшего РСЛОС^ выдаюш.1. осно­ ванный на единственном РСЛОС^ беззап1. то L{s) < N.0. « 5 3 . Имеют место следующие свойства. Современные поточные шифры 155 Используя это соотношение р^ля j = Z. В матричной форме эта система выглядит следующим образом: / Si-i Sl-2 Si So \ Si Si-1 52 Si C2 S2I-3 S2I-A ••• Si-i Sl-2 Q_i S2I-2 S21-3 ••• Si Si-iJ \ Q / \S21-1J \S21-2 / ClгЛ Si-\-i Предположим.его последовательность s в остальных случаях.1. ^ 1 . .6. . .. .ОС. созданную 4-битовым РСЛОС..0. что многочлен. Мерой криптографического качества последовательности бит слу­ жит понятие линейной сложности последовательности.5.0. . .

Х4. суш. В качестве комбинирующей выбирают булеву функцию. при генерировании потока ключей регистром сдви­ га с линейной обратной связью длины /. . . f{xi. е. РСЛОС длины / выдает последовательность. получив не более 21 последовательных битов этого потока. • • •. Предположим.ий ключ лю­ бой нужной ему длины. зная длину РСЛОС и генерируемую им последо­ вательность битов.е. каждый из которых больше двух. Поэтому возникает необходимость найти нелинейный способ эксплуатации РСЛОС^ при котором генерируе­ мая последовательность обладает высокой линейной сложностью. линейный регистр генерирует потоки битов слишком далекие от случайных. чем п/2. Как мы видели. Следовательно. .19.| . L{s'^)^ . вычисляющий ряд линейных сложностей L{s^).Глава 5. С другой стороны. Х^) = 1 ® Х2 ® Хз ® Х4 • Xs ® XI • Х2 ' Хз • Х^.2. как показано на рис. In. может раскрыть ре­ гистр полностью и самостоятельно производить бегуш. L{s'^)^ L{s^)^ Кроме того.Мэсси. равную сумме различных произведений переменных. последовательность L{s^). 5.6.ествует эффективный алгоритм Берлекэмпа . . Таким образом. Хз. чья линейная сложность удо­ влетворяет соотношению: L{s'^) = I для всех п ^ I. генерируя совокупность по­ комбинирующая \LFSR-2\функция следовательностей д. Симметричные шифры Ожидаемая линейная сложность случайной двоичной последователь­ ности 5^ (именно ее мы и хотели бы видеть в качестве потока ключей) должна быть больше. . т. что у нас есть п РСЛОС с максимальным периодом (т. . . L{s^) для данной конечной последовательности s^. можно вычислить ассоциированный с регистром многочлен. 5. например. Для определения длины регистра используется ряд ли­ нейных сложностей.ий. атакуюш. Тог- . ассоциированные многочлены примитивны) с попарно различ­ ными периодами Zi. Хп • Ключом UFSR'l такого способа эксплуатации служит наР 5 19 К б чальное положение всех РСЛОС ^ а генериние РСЛОС руемый поток битов получается в резуль­ тате применения нелинейной комбиниру­ ющей функции к их выходным последовательностям.X2. Комбинирование РСЛОС На практике используют несколько ре­ \LFSR-4\гистров с линейной обратной связью од­ нелинейная \LFSR'3\новременно.

на удивление простой для запоминания. что %256 обозначает оператор вычисления остатка по модулю 256 (см. RC4 RC — сокращение от английского Ron's Cipher (шифр Рона). генерируемого функцией / ( ^ 1 . . j = (j+S[i])7. 23). Здесь сложение и умножение по модулю 2 заменено на обычные сло­ жение и умножение целых чисел. который складывается по модулю 2 с открытым текстом по одному байту за один раз.256.6-3. Массив 5 [ 0 . .. а затем повторяется следующая процедура: i=(i+l)y. На самом де­ ле. Сначала обнуляются переменные г и jf. 255]. . Этот шифр разработал Рон Ривест (Ron Rivest) из Массачуссетского тех­ нологического института (MIT).256. . В результате работы алгоритма получается поток ключей fc. Не следует думать.6. так что / записывается в привыч­ ной алгебраической форме. зависящим от ключа. RC4 — очень и очень быстрый поточный шифр.256. Над развитием способов комбинирова­ ния РСЛОС с целью создания поточных шифров работают много­ численные творческие коллективы. Стойкость шифра основана на следующем наблюдении: даже если нападающий узнал ключ К и номер шага г. поскольку объем книги ограничен и мы не можем позволить себе разрабаты­ вать здесь эту тему.. заполненный целыми числами от О до 255.5. . Современные поточные шифры да линейная сложность потока ключей. 5. Напомним. swap(S[i]. пе­ реставленными некоторым. S [ j ] ) . Поскольку алгоритм оперирует с бай­ тами. а функция swap меняет местами свои аргу­ менты. . а не с битами. он является быстрым и в программной реализации. вычисляется с помощью функции / : /(Zi. K=s[t]. ж^).. способом. что шифр RC4 — более ранняя версия блочных шифров RC5 и RC6.Zn). . он может вычислить всего лишь значение S[t]^ но не все внутреннее состояние массива. t=(S[i]+S[j])y. стр.. подает­ ся на вход ДС^. Опишем его по­ дробно. и использует наиболее простую операцию. Мы оставляем читателю иссле­ дование этого вопроса по дополнительной литературе.

Благодаря этому этапу генерируемая по­ следовательность мало говорит о внутреннем состоянии мас­ сива. . перестановок и сложений с ключом. как правило. . S[i] или S[j] Это очень сильный алгоритм. К р а т к о е с о д е р ж а н и е главы .t=(S[i]+S[j])%256.i=(iH-l)%256 обеспечивает использование каждого элемента массива. причем однократное. . На старте алгоритма значения ячеек весьма не­ замысловаты: ^[г] = г.256.Поточные шифры могут быть получены нелинейным комби­ нированием простых генераторов битовых строк. . В другой массив длиной 256 байтов заносится необходимое число копий ключа. называемых . . .Относительно новый блочный шифр — это Rijndael. что нападающий не в состоянии определить значение переменной ^.Глава 5. а именно.swap(S[i]. к сожалению. Поэтому. используется более подходящий режим.Наиболее известный и широко используемый блочный шифр — это DES^ обобщающий шифр Фейстеля. последова­ тельно увеличивая параметр i от О до 255: j = (j+S[i]+K[i])y.Нри эксплуатации блочного шифра необходимо уточнять ре­ жим его использования. .S[j]). . После этого присваивают параме­ тру j нулевое значение и выполняют следующие шаги. поскольку каждый его шаг увели­ чивает криптостойкость. swap(S[i].Современные шифры с симметричным ключом относятся к блочным или поточным шифрам. Симметричные шифры Это следует из того. . состоящим из замен.Как DES^ так и Rijndael добиваются высокой криптостойкости благодаря повторяющимся простым раундам.S[j]) изменяет массив в процессе итераций. СВС.j=(j+S[i])%256 обеспечивает нелинейную зависимость выход­ ных данных от массива. Простейший режим — это ЕСВ^ кото­ рый. Начальная перестановка массива S определяется ключом по сле­ дующему правилу. не зная j . имеет недостатки.

удоб­ ные ^\ля реализации с помощью аппаратных средств. В книге Шнайера содержится очень много сведений о блочных и поточных шифрах. Applied Cryptography.8.1. При этом получаются довольно быстрые шифры.5.3. Stinson. 5.7.1. Schneier. Контрольные вопросы 5.1. D. The Design of Rijndael: AES — The Ad­ vanced Encryption Standard. В чем состоит роль замен и перестановок в шифре DES1 5.6. Опишите операции тройного DES.1.^ представление о AES и подроб­ ное обсуждение атаки на блочный шифр (в частности и на Rijn­ dael) можно найти в книге Димена и Риймена. Что такое MAC? Приведите три примера. Springer-Verlag.1. изображение или звук) в реальном времени.2. В учебнике Стинсона. наилучшим образом объясняется диф­ ференциальный анализ. как они исправлены в режиме СВС. Cryptography Theory and Practice.1.1. Дополнительная литература Описание алгоритма Rijndael.1. Rijmen. 5. в которых могли бы использоваться эти коды.4. Опишите операции шифра Фейстеля. J. В чем состоит принцип Керкхоффа? 5. 1995. Что меняется в шифре Фейстеля при переходе от шифруюш. В чем состоит роль замен и перестановок в шифре Rijndael? 5.ей функции к расшифровывающей? 5.10. . В чем главное отличие криптосистемы DES от оригинально­ го шифра Фейстеля? 5. B. 2002.1. В какой части алгоритма DES перестановки усиливают криптостойкость? 5.5. Daemen and V. Современные поточные шифры 159 РСЛОС. Wiley.6.1. CRC Press.1. 5. которые шифруют информацию (например. предназначенном студентам.9. Назовите слабые стороны режима шифрования ЕСВ и ска­ жите. 1996.

3. 5. почему изменения. с = DESkADESg\DESkM)))- Найдите успешную атаку с выбором открытого текста на этот двухключевой DES^ которой требуется около 2^^ шагов ^Результат поразрядного сложения по модулю 2 строки а со строкой единиц.Глава 5. что если Ek — шифруюш.2. и не меняют вы­ ходных данных) и для чего они были сделаны.1. Найдите доступную реализацию алгоритма DES в Интер­ нете.их функций блочного ши­ фра с п-битовым ключом C = EkAEk2{m)) как шифрующую функцию нового шифра с ключом из 2п битов. например. Рассмотрим композицию шифруюш. Пусть а обозначает поразрядное дополнение битовой строки^ а. Если.2.2. Упражнения 5. 5. Рассмотрим модификацию алгоритма DES с двумя ключами вместо трех. что существует успешная атака с выбором открытого текста на этот шифр. то С = Ej^{rn). то а = 011001. корректны (т. РСЛОС часто используется р^ля создания поточных шифров. С помощью РСЛОС произведите несколько последовательно­ стей и вычислите их линейную сложность. Используйте тождество а Ф Ь = а © Ь. Покажите. Что такое РСЛОС и почему их нельзя непосредственно при­ менять р^ля поточного шифрования? Лабораторные работы 5.3. е. Симметричные шифры 5.11. 5. и разработайте соответствуюп1.1.1.3.2. перев. Сравните описание этого алгоритма в тексте книги с фактической. Объясните. р^ля которой нужно 0(2'^) памяти и О{2'^) операций шифрования и расшифрования с использованием функции Е. а именно. а = 100110. .ая функция алгоритма DES с ключом к и С = Ek{m).ий алгоритм. внесенные про­ граммистами в алгоритм. Указание.3. как вычислить линейную сложность последова­ тельности. — Прим. Покажите. Выясните.

генерируемая РСЛОС^ пе­ риодична с самого начала. что в этом случае последовательность.6. при любом его началь­ ном состоянии период получаемой последовательности равен наименьшему целому числу N^ при котором С{Х) делит мно­ гочлен 1 + Х^. Покажите.3.5. 5.4.3.5. ассоциированный с РСЛОС^ непри­ водим. и старший его коэффициент равен 1. Пусть многочлен С(Х). Опишите операцию расшифрования в режиме CFB. 5. . полученных с помо­ щью однократного DES. Современные поточные шифры и хранения в памяти 2^^ шифротекстов. Более того.

• Узнать о технике распределения ключей. Точное значение слова «большого» зависит от приложений. Так называют ключ. связанные с управлением секретными ключа­ ми и их распределением. разделении секрета. найти путь управления ключами. Статичный (долговременный) ключ.е. 6. т. . • Ввести понятие формального анализа протоколов. Но сначала нам необходимо разделить все многообразие симметрич­ ных ключей на отдельные группы и понять. времени жизни ключа. о котором идет речь. В этом параграфе мы обсудим некоторые способы решения этой задачи.1 • Управление ключами Для успешного использования симметричных криптосистем подоб­ ных DES или Rijndael партнерам необходимо как-то договориться о секретном ключе. в частности здесь будет рассказано - о о о о распределении ключей. основанной на раз­ личных протоколах. выборе ключа. может варьироваться от нескольких часов до нескольких лет. чем они друг от друга отличаются. Введем термины.ГЛАВА 6 РАСПРЕДЕЛЕНИЕ СИММЕТРИЧНЫХ КЛЮЧЕЙ Ц е л и главы • Понять проблемы. ко­ торый используется в течение большого периода времени. где ключ ис­ пользуется. Компрометация (раскры­ тие) статичного ключа обычно считается главной проблемой с по­ тенциально катастрофическими последствиями. и период.

партнеры. сколько от курьера. не доверя­ ющие посредникам и лишенные возможности встретиться.1. Обычно они доста­ точно эффективны. что криптостойкость системы зави­ сит не столько от ключа. который обычно называют центром дове­ рия. Вместо . С помош^>ю доверенных курьеров или вооруженной охраны ключи могут рассылаться традиционным фи­ зическим путем. то его можно использовать для генерирования ключей и обме­ на между любыми двумя пользователями всякий раз.6. Управление ключами Эфемерный или сеансовый (кратковременный) ключ применя­ ется лишь малое время. До семидесятых годов двадцатого века это дей­ ствительно был единственный безопасный путь распределения клю­ чей при установке системы.1. что как оба пользователя. Его обычно берут на вооружение р^ля обеспечения конфиденциальности в одном сеансе связи. по­ хитить или просто убить курьера. масштабировании (модульном нара­ щивании системы в рамках унифицированной архитектуры) кри­ птосистемы. В частности. Раскрытие сеансового ключа может повлечь за собой лишь нарушение секретности сеанса и ни коим образом не должно влиять на криптостойкость всей системы. в особенности при расширении. 6. но не лишены и недостатков. Кроме того. — предмет обсуждения настоящей главы. Ис­ пользуя криптосистемы с открытым ключом. так и центр работают в режиме онлайн. Ес­ ли долговременные секретные ключи распределены между пользова­ телями и неким центром. от нескольких секунд до одного дня. предназначенные для этой цели. но основной недостаток. Существует несколько ее решений. состоит в том. Это наиболее распространен­ ное приложение техники шифрования с открытым ключом. Протоколы. Ему сопутствовал ряд трудностей. связанный с таким способом распределения. подходящее из которых выбирается в зависимости от ситуации.1. Распределение с помощью протоколов с открытым ключом. когда в этом возникает необходимость. могут до­ говориться об общем секретном ключе в режиме онлайн в соответ­ ствии с протоколом об обмене ключей. Физическое распределение. Распределение с помощью протоколов с секретным ключом. то система будет скомпромети­ рована. Распределение ключей Распределение ключей — одна из фундаментальных задач крипто­ графии. Если подкупить. статичные ключи при этом должны распределяться физическим путем. этот способ распределения предусматривает.

кто-то по­ сторонний нашел Ваш ключ. Например.2. что хотя по-настоящему случайный ключ очень хорош для применения. Стоит заметить. Поэтому многие системы используют пароль или подходящие фразы р^ля генерирования секретного ключа. Выбор ключа Секретный ключ должен быть случайным в полном смысле этого слова. поскольку иначе. В этом случае система с п пользователями требует только п ключей. Как видно из табл. как мы убедились в главе 4. Его называют сеансовым ключом. используя который он может связываться с центром доверия. для небольшого уни­ верситета с 10000 студентов нужно около пятидесяти миллионов отдельных секретных ключей. к чему при­ ведет компрометация Вашего ключа? Другими словами. о ко­ торых будет рассказано позже в этой главе. чтобы шифровать большой объем данных непосредственно с помощью открытого ключа. Что Вам следует предпринять в связи с э т и м ? . Однако источник абсолютно случайных чисел очень трудно создать. Сеансовый ключ генерируется с участием центра доверия при помощи одного из протоколов. необходимо п{п — 1) 2 разных секретных: ключей. С большим количеством уже суще­ ствующих ключей связано много проблем. Одно из ее решений заключается в том.1. Чтобы понять масштабность проблемы. его крайне трудно удержать в чело­ веческой памяти. 6. обменивающихся закрытой информацией друг с другом. что при обслу­ живании п пользователей. стороны предварительно согласовыва­ ют секретный ключ. они генерируют ключ. Но теперь лобовая атака даже более опасна. Например. который будет использован только для передачи этого сообщения. . что за каждым поль­ зователем закрепляется единственный ключ. Затем для шифрования фактической информа­ ции применяется симметричный шифр с согласованным ключом. Распределение симметричных ключей того. нападающий может получить информацию о ключе. зная вероятностные распре­ деления ключей и сообщений. Все ключи должны быть равновероят­ ны и производиться с помощью настоящего генератора случайных чисел.1. С ростом п возникает проблема упра­ вления огромным числом ключей. пароль на- . отметим. . Когда двое пользователей хотят обменяться секретными сведениями.Глава 6. большое число ключей порождает сложную про­ блему управления. Итак. 6.

последовательность букв в естественном языке далеко не случайна. е.1. тем легче нападающему его вскрыть. т. которое до­ стигается при действительно случайном выборе восьми знаков. однако это тоже не выход.^2^^ 10^ « 2 ^ ^ Буквы 10^ « 2^^ 10^^ « 2^° Можно было бы использовать длинные фразы. что нападающий не сможет восстановить информацию. лежащий в пределах от О до 9999. по крайней мере один знак.3. отведенные под него. Многие из них требуют соблюдения. что ячейки памяти. поскольку. отличный от цифры и буквы. основывающиеся на именах или словах — об­ щая проблема большинства крупных организаций. исследуя жесткий диск.6Л. Перекладывание проблемы на плечи операционной системы командой del или rem не гарантирует того. как мы уже смогли убедиться. Общее правило состоит в том. Время жизни ключа Один из важных моментов. по крайней мере одна заглавная буква. простой номер.1. исключая атаку по словарю. Зависимость числа ключей от длины и типа используемых знаков Размер ключа 4 8 Цифры 10^. по крайней мере одна цифра. который следует принимать во внима­ ние при генерировании и хранении ключей. важно правильно уничтожить ключ по истечении его жизни. чтобы в пароле присутствовали - по крайней мере одна прописная буква. Управление ключами подобие PIN-кода. — это продолжитель­ ность их жизни. что чем дольше ис­ пользуемый ключ находится в обращении. все еще не обеспечивают максимально возможное число паролей. а всего лишь сообща­ ет системе о том. Короткие пароли. и тем большую ценность он р^ля него представляет. Но перечисленные правила. Даже при исполь­ зовании пароля из 8 символов число возможностей не дотягивает до 280 чего нам хотелось бы для обеспечения безопасности. легко установить с помощью лобовой атаки. 6. теперь свободны р^ля записи новых данных. Таблица 6. длина пароля — не менее восьми знаков. . состоящие из 2030 знаков. Кроме того. Обычно удаление файла не стирает его содержания.

Разделение секрета Как мы уже говорили. Однако противник. большее чем Ж + 1. . получив некоторое количество этих частей. Каждый участ­ ник разделения секрета получает свое значение Х^. которое будет известно и всем остальным участникам. не сможет вскрыть ключ.1. Мы ввели эту концепцию здесь. Ж по одному для каждой части ключа.ля определения ключа нападаюш. Ключ к — эле­ мент поля ¥р. Эта схема на данный момент не часто применяется на практике. Предположим. Распределение симметричных ключей 6. лишенный последнего недостатка. выве­ дав только (Т — 1) часть.Глава 6. Даже при использовании центра доверия необходим какой-нибудь способ получения ключа каждому его пользователю. Для разделения ключа к между пользователями ответственное лицо выбирает Т — 1 элемен- . Легальный пользователь сможет восстановить ключ полностью. передающих части ключа. . разделяется на несколько частей. Схема Шамира разделения секрета является типичным приме­ ром пороговой схемы. он может воспрепятствовать законному восстановле­ нию ключа.4. Доверенное лицо выбирает значения Xi G ¥р для г = 1. . Более сложный метод. как и прежде. Берем простое число Р . собранных вместе. состо­ ит в использовании одной из форм схемы порогового разделения секрета. например. Один из возможных путей решения состоит в расщеплении клю­ ча (более формально — разделении секрета)^ при котором ключ делится на несколько частей гь ^^ гь\ Ш п?2 Ш * * * мЗ i^T • Каждая его часть передается по своему каналу. Красота этого реше­ ния бросается в глаза: р. Ключ. ^Г)-пороговой схемой. W. что по Т из них. дабы подготовить читателя к лучшему воспри­ ятию различных схем разделения секрета в последующих главах. главная проблема — безопасное управление распределением секретных ключей. С другой стороны. превышаю­ щее определенное пороговое значение Т. . когда будем рассматривать протокол голосования. ключ однозначно восстанавливается. что ключ к разделяется на W частей таким образом. ес­ ли противнику удалось проникнуть в один из каналов. Схема с такими значениями назы­ вается (Т.ий должен суметь подключиться ко всем каналам сразу.

. . L). . желающим обмениваться закры­ той информацией друг с другом. .r\ Хп И ПО ним восстанавливается ключ: 6. . Предположим. . кото­ рое позволит восстановить F{X)^ а значит и ключ. Распределение секретных ключей Напомним. Чтобы восстановить ключ. приведем лишь схему восстановления ключа. В этом случае они могут попытаться решить систему уравнений: у^ =кЛ. .2.6. На практике применяется короткий способ решения этой систе­ мы с помош. что L хранителей секрета собрались вместе и обменялись значениями ?/^ (г = 1. необходимо п{п — 1) . что п пользователям. пользователи применяют процедуру интерполяции многочлена. никакой информации о ключе к извлечь не удастся.ью интерполяционного многочлена Лагранэюа. Вычисляются коэффициенты в>= П Ха J\. то система будет иметь единственное решение. Если L ^ Г.aiXi Н ar-iXf " \ yL = k + aiXb + • • • ar-iXl'^. Если же L < Т^ то система получится неопределенной и никак не поможет восста­ новить нужный многочлен.2. ат-1 и строит многочлен Т-1 F{X) = k-\-^ajXK После этого вычисляются его значения yi = F{Xi) при1^г^И^ и раздаются участникам разделения ключа (они держатся в секрете). Распределение секретных ключей тов поля ai. Не вда­ ваясь в подробное описание этого многочлена. Таким образом. .

В. Участники/администратор: Л. При использовании временной метки мы предполагаем. Числовые вставки: Па-. используя какой-то другой протокол. . Как было отме­ чено ранее.Символ каь за­ креплен за ключом.имени посылающего сообщение А. Ц^ля решения этой задачи разработано множество протоколов. которое будем обозначать буквой S.b}k. ^Используемые в шифровании открытым ключом общедоступный ключ и лич­ ный ключ.Глава 6. Будем предполагать.ения протокола. что эти числа могут обозначаться и по-другому. кьз-. Заметим. Число Па обознача­ ет числовую вставку. Временная метка: ta^ tb-. {na. Символьная запись А —>В :М.m. Это случайные одноразовые числа. уникальные для каждого сообш.2.ля распределения сеансовых ключей. известным только А и В. перев. но не объяснили как развертывается сеансовый ключ.числовой вставки М. созданная участником А. Распределение симметричных ключей разных долговременных криптографических пар^. ts. что лучше использо­ вать сеансовые ключи и несколько статичных. Долговременные секретные ключи: каь-. . что А посылает участнику В сообщение. В.^ означает. Кроме того. состоящее из . — Прим. Мы уже говорили. что они прибегают к услугам доверенного лица (ДЛ). . kas. это порождает проблемы управления огромным числом ключей и их распределения. что участники пытаются соблюдать синхронизацию часов. отвечаюп1. Щ. 6.a. Некоторые из них будут предста­ влены в этом параграфе.их за участников протокола и встречающиеся величины. что в обмене закрытой информацией участвуют двое: А — Алиса VL В — Боб.А. S. Сначала договоримся о символах. которое предлагают криптосистемы с откры­ тым ключом и которое часто бывает весьма элегантным. Обозначения При описании протоколов нам потребуются некоторые стандарт­ ные обозначения. в которых используется криптография с симметричным ключом р.1. предполагается.имени адресата Б . Позже мы познакомимся с решением про­ блемы распределения.Величина ta — временная метка. произведенную участником А.

Протокол передает ключ каЬ от Ак В через посредника 5. Ь}. с которым мы познакомимся — это протокол ши­ рокоротой лягушки. . зашифрованного с помощью клю­ ча kas^ используемого А совместно с S. Кроме этого. никогда не применявшимся ни одной из договаривающихся сторон. с которой Вы ведете закрытую переписку. что атакующий способен передать по сети и свое собственное сообщение. а. легко понять. Распределение секретных ключей .2. поскольку получив сообщение. что сторона. зашифрованное старым ключом. в частности.текста послания {пд. используя лишь 2 сообщения. но имеет множество недостатков. при которой нападаюш. Это означает.е. что А выбирает сеансовый ключ каь и пересылает его пользователю В. Сеансовый ключ. на котором можно продемонстрировать формальный анализ протоколов. о котором договариваются Аи В^ должен быть новым. наделенного такими большими возможностями. нам необходимо предусмотреть возможные атаки на протокол. Новизна ьслюча также подтверждает. С другой стороны. Такое сильное требование служит основной причиной слабого применения на практике протокола широкоротой лягушки. Против­ ника. что создает дополнительные про­ блемы. все еще дееспособна.ий может перехватывать любое сооб­ щение.2. Таким образом. т . Будем считать также. посвящена глава.6. В нем предполагается. что оно подложное. чему. в его способность создать стойкий ключ и хранить его в секрете. будем учитывать самую плохую ситуа­ цию. что пользователь J5 верит в компетентность Л. В частности. вносить свою правку или переадресовывать его. принято ото­ ждествлять с самой сетью. переданное по сети. Предположим.2. а в резуль­ тате работы протокола они хотели бы договориться о ключе каь и получить его в свое распоряжение для обмена закрытой информа­ цией друг с другом. предложенный Барроузом. это довольно простой и хороший при­ мер. приостанавливать. Как всегда. т. П р о т о к о л хпирокоротой лягушЕки Первый протокол. полу­ чатель jB не в состоянии прочесть зашифрованную часть этого письма. только что созданным. 6. Новизна ключа помогает пере­ играть противника. что заинтересованные стороны А и В пользу­ ются ключами has и kbs для связи с центром доверия 5. Перед описанием первого из протоколов нам следует определить его цели. для его реализации необходима синхронизация часов.

что тому следует пере­ слать ключ каь пользователю В. ко­ гда какие-то из трех часов идут медленнее или быстрее остальных. используемые в протоколе. Тем самым протокол будет работать некорректно лишь тогда. с протокола Пидхейма-Шредера. Этот протокол был разработан в 1978 году и является самым изучаемым на сего- . что протокол широкоротой лягушки коррект­ но работает только при синхронизированных часах всех его участ­ ников. Протокол широкоровременная метка соответствует недав­ той лягуш ки нему времени.. Распределение симметричных ключей Протокол состоит из обмена двумя сообщениями (рис. Этот протокол действительно очень прост. 6 .2. центр дове­ рия S расшифровывает последнюю его часть и проверяет. а именно.3. Расшифрованное сообщение гово­ 1 Боб Алиса! рит S о том.kJ 6. что обусловливается синхронизацией часов и предположением о том. который хочет переслать ему зашифрованную инфор­ мацию.Kb}kbs' Получив первое послание. Однако пользователь А мог сгенерировать этот ключ годы назад и хранить его на своем жестком диске. Корректная временная метка означает. начав с одного из самых зна­ менитых.1): А—> S:A. Протокол Нидхеима-Шредера Рассмотрим более сложные протоколы. что сеансовый ключ был создан недавно. то S шифрует требуе­ мый ключ вместе со своей временной меткой и пересылает получен­ ный шифротекст пользователю В.^ \:A{t.Глава 6. куда Ева имела возможность забраться несколько раз и снять копию ключа.{taAKb}kas^ S -—> В : {ts'>ci-. Однако это не создает больших сложностей. Мы уже говорили.b. что временная мет­ / \ ка близка к текущему моменту време­ / ни. или же показания часов были изменены принудительно. Если Р и с . 1 . поскольку до­ веренный центр S проверяет или генерирует все временные мет­ ки. доверенное лицо 2: КаЛаь}. Поэтому остальные стороны долж­ ны лишь записать разницу в показаниях своих часов и часов центра.. 6. При получении сообщения от S участник переписки В расшифровывает его и проверяет свежесть временной метки. что участнику А можно доверить генерирование сеансового ключа. После этого он может прочесть ключ каЬ и имя человека Л.

Обратите внима­ ние на то. что отправителем этого посла­ ния действительно является Л. Он получил известность благодаря тому. .6. В него включается числовая вставка п^. {каЬ. Алиса Пд доверенное лицо 2:{na. — факт. Основной недостаток протокола Нидхеима-Шредера заключается в том.b. . он должен удостовериться. 6.a}j^Jk^ Р и с . каЬ.S генерирует ключ каь и посылает его А вторым письмом. Протокол Нидхеима-Шредера Теперь мы разберем каждое из сообщений протокола подробно и объясним их предназначение. и в четвертом сообщении протокола он пересылает свою числовую вставку участнику А в заши­ фрованном виде. . инициатор переговоров шифрует простое вы­ ражение. Распределение секретных ключей дняшний день.kab.2. чтобы убедить партнера В в своей дееспособности. и отсылает его В.{kab. Ь. что в результате его работы у пользователя В нет оснований считать.Участник В должен проверить. что даже самый простой протокол может долгое время скрывать свои пробе­ лы в обеспечении безопасности.В.В последнем сообщении. -^В : {Кь. .2.ah^^ Боб 5:{пь-1к \. 6.А. что полученное сообщение было послано в ответ на его запрос. что к сообщению прикреплена уникальная числовая вставка. т.В первом пользователь А сообщает центру доверия 5. зависящее от пь. по которой клиент А узнает. который . что полученный ключ является новым. что он намерен получить ключ для переписки с В. созданная А. . Сеансовый ключ зашифровывается с помощью kbs и прикрепляется к этому сообщению. Обмен письмами идет по следующей схеме (рис. что А все еще действует.2): АSАВ А- ^S ^ А {Па.о]кье^ -^А -^В а}кье }kas -> 3: {kgb. е.В третьем письме сеансовый ключ пересылается пользователю В.

Распределение симметричных ключей был замечен только спустя некоторое время после опубликования протокола.b}k^^. {^b. Как и ранее. что AVL В принимают секретный сеансовый ключ. например. {па. Аналогично прото­ колу Нидхейма-Шредера. (па . Протокол Отвэй-Рйса Протокол Отвэй-Риса состоит из следующих этапов (рис.kab}kas^ {nb.a. Противник. {na.kab)k.a. Про­ токол Отвэй-Риса короче протокола Нидхейма-Шредера. 6. центр доверия генерирует ключ каь для двух ПОЛЬЗ оватслсй. В. Кроме того. {na.m.b}f^ . {na.m.2. свидетельствуя о свежести всех шифрованных компонентах сообщений. В некоторых протоколах обходятся без посредников. Протокол Отвэй-Риса Протокол Отвэй-Риса практически не используется начиная с 1987 года. \'. Заметим.3.kab}kbs^ в — ^ А : М . А. может использовать старые письма вместо последних трех сообщений. {щ. Здесь участвуют числовые вставки Пд и п^. вынуждая его принять свой ключ. числовая вставка М связывает сообщения одного сеанса между собой. в то время.b}ka^.А.&Ь^^. но и он не лишен недостатков. которые на него возложены. как В предполагает. Как и прежде.т. по­ скольку вся ответственность здесь ложится на плечи 5. 6.a. что все участники протоколов доверяют S во всех функ­ циях. Таким образом нападающий может обмануть 5 .каь)к^. Однако эти сообщения вы­ глядят совсем по-другому.. найдя сообщения и ключ предыдущих се­ ансов. с открытым ключом. S —> В : М. А. но он важен с исторической точки зрения. {na. что ведет переговоры с А.а. в связи с чем ни у одной из сторон нет необходимости полагаться на другую в выборе хорошего ключа.4. два пользователя пытаются достигнуть догово­ ренности о ключе через посредничество центра доверия 5.3): А —> в : М.m.Ь}^ : Алиса 4: Л/. доверенное лицо 2: М. А.a.а. {пь. В. В —> S : М. {na. со­ зданный центром доверия. {паЛаь/м^ Рис.b}j^^ Боб И 3:М.m.М. а привлекаются другие ал­ горитмы. В этой главе мы будем считать. в. В.kab}kas' . в нем не требуют синхронизации часов.Глава 6. поскольку он состоит только из четырех сообщений. 6. в которых упоминается J5.т.

содержащее числовую вставку Пд.2. системы аутентифи­ кации. 6. сервер уведомляет участника В о числовой вставке. д. Действительно. программы или специальные службы. Цербер Закончим параграф рассмотрением Цербера. что компьютерная сеть состоит из клиентов и сервера. Цербер разработан в Массачуссетском технологическом институте (MIT) в 1987 г. в новизне которой пользователь А уверен. Цербер может служить системой предоставления доступа к различного вида услугам и ресурсам. причем клиентами могут быть пользователи.6. в то время как другой отдел проверяет Ваш уро­ вень доступа к ресурсам компании. устанавливает Вашу личность.ел в реальных фирмах. и т. размер пространства ключей должен иметь порядок 0{п). поскольку именно он был ее создателем. В его основу легли идеи протокола НидхеймаШредера.2. Сле­ довательно. включающую как клиентов. как часть проекта «Афина». но у J9 нет никаких осно­ ваний полагать. говорят. основанной на симметричном шифровании с помощью цен­ тра аутентификации. Модифици­ рованная версия этого протокола используется в операционной си­ стеме Windows 2000. Таким обра­ зом. Посмотрим. который выдает сертификаты (разрешения) на доступ к ре­ сурсам: файлам. с которой мы будем разбираться позже.5. что знают договаривающиеся стороны. что В послал сообщение. свое письмо В тоже должен был послать недавно. где имеется центр идентифика­ ции и сервер генерирования сертификатов (TGS — ticket generation server). А понимает. что полученное им послание не было повторением старого сообщения. персонал одного отдела. включенной в сообщение клиентом Л. Предполагается. что про­ токол Отвэй-Риса не содержит подтверждения ключа. Распределение секретных ключей Поскольку протокол не использует ключ каьfl^л. . Такое же разделение функций присутствует и в системе Цербер. если в систему входит п клиентов. так и их секретные ключи. ни одна из сторон не представляет. Цель Цербера состоит в идентифика­ ции клиентов и генерировании для них сеансовых ключей. Подчеркивая эту особенность. Разделение функ­ ций идентификации и предоставления доступа — хорошая идея. Цербер хранит центральную базу данных. известен ли этот ключ другому участнику. например. принтерам. знакомясь с SPKL Такое разделение отражает обычное положение д. С дру­ гой стороны.яшифрования сооб­ щений. Кроме того.

которую он может прочесть.B. Последний сертификат состоит из ключа каь^ времени его жизни / и временной метки tg. .l. ' Р и с .л.a}kjk.Глава 6. «j^ зашифрованный ключомfc^^.kab.В Алиса 4:{ta+n доверенное лицо 2: {ts. содержит сеансовый ключ kas. используя свой пароль.Если S разрешает эту связь.Клиент А применяет ключ kas А. что он хотел бы связаться с В. .kab. зашифрованный с помощью этого пароля. что временная метка является свежей. {(^^ta}kab^ В-^А: {ta^l}kab. 6. Выданный сертификат используется для «удостоверения личности» А в последующем обращении к В. показывая тем самым.kab.fa.b.l. Распределение симметричных ключей Предположим. Боб 1:А.и отсылает его А для передачи В.l. /.Шредера.в первом обращении клиент А сообщает 5. В этом протоколе устранены недостатки. 6. что он знает сеансовый ключ и готов к связи. каЬ'. но за счет обязательной синхронизации часов. Сервер выдает ему сертификат.4): 3:{ts. .3. присущие протоколу Нидхейма . в частности. то создает сертификат {t^. Обмен информацией в системе Цербер представлен ниже (рис. Цербер А —>S:A.я получения следующего сер­ тификата. желая проверить действенность сертификата и свою возможность воспользоваться ресурсами 5 . Сертификат. клиент А хочет воспользоваться ресурсами кли­ ента В. разрешающего доступ к ресурсам клиента В. Пользователь А получает копию этого ключа в той форме. Тогда он заходит на сервер аутентификации. 4 .ta}.Клиент Л. что они весьма запутанны.{ts. ^ >Л: {ts^^kab-^O^ \^si4kab^CL\kbs\kas'> А —> В : {ts. проверив.a}kbs. 6 .Клиент В отсылает назад зашифрованную величину ^а + 1. Формальные методы проверки протоколов Из обсуждения протоколов в предыдущем параграфе можно сделать вывод.kab. посылает заши­ фрованную временную метку ta участнику В. и выявление их недостатков ока- .l.aL.

Основная идея ВАМ-лотжки. что Р видит X. в котором содержится X. что Р и Q используют для общения разде­ ленный ключ к. .# Х означает.Р\ г^ X означает. как и любая формальная логика. изобретенная Барроузом. т. но она была в свое время очень полезна при проектиро­ вании и анализе протоколов распределения симметричных ключей типа Цербер и Нидхейма-Шредера.6. но сохраняет свое значение как с исторической. что ключ достаточно стоек и не может быть раскрыт никем из посторонних. что данные X за­ шифрованы ключом к. что Р однаэюды высказал X и в тот момент верил в его истинность.Обозначение {Х}^ обычно подразумевает. необходимо разработать соответствующий аппарат.е.Р <Х подразумевает. как будто X — истинная информация. в частности X останется засекреченным до тех пор. Формальные методы проверки протоколов зывается довольно тонким делом. Заметим. что при анализе про­ токолов в первую очередь стоит обратить внимание на восприятие сторонами поступающей информации — что они принимают на ве­ ру. в связи с чем мы сейчас ис­ следуем BAN-лотшау более подробно. а что им доподлинно известно или может быть выведено логи­ ческим путем из достоверных для них фактов. состоит в том. е. что высказывание X получено недавно. . к .е. Абади и Нидхеймом. . так и с учебной точек зрения. кто-то послал со­ общение пользователю Р . ~ Р\ = X означает. Р станет действовать так. что X входит в юрисдикцию Р . . пока од- . . что здесь мы не уточняем время этого события. Так что Р может прочесть и воспроизвести X. Наиболее сильный из них — БЛТУ-логика.3. Чтобы подойти к этой задаче с научной точки зрения. Р обла­ дает властью над X и по этому вопросу Р можно доверять. Даже при современ­ ных подходах к моделированию инфрасруктуры открытых ключей {PKI) берут на вооружение эту идею.Р\ =^ X означает. имеет ряд недо­ статков. Шифрование считают совершенным. если это не предусмотрено протоколом. БЛЛГ-логика. Этот символ используется обычно для числовых вставок. т. что участник Р верит в (или имеет право брать на веру) высказывание X. т. В настоящее время она вытесне­ на более сложной техникой и формальными методами.Р -*—• Q означает. Введем обозначения. Предполагается.

что В когда-то высказал X. BAN-логика. что и В верит X. что сам А никогда не высказывал X.Глава 6.А<{Х}К А\ =В\ г^Х Эквивалентная словесная формулировка: из предположений о том. что здесь неявно предполагается. что В по-прежнему доверяет X. вместо обычной логической операции «И» употребляет­ ся запятая. В С означает. опирается на множество постулатов или правил вы­ вода. Кроме того. и Л верит в то. Оператор доверия («=») и запятая. Правило о значении сообщения: А\ =АЛ^В. т. которое читается так: высказывания АиВ влекут С. что из истинности утверждений АиВ следует истинность высказывания^ С. Мы разберем лишь главные из них. то А верит. перев. что если А верит в полномочия В относительно X.Y) ' Р\ ={X. Правило юрисдикции А\ =В\ =>Х. е.ая высказывания. рассматриваемые совместно. Другие правила. — Прим.Y) Р\=Х ' Р\ =Q\ ={X. если А верит в новизну X и в то. Такой способ символьного изображения сложных конструкций принят во многих формальных логиках. то А должен верить в X. зашифрованное ьслючом К^ мы делаем вывод: А верит. а запись А.Р\ =Y P\={X. подчиняются сле­ дующим соотношениям: Р\ =Х. Правило проверки уникальности числовых А\ = # Х . разделяюш. Распределение симметричных ключей на из сторон сознательно не раскроет его в какой-то другой части протокола. А\ =В\ вставок: А\=В\^Х =Х т. .А\ А\=Х =В\ =Х говорит.Y) P\=Q\=X ' ^ Часто в литературе можно встретить эквивалентное обозначение: Л И Б => С. что А верит в совместное использования ключа К с В^ и А видит сообщение X. Заметим. что В в какой-то момент высказал X. А полагается на 5 в деле с X.е.

ем ключе. которые считаются истинными в начале работы протокола. Этот процесс называется идеализацией и наиболее уязвим для ошибок.уу Попытаемся теперь проанализировать протокол выбора ключа для А VL В^ опираясь на БЛАГ-логику. оба участника должны поверить в то. что в результате работы протокола А будет уверен в знании В о том. Формальные методы проверки протоколов Оператор «однажды высказал» удовлетворяет аналогичному соот­ ношению: Р\ ^Q\ ^ ( Х . Наконец. Для наглядности. подвергнем анализу протокол широкоротой лягушки.kab}kbs' . Иначе го­ воря. как это все работает «в реаль­ ной жизни».3. что они нашли секретный ключ для обмена друг с другом закрытой информацией. Кроме того. У). Однако можно было бы потребовать и большего. поскольку его невозможно автоматизировать. нам необходимо сделать предположения или сформули­ ровать постулаты. а В верит в то.6. использующий синхронизацию часов.3.a. т.b. если какая-то часть высказывания получена недавно. А\=В\=АЛ^В И B\=A\~AJUB. например. Перепишем протокол в символьной форме согласно правилам BAN-ЛОГИКИ. У ) Р\ =Q\ ^Х * Заметим. что и А знает об их обш. е. поскольку последнее означает. Прежде всего сформулируем цели протокола. 6. Анализ п р о т о к о л а пгирокоротой лягухпки Напомним. что он состоит из обмена двумя сообщениями: А—>S: A.1. чтобы понять. то это же можно утверждать и про всю конструкцию: р\ =#{х.{ta. что предположения Р\ = Q ~ Х и Р | = Q ~ У н е влекут утверждения Р | = Q ~ (X. которые как минимум состоят в следующем: A\=AJ^B И В\=А^В. что Q произнес X и У в одно и то же время. что обычно называют подтверэюдением приема ключа. что он разделяет секретный ключ с Л. можно считать.kab}kas^ S—>В: {ts.

что А^ В и S используют секретные ключи для обмена ши­ фрованными сообщениями друг с другом. что на языке БЛЛ^-логики может быть выражено как A\~A^S.. . Посмотрим. как последние предположения обнажают проблемы. Распределение симметричных ключей При идеализации это выглядит так: S-^B: {ts. .А верит. Итак. связанные с протоколом. что и все сообщение написано недавно.178 Глава 6..A\ =Л^ВЬ. Опираясь на сделанные предположения. Есть пара предположений о временных вставках: S\ = Ща ^ В\= #ts И еще три предположения: . . о которых мы говорили ранее. . ВИДЯ сообщение. что оно было послано клиентом А. ~ каЬ — ключ. что сеансовый ключ принят: А\=А^В.. Идеализированное первое сообщение говорит 5.. мы можем проанализи­ ровать протокол. что . какие предположения сделаны в начале работы протокола? Ясно.A^Bh^. который прсдлагастся использовать для комму­ никации с В. В\=В^ S\=A^S B\=Ai^S. зашифрованное ключом Kas-) может сделать вывод о том.ta — временная или числовая вставка. какой вывод можно сделать из пер­ вого сообщения A ^ S : {t. Обратите внимание на то.В полагается на Л в выборе хорошего ключа: В\ ={А\ ^А^В). .В доверяет S передать ключ от А: В\ ={S\ ^Л| f^ab =Л^^Б). S.Наличие свежей временной вставки ta позволяет участнику S заключить.5.

~ Временная вставка ts доказывает 5 . что послал. что анализируемый протокол распределения ключей обосно­ ван.Увидев послание. клиент В пони­ мает. S\=A\=A^B. . необходимыми любому протоколу А^ля работы. что в юрисдикцию S входит выяснить. е.6. т. что S доверяет второй части со­ общения. что клиент А верил в то. Краткое содержание главы . зашифрованное ключом кьз-. Обратимся к следующему этапу: S^B: {t.Следовательно.В частности. что S доверяет все­ му посланному. и поэтому В вверяет А полномочия по генерированию ключа.е. этот формализм проясняет точки зрения на работу протокола всех его участников. свя­ занная с симметричными шифрами. Кроме того. знает ли его партнер А секретный ключ.3. Комбинируя это с исходным предположением: А| = А -*-^ Б . . . полу­ чаем. .. А не добился подтверждения тому. Формальные методы проверки протоколов 179 . это А\ =В\=А^В. так что их стало легче сравнивать с предположениями...Ввиду свежести сообщения. что применение BAN-логики к ана­ лизу формализовало все этапы протокола. Единственное. . чего мы не встретили в нем.Но В верит и в то. Обратите внимание на то. В верит в то.Из свежести всего сообщения S выводит. что В получил нужный ключ. т.a\ =AJ^B}k. . S подготовлен к посылке второго сообщения протокола. . Из этих рассуждений можно сделать вывод: В\ ^ А ^ В и В\ =А\ =А^В.Распределение секретных ключей — основная проблема. что все сообщение было послано только что.Для распределения ключей по нескольким каналам можно ис­ пользовать схему порогового разделения секрета. что оно было отправлено S. В заключает.

почему перечисленные ниже правила вывода име­ ют силу постулатов. Что собой представляет проблема распределения ключей? 6. Что такое схема порогового разделения секрета с порогом tl 6. М. Needham. иногда. 1995.1. Р<Х и Р| - X 6. связан­ ные с протоколом. A Logic of Authentication.А<{Х}К А\=В\ ^Х .1. М. D. Контрольные вопросы 6. Дополнительная литература Удачное введение в современные схемы разделения секрета мож­ но найти в одиннадцатой главе книги Стинсона. Для анализа протоколов разработаны всевозможные аппара­ ты. Правило о значении сообщения: А\ =АЛ^В. Cryptography: Theory and Practice.. Распределение симметричных ключей Многие существующие протоколы распределения ключей при­ бегают к посредничеству третьего лица (центра доверия) и симметричным алгоритмам шифрования.1.3.4.1. Статья Барроуза. Эти протоколы тре­ буют предварительной договоренности о долговременных клю­ чах р^ля обмена информацией клиентов с центром доверия и. Abadi and R. Абади и Нидхейма — легко читаемое введение в 5Л#-логику с при­ мерами анализа протоколов распределения ключей. 1990. SRC Research Report 39. Многое из рас­ сказанного в этой главе основывается на этой работе.5.2.1. Как числовые вставки используются в протоколах этой гла­ вы? Какие стороны безопасности протоколов они обеспечи­ вают? 6. CRC Press. Digital Equipment Corporation. Она по­ могает вычленить четкие предположения и проблемы. Расскажите.Глава 6. Наиболее важным из них считается BAN-лотжкь. Stinson. синхронизации часов.1. Объясните значения следующих символов 5ЛЛ^-логики: Р\ =Х. Burrows.

ениями происходит по схеме: А —> В : Ai = т®а. Алиса знает только свой ключ а.3. что интерполяционный метод Лагранжа действи­ тельно раскрывает секретный ключ схемы Шамира разделе­ ния секрета. вычислив А2®Ь.2.ение т и пересы­ лает его Бобу. что Ева. е.1. что после такого обмена информацией.А\ =В\ А\ =Х =Х 6. 6. Почему в протоколе Нидхейма-Шредера мы не посьмаем в качестве пятого сообщения сообщение вида: Упражнения 6. Докажите.3. противник.е раз наш анализ протокола широкоротой лягушки и осознайте. Формальные методы проверки протоколов 181 Правило проверки уникальных числовых вставок: А\ =#Х.6.А\ = В\ А\ шВ\ =Х Правило юрисдикции: А\ =В\ ^Х ^Х. Как Алиса.2. В — > А : Bi = Ai®b. но не хотят мучиться со всеми перепития­ ми процедуры распределения ключей. Боб смо­ жет расшифровать сообш. е. также. какие постулаты 5ЛЛ^-логики исполь­ зовались на каждом из этапов анализа. . основанный на одноразовом шифрблокноте.1. т. тоже в состоянии прочесть оригинальное сообщение т. Поэтому они разраба­ тывают свой протокол.2.2. При этом Алиса шифрует сообш.ение т .6. Докажите. 6. Алиса и Боб знают об абсолютной стойкости одноразового шифр-блокнота. Покажите. а Боб — только свой Ь. Обмен сообш. Просмотрите еш. А —^ В : А2 = Bi®a. т. так и Боб вычисляют свой поток ключей.

. даже не подозревавшие о суш. Главное из них состоит в том. она дает возможность сторонам подпи­ сывать сообш.ЧАСТЬ III КРИПТОСИСТЕМЫ с ОТКРЫТЫМ ключом и подписи Техника шифрования с открытым ключом. такие как электронные заказы или финансовые поручения.ествовании друг друга до первого письма.ью криптосистемы с откры­ тым ключом.ения. Кроме того.ествование технологий электронной торговли. что стороны. могут успешно обмениваться информацией. зашифрованной с помош. имеет много преимуществ перед симметричным шифрованием. разработанная А^ЛЯ ре­ шения проблемы распределения ключей и аутентификации. В результате шифрование данных с открытым ключом обеспечивает суш.

В крипто­ системах. Расши­ фровать посланное сообщение сможет только тот. воспользовавшись ее открытым ключом. В результате любой желающий может зашифровать с его помощью свое письмо и послать закрытую ин­ формацию владельцу соответствующего секретного ключа. на которых оно основывается. Открытый ключ может быть опубликован в справочнике наря­ ду с именем пользователя.ГЛАВА 7 ОСНОВНЫЕ АЛГОРИТМЫ ШИФРОВАНИЯ С ОТКРЫТЫМ ключом Ц е л и главы • Узнать о шифровании с открытым ключом и трудных мате­ матических задачах. имеют место преобразования: сообщение -h ОТКРЫТЫЙ КЛЮЧ АЛИСЫ = ШИФРОТЕКСТ ШИФРОТЕКСТ -h секретный ключ Алисы = сообщение. Криптография с открытым ключом Напомним.ихся сторон должна иметь копию общего секретного ключа. что создает сложнейшую проблему управления ключами. у кого есть се­ кретный ключ. Более точно. Таким образом. • Понять алгоритм RSA и условия его криптостойкости. 7. используются два ключа: открытый и секретный. что в симметричной криптографии каждая из переписываюш. Но только Алиса . о которых пойдет речь в этой главе. • Разобраться в криптосистеме Эль-Гамаль. каждый может послать Алисе секретную инфор­ мацию.1. • Узнать о шифрующем алгоритме Рабина.

и р. RSA. Проблема создания работающего алгоритма шифрования с от­ крытым ключом была решена новым сотрудником GCHQ по имени Клиффорд Кокс в 1973 году.Глава 7. что в 1969 году. Таким образом. Идея криптографии с открытым ключом впервые появилась в 1976 г. Малькольм Уильямсон. но владение секретным ключом обеспечивает возможность расшифровывать сообщения. которое сложно было бы обратить (без знания специальной секретной информации) для реализации вто- . работающий на центр связи Британского правительства (GCHQ). В течение одного дня Кокс разработал систему. Эллис. Шамира и Адлемана. к которому мы обратим­ ся в главе 10. в революционной работе Диффи и Хеллмана «Новые напра­ вления в криптографии». открыл кон­ цепцию криптографии с открытым ключом (или несекретное ши­ фрование. найденных как Эллисом. как и Диффи с Хеллманом. к алгоритму RSA. В основе алгоритма шифрования с открытым ключом лежит на удивление мало идей. Но только год спустя была опубликована первая (и наиболее успешная) криптосистема с открытым ключом. поскольку лишь у нее есть соответствующий секретный ключ. Причина работоспособности таких криптосистем заключается в односторонней математической связи. не смог разработать в деталях соответствуюшую криптосистему. существующей между двумя ключами.ля ее понимания требуется определенное время и умственные уси­ лия. а именно. Основные алгоритмы шифрования с открытым ключом в состоянии расшифровать сообщение. Оказа­ лось. более чем за пять лет до публикации основопо­ лагающей работы Диффи и Хеллмана. изобрел концепцию алго­ ритма (обмена ключом) Диффи-Хеллмана. В 1974 году другой служащий GCHQ. зашифро­ ванные открытым. Этим и объясняется близость алгоритмов. является алгоритмом RSA^ за целых четыре года до Ривеста. Малое количество идей объясняется необходимостью найти какое-нибудь легко осуществимое на стадии шифрования матема­ тическое преобразование. Впрочем. которая по существу. Однако в конце 1990-ых годов появилась неофициальная версия освещения событий. На первый взгляд такая связь кажется странной. Джеймс Эллис. при которой информация об открытом ключе никак не помогает восстановить секретный. так и Диффи с Хеллманом. как он ее называл) как средство решения проблемы рас­ пределения ключей. к 1974 году Британская служба безо­ пасности уже имела основную технику криптографии с открытым ключом. В предыдущем абзаце описана «официальная» история возникно­ вения криптографии с открытым ключом.

предваряя рассказ об алгоритмах шифрования с открытым ключом. что если алгоритм.2. Определение множителей является очень трудоемкой вычислитель­ ной операцией.1 = 3391 • 23 279 • 65 993 • 1868 569 • 1066 818 132 868 207.1. имея достаточ­ но большие компьютерные мощности. Таким образом.2. то ему требу­ ется полиномиальное время на работу (напомним. Для оценки сложности алгоритма. например. используемая в крипто­ графии с открытым ключом. обла­ дающее указанным свойством. Однако при сложности алгоритма 0(1/дг(1. раскладывающего целое число N на простые множители. — это разлоэюение на мнооюители или факторизация целых чисел. а вот выйти без ключа довольно проблематично. есть некоторый набор широко известных и всесто­ ронне изученных односторонних функций.e x p ( ( / 3 + o(l))(ln7V)^(lnln7V)^-^). мы познакомимся с примерами односторонних функций. расшифрования. Под разложением на множители цело­ го числа понимают его представление в виде произведения простых делителей. скорость роста функции Ьм{а^Р) при О < а < 1 лежит между полиномиальной и экспоненциальной./3)). к счастью. но. Однако они являются односто­ ронними только в вычислительном отношении. 7. называется односторонней функцией или функцией-ловушкой. В следующем параграфе. е. имеет сложность О(1/дг(0. / 3 ) . 60 = 2^ • 3 • 5. что размер зада­ чи на входе — InN).^)) ему А^ля работы потребуется уже экспоненциальное время. т. проблема вычисления дис­ кретных логарифмов или вычисление квадратных корней по моду­ лю составного числа. Односторонние функции рой стадии алгоритма. т. часто используют функцию L ^ ( a . раскладывающий на множители целое число. К ним относятся задача разложения целых чисел на множители. чем найти секретный ключ в результате полного перебора. 10 = 2 • 5. Обратите внимание на то. 2^1^ . Поэтому про алгоритм . Придумать такую функцию на пустом месте довольно непросто.^ поскольку в ее дверь войти легко (заши­ фровать данные). Односторонние функции Наиболее важная односторонняя функция. е. Преобразование. причем быстрее. их вполне можно обратить.

дано число N = p-q^ но не известен ни один из его простых делителей. что такой подход близок к полному перебору и имеет экспо­ ненциальную сложность LN{1^ 1). В этом алгоритме для всех простых чисел р^ не превосходящих проверяется условие N/p G Z. Некоторые из них мы будем обсуждать в следующей главе.q с простыми р и q. Его сложность оце­ нивается как Lp(l/2. Существует несколько методов факторизации числа N = р . а его сложность оценивается как Ьдг(1/2. Возникают четыре основных за­ дачи: .2)). Ясно. . связанных с фактори­ зацией. Существует ряд других сложных задач.Метод эллиптической кривой хорошо работает.Глава 7. .Квадратичное решето в числовом поле. Заметим.1). . что оценка выражена через неизвестный простой дели­ тель.е. т. В настоящее время это наиболее успешный метод для чисел. лежащих между 10^^ и 10^^^. что умножение.Квадратичное решето^ вероятно. наиболее быстрый способ разложения чисел. что m ^ = C(modiV). что он требу­ ет суб-экспоненциального времени. а сейчас лишь назовем наиболее известные. .c). С его помощью можно разлагать на множители числа до 10^^^ ^ 2^^^. последнее из которых удовле­ творяет соотношению: Я0Д{Е. Основные алгоритмы шифрования с открытым ключом со сложностью 0{Ь^{а^/3)) при О < а < 1 говорят. которые используются для разработки криптосистем с от­ крытым ключом. Заме­ тим.е. Его сложность . она суб-экспоненциальна.Задача RSA: даны числа С и £". насчитывающих 100 и более десятичных знаков. = 1.q. если N — произведение двух сильно отличаю­ щихся друг от друга простых чисел.Факторизация: найти делители р и q числа N = р . — очень простая операция. если один из простых множителей р не превосходит 2^^. Так что. требующая времени меньше. чем О(Хдг(0.{р-1){д-1)) Требуется найти такое число ш. Предположим. т.Пробное деление. . то метод эллиптической кривой может оказаться весьма эффективным. процесс обратный к разложению на множители.

2. •) — конечная абелева группа. существуют простые методы.: определить. около 160 бит. Другой важный класс задач связан с дискретным логарифмиро­ ванием. где с — некоторая константа. основанные на эллиптической кривой.с). называется рметодом Полларда. которое при данных А^ В ^ G удовлетворяет соотношению А"" = В. подобных эллиптической кривой. нужно вычислить X. от- .А = В. если G — груп­ па целых чисел по модулю N по сложению. Например. однако. зависящая от типа поля. то в ПДЛ нам надо по известным А. S G Z/NZ найти решение уравнения х .Тест на квадратичный вычет. Для некоторых групп G такая задача довольно проста. как правило. Следователь­ но.7. мы можем использовать группы не очень большого по­ рядка. от его характеристики. Поэтому крипто­ системы. Проблема вычисления дискретных логарифмов [ПДЛ) состоит в определении целого числа ж. . это в точности экспоненциальный алгоритм. задача дискретно­ го логарифмирования еще более трудна. Для групп. Для других групп. муль­ типликативная группа конечного поля или эллиптическая кривая над конечным полем. рабо­ тают с малым ключом. Например. в мультипликативной группе конечного поля наилучший из извест­ ных алгоритмов. является ли дан­ ное число А полным квадратом по модулю N. Как мы уже видели в первой главе. например. Пусть (G. отсюда и название. — это метод квадратичного решета в числовом поле. Односторонние функции . эта задача более сложная. вычисляющих дискретные логариф­ мы над общей эллиптической кривой над полем F^. что дает преимущества в размере ключа. проверяющие раз­ решимость такого уравнения и вычисляющие его корень. Его сложность — y/q = 1/^(1. Говоря нестрого. в то время как системы. основанные на расширенном алгоритме Евклида. решающий проблему дискретного логарифмиро­ вания.1/2). что А^х'^ (modTV). Поскольку зада­ ча дискретного логарифмирования в случае эллиптической кривой сложнее аналогичной задачи для мультипликативной группы конеч­ ного поля. Наилучший из доступных на сегодняшний день методов. например.Извлечение квадратных корней: дано такое число А. х = l o g ^ S . Слож­ ность вычисления дискретных логарифмов в этом случае оценивает­ ся как 1/дг(1/3.

ог{в) и D = c^. Допустим. которая состоит в следую­ щем: даны элементы А ^ G^ В = А^ 1л. . . •) и ее элемент А е G. если мы покажем. что у нас есть две задачи: А и Б . решающий вторую задачу.ПВДХ — проблема выбора Диффи-Хеллмана. . Для поиска ответа в задаче Диффи-Хеллмана с данными В = А^ ж С =^ АУ вычисляем г^о. Если сведение задачи А к задаче В занимает не более чем полиномиальное время. А именно. Если эти задачи действительно близки по слож­ ности. о которой мы говорили выше. Основные алгоритмы шифрования с открытым ключом талкивающиеся от разложения на множители или вычисления дис­ кретных логарифмов в конечных полях. что задача А не сложнее задачи В. Предположим. С проблемой дискретного логарифмирования тоже связано не­ сколько близких задач. используют ключи в 1024 бита. опираясь на оракул. Доказательство.1. например. получить ответ к первой. е. Кроме того. в частности нужно уметь оценивать сложность одной задачи по сравнению с дру­ гой. Для их формулировки предположим.у. что В — А^. Дано: AeG. как свести одну задачу к другой и наоборот.ЗДХ — задача Диффи-Хеллмана. С = АУ и D = A'- требуется определить. что да­ на конечная абелева группа (G. то говорят. Важно знать взаимосвязь всех этих сложных задач. Б = Л^. которое означает. по данным А^ В е G найти такой X. что существует оракул Одог^ Р^" шающий задачу дискретного логарифмирования. В любой конечной абелевой группе G задача ДиффиХеллмана не сложнее проблемы дискретного логарифмирования. по элементам А и В = А^ он находит показатель х. С = АУ\ требуется вычислить D — А^У. В качестве примера покажем. как свести задачу Диффи-Хелл­ мана к проблеме дискретного логарифмирования. т. имеет смысл ввести понятие полиномиальной экви­ валентности задач.ПДЛ — задача дискретного логарифмирования.Глава 7. что первая не сложнее вто­ рой. является ли z произведением z = х . то мы могли бы свести задачу А к задаче В и. а вторая — не сложнее первой. Л е м м а 7. . причем предполагается наличие эффективного алгоритма (оракула)^ реша­ ющего задачу В.

2. в которых проблема выбора Диффи .. получаем решение проблемы выбора Диффи . что алгоритм Одх работает корректно.1. решающий задачу Диф­ фи-Хеллмана. и замьпсает ряд задача вычисления дискретных логарифмов. тем самым. Задачи разложения на множители и вычисления ква­ дратного корня полиномиально эквивалентны. Рассмотрим элементы В = А^. к дискретному логарифмированию. связанных с разложе­ нием на множители. Доказательство. Как и в предыдущей лемме.Хеллмана решается за полино­ миальное время. Проблема выбора Диффи-Хеллмана в любой конечной абелевой группе G не сложнее задачи Диффи-Хеллмана. Сначала сведем задачу извлечения квадратного корня к разложению на множители. Наиболее важный результат здесь сформули­ рован в лемме 7. Пусть Одх — алгоритм.3. и мы не будем его здесь приводить. Однако существуют группы. С = А^ w. что проблема выбора Диффи-Хеллмана не труд­ нее прямой задачи Диффи-Хеллмана. Лемма 7. Лемма 7. три разновидности проблемы дискретного логарифмиро­ вания соотносятся между собой следующим образом: проблема вы­ бора Диффи-Хеллмана — самая легкая. Если Е — D^ то решение проблемы выбора поло­ жительно. Покажем.Хеллмана. сведение одной задачи к другой про­ исходит за полиномиальное время.2. • Мы показали. в противном случае — отрицательно. Односторонние функции Найденное значение D — искомый ответ к задаче Диффи-Хеллмана. D = А^ и вычислим Е = Одх{В^С). считая. • Для некоторых групп можно доказать. что алго­ ритм О^ог корректно вычисляет логарифмы.3. Соответствующее рассуждение довольно сложно. а наилучшие алгоритмы для прямой задачи нахо­ дят ответ лишь за суб-экспоненциальное время. Очевидно. такое сведение имеет полиномиальную сложность и вы­ дает решение задачи Диффи-Хеллмана в предположении. Доказательство. задача Диффи-Хеллмана не сложнее дискретного логарифмирования. Следовательно. у нас есть алго- . что эти две задачи поли­ номиально эквивалентны. Итак. Поэтому. затем идет задача ДиффиХеллмана. Вернемся к сравнению сложностей задач. Предположим. как проблема выбора Диффи-Хеллмана может быть сведена к задаче Диффи-Хеллмана и. который по элементам А^ и А^ вычисляет элемент А^У.

чем первая. е. Найдем простые делители Pi числа N^ опираясь на известный оракул. разлагающий число на множители. вычисление квадратного корня по модулю N не сложнее задачи факторизации. существенно проще. используя китайскую теорему об остатках. что у нас есть алгоритм. что существует ровно четыре квадратных корня. что несо­ мненно является самым сложным случаем. т. то можно выбрать другой корень. степень числа Р^. и вычислим Si = ^/Z {modPi). Итак. Заметим. Покажем. После этого. как разложение на множители может быть сведено к задаче об извлечении квадратного корня. что у ф ±х (modTV). что можно сделать за полиномиальное время с помощью алгоритма Шэнкса. равного произведению двух простых чисел. в среднем . Случай общего составно­ го 7V с точки зрения математики чуть более хитрый. найдем X как решение системы уравнений: {x = Si {modPi)}. но мы не будем его подробно разбирать. С пятидесятьюпроцентной вероятностью можно утверждать. Мы намерены использовать алгоритм извлечения корней р^ля опре­ деления делителей числа 7V. Опираясь на алгоритм извлечения корней. Основные алгоритмы шифрования с открытым ключом ритм. Если это не так. найдем у = y/z (modTV). и мы хотим с его помощью извлечь квадратный корень по модулю составного числа N. если их всего два. Рассмо­ трим уравнение Z = x'^ (mod TV) относительно переменной х. Для этого выберем случайное число х G (Z/iVZ)* и вычислим Z = х'^ (modN).Глава 7. При этом необходимо соблюдать осторожность в случае. извлекающий квадратные корни по модулю состав­ ного числа 7V. дано число N = pq и требуется найти р. состоящее из произведения трех и более простых делителей. Иными словами. когда N делится на более высокую. посколь­ ку 7V — произведение двух простых чисел. Однако и с этим случаем можно работать. Предположим. но в вычисли­ тельном отношении разложить на множители число. чем отыскать делители числа.

сведения каждой из задач к другой можно осуще­ ствить за полиномиальное время. или нет. делители числа N должны делить как сумму {х-\-у\ так и разность {х — у). эти задачи не эквивалентны. е. • Существует гипотеза. использующий разложение на множители разности квадратов. вычислим значение функции Эйле­ ра Ф = v{N) и найдем D = l/E (тоаФ). Закончим параграф доказательством сводимости задачи RSA к проблеме факторизации. Стоит отметить. Теперь. Мы еще вернемся к нему в главе 8. . что задача о квадратичных вычетах безуслов­ но слабее проблемы извлечения корней. что доказывает полиномиальную эквивалентность задач факторизации и извлечения корней. вычи­ сляющий квадратные корни. Односторонние функции после двух проходов алгоритма мы наверняка получим требуемое неравенство. являет­ ся ли данное число квадратичным вычетом по определенному моду­ лю. Очевидно. Поэтому один из нетривиальных делителей числа N может быть найден как НОД {х — y^N). что задача RSA не сложнее проблемы факторизации. Применяя алгоритм факторизации. • В этом доказательстве был применен стандартный прием ал­ горитмов факторизации. зная число !?. подтвержденная некоторыми косвенны­ ми соображениями. Доказательство.2. что задача RSA состоит в опре­ делении числа т по данным N^ Е и С = т^ {modN). что задача RSA на самом деле легче проблемы факторизации. Отсюда следует. поскольку С^ = т^^ = т} ("^^^^) = т (modTV). так как х^ = у^ (modTV).4. то N должно делить число х^ -у^ = {х-у){х-\-у).1. поскольку у ф ±ж (mod Л/^). Но N не может делить ни д: — у. разложим число N на простые множители. ни а: + у. очевидно способен определить. Теперь. т. Задача RSA не сложнее проблемы факторизации. легко восстановить ттг. В настоящее вре­ мя проверка этой гипотезы — один из главных открытых вопросов криптологии. Напомним. поскольку алгоритм. Таким образом. Л е м м а 7.

получая при этом расшифровывающую экспоненту d. Секретным ключом является тройка {d^p^q). расшифровать которые способна только она. Алиса выбира­ ет шифрующую экспоненту Е^ удовлетворяющую условию Я0Д{Е.Глава 7. это снизит скорость алгоритма (см. поскольку задачу RSA можно решать не прибегал к разложению на множители. расшифровывает ее. Для выбора секретного ключа Али­ са применяет расширенный алгоритм Евклида к паре чисел Е и (р — l)(gf — 1). Предположим. 17 или 65 537. адре­ сованное Алисе.{д-1)) = 1. Алиса публикует их произведение N=p-q. получив шифрограмму. что Боб намерен зашифровать сообщение.{р-1). Так что можно утверждать. Фактически. Допустим теперь. Этот алгоритм основывается на задаче RSA^ с которой мы познакомились в предыдуш. Найденная экспонента удовлетворяет соотношению E-d=l {mod{p-l){q-l)). Тогда Алиса подбирает два больших простых числа р и q. Держа их в секрете. RSA Алгоритм RSA^ первый из алгоритмов шифрования с открытым ключом. Равенство имеет место в связи с тем. возводя число С в степень d: т = С'^ (modTV). Пара. Алиса считает нужным разрешить всем желаю­ щим отправлять ей секретные сообщения. Кроме того. достойно выдержал испытание временем. что порядок группы (Z/7VZ)* . хотя и не в полной мере. которое называют модулем алгоритма.ем параграфе. строго меньшего модуля N алгоритма.293). стр. Как правило Е берут равным 3. Как Вы помните. Основные алгоритмы шифрования с открытым ключом 73. как мы позже убедимся. что криптостойкость алгоритма RSA базируется на сложности про­ блемы факторизации. Шифротекст С получается из т по следующему правилу: С = т^ (modN). можно было бы выбросить простые делители р и q из ключа и помнить лишь о d и всем числе N. она сводится к поиску простых делителей больших натуральных чисел. Алиса. — это {N^E). доступная всем желающим. Но. Он сверяется с открытым ключом и представляет сообщение в виде числа ттг.

т. Поэтому. ^(p-i)(q-i) ^ I (modiV) для любого числа x G (Z/iVZ)*. ]\ля прояснения ситуации рассмотрим детский пример. Мы показали. RSA будет взлома­ на. если проблема факторизации модуля системы окажется легкой. имеют 500 двоичных знаков.ей экспоненте. поскольку ПОД (37. что задача RSA не сложнее проблемы фактори­ зации.60) = 1. для обеспечения стойкости систем среднего срока действия. Применяя расширенный алгоритм Евклида. . е. состоящие из 2048 битов. 37-13 = 481 = 1 (mod 60).ение. т. В качестве от­ крытой шифрующей экспоненты возьмем число Е = 37. no теореме Лагранжа. к. то сможем вычислить d.ей экспоненты d по открытому ключу. Поскольку End взаимно обратны по модулю (р — l)(g — 1). Следовательно. нужно зашифровать сообп].S. Тогда N = 77^ 3. по известным числу N (модулю системы) и шифруюш. если разложим на множители число JV. что его криптостойкость обеспечивается сложностью вычисления расшифровываюш. численное предста­ вление которого имеет вид: m = 2. при некотором целом числе s получается равенство Ed-s{p-l){q-l) = l. = т • ш"(^-1)(^-^) = т (modTV). Следовательно. Поэтому. най­ дем d = 13. Для систем большого срока действия следует выбирать модули. которые к настоящему времени удается разложить на множители за разумное время. Процесс расшифровывания происходит аналогично: т^С^ (modN) = 51^^ (mod77) = 2. Предположим. най­ дем j9 и ^. Тогда мы вычисляем С = т^ (modN) = 2^^ (mod 77) = 51. В связи с этим.l. 7. т. рекомендуют брать модули шифрования порядка 1024 битов.е. Шифрование RSA и одноименная задача При первом знакомстве с алгоритмом RSA можно увидеть. Самые большие числа.3. RSA равен (p{N) = {p — l){q — 1). {р — l){q — 1) = 6 • 10 = 60. Пусть р = 1 и ^ = 11.1.

в следующих главах мы продемонстрируем. к. то кри­ птосистема RSA вычислительно защищена от атак с выбором от­ крытого текста в том смысле. удовлетворяющий. мы сможем решить за­ дачу RSA. С е к р е т н а я э к с п о н е н т а и п р о б л е м а факторизации Пока нам не ясно. имеющее два не­ известных простых делителя р и q^ элементы Е^ Y Е (Z/iVZ)* и требуется найти такой элемент х^ что х^ (modiV) = Y. В криптосистемах с открытым ключом атакующий всегда имеет возможность шифровать свои сообщения. Отсюда видно. соотноше­ нию т^ (modN) =C = Y. Доказательство. Ш 7. имея лишь шифротекст.5.3. С помощью оракула дешифруем сообщение С = Y и получим соответствующий открытый текст т . изложенный в предыдущей главе. что атакующий не в состоянии кор­ ректно восстановить открытый текст.Глава 7. Значит. по определению. в котором мы его представили. . является ли взлом криптосистемы RSA^ в смысле обращения функции RSA^ эквивалентным проблеме факторизации. он способен при­ менять атаку с выбором открытого текста. Напомним. что взлом криптосистемы не сложнее задачи RSA. что такой подход к безопасности слишком на­ ивен во многих приложениях. Лемма 7.2. что алгоритм RSA в том виде. Основные алгоритмы шифрования с открытым ключом В этой главе под криптостойкостью системы будем понимать не­ возможность дешифрования сообщения без знания секретного ключа. RSA криптостоек про­ тив таких атак. не может устоять против атак с выбором шифротекста. но мы рассмотрим этот вопрос подробно. соответствующие ар­ гументы будут применяться снова и снова в последующих главах. т. что в задаче RSA дано число iV. Разработаем алгоритм решения задачи RSA^ основываясь на алгоритме взлома одноименной криптосистемы. Сде­ лав это. Позже мы покажем. Если задача RSA является трудноразрешимой. мы покажем. что взломав криптосистему. Кроме того. ]\ля аргумен­ тации этого заявления нужно использовать прием сведения одной за­ дачи к другой. если принять во внимание наше слабое определение стойкости и верить в трудность решения задачи RSA. В данной ситуации доказательство безопасности алгоритма RSA довольно тривиально.

В последнем случае нам придется вер­ нуться к началу алгоритма. Приходим к тождеству F i ^ .(modTV). Лемма 7. Продемонстрируем взаимосвязь этих задач. Если Y\ = — —1 (modiV). К сожалению. Тогда придется по­ вторить все снова. Тогда j^Ed-i ^ 1 (modiV).Если известна расшифровывающая экспонента d алго­ ритма RSA^ соответствуюш. • Алгоритм.т . RSA 195 решив которую. здесь тоже может оказаться.l ^ O (modiV). — типичный пример алгоритма Лас-Вегаса. Доказательство. то можно взять еш..l = Yi-l = 0 (modiV).ЕР-\ = Х-т- (modiV). Опять получаем Yi . которое уже не будет делиться на 2. пока мы не разло­ жим N на множители или не придем к числу {ED — 1)/2*. которое можно использовать ^\ля определения делителей числа N с помощью вычисления ПОД (Yi — 1. только если Y\ ф ± 1 (modiV).ая открытому ключу (ЛГ. Если Y\ — \ (modTV). что Y2 = ±1 (modTV). что нам не повезло и Fi — ± 1 (modiV).е один квадратный корень У^ = ^ . Напомним.Ю — делитель числа N. Однако это будет работать. откуда Н0Д(У2 — ^•.^). . можно найти секретный ключ d по открытой ин­ формации о N и Е. выбрать новое случайное значение X и все повторить. Алгоритм необходимо повторять до тех пор. что при некотором целом s имеет место равенство Ed-1 = s{p-l){q-l).S. Возьмем произвольное целое число X ^ 0. Предположим. вернемся к началу и выберем другое число X. Вычисляем квадратный корень Ух по модулю N: Ed-l Yi = Vx^rf-i = Х .l. приведенный в этом доказательстве. Е)^ то число N можно эффективно разложить на множители.6. что можно сделать. вероятностного по своей природе. поскольку Ed — 1 известно и четно.

Положим Ti = ( £ . сделаем преобразования: у^ ^ . Опираясь на пре­ дыдущий алгоритм. d .1)(П + 1) = о (modiV). Для вычисления Yi.196 Глава 7.Ю -1423. Yi-1 = (Уз . Отсюда.1)/4 = 2 158 596 и Y2 = 2^\ Теперь У2 = х(^'^-1)/4 = 2^2 = 1 (modiV). З н а ч е н и е ф у н к ц и и Э й л е р а ^{N) и п р о б л е м а факторизации Как мы убедились.i ) / 2 ^ 2 ^ 1 = 1 (mod iV). нам нужно взять Т2 = Ti/2 = {Ed . 7.3. d . которая обычно хранится в секрете. Напомним. как знание значения функции Эйлера Ф = <p{N) помогает решить ту же задачу.3. иллюстрирующий изложенный ме­ тод. что мы предполагаем известной расшифровывающую экспоненту с/. Но если уж ответ отыщет­ ся. X = 2. Рассмотрим следующие входные данные задачи RSA: ЛГ = 1441499. Снова нужно повторять предыдущие шаги. информация о секретной экспоненте d позволяет найти простой делитель числа N.7. Лемма 7. Разберем небольшой пример. . что приведет нас к Тз = {Ed-1)/8 = 1079 298 и Уз = Х(^^-^)/^ = 2^' = 119 533 (modAT). И мы можем найти простой делитель числа N^ вычислив Я0Д{Уз-1. Поскольку Yi оказался равным 1. Е = 17 и d = 507905. Основные алгоритмы шифрования с открытым ключом которая проявляется в процессе работы. Значение Ф = ^{N) позволяет эффективно разложить число N на множители. найдем делители числа N. Здесь мы покажем. ^ ( £ .l ) / 2 = 4317192. то он обязательно будет верным.

SX -h N = Х^ .4. — ускорить ал­ горитмы шифрования и расшифровывания в аппаратных средствах. т. Следовательно. в которой пользователи разделяют общий модуль 7V. но при­ меняют различные шифрующие и расшифровывающие экспоненты (Ei^di). которую хранит в се­ крете пользователь номер 2. RSA Доказательство. Одна из причин. законного пользователя системы. Однако это не­ удачная идея. положив S = N + 1 — Ф. а его корни — р = 149. поскольку пасует перед двумя типами нападающих: внутреннего.3.1. решая квадратное уравнение f{X) = О стандартным образом: S + VS^^= 2 4N S~VS^' ^= 2 Ш • • В качестве примера рассмотрим открытый модуль 7V = 18 923 криптосистемы RSA и предположим. Нам нужно определить числа р или д. побуждающая это делать. так и д. Теперь можно найти как р. Он может най­ ти значение расшифровывающей экспоненты. Вычисляем S = p-\-q = N-\-l-Ф = 276. а именно б?2. что он в . опираясь на их сумму S и произведение 7V. специально настроенных на определенный модуль N. 7.6. Рассмотрим многочлен f{X) = {X -р){Х -q)=X^-SX-hN.Сначала он вычисляет р и q с помощью алгоритма из доказательства леммы 7. мы получим S = p + q. Предположим. q = 127. е. и внешнего. Р а з д е л е н н ы й м о д у л ь Поскольку арифметика остатков — дорогое удовольствие с точки зрения компьютера. что нападающим является один из законных кли­ ентов криптосистемы. весьма заманчиво разработать систему шифро­ вания. Имеем Ф = {р-1){д-1)=М-(р + д) + 1.276Х + 18 923. скажем пользователь номер 1. Соответствующий многочлен имеет вид: f{X) = Х'^ . что нам известно Ф = (p{N) = = 18648.3.

El = 11 и ^2 = 5. наконец. Тогда Ева вычисля­ ет Ti = 1 и Т2 = 2. Она может вычислить Ti = Е^^ (mod£. что перехвачены шифротексты Ci = 1514 и С2 = 8 189.{TiEi . связанные с .E2). Затем злоумыышенник находит (p{N) = {р — l){q — I) и.3. И с п о л ь з о в а н и е м а л ы х хпифрующих экспонент Иногда в криптосистемах RSA с целью экономии затрат на шифро­ вание используются небольшие шифрующие экспоненты Е. соответствующие одному открытому тексту т. после чего раскрывает исходную информацию: m . С2 = т^^ (modTV). где Ci . Допустим.С^'С:^^^ . Алиса посылает одно и то же сообщение т двум клиентам крипто­ системы. Рассмотрим пример внешней атаки в случае N =^Ni=N2 = l8923.т^' (modTV). зная свою расшифровывающая экспоненту di. использующим общий модуль.198 Глава 7.1)/^2 и восстановить сообщение т по следующей схеме: =i rn} = т. что это тоже создает дополнительные проблемы.Ei) и {N. Предположим. раскрывает значение ^2 по формуле d2 = — {mod ip{N)). видит зашифрованные сообщения Ci и С2.100 (modiV). h. Ева. Т2 .2). Основные алгоритмы шифрования с открытым ключом состоянии сделать.2 Предположим теперь. Пока­ жем. 7.5. открытые ключи которых {N. что атакующий не принадлежит к пользо­ вателям криптосистемы. нападающая извне.

С2 = 299 и Сз = 1. мы раскрываем сообщение. вычисляя кубический корень из X. 3 } в виде X = т^ {modNiN2Ns). представляют не­ сомненный интерес. зашифрованное тремя разными открытыми ключами. после чего извлекает обычный кубический корень т = Х^/^ = 67. Однако наиболее важный вывод. не ре­ шая сложную задачу разложения на множители. 2 . поскольку позволяют раскрыть текст. чем пробле­ ма факторизации. Обе атаки. Ева находит решение системы X = 300 763 {modNiN2Ns). С2 = т^ (modiV2). Нападающий видит три криптограммы: Ci = m ^ (modATi). Поэтому.l. Ni = 323. Предположим. например. Чтобы восстановить исходное сообщение т . . что у нас есть три пользователя с различными модулями шифрования iVi. Пусть. который следует извлечь из этих атак. RSA I криптостойкостью. что вскрытие криптосистемы RSA более легкая задача. Возможность та­ ких атак служит свидетельством (хотя и слабым) в пользу того.S. Но поскольку 7п^ < NiN2Ns^ целые числа X и т^ должны совпа­ дать. о которых мы сейчас рассказали.1 . Пусть некто посылает им одно сообщение т . Сз = т^ (mod TVs) и с помощью китайской теоремы об остатках находит решение си­ стемы {X = Ci (modiV^)l г . Ns = 341 и Ева перехватывает сообщения Ci = 50. заключается в необходимости дополнять ори­ гинальные сообщения случайными цифрами перед шифрованием. N2 и Ns и одной шифрующей экспонентой Е = 3. N2 = 299.

как мы знаем. насчитывающее око­ ло 1024 битов. Они называются параметрами домена и выглядят следуюш.им образом: . Ее продумывание мы оставим в качестве упражнения. использующее конеч­ ные поля. которые могут быть использованы боль­ шим числом пользователей. Суш. что является довольно громоздкой задачей. чтобы элемент G^^~^^'^ был образующей абелевой группы А поряд­ ка Q. Сейчас обыч­ но выбирают £? = 65 537. такое.Глава 7. т. Однако при использовании RSA р^ля элек­ тронной цифровой подписи (см.4.Р — «большое простое число». е. порядок которой. Кроме того. Q и G. После выбора параметров домена определяют открытый и сек­ ретный ключи.G — элемент мультипликативной группы поля Fp. число. причем G(^-i)/«(modP)7^1. Секретным ключом может априори быть любое на­ туральное число ж.их экспонент. . Р . следует избегать небольших шифруюш. е. Обратите внимание на то. лежащее неподалеку от 2^^^. В отличие от RSA^ в алгоритме Эль-Гамаль суш. что каждый из пользователей RSA дол­ жен генерировать два больших простых числа р^ля определения ключе­ вой пары. Информация об этой группе открыта и используется большим числом пользователей. Криптосистема Эль-Гамаль Простейший алгоритм шифрования. а открытый ключ получается по следующей фор­ муле: Я ^ С ^ (modP).ествуют некото­ рые открытые параметры. т. основываюш. . Основные алгоритмы шифрования с открытым ключом Такая предосторожность сильно снизит вероятность шифрования одного и того же сообщения разными пользователями.ие экспоненты. «среднее простое число» Q. — это криптосистема Эль-Гамаль. Сейчас мы опишем шифрование в системе Эль-Гамаль. что Р — 1 делится на другое.ествует аналогичная система эллиптических кривых. выбираются таким образом. делится на Q. а в систе­ ме Эль-Гамаль рля построения ключевой пары достаточно найти какое-нибудь случайное число и сделать сравнительно несложные вычисления в арифметике остатков. ниже) можно беспроблемно брать и небольшие шифруюп1.ийся на дискрет­ ном логарифмировании. Все параметры домена. 7.

Допустим. выбрав сначала параметры домена. производят сле­ дующие преобразования: С2 _ m • Я^ _ _ - m-G^_ Qxk — m. В качестве пары открытого и секретного ключа выберем ж = 68 и Я = С ^ . вычисляют Ci — G^^ находят С2 — тп • if ^. а порядок элемента G в группе Fp делится на Q. Для его шифрования поступают следующим образом: - генерируют случайный эфемерный ключ А:. мы получаем разные шифротексты. численное предста­ вление которого равно т = 100. Поэтому. Получаем ^2 = m • Я^ . С2). что при каждом шифровании применяется свой кратко­ временный ключ. поскольку 3«°« = l ( m o d P ) . Чтобы расшифровать пару данных С = (Ci. Отправляем шифротекст С = (345. что Q действительно делит число Р — 1. Легко проверить. Разберем небольшой пример. нам нужно зашифровать сообщение. Криптосистема Эль-Гамалъ 201 Сообщение в этой системе представляется ненулевым элементом поля т G Fp.3 ^ ^ = 65 (modP). Находим Ci .517). Поступаем следующим образом. Пусть Q = 101. Порядок элемента G равен 808.100 • 65^^ = 517 (modP). Р = 809 и 0 = 3. (72). Партнер сможет восстановить текст. шифруя одно сообщение дважды.Ц. Заметим.G^ = 3^^ = 345 (modP). выдают получившийся шифротекст в виде пары С = (Ci. делая также вычисления: С1 34568 . - Генерируем случайный эфемерный ключ к = 89. И ни при каких меньших степенях такого равенства не получается.

8.Хеллмана.но решить .Глава 7. а затем найденный обратный умножается на 517. что си­ стема защищена. где защищенность означает. считая. как с помощью оракула решается задача Диффи . Тем не менее. положим Заметим. а. вычисляется мультипликативный обратный к результату по этому же модулю. Теперь выписываем «шифротекст»: С = (СьС2).Q2))^ который по рас­ шифровывающей процедуре Эль-Гамаль должен получаться в виде отношения М = ^ . Выберем открытый ключ в системе Эль-Гамаль в соответствии с поставленной задачей.{Ci. даны G^ и СУ. что нападающий не может вос­ становить открытый текст по перехваченной шифрограмме за ра­ зумное время. Вводим этот ши­ фротекст в оракул.C2). взламывающий Эль-Гамаль. о кото­ ром только что было рассказано. то система Эль-Гамаль защищена против атак с выбором открытого текста. мож. На вход оракула подает­ ся открытый ключ Н и шифротекст (Ci.Хеллмана. если считать. и требуется вычислить G^^.е. С2 случайный элемент поля Fp. чем в веще­ ственных числах: сначала число 345 возводится в степень 68 по моду­ лю 809. Основные алгоритмы шифрования с открытым ключом Последнее равенство получается чуть более сложно. Используя полученные данные. Лемма 7. что мы не знаем секретного ключа х.Хеллмана трудноразрешима. что система Эль-Гамаль в том виде. е. будем считать. т. где Ci = G^. и получаем соот­ ветствующий открытый текст М = 0{H. Если задача Диффи . т. вскрывающий шифр Эль-Гамаль. Доказательство. а выходными данны­ ми служит дешифрованный открытый текст. Позже мы увидим. если противник не сможет обратить шифрующую функцию. Эль-Гамаль сможет выстоять против атаки с выбором открытого текста. беззащитна против атак с выбором шифротекста. что задача Диф­ фи-Хеллмана трудна А^ля решения. Покажем теперь. что у нас есть оракул (!?. Опять-таки. здесь мы исполь­ зуем наивное понятие криптостойкости алгоритма. Чтобы показать защищенность системы ЭльГамаль от атак с выбором открытого текста в предположении о сложности задачи Диффи . Поэтому обычно применяют модифицированные схе­ мы шифрования.

Для определения соответствующего открытого ключа берут произведение N = р . . она связана с трудностью извлечения квадрат­ ного корня по модулю составного числа N = р . чем RSA. система Рабина важна как с исторической точки зре­ ния. . Для шифрования сообщения т в алгоритме Рабина вычисляют С = 7п{т + В) (modTV). Выберем разные простые числа. . мы в состоя­ нии разложить N на простые множители.q. т.5. чем практически в любой дру­ гой криптосистеме с открытым ключом. несмотря на эти преимущества. принадлежащая Рабину. Напомним. Тем не менее.5. 7.1. Криптосистема Рабина Есть еще одна криптосистема. . чем RSA.зная простые делители числа ЛГ. шифрование состоит из операций сложения и умно­ жения по модулю 7V. . которая основывается на трудной проблеме факторизации больших целых чисел. . вычисляя С2 _ М • Cf М М [oyf = с'у. Таким образом. так и в качестве наглядного примера криптосистемы. Такой специальный вид простых чисел сильно ускоряет процедуру извлечения корней по модулю р VL q. Процесс шифрования в алгоритме Ра­ бина происходит намного быстрее. Более точно. Криптосистема Рабина исходную задачу Диффи-Хеллмана. что эти задачи эквивалентны. Потому такую систему можно считать в некотором отношении бо­ лее криптостойкой. удовлетворяющие условию: pz= q = S (mod4). Секретным ключом системы является пара (p^q). что обеспечивает более высокую скорость ши- . е. мы можем извлекать квадрат­ ные корни по модулю 7V. Однако.B). АГ — 1}.q и генерируют случайное целое число Б G {О. система Рабина используется все же реже.умея извлекать квадратные корни по модулю iV. основные идеи которой используются в протоколах более высокого уровня. Отк{>ытый ключ — это пара iN.

Для шифрования сообщения т = 4410 вычисляем С = т{т + В) (modN) = 4633. .еству. для извлечения корней по модулю N очень и очень полезно знать разложение последнего на простые делители. При обратной операции сначала находим Г = В^/4 + С (modiV) = 1500. поэтому 4 "^ /^2 + 4ш(т + В) 2 ~ V 4 JAm? + АВт + В'^ V 4 / ( 2 т + В)2 В V 4 2 2т + В В 2 В_ 2" = т.АГ = 1 6 6 3 7 и В = 12 345.р = 127 и 9 = 131. стоит к открытому тексту добавлять некую избыточную информацию. Основные алгоритмы шифрования с открытым ключом фрования. По суш. что выбрали правильный корень из четырех возможных.ествует че­ тыре возможных квадратных корня из числа по модулю N. чем в RSA^ даже если в последней выбирают небольшую шифрующую экспоненту. суш. 2 2 Конечно. Поскольку N — произведение двух простых чисел. Расшифрование в этом алгоритме гораздо более сложное. . Напомним. что шифротекст имеет вид С = т(т + В) (modiV). здесь мы цредполагаем. очевидно.204 Глава 7. почему при расшифровании мы действительно полу­ чаем т. Поэто­ му при расшифровании получается четыре возможных открытых текста. На первый взгляд здесь не требуется никакой секретной инфор­ мации. Пусть открытые и секретные ключи имеют такой вид: . Закончим главу примером шифрования в алгоритме Рабина. Объясним. но. нам нужно вычислить т=^^ + С-^ (modiV). Чтобы выбор был более определенным.

Дополнительная литература Оригинальная статья Диффи и Хеллмана все еще остается самым лучшим и быстрым введением в концепцию криптографии с откры­ тым ключом. касающиеся Эль-Гамаль. Поскольку эта задача полиномиально эквивалентна проблеме факторизации. После этого. 15078.Криптостойкость системы Эль-Гамаль зависит от трудности решения задачи Диффи . примерами которых служат факторизация чисел. которые можно вы­ явить сведением одной задачи к другой. 5851.RSA — наиболее популярная криптосистема с открытым клю­ чом.7. применяя Китайскую теорему об остатках к паре ±22 (modp) и ± 3 7 (mod9). Криптосистема Рабина а затем извлекаем квадратные корни из Т по модулю р и q: Vf (modp) = ±22.5. или 16 519. извлече­ ние корней.Хеллмана. находим квадратный корень из Т по модулю N: s = Vf (mod TV) = ±3705 или ± 14373. 2 К р а т к о е содерлсание главы . .Между этими задачами существуют связи. дискретное логарифмирование и задача ДиффиХеллмана. но не совпадает с ней. получаются из формулы В 2 S — — — S 12 345 . Четыре варианта расшифрования 4410. Кроме того.Криптостойкость алгоритма Рабина гарантируется сложно­ стью извлечения корней по составному модулю. . что безопасность системы Рабина опирается на проблему разложения на множители. . можно посмотреть работы. Ее защищенность по вычислениям основывается на труд­ ности решения задачи RSA. можно считать. которая близка проблеме факто­ ризации. Vf (modq) = ±37. .Шифрование с открытым ключом требует односторонних функ­ ций. . RSA и системы Рабина.

Опишите алгоритм шифрования RSA. Diffie and М. 7. 31. Comm.Глава 7. Расположите их в порядке увеличе­ ния сложности 7.1.1.1. 7.3. Хорошо это или плохо? 7. RSA и определе­ ния квадратичного вычета? Расположите эти проблемы в по­ рядке увеличения сложности. A public key cryptosystem and a signature scheme based on discrete logarithms. A. MIT/LCS/TR-212.L. 1978.8. T. M. Расскажите о проблеме дискретного логарифмирования и за­ дачах Диффи-Хеллмана. Контрольные вопросы 7. New directions in cryptography. 469-472. Theory. Hellman. В шифровании по алгоритму Эль-Гамаль присутствует эле­ мент случайности.1. Theory. 22. 120-126. 644-654. Digitized signatures and public key functions as intractable as factorization. Обсудите утверждения: (а) Информация о расшифровываюп]. ElGamal. 1976. Rabin.2. Что представляет собой самый быстрый на сегодняшний день алгоритм разложения на множители? 7.1.M.4. 21. 1985.1. IEEE Trans.ей экспоненте в алго­ ритме RSA равносильна разложению модуля шифрования на множители. В чем заключаются задачи факторизации. IEEE Trans. A method for obtaining digi­ tal signatures and public-key cryptosystems. Shamir and L. 7.7.5. on Info. что обеспечивает разные шифротексты при шифровании одного сообщения дважды. Adleman. Может ли шифрующая экспонента в системе RSA быть четной? 7. которые система Рабина имеет перед RSA. Info. ACM. Имеет ли алгоритм Рабина какие-либо недостатки? . Расскажите о двух преимуществах. Rivest. 1979.1.6.1. Основные алгоритмы шифрования с открытым ключом W. MIT Laboratory for Computer Sci­ ence. R.1. (б) Взлом алгоритма шифрования в RSA эквивалентен раз­ ложению на множители модуля шифрования.

2. Покажите. Криптосистема Рабина Лабораторные работы 7. чтобы E-d=l (modA(iV)).1.ью криптосистемы с открытым ключом передается се­ кретный ключ. основанную на эл­ липтических кривых. что порядок элемента Е по модулю р — \ или q — \ должен быть большим. что трк т — т (mod А/'). Какая из них более эффективна при шифровании. Покажите. что оракулы дают верный ответ лишь с некоторой вероятно- .5. Объясните. Формальным рассуждением покажите.7. 7.q1).его алгоритма Рабина эквивалентно разложению на мно­ жители натуральных чисел.ей экспоненты Е в группе (Z/A(Ar)Z)* равен К.ую экспоненту d можно выбрать так. что А(Л^) — максимальный порядок эле­ ментов группы (Z/iVZ)*.3. 7. Покажите.3.5. Указание. то расшифровываюш. Пусть N — модуль в RSA и X{N) = НОК {p-l.3. Пред­ положим. что схему шифрования RSA с простым модулем N = Р очень легко взломать.6. Пусть N — модуль шифрования алгоритма RSA и X{N) = = НОК {р — l^q — 1).ая экспонента алгоритма. Выведите отсюда.4. 7. что порядок шифруюш. почему при передаче большого числа данных наи­ более приемлемый способ заключается в том.1. Опишите схему шифрования Эль-Гамаль.7.3.2. Разработайте программы шифрования и расшифровывания сообш.ений для алгоритмов Эль-Гамаль и Рабина. что сначала с помош. а потом с его помош. Исследуйте различные леммы в этой главе и предположите. а какая при обрат­ ной процедуре? Упражнения 7.3.3. Докажите. 7.ью шифруются основные данные симметричным алгоритмом.3.3. 7. что если Е — шифруюш. что вскрытие шифруюш. 7.

Основные алгоритмы шифрования с открытым ключом стью. даже если ора­ кул выдает верные ответы с низкой вероятностью? . В каких леммах вы можете «увеличить» вероятность и получить редукцию.208 Глава 7. которая работает с высокой вероятностью. верный ответ — один из десяти. Измените формулировки лемм и докажите получившиеся утверждения в соответствии с новыми предположениями. например.

В Эль-Гамаль необходимо простое число р и простое q^ деля­ щее р —1. . • Рассказать о различных алгоритмах факторизации.ГЛАВА 8 ТЕСТЫ НА ПРОСТОТУ И ФАКТОРИЗАЦИЯ Ц е л и главы • Объяснить основные тесты на простоту. порядок которой делится на большое простое число q. а имен­ но. • Показать. требуется эллиптическая кривая над конечным полем. что про­ веряемое число действительно простое. . вероятностную ошибку.ью очень простого и эффективного алгоритма.1 • Простые числа Простые числа необходимы для почти всех алгоритмов шифрования с открытым ключом. Итерируя этот алгоритм. 8. состоит в том. Мы увидим. Одно из очевидных требо­ ваний. • Подробно описать чах:то использу€|мый тест на простоту. например.ем эллиптические кривые. что его должно быть легче проверить. используюш. ~ В варианте Эль-Гамаль. тест Миллера-Рабина.q. допус­ кающего. Некоторые из более сложных тестов выдают сертификат. можно уменьшить вероятность ошибки до любой требуемой величины. что тестирование чисел на простоту можно выпол­ нить с помоп1.В RSA или криптосистеме Рабина нам нужны простые числа р и q для определения открытого ключа N = р . предъявляемых к такому сертификату. как работает самый удачный алгоритм разложения на множители: метод решета в числовом поле. однако. чем получить Проверку чисел . про­ верив который третья сторона может убедиться в том.

начиная с 2 и кончая ^/р. пробное деление обладает тем преимуще­ ством (в сравнении с более сложными тестами на простоту). либо найдем его нетривиальный делитель. нам потребуется .Глава 8. Отсюда вытекает. что в результате работы такого алгоритма мы либо докажем простоту числа р. меньших 2^^^. что в среднем нам нужно просмотреть 177 случайных чисел порядка 2^^^. имеет следующую аппроксимацию: Этот факт говорит о том. вычисляющая количество простых чисел. Знаменитый результат. Перед обсуждением алгоритмов обратим внимание на некото­ рые эвристические свойства простых чисел. приблизительно равно 2^^^. Надо сказать. Кроме того. с помощью закона распре­ деления можно вычислять вероятность простоты выбранного на­ угад числа. сейчас носит название закона распределения простых чисел: Теорема 8. что данное число является составным. 8. что тоже неплохо. Таким образом. состоящее из 512 двоичных знаков. сформулированный Гауссом в начале XIX века в виде гипотезы по­ сле долгих численных экспериментов. Вероятность случайным образом выбранного числа р оказаться простым равна j ^ . использующийся в криптографии. но не сертификаты простоты. По существу. что основной алгоритм. Если результат деления — целое число. то оно является простым.) Функция 7г(Х). Однако пробное деление — очень громоздкая стратегия! В са­ мом плохом случае. выдает сертификаты того. Это означает.1. Пробное деление Наивный способ проверки числа р на простоту состоит в пробном делении. то р — составное. и мы в качестве бесплатного приложения получим один из делителей числа р. будет простым с веро­ ятностью ^ j ^ ^ j ^ . количество простых чисел. что взятое наугад число. что простые числа встречаются до­ вольно часто.1. чтобы найти одно простое. например. не превосходящих X.1. (Закон распределения простых чисел. Тесты на простоту и факторизация на простоту с помощью сертификатов называют алгоритмом до­ казательства простоты^ а соответствующий сертификат — до­ казательством простоты. когда р действительно простое. Если же не удастся раз­ делить нацело р ни на какое из упомянутых чисел. мы пытаемся разделить число р на все числа.

т. Тогда 2^^^ = 1 mod 341. обратной малой теореме Ферма. Кроме того. когда не проверяются на простоту заведомо состав­ ные числа. Простые числа ^Jp шагов. е. достаточно проверить его делимость на указанный множитель. Значит. 8. т.1. что р — составное число. то ввиду теоремы Лагранжа а^^ = 1 для любого элемента а ^ G. не может быть простым. что он не дает никакого лег­ кого способа проверки простоты найденного числа j9. если п — р — простое (случай малой теоремы Ферма). является ли дан­ ное число составным. делится на 3 и т.2. Тест Ферма Наиболее развитые вероятностные алгоритмы проверки чисел на простоту основаны на теореме. в . любое число с суммой цифр. Другой недостаток алгоритма состоит в том. в качестве гипотетических делителей достаточ­ но брать лишь простые числа. кратной 3. Заметим. что тест Ферма может лишь убедить нас в том. оставляя един­ ственную возможность убедить кого-либо в верности результата — повторение всего алгоритма. метод пробного деления хорош для поиска небольших простых чисел. Несмотря на свои недостатки. что число N имеет делители. но не в состоянии доказать его простоту. Итак. Простой способ проверки отсутствия простоты. д.8. Существует способ и частич­ ного перебора. никакое четное число. конечно. то А^ЛЯ любого ее элемента а имеет место равенство а^(^) = 1 (modTV). На­ помним. есть: мы нашли нетривиальный делитель. то а^-1 = 1 (modp). большее 2.ий. рассмотрим составное число iV = 11 • 13 = 341. Его называют тестом Ферма по основанию а.1. Например. группа порядка (^(iV). Поскольку вычисление а^~^ (modiV) довольно быстрая опера­ ция. у нас возникает быстрый тест. что если G — мультипликативная группа порядка # G . Дей­ ствительно. е. а вот для составных N его истинность маловеро­ ятна. Сле­ довательно. проверяюш. при простом N равенство а^-^ = 1 (modiV) выполнено всегда. поэто­ му р^ля доказательства того. а осно­ вание в тесте Ферма выберем равным 2. если О = (Z/7VZ)* — мультипликативная группа кольца вычетов по модулю Л/". метод имеет экспоненциальную сложность.

Дей­ ствительно. b = a'^ln-l} mod n. Такие числа называются . В качестве следующего примера рассмотрим число п = 2^^^ — 2^^* — 1. что для составного N вероятность неравенства а^-1 ^ 1 (modTV). Можно показать. for (i=0.ествует бесконечно много псевдопростых чисел по фиксированному основа­ нию. i++) { выбрать a из [2. exit. Алгоритм выдаст на печать «правдоподобно простое». поскольку мы не сможем найти свидетеля обратному.. хотя они встречаются реже.. е. и что а свидетельствует об этом факте. так что нет ничего удивительного в том. В этом случае говорят. i<k.. выпишем алгоритм теста Ферма. if (b!=l) { напечатать (составное. чтобы убедиться в истинности высказывания. относительно кото­ рых тест Ферма выдаст ответ правдоподобно простое. Если же в результате работы теста мы получим сообщение: «прав­ доподобно простое». что N — псевдопростое число (в смысле Ферма) по основанию 2. больше 1/2. число п = 43 040 357. Тем не менее. } } напечатать «правдоподобно простое» Если на выходе этого алгоритма напечатано «составное. а». чем простые. Тесты на простоту и факторизация то время как число 341 не простое. для всех взаимно простых с п оснований а.Глава 8.. это число является простым. существуют составные числа. Такое а называют свидетелем того. Фактически. Возьмем.n-l]. т. что п составное. что мы не смогли найти свидетеля его делимости. то можно заключить: п — составное с вероят­ ностью ^ 1/2^. например. нам достаточно провести тест Ферма по основанию а. Подводя итог сказанному. то мы с определенностью можем заявить. a). Оно является состав­ ным. что можно проверить тестом Ферма по основанию а = 2. что число п не является про­ стым. 243040356 (mod43040357) = 9888212 ^ 1. Суш.

.1. перев. . которая обходит проблему составных чи­ сел. что лег­ ко найти свидетеля для каждого составного числа. но и не настолько редко. свободны от квадратов^. . i < s . Среди них окажется примерно 2. . для которых не находится свидетеля. Чтобы получить представление об их распределении.4 • 10^ чисел Кар­ майкла. они встречаются не очень часто. — Прим. с нечетным т . 8. Тест Миллера . Зсшисать п-1 = 2"s m. Существует модификация теста Ферма. Поэтому многократное по­ вторение теста позволяет уменьшить вероятность ошибки до лю­ бой наперед заданной величины. чтобы их можно было игнорировать. } ^He делятся на квадраты простых чисел. . что такой свидетель в принципе должен быть. Кроме того.1 ] . j++) { выбрать a из [ 2 . Это не означает. К сожалению. i++) { i f (b==(n-l)) { флажок=ложь. но только 246683 ?^ 2.Рабина на псевдокоде. } b=b"2 mod n. for ( i = l . Первые из них — это 561. Простые числа 213 числами Кармайкла.Рабина Из-за существования чисел Кармайкла тест Ферма применяют край­ не неохотно. посмотрим на числа. имеют по крайней мере три простых делителя. Приведем тест Миллера .7-10^^ простых чисел. Числа Кармайкла обладают следующими свойствами: - они нечетны.3. b = a"m mod n. это значит. их бесконечно много. j<k. i f (b!=l) { флажок=истина. не превосходящие 10^^. 1105 и 1729. остановка алгоритма.8. называемая тестом Миллера .1. тест Милле­ ра-Рабина принимает составное число за простое с вероятностью 1/4 для любого случайного основания а. Следовательно. то р — 1 делит Л^ — 1. for (j=0.Рабина. n . если р делит число Кармайкла iV.

Рабина делимости п. Есть алгоритмы. чего никогда не встречается на практике. Но с теоретической точки зрения (и может быть с практической. поскольку вероятность того. Если Вам это интересно. } } } напечатать «правдоподобно простое». то тестиру­ емое число окажется действительно простым. нам может потребоваться по-настоящему простое число. и согласно обобш. Кроме того. Так же как и тест Ферма. Доказательство простоты До сих пор мы говорили только о свидетелях делимости чисел и ин­ терпретировали наличие свидетелей как доказательство того. не превосходяш. Та­ кие свидетельства называют доказательством простоты. например. Тесты на простоту и факторизация if (флажок=истина) { напечатать (составное.Рабина повторяют к раз с разными основаниями и получают результат с вероятностью ошиб­ ки 1/4^. Вероятностные отве­ ты вполне приемлемы.1.Рабина после А. что п — составное.Глава 8. а). книги Коэна или Бача и Шаллита. тест Миллера . выдающие свидетельства простоты чисел. > 20 проходов напечатает «правдоподобно простое».Рабина работа­ ет. что данное число правдоподобно простое. что составное число выдержит тест Миллера . то основание а называют свидетелем Миллера . а не только правдоподобно простое. что тестируемое число является составным. говорящие о том. но стопроцентной уверенности в простоте чисел у нас не было (за исключением алгоритма пробного деления). на которые есть точные ссылки в конце этой главы. exit. Та­ ким образом. Точнее говоря. если алгоритм выдает ответ «правдоподобно простое».Рабина с двадцатью основаниями примерно равна 2~^^. Если тест Миллера . у нас были ме­ тоды.енной гипотезе Римана (в справед­ ливость которой верит'большинство математиков) для составно­ го числа п найдется свидетель Миллера Рабина. Фактиче- .ий 0((1пп)2). 8.Рабина по основанию а нашел. если Вы одержимы паранойей) этого может оказаться недостаточным. Мы не будем объяснять. что если тест Миллера . почему тест Миллера . можно ожидать.4. то можете посмотреть любую книгу по алгоритмической теории чисел.

Рабина по нескольким основаниям и все. р-метод Полларда. Его вариант. Метод основы­ вается на гиперэллиптических кривых. доказы­ вающего простоту введенного в него простого числа. доказывающих простоту. этот алгоритм осно­ вывается на более старом алгоритме доказательства простоты. обобщающих эллиптические кривые и. т. Есть алгоритм.2. что он всегда выдаст ответ — свидетеля. что остается — это доказать его простоту. данное число уже выдержало тест Миллера . что алгоритм когда-либо остановится.8. когда уже есть уверенность в простоте числа. основанный на гиперэллиптических кривых. был разработан Гольдвассером и Килианом. Другими словами. то вообще нет уверенно­ сти в том. опирающийся на эллиптические кривые. е. при­ надлежащем Поклингтону и Лемеру. ос­ новывается на эллиптических кривых и называется ЕСРР (от англ. Алгоритмы факторизации Методы разложения на множители (или факторизации) можно раз­ делить на средневековые методы. Elliptic Curve Primality Prover). авторы которого — Адлеман и Хуанг. Алгоритм ЕСРР случаен. В свою очередь. Хотя алгоритм ЕСРР работает занимает полиномиальное время. подаваемое на вход алгоритма. 8. метод ЕСРР на практике дает тот же результат. т. соответствующие алгоритмы применяются тогда.2. Алгоритмы факторизации ски. никогда не был реализован. но и потому. но нет строгого доказательства этого факта. насколько мне известно. Если число. (Р + 1)-метод. и современные: . Алго­ ритм Адлемана и Хуанга никогда не осуществлялся не только из-за своей сложной математической структуры. В отли­ чие от алгоритма ЕСРР он гарантирует окончание работы и до­ казательство простоты введенного простого числа. проверку получаемого им свидетеля простоты данного числа можно произвести еще быстрее. составное. он довольно эффективен. нельзя гарантировать с математиче­ ской точностью. {Р — 1)-метод. что несмо­ тря на отсутствие уверенности в получении ответа.е. но с гораздо меньшими усилиями. Наиболее успешный из алгоритмов. такие как - пробное деление. что и алгоритм.

Поэтому мы ограничимся парой средневековых методов и объясним основные идеи. Ни время. при О < а < 1 функция Ь^{а^^) описывает сложность.1/дг(1. метода квадратичного решета в числовом поле.е.Сложность наиболее приемлемого алгоритма на сегодняшний день. 1 . где с — константа. 8 . 2 . Для разложения числа N на множители поступают следующим образом: for (р=1./3) = {In N)^~^^^^^ — полиномиальная сложность. Тесты на простоту и факторизация . равна Хдг(1/3. р++) { е=0. if ((N mod р)==0) then { while ((N mod p)==0) . алгоритм пробного деления. Заметим. p<sqrt(N).ие некоторые из совре­ менных алгоритмов.квадратичного решета в числовом поле. Так что.До начала 1990-ых годов самым быстрым из общих методов факторизации был метод квадратичного решета со сложно­ стью L7v(l/2.Наиболее медленный алгоритм. как было замечено в главе 7. ^ ) = e x p ( ( ^ + o(l))(lniV)^(lnln7V)i-^). .квадратичного решета. Время работы современных алгоритмов лежит где-то между по­ линомиальным и экспоненциальным. имеет сложность Ь^{1^ 1/2). питаюш.Глава 8.Ljv(0. лежащую между полиномиальной и экспоненциальной. . Приведем оценки сложности некоторых алгорит­ мов факторизации в терминах этой функции. не зависящая от разлагаемого числа N. Их сложность измеряется функцией L ^ ( a . ни объем книги не позволяют нам обсуждать все эти методы подробно. т.^) = А/'^+^(1) — экспоненциальная сложность. . что . . с) с некоторой константой с. П р о б н о е деление Пробное деление — это самый элементарный алгоритм факториза­ ции.метод непрерывных дробей (CFRAC)^ . в суб-экспоненциальной области.с).

2.8.2. не превосходящих х. — он требует 0{y/N) операций. Он вполне приемлем для разложения чисел. N=N/p. Практически все остальные алгоритмы используют вспомогательные числа.2. этот алгоритм имеет экспоненциальную сложность.у). Например. чем В. е. In у Функция Дикмана-Де Брюина определяется как решение диффе- . Размер входных данных пропорционален log2 AT. Определение 8.у) ^хр{и). — случае простого iV. Но совсем пренебре­ гать этим методом не стоит. } вывести ( р . 8. Иногда мы будем называть число просто глад­ ким. где р — функция Дикмана-Де Брюина и и= 1п:г -—. называ­ емые гладкими. (Гладкие числа. Уточним этот термин.2. Это довольно сложная функция. е ) . Количество у-гладких чисел. к гладким относят те числа. По существу. которые легко раскладываются на множители методом пробного деления. если граница В его гладкости мала по сравнению с самим чи­ слом. } } Даже поверхностное знакомство с алгоритмом показывает. что в самом плохом случае. чем пробное деление. которая аппроксими­ руется как ф{х. Число N называется 5-гладким.) Пусть В — целое число. т. число является 12-гладким. не превосходящих 10^^. Алгоритмы факторизации 217 { е=е+1. если любой его простой делитель меньше. Гладкие числа Для факторизации больших чисел хотелось бы иметь на вооруже­ нии что-то более быстрое. обозначается через ф{х.

Предположим. В квадра­ тичном решете в числовом поле получается более высокая скорость только благодаря усложненному математическому алгоритму.4. важному при анализе современных алгоритмов факторизации. деляш. ^)-гладкое.7). 8. Определение 8. Вероятность того. к. — это имя Джона Полларда. связанное с алгорит­ мами факторизации.м е т о д П о л л а р д а Самое известное имя конца двадцатого века.Глава 8. деляш. Теорема 8. Практически все важные продвижения в факторизации были сделаны им. Положив теперь у = 1/дг(а. объяснит на интуитив­ ном уровне. не превосходящих х^ асимптотически равна г/~^. меньшие 7V.Это. ( Р — 1 ) . максимальная степень простого числа.c). число N = 2^ 3^ является показательно 33-гладким. будем надеяться. что —ф{N^y) ^ и~'^ = ехр(—wlnn) = где 7 — какая-то константа. действительно ^дг(а.ая N^ меньше В./?). р(и) можно аппроксимировать выражением р{и) ^ и~'^. Это подводит нас к результату. Доля :г^/^-гладких целых чисел. например.3.ая JV.3. — это 2^ = 32.2. которое имеет место при и —^ оо.) Число N назы­ вают показательно В-гладким. В частности. мы получим InN и = 1пу 1 / IniV ^ ^-"^ /3 VlnlnTV Отсюда можно вывести. (Показательная гладкость. что нас интересуют чи­ сла. /?)-гладкими. . т. Тесты на простоту и факторизация ренциального уравнения up'{и) -^ р{и-\) =0 при U > 1. . почему сложность некоторых современных методов раз­ ложения на множители приблизительно равна L7v(l/2. меньшее 7V.( Р — 1)-метод. что любое число. равна 1/Lj\[{l — а. При дальнейших обсуждениях нам потребуется понятие показательно В-гладких чисел. Например. если любая степень простого числа. которые являются Z/7v(a.

найдем р = ПОД {А -1.метод квадратичного решета в числовом поле. Кроме того. что мы нашли А = 2^' (modiV). равенство А = 1 (mod q) маловероятно.р-метод. р делит А — 1. N). С другой стороны. которое мы планируем разложить на множители. Пусть число TV. по малой теореме Ферма. .2. Алгоритмы факторизации . Л^~^ = 1 (modp). что р — 1 является показательно J5-глaдким. В результате получим А = 2^' (modiV) = 1162 022425. q этого числа не делит. Применяя алгоритм Евклида.им образом: А=2. Выберем J9 = 180 и прогоним этот алгоритм. в то время как ^ — 1. Представив себе. . что р — 1 делит 5!. q — l таковым не является. что мы можем подсчитать то же самое по модулям р и q^ мы получим А = 1 (modp). else вывести: «результат не получен» Попытаемся разложить на множители число N == 15 770 708441. а. Следовательно. На псевдокоде этот алгоритм выглядит следуюш.8. вычисляя ПОД (Л — 1. В этом параграфе обсуждается {Р — 1)-метод. if (p!=l и p!=N) then вывести: «p делитель N». оставив остальные методы в качестве упражнений. for (j=2. а в следующем мы рассмотрим метод квадратичного решета в числовом поле. } р=Н0Д(а-1. а. Поэтому можно восстановить р.Ю. Предположим. этого числа не делит.N) = 135 979. Тогда можно надеяться. скорее всего.q. j++) { A=A^j mod N. равно произведению двух простых N = р . поскольку р—1 делит В\ и. будем считать. j<=B. что нам известно такое целое число 5 .

что сложность {Р — 1)-метода оценивается как 0{BlnB{lnNf -\.1 = 2 • 3 • 131 • 173. В этой ситуациирид называются заш. удовлетворяющих условию ж^ = у^ (modAT). ^1 — тоже простые. Можно показать.енного умножения. р—1 действительно показательно 180-гладкое и даже 174-гладкое. 8. Применяя формулу сокраш. но не делят х — у. Следова­ тельно. в то время как q — 1 таковым не является. Однако такая рекомендация сегодня не явля­ ется строго необходимой. Разность квадратов Основной прием в алгоритмах факторизации. ^ . Тесты на простоту и факторизация Обратите внимание на то.иш. так и q делят х — у. Значит.у){х -h у) = О (modiV).(InNf). что в нашем примере N = 135 979-115 979. Следовательно. что и iV. получим х^ -у^ = {х.ествования {Р — 1)-метода Полларда для алгоритма RSA рекомендуют выбирать простые числа вида p = 2pi + l и ^ = 2^^! + 1.енными простыми.2.103 • 563. заключается в генерировании двух целых чисел х иу прибли­ зительно той же величины.4. где pi. если в приложениях RSA используется большой модуль.его. . Поэтому р . как р. даюш. Ввиду суш.1 = 2 . Дело в том.1 = 135 979 . но не делят ж + у. выбор случайного 512-значного двоичного простого числа скорее всего сделает {Р — 1)-метод Полларда бесполезным. что слишком мала вероятность числу р — 1 оказаться показательно 5-гладким с малым В. результат только для чисел специального вида.Глава 8. выбор В = 0{{\пМУ) при некотором натуральном i обес­ печивает полиномиальную сложность алгоритма.1 = 115 979 . так и q делят ж + у. Если N = р ^ q^ то имеют место четыре возможности: 1) 2) 3) 4) р делит X — у^ и q делит х -\-у. правда. если р выбрано случайным образом и насчитывает 512 двоичных знаков. р делит X + у^ VL q делит х — у\ как р. известный уже много веков.

как же подобрать подходящие х и у^ разность квадратов которых делится на N. 2)d = q. 8. Указанная стратегия может приме­ няться и для дискретного логарифмирования. а именно 1/4. Такие пары называют соотношениями на факторбазе. Современные методы факторизации Современные методы разложения чисел на множители построены на следующей стратегии. Мы уже говорили. .С помощью линейной алгебры по модулю 2 ищут комбинацию соотношений.S.3. и объясним. .8. . . Поскольку эти равенства равновероятны.Выбирают границу гладкости В. о чем мы с Вами только что говорили. Поэтому можно сказать. о чем мы упоминали в предыдущей главе. 4)d=l. которые явля­ ются общими А^ля всех алгоритмов. использующих такую страте­ гию. что задача факторизации сводится к определению порядка группы.Пытаются найти делитель 7V. Один из подходов к факторизации основан на теории конеч­ ных групп. почему они работают. Здесь мы расскажем о тех частях. разлагающих на множители.N). по существу. ТО в зависимости от ситуации может получиться одно из четырех: l)d = p.Находят большое количество пар Б-гладких чисел ж и у. основанной на разности квадратов. с вероятностью 1/2 мы найдем нетривиальный делитель числа N. Самое трудное во всех алгоритмах. . 3)d = N. Современные методы факторизации Эти случаи встречаются с равной вероятностью. Если мы теперь вычислим d= nOJ\{x-y. удо­ влетворяющих условию X = у (modTV). N). которая дает X и У с условием Х^ = Y^ (modTV). Факторбаза. что информация о порядке группы (Z/iVZ)* эквивалентна разложению числа N на множители.Вычисляют базу простых чисел ^ не превосходящих В (или факторбазу F ) . — это поиск соотношений. является множеством образующих группы (Z/JVZ)*. вычисляя НОД {X — У. Как только достаточно большое количество соотношений между образующими будет най­ дено. в то время как соотношения — суть соотношения между этими образующими. с помощью стандартных алгоритмов теории групп можно бу- . Остается только понять.

Поэтому в применении линейной алгебры к соотношениям для факторизации целого числа нет ничего неожиданного. Следовательно. Тесты на простоту и факторизация дет выявить структуру группы. могут.У. в частности. Алгоритмы. и мы можем с вероятностью пятьдесят процентов найти делитель. Напомним. Комбинирование соотношений Алгоритм приведения матрицы к нормальной форме Смита слиш­ ком сложен р^ля тех алгоритмов факторизации. то Х2 = у2 (modTV). что у нас есть такие соотношения: pVr^zzzjr^V^^ (modTV). что группа абелева и поэтому не очень сложная. находим PV^^ = 1 (mod TV). Поэтому необходимо как-то автоматизировать процесс комбиниро­ вания соотношений для получения требуемой разности квадратов. TV). делящуюся на TV.3. что соотношения в нем эквива- . Предположим. p^q^r^ =pq^r'^ (modN). В этом примере легко усмотреть необходимые преобразования. 8. (8. а значит и ее порядок. Объясним применение методов линейной алгебры на предыду­ щем простом примере. что мы сейчас и собираемся продемонстрировать.Глава 8.1) p'^q'^r = 1 (mod TV).1. Разделив левую часть каждого из равенств на правую. pq^r^ = pqr^ (modTV). Перемножая последние два соотношения. если X = pq^r^^ а У = 1. На практике факторбаза может состоять из сотен тысяч простых чи­ сел. позволяющие получить разность квадратов. Дело еще упрощается тем. где p^ q и r — простые числа из нашей факторбазы F. В этом нам помогает линейная алгебра. в которых использу­ ются более элементарные методы линейной алгебры. и мы можем найти примерно такое же количество соотношений. ^ V = l (modTV). выясняющие структуру группы. вычисляя ПОД {X . опираться на нормальную форму Смита ассоциированной матри­ цы. получим p-^qr~^ = 1 (modN).

Поскольку матрицы двоичные. К счастью. Вектор Z говорит нам. Поиск вектора Z можно осуществить с помош. что ZA = О (mod 2). В результате создаются большие проблемы с распределением компьютерной памяти. столбцы которой соответствуют простым числам. вектор Z. Комбинирование соот­ ношений в целях поиска полного квадрата — обычно самая труд­ ная часть алгоритмов факторизации. При этом от каждого уравнения берутся только показатели простых чи­ сел. аннулирующий матрицу. Современные методы факторизации лентны соотношениям (8. чем элементов базы множителей. Например. имеют порядка 500 000 строк и столько же столб­ цов. = (0 0 0) (mod 2). матрицы очень сильно разрежены. участвуюш. поскольку соответствующие матрицы имеют очень большие размеры. Найдем теперь такой двоичный вектор Z. Действительно. В нашем примере матрица имеет вид: / -1 А = 0 \ 2 2 1 -1 \ 2 3 ly / -1 1 1 \ О О 1 \ 0 0 i y (mod 2). создавая специальные программы обработки матриц или специализированные суперкомпьютеры. Как правило. то для ее записи в компьютер нам бы потребовалось около 29 гигабайт.ью некоторого ва­ рианта элементарных преобразований Гаусса. соот­ ношений). е.3. причем по модулю 2. А^ЛЯ записи каждого элемента достаточно одного бита. поэтому места для их хранения требуется не слишком много. г в нашем случае). что умножая друг на друга два последних соотношения. мы получим полный квадрат по модулю N. применяя разновидность элементарных преобразований . появляющиеся при разложении интересных для кри­ птографии чисел. при примене­ нии квадратичного решета в числовом поле к факторизации стозначного десятичного числа может потребоваться матрица с более чем 100 000 строками и столбцами. выписывают матрицу А.1). которые пыта­ ются обойти. а строки — уравнениям. Если бы у нас были плотно заполненные матрицы. ^. какие из них стоит перемножить и получить полный квадрат.8. в об­ щей ситуации нам необходимо иметь больше уравнений (т. Как мы говорили выше. Матрицы. мож­ но искать.им в соотношениях (р. Чтобы определить. В на­ шем примере искомый вектор — Z = (О 1 1).

Для этого надо сформировать факторбазу «малых» простых чисел F = {p\p^ В}. Метод решета в числовом поле Квадратичное решето в числовом поле — самый быстрый из из­ вестных алгоритмов разложения на множители. Основная его идея состоит в поиске целых чисел х и у^ разность квадратов которых делится на N. как оно может быть обобщено до решета в числовом поле. Л и н е й н о е репхето Предположим. Так что применяя его. Этому как раз и посвящен следующий параграф. Идея линейного решета состоит в поиске таких чисел а и Л. демонстрируются основные идеи эффективных алгоритмов. на которую есть точная ссылка в разделе «Дополнительная литература». Мы не будем их здесь обсуждать. однако. которые стараются не менять матрицу вообще. peF peF .1. мы начнем с линейно­ го решета и покажем. д^ля которых комбинация b = a + NX является В-гладкой.Глава 8. который может оказаться плот­ ным. Для преодоления возникающей трудности развиты довольно хоро­ шие матричные алгоритмы. 8. на котором. мы опять приходим к проблеме памяти. после этого можно надеяться. Причем а тоже нужно выбирать среди S-гладких чисел.4. Линейное решето — не очень хороший алгоритм. а отошлем интересую­ щихся к книге Ленстры и Ленстры. Стандартный метод Гаусса преобразует ма­ трицу к верхнетреугольному виду. как найти соотношения. 8. Тогда будут иметь место разложения peF peF из которых получаются следующие соотношения на факторбазе: JJp«p = J J / p (modTV). что мы собираемся разложить на множители 5-гладкое число N с некоторой границей В. Мы еще не рассказали о том. Как уже было сказано. что НОД {х — y^N) — нетривиальный делитель числа 7V.4. Тесты на простоту и факторизация Гаусса над полем Z/2Z. Чтобы объяснить работу этого метода.

Выберем А = — 2.8 2. Разберем пример.0 0.0 1.заводят просеивающий массив с А-\.Метод решета в числовом поле 225 Таким образом. основной вопрос линейного решета звучит так: как найти нужные значения а и А? Их поиск осуш. а именно.0 0.0 1.для каждого простого числа р Е F прибавляют log2P к ка­ ждому значению ячейки массива. одновременно.0 0. .0 0.0 2. 7 и 11.0 1. имеет хорошие шансы ока­ заться ^-гладким и.0 1. 7.0 0.6 1.2 0.8. 0 1 2 3 4 5 6 7 8 9 1.выбирают а как номер ячейки. Добавляем log2 3 = = 1. равными 2 по модулю 3: 0 1 2 3 4 5 6 7 8 9 1.6 7 1. р = 2.0 8 9 11. Вводим массив: 0 1 2 3 4 5 6 7 8 9 0.11}. является мак­ симальным элементом массива.0 . Наша цель — найти гладкое число вида а — 2N. что при удачном выборе пороговой величины взятый номер ячейки. и вычисляем —XN (modp) = 0. Прибавляем теперь log2 2 = 1 к содержимому ячеек с четными номерами.4. .ей схеме: .3.0 2.3 4 5 1. например. Пусть N = 1159 и F = {2. делиться на большое количество простых чисел из F.5.0 0.0 0.0 0.1 нулевыми элементами.0 1.0 0. будучи сложенным с A7V. чей номер сравним с —XN по модулю р] .6 к ячейкам с номерами.0 0.0 0.0 Продолжая процесс А.0 Переходим к р = 3 и находим —XN (mod3) = 2.0 0.ЛЯ простых р = 5.0 6 1.0 2.6 0.0 0. пронумерованными от О до А.ествляют по следуюП1.0 0.0 0. значение которой превышает определенную пороговую величину.6 2.фиксируют произвольное значение А.0 0. заполняем массив полностью: 0 1 2 3 1.0 Берем первое простое число из F .6 0.0 1. Дело в том.0 0.

можно попытаться найти делитель числа N... Существует его разновидность. что просеивание-можно осуществлять параллельно. удовлетворяющих соотношениям вида аг = П ^ ' PjeF = П ^ ? ' ' = ^^ (modiV). работает без изменения. привлекаемый к линейному решету. Итак. По­ этому такой алгоритм можно распределить между большим числом компьютеров по всему миру. нужно найти новый аннулирующий вектор и сформировать другую разность квадратов. можно сформи­ ровать матрицу со строками (а^д.2 • 3 • 5 • 7 • 11. раскладывающих числа на множители. Затем найдем аннулирующий эту матрицу вектор Z. Это делается с помощью построения графов и алго­ ритмов. Заключительный этап с линейной алгеброй.. Поэтому мы подозрева­ ем. . При этом «большие» простые числа комбинируются таким образом. связанную с линейной алгеброй. Тесты на простоту и факторизация Содержимое восьмой ячейки максимально. Если попытка окажется неудачной. занимающийся задачей факторизации. что значению а = 8 соответствует гладкое и подходящее для наших целей число. что аппа­ рат линейной алгебры. pjeF Имея по крайней мере | 5 | + 1 таких соотношений. Таким образом Интернет можно превратить в «один боль­ шой» вычислительный центр. Ьг.ь • • •. как перемножить соотношения. Вариация больших простых чисел появилась в квадратичном решете. которая ослабляет условия линей­ ного решета. но ра­ ботает в любых просеивающих алгоритмах. bi^t) (mod2). который осуще­ ствляет заключительную стадию алгоритма. поскольку b = a-\N = ^-2-1159 = -2310 = . позволяя парам а и b быть почти 5-гладкими. Используя его. который под­ скажет. чтобы получить равенство вида х'^ = у^ (modAT). Ясно.Глава 8. Основной вариант линейного решета дает слишком бедный уро­ жай соотношений. в чем несложно убедиться. допус­ кая по одному «большому» простому делителю этих чисел. ац. как мы уже отмечали.. называемая ва­ риацией больших простых чисел. с помощью линейного решета мы получим большую кол­ лекцию чисел а и 6. вычисляющих базисы в множестве циклов графа. Подчиненные компьютеры сообщают все найденные ими соотношения на главный сервер.

Однако его работа поучительна для восприятия других просеиваюш. Ui \-^ т. Зафиксируем обозначения для двух гомо­ морфизмов Г Z[ei] [^ Z/ATZ. Решето в числовом поле использует для построения соотношений между элементами факторбазы арифме­ тику конечных полей. Читатель.b)eS (а-6^2) = 7 ' .6 0 1 ) = ^2 и Д ia. линейное решето никогда не предлагалось как практический алгоритм разложения на множители. — все остается практически без изменения в алго­ ритме решета в числовом поле. 8.8.их алгоритмов. мы стремимся найти множество Sc{{a. Алгоритм пользуется арифметикой числовых полей Ki=Q{ei) и K2 = Q{e2). может пропустить этот параграф.b)eS ( а . но в существенно более простой его форме. чем используемая в реальной жизни. Этап линейной алгебры. .4.2. незнакомый с алгебраической теорией чисел. Расскажем теперь об этом алгорит­ ме. Рехпето в числовом поле Линейное решето — простейший.b)eZ^\ Н0Д(а. где /i(^i) = /2(^2) = 0.6) = 1} таких элементов. И действительно. удовлетворяющие условию /i(m) = /2(m) = 0(modiV) для некоторого m G Z. Собственно. но не слишком хороший метод факторизации больших чисел. Сначала строят нормированные неприводимые многочлены / i и /2 степеней di и ^2 с целыми коэффициентами.4. Как и в линейном решете. вариа­ ция больших простых чисел и распределение задачи между разными компьютерами. это единственная модификация по сравнению с линейным решетом.Метод решета в числовом поле часто требует специального оснаш. Поэтому последний этап невозможно распределить между дочерни­ ми компьютерами.ения и большого объема памяти. что П {a.

bOi) = Fi{a.b). К а к н а й т и множ:ество S1 Аналогично процессу в линейном решете. . Тесты на простоту и факторизация где ^ G iiTi. Мы определим две факторбазы. а 7 ^ ^ 2 . что теорема о единственности разложения на простые множи­ тели неверна в кольце Щвг]^ а справедлива лишь в кольце целых. В связи с этим можно сформулировать три очевидные задачи.Вычислив ^ и 7? получим ^i{P? = ^2{l? (modiV) и можно надеяться. Алгебраическое целое число называют «глад­ ким»^ если и только если идеал.3. Обратите вни­ мание на то.Как найти множество S1 . Идеал имеет вид (^А-г)=рЪЩЛ-{вг-г)Ъ[вг]. что слово «раскладывается» взято в кавычки. Положим по определению: Fi{X. мы получаем следующее определение: Определение 8. «расклады­ вается» ли идеал (а — вф) над нашей фактор баз ой. по одной для каждого многочлена: ^г — {(^5^)1 Р — простое. им порожденный. Обобщая старое определение гладких целых чисел на случай алгебраических целых.vPl(.4. Каждый элемент факторбазы !Fi соответствует степени простого идеала в подкольце Ъ[вг] целых элементов 0Q(^i) поля ^{вг). Тогда .Как подобрать многочлены / i и /2 из первой части алгоритма? 8. чтобы разности а — Ъвх и а — Ьв2 были «гладкими». с помощью линейной ал­ гебры мы строим множество S так.5. г ЕЪ^ причем /г(г) = О (modp)}. что в данной ситуации на­ зывать гладкими объектами. Необходимо уточнить. Дело в том. Для данных значений а и Ь мы можем легко определить. Для этого придется привлечь теорию числовых полей. .Как вычислить /3 по известному элементу ^^ G Q(^i)? .228 Глава 8.Y) ^Q№)/Q(^ = ¥^^/г{у). делится только на «маленькие» простые идеалы.б)-<^2(7)) является нетривиальным делителем N. что число HOД(iV•.

.Задаем просеиваюш. А. соответствуют элементам 5[Ь].Числа Ь.Для каждой пары (р. в Oq(^0.8.r)eTi Эта процедура подводит нас к алгоритму. удовлетворяюш.Получаем {Pj. Чтобы убедиться в этом. будут иметь в качестве множителей .ему правилу: S[b] = \og2iFi{a.им ниже некоторого допустимого уровня. Если Z[ei] = (^Qidi)') то сформулированный ниже порядок дей­ ствий дает действительно единственное разложение идеала (а — вф) в произведение простых.ля которых идеал {а — вф) раскладывается над факторбазой. нетривиальным обра­ зом входит в разложение элемента а — вф^ то возникает равен­ ство (а : Ь) = (г : 1) (modp) элементов проективной прямой над полем Fp. то с большой долей вероятности Fi(a.ий массив р. . . лежаш. достаточно обратиться к книге Ленстры и Ленстры.Положим Fi{a. просеивание позволяет избегать большого количества дорогостояш. Нам остается только проверить разло­ жимость элементов.b)= П 4'' . быть может.его условию: а — гЬ = О (modp).Метод решета в числовом поле т. .ля b {—В ^ b ^ В)^ заполняя его по следуюш. . Как и в случае линейного решета. соответствующей паре (р. отсутствие однозначности разложения не препятствует нашим целям. Если уровень допуска установлен разумным образом. просеиваюш. г). .е.ему элементы а и Ь. вероятность разложения которых достаточно большая.Фиксируем а. которые нам нужны.b)).Если идеал.y Тем не менее.4.их попыток деления в надежде определить гладкие идеалы. b) и F2{a^ b) разложатся на простые идеалы из факторбазы и. г) Е Ti вычитаем log2 р из каждого эле­ мента массива с номером Ь.b)-F2{a.

что мы хотели получить про­ изведение П ^ ~ ^г^^ которое будет квадратом э л е м е н т а из Z[^i]. что п {а — 9ib) = квадрат идеала в Z[9i]. ia.ее ни в ^ i . как это делается для /3. Сделаем это для нескольких простых q. Найдя достаточно много соотношений. что 8. Пусть q — такое рациональное простое число (не лежаш.4.Глава 8. мы можем подставить это дополнительное условие в на­ шу матрицу. ни в ^2)? Д-^^ которого найдется Sq с fii^q) = О (modg) и f[{sq) ф О (modд) для какого-нибудь из зна­ чений г = 1 или 2. Ввиду мультипликативности символа Лежандра. а именно. Поэтому мы выберем некое множество простых рациональных q и добавим соот­ ветствующие символы в нашу матрицу как дополнительные столбцы нулей и единиц в соответствии с правилом если ' 'а — Ь8п\ I 1. мы найдем искомое подмножество S всех таких пар (а. Ь). Квадрат задан в виде ^^ = Е ''Я 7=0 . К а к и з в л е к а т ь к в а д р а т н ы е корни? Теперь нужно научиться извлекать квадратные корни из элементов для восстановления /3 и 7 по известным 0^ и 7^. Затем. Мы перепишем эти разло­ жения в виде соотношений. мы рассчитываем найти и такое подмножество 5. нам нужно добавить информацию из «бесконечного числа» мест. » — I —1. как уже делали в линейном решете.b)eS Однако это еще не все.Покажем. п (где ( ^ J — символ Лежандра. Тесты на простоту и факторизация по одному «большому» простому идеалу. Чтобы обойти эту проблему. ставим О. после применения линейной алгебры. ставим 1.4. Напомним. Потребуем тогда дополнительного условия.

Это наиболее простой для изучения метод.8-4' Метод решета в числовом поле где aj — очень большие целые числа.ествуют веские эвристические аргументы в пользу выбора многочленов с дополнительными свойствами: . Иногда приходится тратить несколько недель на поиск хорошей пары многочленов перед тем.Группы Галуа многочленов fi должны быть небольшими. хотя суш. Заметим.Многочлены обладают малыми коэффициентами. . П р и м е р Я благодарен Ричарду Пинчу. о котором идет речь в этом разделе. проводится серия экспериментальных просеиваний. Он сводится к вычисле­ нию квадратных корней по модулю большого количества очень и очень больших простых чисел р. 8. В ы б о р начальных м н о г о ч л е н о в Эта часть метода решета в числовом поле на сегодняшний день больше смахивает на черную магию. как запустить соответствующий ал­ горитм факторизации.ествуют и более продвинутые способы. выдающую нам большее число соотношений.6. Как только несколько кандидатов на тре­ буемые многочлены найдено.4. как способ Нгуена. например.ественных корней. Только после такого отбора имеет смысл приступать к реальной задаче факторизации. ~ / i и /2 имеют «много» корней по модулю нескольких малых простых чисел. Мы требуем выполнения толь­ ко одного условия: / i M = /2(m)-0(mod7V). применяю­ щихся для их поиска. что случайный многочлен четной степени вообще не имеет ве­ щественных корней.5. Известно несколько стратегий.4.Многочлены имеют «много» веш. позволившему мне включить в книгу пример. . Пример взят из его . такие. чтобы отобрать наиболее удачную пару. 8. Нам необходимо найти цело­ численные решения bj уравнения ^1-1 \ ^ di-l Способ его решения принадлежит Кувеню. После этого применяется китай­ ская теорема об остатках с надеждой восстановить искомый корень. хотя суш.

прочитанного в середине 1990-ых годов. -3449 . ^Здесь i — мнимая единица. Тесты на простоту и факторизация записок лекционного курса в Кембридже.3 8 + г = . т. .(/?i((31 . С одной стороны. Следовательно.12 X m = -3449. а число т = 290. после применения элементарных методов линейной алгебры мы обретаем следующие «квадраты»: (-38 + г)(-22 + 19г) .( 2 + г)(4 .if. перев. Мы получаем следующие разложения: X у N{x — гу) множители х — ту -38 -22 множители ~1 1445 (5)(172) 252 (22)(32)(7) -19 845 (5)(132) (5488) (2^)(7^) Затем мы находим два разложения. 37 и 2273 — делители числа N = 8А101. Следовательно.2 2 + 19 X m) . г^ = —1.2 2 + 19г = .12г)^ .1176) = 37. Тогда /i(m) = / 2 ( m ) .12г) = 31 .1176^. а с другой — стандартное кольцо целых чисел Z.2г)^. Возьмем fi{x) = х^ + 1 и /2(х) =х-290.(2^)(3^)(7^) .(2 + if{3 .2if{4: . Применяя отображение cpi к элементу 31 — 12г.232 Глава 8. мы хотим разложить на множители число N — = 290^ + 1 = 84101.( 2 + г)(3 . -3449 + 1176) = 2273 и ПОД (АГ.е.2 2 + 19 X ш) = 1176^ (modiV). которые являются настоящими разложениями элементов. Теперь (-3449)^ = (^i(31 . Предположим.0 ( m o d 7 V ) . Далее вычисляем ПОД (iV. у нас есть кольцо Z[i] целых^ элементов поля Q(i). поскольку Z[i] — область с единственным разложением на множители: .12г)^ и (-38 + m ) ( . находим (pi{31 .I2if) = = (/?i((-38 + г)(-22 + 19г)) = (pi{-38 + i)ipi{-22 + 19г) = = (-38 + m ) ( . — Прим. .if = (31 .

1993.1. H. Lenstra and H. . A. 1993. Lenstra. освещающая метод решета в числовом поле.Простые числа встречаются довольно часто. что случайное п-битовое число будет простым. а вероятность то­ го. кото­ рый можно осуществить. равна 1/п. A Course in Computational Algebraic Number Theory.Исследовать числа на простоту можно с помощью вероятност­ ных тестов. The Development of the Number Field Sieve. принадлежит Ленстре и Ленстре. содержагцая многие алгоритмы факторизации и доказательства простоты.Современные алгоритмы факторизации разбиваются на две стадии. — это книга Коэна. разделив задачу между множеством компьютеров через Интернет. Контрольные вопросы 8. В каких случаях стоит использовать метод пробного деления для тестирования чисел на простоту? . Дополнительная литература Стандартная книга по вычислительной теории чисел. SpringerVerlag. . На первой из них подбирается коллекция соотноше­ ний на факторбазе с помощью процесса просеивания. Для окончания факториза­ ции вычисляется разность квадратов. Volume 1: Efficient Algorithms.8^4' Метод решета в числовом поле 233 К р а т к о е с о д е р ж а н и е главы . . которые выдерживают этот тест по всем возможным основаниям. таких как тест Ферма или алгоритм МиллераРабина. Algorithmic Number Theory. требующие полиноми­ ального времени.Алгоритмы факторизации часто основаны на вычислении раз­ ности квадратов. 1996. Shallit. что су­ ществуют составные числа. Cohen. Произведение Бача и Шаллита — тоже хороший источник тестов на простоту. Bach and J. MIT Press.1. Основная работа. Недостаток теста Ферма заключается в том. Springer-Verlag. Е. .Для обоснования простоты какого-либо числа применяются алгоритмы доказательства простоты. На второй — эти соотношения подвергаются преобразованиям методами линейной алгебры на большом центральном сервере.

3. Реализуйте тесты Ферма и Миллера .234 Глава 8.5. Что понимают под просеиванием и почему его используют в современных алгоритмах разложения? Лабораторные работы 8.Рабина.1. и найдите с их помощью свидетелей делимости числа 21024 _ 3 . гГг+1 =^ xf -\-1 (modiV). 8.1.1. то с высокой вероятностью мы можем разложить N на множите­ ли.7. Покажите. В следующих трех задачах раскрывается еще один метод Полларда факторизации N = р • q^ называемый р-методом.3.2. Пусть хо — 2. . Что такое тест Ферма и в чем его главный недостаток? 8. ЕССР)! 8.2. На­ сколько большие составные числа Ваша программа сможет разложить на множители? Упражнения 8. 8.2.N). Покажите. что если найти два разных элемента последова­ тельности. но не проходит тест Миллера-Ра­ бина по тому же основанию.1. Что подразумевают под гладкими числами и как их исполь­ зуют при разложении на множители? 8. Напишите программу р^ля {Р — 1)-метода факторизации. Почему наличие пары чисел ж и ?/ с условием х^ — у^ (modTV) позволяет найти нетривиальный делитель числа N с вероят­ ностью 1/2? 8.3. Тесты на простоту и факт. что если составное число N выдерживает тест Ферма по основанию а.2. тести­ рующими числа на простоту (например. удовлетворяющих условию xi = Xj (mod/?).1. Опишите (Р — 1)-метод факторизации.1. алгоритм МиллераРабина) и доказывающими простоту (например.2.1. описанные в тексте.4. В чем состоит основное различие между алгоритмами. вычисляя Y{OJ\{xi-Xj.1. то мы можем разложить N на множители.оризацил 8. 8.6.

опираясь на закон сложе­ ния точек эллиптической кривой.3. опирающийся на арифметику поля Fp2. Разработайте аналогичный метод. подтверждающие. 8.3.3.4.5. Объясните. что в случае гладкого числа i^E{¥p) число N можно разложить.1)-метода Полларда.3. Рассмотрите эллиптическую кривую Е над кольцом Z/NZ и покажите. используя небольшое количество памяти. Обобщите (Р — 1). 8. позволяющий факторизовать числа с гладким р + 1. Это обобщение носит на­ звание метода факторизации Ленстры.6*.3. Такой метод носит название (Р Н. что мы обязатель­ но найдем разные элементы последовательности с условием Xi = Xj ( m o d p ) . (Р — 1)-метод Полларда основывается на арифметике поля Fp и позволяет раскладывать на множители произведения pq с гладким р — 1 и не гладким g — 1.8.и ( Р + 1)-методы на эллиптические кривые следующим образом. .4. как найти такие элементы. 8.Метод решета в числовом поле 8. Найдите аргументы.

где Н иО — элементы конечной абеле­ вои группы. разработанные для специальных групп.ГЛАВА 9 ДИСКРЕТНЫЕ ЛОГАРИФМЫ Ц е л и главы • Исследовать алгоритмы. состоит в том. Эти методы можно разделить на две категории: общие алгоритмы. . связанное с дискретным логарифмированием в абелевои группе Л. похожих на алгоритмы факторизации. к концу главы мы подойдем к специаль­ ным способам. е. • Ввести алгоритм Полига-Хеллмана. способами решения урав­ нения относительно неизвестной ж. 9. Начав знакомство с общих. Метод Полига-Хеллмана Первое наблюдение. • Описать известные результаты о дискретном логарифмирова­ нии на эллиптических кривых. т. применяемые к любой конечной абелевои группе. • Показать. решающие проблему дискретного ло­ гарифмирования. 9. • Рассказать об алгоритме шаги младенца/шаги гиганта. Введение Здесь мы познакомимся с известными методами дискретного лога­ рифмирования в различных группах.2. как в конечных полях с помощью методов. или специфические алгоритмы.1. • Объяснить методы Полларда. вычисляются дискретные лога­ рифмы. что сложность этой задачи совпа­ дает с ее сложностью в максимальной подгруппе простого порядка.

мы найдем х по модулю р^.e). Предположим. Сделаем это. Вот его обоснование. H1=H-{N/T}. делящих N { вычислить наибольшее число е.T) }.2. Осталось только показать. мы восстановим х по модулю 7V. нам дан элемент Н G (G). для которого Н = G^. z=0(Gl. что мы владеем оракулом 0 ( G .9. Тогда мы отыщем нужный нам х в результате следующего алгоритма: s={ }. Можно сна­ чала отыскать решения по всем модулям р^% а затем применить китайскую теорему об остатках и восстановить решение по модулю ЛГ. как отыскать дискретный логарифм в группе Сре. что у нас есть конечная циклическая абелева груп­ па А = (G). Проекция отображения Ф на компоненту Gpe задается формулой ФР С^е •рс fN/p Поскольку Фр — гомоморфизм групп. предполо­ жим.Hl. что существует групповой изомор­ физм Ф:А • Cei X • • • X Get. Подводя итог. который по элементам G^ Н Е Gpe вычисляет дискретный логарифм элемента Н по основа­ нию G. для всех простых р. Из теории групп известно. чей порядок имеет следующее разложение на простые множители: t N = #A = fjp. сводя задачу к случаю е = 1. S = S + { (z. существует натуральное число :г. используя китайскую теорему об остатках.p. Сделав это А. для которого Т=р"е делит N. if. Проблема дискретного логарифмирования в группе Gpe определена только по модулю р^. } x=KTO(S). Pi • Pt ' где Gpe — циклическая группа порядка р^. Метод Полига-Хеллмана Такое наблюдение было сделано Полигом и Хеллманом и справедли­ во в любой конечной абелевой группе. Наша цель — найти х. i=l Допустим.е. е). т. G1=G"{M/T}.p. Решая ее.ля всех простых делителей 7V. Пусть . его применение к соотноше­ нию Н = G^ приводит к равенству Фр{Н) = Фp(G)^ в группе Gpe.

и мы можем представить его в виде X = Х^+ Xip Н h Xe-lP^~^.. положив H'^HG-'"' и G' = G^\ получим уравнение на х": Н' = G""". по очереди. а значит и требуемый х. Будем искать коэффициенты XQ-.их двух параграфах. х^ = хо-\ \-xt-ip^~^. Запишем х как X = х^ -\.Хе-\р^~^~^' Тогда Следовательно. Теперь G' — элемент порядка р^~^. В качестве примера рассмотрим мультипликативную группу ко­ нечного поля F397.е. найдем ж^. Поло­ жив Н" = Н" и G" = G'% МЫ получим задачу о вычислении логарифмов в группе Ср'.р^х". xi^ . свести задачу к группе Ср. следовательно. что случай простого порядка группы нам известен. используя индуктивную процедуру.Ее порядок равен 396 = 2^ • 3^ • 11. где ж" = Xt -\-pxiJ^\ + • • • Н. и. а сейчас проил­ люстрируем изложенное. мы знаем х^ — значение х по модулю р*. что мы можем решить задачу о логарифмах в группе простого порядка. тП _ ^ПХ" _ ^ffXt-\-pXt-\-l-\--'-\-Xe-lP^ Н" = G'"" = G" _ ^ffXt j^ffp{xt • "" + l + '"Xe-lP^ * ^ "'""' * ^) _ Предполагая. Поэтому.238 Глава 9. т. и хотим определить Xt (или найти х по модулю х^'^^). предполагая. Дискретные логарифмы G^ Н Е Сре^ причем А^ля некоторого натурального числа х имеет место равенство Н = G^. число х определено по модулю р^. Допустим. Очевидно.. Способ решения задачи дискретного логарифмирования в груп­ пах Ср мы осветим в следуюш. Одна из обра- . чтобы получить эле­ мент порядка р. нам нужно возвести предыдущее уравнение в степень s = р^~^~^.

что Ж4 = 1. Поэтому. 9.1 7 где 0:4. приходим к уравнению 1Г_ . О' Подставляя численные значения.1 = 0.0 + 3 • ^9. найдя все три гГд.о = 1Теперь. имеем 1 = 396^^'S что является очередной задачей дискретного логарифмирования в группе простого порядка. порядок которых — степень простого числа: 334 = Я^^^/^ = Cf396x4/4 ^ 334^^ (mod397). ГГ4 = Ж4. 11) — решение исход­ ной задачи по модулю а. как это обнаруживает алгоритм. идя по индукции.0? ^4. 273 = H^^^l^^ = QS96xu/n ^ 290^^^ (mod397). найдем Ж4. что нам нужно решить уравнение Я ' = 334 = 334^^ Вводим элементы W^ = Н' ного логарифмирования =G'''\ is. но стоит потрудиться и понять.0 + 2 • 0^4.1 . Обратите внимание на то.1 = 1 + 2 .1. о котором будет рассказано позже (назовем его временно оракул).2.9/9 ^ 79^9 (mod397). Решим показательное уравнение Я = 208 = 5^ (mod 397). G" — G' \L решаем задачу дискрет­ в циклической группе порядка 2.и оракула. что нам и нужно. Определяем х^ Легко увидеть. Значит.= G'"''^' (mod 397). нахо­ дим Х4.о + 2 • 0:4.9.396a. Метод Полига-Хеллмана 239 зующих группы F397 — это G = 5. что Ха (где а = 4. 9.2. Представим Х4 в виде Х4 = а.0 = 1.1 ^ {О? !}• Напомним.4.2. мы восстановим X по модулю 396. 9. 286 = Я^^^/^ = g. Вновь прибегая к помош. Применяя метод. Ищем хд Представляем его в виде многочлена: ^9 = ^9.2. Разделим задачу между тремя подгруппами.

0 + 3 • Ж9. решаюш. Теперь мы опишем обилий метод решения этой проблемы. < х = 2 (mod9).1. который нам найдет Хц = 6.0 = 2. Находим ждд = О.3. мы решаем уравнение Н' = 286 = 79'^^ = 0""^ Положим Н" — Н' .2}. Шаги младенца/шаги гиганта в предыдуш. определим Ж9. 9. откуда Х9 = ^9.1 = 2 + 3 . 9. Следовательно. Поэто­ му для ее решения можно воспользоваться оракулом. G" = О' VL получим задачу логарифмирования в группе порядка 3: Применяя оракул. что суш.1 ^ {0. находим ответ исходной задачи: х = 281. Применяя китайскую теорему об остатках к этой системе. Это нам дает соотношение ^ = G^'^^'^ (mod397). Как Вы помните.о = 2. (^ ж = 6 (mod 11). 1 = 362^^'^ — очередная задача логарифмирования в группе порядка 3.ествует ора­ кул.ем параграфе мы предполагали. Дискретные логарифмы с коэффициентами 0:9^0? ^9.ий задачу дискретного логарифмирования в цикличе­ ских группах простого порядка.240 Глава 9. который называется «шаги младенца/шаги .2.3. Определяем хц Здесь задача 273 = 290^^11 (mod 397) сформулирована в циклической группе простого порядка. Финал заключается в восстановлении решения исходной задачи 208 = 5^ (mod 397) по установленным тождествам: ( X = 1 (mod4).

в общих группах сложность метода шаги младенца/шаги гиганта будет доминировать над сложностью любого алгоритма. — лучший из решающих задачу дискретного логариф­ мирования в произвольной группе. используемая во многих областях информа­ тики. но для общей группы. наибольшее целое п. метод «шагов»— вероятно. основная трудность решения общей проблемы дис­ кретных логарифмов падает на группу простого порядка.9. Поскольку предварительные этапы в методе Полига-Хеллмана довольно просты. В ней выделен элемент Н и спрашивает­ ся: как найти число х по модулю р. легшая в основу метода «шагов». так что без труда можно хранить ее элементы. т. Идея. Пусть А = (G) — циклическая груп­ па простого порядка р. Решение определяется в виде X = XQ + Xi\y/p]^ где \у] — целая часть числа у с недостатком. сортировать их и производить среди них поиск требу­ емого элемента. XI < [ ^ ] . Действительно. что фиксирован некий способ записи элементов группы в компьютер. На вычисления результатов алгоритму требуется операций и примерно такой же объем компьютерной памяти для их хранения. в любой конечной абелевой группе. Зафиксируем обозначения. Шаги младенца/шаги гиганта гиганта» и применяется. который работает быстрее. о котором сейчас пой­ дет речь. Пары (Gi^i) хранятся в таблице таким образом. удовлетворяющее неравенству п ^ у. что можно придумать. можно показать.3. что метод. самое лучшее. Это делается либо с помо­ щью упорядочивания таблицы но первому элементу. удовлетворяющее уравнению Н = G^? Будем предполагать. Сначала делаем шаги младенца: Gi=:G' для0^i< Tv^. что любую из них можно легко найти по первому элементу. в любой конкретной группе может найтись специальный алгоритм. Неравенство х ^ р влечет: О ^хо. либо. — стандартная стратегия «разделяй и властвуй». вообще говоря. е. Далее вычисляют шаги гиганта: Hj = HG-^^^^ для О ^ i < r v p ] . что более эффективно. с помощью хэш-таблиц. Конечно. . Таким образом.

ествует подгруппа простого прядка р ср>2^^^. требуемое на вычисление шагов гиганта не больше Следовательно. нам нужно решить уравнение Н = 182-:64^ (mod 607). поскольку при Gi — Hj имеет место равенство G' = HG-^^^\ т. Дискретные логарифмы После этого пытаемся найти такую пару из таблицы. чтобы Gi = Hj. чтобы решение задачи дискрет­ ного логарифмирования в группе А с учетом алгоритма ПолигаХеллмана занимало около 2^^ операций. взяв в качестве группы подгруппу порядка 101 в мультипликативной группе поля Fgor? порожденную элементом G = 64.242 Глава 9. Если такая пара найдет­ ся. Результаты вычислений занесем в таблицу: i 0 1 2 3 4 5 64^ (mod 607) i 1 64 454 527 343 100 6 7 8 9 10 64^ (mod 607) 330 482 498 308 288 Затем вычисляем шаги гиганта: Hj = 182 • 64^1^^ (mod 607) для О ^ j < 11 . Заметим. Разберем пример. сформирован­ ной на предыдуш. нам нужно подобрать та­ кую группу А. у которой суш. сложность метода шаги младенца/шаги гиганта равна oiVp)Таким образом. G^+^Tv^l = я . Допустим. что время. Сначала делаем шаги младенца: Gi = 64^ (mod 607) для О ^ г < [VM] = 11.е. то хо = г и XI = j . если мы хотим.ем этапе.

9. что совпадение имеет место при г = 4 и j == 4. не увеличивая существенно сложность алгоритма? Ответ положителен.4 = 48. что а. вычислив 64^^ (mod 607) = 182.1. что . но. р-метод Полларда Пусть / : S • S — случайная функция на множестве S и # 5 = п. мы при этом можем оценить лишь ожидаемое время работы. 9. Методы Полларда Недостаток метода шаги младенца/шаги гиганта заключается в том. что можно проверить. Все они своим существованием обязаны идеям Полларда. Последнее высказывание означает. которые снижают требования к памяти. Существует несколько алгоритмов. будем рассматривать как детерминирован­ ное случайное блуэюдание. В связи с этим возникает вопрос: можно ли суп1. . Такие требова­ ния. даже более обремени­ тельны на практике.4. Это означает. Выбираем произвольный элемент XQ Е S и последовательно вычи­ сляем Xi+i = f{xi) при г > 0. он требует столько же места в памяти компьютера.Методы Полларда 243 и смотрим. к сожалению. что несмотря на сравнительно малое время работы ( 0 ( у ^ ) ) . чем несколько большее время работы. 9. .4. = 4 + 1 1 . когда шаг гиганта совпадает с шагом младенца: j 182 • 64-iiJ (mod 607) и 182 143 69 271 343 573 1 2 3 4 5 J 182 64--11^ (mod 607) 6 60 7 394 8 483 9 76 10 580 Из сравнения таблиц видно. Значения XQ^ xi^ Х2^ . предъявляемые алгоритмами к памяти.4.ественно снизить требования к памяти. но не фактическое.

Другими словами. — Прим.X4)i за­ тем (XS^XQ) И Т. Иначе говоря. ведет себя как случайная.ей позиции Xi. будет вести себя циклическим образом. равна у т ш / З . т. что последовательность хо-. с которой мы сталкиваемся в методе шаги младенца/шаги гиганта. которые равны друг другу при несовпадаюш. . т. мы получа­ ем. что ожидаемая длина хвоста случайного отображения / (т. Х2^ . т. применяется алгоритм Флойда поиска циклов. Цель большинства методов. Благодаря парадоксу дней рождений мы получа­ ем. то такое совпадение можно ожидать при^ m = /i(l + LA//iJ). мы должны получить ра­ венство Хг = Xj д^ля некоторой пары индексов. в нем есть циклическая часть и не­ который начальный «хвост». для которого п ^ у. что ожидаемое повторение произойдет через у^7гп/2 итераций функции / . а ожидаемая длина цикла — у/37гп/8. Принимая во внимание неравенство Л < m ^ А + //. Он за­ ключается в следующем: по паре (д^1. практически ничего не храня в памяти компьютера. .Ж2) мы вычисляем {x2-. р.е. последовательность XQ^ xi. нам потребуется 0{л/п) памя­ ти. Но это и есть та самая проблема. Если мы попытаемся изобразить это блужда­ ние на множестве 5. . Дискретные логарифмы каждый шаг x^+i = fi^i) пути — детерминированная функция текуш. вслед за парой {xi^X2i) вычисляется пара {^г+Ь^2г+2) = { / ( ^ г ) . мы можем обнаружить повторение. — найти начало цикла в случайном блуждании т. Можно показать. и тогда Xi^l = f{Xi) = f{Xj) = Xj+i. Символ \у\ означает целую часть у с избытком. чи­ сло элементов в хвосте). Ж1.. восходяш. / ( / f e ) ) ) - Процесс заканчивается при равенстве: Хт = ^2т. а длина ее цикла — /i. Чтобы найти повтор и воспользоваться /9-формой случайного блуждания. Наивно говоря. перев. Х2-.е.их индексах. Но мы будем предполагать. . .их к Полларду.Если длина хвоста нашей последовательности равна Л. до ожидаемого повтора пройдет 0{л/п) времени. что т = 0{у/п). если / ведет себя как средняя случайная функция. е.е. Следовательно. е. Поскольку S — конечное множество.Глава 9. . Причем это будет точной оценкой сложности. то получится что-то вроде греческой буквы «ро».Д. Такие последовательности еще называют псевдо-случайными. такие элементы Xi и Xj последовательности. в цикл не входящий. а чтобы засечь повторение. наименьшее целое п.

• Х{^ xi+i = f{xi) = { x}. Xi e Ss- Если мы начинаем с тройки (xo^ao^bo) = (1. причем 1 ^ 52. где X = logQH. bi + l (modn). Xi e ^2. но мы не показали. bi. G -Xi. Xi e 5з. ai + 1 (modn). то для всех г logG(^i) = ai + bi logG{H) ^щ + bix. Xi G Si. так ЧТО если bm ф b2mi получаем X= — (modn). мы получим повторение последовательности.0. как это блуждание свя­ зано с дискретным логарифмированием. что ее можно игнорировать. .0). такое число т . bm — b2m При больших n вероятность равенства bm = b2m настолько мала. Xi G 83. Xi G <bi.е. Фактически нам нужно хранить данные в виде вектора: {xi^ai^bi)^ где Gij Xi G <bi.Это позволяет нам вывести следующее равенство: Ctm + ЬтХ = ат + Ьт ^OgQ{H) = logciXm) = а2т + b2m logQ{H) = log^(x2m) = = a2m + b2m^- После преобразований находим {bm — b2m)x = a2m ~ Ctm.Методы Лолларда 245 Все это замечательно. Пусть А — группа порядка п и мы решаем в ней задачу дискретного логарифмирования: Разобьем группу на три части ^ i . т. и опреде­ лим случайное блуждание по группе А следующим образом: Л. a^+i = ^ 2ai (modn). Xi e S2. ^2 и 5з.9. Xi e S2. [?г+1 = \ 2bi (modn). Применяя алгоритм Флойда поиска циклов.4. что Хщ = Х2т.

2г Ь2г 0 1 2 4 8 9 18 19 38 39 78 55 56 11 12 1 316 172 137 7 309 352 167 498 172 137 7 309 352 167 0 0 0 0 0 0 0 0 0 2 4 8 16 32 64 0 2 8 18 38 78 56 12 26 52 5 12 26 53 6 Повторение произошло при т = 14. S2 = {xe Feorl 202 ^ X ^ 403}. g0fjl2 ^ Q^Ajj^^ откуда вытекает уравнение 12а. Дискретные логарифмы Итак.122 .Глава 9. В процессе работы алгоритма Флойда будут получаться следуюш.ния за 0{у/п) операций. . если случайное блуждание получается из случайной функ­ ции / : А • Л. = 64 + 6ж mod 101. В качестве примера рассмотрим подгруппу А поля Feor порядка п — 101.ие данные: г Xi Щ ~сГ 1 "Т 1 122 0 2 316 0 3 308 0 4 172 0 5 346 0 6 137 0 7 325 0 8 7 0 9 247 0 10 309 0 И 182 0 12 352 0 13 76 0 14 167 0 bi Х2г а. порожденную элементом 64. то вышеописанный алгоритм решит задачу дис­ кретного логарифмирова. Поставим задачу о вычислении логарифма: Я . Значит.64^. Определяем подмножества группы: 5i = {:rGF607|^^201}. S^ = {xe Feo?! 404 ^ ж ^ 606}.

. А: — 1) и фиксируют функцию. Задают множество S = {50. выбирают Si = 2* для О ^ i < к. разбивают на к подмно­ жеств б'г (г = О. Группу Л. по правилу Gi = Gi-i ' G ^ для г = 1. . А в Л-методе используются две случайные последовательности элементов группы. . Л-метод П о л л а р д а Этот алгоритм похож на р-метод тем. В р-методе используется одно случайное блуждание. . определяющую псевдо-случайную последовательность: Xi^i — Xi • G^^ если Xi G Sj. В этой ситуации средний член равен ^ . . й]. когда известен отрезок. для ситуации. . При этом нам известен элемент с^ = — log^{G7v). Обозначают CQ = b и c^+i = Ci Л. Расскажем о Л-методе. . . .2. . а именно.9. Однако Л-метод предназна­ чен. .. что в нем используется детер­ минированное случайное блуждание и задействовано мало памяти для хранения промежуточных шагов. Sk-i} целых чисел. средний элемент т которого приблизительно равен N = л/w. . расположенных по неубыванию. Теперь вычисляют второе детерминированное случайное блу­ ждание. Пусть w = b — а обозначает длину от­ резка. начиная с Go = G^. . Как правило. своей формой напоминающее греческую букву «р».Sj (mod^). в котором лежит значение искомого дискретного логарифма. 9.7 8 .4.4' Методы Лолларда Другими словами. в которой ставится задача. . где q — порядок группы А. который тоже следует запомнить. где может лежать значение логарифма: ж G [а. В результате последовательных вычисле­ ний будет найден элемент GN (где N = \/w)^ который и записыва­ ется в память компьютера. которые выгля­ дят как буква «Л». . откуда и происходит название алгоритма. в первую очередь. После этого вычисляются элементы детерминированного случайно­ го блуждания. . . TV. ^ = Y ^ (mod 1 0 1 ) . Поэтому берут к ^ ^ log2(tL?). начинающееся с неизвестной точки интервала д.

В качестве примера снова возьмем группу G С F^QT порядка 101 с образующей 64. Если пересечения путей не произойдет. попытаемся найти ж. нам придется увеличить N и продолжить оба блуждания до их пересечения. . 1. .. Но тогда асимптотика сложности алгоритма совпадает со сложностью р-метода.64^. А/^ = 4: i Gi Ci 0 1 2 3 4 151 537 391 478 64 80 88 90 98 1 . . Дискретные логарифмы пусть iifo = Н — G^. .. что имеет место соотношение: logoiHi) =x + di.. .. Будем считать известным. Заметим. то Hi дальше пойдет по пути Gi и можно будет найти такое значение М.. Если путь Hi пересечется с последовательностью G^. д'—1]. при котором Я = 524 . что искомый логарифм лежит в полном отрезке [О.G^K Кроме того.Sj (mod^). искомое решение задачи о дискретных логарифмах будет иметь вид: X — cjsf — dM (mod^). 3. .В этой ситуации CN = logQ{GN) = log(^(Ям) ^X-h dMСледовательно.. . 2. тогда /fi+i = Hi . . Ожидаемое время работы алгоритма имеет порядок у ^ . и мож­ но показать. Подмножества ^о. 80]. когда известно лишь. Сначала вычисляем детерминированную случайную последователь­ ность Gi и дискретные логарифмы Ci = log^(Gx) Д^^я^ г = О. что искомое решение лежит на отрезке [60. Возьмем в качестве коэффициентов числа Si — 2^ при г = О... что количество требуемой памяти постоянно. а именно.Глава 9. при котором Нм окажется равным сохраненному нами элементу GN. но задачу выберем другую. S^ группы определим так: Si = {а е А\ а (mod 4) = г}. обозна­ чают do == О и di^i = di -\. Л-метод возможно использовать и тогда.

Однако мы их не могли использовать.2 3 (mod 101) = 7 9 ..}. .3. Ь^ G [О. 9. Поэтому д: = 1 . д^ — 1] и вычисляем Go = G'oЯ*^ Следуюп1. . Gi. Суть распараллеливания состоит в следуюш. . элементов Go. где к обычно берут около 20.ие члены yLjri^Sijti) псевдослучайной последовательности . .ем. Обратите внимание на то. Затем определим множество коэффи­ циентов гпг по случайным числам а^. ^ — 1] с помощью формулы Чтобы начать случайное блуждание.4. G2 и G3. поскольку не запоминали промежуточных значений последовательности G^.. to G [О. Параллельный р .. .м е т о д При применении этих алгоритмов на практике для распределения вычислений между большим числом компьютеров через Интернет используют параллельную версию метода. мы берем произвольную пару чисел 5о.^ и 524 151 537 391 478 64 0 1 9 11 19 23 1 2 3 4 5 Получили встречу: Н^ = G^.А. . что при исследовании этих таблиц можно заметить и более ранние пересечения наших блужданий. Допустим. i Hi di -= logG(^i) ..9. . перед нами стоит задача о решении уравнения в группе А простого порядка q. Сначала зададим легко вычислимую функцию f:A ^{1.е.4' Методы Лолларда 249 Потом вычисляем вторую псевдо-случайную последовательность. Единственное. т. . о чем мы помнили — это G4.

Можно уменьшить требуемое количество па­ мяти. ti^i :=ti-bbf(^Gi) (mod9). каждый из которых вы­ числяет блуждающие последовательности. что случайные блуждания скорее всего продлятся еще на 2^ шагов. Когда два процессора или даже один и тот же найдет элемент последовательности. Сле­ довательно. Следовательно. который будет их хранить и сравнивать. время вычислений становится теперь равным оШИ^А. а имен­ но 0{у/тщ12) данных. начинающиеся с разных элементов. Ожида­ ют. Однако при таком способе решения проблемы подразумевается. состоит из нулей. по одному и тому же алгоритму. Это означает. называют отмеченными. Возьмем функцию d : А • {ОД}? которая принимает еди­ ничные значения примерно один раз из 2^ Ее часто задают так. если определенное подмножество бит. что каждый из участвующих в процессе компьютеров должен сооб­ щать очередные члены последовательности на центральный сервер. что d{a) = 1. . Те элементы а Е А^ для которых d{a) = 1. Теперь на центральный сервер поступают сведения лишь об отмеченных элементах группы. поскольку придется запоминать слишком много. Это весьма неэффектив­ ный метод. Объясним. кото­ рый уже встречался.Глава 9. для каждого Gi мы записываем значения Sinti^ удо­ влетворяющие соотношению Gi = G''H^\ Допустим. что у нас есть т процессоров. И требуется памяти. что после 0{\/7гд/2/т) итераций этих параллельных блужданий найдется повторение и удастся вычислить дискретный логарифм. как это сделать. прежде чем будет обнаружено пересечение их путей. мы получим уравнение: из которого мы можем извлечь дискретный логарифм х. представляю­ щих элемент а. Дискретные логарифмы получаются рекуррентно: GiH-i = Gi • rufi^Gi)^ "^^+1 = ^г + ^f{Gi) (modg).

чем линейная алгебра по модулю 2.1)).ью линейной алгебры по модулю р — 1. мы сможем найти число Хг = logfjPu которое иногда называют показателем элемента pi по отношению к G. Эти вычисления осуш. Эти соотношения переписываются в уравнения дискретного лога­ рифмирования: Е бг \ogG{pi) = О (mod {р . мы сможем решить задачу дискретного логарифмирования для каждого элемента из факторбазы. . что нам поставлена задача о решении уравнения с if. отметив. PieT Как только достаточно уравнений. е. порядок которых превышает 2^^.ествует тесная связь между суб-экспоненциальными методами разложения на множители и суб-экспоненциальными методами дис­ кретного логарифмирования в конечных полях. будет найде­ но. Мы рассмотрим слу­ чай поля ¥р с простым числом р элементов. Как и прежде. Но мы советуем читателю проду­ мать свой собственный пример. состоявшую из ма­ лых простых чисел. мы считаем. т. Мы не будем приводить примера. которые станут понят­ ны после знакомства с методами.5. Выберем факторбазу Т элементов. Суб-экспоненциальные методы в числовых полях Суш.их стратегий.ествляются с помош. G G F*. использовавшихся при факторизации. посколь­ ку это усовершенствование полезно лишь для очень больших групп.9. что аналогич­ ные методы применяются и к конечным полям характеристики 2. и применим одну из просеиваюш.5. Суб-экспоненциальные алгоритмы в конечных полях часто называ­ ют исчислением показателей по причинам. Получим большое число соот­ ношений вида Л р^С = 1 (modp). более сложной. 9. Суб-экспоненциальные методы в числовых полях 251 Такой прием позволяет сократить расходы памяти до любой тре­ буемой величины за счет сравнительно небольшого увеличения вре­ мени работы алгоритма. подобных этому.

I П РТ \pieT = ^ h i logaipi) {modp . поскольку мы уже будем знать все по­ казатели Xi. работают и в этом случае. хотя при дискретном ло­ гарифмировании используется матрица по модулю р — 1. сни­ жавшие в алгоритмах факторизации требования к памяти компью­ тера до приемлемого уровня. осталь­ ные вычислить будет легче. Когда возникает необходимость в вычислении конкретного ло­ гарифма Н — G^^ с помош. можно найти.1) = PieT = y j hi • Xi (modp — 1). что как только один логарифм будет найден. (modp).c)) С некоторой константой с. Линейная алгебра применяется один раз р^ля каждого основания G. и получить разложение вида Т = Д p f (modp).. Однако приемы. Т. Дискретные логарифмы привлекавшаяся в алгоритмах факторизации. Сделав это. получим Я = и pf-f' (modp). Наилучший способ поиска соотношений на факторбазе — реше­ то в числовом поле. как это было при факторизации.ие вычисления: X = logaiH) = log. наконец. Его сложность оценивается функцией 0(Lp(l/3. а ее ре­ зультаты работают потом р^ля многих элементов Н. Pie:F Искомый ж. Это означает.252 Глава 9. сделав следуюш. а не по модулю 2. е. мы можем вычислить T = Hjlpf. Она примерно совпадает со сложностью алгоритма факторизации больших чисел.ью техники решета или метода пробного деления выписывают разложение Я = П р^^ (modp). .

Пусть эллиптическая кривая Е определена над конечным по­ лем F^. 2 или 4. но не станем подробно объяснять причины их нежелательности. что несколько меньше.3 значение #E{¥q) близко к q. что единствен­ ный метод дискретного логарифмирования в общих группах элли­ птических кривых — это параллельная версия р-метода Полларда. Это означает. мало отличающимся от д. которая есть у 80-битового блочного шифра. которых сле­ дует избегать. для которой /г = 1. решающие задачу дискретного логарифмирования. 9. обычно выбирают кривую Е с параметром г. Специальные методы для эллиптической кривой в случае эллиптических кривых неизвестны суб-экспоненциальные методы. будем предполагать. поскольку такое объясне­ ние использует слишком сложную математику. где г — простое число. Поэтому для обеспече­ ния той же криптостоикости. где проводится логарифмирование. Однако существует несколько специальных случаев. рекомендованный к использованию в криптосистемах. в котором ставится задача дискрет­ ного логарифмирования. Специальные методы для эллиптической кривой 253 Вывод из анализа суб-экспоненциальных методов говорит о том. поскольку в случае конечных полей. либо степень 2. при которых q^ — 1 делится на г.е. т. осно­ вывающихся на дискретном логарифмировании в конечных полях. Поэтому простые делители q числар—1 должны быть больше 2^^^. .е. что q — либо большое простое число. как и модуль системы RSA. для которой нет маленьких чисел t.6.6. Как обычно. чья сложность — 0{^)^ близкая к 0{^). базирующихся на эллиптической кривой. т. Даже если р будет очень большим. берут кривую. должен быть примерно таким же. Наилучший из известных алгоритмов дискретного логарифми­ рования на эллиптической кривой — параллельный р-метод Поллар­ да. Сейчас мы о них расскажем. за ис­ ключением некоторых особых случаев. По теореме Хассе 2. Это отражается на пропускной способности и времени вычислений в системах. чем размер поля. нам нужно брать q ^ 2^^^. нам все еще нужно принять меры против общей атаки.. Положим #E{¥g) = h-r. мы обычно работаем с подгруппами группы F* порядка q. порядка р > 2^^^^. Таким образом.Для любого q нам нужно выбрать кривую. где г — .9. что размер р конечного поля.

Мотивируется это тем. выбирают модули N — pq так. что р представляется в виде 2pi -|. таких. в которой ставится задача дискретного логарифмирования. Другая особенность криптосистемы RSA состоит в том. Сле­ довательно. как и при генерировании больших целых чисел для алгоритма RSA. что мы применяем модули с двумя простыми множителями.Существование обш. как в 80-битовом блочном шифре. . что произве­ дение двух простых чисел разложить на множители сложнее.Шаги младенца/шаги гиганта — общий алгоритм.1 с каким-то дру­ гим простым pi. имея дело с этими тремя исключениями. Такое требование исключает из рассмотрения суперсингулярные кривые и не­ сколько других. . основанных на понятии «спуск Вейля».ествует алгоритм решения задачи. например.Если q = р — большое простое число. . В этом случае есть простое преобразование. нужно выбирать группы с простым делителем поряд­ ка группы. насчитываюш. примерно так же. как шаги младенца/шаги гиганта. . то нам следует избегать аномальных кривых. чье время работы ограничено сверху числом y/q^ где q — большой про­ стой делитель порядка группы Л. сводящее задачу дискретного логарифмирования над эллипти­ ческой кривой к аналогичной задаче в конечном поле ¥gt.им не менее 160 бит. то обычно выбирают простое п. что для обес­ печения той же криптостойкости. В этом слу­ чае суш. чей порядок имеет большой простой делитель.их алгоритмов. а не с тремя или четырьмя. требующий 0{1пр) операций над точками эллиптической кривой. Однако этому методу необ­ ходимо 0{y/q) памяти. Дискретные логарифмы большой простой делитель числа #Е{¥д). . Учитывая (Р — 1)-метод разложе­ ния на множители. в этой ситуации можно получить суб-экспоненциальный метод решения задачи дискретного логарифмирования над эллиптической кривой. для которых i^E{¥p) = р.Ввиду существования алгоритма Полига-Хеллмана трудную задачу о дискретном логарифмировании следует ставить в груп­ пах.Если gf = 2^. чтобы избежать возможных атак. Краткое содержание главы .Глава 9. чем произведение большего числа множителей. в системе RSA^ как правило. свидетельствует о том. Нужно быть предельно внимательным.

Designs Codes and Cryptography. Odlyzko.6. Контрольные вопросы 9. 129-145. 19. Я бы рекомендовал Мак-Карлея и Одлыжко. и как они преодолеваются с помоп1. 1990. Discrete logarithms: The past and the future. за исключением специальных кривых. основывающихся на детерминированном случайном блуж­ дании по группе. 19.Существует несколько техник. Как работает алгоритм шаги младенца/шаги гиганта? 9.9. — это параллельный р-метод Полларда. Koblitz. не требующие много ком­ пьютерной памяти. что для постановки трудноразрешимой задачи дискретного логариф­ мирования необходимо выбирать большие конечные поля ¥pt с . Symposia in Applied Maths. решающий задачу диск­ ретного логарифмирования на общей эллиптической кривой. The state of elliptic curve cryptography. K. Какие выводы в отношении криптографии можно вывести из алгоритма Полига-Хеллмана? 9. Для пополнения своих знаний по последней проблеме Вы можете консультироваться с книгой Коблица.1.Для конечных полей существует алгоритмы вычисления пока­ зателей за суб-экспоненциальное время. Designs Codes and Cryptography.1. Это общие методы. Однако эти статьи лишь мимоходом касаются проблемы логарифмирования на эллиптической кривой. 173-193. Menezes and S. и решающие задачу дискретного логариф­ мирования за среднее время 0{y/q). Дополнительная литература Написано множество хороших обзоров проблемы дискретных ло­ гарифмов. The discrete logarithm problem.1. Какие проблемы возникают при реализации метода шаги мла­ денца/шаги гиганта.1. In Cryptology and Com­ putational Number Theory^ Proc. N.Для эллиптических кривых не найдено суб-экспоненциальных алгоритмов.ью р-метода Полларда? .2. Это означает.3. Поэтому единственный из известных методов. 2000. идеи которых восходят к Дол­ лар ду. А. Volume 42. 2000. . Специальные методы для эллиптической кривой . A. Vanstone. McCurley.

4. Разработайте программу для параллельного метода Поллар­ да решения задачи дискретного логарифмирования в конеч­ ных полях. Какой из них наиболее эффективен? (Эффективность здесь означает более быстрое в среднем решение задачи о дискретных логарифмах.ествования алгоритмов вычи­ сления показателей в конечных полях с точки зрения крипто­ графии? 9. найдите число х^ удовлетворяющее уравнению 3^ = 5 (modp). Обсудите утверждение о том. В тексте главы были определены три случайных блуждания. Можно ли использовать эти псевдо-случайные последовательности ^^ля разных алгоритмов? Какие преимуш.2. Лабораторные работы 9.ью этой программы в течение 24 часов? Упражнения 9.2.6. Какие выводы следуют из суп1. Л и параллельный мето­ ды Полларда. что эллиптические кривые пред­ лагают более высокую криптостойкость на один бит. где р = 2 3 • 101 • 103 • 1072 + 1.1.1.5. разработанных для дру­ гих алгоритмов? 9.) 9. Дискретные логарифмы 9. Используя лишь карманный калькулятор. .1. по одной на каждый из методов: р.Глава 9. Реализуйте р-метод Полларда и поэкспериментируйте с раз­ ными определениями детерминированных случайных блужда­ ний.3.2. которые встречались в тексте.1.3. Какие уроки в отношении криптосистем можно извлечь из существования /9-метода Полларда? 9.2. нежели конечные поля.ества (недостатки) возникают при использовании в указан­ ных методах случайных блужданий. Насколько сложную задачу дискретного логариф­ мирования Вы сможете решить с помош.1.

— это сложная проблема распределения ключей. что основное препятствие к быстрому шифрованию боль­ шого количества данных с использованием блочного или поточного шифра. базируюп]. Мы уже по­ знакомились с некоторыми методами ее решения: с помощью прото­ колов. • Рассказать о двух наиболее широко употребляемых алгорит­ мах подписей. Например. а именно RSA и DSA. Однако все эти методы не лишены недостатков.их интересными свой­ ствами. обладаюп1.ихся на симметричном шифровании или с исполь­ зованием алгоритма с открытым ключом для генерирования и пе­ редачи сеансового ключа заинтересованным партнерам. • Объяснить все необходимые А. 10. Говорят.ЛЯ цифровых подписей понятия. что криптосистема обладает прогрессивной секретно­ стью^ если компрометация долгосрочного секретного ключа в какой- .1. СХЕМЫ ПОДПИСЕЙ И ХЭШ-ФУНКЦИИ Ц е л и главы • Ввести протокол распределения ключей Диффи-Хеллмана.ГЛАВА IО РАСПРЕДЕЛЕНИЕ КЛЮЧЕЙ. Распределение ключей Диффи-Хеллмана Напомним.их долговременных ключей для обмена закрытой информацией между пользователями и центром доверия. • Рассказать о некоторых других алгоритмах подписей и тех­ нике распределения ключей. • Ввести и объяснить все необходимое для криптографических хэш-функций. протоколы с сим­ метричным ключом слишком сложны для анализа и требуют по­ стоянно работаюп1.

если. когда в сети находится только посылающий информацию. В этот момент будет дешифрована и Ваша секретная видеопередача. Допустим. В своей работе авторы предлагали использовать группу А — Fp. позволя­ ет двум сторонам достигнуть соглашения о секретном ключе по открытому каналу связи без предварительной личной встречи. атакующий озабо­ тился ее вовремя записать. что получа­ тель доверяет отправителю в его способности генерировать хоро­ ший сеансовый ключ. что в не очень отдаленном будущем секретный ключ Ва­ шего адресата будет вскрыт. Такие версии обозначают аббревиатурой EC-DH^ возникшей от сокращений ан­ глийских терминов: Elliptic Curve и Diffie-Hellman. Распреде­ ление ключей посредством систем с открытым ключом не облада­ ет прогрессивной секретностью. Проблема распределения ключей была решена в той же осново­ полагающей работе Диффи и Хеллмана. Основные со­ общения в протоколе Диффи-Хеллмана представлены следующей диаграммой^: Алиса а G^ Боб G^ G^ G^ b ^Напомню. что строчными знаками обозначаются секретные элементы прото­ кола. осуш. что Вы шифруете видеопередачу сеансовым ключом. — Прим. названный протоколом Диффи . Иногда у получателя может возникнуть же­ лание внести свои собственные случайные изменения в сеансовый ключ. Распределение ключей. конечно. Кроме того. при передаче ключей подразумевается. Чтобы понять. вообще говоря. где разработана схема ши­ фрования с открытым ключом. например. но на сегодняшний день многие эффективные версии этого прото­ кола берут за основу группу эллиптической кривой.Хеллмана обмена ключей. перев. . который был получен с помощью открытого ключа RSA адресата.Глава 10. Пе­ редавать же ключ. удобнее. Их протокол распределения ключей. Его стойкость основывается на трудноразрешимой проблеме дискрет­ ного логарифмирования в конечной абелевой группе А. с помощью электрон­ ной почты. а прописными — открытые. почему это важно. предположим. Однако это можно сделать только если обе переписывающие­ ся стороны находятся на связи в один и тот же момент времени. схемы подписей и хэш-функции то момент времени не приводит к вскрытию тайны прошлой пере­ писки.ествлявшейся с использованием этого ключа.

Хеллмана. На диаграмме изображен возможный обмен сообщениями в прото­ коле Диффи . с помощью протоко­ ла Диффи . что в протоколе передаются элементы . традиционно исполь­ зуемых в реальных протоколах. рассмотренной в главе 7. поскольку она знает а и посланное Бобом сообщение G^. а на сложности решения задачи Диффи . а G^ он узнает от Алисы. равный к = G^^. и в режиме оф­ флайн (когда один из партнеров использует долговременный ключ вида G^ вместо кратковременного).G^ = 428 647 416 А = 428 647 416 В = 450 904 856 В = G^ = 450 904 856 Общий ключ вычисляется по формулам: А^ = 428 647 416^^^ ^^^ (modP) = 1333 327162.Боб тоже может определить к = (G^)^. что для практических це­ лей выбирают ¥р с Р ^ 2^^^"^. возможно.Хеллмана мо­ жет нормально работать и в режиме онлайн (когда обе стороны вносят свои поправки в вырабатываемый ключ).Алиса может вычислить к = (G^)^. В"" = 450 904856^^^"^^ (modP) = 1333 327162.1.2. Атакующая Ева может перехватить сообщения G^ и G^ и попы­ таться восстановить секретный ключ. Напомним. что протокол Диффи .Хеллмана: Алиса Боб а = 12 345 Ь = 654 323 Л . что являет­ ся в точности задачей Диффи . криптостойкость этого протокола основывается не на дискретном логарифмировании. Распределение ключей Диффи-Хеллмапа Каждая из сторон обладает своим кратковременным секретным клю­ чом а и b соответственно. чем дискретное логарифмирование. с помощью которых они могут догово­ риться об общем сеансовом ключе: . Обратите внимание на то. . когда речь идет о группах. Приведем простой пример. хотя в это с трудом верится. так и менять их. задача Диффи-Хел­ лмана более легкая.Хеллмана можно как договариваться о ключах. Значит. поскольку ему известно Ь. но мы в качестве параметров возьмем F = 2147483 659 и G . Заметим.10. Следовательно.Хеллмана. что. Обратите внимание на то.

Общим ключом служит Х-координата точки.187) = (156. Кроме того. Распределение ключей. что существенным образом скажется на времени передачи. при использовании Fp затраты на передачи составят около 1024 бит в каждом направле­ нии. вычисляемой следую­ щим образом: [Ь]А = [86](2.187) В = [b]G = (123. Однако если используется группа элли­ птической кривой E{¥Q)^ МОЖНО брать Q « 2^^^ и снизить затраты на передачу сообщений до 160 бит на сообщение. Для «игрушечного» примера протокола EC-DH возьмем эллипти­ ческую кривую. Это может привести к сле­ дующей атаке. задаваемую уравнением Е: Y^ = X^ + X-3 над полем Figg. Итак. Кроме того.75). Общий ключ здесь — 156. схемы подписей и хэш-функции выбранной абелевой группы. поскольку Р ^ 2^^^^. Пусть элемент G имеет координаты (1. Боб п G" G^ 6 .Глава 10. Однако остается важная проблема: откуда Вы знаете с кем Вы договарива­ етесь о сеансовом ключе? У Алисы нет оснований ^\ля уверенности. воз­ ведение в степень на эллиптической кривой осуществляется более эффективно.76).150) В = (123. [а]В = [23](123. чем в числовом поле. которая условно называется «человек посередине»: Алиса Ева а G^ &" т . что она переписывается именно с Бобом.187).150) А = (2. задача распределения ключей кажется решенной.150) = (156. Следовательно. Тогда возможные сообщения протокола имеют вид: Алиса Боб а = 23 Ь = 86 А = [a]G = (2. вместо полной точки кри­ вой можно передавать сжатую точку.75).

но первая практиче­ ская разработка подписи принадлежит Ривесту. описанную в конце предыдущего параграфа. Схемы цифровой подписи При этом . Схемы цифровой подписи Одна из возможностей пресечь атаку на протокол Диффи . можно сделать вывод о том.. Важным моментом здесь является то. Они были предложены Диффи и Хеллманом все в той же статье 1976 года. считая.Ева может изучать сообщения. Поскольку она не вносит изменений в открытый текст.2.2. Дру­ гой вариант — схема подписи с восстановлением сообщения^ когда сообщение восстанавливается на выходе процедуры проверки под­ писи: СООБЩЕНИЕ + секретный ключ Алисы = ПОДПИСЬ. С другой стороны. что только Алиса может под­ писать свое сообщение. с кем ведут обмен сообщениями.Боб ведет переговоры о ключе с Евой. Шамиру и Адлеману. заключается в визи­ ровании сообщений. так как под­ пись добавляется в конец сообщения перед его передачей. они проходят через нее как через коммутатор. думая. ее действия не могут быть обнаружены. Получен­ ное сообщение подается на вход процедуры проверки подписи. Движущая пружина подписей в криптографии с открытым ключом изображена на следующей схеме: СООБЩЕНИЕ + секретный ключ Алисы = ПОДПИСЬ. Подписи — важнейший момент в криптографии с открытым ключом. ее подпись может быть . т. .Алиса договаривается о ключе с Евой. 10. В этом случае обе стороны доподлинно знают. .10. что переписыва­ ется с Бобом. поскольку только она имеет доступ к сво­ ему секретному ключу.Хеллмана. ПОДПИСЬ + ОТКРЫТЫЙ КЛЮЧ АЛИСЫ = ДА/НЕТ + СООБЩЕНИЕ. что его корре­ спондент — Алиса. Итак.к. Эта схема называется схемой подписи с прилоэюением. что самого по себе протокола Диффи .Хеллмана не достаточно д^ля обеспечения секретности рас­ пределения ключей. СООБЩЕНИЕ + ПОДПИСЬ + ОТКРЫТЫЙ КЛЮЧ АЛИСЫ = ДА/НЕТ.

поскольку р^ля этого нужен лишь от­ крытый ключ Алисы. то адресат получает уверен­ ность в следующем: . используя. схемы подписей и хэш-функции проверена любым желающим.Глава 10. Более формально. что имела место в симметричных системах. т. т. а Вы будете считать. что данный ключ использует Алиса. что используется схема подписи с вос­ становлением сообщения. . в том. к. каким открытым ключам мож­ но доверять. е. уверенности в отсутствии ренегатства. Поэтому Ева может подписывать чеки или нечто подобное. . Как удостовериться. Распределение ключей. что сообщение было послано именно Алисой. Заметим. что тот или иной открытый ключ принадлежит конкретному лицу? Вы можете считать. который отвечает за результат проверки подписи. например. Алиса. что первые два момента из упомянутых присущи также кодам аутентификации сообщений MAC. кто его отправил. в схемах MAC нет. в то время как он имеет отношение к Еве.в отсутствии ренегатства: Алиса не сможет утверждать. где S — цифровая подпись на сообщении М. Главная проблема состоит в том. Однако последнего свой­ ства. что не посылала сообщения. открытый ключ адресата.в целостности сообщения. . поскольку схема подписи с приложением несильно от нее отличается. Мы вернемся к этой проблеме позже. хотя акцент теперь падает не на сохране­ ние ключей в тайне. Получатель подписи S применяет открытое преобразование про­ верки V к S и получает на выходе процедуры сообщение М и не­ который бит ^. . в том. Если результат проверки положителен. Если существенна и конфиденциальность сообщения. схема цифровой подписи состоит из таких двух преобразований: . а на проверку их подлинности. что мы сейчас не заботимся о секретности сообщения. е. то подпись S можно зашифровать. что все это исходит от Алисы. вычисляет S = s{M) и передает результат 5. что оно не было изменено при передаче. Далее будем предполагать. т.секретное преобразование подписи 5. Кажется мы столк­ нулись с той же проблемой управления ключами. для нас сейчас важно лишь то.в его оригинальности. посылая сообщение М.открытое преобразование проверки V. Заме­ тим.

с наивной точки зрения для применения алгоритма подписи RSA к длинному сообщению нам нужно разбить его на блоки и подписы­ вать каждый из них.Отправитель применяет расшифровываюш. беря сообщение и возводя его в секретную степень d: S = т^ (modiV). Следовательно. Чтобы убе­ диться в этом. далеко не все сообщения имеют малую длину. . кратной 8. Схемы цифровой подписи А оно имеет важное значение в электронной коммерции.ее преобразование RSA^ чтобы поставить подпись. а модуль N алгоритма RSA насчитывает к битов.. Затем мы приба­ вляем к D {к —1)/8 байтов слева и получаем строку байтов вида М = 00||01||FF||FF •. по­ скольку его можно непосредственно использовать в качестве алго­ ритма подписи с восстановлением сообш. ||FF||00||L). что наша схема подписи основана на вое- . Один из способов сделать это заключается в следующем. Такая проблема возникает в связи с тем. при которых можно было бы удалить часть блоков незаметно для получателя. если сообщение действительно длинное. При этом встает вопрос о проверке законности подписи. Тогда мы дополняем сообщение D справа нулями до длины. по­ зволяющую применить вышеупомянутый метод. При проверке подписи правильность восстановления сообщения М подтверждается корректностью дополнения. Лучшим выходом из ситуации служит добавление к сообщению некоторой избыточной информации. . сообщение D состоит из t битов. представьте себе.ения. то мы можем проверить. после чего подпись вычисляется посредством формулы: М^ (modN). Более того.2. что восстановленное сообщение написано на том же язы­ ке. страхуясь от атак. как это было отме­ чено при рассмотрении режима шифрования ЕСВ. причем t < к — 32.Получатель использует шифрующую функцию RSA и восста­ навливает оригинальное сообщение: М = S^ (modTV). Алгоритм шифрования RSA представляет особый интерес. К сожалению. если Вы начнете отрицать факт подписания чека. что случится. Пред­ положим. Но это не очень удачное решение. Такой способ съедает слишком много времени. в действительности подписанного Вами. Если исход­ ное сообщение было написано на естественном языке. при разбиении сообщения на блоки нам необходимо добавлять еще некоторые из­ быточные данные.10.

Глава 10. Другая характеризация односторонних хэш-функ­ ций — сказать о них. S). должно быть невозможно в вы­ числительном отношении по элементу Y из множества значений хэш-функции подобрать такой х из области определения. Если оно верно. то подпись законна. нам дано длинное сообщение М д^ля визирования. при ко­ тором h{x) = Y. сообщение восстанавливается из под­ писи и процедуры проверки. Нам необходимы хэш-функции со специальными свойства­ ми. Однако здесь не годится любая старая хэшфункция. но его можно делать например так. Сначала вычисляется h{M) и потом применяется преобразование подписи RSA к хэш-значению h{M)^ т. . подпись получается как S = h{M)^ (modTV).е. определенная на битовых строках произвольной длины со значениями в стро­ ках битов фиксированной длины. о которых мы сейчас будем говорить. . 10. При использовании схемы подписи с приложением мы могли бы перемешать (хэшировать) сообщение и подписать результат.Вычисление h{M) по М. Проверка пары (М. но важное отличие криптографических хэшфункций от стандартных состоит в том. схемы подписей и хэш-функции становлении сообщения. Предположим. Ее значение часто называют хэгикодом или хэш-значением. В информатике тоже используются свое­ го рода хэш-функции. т. что первые должны быть односторонними. . Применение криптографических хэш-функций позволяет создать схему подписи RSA без восстановления сообщения. Распределение ключей. что они защищены от восстановления прообра­ зов.«Шифрование» S с помощью шифрующей экспоненты RSA р^ля получения Н': Н' = S^ (modiV). что намного эф­ фективней для длинных сообщений.е.Проверка равенства Н' — h{M). Наконец. как в схеме подписи с восстановлением сообщения. Хэш-функции Криптографическая хэш-функция h — это функция. S) состоит из трех этапов: . Другими словами. В противном случае — незаконна. На самом деле при практическом использовании тут тоже нужно пополнение.3. подпись и само сообщение передаются вместе в виде пары (М.

Отправитель выбирает два сообщения М и М'. д. . Предположите. которое имеет порядок 0(2^) для корректно заданной . Тогда возможна следуюш. она находит прообраз значения Н^ при отобра­ жении h (напомним. можно предположить. утверждая. Чтобы найти по­ вторы в значениях хэш-функции / . S). Ева определяет М = h-^H').Ева вычисляет Н' — R^ (mod N) с некоторым выбранным на­ угад целом числом R.Кроме того. на которое он поставил Вашу подпись. нам необходимо запоминать ре­ зультаты вычисления / ( ^ i ) . Если значения этой функции имеют длину п битов. Ясно. В ней нападающий не име­ ет контроля над содержанием сообщения.ая атака.Потом он отказывается от своего сообщения. Хэш-функции Итак. что h сейчас стандартная хэш-функция и вычисление прообраза вполне возможно). Ввиду парадокса дней рождений залщщенные от повторений хэшфункции строятся сложнее. пока не встретится повторение. почему нам нужна хэш-функция со свойством односторон­ ности? Ответ заключается в том. Такая подделка называется экзистенциальной. /(^2)? /(^з)? и т.3.10. что посылал сообщение М'. .ения М. Это требование помогает избежать следующих атак со стороны подписывающего лица. Эту оцен­ ку стоит сравнить с числом шагов. а не одностороннюю. удовлетворя­ ющие соотношению h{M) = h{M'). На практике требуется нечто большее. что М — электронный чек на сум­ му в 1000 евро. что получится неприятность. R) сообш. Хэш-функцию h называют защищенной от повторений^ если вычислительно невозможно найти два таких различных значения х и х\ при которых h{x) = h{x'). что мы используем только что описанную схему подписи RSA с приложением. . то ожидаемое совпадение появится через 0(2^/^) итераций.Он подписывает М и получает подпись (М. чем односторонние. но хэш-функцию бе­ рем стандартную. например. . т..е. Например. Теперь Ева обладает Вашей подписью (М. чем свойство односторон­ ности.ение с данной подписью. необходимых для вычисления прообраза. в то время как М' — чек на сумму в 10 евро. что свойство односторонности препятствует криптоаналитику фабриковать сообш. .

Пос­ кольку область определения функции h бесконечна. для достижения необходимого уровня стойкости устойчивая от повторений функция. Л е м м а 10. мы найдем ж'. а О обозначает оракул. Следовательно. Свойство защищенности от восстановления прообра­ зов сильнее защищенности от повторений и вторых прообразов. Доказательство. Пусть h — функция. Криптографическая хэш-функция должна обладать свойством защищенности от вторых прообразов^ т.Глава 10. 2) защищенностью от повторений: вычислительно невозмож­ но найти два сообщения с одним и тем же значением хэшфункции. 3) защищенностью от вторых прообразов: по данному сооб­ щению нереально найти другое сообщение с тем же значением хэш-функции. определенная на 80битовых строках должна принимать значения в 160-битовых стро­ ках.1. О — ора­ кул. Но и этого еще недостаточно. взламывающий защищецность от восстановления прообразов функции h. Это требование обес­ печивает стойкость против следующих атак: . Подставив найденное значение у в оракул. мы нашли повторение значений функции h.находит другое сообщение М'^ р^ля которого h{M) = h{M')\ .нападающий получает Вашу подпись (М. .е. по данному М должно быть практически невозможно отыскать такой М' ф М. мы можем проследить связи свойств. что h{x) = у^ т.ставит Вашу подпись [M'^S) на своем сообщении М'. В итоге криптографические хэш-функции должны обладать сле­ дующими тремя свойствами: 1) защищенностью от восстановления прообразов: должно быть невозможно в вычислительном отношении найти сообще­ ние с данным значением хэш-функции. сводя одно из них к другому. . мы можем найти повторения в значениях /i. выбрав X наугад и вычислив у == h{x). Используя О. Как же соотносятся эти свойства? Как и в случае анализа кри­ птосистем с открытым ключом. Следовательно. S) на сообщении М. который по данному у находит такой ж. удовлетворяющий равенству у = h{x'). Распределение ключей. схемы подписей и хэш-функции хэш-функции. вероятность со­ впадения X = х' крайне мала. е. ]\^1я которого h{M) = h{M').

защи­ щенные от вторых прообразов. например. е. что все ис­ пользуемые хэш-функции защищены от повторений. который по данно­ му X может отыскать х' ф х^ для которого h{x^) = h{x).3. как это делается в неко­ торых программах защиты от вирусов. хэш-функцию можно использовать для за­ щиты целостности больших файлов так. работающие по этому же. Ясно. в которых требуются функции. В следующих главах мы познакомимся с кри­ птографическими схемами. MAC = h{M\\k). использующей криптографические хэш-функции. как задачи факторизации или дискретного логарифмирования. как используя ал­ горитм. Доказательство. взламывающий защищенность от восстановления прообра­ зов.10. т. на­ зывают НМАС: НМАС = h{k\\Pi\\h{k\\P2\\M)). опирающегося на хэш-функции. такой. можно найти второй прообраз. состоит в присоединении к сообщению ключа и применении к такой связке хэш-функции. • Лемма 10. Во многих рабо­ тах коды аутентификации сообщений. Криптографические хэш-функции без повторений можно при­ менять как основу MAC. Например. где Fi и Р2 — последовательности символов. manipulation de­ tection code). Заметим. MDC (от англ.2. взяв произвольное х и применив оракул. Пусть существует оракул (!?. что криптостойкость любой схемы цифровой подпи­ си. хотя этот способ не считают особенно удачным. Хэш-функции Аналогичным рассуждением можно показать. используемые для по­ полнения входных данных до полных блоков. выберем самое слабое свойство. • Хотелось бы основывать криптографические схемы на самых сильных свойствах. Защищенность от вторых прообразов сильнее защи­ щенности от повторений. так и от стойкости хэш-функции. зависит как от сложности подлежащей математической задачи. Одна из возможностей построения кода МЛ С. но чуть более сложному (в целях повышения стойкости) принципу. Хэш-функции можно также рассматривать как специальный тип кодов обнаружения вмешательства. Но в этой главе мы будем считать. т. что с его помощью мы легко найдем повторения. Вычисляется значение хэш- .е.

Назовем три из них: MD5^ RIPEMD160 и SHA-1. Алгоритм MD5 производит 128-битовые строки. Все они по своей природе итерационны.!• Семейство MD4 Несколько хэш-функций находят широкое применение. .SHA-384 практически идентичен SHA-512 за исключением то­ го. их длина должна быть приблизительно равна 128 битам. например.и 512-битовые строки соответ­ ственно. на дискете.3. Чтобы значения хэш-функции.RIPEMD-160 состоит из 5 раундов по 16 шагов в каждом и имеет длину выходной строки в 160 битов. . который называется MD4' Семь основных алгоритмов семейства MD4 представлены следующим списком: . спрятанной в сейф). . что его выход урезан до 384 битов. небольшое изменение в аргументе хэш-функции долж­ но очень сильно повлиять на ее значение. а длина его значе­ ния — 256 битов. Недавно национальный институт стандартов и технологий США предложил новые хэш-функции: SHA-256^ SHA-384 и SHA512^ значения которых — 256-. Это обеспечивает допол­ нительную стойкость.Глава 10. Распределение ключей. или поме­ щается в файл с подобными данными. в то время как значения RIPEMD-160 и SHA-1 имеют длину в 160 битов. Длина его выходных данных — 160 битов.MD4^ состоящий из 3 раундов по 16 шагов в каждом со 128битовой выходной строкой. 384. Все они — обобщение более раннего и простого алгоритма. но предпочтитель­ нее значения в 160 битов. . Дру­ гими словами. . применяемой в системах с низ­ ким уровнем стойкости. чтобы подпись на чеке в 30 фунтов нельзя было переделать в подпись на чеке в 30 000 фунтов. препятствующей дальнейшему вмешательству. схемы подписей и хэш-функции функции от содержания файла и либо хранится в каком-то безо­ пасном месте (например.SHA-256 имеет 64 раунда по одному шагу. что ее значения должны производить лавинный эффект.MD5^ насчитывающий 4 раунда по 16 шагов в каждом со 128битовой выходной строкой. который затем снабжается цифровой подпись. были свободны от повторений. . 10. Основной принцип проектирования хэш-функции заключается в том.SHA-512 состоит из 80 од пошаговых раундов и выдает строки в 512 битов.SHA-1 включает в себя 4 раунда по 20 шагов в каждом. и наоборот. .

47 = [3.4.6.9. начальные значения которых равны Hi = '67452301/i'.4. г.11. 15]. Щ = '98BADCFEh'.i5 = [0.3.CD) = (Н[1]. 15]. 32 < j ^ 47.19. Н[2]+В.3..3.3. h{u.15..5.6.5. В MD4 участвуют три поразрядные функции от трех 32-битовых переменных: /(гл.11. Н[3]+С.11.7.13..9. 216.19]. О ^ J ^ 15. поскольку остальные — более сложные версии этого алгоритма.Н[2].2.11.13.7.5.5.3.3.Я4) 32-битовых переменных.3..15]. Выполнить второй раунд.13..6.5.7.. И .14.5.11.10. H[4]+D).Яз.7... .3.12.1.Н[3].14.11.Н[2. Щ = '10325476/1'.11.9.3.7.2.1. Хэш-функции 269 Обсудим подробно MD4. Оставим их изучение по доступной литера­ туре на усмотрение любознательного читателя.8.19.7. w) — {и Av) W {й Aw).11. Ha протяжении всего алгоритма мы следим за текущим хэш-состо­ янием (Я1.9.19.10.Н[3]. w) = {и Av) V {и Aw) У {v А w). Затем мы выполняем следующие преобразо­ вания над каждым из 16 слов.9. свои для каждого раунда.12.7. Поток данных состоит из 16 одновременно загружаемых слов в мас­ сив ХЦ] (о ^ J < 16).9.A7 = [0..13.3..3.9.9.. S16. Si).2.. д{и. Существуют различные фиксированные константы (Vii Zi.15 = [3. Vj = { '5Л827999/1'.1.9. (Н[1].15.8..15.10. Выполнить первый раунд.13].15]. 'QEDQEBAlh'.4.Н[4]).Я2. Z32.13. Н2 = 'ЕРСВАВЪШ'.9.13.^v^w) = u®v ®w.3.10. Имеем О. Выполнить третий раунд.9.Н[4]) = (Н[1]+А.31 = [3. внесенных в поток данных: (А.14. S0.11.3.12. И .В. г?.5.8. 16 ^ j < 31. S32.31 = [0. Значения Zi и Sj приведены в следующих массивах: zo.

Hi-i) = Eg(^Hi.Раунд 1 For j = О to 15 do l. Хэ1п-функции и блочные ш и ф р ы Хэш-функции можно строить с помощью п-битового блочного ши­ фра Ek. Ж1.i){xi) ® Xi.B. B. 2.B. 10. .t = A-h g{B. 2. которую мы собираемся строить.Hi^i). D) + X[zj] + Vj.Б. Значение конструируемой хэш-функции со­ впадает с окончательным значением Ht^ полученным итерацией сле­ дующего процесса: Ho = IV.t = A + f{B. . Все они используют постоянное открытое начальное значение IV.t ^ Sj. зависит от ис­ пользуемой схемы. Мы предложим Вашему вниманию три возмож­ ности.С. C.270 Глава 10. D) + X[zj] + Vj.C. C.Раунд 2 For j = 16 to 31 do l. 2. . схемы подписей и хэш-функции После считывания всех данных выходные данные представляют собой конкатенацию окончательных значений переменных: Подробности раундов приведены в следующем описании.Раунд 3 For j = 32 to 47 do l. Определение функции / .Хэш-функция Матиаса-Мейера-Осиса f{xi. .C. (Л. Выбор раз­ мера групп зависит от точного определения хэш-функции.t = A-\.t^Sj. xt^ длина которых совпадает с размером бло­ ков или длиной ключа используемого блочного шифра. Распределение ключей.t<m: Sj. . переводящую п-битовые строки в ключи. Hi = fixi.C). C. (Л. {A. Некото­ рые схемы привлекают еще функцию ^.Есть несколько способов такого конструирования.B. Сначала сообщение пополняется до нужной длины и разбивается на группы жо.C). . D) = {D. .2.h{B.3. хотя есть и другие.D)+X[zj] + yj. участвующей в итерациях. где <^ обозначает побитывый циклический сдвиг влево: .D) = {D. .1)) = {D. Б . C).

изменяемым с каждым новым сооб­ щением.е. Один из алгоритмов. занимает места меньше.10. Иногда его именуют стандартом цифровой подписи или DSS (Digital Signature Standard). в котором собствен­ но подпись состоит из двух 160-битовых целых чисел R и S.Алгоритм RSA неприменим в некоторых приложениях. в котором учтены все эти возражения. на­ зывают алгоритмом цифровой подписи. Такие методы обозна­ чают EC-DSA^ т.Что если кто-то вскроет алгоритм RSA или решит задачу раз­ ложения на множители? . DSA — алгоритм подписи с дополнением. получен­ ная с его помощью. и размер ключа в нем сравнительно невелик. Здесь криптостойкость зиждется на сложно­ сти дискретного логарифмирования в поле Fp. Число R является функцией 160-разрядного случайного числа fc.Сама /^б'Л-подпись очень велика. Алгоритмы цифровой подписи Мы уже рассказывали об одной из схем цифровой подписи. который работает с конечными полями. посколь­ ку генерирование подписи с его помощью — слишком дорого­ стоящая операция. которое называют эфемерным ключом. и подпись.4. чем практически во всех других алгоритмах подписи. алгоритм цифровой подписи на эллиптических кривых. или DSA (от английско­ го эквивалента: Digital Signature Algorithm). Миягучи-Пренила 10. сейчас же повсеместно пользуются группой эллиптической кривой. . Оригинальная версия алгоритма использовала мультипликативную группу Fp с большим простым числом Р . Число S — функция от сообщения. Сначала мы опишем основной /^^Л-алгоритм. а в некоторых практических приложениях требуется. Более того. секретного ключа гг.4' Алгоритмы цифровой подписи 271 Хэш-функция Давиэса-Мейера f{xi. а именно о схеме RSA.Hi-i) Хэш-функция = E^^{Hi. Можно спросить: зачем нужны еще какие-то схемы подписей? Ответ разобьем на несколько утверждений: . чтобы подпись занимала мало места. .i) ® Щ^1. Этот вариант DSA работает быстрее.

генерируется случайное число Н < Р и вы­ числяется р-1 Если G = 1. С^ = 1 (modP).вычисляет значение хэш-функции Н = h{M)^ . J\jiK их задания сначала фик­ сируется 160-битовое простое число Q. Аналогично алгоритму Эль-Гамаль. что Р — 1 делится на Q. пользователь осуществляет сле­ дующие шаги: . Чтобы подписать сообщение М. 5). лежащее между 2^^^ и 2^^^^.находит Подписью сообщения М служит пара (Л. G) каждый пользователь генерирует свой собственный секретный подписывающий ключ ж. пока не получат G Ф 1. После выбора параметров домена (Р. удовлетворяющий неравенству Q < х < Q. чем в RSA^ поскольку она тре­ бует лишь одного возведения в степень в числовом поле. схемы подписей и хэш-функции принадлежащего подписывающему сообщение лицу.определяют А = H/S (modQ) и В = R/S (modQ). Параметры домена в DSA открыты и очень похожи на параметры домена в криптосистеме Эль-Гамаль. . Этим обеспечивается выполнение следующего условия: G — элемент группы Fp порядка Q. Соответствующим от­ крытым ключом служит число У. которые являются общими р. Обратите внимание на то.выбирает случайный эфемерный ключ О < А: < Q.272 Глава 10. S) на сообщении М делают так: . е. . ]\ля проверки подписи (Р. то переходят к другому случайному Н до тех пор. вычисляемое по правилу F = G^ (modP). . здесь есть несколько пара­ метров домена. т. имеющая в общей слож­ ности 320 двоичных знаков.определяет R={G^ (modP)) (modQ). числа R и эфе­ мерного ключа к.вычисляют хэш-значение Н = h{M)^ . Распределение ключей. Q.ля ряда пользователей. а затем выбирается такое большое простое число F . что процедура выбора пользовательской ключевой пары существенно проще. Наконец.

хотя. когда V = Я Приведем пример работы DSA^ выбрав малые параметры домена: Q = 13. опирающие­ ся на решето в числовом поле. насчитывающими около 1024 двоичных знаков. чтобы . поро­ жденную элементом G. . то сначала нам нужно выбрать эфемерный ключ к = 2 и найти R = (G^ (modP)) (modQ) = 5. чем RSA^ поскольку арифметиче­ ские операции в нем сложнее. Если мы хотим подписать сообщение с хэшзначением iif = 5. что ключевая пара пользователя имеет вид я. S={H + xR)/k (mod Q) = 10. Следовательно. Для проверки нашей подписи получатель определяет А .Q > 2^^^. где Y — открытый ключ автора сообщения. .I (modQ) = 7. д^ля достижения грубого эквивалента стойкости 80битового алгоритма DES^ нам нужно оперировать с целыми числа­ ми. В результате DSA работает даже медленнее.10. V = {G^Y^ (modP)) (modQ) . Процедура проверки в RSA привлека­ ет лишь одно возведение в степень по модулю 1024-разрядного чи­ сла. Ввиду равенства V = R^ делаем вывод о корректности подписи.находят V = {G^Y^ (modP)) (modg). Предположим. это предотвратит атаки с использованием алгоритма шаги младенца/шаги гиганта.Алгоритмы цифровой подписи . Р = 4Q + 1 . Следовательно. а в алгоритме DSA процедура проверки предусматривает два .53 и G = 16. задача дискретного лога­ рифмирования должна решаться в циклической группе (G) поряд­ ка Q. Алгоритм DSA использует подгруппу в Fp порядка Q. Для обеспечения криптостойкости нам необходимо потребо­ вать.5.Р > 2^^^. P . более благоразумно выбирать Р > 21024.| ( m o d Q ) = 7.Подпись считается корректной тогда и только тогда. в целях предупреждения атаки. = 3 и Y = G^ (modP) = 15.4.

.Вычисляется хэш-значение Н = h{M).1 Таблица 10. . Подписью сообщения М служит пара (R^S). на практике нам нужно работать с группой элементов по 1024 знаков каждый. Сведем различия в средах оперирования DSA и EC-DSA в табл.1. осуществляют следующую процедуру: . S) на сообщении М. Бу­ дем считать.суп].ествует открытая функция F : А —> Z/QZ. поскольку при этом нам нужно вычислять значение S.ий ключ к и вычисляет открытый по формуле: Y = О^. порожденная элементом G. Мы можем использовать ту. . Распределение ключей. где эта задача ре­ шается труднее всего.Выбирается эфемерный ключ О < к < Q. К счастью. . Подпись получается в результате следуюш.ить DSA на произвольную конечную абелеву группу. Основная причина этих проблем кроется в том. например. в которой сложно решается задача о дискретном логарифмировании.его процесса: . что очень сильно замед­ ляет работу.Глава 10. но так как целые числа по модулю Р поддаются атакам с по­ мощью решета в числовом поле. что . Пусть А — циклическая группа.элемент G имеет простой порядок Q > 2^^^. можно обобш. Кроме то­ го. 10. процедура подписания в DSA более сложная. что теоретиче­ ски DSA-2uiTOY>wTM должен работать в абелевых группах порядка 2^^^. Для проверки подписи (Д.Определяется R = F{G^) ж S = {Н + xR)/k (modQ).дискретное логарифмирование по основанию G — труднораз­ решимая задача. группу точек эллиптической кри­ вой над конечным полем. схемы подписей и хэш-функции возведения в степень по модулю 1024-разрядного числа. Параметр DSA EC-DSA А G Y F (G) с ¥*р Ge¥*p (Р) С Е{¥р) Р е Е(¥р) [х]Р ж-координата Р по модулю Q QX (modg) В обобщенной версии DSA каждый пользователь тоже генери­ рует секретный подписываюш.

76) .е.191). = 153. . Заметим. является простым. т. а координаты ее образу­ ющей Р — (1. Выберем ж = 29 в качестве секретного ключа. чтобы удобнее было сравнивать две версии схемы.185)/153 (mod 197) = 78. Подпись.4. R)/k (mod Q) = = (68 + 29 .35)) = 185.10. т.иВ = § (modQ). и вычислить R = x-KOopfl. Чтобы проверить подпись. Далее он находит S = ЩМ) + X . в чем они отличаются. — это пара (Д. что осуш.Определяют А = ^ (mod Q) . е.([153](1.Алгоритмы цифровой подписи . если V = R. где Y — открытый ключ подписавшего сообщение. Стоит сравнить эти процедуры генерирования и проверки под­ писи с теми. Число ее элементов равно Q = 197. Поэтому соответствующая группа — циклическая.Вычисляют хэш-значение Н — h{M).((185.{[k]P) = ж-коорд. Тогда ему нужно произ­ вести эфемерный ключ.. . мы вычисляем А = h{M)/S (modg) = 68/78 (mod 197) = 112.(113. .ествляются в алгоритме DSA^ и найти. который мы выберем равным А.Находят У = F(G^y^).Подпись считается корректной.5) = (185. Предположим. через знак «+». Разберем «игрушечный» пример работы алгоритма EC-DSA^ взяв за основу эллиптическую кривую над полем F199 вида Е: Г^ = Х^ + X + 3. что владелец секретного ключа намерен подписать сообщение с хэш-значением Н{М) = 68.78). Тогда соответствующий открытый ключ будет равен Y = [х]Р = [29](1. . что обычно все операции в алгоритмах EC-DSA записываются аддитивно. а мы оста­ вили мультипликативную запись.76)) = -а. которую он посылает вместе с сообщением.76). В = R/S (modQ) = 185/78 (mod 197) = 15.-коорд.

в ал­ горитме Шнорра поступают следующим образом: .191) = = (111. Р = 607 и G = 601. так и от эфемерного открытого ключа. Пусть А — открытая конечная абелева группа. . Теперь находим хэш-значение Е = h{M\\R) (modQ). секретным ключом служит целое число х из интервала (О. Подпись оказалась верной.60) + (122. Подпись Шнорра Множество вариантов схем подписей основывается на дискретных логарифмах.Вычисляют соответствующий открытый ключ R — G^. Допустим. если верно равенство Е — h{M\\R). Ключевая пара в алгоритме подписи Шнорра совпадает с такой же парой в DSA^ а именно. . Для примера выберем следующие параметры домена: Q = 101.Вычисляют S = к -h X • Е (mod Q). оставив читателю разбираться самостоя­ тельно с его обобщением на эллиптические кривые. но­ сящий название подписи Шнорра.76) + [15](113. поскольку R = 185 = д:-коорд. .Находят Е — /г(М||Л). что значение хэш-функции зависит как от сообщения. схемы подписей и хэш-функции После этого определяем Z = [А]Р + B[Y] = [112](1.Выбирают эфемерный ключ к из промежутка (0. Полученная таким образом пара (£?.5. S) является искомой подписью. Затем генерируем эфемерный ключ /с — 65 и вычисляем R = G^ (modp) = 223. 10. положим х = 3 и У = G'' (modP) . Проверка подписи довольно проста: вычисляют R = G^Y~^ и h{M\\R). С практической точки зрения интересен алгоритм.276 Глава 10. Подпись корректна. Распределение ключей.(5). порожденная эле­ ментом G простого порядка Q. Расскажем об этом алгоритме в его оригинальном виде.140) = (185.(^). Q). Тогда вторая компонента подписи .3 9 1 . Чтобы подписать сообщение. Чтобы зафиксировать ключевую пару. что при этом получилось Е = 93.35). а открытый ключ определяется формулой Y = G^. Обратите внимание на то.

Более подробно. — Прим. то К А К Л : Л = G^.10. по­ скольку «отвечающая» часть подписи (значение S) легко проверя­ ется. как работает алгоритм подписи при процедуре аутентификации. в то время как никакого доказательства криптостойкости DSA пока не найдено.ля этого нужно всего лишь одно умножение и одно сложение в конечном поле. в какой группе мы работаем. что все требуемые вычисления при этом крайне просты для реализации. К : Е. Обратите внимание. Алгоритм подписи Шнорра был предложен к эксплуатации в процедурах запрос-ответ идентификации кредитных карточек. она передает тому одно из этих зара­ нее вычисленных обращений. Вы хо­ тите с помощью смарт-карты^ подтвердить свою подлинность при проходе в какое-то закрытое помещение или при обращении к тор­ говому автомату.4 1 . . Считыватель карты обладает копией Вашего от­ крытого ключа У. если обозначить через К смарт-карту. Когда Вы помещаете смарт-карту в считывающее устройство. Чтобы увидеть. В следующих главах мы увидим.5. Таким образом. перев. а через А — читающий ее автомат. что можно доказать криптостойкость алгоритма подписи Шнорра в предположении о трудноразрешимости задачи дискретного логарифмирования. приведем следующий сценарий. она генериру­ ет некие обращения. Независимо от того. Подпись Шнорра выглядит как S = k-\-x-E (modQ) = 6 5 + 3-93 (mod 101) . так как д. который проверит «подпись» вычислением G^ — RY^. Считыватель выдает запрашивающее сообщение Е. Допустим. этот протокол состоит из трех фаз обращение • запрос ^Кредитная карточка с микропроцессором. эта заключительная стадия требует только арифметики по модулю относительно небольшого простого числа. Пока Вы носите карточку в кармане. в то время как в карточке записан Ваш секрет­ ный ключ гг. После чего Вашей карточке остается лишь найти S = к-\-хЕ (modQ) и передать результат считывателю. которые фактически являются эфемерным от­ крытым ключом вида R = G^. ^ А: S^k + xE (modQ).

называемый алгоритмом подписи Ниберга-Руппеля. Определяют S = х • Е -\. Подпись представляет собой пару (E^S).к (mod Q). нам нужно Исходя из этой пары и . Мы предполагаем.f{M) • R (modP). Это действие напоминает то. Находят Е =.278 Глава 10. |-> т\\т. Все схемы подписи с восстановлением сообщения используют от­ крытую функцию избыточности / . Мы позна­ комимся с большим числом таких протоколов. нельзя использовать в виде схемы с восстановлением сооб­ щения. что RSA мож­ но использовать и как схему подписи с приложением. которые затем подписываются. что делает хэш-функция в схемах подписи с приложением. а G — образующая под­ группы в А порядка Q. А — Fp и. что подпись на коротком сообщении будет более длинной. Берут случайное число к G Ъ/Q'L и вычисляют R = G^ (mod Р). Сейчас мы приведем пример схемы подписи с восстановлени­ ем сообщения. Напомним. 10. будем считать. и как схему подписи с восстановлением сообщения. Пока ни один из описанных нами алгоритмов подписи. схемы подписей и хэш-функции которые присущи всем идентифицирующим протоколам. т. целого числа по модулю Q. Распределение ключей. Однако в отличие от хэш-функции функция избы­ точности должна быть легко обратимой. Ключевая пара выбирается стандартным способом ^\ля систем. основанный на вычислении логарифмов в открытой конечной абелевой группе А.е. В нашем описании мы будем использовать це­ лые числа по модулю Р . 2. Алгоритм подписи Ниберга-Руппеля состоит в следующем: 1.6. что большое простое число Q делит Р — 1. Подпись Ниберга-Руппеля Может оказаться. когда будем изучать в главе 13 доказательства с нулевым разглашением. основанный на дискретном логарифми­ ровании. Функция / преобразует фак­ тическое сообщение в данные. чем его основное содержание. основанных на дискретном логарифмировании: {Y = G\x). В качестве простого при­ мера можно взять —• {одг. 3. как обычно. что множество значений функции / может быть вложено в группу А.

Чтобы подписать сообщение М = 12 (в нашем маленьком при­ мере М должно лежать на отрезке [0. Итак. совпадает со значением Я. Покажем теперь. подписывающим сообщение. После этого убеждаются. S) и открытому ключу отправителя Y — G^ вычисляют Ui . Ес­ ли это равенство ложно.убедиться в том. .2^ • М. Выберем параметры домена: Q = 101. Допустим. Далее проверяющий находит U2 = E/Ui (modP) = 204. Подпись Ниберга-Руппеля . что подпись принадлежит пользователю с открытым ключом Y. поэтому под­ пись корректна. Р = 607.е. Пример. Мы видим. S = X'E-hk (modQ) = 52. что С/2 действительно так представляется.восстановить сообщение М.52). В процедуре проверки подписи Ниберга-Руппеля по паре (J5. Все начи­ нается с вычисления C/i = G^Y-^ = 143. / ( М ) = М Н. как проверяется подпись и восстанавливается сообщение. т. . У = G^ (modP) = 391. Тогда / ( М ) = 204 и Е=^ f{M)'R (modP) = 3 6 . Обратите внимание на то. Сообщение М = 12 восстанавливается как решение уравнения М + 2^М = 204.15]. вычисляем эфемерный ключ к = 45 и R = G^ (modP) = 143. наша подпись — это пара {E^S) = (36. то подпись отклоняют. что найденное число С/2 представимо в виде М + 2^М для некоторого целого числа М G [0. что С/2 является значением функции избы­ точности. что полученное проверяющим значение C/i. в справедливости равенства С/2 — f{M) = М\\М. Теперь необходимо убедиться в том.10.15]).6. и G = 601. В противном случае восстанавливают сообщение по правилу М = /~^(С/2) и принимают подпись. найденным лицом. Пусть ключевая пара имеет вид: ж = 3. C/2-^(modP).G^Y-^ = G^-^^ = G^ (modP).

что р. Распределение ключей.ений и никак не задействован в передаче ключей. что атака «чело­ век посередине» достигала успеха потому. Напомним.2. мы можем выбрать одну из версий протокола Диффи-Хеллмана.ения Менезис.Хеллмана: Таблица 10. по­ рожденной элементом G. поскольку долговре­ менный ключ для подписи используется лишь для установления под­ линности сообп]. Первая из них основывается на дискретном лога­ рифмировании в конечных полях {DH)^ а другая берет за основу эллиптическую кривую (EC-DH). Размер сообщений в протоколе Диффи . а порядок группы как в DSE^ так и в EC-DSA приблизительно равен 2^^^. названный протоколом MQV. Мы получим прогрессивную секретность.Хеллмана Алгоритм DH4-DSA DH-hRSA EC-DH+RSA EC-DH4-EC-DSA Размер сообщения Размер подписи Общий размер 1024 1024 160 160 320 1024 1024 320 1344 2048 1184 480 Видно. а нам нужно всего лишь договориться об использовании сеансового ключа. Для уменьшения объема сообш. возникавшую в протоколе Диффи-Хеллмана распределения ключей. Соглашение об аутентифицированном ключе Теперь мы знаем. Теперь мы в состоянии идентифицировать любую из сторон. что при этом получаются слишком большие накладные расходы. Считая.ений дается таблицей 10. Кью и Ванстоун разработали протокол. Он основы­ вается на задаче дискретного логарифмирования в группе А. что каждая из сторон не знала. размер которого может быть всего 128 битов. Кроме того. причем размер сообш. Его можно использовать как в конечном поле. Протокол работает в предпо- . кто с ней обменивался сообш.7. Таким образом. про­ стое число в DSA около 2^^^^.3. схемы подписей и хэш-функции 10. Существует по крайней мере три возможных варианта алгоритма подписания документов: RSA^ DSA и EC-DSA.ениями.ля обеспечения криптостойкости необхо­ димо выбирать в RSA модуль шифрования порядка 1024 битов. с помощью которых можно решить проблему. MQV-протокол дает нам значительную эконо­ мию в размере передаваемых данных.Глава 10. мы получим следующий размер подписанных сообщений в протоколе Диффи . обязав их подписывать свои послания. как реализовать цифровые подписи. так и на эллиптических кривых для обмена аутентифицированным ключом.

Размер сообщений в протоколе MQV Протокол DL-MQV EC-MQV Размер сообщения 1024 160 Предположим. то Z = 160/2 = 80. например. что Боб с Алисой намерены достигнуть соглаше­ ния о секретном сеансовом ключе. С. Алиса с Бобом производят свою эфемерную ключевую пару C={G\j) и (D = G'.10.7. До некоторой степени это напоминает стандартный протокол Диффи-Хеллмана без всяких подписей.6) И обмениваются информацией Алиса Боб • Боб: G'^. Пусть I обозначает половину битового размера порядка группы А. что В — ключ с теми же свойствами. а Алиса уверена. что Алиса и Боб имеют долговременную ключевую пару. При этом они генерируют уни­ кальные случайные вставки. о которых пойдет речь в следующих главах. что Вы — Алиса.3. 2) полагает SA — (i (mod 2^)) + 2\ 3) преобразует D в целое число j . которые мы обозначим Будем предполагать следующее: Боб знает. что здесь окончательный сеансовый ключ будет зависеть также от долговре­ менных ключей А и В. Соглашение об аутентифицир о ванном ключе ложении. что ни одна из договаривающихся сторон не обя­ зана доверять другой в выборе сеансового ключа. D. состоящую из открытого и секретного ключей. Установление подлин­ ности открытых ключей может быть обеспечено применением неко­ торой формы сертификатов открытых ключей.avL 7. принадлежащий Бобу. • Алиса: G^. Таблица 10. обеспечивающие стойкость протокола и означающие. Чтобы определить сеансовый ключ. Алиса производит следующие операции: 1) преобразует С в целое число / . . если порядок группы Q ^ 2^^^. J5. Допустим. Тогда Вы знаете А. Однако дело в том. что А — аутентификационный открытый ключ Алисы.

. чтобы добиться стойкости как для коротких.Протокол Диффи . 2) полагает SB = (г (mod2^)) + 2^ 3) преобразует С в целое число j . Боб делает то же. К р а т к о е содерж:ание главы .5(7 + Зла) + /?Тл(7 + Зла) = = <5(7 + Тва) + рЗвЬ + Тва) = = 7(^ + Зв13) + аТв{6 + Звй = (7 + аТв)кв = = logo ((СЛ^^)'*^) = logG(pB). найденная Алисой. . либо подпись с восстановлением сообщения. но необходимо комбинировать этот алгоритм с хэш-функциями.SA' ос^ 6) определяет рл = (1)5^^)^^. заметим. Ее применяют в виде двух схем: либо подпись с приложением. Распределение ключей. Однако этот протокол восприимчив к атаке «че­ ловек посередине». но со своей ключевой парой: 1) преобразует D в целое число / . РА = Рв — общий секрет. вычисленной Бобом. Дабы убедиться.Используя алгоритм шифрования RSA в обратном направле­ нии. поэтому нуждается в какой-нибудь форме удостоверения подлинности переговаривающихся сторон. схемы подписей и хэш-функции 4) вычисляет ТА = {З (mod20) + 2^ 5) находит НА = ^ -\. . так и для краткосрочных целей. можно получить схему подписи с открытым ключом. 4) вычисляет Тв = {j (mod20) -h 2^ 5) находит кв = S -{.Глава 10. В результате. совпадает с р ^ .Для целей криптографии нужны односторонние.SB • Р^ 6) определяет рв = (СА^^)^^. Такие функции препятствуют ..Цифровая подпись обеспечивает аутентификацию как для дол­ говременных. что SA = Тв vi^ SB = ТА.Хеллмана можно использовать для дости­ жения соглашения о сеансовом секретном ключе по открыто­ му каналу. защищенные от повторений хэш-функции. так и для длин­ ных сообщений.Поэтому . что ве­ личина/)д.

направленной на протокол Диффи . неоспоримые подписи. Почему MAC не обеспечивает защиту от ренегатства? . 1995. основанный на дискрет­ ных логарифмах.1.ествуют и другие алгоритмы подписи с различными свой­ ствами. EC-DSA — вариант DSA. с помош. . Дополнительная литература Информацию о более криптостойких схемах подписи. таких.3. одноразовые подписи.Хеллмана. .ийся более эффек­ тивным. Applied Cryptography. например. При этом происходит неявное удостоверение подлинности клю­ ча. свя­ занную с атакой «человек посередине»? 10. Расскажите об атаке «человек посередине». направленным на фальсификацию цифровой подписи. Stinson. Почему алгоритмы цифровой подписи решают проблему.7.1. хотя безусловно. осно­ ванный на эллиптических кривых. являюш.Суш.DSA — алгоритм цифровой подписи.ью комбинации эфемерного ключа и долговременного ключа каждого из поль­ зователей..10.1. CRC Press. Wiley. размер значений хэшфункции должен по крайней мере вдвое превышать размер первоначальной оценки вычислительных возможностей атакуюп1. . 1996.Другой путь распределения ключей. о котором ведутся переговоры. 10. которая предъ­ являет слабые требования к пропускной способности канала. Контрольные вопросы 10. В. Благодаря парадоксу дней рождений.его. В них также хорошо изложены хэш-функции и коды аутентификации сообш. не требующий цифровой подписи. состоит в применении системы MQV. как. самый лучший источ­ н и к — Я Л С. чем оригинал. можно найти в книгах Стинсона и Шнайера. D. Мы рас­ смотрели алгоритмы Шнорра и Нуберга-Руппеля..ений. подписи с завершением процесса при ошибке. Соглашение об аутентифицированпом ключе атакам.1.2. Schneier. Он уменьшает размер подписи по сравнению с RSA^ но работает медленнее. Cryptography: Theory and Practice. используюпще дискретное логарифмирование.

3. что hi : {0.» 10. Реализуйте протокол MQV и сравните его со стандартной реализацией схемы подписи Диффи . Опишите алгоритм подписи DSA и объясните.1}^^ • {0.ества алгоритма Шнорра перед DSA1 10. Шнор­ ра и Ниберга-Руппеля. реализующие алгоритмы DSA.их свойств хэш-функций: зап].2.иеся на проблеме дискретного логарифмирования в числовом поле? Упраж:нения 10.1.2.1.1.1. базируюш.5.Хеллмана. Предположим. заш. Чем хэш-функции отличаются от блочных шифров? 10. Разработайте на программном уровне основанные на элли­ птических кривых варианты алгоритмов DSA^ Шнорра. Обсудите утверждение: «криптография с открытым ключом решает проблему распределения ключей с помош.енность от вторых прообразов ? 10. Ни­ берга-Руппеля.6.1. Что более эф­ фективно — Ваши варианты. В чем преимуп1. Распределение ключей. Что - означает каждое из следуюш. 10.7.енность от восстановления прообразов. что если пользователь применяет один и тот же эфемерный ключ в алгоритме DSA J\JIA ПОДПИСИ двух разных сообп].8.ений.2.ип]. Лабораторные работы 10.2.1. 10. то нападаюш. Определим ..иш.4. как в нем обеспечивается стойкость. 10.ью аутентификационных методов и распределения открытых ключей.2. Покажите. заш. С какой точ­ ки зрения протокол MQV более эффективен: пропускной спо­ собности или времени работы? 10.3.1}'^ — хэш-функция.3.3.ищенность от повторений. или оригинальные.284 Глава 10.ий может раскрыть его долговре­ менный секретный ключ.ищенная от повторений. Диффи-Хеллмана и MQV. Объясните различия и совпадения в протоколах Диффи-Хеллмана и MQV. схемы подписей и хэш-функции 10.3. Напишите программы.1. заш.

4. \ xi\\x2^ hi{hi{xi)\\hi{x2)). в идеале требует 2^ операций. Продумай­ те. Соглашение об аутентифицированном ключе 285 ^^^ Г {о. 10. состоящего из к блоков: М = Mi.5. где Ж1. что ее партнер пользуется тем же ключом.. Фиксируем открытый ключ (7V. как найти повторяющиеся значения функции h.. основанные на функциях MAC: MAC = h{k\\M). 10. которая осуществляется менее чем за 2'^ операций. MAC = h{M\\k). 10. д:2 ^ {0.1}4-—^{о. Покажите.6.. размер блоков и ключа в которой равен п. как придать это свойство протоколу MQV. Покажите. Говорят.10.3.. ..3.1}^^.Mjt. сопоставляющую ему элемент Hk^ где Hi = Ml и Щ= (Hf_i (modiV)) ©Mi.1Г. Разработайте атаку. Атака на функцию MAC. Рассмотрите следую­ щие хэш-функции..А. если каждая из сторон имеет гарантию. Е) в алгоритме Д5Л и опре­ деляем хэш-функцию /г от сообщения М.7. г = 2. что /i2 тоже защищена от повторений.3. что и она.. что схема распределения ключей обладает свойством подтверждения.

так и алгоритмов возведения в степень. Разговор будет идти. об операциях в криптосистемах с открытым ключом. Существует и другая причина фокусировки внимания на алго­ ритмах с открытым ключом: они работают существенно медленнее. хотя будем упоминать и о других схемах. поскольку на их примере можно рассказать почти обо всех необходимых операциях. как эффективно реализовать конечные поля ха­ рактеристики 2. если заботиться об экономии средств. Фактически эти алгорит­ мы могут выполняться настолько медленно. в RSA и DSA нам нужно возводить в степень по модулю чисел. Будем гово­ рить в основном об алгоритмах. Сле­ довательно. мы сконцен­ трируемся именно на ней. Это означает. чем алгоритмы с симметричным ключом. • Объяснить. как эффективно реализовать арифметические опе­ рации в кольцах вычетов. как работают алгоритмы возведения в степень. Введение в настоящей главе разбирается практическое воплощение крипто­ графических операций. главным образом.ГЛАВА 11 РЕАЛИЗАЦИЯ ОПЕРАЦИЙ Цели главы • Показать. 11. ускоряющие операции в алгоритмах RSA HDSA. используемых в программном обес- . двузначное представление которых насчитывает более тыся­ чи знаков. что их использование может серьезно тормозить работу сети и серверов Интернета.1. что нам нужно понять способы реализации как арифметики остатков. • Перечислить приемы. Поскольку RSA наиболее доступна для понимания. эффективная реализация операций весьма важна. • Объяснить. где работает специализированная техника вычислений. Например.

Хотя в аппаратных средствах применяется другая техни­ ка. Алгоритмы возведения в степень печении. мы получаем большой промежуточный результат — 28153 056 843. I 1. Наивный подход к решению нашей задачи привел бы к следуюш.2. при . так и в систе­ мах. не­ обходимо вспомнить. В следующих разделах мы рассмотрим и эти операции. что вычисление а^ (mod с) — простая операция.ем случае. е. таких как ЭльГамаль и DSA. Она используется как в Д5Л. основанных на дискретном логарифмировании. М = С^ (modiV). х'^ = Х'Х (mod511) = 310. а потом определять его остаток от деления на N. применяемыми в програм­ мах. предполагая. Действительно. что мы работаем по модулю N. она несомненно связана с методами. когда возводятся в степень числа с 1024 дво­ ичными знаками. основная операция в RSA и DSA — возве­ дение в степень по модулю целого числа.11. промежуточный результат будет иметь 2^^^"^ • 1024 знаков.им вычислениям: X = 123. В реальной ситуации. что кажется прием­ лемым для нашего игрушечного примера. т.2. Прежде всего отметим. поступая таким образом при вычислении 123^ (mod 511) = 28153 056 843 (mod 511) = 359. Только ц^ля записи таких чисел потребуется около 10301 ги­ габайт на винчестере. что не имеет смысла сначала находить Л = С^. что арифметические опера­ ции в кольце вычетов Z/iVZ реализуются достаточно эффективно. Но в обш. На это уходит 4 умножения в кольце вычетов. Поэтому изучение способов программных реализаций имеет большое значение. х^ = Х'х'^ (mod511) =316. Алгоритмы возведения в степень До сих пор в этой книге мы полагали. Как уже отмечалось. х"^ = Х'Х^ (mod511) = 3 2 . Но даже при этом стоит быть внимательным. х^ = Х'Х^ (mod511) =359. Чтобы промежуточные результаты не были столь огромны. В этом параграфе мы будем заниматься алгоритма­ ми возведения в степень.

с помощью которого достигается такал экономия опера­ ций носит специальное название: метод двоичного потенцирования. . т.Глава 11. Здесь нам потребовалось только три произведения. а /i — его вес Хемминга. т. представленные с помощью средств языков С или Java. . Чтобы увидеть. х^ = х-х х^ ^х^ (mod511) =310. что при возведении в 1024-битовую степень потребуется не более 2048 умножений. как можно было бы сократить количество умножений: X = 123. а среднее число операций и того меньше — 1535. d и п — большие целые числа. . а не 4. где t — количество знаков в двоичном представлении показателя. t/2. у. как это происходит.h — 1 умножений и . е. Усредненный вес Хемминга целого числа равен половине количества его двоичных знаков. Поэтому мы произвели 1 = /г — 1 умножение общего вида и 2 = < — 1 возведения в квадрат. ^Вес Хемминга числа равен количеству единиц в его двоичном представлении.t — 1 возведения в квадрат. нам потребуется 10^^^ лет на осуще­ ствление операции расшифрования в алгоритме RSA. вычисляющего у = х^ (modn). перев. где гг. Работает он. Метод. Прим. Такой подсчет остается справедливым и в общем случае: возведение в степень по модулю целого числа может быть осуществлено с помощью . что двоичное представление числа 5 имеет вид: ^101Ь'.это трехзначное число. Если каждое произведение при этом осуществляется за 1 миллионную долю секунды. как рань­ ше. начинал с младшего разряда. Обратите внимание на то. х^ = Х'Х^ (mod511) = 359.его вес Хемминга^ равен h = 2. Реализация операций возведении в 1024-разрядную степень потребуется около 2^^^^^ таких умножений. Поэтому среднее число умножений и возведений в квадрат при вычислении экспоненты в кольце вычетов равно t + t/2 — 1. запишем на псевдокоде алгоритм двоичного потенци­ рования. 'Х^ (mod 511) = 3 2 . Однако даже на нашем небольшом примерчике легко увидеть.е. поочередно считывал знаки двоичного представления показателя. Это означает.

т. чтобы еще больше со­ кратить время вычислений.п. что мы находим у = х^ (modn). что мы привели на псевдокоде. Алгоритмы возведете в степень y=i. Это можно сделать. начиная от самого младшего. Чтобы лучше понять этот новый метод. Тот. Приведенная ниже программа. x=(x*x)'/. Некоторые авторы называют его алгоритмом квадратов и умноэ/сений^ поскольку он действительно осуществляется с помощью этих операций. иногда величают алгоритмом потенциро­ вания справа-налево^ поскольку он перебирает знаки показателя. чем общее умножение. и введем обозначе- .n. d=d-l. Но на этот раз вместо ва­ рианта справа-налево^ мы начнем со старшего разряда показате­ ля. вновь обратимся к стан­ дартному двоичному потенцированию. Можно реализовать этот метод и с помощью вызова рекурсив­ ной функции.2)!=0) { у=(у*х)У. которая использует заранее вычисленные значения. применяя технику окон. осуществляя вариант слева-направо двоичного потенцирования.pow ((a*a) 'mod' m) m (n ' d i v ' 2) I otherwise = (a*t) 'mod' m где t = bin_pow ((a*a) 'mod' m) m ((n-1) ' d i v ' 2) В большинстве случаев возведение в квадрат осуществляется бы­ стрее. } d/=2. Другие именуют его алгоритмом индийского потенцирования.2. написанная на языке Haskell^ реализует двоичное потенцирование по модулю т. } Этот метод имеет много разных названий. while ( d o O ) { i f ((dy. опре­ деляемая следующим образом: bin_pow : : I n t -> I n t -> I n t -> I n t bin_pow a m n I n == 0 =1 I n 'mod' 2 == 0 = bin>. стоящего справа. Предположим. Следовательно. Для вы­ числения а^ (mod т) используется процедура bin^pow а m п. е. стоит попытаться уменьшить количе­ ство общих умножений.11.

} j=d[i]. for ( i = t . Алгоритм слева-направо двоичного потенцирования выполняется следующим образом: y=i. В оконном методе за один раз учитывается w знаков показателя.. У = (y*x[j])7. а ожидаемое число общих умножений — t/2. } } Здесь обрабатывается один бит показателя за каждый проход цикла. . . 1 . Реализация операций ПИЯ А^ля двоичного представления показателя: t i=o где di G {0. При этом число возведений в квадрат равно t. .2*" — 1}. .. for (i=t/w.n.1}. } Проследим за действиями алгоритма с шириной окна го = 3 на примере вычисления у = х^^^ (modn). Разложим показатель по сте­ пеням 2^: 215 = 3 • 2^ + 2 • 2^ + 7.290 Глава 11. i>=0..n. i ~ ) { for (j=0. .п.n. Сначала заполняется таблица заранее вычисленных значений Хг = х^ (mod п) для г = О. i ~ ) { У = (y*y)7. Реализация оконного метода выглядит так: y=i. j<w. i>=0. j++) { У = (y*y)'/.. Потом показатель представляется в виде t/w г=0 где di € { 0 . if (d[i]==l) { у = (у*х)У. 2^ — 1.

Считая.e [ i ] . В оконном методе по-прежнему требуется t возведений в квадрат. Выбирая лишь нечетные значения р^ля коэффициентов d^. что уже опреде­ лены степени х[г] = х'^ р.1). представим метод скользящего окна на псевдокоде: y=i. в котором показатель представляется в виде где di G {1. их можно использо­ вать для вычисления а^ в конечном поле или [d]P на эллиптической .п. У = У' = х'\ У = у''= х''\ у = У'Х = Х^^. • • • 2^ — 1}. Алгоритмы возведения в степень Тогда у = у. но число общих умножений уменьшается в среднем до t/w. Следовательно. а число общих умножений сокращается в среднем до I до t/{w 4. 3. а не только в кольце вычетов.n. j++) { у = (у*у)У.11. j < e [ 0 ] . y= h у = у. 5. а ei^i — Ci ^ w. . .ля г = 1.Х^ = Х^.n. у = у-Х^= Ж^^^. у = У'х'^ = х'^^^. 5.3. и меняя ширину окна. 2^ — 1. j < e [ i + l ] . j++) { У = (y*y)7. . i ~ ) { for (j=0. } j=d[i]. Можно добиться еще больших успехов. мы дости­ гаем экономии памяти на хранение заранее найденных значений и увеличиваем эффективность вычислений.х^ = Х^. } for (j=0. i>=0. У = (y*xCj])7. В нашем примере вычисления у = х^^^ (modn) происхо­ дит следующее: 215 = 3 • 2^ + 2^ + 7. если применить метод скользящего окна.2.х'^= х'^^. что все описанные нами оконные ме­ тоды применимы для возведения в степень в любой абелевой группе. } Тут число возведений во вторую степень по-прежнему остается рав­ ным t. . Обратите внимание на то. for ( i = l . у = у.

±(2^"^ — 1)}. Сначала вычисляют Pi = \i]P для г = 1. Выбор ускоряющего метода зависит от того. т. . j < e [ i + l ] . специально разработанных для этой криптосистемы. } else { Q = Q . 2^-^ . .e [ i ] . j < e [ 0 ] .P[-j]. Теперь представляем показатель в виде i=0 где di G {±1. } I 1. } } for (j=0.1.Глава 11. В случае эллиптических кривых легко вычисляются обратные элементы. ± 3 . Ограничимся рассказом о знаковом оконном ме­ тоде. т.. Знаковый оконный метод вычи­ сления степеней на эллиптических кривых представлен следующим алгоритмом на псевдокоде: Q=0.3. } j=d[i]. j++) { Q = [2] Q. Потенцирование в RSA Для ускорения процесса возведения в степень в алгоритме RSA при­ меняется множество приемов. лишь половину значений. Реализация операций кривой. . for ( i = l . . . хотя в последнем случае происходит умножение точки на число. по данной точке Р достаточно просто можно опре­ делить точку —Р.. вы­ полняем ли мы процедуру шифрования (проверки подлинности под­ писи) с открытым ключом или обращаемся к процессу расшифро­ вания (подписывания сообщения) с секретным ключом. j++) { Q = [2] Q. if (j>0) { Q = Q + P [ j ] . i>=0.. Это позволяет разработать знаковые двоичный и оконный методы. i ~ ) { for (j=0.5.3. требуемых р^ля скользящего оконного метода. е. или четверть необходимых данных в стандартном оконном методе. е.

Вычисляем t = р"^ (mod^) и храним его вместе с секретным ключом. rriq = С^ (modq) = С^ (^odq-i) (jnodg).11. чем одно потенцирова­ ние с 1024-битовым показателем по модулю числа с 1024 двоичными знаками.3.3Л. При расши­ фровывании сообщения приходится вычислить т^-С^ (modAT). часто применяются достаточно небольшие открытые (шифрующие) экспоненты. по которой выбираются такие значения. а со­ общение т восстанавливается по схеме: и = {тпд — mp)t (mod^). Поскольку p и q — числа порядка 2^^^. Распхифровывание (подписывание) в RSA В случае расшифрования или подписывания сообщения в алгоритме RSA показатель вычисляемой степени будет общим 1000-битовым числом. состоит в том. Е — 3^ 17 или 65 537. фактически наименьший из возможных для открытых RSAключей. хотя с точки зрения математики в этом нет никакой необходимости. Например. Для ускорения процесса сначала найдем т по модулям р и q: тпр = С^ (modp) = С^ (modp-i) (modp). мы знаем секретный ключ. К счастью. 2. нам нужен какой-нибудь путь сокращения числа операций. Поэтому двоичный метод или любой другой разумный алгоритм потенцирования будет использовать лишь одно общее умножение и к возведений в квадрат. что можно сде­ лать с помощью китайской теоремы об остатках. Потенцирование в RSA 11. как было замечено в главе 7.3.2. Следовательно. где к — число двоичных знаков открытой экспоненты. М^ = М^' М. Это существенно быстрее. на эти действия потребует­ ся два потенцирования с показателем в 512 знаков по модулю 512битового числа. 11. напри­ мер. .ля ускорения вычислений и надо хранить р и q вместе с секретным ключом. М. Как раз ^1. Теперь предстоит восстановить т по тПр и т ^ . а именно. т = гпр + up. М^^ = М^^'М = (((М2)2)2)2 .а значит и разложение модуля алгоритма на множители: N = pq. что эти числа имеют небольшой вес Хемминга. Шифрование (проверка подписи) в RSA Как уже было отмечено в предыдущих главах. Причина.

реализующих эту идею. исходя из данных А и В. .Gj.Глава 11. t) обозначаются числа. где t — максимум из числа знаков А и В. Наконец.ля j от 1 до t. Поскольку в двоичной системе счисления числа 11 и 7 имеют вид ^10116^ и '111Ь'. Реализация операций 11. Сначала мы вычисляем Go = 1^ Gi = G^ G2 = Y^ Gs = G • Y. /2 = 2. Но все они по сути эксплуатируют один трюк. 7з = 3. Через Ij (j = 1. . Стро­ ки массива — двоичное представление показателей А и В. Таким образом.1. Существу­ ет множество методов. чье двоичное представление зада­ ется столбцами этого массива. /4 = 3.2. . За­ тем заполняется массив показателей. Сначала заполняется поисковая таблица Gi = G'^Y'\ где г = (ioih) — двоичное представление числа г = 0. . р. называемый приемом Шамира.4. В этом случае t = 4. которые используют различные варианты оконной техники или что-либо похожее. а затем перемножая полученные значения. В качестве примера найдем г = G^^Y'^. поочередно возводя в степень сначала G. параметру г присваивают единичное значение и вычисляют г = г^ .3. Его размерность — 2 х t. . Это можно сделать. Потенцирование в DSA Напомним. массив показателей будет таким: Отсюда находим Iji /1 = 1. четыре шага алгоритма выглядят следующим обра­ зом: г = Gi = G. Однако зачастую проще возводить в степень эти элементы одновременно. по­ том У. что при проверке подлинности подписи в алгоритме DSA нам необходимо вычислить R = G^Y^.

^i • 2^^ + Z^.. Кроме того. которые складывают два целых числа с учетом признака переноса. 1024 битов для алгоритмов RSA и DSA^ и 200 битов для алгоритмов. ес­ ли мы хотим сложить два 64-битовых числа х = xi . (G • У) . Арифметика многократной точности Здесь объясняется. Так. Мы не станем объяснять здесь модификацию метода для кривых. ^Хп^ то XQ — наименьшее значащее слово.. используя знаковое пред­ ставление показателя.Y^) . в 32-разрядных машинах 64-битовое число х хранится в виде двух 32-битовых слов: [j^o^^i]? г д е X = XI 11. учитываюш.5. Сложение Большинство современных процессоров имеют специальный при­ знак переноса. как осуществляются арифметические действия в кольце вычетов по 1024-значным модулям. а оставим это пытливым читателям как воз­ можность для приложения своих способностей.11.G^ • У ^ г = г^^Оз = {G^^ ' Y^). как эти действия реализуются на современных процессорах и почему наив­ ные алгоритмы заменяются специализированной техникой.2^^ -f уо? нам нужно вычислить: г = ж + 2/ = 2^2 • 2^^ + . Это приводит к возможности выбора различных программ из библио­ теки «арифметика многократной точности». т. В криптографических приложениях арифметики остатков обыч­ но фиксируется количество знаков чисел. В результате вопросы динамического распределения памяти снимаются и можно сосредо­ точиться на ускорении процесса. обычно называемые чем-то вроде addc. основанных на эллиптических кривых.5. (G • У) = G^^ • F ^ Заметим.1?^ + жо и у — У\. над которыми совершают­ ся действия. х^ — наибольшее. е. предло­ женной Монтгомери.1.5. Целые числа в компьютере представляются в так называемом «малословном» формате. .Gs = {G^. Арифметика многократной точности r^r^. I 1.ему разряду при побитовом сложении. Мы покажем. существуют специ­ альные функции. а.ий добавочное слагаемое к следуюш. например. Например. аналогичную приему Шамира. если большое целое число х хранится в компьютере в виде набора XQ^XI^ . что уловку. в случае эл­ липтических кривых можно разработать.

что значение Z2 не превышает 1 и . Wi .ей после сложения и вычитания. 11. Описанная техника сложения двух 64-битовых целых чисел может быть без труда обобш. естественно. На псевдокоде процесс умножения выглядит следу­ ющим образом.0 Заметим.г может оказаться 65-битовым числом.ено операцией.h . идуш.addc х1.Глава 11. естественно.5. осуш.W2 = {Высший^ Низший) = {H{wi • W2)^L{wi • W2))» При стандартном умножении в столбик мы получаем что-то вроде таких вычислений: X Н{хо -yi) У1_ Уо_ Н{хо • Уо) Цхо ' Уо) Цхо • Ух) H{xi • уо) L{xi • Уо) Я(ж1-у1) L{xi'yi) Затем все четыре строки складываются и получается искомый от­ вет Z = X -у.уО (z3. Реализация операций Значения Zi определяются следующим образом: zO <. необходимо следить за перено­ сами разрядов.ена на сложение чисел лю­ бой фиксированной длины. большинство современных процессоров оснап1.zO)<-mul хО.ествляюш.у1 (h.l) <-mul х1. и.2. Е^ можно использовать и при вычитании.уО zl <-add zl.add хО.z2)<-mul х1. к умноже­ нию.addc 0. а именно.ей это действие. Умножение в столбик Теперь обратимся к следуюш. При этом.уО zl <. что при умножении двух 32-битовых чисел получится 64-битовое.l z2 <-addc z2. Заметим. (zl.ей простейшей арифметической опе­ рации.у1 z2 <.

получим следующее соотношение: М{п) = ЗМ(п/2) + 2А(п/2) + ЗА(п).3. над которыми про­ изводятся действия. что при этом было использовано три умножения и два сложения (п/2)-битовых чисел.Ж1.а . Арифметика многократной точности 297 z3 <-addc z3.l) <-mul xO. нам нужно перемножить два п-битовых числа ж и у.^iyi2^ + {хт + xoyi)2^/2 + хоуо = = {xo + 2^/^xi)'{yo + 2^/^yi)=X'y. Умножение происходит с помощью вы­ числений: A = XQ' УО.уо7У1 < 2"^/^. В = {x^^xi) С = xi -уь • (yo + yi). и три операции сложениявычитания над п-битовыми числами.5.Уо + 2^/2yi. У м н о ж е н и е К а р а ц у б ы Один из методов ускорения умножения носит название умножения Карацубы.l z2 <-addc z2. Используя аппроксимацию А{п) ^ п. а через А{п) — А^ЛЯ ИХ сложения или вычитания. что М{п) ^ ЗМ(п/2) + 4п. Легко заметить. Запишем их в виде х . а сложение и вычитание — 0{п).С)2^/2 + А = . Обозначив через М{п) коли­ чество операций.5. то описанный выше способ перемножения тре­ бует 0(р?) операций над битами. о + 2^/2:г1.0 (h. у .0 Если n обозначает битовый размер целых чисел.yl zl <-add zl. чем за 0{ri^) операций? 11. Предположим. замечаем. Ответ получается в результате преобразований: С2^ + (Б . Возникает естественный вопрос: можно ли умножить числа быстрее. где О ^ жо.11. . необходимых для умножения п-битовых чисел.h z3 <-addc z3.А .

Итак. что X = qy -\.. } q=0. что при п -^ оо М{п) ^ 9 п 1 ^ ^ 9п^'^^. т. return.Хп) и у = (уо. Д е л е н и е После знакомства с умножением перейдем к самой сложной арифме­ тической операции — делению. r=r*2. количество знаков в кото­ рых насчитывает несколько сотен. найдем.. Оно необходимо. Итак. При этих соглашениях алгоритм на псевдокоде выглядит так: г=х. s++. О ^ г < у. у нас есть алгоритм с асимптотической сложностью 0(п^'^^). в частности. Умножение Карацубы выполняется заметно быстрее. то решая полученное рекуррентное соотношение. Но ни этот последний метод. где основание разложения равно Ь = 2^. и обозначим через t « v сдвиг целого числа t влево на v слов. что такое деление называется делением с остатком или евклидовым делением.-. Напомним.4.е. } . } if (r[n+l3!=0) { n=n+l.Глава 11..г^ причем. результат умножения t на Ь^. чем умноже­ ние в столбик. /* Нормализуем делитель */ while (y[t]<b/2) { y=y*2. д^ля определения остатков от деления двух целых чисел — основной за­ дачи арифметики остатков. Представим делимые числа в малословном формате Х== {хо. а значит и RSA.е быстрее. s=0. если умножаются числа.Угг). 11. Реализация операций Если умножение n/2-битовых чисел происходит по той же схеме.. ни умножение Карацубы не исполь­ зуются в криптографических приложениях. Однако можно умножать еш. как обычно. /* Тривиальный случаи */ if (t>n) { q=0.. Сложность наиболее эффективного из известных методов оценивается как O(nlnnlnnlnn). для данных двух целых х иу чисел мы хотим найти такие ^ и г.5. Причины станут ясны после обсуждения деления..

i<s. } else { Ihs = x[i]*b*b+r[i-l]*b. q[i-t-l]=q[i-t-l]-l. } else { д[1-г-1]=целая_часть( (x[i]*b+r[i-l] )/y[t] ). } Как видите. } if (t!=0) { rhsjn = y[t]*b+y[t-l] . если мы будем использовать стандартный метод деления. } else { rhsjn =y[t]*b. } while (rhs>lhs) { q[i-t-l]=q[i-t-l]-l. Арифметика Монтгомери Поскольку деление больших целых чисел — операция сложная. i++) { r=r/2. представлен­ ный в предыдущем параграфе. 11. } /* Разбираемся с остатком •/ for (i=n. } rhs=q[i-t-l] •rhsjn. i — ) { if (r[i]==v[t]) { q[i-t-l]=b-l. if (i!=l) { Ihs = x[i]*b*b+r[i-l]*b+r[i-2]. } r=r-(q[i-t-l]*y)«(i-t-l). r=r-(y«n-t).5. i>=t+l.11. Арифметика многократной точности 299^ /* Получаем частное */ while (r>=(y«(n-t))) { q[n-t]=q[n-t]+l.5. Напомним. это очень сложная операция. все наши криптографические действия будут идти очень медленно. что практически все кри- . Поэтому ее следует избегать по мере возможности. } } /* Перенормировка */ for (i=0. rhs=rhs-rhs-m. if (r<0) { r=r+(y«i-t-l).5.

2 и 3 в представлении Монтгомери: 1 1 • R (mod N) = 1073 741815. Но нам нужно вычислить xyR (modiV). 2 2 . поскольку в стан­ дартном представлении результат нам известен: 1 + 2 = 3. Посколь­ ку i? — степень двойки.Глава 11. Сложение двух целых чисел в этом представлении осуществля­ ется просто. Реализация операций птосистемы с открытым ключом работают с арифметикой остат­ ков. Выберем целое число Д. Нам даны х • R (modN) и у • R (modA^). Значение х • R (mod N) называется представлением Монтгомери числа X (modiV). В пред­ ставлении Монтгомери это действие отражается следуюпщм образом: 1073 741815 + 1073 741803 = 1073 741791 (modiV). Теперь вместо числа х будем хранить в памяти компьютера величину х • R (mod N) в малословном форма­ те. а нам нужно вычислить Z • R mod iV. т. нам придет­ ся еще разделить результат стандартного умножения на R. мы надеемся. удовлетворяю­ щее неравенству R = Ь^ > N. то все окажется не так страшно. показатель которой — длина слов в нашем компьюте­ ре. Ь = Д = 2^^ = 4 294 967 296. но если прибегнуть к специальной ариф­ метике Монтгомери. что этот процесс окажется . Представим нужное вычи­ сление на псевдокоде: zR = xR + yR if (zR>=N) { zR-=N. 7V = 1073 741827. где z = х + у. Поэтому нам хотелось бы уметь вычислять остатки от деления. Теперь мы можем проверить работу сложения. Если просто перемножить два элемента в представлении Монт­ гомери. Следовательно. как происходит умножение в арифметике Монтго­ мери. Эта арифметика работает с альтернативным представлением це­ лых чисел — представлением Монтгомери. не прибегая к дорогостоящей операции деления. то получим: (xR) • (yR) = xyR^ (modiV). } Для прояснения его работы разберем пример. Посмотрим. Запишем числа 1. Обозначим через b сте­ пень двойки. На первый взгляд это кажется невозможным.е. b = 2^^ или 6 = 2^^. 3 3 • R (modiV) = 1073741791. R (mod N) = 1073 741803.

получаем w = X'y = l 152921446624789 173 = 2 • 3 • i?^ Теперь нам нужно перевести значение w в представление Монтго­ мери. Действительно. ^Обратите внимание. результатом произведения х иу в арифметике Монт­ гомери служит число 1073 741755. Арифметика многократной точности 301 не очень сложным. является легкой операцией: мы вычисляем про­ изведение традиционным способом. происходящее во второй строке. z=(y+u*N)/R. Напомним. z = {w + U' N)/R = 1073 741755. ведь R — степень числа Ь. Сделаем это с помощью редукции Монтгомери. q = (l/N) (modi?) = 1789569 707. которое мож­ но найти не делением. что редукция по модулю i?. Вычислим произведение 2 • 3 с помощью арифметики Монтгомери. перев. Затем осуществляем шаги. а редукцию осуществляем про­ стым обрезанием результата^.5. — Прим. Сначала вычисляется целое число q = 1/N (modi?). if (z>=N) { z-=N. В качестве примера опять возьмем 7V = 1073 741827 и ft = i? = 2^^ = 4 294 967 296. u = -w-q (mod i?) = 3 221225 241. Таким образом. Прибегая к стандартному алгоритму умножения. что 123456 (mod 100) = 56. Находим w = 1152 921446 624 789 173. что 2 2 • R (mod N) = 1073 741803. Пусть. мы просто сдвигаем наше представление числа на t слов вправо (потому что R = Ь^). } Заметим. тоже вполне доступно: поскольку y + u-N = О (modi?). нам нужно вычислить Z = y/R (modTV). а с помощью двоичного алгоритма Евклида.11. 3 3 • i? (mod N) = 1073 741791. записанные на псевдокоде на следующей странице. Деление на i?. которая происходит в первой строке алгоритма. u=(-y*q)7oR. в общей ситуации. .

z+=u*N*b. Итак. Можно также чередовать умножение с редукцией.ее: z=y. что ввиду редукции по модулю b в первой строке цикла. i < t . Нам бы хотелось чуть сэкономить и мы можем сделать это.Глава 11. Следовательно.ую операцию деления. Если сомножители насчитывают по 1024 бит. i++) { u=(zi*N07ob. подсчитав. Делаем следуюш. не привлекая дорогостояш.2/b. у задан в малословном формате У= (2/0. Тогда наилучший способ осуш. что арифметика Монтгомери позволяет нам скла­ дывать и умножать остатки от деления на АГ. for (i=0. мы можем выполнить начальное умножение.y2t-2. ограничива­ ясь одним проходом цикла и получая Z = XY/R Так что если X == xR и¥ (modAT).ествления редукции Монтгомери за­ ключается в том. Поэтому умножая два числа в арифметике Монтгоме­ ри. мы сокраш. } z/=R. Описанный метод редукции Монтгомери использует два полных умножения. 6 • R (mod TV) . = yR^ то Z = {xy)R (modiV). мы затратим три умножения. мы увидели. что используется заранее вычисленная величина N' = -l/N (modb). Второй шаг цикла требует сдвига на одно слово (умножение на Ь) и одного умножения слова на большое целое чис­ ло. Предположим. которая определяется сравнительно легко.1073 741 755.y2t-l).аем число больших промежуточных результатов в редукции Монтгомери. .--. Реализация операций Можно убедиться в корректности ответа. i f (z>=N) { z-=N. } Заметим. то результат будет состоять из 2048 знаков. используя алгоритм умножения слов.

Например. Арифметика в конечных полях Кроме полей вычетов по простому модулю р в криптографии ис­ пользуются поля четной характеристики.6. поэтому в этом параграфе мы будем разбираться с полями над F2 большой сте­ пени.1L6. работаем с двоичными многочленами по модулю f{x). Кроме того. for (i=0. что можно использовать поисковые таблицы или специальные микросхе­ мы для реализации основных арифметических действий. но мы не будем здесь этого касаться. Арифметика в конечных полях 303 Эта процедура называется умножением Монтгомери и позволяет вычислять произведения в арифметике Монтгомери.е. i++) { u=((zO+Xi*YO)*NOy. В Rijndael поле настолько мало.b. что для задания конечного поля характеристики 2 мы выбираем неприводимый многочлен f{x) с коэффициентами из F2 степени п и рассматриваем факторкольцо: т. i < t . Такие поля встречаются. поскольку она более эффективна в арифметике остатков. например. На аппаратных средствах операции в полях характеристики 2 могут реализовываться с помощью так называе­ мых оптимальных нормальных базисов. Z=(Z+Xi*Y+u*N)/b. используются в эллиптических кривых. изображаю­ щей двоичный многочлен. строка битов 101010111 . 11. в алгоритме Rijndael и в некоторых системах. такими. } if (Z>=N) { Z-=N. Перемежающаяся версия представлена «программой» Z=0. } Хотя сложность умножения Монтгомери оценивается как 0(р?)^ в отличие от 0{'п}'^^) — сложности умножения Карацубы. которые. например. — предпо­ чтительнее использовать арифметику Монтгомери. Элемен­ ты такого поля обычно представляются строкой бит. не прибегая к большим целыми числам. Напомним. основан­ ных на эллиптических кривых. нас будут интересовать только программные реализации операций.

хотя и более медленная операция. описывается проще. которая говорит. Оказывается.' = ^2(2-^-1). чем умно­ жение. коэффициент при х^). Г' = / 9 ' " . представляющий элемент /3. / * По крайней мере один из а и Ъ теперь имеет свободный член на каждом проходе цикла. /* Сейчас как a так и b имеют свободный член */ . } D=D»1. Поэтому труд­ ность могут представлять только действия умножения и деления. Чтобы вычи­ слить а/^. a=f. после чего ищут произведение аф~^. где а. и применяем следующую версию двоичного алгоритма Евклида. Реализацуя операций представляет многочлен Сложение и вычитание элементов поля ¥2^ осуществляется простым поразрядным сложением битов строки по модулю 2. сначала находят /3~^. Берем многочлен / . */ while (а != 0) do { while (lsb(a)=0) { а=а»1. ^ • ^2"-2 = 1. Таким образом. Следовательно. i f (lsb(D)!=0) { D=D~f. i f (lsb(B)!=0) { B=B~f. Ь. е. yS G F2n. Один из способов обращения эле­ мента состоит в применении теоремы Лагранжа. D=l.Глава 11. т. деление. } B=B»1. что для любого /3 7^ О /32"-1 = 1. } } while (lsb(b)=0) { b=b»l. где Isb (b) — наименьший значащий бит строки b (други­ ми словами. Так что начнем с него. деление сводится к умножению и вычислению обратного элемента. Второй способ вычисления /0~^ связан с двоичным алгоритмом Ев­ клида. определяющий поле. В=0.

если f{x) — трехчлен. Во всех случаях.11. с примерами трехчленов или пятичленов. мы сначала перем­ ножаем представляющие их многочлены и получаем многочлен 7(^)7 степень которого не превышает 2п — 2. } else { b=(a-b). оставив случай пятичлена в качестве упражнения. чтобы перемножить элементы а и /5. всегда можно подобрать трехчлен или пятичлен. Покажем. определяющих поле ¥2п. В отличие от целых чисел по модулю ЛГ. Правую часть этого уравнения можно вычислить с помощью поби­ товых операций: ^ = 70 ©71© (71 <fc)- . размещенной в конце этой главы. приводится список всех значений п.^ + х^^ + х^^ + х^' + 1. как это делать. где deg 71(^)5 deg7o(^) ^ n — 1. мы его вписыва­ ем в таблицу.1. Записываем j{x) =^i{x)x'' + jo{x). Лю­ бой неприводимый многочлен степени п можно использовать для построения конечного поля ¥2-^ • Так что нам нужно лишь взять наи­ более удобный. где мы применяли специальные методы арифмети­ ки Монтгомери. лежащих между 2 и 500. Почти всегда многочлен f{x) выбирают среди трехчленов f{x)=x'' + x^ Л-1 или пятичленов f{x) = а. } } вывести D. 6=6-^0. Обратимся к операции умножения. D=D-B. что для всех полей. сильно облегчаю­ щий операцию умножения. В противном случае представляем соответствующий пятичлен. где можно подобрать трехчлен. В таблице 11. в полях характеристики 2 существует возможность выбора многочлена f{x)^ обладающего «хорошими свойствами». Замечено. Тогда 7(ж) (mod/(a:)) = 7о(ж) + (x^ + 1)71 (^). После этого нам необходимо вычислить остаток от деления 7(^) на многочлен f{x). степень которых не превышает 10 000. Арифметика в конечных полях 305 if (deg(a)>=deg(b)) { a=(a-b). Теперь.6.

gl=g»n. Тогда делаем такие шаги: gl=g»n. т. как в школьном алгорит­ ме. Для завершения рассказа об умножении элементов поля F2n нам осталось объяснить. описанные в следующем абзаце. представив 8 в виде 8{х) =5х{х)х'' + 6Q{X). полученной с помощью формулы: Степень У — max(n — 1. степень которых меньше восьми (они представляются одним байтом).Глава 11. gO=g[n-1. применяются поиско­ вые таблицы. е. что-то вроде таблицы умножения.е. сопоставляющую паре 8-битовых многочленов а и Ь их произведение. g=g0^gr(gl«k). Функцию. найти остаток от деления ^ на / ) . Значит 7(^) (mod/(x)) равен битовой строке. Здесь тоже можно применить наивный алгоритм умножения. который нам нужно при­ вести по модулю / (т. Предположим. Сложность такого умножения описывается функцией 0(71^)^ где п — степень перемножаемых многочленов.. i =0.2fc — 1).b).0]. что у нас есть таблица умножения всех двоичных многочленов степени < 8. обозначим через Mult_Tab(a. while (х!=0) . Реализация операций Степень многочлена 5 не может превышать п — \-\-к. Приведем ал­ горитм умножения общих п-битовых многочленов. gO=g[n-1.. гдedegJo(^) ^ п —1 и deg5i(a. а многочлены большей степени умножаются в столбик. Пусть д — многочлен степени 2п — 2. Поэтому если наш трехчлен f{x) вы­ бран так. как реализовать умножение двоичных много­ членов степени ^ п — 1. Повторим эту процедуру.0]. —1. g=g0^gr(gl«k).) ^ А. что к < п/2. то действия. До­ вольно часто для умножения многочленов. z=0. причем оба многочлена представлены строками битов. завершат деление с остатком. Тогда степень произведений будет мень­ ше 15. обозначив через у » 8 сдвиг строки вправо на 8 бит.

j=j+l.ля вычисления произведения многочленов достаточно малой степени п ^ 100. Следует отметить. где ао.(ao + x'^/'^ai) . нам нужно перем­ ножить два многочлена а = ао + x'^/'^ai и 6 = Ьо + x'^/'^bi. } x=x»8.а2х'^ + а^х^. ai. д. С = ai . Ьо. что возведение в квадрат многочленов над полем характеристики 2 вообще практически ничего не стоит. j=0.aix^ Ч.. здесь применима техника «разделяй и властвуй». Произведение a • b получается по формуле: Cx^' + iB-A- С)х'''^ + Л = aibix"" + (aibo + aobi)a:^/^ + аоЬо = . Арифметика в конечных полях 307 { и=у. Ее слож­ ность будет оцениваться как 0(п^'^^). В = («о + ai) • (fto + bi).6.bi. w=w«(8*(i+j)) . здесь умножение Карацубы эффективнее алгоритма умножения в столбик даже р. основанная на умножении Карацубы.u&255). где а{ равно О или 1. while (u!=0) { w=Mult_Tab(x&255. И как только сведем умножение к вы­ числению произведений многочленов степени 7 и ниже. Поступа­ ем следующим образом: А = ао -Ьо. . ans=ans"w. воспользу­ емся таблицей умножения. } Как и при умножении целых чисел. Умножая ao на bo и т. u=u»8. В отличие от случая целых чисел. Его квадрат получается простым «прорежива­ нием» коэффициентов: а = ао -\. i=i+l. Допустим. Пусть дан многочлен а = ао + aix + а2Х^ + asx^. bi — многочлены степени меньшей чем п/2. (6o + x'^'Hi) = a-b.11. мы вновь применим умножение Карацу­ бы рекуррентным образом.

чем умножение. заменяя ее простым сдви­ гом разрядов.ью представления Монтгомери. Таким образом.Операции в полях характеристики 2 также эффективно реа­ лизованы. справедливой над любым полем характеристики 2: {А + В)'^ = А? -\. Однако вычисление обратно­ го элемента происходит как правило в 3-10 раз медленнее.ена выбором специального трехчлена или пятичлена. который оказыва­ ется эффективнее способа. но и обладаюш. возведение в квадрат над полем характеристики 2 — очень быстрая операция в сравнении с общим умножением. а алгоритмы. эффективность здесь достигается бла­ годаря нестандартному представлению чисел.В^. разобранных в этой главе — второй том книги Кнута.Алгоритм RSA можно оптимизировать. . В этом случае редукция по модулю неприводимого многочлена f{x) может быть упроп1. Часто оконный метод ока­ зывается более эффективным. не вошедшие в наш . Обращение элементов поля на прак­ тике осуществляется с помощью адаптированного варианта двоичного алгоритма Евклида.В процедуре проверки подписи алгоритма DSA суш.Основные действия в арифметике остатков реализуются с помош. Более легкое введение в них мож­ но найти в книге Бэча и Шаллита. В процедуре расшифро­ вания нужно использовать информацию о разложении модуля алгоритма N на простые сомножители и китайскую теорему об остатках. Реализация операций Происходит это благодаря формуле. . а потом перемножаются результаты.Глава 11.ествует ме­ тод одновременного возведения в степень. В качестве открытой экспоненты нужно выбирать число не только малое. а для эллиптических кривых можно применять знаковое потенцирование.ью метода двоичного потенцирования. Это позволяет избежать дорогостоящей операции деления. Правда. Дополнительная литература Стандартная ссылка на описание алгоритмов.ее наименьшим весом Хемминга. . К р а т к о е с о д е р ж а н и е главы . при котором каждая из степеней вычисляется отдельно. .ествить с помош.Возведение в степень в арифметике остатков или в любой дру­ гой конечной абелевой группе можно осуш.

SpringerVerlag. x=(x*x)7. 1996. A Course in Computational Algebraic Number Theory. } d»=l. D.2. Volume 2: Seminumerical Algorithms. 1975. а не Монтгомери? Лабораторные работы 11. while ( d o O ) { i f ((d&l)!=0) { у=(у*х)У. Чему равны максимальное и среднее количество умножений в основном алгоритме двоичного потенцирования? 11. Контрольные вопросы 11.п. MIT Press. Арифметика в конечных полях 309 учебник. Algorithmic Number Theory.1. Bach and S. The Art of Computing Programming.1. Что мешает применять алгоритм знакового потенцирования в системе RSA? 11.n. (Предполагается знакомство с языком С или Java.6.3.11.2.1. Почему наименьший возможный вес Хемминга шифрующей экспоненты алгоритма RSA равен 2? 11.5. что приведен ниже: y=i. Почему умножение Карацубы редко используется в системе RSA? 11.1.6.1. Shallit.1. Cohen. } .4. Volume 1: Efficient Algorithms. Что такое представление Монтгомери и почему его активно используют в алгоритмах типа RSA? 11. H. 1993. Почему в полях характеристики 2 предпочтительнее исполь­ зовать аналог умножения Карацубы. Первая глава произведения Коэна дает много полезных сведений по разработке стандартного кальку­ лятора.1.) Сравни­ те алгоритм двоичного потенцирования с тем. в то время как книга Бэча и Шаллита содержит обширную библиографию и соответствующие комментарии.1. представлены у Коэна. Knuth. Addison-Wesley. Е.

либо над полем вычетов по модулю простого числа.Глава 11. Реализация операций Почему этот алгоритм более эффективен? Можете ли Вы придумать еще более хороший метод? 11.2.1. более эффективен. осуществляющие сложение. a потом находят ттг. Докажите. предполагая. что в этом случае атакующий может раскрыть секретный ключ. Допустим. что умножение /с-битовых элементов кольца вычетов требует к'^ операций. не вмешиваясь в процесс вычисления rriq^ т. Что быстрее: два возведения в степень 512-разрядного числа с 512-разрядным показателем или одно потенцирование 1024-битового числа с показателем в 1024 бита? Заключите из ответа. что для ускорения процесса расшифрования (генерирования подписи) в RSA применяется китайская тео­ рема об остатках. определенной либо над полем характеристики 2. доступных в Интернет. Покажите. 11.3. е.2. Напишите программы. чья степень над полем F2 может быть любой.3. послед­ нее значение найдено верно. умножаюпще точки эллиптической кри­ вой. Ваши алгоритмы должны работать с полями.2. что метод расшифрования или генерирования подписи в RSA^ опирающийся на китай­ скую теорему об остатках. что атаку­ ющий сумел заставить эту программу вычислять гПр непра­ вильно. умно­ жение и деление в полях характеристики 2. что перемежа­ ющаяся версия умножения тоже работает корректно. что две версии редукции Монтгомери. Предположим. 11. вплоть до 500. Примеры полей и кривых можно найти в одном из многочисленных криптографических стандартов.3. е. ^ ^ ^ ^ r f (mod 9-1) ( n i o d ^ ) . предста­ вленные на псевдокоде в тексте главы.2. сначала производят вычисления Шр = С^ (modp-1) ( m o d p ) . исходя из гпр и rriq. Разработайте процедуры.3. т. . 11. Упралснения 11. Покажите.3. действительно при­ водят к ожидаемому результату. Предположим. что элементы полей представляются битовыми строками дли­ ною около 190 знаков.

3. 11.1 \ 37.кг 1 1 3 4.5.5.2.4.4. при котором многочлены разбиваются на три части. Разработайте вариант тако­ го умножения.2 5.к2.4.1 1 10 9 4 7 4. что сложность умножения Карацубы действитель­ но равна 0(п^'^^).4.3.1 7. что шифрование и расшифровывание в алгоритме RSA можно реализовать за 0{п^) операций.2.34.3.1 5.2 п 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 к/к1.1 5.5.2 2 6.3. 11.1 11. Решив рекуррентные соотношения.2.3.2 29 32 33 п 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 к/к1.1 2 7.6. 11.7.3 6.3.1. Неприводимые трехчлены и пятичлены п 2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 I 68 к/к1.3. что шифрование в системе Эль-Гамаль требует 2\пр умножений по модулю р.кз 1 2 7. Арифметика в конечных полях 31 I 11.3.2 7.1 1 3 1 3 7 6.1 11.к2.2. Покажите.2 6. где п — битовая длина модуля N алгоритма.6.3 1 9 3 7 19 5.3. приведенные в тексте.1 5.2 2 5 3 3 5 4.1 5. Покажите.1 6.2.3.3.1 9 4 1 1 3 6.11. что его би­ товая сложность равна 0((1пр)^).кз 1 1 1 3 1 3 2 8.4. Таблица 11.2.3.33 I .4.1 3 5 5 4.к2. Выведите отсюда.3. покажите. Умножение Карацубы многочленов основано на разбиении многочленов на две половины.5.

33.33.34.32 121.32 48.39.32 125.32 [ 33 37 72 73.33.32 35.33.33.32 37.32 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 151 154 157 160 163 166 169 172 175 178 181 184 187 190 42 38.33.33.32 41.33.32 49 53 71.32 134.33.32 79.51.33.33.32 52 61.32 39 42.33.33.34.32 35 35 46.33.32 46.33.32 79.32 43.32 47.33.33.32 63.32 41.32 79.32 40.32 37 34 81 57 87 46.32 57 88 33 56 79 37.37.32 85.32 43.35.32 35 105.32 39.33.33 35.33.32 34.32 57 35 45 36.32 35.32 39 109.33.Глава 11.34.33.35.32 41. Реализация операций Продоллсение таб.33.33.33.32 55.32 35.37.32 37 37 33 49 69.34.32 41.32 54.34.35.32 80.32 71.32 59.33.38. 11.33.32 45.32 72 75 78 81 84 87 90 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141 144 147 150 153 156 159 162 165 168 171 174 177 180 183 186 189 36.32 62 76.34.32 35.32 33 35.33.32 38 37. 1 74'^^ 77 80 83 86 89 92 95 98 101 104 107 110 113 116 119 122 125 128 131 134 137 140 143 146 149 152 155 158 161 164 167 170 173 176 179 182 185 I 188 35 35 38.32 78.32 57 34 63 35.32 1 .32 40.34.32 71 64.32 48.34.32 42.34.32 42.33.33.32 49 46 44.32 35.32 43.33.34.32 38 39.33.33.35.32 45.32 49.32 53.33.33.33.34.32 33 37.1.33.32 71.32 37 63 61.33.32 39.33.33.33.39.33.32 81 41 46.32 57.34.36.33.35.33.33.35.35.39.32 38.32 73.33.33.32 47.33.32 57.32 43.

32 147.33.33.34.33.32 53.32 93 53 71 81.32 73 45 33 33 59.33.33.33.33.35.6.32 64.32 46.32 36 95 87.32 155.33.32 41 102 40.11.32 83.33.32 42.32 81.33.32 35 33 52 71 89.32 242.34.32 70.32 179.33.34.33.32 62. 1 191 194 197 200 203 206 209 212 215 218 221 224 227 230 233 236 1 239 242 245 248 251 254 257 260 263 266 269 272 275 278 281 284 287 290 293 296 299 302 305 [ 308 51 87 38.34.32 113.32 50.32 130.33.33.32 50.33.32 75.32 177.32 39.32 81.35.33.33.32 86.35.33.32 54.32 66.32 111.33.32 85.32 94.32 34.32 168.32 102.32 175.33.33.32 119.33.34.32 41 35 93 47 207.32 107.33.33.33.33.33.33. Арифметика в конечных полях 313 Продол^кение т а б .33.32 73 70 111 82 103 46 91.33.32 42 61 58 67 91.32 68.32 45 105 51 71 63.33.33.32 33 83 45 36.32 203.33.32 53 53 63 38 35 50.1.32 191.33.32 192 195 198 201 204 207 210 213 216 219 222 225 228 231 234 237 240 243 246 249 252 255 258 261 264 267 270 273 276 279 282 285 288 291 294 297 300 303 306 309 147.33.34.32 193 196 199 202 205 208 211 214 217 220 223 226 229 232 235 238 241 244 247 250 253 256 259 262 265 268 271 274 277 280 283 286 289 292 295 298 301 304 307 310 73 1 33 34 55 94.32 32 113 34 103 80.32 115.32 143.32 93 1 .33.33.33.33.33.32 37.33.32 69 36 37 48 61.32 57.33.33.34.33.33.32 65 59 99 43 49.32 87.35. 11.32 165.33.35.32 74 50.33.

32 67 171 139 299.34.33.32 62.32 38.33.34.32 195.32 81 51 159 37.32 56.33.32 323.33.32 57 56.32 42.33.33.32 71.33.34.32 213.32 172.32 53 69 112.33.33.32 295.33.32 53 107 45 104.32 287.32 55 45 75 63 182.33.32 135.33.32 91 111 64 43 107.33.32 267.34.32 79.33.32 43.33.32 49 62 51 49 171 182.32 267.33.33.33.33.1.32 36.32 44.34.33.33.32 86.33.35.32 56.33.33.33. 1 311 314 317 320 323 326 329 332 335 338 341 344 347 350 353 356 359 362 365 368 371 374 377 380 383 386 389 392 395 398 401 404 407 410 413 416 419 422 425 I 428 78.32 50 89 113.32 227.33.32 149 42 105 312 315 318 321 324 327 330 333 336 339 342 345 348 351 354 357 360 363 366 369 372 375 378 381 384 387 390 393 396 399 402 405 408 411 414 417 420 423 426 429 87.33.37.32 74.32 65.32 135.32 43.32 I .33.32 147.32 68 63 303.38.33.32 63 83.32 122.32 62.33.32 191.33.33.34.33.32 283.32 116. 11.33.33.33.33. Реализация операций Продоллсение таб.32 162.33.32 125 37 103 34 99 76.32 79.33.33.33.32 45 41 51 34 99 43.32 141 87 147 102 199 191.32 301.34.34.34.34.34.32 135 161.32 132.32 313 316 319 322 325 328 331 334 337 340 343 346 349 352 355 358 361 364 367 370 373 376 379 382 385 388 391 394 397 400 403 406 409 412 415 418 421 424 427 430 79 [ 63 36 67 46.Глава 11.34.33.33.32 72.33.32 200.32 126.33.32 41 47 90 83 275.32 122.32 199.32 152 65 71 87.

32 137 78 75 432 435 438 441 444 447 450 453 456 459 462 465 468 471 474 477 480 483 486 489 492 495 498 287.34.33.33.32 146.32 149 200 129 104 48.33.33.32 105 134 97.35.32 288.32 406.32 81 83 50.32 40.32 143.32 63.33.32 73 59 33 119 191 150.33.33.32 68.32 76 155 433 436 439 442 445 448 451 454 457 460 463 466 469 472 475 478 481 484 487 490 493 496 499 33 165 49 119.32 236.11.33.32 38 203 194.34.34.33.32 83.33.33.33.33.33. Арифметика в конечных полях Окончание таб.33.32 67.35.32 169.32 134.33.33.32 121 138 105 94 219 266.32 43.1.32 128.32 61.32 79.6.33.33. 11. 1 431 434 437 440 443 446 449 452 455 458 461 464 467 470 473 476 479 482 485 488 491 494 497 500 120 55.32 116.32 156.33.34.32 221.33.33.32 61 61 93 143.32 47.33.33.32 [ .33.35.32 40.32 65 35 81 73 47 87.33.32 267.

• Исследовать различные подходы. Срок . как работают криптографические схемы иденти­ фикационной информации. При этом подпись должен ставить отправитель платежа. могут иметь много­ образные формы проставления и проверки. осуществляющий перечисление. • Объяснить. а про­ верять ее будет компьютер. они используются р^ля - контроля доступа к данным.1. как может работать схема неявных сертификатов. Приложения цифровых подписей имеют дело с различными типа­ ми данных. подписывания «реальных» документов. Общие сведения о цифровых подписях Применение цифровых подписей гораздо шире тех. при межбанковских расчетах подпись ставится на до­ кументе. Например. аутентификации данных. такие как Х509^ PGP и SPKL • Показать. Например. которые обычно ставят ручкой на бумаге. подтверждения личности пользователя. обладают разным сроком службы. 12.ГЛАВА 12 ПОЛУЧЕНИЕ АУТЕНТИЧНОГО ОТКРЫТОГО КЛЮЧА Цели главы • Ввести понятие цифрового сертификата. • Объяснить понятие PKI. содержащем только номера двух счетов и сумму перево­ да.

подпись утратит свою силу после окончания срока. открывающим до­ ступ к устройству.2. в от­ личие от ручной. в течение которого она должна иметь силу. . не меняя подписи. Неявно предполагает­ ся (см.не обязательно ставится на документах: любой цифровой ма­ териал может быть подписан. главу 6 о протоколах с симметричным ключом и 5ЛЛГ-логике). Цифровые сертификаты и PKI 317 службы такой подписи ограничен подведением баланса на соответ­ ствующих счетах. в отличие от руко­ писной. например..тесно связана с документом: нельзя изменить документ. Здесь для удостоверения своей подлинности пользователь подписы­ вает запрос. 12.не ставится человеком: цифровая подпись никогда не гене­ рируется человеком. . . . может простираться до нескольких лет. мы не забо­ тимся о том. когда схема под­ писи очень проста (и поэтому не стойка) или этот человек — математический гений. чем к паролям. Необходимо помнить. рля чего предназначены цифровые подписи. Цифровые сертификаты и PKI Используя криптосистемы с симметричным ключом. меняется от документа к документу. — это связывать хранимый в тайне секретный ключ и какие-то цифровые данные. Другой пример — механизм идентификации типа запрос-ответ. Поэтому требования к криптостойкости подписи на долгосрочных юридических документах должны быть несравненно выше.12. в течение которого клиент имеет право обратить­ ся в банк с требованием исправить какие-либо допущенные при пе­ речислении ошибки. что цифровая подпись. Поэтому р^ля банковских опера­ ций и опознавательных паролей р^ля доступа к устройствам разумно использовать ключи разной степени сложности. В качестве последнего примера рассмотрим подпись на контрак­ те. какой ключ кому принадлежит. за исключением случаев.не переносится на другие документы: цифровая подпись. Все.2. что если Алиса обладает долговременным секретным . При этом срок службы под­ писи может быть ограничен несколькими секундами. Отрезок времени. В частности. выданный устройством. что вызов происходит случайным образом и не является финансовым требованием. Пользователь конечно принимает.

что Алиса на 100% убеждена в этом. Так происходит потому. в которых владелец ключа должен присутствовать лич­ но. называет­ ся цифровым сертификатом. была подлинной.ля отпирания символа. например. Например. содержащаяся там. криптография с открытым ключом и была разра­ ботана р^ля упрощения проблемы управления ключами. считается достаточным р^ля удостоверения личности. что в системах с открытым клю­ чом не прибегают к тайному физическому распределению ключей. В конце концов.Глава 12. что информация. но мы обычно не предполагаем. Кроме того. При этом прибегают к помощи специ­ ального посредника ТТР (от англ. с помощью вооруженных курьеров. интел­ лектуальной карточки. например. что большинство владельцев ключей не является людьми: это компьютеры. он может быть заложен в Ваш ком- . то Боб фактически имеет копию того же самого ключа. общий для многих ситуаций. на­ зывается привязкой. поскольку карточка может сломаться или быть украденной. у нее не будет. необходимого р. С таким методом связа­ но много проблем. а компьютеры не носят с собой карт. где физическое присутствие владельца (если он — человек) невозможно проверить. Таким образом. который сегодня эксплуатируется. Владение таким символом и знание любого PIN-кода (пароля). заключается в передаче физического объекта. Принцип работы ЦС заключается в следующем: . но полной уверенности в том. Получение аутентичного открытого ключа ключом каЬ^ который (по ее мнению) она разделяет с Бобом. Алиса могла получить открытый ключ Боба из его веб-страницы в сети Интер­ нет. Алиса может обладать открытым ключом. необходимо иметь несколько форм привязки. именуемого центром сертификатов (ЦС). Основной инструмент привязки. многие протоколы с открытым ключом выполняются через сети. именно поэтому их защищают PIN-кодами (а в более важных случаях биометрическими данными). В криптографии с открытым ключом проблема в другом. машина или процесс. будь это человек. trusted third party). ко­ торые можно было бы использовать в разных ситуациях. Процесс сопоставления открытого ключа физическому лицу или уполномоченному агенту.Каждый из пользователей обладает надежной копией откры­ того ключа ЦС. Один из способов привязки. который отвечает за аутентичность (подлинность) открытого ключа. который по ее мнению связан с Бобом. Такая уверенность достигается распределением долговременных ключей физическими методами. Но основная пробле­ ма в том.

Ь5£34а. ^ Здесь заглавными буквами обозначены ключи.е6(1ключ р^ля обновления программ фирмы Майкрософт. то любой открытый ключ от каждого из партнеров нам необходимо получать каким-то достоверным образом. Если ЦС нет. если искренне верит.12. что данный открытый ключ действительно принадлежит Алисе. то у Вас не будет причин сомневаться в его подлинности. в котором нет ЦС. Цифровые сертификаты и PKI пьютер при покупке. Поэтому их часто называют сертификатами личности.. Чтобы более четко осознать преимущества сертификатов и ЦС. подлинность которых подтвер­ ждена ЦС. то достаточно удостовериться в подлинности только его открытого ключа. а Вы. 7f341a..bfF открытый ключ Жана Доуи.ЦС ставит цифровую подпись на строке данных (Алиса. С некоторыми из них мы познакомимся позже.Если теперь Алиса вышлет Вам свой открытый ключ. Такие сертификаты связывают имя «Алиса» с открытым ключом. . Например. . Сертификаты открытых ключей обычно (хотя и не всегда) хра­ нятся в долговременной памяти компьютера и выдаются по мере надобности. большинство браузеров хранит список сер­ тификатов.a21 открытый ключ Джима Беана. При этом мож­ но не заботиться о защите информации. Существуют и другие привязки. они могут быть вложены в электрон­ ные письма или взяты из Интepнeтa^: ^Строчными буквами записаны ключи. Если же существует какой-то ЦС (назовем его условно Тед). «естественно». с которыми они когда-либо встречались.. доверяете продавцу и изготовителю программного обеспечения. поскольку Вы уверены в кор­ ректности работы ЦС. После этого можно получать сколько угодно разных откры­ тых ключей.. поскольку сертификаты невозможно изменить ввиду наличия на них цифровой подписи.2.. Например... подлинность которых необходимо про­ верять. Например^. подписанных центром сертификатов.. открытый ключ Алисы) Эта строка данных вместе с цифровой подписью и называет­ ся цифровым сертификатом. содер­ жащийся в цифровом сертификате. 6a5def.. . рассмотрим пример сообщества. Центр Сертификатов подпишет строку данных только в том случае. не заботясь о спо­ собе их получения.

специфическую в ка­ ждом приложении. название ЦС. 7F341A.... информацию.. Но надо иметь в виду.. серийный номер сертификата. произведенные коммерческими ЦС. сертификаты содер­ жат следующие реквизиты: - имя пользователя.. 6А5ВЕР. доступных всем желающим.. Получение аутентичного открытого ключа a45efb. ЦС также находят применение в частных фирмах.c45 абсолютно надежный ключ Теда.. то можете доверять и всем ключам.Е6ВТед утверждает. полученным с его помощью.. Такие удостоверения приня­ то называть частными сертификатами открытых ключей. В общей ситуации цифровой сертификат не ограничивается ци­ фровой подписью на отдельной паре (Алиса. Удостоверения. открытый ключ пользователя. Как правило... открытый ключ Алисы). Если Вы доверяете ключу Теда и уверены в его корректной работе. Поэтому их часто называют открытыми сертифика­ тами ключей и используют в незащищенных сетях. что это «открытый ключ Джима Беана».BFF Тед утверждает. В этих ситуаци­ ях пользователи могут предпочесть сохранить конфиденциальность своих сертификатов открытых ключей. К сертификатам можно добавлять и другую.320 Глава 12. Коммерческие центры сертификатов зачастую подписывают удо­ стоверения Вашего открытого ключа после соответствующей опла­ ты и проверки сообщенной Вами информации о Вашей личности. как правило обнародуются. связанного с открытым ключом из сертификата. что вид сертификата — открытый он или частный — никак не влияет на безопасность секретного ключа. В5Р34А. например в системе дебет/кредит или больших корпорациях. тип ключа: шифрующий или подписывающий. что это «открытый ключ Жана Доуи». срок действия сертификата.. что это «ключ р^ля обновления программ фирмы Майкрософт». Решение о неразглашении сер- .А21Тед утверждает.

^^Р иерархии сергим путем. Необходимость в перекрестной сертификации возникает. что Алиса верит в подлип/ \ ность открытого ключа некоторого центра сер^ тификатов ЦС (назовем его р. ЦС2. Вторая функция осу­ ществляется собственно ЦС. поскольку при этом ЦС работает в более безопасной среде.1. содержащегося в выданном сертификате. Если открытый ключ ЦС2 будет со. а не безопасности. При существовании достаточного количества ЦС можно получать довольно длинные цепочки. пользователь может не иметь достоверной копии открытого ключа определенного ЦС.'^^Ф^^^^'^^^ держаться в сертификате. что усиливает защищенность его долгосрочного секретного ключа. когда функционирует более одного ЦС. подписан­ ный этим ЦС. Обычно функции центра сертификатов состоят из двух частей: первая из них связана с удостоверением личности пользователя. нужной. существует несколько ЦС. как показано на цс1 ЦС2 рис. то Алиса сможет доверять всем свидетель­ ствам. когда открытый ключ одного центра сертификатов подписывается другим ЦС.12. Пользователь сначала проверяет откры­ тый ключ соответствующего ЦС. 12. Такое разделение полномочий — удачная идея. открытому ключу Боба. в частности. Прифровым сертификатом Боба. подписанном корневым центром сертификатов.1. а вторая — с подписыванием открытых ключей. к. Беглое исследование Ва­ шего веб-браузера позволит обнаружить большое число центров сер­ тификатов. известный как перекрестная (взаимная) сертификация. Корневой ЦС с помощью которых проверяется подлинность то/ \ го или иного открытого ключа.ля определенности / корневым). когда открытый ключ пользователя компрометируется или стано- . Цифровые сертификаты и PKI тификата обычно бывает продиктовано соображениями бизнеса. которым он доверяет. в то время как первая передается цен­ тру регистрации (ЦР). Эта проблема решается перекрестной сер­ тификацией. чтобы проверить подлинность открытого ключа. Открытый ключ ЦС2 Алиса может получить либо вместе с ци. а затем ключ клиента. т. Как правило.Рис. Предположим.2. 12. Основная проблема системы центров сертификатов возникает. подписанным ЦС2 и. либо каким-то дру. Поэтому обычной практикой явля­ ется подписывание одним центром сертификатов открытого ключа другого ЦС и наоборот — процесс. а открытый ключ Боба она получи/ ла с подписью другого центра.

Такая система хорошо работает в больших корпорациях. Другими слова­ ми. Например. Цифровые сертификаты как раз и предназначены Jщя обеспечения таких надежных каналов распределения открытых ключей. что сертификаты с истекшим сроком действия в этот список включать не обязательно. Подводя итог. Эти проблемы могли решаться передачей ключей по закрытым каналам. возникает вопрос: какой ключ кому принадлежит? Здесь ключи должны передаваться по достоверным (или аутентичным) каналам. Поскольку скомпрометированному открытому ключу больше нельзя доверять. Поэтому СОС обновляется через регулярные промежутки времени. Очевидно. Это сообщение. Таким образом. которым доверяет каждый из пользователей. что основными проблемами в криптогра­ фии с секретным ключом были распределение ключей и управление ими. но чей период действия еще не истек. подписанное ЦС. Получение аутентичного открытого ключа вится недостоверным по каким-то другим причинам. Этот процесс на­ зывается отзывом сертификатов. что он достаточно свежий. содержащие данный открытый ключ. ЦС должен как-то инфор­ мировать пользователей о том. как СОС можно дове­ сти до сведения каждого из пользователей. даже если никаких реальных изменений в списке не про­ изошло. которые были отозваны этим центром. . все подписанные с его помощью сертификаты становят­ ся недействительными и должны быть аннулированы. заменяется на доверие ЦС и его корректной работе. которым Вы обладаете. Система. более не действительны. скажем. . Она по существу позволяет «перераспределять доверие»: необходи­ мость веры в подлинность каждого открытого ключа. обычно называется инфраструктурой открытых ключей.Глава 12. а каждому из них необходимо сообщить об истечении срока действия сертификата. состоящая из центров сертификатов и самих серти­ фикатов. пользователь должен быть уверен.служащий с таким ключом увольняется из компании. В криптографии с открытым ключом названные проблемы замещаются проблемой аутентификации ключей. Один из возможных путей распространения информации о не­ действительных сертификатах — список отозванных сертифика­ тов (СОС). содержащее серийные номера всех сертификатов. Но они могут быть распределены между большим числом слабо доступных пользо­ вателей. .третья сторона получила информацию о частном ключе поль­ зователя. особенно если существу­ ет большое число ЦС. В других ситуациях абсолютно непонятно. Читая список. что все сертификаты.

поддерживаемую ЦС. PGP Программа шифрования электронной почты PGP (сокр. . Чтобы два поль­ зователя могли договориться об общем секретном ключе. . если при подписании Вашего ключа была допущена ошибка.3. Пример прилоэюения инфраструктуры открытых ключей Будучи уверенным в корректной работе ЦС. Закончим этот параграф таким замечанием: на данный момент проблема распределения ключей полностью решена. например. Пример приложения инфраструктуры открытых ключей в этом параграфе мы познакомимся с некоторыми действующими системами «перераспределения доверия». с помощью протокола Диффи-Хеллмана с подписями: Алиса Боб (G^5г^nAлиca(G^)) ^ {0\8гдпвоб[С^)) где Згдпвоб — процедура подписывания.SSL.3. от Pretty Good Privacy) использует подход снизу-вверх к «перераспределению доверия».SPKL 12. в которой ЦС не имеет деловой заинтересованно­ сти.PGP. опирающимися на цифро­ вые сертификаты . они снача­ ла получают достоверный открытый ключ от ЦС. глобальная инфраструктура от­ крытых ключей здесь не годилась. PKIX). что обычно называют «сетью доверия». Поэтому громоздкая.Х509 (или . Вы могли бы публично требовать возмещения ущерба. идущая сверху вниз. Вы можете пола­ гаться на легальную систему.3. Каждый из них берет на себя . Вместо этого система использует то. принадлежащая Бобу. Управление открытыми ключами осуществляется самими поль­ зователями по принципу снизу-вверх. PGP была разработана с целью обеспечить всех пользо­ вателей недорогой системой шифрования и подписывания.1. 12. или на коммер­ ческую структуру. Затем секретный сеансовый ключ вырабатывается.12. Например.

а именно. Это означает. Поскольку пользователи постоянно делают такие перекрестные свидетельства. Для передачи больших объемов закрытой информации применяется блоч­ ный шифр IDEA.е остается нерешенной проблемой програм­ мы РОР^ как впрочем и других подобных систем. но говорит о его необязательности. По существу SSL усиливает надежность ТСР^.ить всем друзьям. Получение аутентичного открытого ключа функции ЦС и подписывает открытые ключи других пользователей. обеспечивающий надежные ориентированные на соединения полно дуплексные потоки) — Прим. то сеть достоверных открытых ключей растет снизу вверх (отсюда и название).енных сокетов или SSL (Secure Socket Layer) был разрабо­ тан в коммерческих целях. д. на­ пример. что подписанный ею ключ действительно принадлежит Бо­ бу. TELNET и т. Если Чарли доверяет мне­ нию Алисы о достоверности ключей отдельных людей. Так Алиса может подписать открытый ключ Боба. объединя­ ются в так называемое кольцо ключей. . то он будет уверен.2. что следует выбросить это ключ из их колец ключей.ений используется MD5 или SHA-1. Он обеспечивает безопасность данных и позво­ ляет нормально работать различным протоколам. для обеспечения безопасности Интернет-магазинов и продаж по сети. например. Такой способ не исключает централизованного хране­ ния открытых ключей.ля Боба. FTP. П р о т о к о л з а щ и щ е н н ы х с о к е т о в В то время как проект POP был движим альтруистической иде­ ей обеспечить зап]. применяемый в PGP^ заключается в том. а затем Боб мо­ жет передать этот подписанный «сертификат» Чарли. HTTP. При при­ еме сообш. что пользо­ ватели самостоятельно контролируют свой локальный запас откры­ тых ключей.иту информации р^ля широких масс. ^Сокр. а ключа — 128.ип]. Цифровые подписи в PGP можно ставить с помош. протокол заш.3. как сеансовый ключ. Отзыв ключей все еш. В этом слу­ чае Алиса выступает как ЦС р. таким как. которым доверяет отдельный пользователь. Оповещенные Вами должны передать информацию дальше и т. Размер блока в этом шифре — 64 бита. таких. Метод «решения» этой проблемы. 12. от Transmission Control Protocol протокол управления передачей (основ­ ной протокол транспортного и сеансового уровней в наборе протоколов Internet. что при компрометации Вашего ключа необходимо сообп]. перев.Глава 12. Шифр эксплуатируется в режиме CFB. Сама PGP как программа использует шифрование RSA для дан­ ных небольшого объема. Ключи.ью алгоритма RSA или DSA. д.

при оформлении сделок через Интернет или при использовании удаленного доступа . особенно когда данные входят в какие-нибудь крупные пакеты. используе­ мый в этом обмене информацией.Клиент устанавливает связь с сервером через специальный порт. например.Клиент выбирает случайный секретный ключ. необходи­ мых для установления связи. а именно. обеспечивающий передачу информации. Этот сертификат (для сделок по Интерне­ ту) подписывается глобальным ЦС. Далее приведем упрощенную версию операций SSL. . Сеансовый ключ.К этому моменту клиент и сервер обладают общим сеансовым ключом. снабжая клиента сертификатом Х509 своего открытого ключа. веб­ сайт или основной компьютер в сеансе Telnet^ всегда аутентифицирован для удобства клиента. что является сигналом о защищенном сеансе. чей открытый ключ находится на веб-браузере клиента.Клиент проверяет сертификат и решает. таких как протокол Диффи-Хеллмана или основ­ ной протокол RSA передачи ключей. по которому передаются подробности кредитных карточек или паролей. .Сервер высылает клиенту сертифицированный открытый ключ. отвечая на его запрос с помощью общего с ним сеансового ключа. . . Для безопасности сеанса Telnet (который часто называют SSH по имени программы. .Сервер подтверждает клиенту свою подлинность. Сервер аутентифицирутся.Клиент шифрует выбранный секретный ключ с помощью от­ крытого ключа сервера и пересылает результат серверу. так и р^ля клиента. . верить ли этому от­ крытому ключу. Иногда может быть аутентифицирован и клиент. но это редко делается при основных коммерческих сдел­ ках по сети Интернет. выбирается с помощью стандарт­ ных протоколов. Определение сеансового ключа может быть дорогостоящей опе­ рацией как для сервера. Выбор шифра происходит на начальной стадии установления связи. кроме начальных. Сервер. Как и в PGP^ шифрование большого потока данных в SSL осу­ ществляется с помощью блочного или поточного шифра (обычно DES^ или алгоритма семейства RC). его осуществляющей) сертификат сервера обычно подписывает сам основной компьютер. зашифрован. Пример прилооюенил инфраструктуры открытых ключей Первоначальная его цель состояла в обеспечении безопасности канала.12.3. Весь обмен сообщениями. .

в ко­ тором каждый ЦС выдает сертификат ^\ля стоявшего ниже (в этом дереве). Различные ЦС объединены друг с другом в виде дерева. Поэтому. определяющий структуру сертифи­ катов открытых ключей. Вы посылаете письмо с Вашим сертификатом на свой email: N.ее повторное использование сеансовых ключей.3.Smart@some. При первом знакомстве они могут показаться доволь^ASN.com. а сервер волен либо согласиться на это. Обычно он выбирается из RC4^ RS5^ DES или утроенного DES. а Ваша почтовая программа реально посылает эту информацию по такому: Nigel. Например.l — сокр.where.ем алгорит­ ме. почтовая программа получателя может счесть подпись не действи­ тельной.where. При установлении связи в SSL достига­ ется соглашение между клиентом и сервером о шифруюш. от Abstract Syntax Notation One — абстрактная синтаксическая нотация версии 1.его сеанса. а во-вторых. — Прим. Кроме того.l'^. . Получение аутентичного открытого ключа к компьютеру. При использовании последнего могут происходить различные ка­ зусы.P. Клиент мо­ жет предложить использовать ключ предыдуп1. что большинство пользователей имеют различные версии одного и того же email'a. Это язык. 12. Сертификаты Х509 При обсуждении SSL мы упоминали об использовании сервером сер­ тификата Х509.Глава 12.3.Smart@some. это усовершенствование ограничено двумя правилами. либо потребовать создания нового. Это стандарт. ЦС присваивает уникальное имя каждому пользователю и выдает подписанный сер­ тификат.ий момент Х509 — наиболее широко эксплуатируемый стандарт сертификатов.com. Сертификаты Х509 определены в стандартах на языке ASN. Дело в том. Во избежание проблем. В настояш. перев. Поэтому создано некоторое усовершенствование. даже если с Вашей точки зрения оба адреса эквивалентны. который будет использован при передаче основного потока данных. Во-первых. позволяюш. Именем часто служит URL или электронный адрес (email). возможны и перекрестные свидетельства меж­ ду ветвями дерева. любая фатальная ошибка в любой ча­ сти протокола приводит к немедленной дискредитации сеансового ключа и к созданию нового. сеансовый ключ имеет строго ограниченное время жизни. используемый в рамках протоколов взаимодействия открытых систем для описания абстрактных синтаксических структур.

название ЦС. Например. обеспечивающую авторизацию и другие возможности. когда отдельные менеджеры уходят в отпуск. имени субъекта. Структура базисного сертификата Х509 очень проста. . так и имя. SPKI Чтобы устранить некоторые недостатки. что включает в себя название ис­ пользуемого алгоритма. а обработка всех возможных опций часто заканчива­ ется невероятным сообщением: «раздувание кодов» ('code bloat').Открытый ключ субъекта. Такие возмож­ ности могут оказаться более подходящими для сделок по Интерне­ ту. Эта система призвана решать вопросы авторизации так же хорошо.Срок действия сертификата в форме «не раньше . SPKI не предполагает наличие глобальной иерархической струк­ туры центров сертификатов. что имеет место в случае стандарта .4.3. использу­ емое в домене. от Simple Public Key Infrastructure — простая инфраструктура открытых клю­ чей). они могут делегировать свои полномочия относительно определенных действий своим подчиненным. как и проблемы идентификации. что дает ин­ формацию об алгоритме и его параметрах домена.3. . т. если со­ ответствующий ЦС имеет возможность использовать разные алгоритмы и параметры домена. все необходимые параметры домена и фактическое значение открытого ключа. т. Тем не менее. Пример прилоэюенил инфраструктуры открытых ключей но сложными. SPKI (сокр. . Происходит так по­ тому. Кроме того. присущие стандарту Х509^ был предложен другой тип сертификатов.Имя субъекта.Подпись ЦС на открытом ключе субъекта и всех сопутствую­ щих данных. .Имя изготовителя сертификата. е.е.Номер версии стандарта Х509^ которому соответствует дан­ ный сертификат. в ней преду­ смотрена возможность делегирования полномочий. следующие записи всегда присутствуют в сертификате: . .Серийный номер сертификата. например.Идентификатор подписывающего алгоритма ЦС. 12. Именем может служить как email-адрес. что в современных приложениях Х509 возникает необходи­ мость вставлять внутрь сертификатов дополнительную информа­ цию. .не позже». . но силь­ но услождяется в любом разумном приложении.12. того. чей открытый ключ подписывается.

Ваш веб-браузер. Имя. именно ключ используется для подписания документов и т. п. поскольку продавцы инфраструктуры открытых ключей интенсивно инвестируют стандарт Х509 и. о котором сейчас пойдет речь. Для аутентифицирующего сертификата и привязки ключа к имени. тоже должно было бы претерпеть суп1. перев. J\R^ написания сертификатов вместо языка ASN. от list processing language — язык обработки списков Лисп (язык программирования). . ^LISP — сокр.ественные изменения при переходе к новому стандарту). На практике каждый сертификат состоит фактически из следую­ щих пяти полей: . .3. в отличие от сертификатов Х509^ которые могут разобрать только компьютеры.4-1.Глава 12. а другой — для их авторизации. но не имя. например.период действия. Они представлены как кортеж из 4 или 5 объ­ ектов. Перенос акцента на ключи означает. что в этой системе боль­ шое внимание уделяется функциональности. Кортеэю SPKI из четырех объектов. .имя субъекта. Период действия). программное обеспече­ ние персональных компьютеров. Однако в настоящее время SPKI не находит широкого при­ менения. Это рабочее абстрактное название. Никакие имена в него не входят. отражающее четыре составные части серти­ фиката: (Создатель. очень про­ стые в использовании и описании. похожий на PGP. Это LISP-подобные структуры^. не спешат пе­ реключаться на новую систему (кроме того. . S-выражения легки для понимания.1 SPKI упо­ требляет S-выражения.открытый ключ создателя. 12. Предусмотрен также удобный ин­ терфейс для облегченного восприятия S-выражений. поскольку авторы SPKI полагают. Кроме того. Разработаны два типа 5PiiГ/-cepтификaтoв: один для аутентификации ключей. Объект.открытый ключ субъекта. Получение аутентичного открытого ключа Х509. Здесь используется более детализированный подход. что только ключ имеет значение. — Прим. Кроме все­ го прочего. Каждый 5'Р71Г/-сертификат содержит открытые ключи (или их хэш-значения) создающего сертификат центра и объекта сертифи­ цирования. как это де­ лает Х509^ SPKI использует 4-объектную структуру. вероятно.

Период действия). Авторизация. Vi — срок действия. т. . Пе­ риод действия).3. .2^2. обозначающее 5 составных разделов сертификата: (Создатель. Делеги­ рование. может делегировать субъект. Si — объект. это условное на­ звание. Объект. После проверки комбинации сертификатов процедура 5-объектного SPKI считается выполненной. Такая система применяется ^ля авторизации ключей. знак «Да» или «Нет».1^2) = (/ь ^2. но не сообщает. Делегирование. сцепленные вместе. что два сертификата. а лишь представляет сцепку первых двух. где li — создатель.ий. следовательно. vl2.12.авторизация: что. что комбинация двух кортежей эквивалентна делегированию полномочий. стать ЦС. Кортеэю SPKI из пяти объектов. В качестве примера покажем. поскольку сертификат авторизации лишь по­ зволяет совершать какие-либо действия с ключом. Любой способен сделать такой сертификат и. Авторизация. В этом воз­ никает потребность. может ли субъект делегировать полномочия или нет. Ai — авто­ ризация.период действия авторизации. ^'г. Ai П Л2.открытый ключ субъекта. .подпись создателя сертификата на тройке (Имя. ^ 1 . Можно комбинировать сертификат авторизации с сертификатом аутентифицирования для получения контрольного следа. Комбинирование сертификатов осуществляется по следующему правилу редукции: (/ь 5 ь А . первый сер­ тификат состоит из реквизитов. Последний кортеж пяти объектов фак­ тически не является сертификатом. означаюш. Равенство верно. только если Si^D2 и Di= Да. . Опять-таки. . Предположим. D2 — делегирование. Это означает.подпись создателя сертификата на четверке (Объект.4-2. Пример прилооюения инфраструктуры открытых ключей . . Fi П F2). Объект. Ц^ля привязки ключа к имени надо использо­ вать сертификат аутентифицирования. В реальной жизни сертификат насчитывает шесть полей: .открытый ключ создателя. собственно.е. кто ключом владеет. Fi) + (/2. 12. можно ин­ терпретировать как третий. вьшисанных на следующей странице. Период действия).52.3.делегирование.

Сцепим эти два сертификата. даже в том случае. что подпись была сделана еще до аннулирования ключа и все . Теперь рассмотрим другой 5-объектный кортеж: -12 = Боб. Так как Алиса разрешила Бобу делегировать полномочия. .S2 = Чарли. то по­ лучилось.аниях.4. причем это должно произойти до завтрашнего утра. Ai = снять £100 со счета Алисы.V2 = до завтрашнего утра. созданные с помош. что она фактически поручает Чарли снять деньги с ее счета до завтрашнего утра. Vs = до завтрашнего утра. Di= Да. Этим сертификатом Алиса разрешает Бобу снять со своего счета £100 и позволяет перепоручить это действие любому по его выбору. . если подписи были созданы достаточно давно. Другие приложения третьей доверенной стороны в некоторых приложениях возникает необходимость в большом сро­ ке действия подписей. Vi = неограничено. По суш.ью этого ключа. . Этим Боб поручает Чарли снять сумму между £50 и £200 со счета Алисы.D2 = Нет. за­ кладных и т. страховых полисах. Получение аутентичного открытого ключа - Ii = Алиса. Si= Боб. В этом состоит главная проблема подписей.еству нам нужны способы доказательств того факта. и получим новый 5-объектный набор: - Is = Алиса. Ds = Нет. Аннулирование открытого ключа лишает за­ конной силы все цифровые подписи. As = снять сумму от £50 до £200 со счета Алисы. 12. . д. которые стоят на долгосрочных документах: завеш. руководствуясь правилом редук­ ции.Глава 12. Ss = Чарли.А2 = снять сумму от £50 до £200 со счета Алисы.

то у компании возникает необходимость получить до­ ступ к зашифрованным данным без участия хранителя. каждую из которых можно про­ верить и убедиться в ее корректности. Выход из положения — условное депонирование ключей^ осуще­ ствляющееся посредством схемы разделения секрета. . Альтернативой временной маркировке служит использо­ вание безопасного архива подписанных документов. передача ключа какому-то постороннему лицу (в том числе и государственным органам) — крайне опасное меро­ приятие. Части раздаются доверен­ ным лицам. сделать это. что такое решение было главным предметом споров в кри­ птографии и правительственных кругах в прошлом.ению вставку даты и времени. используя свои части. Такая задача подводит нас к понятию временной маркировки. Другое приложение доверенной третьей стороны связано с про­ блемой хранения действительно секретных ключей. слу­ жащий для временной маркировки. Одно из решений описанных проблем состоит в том.12. никогда не может быть анну­ лирован. поскольку Вы действительно должны им доверять. Однако при этом возникает условие: открытый ключ. Временная маркировка означает. то Вы поте­ ряете все зашифрованные данные. предназначен­ ных для шифрования. то органы право­ порядка должны иметь возможность изучить всю его заши­ фрованную информацию. Привлечение третьих лиц для процедуры условного депонирования ключей — пример использо­ вания третьей доверенный стороны. Здесь секрет­ ный ключ разбивается на части. С другой стороны. . что доверенное лицо добавля­ ет к подписанному сообш.Если хранитель ключа увольняется из компании или его устра­ няют.4' Другие прилодюенил третьей доверенной стороны еш. чтобы отдать кому-то на хранение копию Вашего секретного ключа на случай его потери или другого неблагоприятного стечения обстоятельств.Если секретный ключ будет потерян или забыт.е имеет силу. . требование доверия настолько высоко. и подписы­ вает всю совокупность с помощью своего собственного секретного ключа.Если пользователь совершил преступление. Это свидетельствует о времени проставления основной под­ писи (подобно нотариальной службе при стандартном страховании жизни). некоторые из доверенных лиц могут собраться вместе и. Фактически. Распределение . Как только возникает необходимость в восстановлении ключа.

связанные с открытым ключом. Следовательно. размер Y будет равен 1024 или 160 битов. Описание системы ЦС выбирает открытую группу А известного порядка N и элемент Р е А. состоит в том. а У — неявный сертификат для X.5. В систе­ ме. Та­ ким образом. . и доказывать производство сертификата определенным ЦС. что в RSA используется 1024-битовый модуль. где X — данные. если ЦС для подписи ключа в 1024-битовом DSA прибегает к 1024-битовому ал­ горитму RSA^ то общий размер сертификата должен состоять по крайней мере из 2048 знаков. а в ECDSA 160-битовая кривая. Они выглядят как Х|У. который необходимо сертифицировать. в DSA применяется 1024-битовое простое число р.ей таб­ лице. так и подпись центра сертификатов на этом ключе.1. что они могут быть довольно большими. Возникает интересный вопрос: можно ли уменьшить размер сертификатов? Неявные сертификаты позволяют этого добиться. 12. Неявные сертификаты Одна из проблем. соответственно. нам необходимо уметь восстанавливать открытый ключ.5Л. можно сделать. как показано на следуюш. привлеченными к услов­ ному депонированию. используя прием разделения секрета. Каждый сертификат должен содержать по крайней мере как открытый ключ пользователя. Размеры ключей и подписей в сертификатах Ключ пользователя Подпись ЦС RSA 1024 1024 DSA 1024 320 EC-DSA 160 320 Данные таблицы означают. После этого он берет долговременный секретный ключ с и вычисляет открытый ключ Q = Р^. который был описан в главе 6. 12. Это может приводить к большим размерам сертификатов. Открытый ключ должен быть известен всем пользователям. основанной на DSA или EC-DSA^ которую мы сейчас предста­ вим. например. связанных с сертификатами. размер сертификата уменьшается до размера ключа. ассоциированный с данными X. Опираясь на У. Получение аутентичного открытого ключа частей ключа между доверенными лицами.Глава 12. Таблица 12.

например. ее именем. Открытый ключ Алисы: ра __ pt-\~S __ ptpS _. скажем Боб. pS 12.Алиса сможет восстановить законную ключевую пару. Д е й с т в и я А л и с ы Алиса обладает следующей информацией: t. 12.5.2. связанный с информацией /JD. . которая может быть. S.любой другой пользователь сможет извлечь открытый ключ Алисы из этого сертификата.5.3.5. D . а у цент­ ра сертификатов — к. Теперь нужно убедиться. выбирает дру­ гое случайное число к и вычисляет Г1 __ р^ Т) -^ рк pt __ pk-bt Затем он находит S = C'h{ID\\G) + k (modiV) и отсылает Алисе пару (G. Д е й с т в и я п о л ь з о в а т е л я Поскольку информация о S и R открыта. что он получил ID именно от Алисы. соответ­ ствующий открытый ключ R — P^i^ посылает R вместе с ID центру сертификатов.5. у Алисы есть еще случайно выбранное число t. Но это дей­ ствие ничего не скажет о связи между ЦС. Кроме того. Алиса хочет получить сертификат и открытый ключ. но не ЦС. R^PK Отсюда она может узнать свой секретный ключ a^t^S (modiV). S). Вместо этого Боб восстанавливает открытый .G). Неявные сертификаты 333 12. вычисляя R • Р^. открытым ключом Алисы и информацией ID. что .12. может узнать открытый ключ Алисы. что секретный ключ Алисы известен только ей. З а п р о с с е р т и ф и к а т а Предположим. Неявным сертификатом служит пара {ID. пользователь.5. Заметим. О б р а б о т к а з а п р о с а ЦС проверяет.4. 12. Алиса вычисляет эфемерный секретный ключ t.5.

Что делать. . поскольку в противном случае подпись Алисы не выдержала бы проверки. так и поль­ зователь работали на одном уровне секретности. Как правило. Однако для устройств с ограниченной пропускной способностью не­ явные сертификаты могут быть подходящей альтернативой тради­ ционных сертификатов. Мы опишем лишь оригинальную схему подписи Шамира. посредством ко­ торой ключ пользователя получается из его идентификатора. Но здесь это невозможно сделать. если ключ ЦС будет скомпрометирован? Обычно Вы выбираете новый ключ ЦС и создаете новые сертифика­ ты ключей пользователей. Первая схема такого типа подписи разработана Шамиром в 1984 г. на­ пример. 12.Глава 12. что авторами схемы подписи с идентификационной информацией являются Бонех и Франклин. считалось. хотя вплоть до 2001 г. не прибегающий к сертификатам. Получение аутентичного открытого ключа ключ из неявного сертификата (/D. поскольку открытые ключи пользователей выбираются в диа­ логовом режиме в процессе создания сертификата.6. Именно поэтому она не находит широкого применения в жизни. состоит в использовании системы. имени. С такой системой связано много проблем. Это обычно считается не лучшим требованием. если последние не доступны. Система называется схемой шифрования с иденти­ фикационной информацией или схемой подписи с идентификацион­ ной информацией. .Неявные сертификаты требуют. при проверке ее подписи. но здесь уже не нужно хранить и передавать сертификаты. что этот ключ должен быть создан ЦС. . Криптография идентификационной информации Другой способ удостоверения открытых ключей. чтобы как ЦС. G) и открытого ключа Q цен­ тра сертификатов: ра ^ Qh{ID\\G)Q^ Как только Боб видит применение ключа Алисы. ЦС работа­ ет на более высоком уровне засекреченности (скажем 2048битовом DSA)^ чем пользователь (1024-битовый DSA). Например. Такие системы все еще нуждаются в доверенном третьем лице р^ля первоначального установления подлинности поль­ зователя. он абсолютно уверен. например. которая осно­ вывается на проблеме RSA.

. S) с по­ мощью равенств Т = г^ (modTV). Если он обладает такими данными. с идентификатором пользователя. г^^мцт) ^ Краткое содержание главы . Все они имеют свои достоинства и недостатки.PGP и SPKI работают по принципу снизу-вверх. В системе SPKI предусмотрена возможность делегирования полномочий. . используя уравнение д = 1{Алтсз. Криптография идентификационной информации Сначала третья доверенная сторона (ТТР) вычисляет модуль RSA^ т. в то вре­ мя как Х509 — сверху-вниз. позволяет решить проблему рас­ пределения аутентичных открытых ключей. которое переводит строку битов в элемент {Z/NZ)*. число Л^. — хэш-функция. Кроме того. в свою очередь. . Отображение / может быть реализовано хэш-функцией.6.Для решения задачи распределения аутентичных ключей были предложены различные системы инфраструктуры открытых ключей. храня в секрете два его простых делителя. то убеждается в кор­ ректности следующих равенств по модулю N: /(Алиса) . Тогда ТТР вычисляет этот ключ. Чтобы подписать сообщение М. S) на сообщении М другому пользо­ вателю необходима открытая информация о ТТР и идентификатор Алисы. а Л. Она публикует открытую экспоненту Е^ оставляя в тайне соответству­ ющую расшифровывающую экспоненту d. что Алиса намерена получить секретный ключ д^ соответствующий ее имени «Алиса». .r^(^ll^) (modiV).12. Для проверки подписи (Т.Эта связка. S = g. Алиса генерирует пару (Т. Предположим.д^ .У (modiV).Цифровые сертификаты дают возможность связать открытый ключ с другой информацией.е. например. где г — случайное целое число.1}* (Z/7VZ)*. r^(^ll^) . фиксируется определенное отображение / : {0.

12. Rescorla.1. PGP: Pretty Good Privacy. С.1. Получение аутентичного открытого ключа . Что такое перекрестное сертифицирование и зачем оно нужно? 12. SSL and TLS: Design and Building Secure Systems. однако они обладают большим числом недостатков. New Riders Publish­ ing. Standards and Deployment Considerations. Контрольные вопросы 12. Объясните. Adams and S. исполь­ зуя его идентификатор как некий открытый ключ. . так и для условного депонирования ключей.1. Что предлагает центр сертификатов? 12.Криптография идентификационной информации помогает уста­ новить подлинность открытого ключа пользователя. S.5.3. Understanding Public-Key Infrastructure: Con­ cepts.1. O'Reilly & Associates.336 Глава 12.1. E. Х509 и SPKI. 2000.4. 1994.Неявные сертификаты предназначены для сокраш.1.ения объема удостоверений по сравнению со стандартным сертифицирова­ нием. чем отличаются PGP. 1999.2. За дальнейшей информацией о PGP и SSL стоит обратиться к книгам Гарфинкеля и Рескорла. . Дополнительная литература Хороший обзор инфраструктуры открытых ключей можно найти у Адамса и Ллойда. Addison-Wesley. но при этом не исключается участие третьей доверенной стороны. Lloyd. Почему в сертификат обычно включают срок его действия? 12.Третья доверенная сторона привлекается как для временной маркировки подписи. Для чего обычно применяется SSL? . Garfinkel.

выбрав камень. Введение в этой главе мы исследуем криптографические протоколы. Поскольку существует большое количество литературы. если Алиса выбира­ ет бумагу. т. а Боб — камень. Алиса хочет поиграть с Бобом по телефону в игру «камень. позво­ ляющие обеспечить высокий уровень практического обслуживания. а Боб — бумагу. кто при этом побе­ ждает. • Разобрать протокол голосования. Поэтому. Значит. • Рассказать о доказательствах с нулевым разглашением. ножницы. Фактически. бумага».Бумага может обернуть камень. посвящен­ ной такого сорта протоколам. победа опять достанется ей. 13. мы сфокусируем внимание на протоколах А^ЛЯ . а займемся ее приложением к реальным задачам.доказательств с нулевым разглашением.е. если Боб при этом возьмет ножницы. .ГЛАВА 13 ПРОТОКОЛЫ Ц е л и главы • Представить схемы обязательств. ножницы. . то побеждает Алиса. Для иллюстрации работы обсуждаемых протоколов написан последний параграф этой главы.Ножницы режут бумагу. Стало быть.Камень тупит ножницы. в котором рассказано о системе электронного голосования. . мы не будем углубляться в теорию.схем обязательств. Идея игры состоит в том. определяется по следующему правилу: . Исход выбора. Алиса. как только Алиса назо­ вет ножницы. что Алиса с Бобом одновременно выбирают по одному предмету из множества {камень. бумага}. опять одержит победу. Схемы обязательств Предположим.2. 13.1. .

Алиса открывает обязательство. привлеченная к схеме. раунд закончит­ ся с ничейным результатом. то невозможно добиться одновременного оглашения предмета. Таким образом. Такая система называется схемой обязательств. А мы верим в то. что Алиса не жульничала. Сначала Алиса передает свой выбор «бумага». что функция. уже знает о своем поражении. как Боб назо­ вет свой предмет. передает свой пред­ мет в виде «затемненного обязательства». . • В : ГА'. Один из способов преодоления возникаюш. Фактически.При этом Боб не в состоянии определить скрытое содержание обязательства. Боб будет уверен. Та. поскольку он не знает случайного зна­ чения ГА И не может обратить хэш-функцию. то у соответству­ ющей хэш-функции будут повторяющиеся значения. если ей удастся найти такое г^. предоста­ вляя тем самым полную победу второму игроку. Действительно. чтобы второй из играющих смог убедиться в неизменности обяза­ тельства в период между передачей и открытием. если игра проводится по телефону. Свойство схемы обязательств. что хэш-значение НА^ переданное Алисой. чтобы хэш-функция бы­ ла защищена от вторых прообразов. но не может сжульничать. поскольку у нее нет возможности заменить г А на какое-нибудь дру­ гое г^. После того. получив его по­ слание. Наиболее простой способ ее реа­ лизации состоит в использовании хэш-функции: А В А • В : НА = Я(ГАII бумага). которое соперник не смо­ жет прочесть до определенного момента. В этом раунде. посылая Бобу хэшзначение НА. обеспечивающее невозможность прочтения содержащейся в сообщении информации. Свойство схемы обяза­ тельств. бумага Бобу нужно проверить. что начинающий игру. скажем Алиса. Далее Боб посылает Алисе слово «ножницы». защищена от повторений. Посмотрим на перспективы Алисы в этом обмене сообщениями. Кто-то должен первым озвучить свой выбор. называется сокрытием. Алиса проиграла.Глава 13. А : НОЖНИЦЫ. удовлетворяющее условию: iir(r^II бумага) = 7/(гд|| камень). конечно. При этом важно. совпадает с iJ(гдЦ бумага). Протоколы Если же оба игрока выберут одинаковые предметы. При положительном результате провер­ ки. здесь достаточно требовать.ей проблемы состоит в том. поскольку ножницы режут бумагу.

. Следовательно. Напомним. Лемма 13. хотя здесь нужно учитывать два свойства: скрывающее и связывающее. коли­ чества вычислительных ресурсов. если получатель может узнать содержимое обязательства до его раскрытия.вычислительно связывающая^ если отправитель может изме­ нить значение обязательства.1.2. если передаюпщй обя­ зательство не может изменить его значение. . это свойство защищено лишь в вычислительном отношении. Определение 13. .13. но в результате привлечения неоправданно большого. не сможет ее взломать. но только в результате огромно­ го количества вычислений. Ана­ логично и схемы обязательств можно разделить по степени защи­ щенности.2. Схема обязательств if (г||с) со случайным значением г. Схемы обязательств благодаря которому Алиса не способна изменить содержание пере­ данного послания. Доказательство.теоретико-информационно скрывающая^ если получатель не способен определить содержание обязательства до стадии раскры­ тия вне зависимости от его вычислительных возможностей. криптосистема называется вычислительно за­ щищенной. если нападающий.теоретико-информационно связывающая. что шифрующая функция обладает теоретико-ин­ формационной стойкостью.вычислительно связывающей. Изучим скрывающее и связывающее свойства более вниматель­ но. только лишь вычислительно защищены от восстановления прообразов и вторых прообразов. Связывающее свойство гарантировано только защищенностью подлежащей хэш-функции от вторых прообразов. если ее нельзя вскрыть за полиномиальное время. Все криптографические хэш-функции. с кото­ рыми мы встречались. . С другой стороны. . что схема обязательств . обладая неограни­ ченными вычислительными возможностями.. обязательством с и криптографической хэш-функцией Н в луч­ шем случае является . . Непосредственно из определения вытекает следующая лемма.вычислительно скрывающая.вычислительно скрывающей. называется связывающим. даже обладая не­ ограниченными вычислительными возможностями. Говорят. хоть и конечного.

и связывающее. — будут обладать теоретико-информационной стойкостью? Это представля­ ется трудной. если не невозможной задачей. на­ пример. По­ следнее свойство достаточно просто обеспечить. х) — во второй. Чтобы раскрыть обязательство. и намерена изменить элемент из Z/QZ. то вернемся к перво­ му шагу. D{x) = G ^ Da{x) = B^G^ где а — случайное целое число по модулю Q. Величина а называется затемняющей^ поскольку она скрывает переданное число х даже от нападающего с неограниченными вычислительными возможностя­ ми. Рассмотрим.вычислим F = H{R) Е Fp для некоторой криптографической хэш-функции if. Таким способом мы получим случайный элемент группы Fp порядка Q. а именно х. Схема обязательств D{x) самое большее теоретикоинформационно связывающая и вычислительно скрывающая. Если G 7^ 1. чей дискретный логарифм по основанию G не известен ни одному из пользователей системы.положим G = F Q (modP). Пусть Алиса опубликовала С = D{x) = G^. . По данной паре (G^B) мы построим две схемы: D{x) и Da{x)^ передающие целое число х по модулю Q. Доказательство. • Возникает вопрос: можно ли разработать схему обязательств.возьмем произвольное i? G Z. Пусть А — конечная абелева группа простого порядка Q и обра­ зующей G. р-1 . мультипликативную группу конечного поля Fp. причем эта случайность гарантируется случайным выбором R.3. являющийся дискретным логарифмом от С по основанию G. оба свойства в которой: и скрывающее. аналогичным которому можно отыскать и В: . Если G = 1. Лемма 13. Протоколы Аналогично. G). то и оно защищено только по вычислениям. пользователь открывает значе­ ние X в первой схеме и пару (а. который передала этим обя­ зательством. то выведем пару (Д.Глава 13. Однако можно предло­ жить две изящных схемы. В — элемент этой группы. скрывающее или связывающее свойство в которых будет обладать теоретико-информационной стойкостью. поскольку скрывающее свойство обеспечивается за­ щищенностью хэш-функции от восстановления прообразов. Увы! вне зависимости от вычислительных возможно­ стей Алисы существует только один элемент в Z/QZ. выберем Q среди делителей числа Р — 1 и построим О методом. Таким .

• Лемма 13. а не (а. получатель не в состоянии восстановить а. Поскольку для данного значения М и каждого X существует лишь одно а.4.. Это свойство нам потребуется при обсуждении протокола голосо­ вания в конце главы. то даже обладая неограниченными вычислительными возможностями. 13. Ц. передав обязатель­ ство М = Da{x) = B^G^^ хочет изменить х на у.+a2{xi + X2). получатель собирается восстановить переданный ему ж. что обе представленные выше схемы обязательств. Доказательство. основанные на дискретном логарифмировании. из М. Gf«i-fa2 ^ Da. обладают свойством гомоморфности: D{xi) • D{x2) = G^^ • G^2 = G^^+^2 = D{xi + ^2). Все. не сообщая в точности. Отсюда следует. Допустим. Поэтому схема всего лишь вычислительно скрывающая. что нужно }\ля этого сделать. что Алиса. Именно с таким очевидным противоречием имеют дело доказательства с нулевым разглашением. но теоретико-информационно скрывающая.13. при котором М = B^G^. — это найти дискретный логарифм по основанию G. не дожидаясь стадии раскрытия. Предположим. М F = — ВУ' после чего она может вычислить дискретный логарифм а' = log^^ F и утверждать. Теперь допустим. В литерату­ ре по доказательствам с нулевым разглашением Алису называют . ОагЫ) ' Da2{x2) = B^^ • G^' • B^^ . что схема вычислительно связывающая.3. эта система несомненно теоретико-информационно связы­ вающая. какими конкретно сведени­ ями она располагает.ля этого ей достаточно найти г. • Закончим параграф замечанием. что она посылала пару {а\у). Доказательства с нулевым разглашением 341 образом. ^«2 ^ = B^i+^2 . Схема обязательств Da{x) — вычислительно связы­ вающая (если отправитель не знает дискретного логарифма В по основанию G). ж). что получатель обязательства желает опреде­ лить скрытый элемент.3. что Алиса пытается убедить Боба в обладании какой-то информацией. Доказательства с нулевым разглашением Допустим.

Такая перенумерация ^р называется изоморфизмом графов и обозначается (f : Gi • G2. При этом она. ф : G2 ф о ip : Gi Я. verifier). V Р : Я. получает другой граф i / . есте­ ственно. Назовем (р секретными исходными данными доказывающей стороны. поскольку в его намерения входит проверить. пересылая Виктору либо X — Ф^ либо X — Ф ^^. Предположим. а Боба — проверяющей стороной (или проверяющим).к. изоморфный обоим ис­ ходным.Протокол выглядит как Р V : Я. или общими исходными данными. Это делается с помощью следующего доказательства с нулевым разглашением. Два графа Gi и G2 с одним и тем же количеством вершин называются изоморфными. т. Пегги хочет дока­ зать Виктору. Протоколы доказывающей стороной. prover).Пегги выдает свой ответ на запрос. а графы Gi и G2 — открытыми. ни­ чего не сообщая ему о точной природе изоморфизма. что ей известен изоморфизм указанных графов. именуя доказывающего Пегги (от англ. действительно ли доказывающий что-то знает. Р -V: х- Исследуем вопрос о возможности жульничества со стороны Пегги. что Пегги знает какой-то изоморфизм ср между двумя общеизвестными графами Gi и G2. а проверяющего — Виктором (от англ. и публикует Н как обязательство. Пегги применяет секретную случайную перестановку ф к вер­ шинам графа G2. знает в чем состоит секрет: (р : Gi ».2} и спрашивая об изоморфизме графов Н и GB. выбирая число Б G {1. Виктор делает запрос. Если Пегги реально не знает изоморфизма (р^ то для корректного .G2. если вер­ шины одного из них можно перенумеровать так. Классический пример доказательств с нулевым разглашением связан с проблемой изоморфизма графов. • Н. именно она хочет что-то доказать. Поиск изоморфизма между двумя графами — трудная вычислитель­ ная проблема.Глава 13. Мы тоже будем следовать установившейся традиции. чтобы получился второй.

ениями в протоколе генери­ ровать новый граф Н. Протоколы доказательств тоже можно разделить на типы по степени криптостойкости. Таким образом. что три фазы обязательство • запрос • ответ являются характерной чертой таких протоколов. что Пегги следует в каждом раунде обмена сообш. Доказательства с нулевым разглашением ответа ей необходимо заранее узнать. .S. Чтобы увидеть. Следовательно. если Пегги пытается об­ мануть проверяющего.ествляет доказательство с нулевым разглашением. она способна дать правильный ответ на за­ прос лишь в 50% случаев.переставив произвольным образом вершины графа G^. Следовательно. е.сфабриковать запись протокола: Р V V : Я. Виктор может сделать правдоподобные записи протокола без участия Пегги.ую имитацию: . Чтобы убедить­ ся.ий изоморфизм х? . что он не смог бы выступать в этом протоколе в качестве Пегги. что та­ кого не происходит. . получил ли Виктор скрываемую информацию в результате работы протокола. что он осуш. используя следуюп].13.1}. честная Пегги сможет убедить Виктора в том.выбрать В G {0. нужно посмотреть на его запись и понять. можно ли что-либо полезное из нее извлечь. т. Р ^ : X. полу­ чить изоморфный граф Н и соответствуюп1. Отметим. К одному типу отнести доказательства. что она дей­ ствительно знает упомянутый изоморфизм с малой вероятностью ошибки. Виктор не сможет убедить кого-то другого в своем знании изоморфизма. Тем самым можно сделать вывод: Пегги своим доказательством не открыла тайны изоморфизма. диалоговая природа протокола показывает. В противном случае у Виктора появляется возможность тривиального жульничества.Р : В. Поэтому повторяя протокол несколько раз. Будем считать. действительно ли доказатель­ ство Пегги ничего не разглашает? Прежде всего заметим. достаточно заметить. . какой именно граф Оъ Вик­ тор собирается ей послать. Теперь стоит выяснить: извлекает ли Виктор какую-либо полез­ ную информацию из протокола. что Виктор реально ничем не пополнил свои знания.

занимают большой объем. Р : Е. чтобы абсолютно убедить Виктора в знании секрета. таким образом.ий это знание. что доказательство имеет вычислительно нулевое разглашение. которые при этом передаются.ий более высокую пропускную способность.Корректность: если Пегги не знает. если нападаюш. Если же от­ личить их друг от друга не в состоянии лишь противник с огра­ ниченными вычислительными возможностями.Полнота: если Пегги действительно знает то. что справедливые записи протокола (которые действительно получились в результате работы протокола. осуществившего доказательство) обозначаются через V.им образом: Р V Р • V : R — G^ ]\j{Si случайного А. мо­ жет выполняться следуюш. что Виктор имеет вычислительные средства. что к основным свойствам систем интерактивных доказательств отно­ сятся . Обладая неким секретом. а возможные имитации — через S.Глава 13. Протокол. доказываюш. обладая неограниченными вычисли­ тельными возможностями.. Данные. V : S = k + xE (modQ). то веро­ ятность убеждения Виктора должна быть крайне мала. Предположим. что собирает­ ся доказать. при обсуждении подписи Шнорра в главе 10 мы уже видели протокол. а Пегги обладает неограни­ ченными вычислительными возможностями. Ясно. Надежность протокола. что доказывает. свойство нулевого разглашения связа­ но с концепцией имитации.ий. что доказательство обладает абсолютно нулевым раз­ глашением. что Пегги знает х — \O%Q Y В конечной абелевой груп­ пе А простого порядка Q. причем протокол необходимо повторять несколько раз.его примера с изоморфизмом графов заключается в его не­ практичности. Предположим. будем говорить. огра­ ниченные полиномиальным временем. имеюш. не может отличить V от S. Виктор убеждается в том. а к другому — с неограниченными. Как мы уже отметили. К счастью. то Виктор должен принять ее доказательство с вероятностью 1. что Пегги знает дискретный логарифм . Протоколы стойкие относительно противника с ограниченными вычислитель­ ными возможностями. Говорят. можно использовать доказательство с нулевым разглашением как схему идентификации. насколько S похоже на V. Недостаток пре­ ды душ. Будем считать. . связана с тем.

Их лег­ ко можно сделать и не интерактивными (автономными). Идея здесь состоит в том.. Доказательства с нулевым разглашением 345 ж.генерировать случайное число Е по модулю Q. если заме­ нить запрос вычислением криптографической хэш-функции. которая присутствовала в протоколе. что R = G^Y-^. состоит в их интерактивной природе: Р V : СО.выдать записи: Р V V : Д. . что доказывающий не может угадать запрос перед отправкой обя­ зательства. поскольку А^ля этого нужно было бы инвертировать хэшфункцию. где СО — обязательство. то она может попытаться обмануть Виктора. приме­ ненной к обязательству: СН = Н{СО). Проблема. Кроме того. Р V : RE. Рассмотрим протокол более детально. обладающая неограниченными вычислительными ресурсами Пегги способна ин­ вертировать хэш-функцию. связанная с доказательствами с нулевым разглашени­ ем.13. что доказывающий приводит аргумент с нулевым разглашением (в отличие от термина «доказательство с нулевым разглашением»). Р : Е. Р V : S. что существенно меньше 1/2. поскольку Виктор может имитиро­ вать записи протокола следующим образом: . поскольку его нельзя имитировать. V Р : СН. то будем говорить. основанном на изомор­ физме графов.вычислить R = G^Y~^. Ей удастся это сделать с вероятностью l / Q . проверяя. Автономный протокол теряет свойство нулевого разгла­ шения. Если Пегги не знает дискрет­ ного логарифма д. Как только мы это сде­ лаем. СН — запрос и RE — ответ. . Действительно ли Виктор не получает полезной информации из протокола? Ответ отрицателен.3. Поэтому нужно ограничить возможно­ сти вычислений доказывающей стороны. . Эта имитация приобретет важное значение при изучении стойкости подписи Шнорра в главе 17.

хэш-зн