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. Арифметика остатков 22
1.1.1. Группы и кольца 24
1.1.2. Функция Эйлера 26
1.1.3. Мультипликативные обратные по модулю N 28
1.2. Конечные поля 30
1.3. Основные алгоритмы 34
1.3.1. Наибольший общий делитель 34
1.3.2. Китайская теорема об остатках 39
1.3.3. Символы Лежандра и Якоби 41
1.4. Вероятность 46
1.4.1. Теорема Байеса 48
1.4.2. Парадокс дней рождения 49

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

Содержание

Ч а с т ь II. С и м м е т р и ч н о е п1ифрование

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

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

Глава 5.
С и м м е т р и ч н ы е П1ифры 122
5.1. Введение 122
5.1.1. Упрош,енная модель 124
5.1.2. Поточные шифры 125
5.1.3. Блочные шифры 127
5.2. Шифр Фейстеля и DES 131
5.2.1. Обзор действия шифра DES 133
5.2.2. Разворачивание ключа в DES 136
5.3. Rijndael 138
5.3.1. Операции алгоритма Rijndael 140
5.3.2. Структура раундов 143
5.3.3. Разворачивание ключа 144
5.4. Режимы работы DES 144
5.4.1. Режим ЕСВ 145
5.4.2. Режим СВС 146
5.4.3. Режим OFB 147
5.4.4. Режим СЕВ 148
5.5. Подлинность сообш[;ений 149

Содерэюанив

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

Глава 6.
Распределение симметричных ключей 162
6.1. Управление ключами 162
6.1.1. Распределение ключей 163
6.1.2. Выбор ключа 164
6.1.3. Время жизни ключа 165
6.1.4. Разделение секрета 166
6.2. Распределение секретных ключей 167
6.2.1. Обозначения 168
6.2.2. Протокол широкоротой лягушки 169
6.2.3. Протокол Нидхейма-Шредера 170
6.2.4. Протокол Отвэй-Риса 172
6.2.5. Цербер 173
6.3. Формальные методы проверки протоколов 174
6.3.1. Анализ протокола широкоротой лягушки 177

Ч а с т ь III. К р и п т о с и с т е м ы с о т к р ы т ы м к л ю ч о м
и подписи

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

Содероюание

Глава 8.
Т е с т ы на п р о с т о т у и ф а к т о р и з а ц и я 209
8.1. Простые числа 209
8.1.1. Пробное деление 210
8.1.2. Тест Ферма 211
8.1.3. Тест Миллера - Рабина 213
8.1.4. Доказательство простоты 214
8.2. Алгоритмы факторизации 215
8.2.1. Пробное деление 216
8.2.2. Гладкие числа 217
8.2.3. (Р — 1)-метод Полларда 218
8.2.4. Разность квадратов 220
8.3. Современные методы факторизации 221
8.3.1. Комбинирование соотношений 222
8.4. Метод решета в числовом поле 224
8.4.1. Линейное решето 224
8.4.2. Решето в числовом поле 227
8.4.3. Как найти множество S1 228
8.4.4. Как извлекать квадратные корни? 230
8.4.5. Выбор начальных многочленов 231
8.4.6. Пример 231

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

Содержание

Глава 10.
Распределение ключей, схемы подписей
и хэп1-функции 257
10.1. Распределение ключей Диффи-Хеллмана 257
10.2. Схемы цифровой подписи 261
10.3. Хэш-функции 264
10.3.1. Семейство MD4 268
10.3.2. Хэш-функции и блочные шифры 270
10.4. Алгоритмы цифровой подписи 271
10.5. Подпись Шнорра 276
10.6. Подпись Ниберга-Руппеля 278
10.7. Соглашение об аутентифицированном ключе 280

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

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

Содероюание

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

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

Часть IV. Проблемы стойкости

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

Содероюание

Глава 15.
Определения стойкости 375
15.1. Стойкость шифрования 375
15.1.1. Понятия стойкости 376
15.1.2. Виды атак 378
15.1.3. Другие концепции стойкости 381
15.2. Стойкость актуальных алгоритмов шифрования 382
15.2.1. RSA 383
15.2.2. Эль-Гамаль 384
15.3. Семантически стойкие системы 386
15.4. Стойкость подписей 389

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

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

Глава 18.
Д о к а з у е м а я с т о й к о с т ь б е з с л у ч а й н о г о оракула 438
18.1. Введение 438
18.2. Некоторые новые задачи 439

Алгоритмы шифрования 445 18.6. Хэш-функции 494 Б. 440 18.1.2.5.З.java 501 Б.1. Факторгруппы 473 А.java 502 Б.3. Интерактивные хэш-предположения Диффи . Public-Commitment. Функции 457 А.9. Private.9. Нормальные подгруппы и классы смежности 470 А. Размерность и базисы 485 Приложение Б.6.8. Поля 480 А. Proof. 1.6. Схемы подписи 441 18.Java 499 Б.5. Шифрование с открытым ключом 492 Б. Схема подписи Дженнаро-Галеви-Рабина 442 18.4.1.3.4.1. Множества 454 А.4. Перестановки 460 А.7.5.Commitment.3.Java 500 Б.java 501 Б.5.2.9.6. Свойства векторов 483 А.5. Группы 466 А.3.java 505 .4. Содерэюание 18.2.З.2.1. Операции 463 А.2. Доказательства с нулевым разглашением и обязательства 499 Б.4.6. Схема шифрования Крамера-Шоупа 445 18.2.2..5. Схема подписи Крамера-Шоупа 443 18.4. Гомоморфизмы 475 А. П р и м е р ы на я з ы к е Java 489 Б. Блочные шифры 490 Б. Кольца 479 А.2.1. prog.Хеллмана. 1.5.9. Цифровые подписи 495 Б. Сильные i?S'Л-пpeдпoлoжeния 439 18. Отношения 455 А.5. Схема шифрования DHIES 448 Прилолсение А . Подпространства 483 А.2.2.3.5. Векторные пространства 482 А. Parameters . Основная м а т е м а т и ч е с к а я т е р м и н о л о г и я 454 А. Commitment-Factory.3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 251 246) = = НОД (4 251246. начиная с г = О и заканчивая г — т. конечные поля и вероятность г^. мы находим искомый делитель за несколько шагов: НОД (21.810 653 094 756) = = НОД (810 653 094 756. Глава 1.12) = НОД (21 (mod 12). Приведем пример и с большими числами.Н О Д (0.252 240 596) = = НОД (252 240 596.3) = .1 769 935 418) = = НОД (1 769 935 418. Продемонстрируем работу алгоритма на вычислении НОД (21. группы.ri) = ••• = Н О Д ( г „ _ ь г ^ ) = г^. такой. Используя функциональный язык программирования.6) = НОД (ro.194 637 629 782) = = НОД (194 637 629 782.1417 082) = = НОД (1417082.12) = = НОД (12 (mod 9).616 015 464 974) = = НОД (616 015 464 974.2 022176 014) = = НОД (2 022176 014. 9) = = НОД (3. 3.12). без сомнения. НОД (1426 668 559 730. Используя описанную схему. 12) = = НОД (9.32102 575 628) = = НОД (32 102 575 628. Н0Д(а.0) = 1417082. поскольку он естественно записывается в рекуррентном виде: 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 многих языках программирования. таких как Java. Сравнения. алгоритм Евклида легко реализовать на практике.3) =3. равного.9) = = Н0Д(9 (mod3). как Haskell. напри­ мер. С или пакетах компьютерной алгебры типа Maple из-за больших затрат . Следовательно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

45 on 1.2.21 1 en 1. 3.69 er 1. 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 Рис. а самые попу­ лярные триграммы выписаны в строку в порядке убывания частоты их использования: the. Частота встречаемости английских биграмм Биграмма Процентное содержание Биграмма Процентное содержание th 3. Про­ цесс шифрования заключается в замене каждой буквы на другую. was. При взломе шифра полезно знать статистическую информацию и второго порядка. называемый шифром сдвига. ing. Как видно из этих данных. то буква «а» исходного текста в шифровке изображается «D». Шифр сдвига грамма изображена на рис.2. Так.20 nd 1. her.54 re 1. Слово «hello» будет представлено . наиболее часто встречающиеся буквы — это «е» и «t». Относительная встречаемость английских букв Вооруженные такой статистической информацией. 3. ere. частоту встречаемости групп из двух и трех букв. например. Таблица 3.2. мы готовы сейчас исследовать и взломать несколько классических шифров. 3.45 ea 1.28 at 1. and.1.51 an 1. for.18 1 3. 3. называемых биграммами и триграммами.2. если ключ равен 3.24 St 1. вме­ сто буквы «Ь» появится «Е» и т. Шифр сдвига Коллекцию классических криптосистем открывает один из самых первых известных типов шифра.72 in 1.1. Наиболее часто встречающиеся биграммы представлены в табл. а именно. nth. д. отстоянную от исходной на определенное число позиций в алфавите в зависимости от значения ключа.15 he 2. eth.48 es 1. tha.31 ti 1. ent.

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

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

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

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

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

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

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

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

Один из путей решения указан­ ной проблемы состоит в том. В этом примере мы. относится к так называемым моноалфавитным шифрам замены.ая- ся два раза.ается разными символами. Глава 3.ественно усложнили применение статистических методов при атаке на шифр. Однако пользователю необходимо помнить. исходное слово hello в шифротек- сте будет выглядеть как SHLJV. Итак.ие на нечетных позициях. замеш. Но для среднего пользователя начала XIX века такая система шифрования казалась .ие знаки из разных наборов в опре­ деленной последовательности. мы имеем дело с блочным шифром. С начала XIX века разработчики шифров пытались преодолеть такую связь между открытым текстом и его шифрованным вариантом. Действительно. Шифр замены. Исторические шифры мер. стояш. считал его частью ключа. то число возможных ключей равно (26!)^ ^ 2^^^. Если теперь применить наивный частотный анализ. что в этом случае ключ — по­ следовательность из 26-5 = 130 букв. необходимо скрыть количество ис­ пользуемых алфавитов. чтобы брать несколько наборов симво­ лов вместо стандартного алфавита и шифровать буквы открытого текста. в котором первая строка — английский алфавит.ем параграфе. Таким образом. выбирая соответствуюш. Естественно. за каким знаком в шифровке скрывается буква «Е». Например. в которых используется только один упорядоченный набор символов. На практике можно использо­ вать не два.ими буквами второй строки.ий собой стандартный алфавит. описанный в предыдуш. Следовательно. чтобы усложнить жизнь Еве. блок кото­ рого равен двум английским буквам. замеш. подменяющий собой самую популярную английскую букву «е».а- ются соответствуюш. не составляет труда определить. а вторая и тре­ тья — первый и второй алфавиты шифротекста. мы суш. что если мы берем символы из пяти замещающих наборов. вскрывающей шифр. а вплоть до пяти различных алфавитов шифротекста. При этом буква «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. Шифры такого типа носят название полиалфавитных шифров замены. по существу. то мы не смо­ жем найти символ шифра. лег­ ко подсчитать.

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

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

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

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

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

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

ее число секретных ключей доходило до 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. содержашую лишь три коммутационных диска. При каждом повороте первого ротора соединенное с ним кольцо попадает в паз второго диска и толкает его. порядок их компоновки. выбираемых из большего набора перестановок. что увеличивало сложность и доба­ вляло еш.е 10^^ возможных ключей. Все это дает нам полиалфавитный шифр замены с 26 алфа­ витами. применяемые в конце войны.7. Аналогично пошаговые итерации третьего ротора контролируются вторым ротором. Роторные машины и «Энигма» a b c d e f g h i j k l m n o p q r stuvwxyz MKGOYDSIPELUAVCRJWXZNHBQFT Для третьей буквы используется очередная подстановка: abcdefghijk Imnopq rstuvwxyz KGOYDSIPELUAVCRJWXZNHBQFTM и т.60. Число всех положений двух колец составляет 26^ = 676.ля двойной замены букв при каждом шифровании ис­ пользовалась штекерная панель. Наиболее знаменитой из роторных машин была машина «Эниг­ ма». Поэтому число возможных компоновок дисков в нашем примере равно 5 • 4 • 3 . .алась раз­ ными символами при каждом нажатии на клавишу. р. Наконец. В результате обш. За счет враш. и их положения тоже формируют часть простран­ ства ключей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

S32.3.Н[4]) = (Н[1]+А.15. Ha протяжении всего алгоритма мы следим за текущим хэш-состо­ янием (Я1.11.7.3.9.A7 = [0. 15].В.11.Н[2. 16 ^ j < 31. Имеем О. Выполнить третий раунд.19].3.13.15 = [3. (Н[1]. г?..9.3.. внесенных в поток данных: (А. Vj = { '5Л827999/1'. Н2 = 'ЕРСВАВЪШ'. О ^ J ^ 15. И .13..11.11.9.Яз.9. Поток данных состоит из 16 одновременно загружаемых слов в мас­ сив ХЦ] (о ^ J < 16).15].9.15.6. S0.5.Н[3].6.3..3. Выполнить первый раунд.^v^w) = u®v ®w.14. Z32.12. И . Si).19.15].7... Н[3]+С.1.11. 32 < j ^ 47. начальные значения которых равны Hi = '67452301/i'. w) — {и Av) W {й Aw).3.4. Оставим их изучение по доступной литера­ туре на усмотрение любознательного читателя.2.4.9.31 = [3. г.9.3.10. д{и. Хэш-функции 269 Обсудим подробно MD4.14.7.14.15. h{u.3..2.7.10.13. .5.9..Я4) 32-битовых переменных.6. Щ = '98BADCFEh'.12. свои для каждого раунда.9. Существуют различные фиксированные константы (Vii Zi. В MD4 участвуют три поразрядные функции от трех 32-битовых переменных: /(гл. Щ = '10325476/1'.11.31 = [0.13.13].2.3.Я2.5.1.1.i5 = [0.. w) = {и Av) V {и Aw) У {v А w).11.4.CD) = (Н[1].5.12.19. 'QEDQEBAlh'. H[4]+D). 10.11. Н[2]+В.11.19. 216.Н[2].9.Н[3]. Выполнить второй раунд. Затем мы выполняем следующие преобразо­ вания над каждым из 16 слов. поскольку остальные — более сложные версии этого алгоритма.5.7.Н[4]).3. S16.8. 15].3.9.5.5...7. Значения Zi и Sj приведены в следующих массивах: zo..13..3.13.47 = [3.10.8.8.7.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это позволяет избежать дорогостоящей операции деления. К р а т к о е с о д е р ж а н и е главы . . В процедуре расшифро­ вания нужно использовать информацию о разложении модуля алгоритма N на простые сомножители и китайскую теорему об остатках. а алгоритмы. при котором каждая из степеней вычисляется отдельно. В качестве открытой экспоненты нужно выбирать число не только малое. Реализация операций Происходит это благодаря формуле.В процедуре проверки подписи алгоритма DSA суш. Глава 11. разобранных в этой главе — второй том книги Кнута. возведение в квадрат над полем характеристики 2 — очень быстрая операция в сравнении с общим умножением. Дополнительная литература Стандартная ссылка на описание алгоритмов.Операции в полях характеристики 2 также эффективно реа­ лизованы. Правда. чем умножение. не вошедшие в наш . В этом сл