Upload
others
View
46
Download
0
Embed Size (px)
Citation preview
ПРИКЛАДНАЯ КРИПТОГРА
Протоколы, алгоритмы и исходные коды на языке С
БРЮС ШНАЙЕР
W il e y
Оглавление
Предисловие 29Предисловие Уитфилда Диффи 33Введение 39Об авторе 45Гпава 1. Основные понятия 47
Часть 1КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ 71
Ггава 2. Структурные элементы протоколов 73Гпава 3. Основные протоколы 107Гпава 4. Промежуточные протоколы 143Diaea 5. Усовершенствованные протоколы 177Гпава 6. Эзотерические протоколы 209
Часть IIМЕТОДЫ КРИПТОГРАФИИ 241
Гпава 7. Длина ключа 243Гпава 8. Управление ключами 267Гпава 9. Пипы алгоритмов и криптографических режимов 293Гпава 10. Использование алгоритмов 325
Часть IIIКРИПТОГРАФИЧЕСКИЕ АЛГОРИТМЫ 347
Гпава 11. Математические основы 349Гпава 12. Стандарт шифрования данных DES 389Гпава 13. Другие блочные шифры 437Гпава 14. Другие блочные шифры 473Гпава 15. Комбинирование блочных шифров 505Гпава 16. Генераторы псевдослучайных последовательностей
и потоковые шифры 521Гпава 17. Другие потоковые шифры и генераторы истинно
случайных последовательностей 555Гпава 18. Односторонние хеш-функции 595
6 Оглавление
Гпава 19. Алгоритмы с открытыми ключами 633Бгава 20. Алгоритмы цифровой подписи с открытым ключом 663Гпава 21. Схемы идентификации 687Гпава 22. Алгоритмы обмена ключами 699Гпава 23. Специальные алгоритмы для протоколов 715
Часть IV РЕАЛЬНЫЙ МИР 753
Гпава 24. Примеры реализаций 755Глава 25. Политические вопросы 801Послесловие Мэтта Блейза 829
Часть V ПРИЛОЖЕНИЕ 833
Исходные коды 835Список литературы 897Предметный указатель 1021
Содержание
Предисловие 29Предисловие У и тф и л д а Д и ф ф и 33Введение 39К а к ч и т а т ь э т у к н и г у 40Б л а г о д а р н о с т и 43Об авторе 45
Глава 1 . О сн о вн ы е по н яти я 471. 1. Т е р м и н о л о г и я 47
Отправитель и получатель 47Сообщения и шифрование 47Аутентификация, целостность и неотрицание авторства 48Алгоритмы и ключи 49Симметричные алгоритмы 50Алгоритмы с открытым ключом 51Криптоанализ 52Безопасность алгоритмов 56Исторические термины 57
1.2. С т е г а н о г р а ф и я 581.3. П о д с т а н о в о ч н ы е и п е р е с т а н о в о ч н ы е ш и ф р ы 58
Подстановочные шифры 59Перестановочные шифры 61Роторные машины 62Для дальнейшего чтения 63
1.4. П р о с т а я о п е р а ц и я XOR 631.5. О д н о р а з о в ы е б л о к н о т ы 651.6. К о м п ь ю т е р н ы е а л г о р и т м ы 681.7. Б о л ь ш и е ч и с л а 69
Часть I КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ 71
Глава 2 . С труктурны е э л ем ен ты протоколов 732.1. В в е д е н и е в п р о т о к о л ы 73
Предназначение протоколов 75Действующие лица 7 5Протоколы с посредником 76Арбитражные протоколы 79Самодостаточные протоколы 80Атаки на протоколы 80
8 ч . Содержание
2.2. О б м е н с о о б щ е н и я м и с п о м о щ ь ю с и м м е т р и ч н о й к р и п т о г р а ф и и 812.3. О д н о с т о р о н н и е ф у н к ц и и 832.4. О д н о с т о р о н н и е х е ш - ф у н к ц и и 84
Коды проверки подлинности сообщения 862 .5 . О б м е н с о о б щ е н и я м и с п о м о щ ь ю к р и п т о г р а ф и и с о т к р ы т ы м
к л ю ч о м 86Гибридные криптосистемы 88Головоломки Меркла 90
2 .6 . Ц и ф р о в ы е п о д п и с и 91Подпись документа с помощью симметричных криптосистеми посредника 92Деревья цифровых подписей 94 Подпись документа с помощью криптографии с открытым ключом 94Подпись документа и метки времени 95 Подписание документов с помощью криптографии с открытымключом и односторонних хеш-функций 96Алгоритмы и терминология 97Многократные подписи 97Невозможность отказа от авторства и цифровые подписи 98Применение цифровых подписей 99
2 .7 . Ц и ф р о в ы е п о д п и с и и ш и ф р о в а н и е 99Возвращение полученного сообщения 101 Отражение атаки, основанной на повторной пересылкесообщений 102Атаки криптосистем с открытыми ключами 103
2.8. Г е н е р а ц и я с л у ч а й н ы х и п с е в д о с л у ч а й н ы х п о с л е д о в а т е л ь н о с т е й 103
Псевдослучайные последовательности 104 Криптографически стойкие псевдослучайныепоследовательности 105Истинно случайные последовательности 106
Глава 3 . О сновны е протоколы 1073.1. О б м е н к л ю ч а м и 107
Обмен ключами с помощью симметричной криптографии 107 Обмен ключами с помощью криптографии с открытым ключом 108Атака “человек посередине” 108Протокол взаимоблокировки 109Обмен ключами с помощью цифровых подписей 110Одновременная передача ключей и сообщений 111Широковещательная рассылка ключей и сообщений 112
Содержание / 9
3.2. А утентиф икация 113Аутентификация с помощью односторонних функций 113Атака по словарю и “соль” 113Программа SKEY 114 Аутентификация с помощью криптографии с открытым ключом 115 Взаимная аутентификация с помощью протоколавзаимоблокировки 116Протоколы SKID 117Аутентификация сообщений 118
3.3. А утентиф икация и обмен клю чами 119Протокол Wide-Mouth Frog 119Протокол Yahalom 120Протокол Нидхема—Шредера 121Протокол Отвея—Рииса 123Протокол Kerberos 123Протокол Ньюмана—Стаблбайна 124Протокол DASS 126Протокол Деннинга—Сакко 127Протокол By—Лама 128Другие протоколы 129Выводы 129
3.4. Ф ормальный анализ протоколов аутентификации
. и о б м е н а кл ю чам и 1303.5. К риптография с н еск о л ь к и м и откры ты м и кл ю ч ам и 134
Широковещательная передача сообщения 1353.6. Р а зб и ен и е сек р ета 1363.7. Разделение секрета 138
Разделение секрета с мошенниками 139Разделение секрета без помощи Трента 140Разделение секрета без раскрытия долей 140Верифицированное разделение секрета 140Схемы разделения секрета с предохранительными мерами 141Разделение секрета с вычеркиванием из списка 141
3.8. К риптограф ическая защ ита баз д а н н ы х 141
Глава 4 . П р о м е ж у т о ч н ы е п р о то к о л ы 1434.1. Службы м ето к в рем ен и 143
Решение с посредником 143Улучшенный протокол с посредником 144Протокол связывания 145Распределенный протокол 146
10 Содержание
Дальнейшая работа 1474.2. С к р ы т ы й к а н а л 147
Применения скрытого канала 149Подписи, свободные от скрытого канала 150
4.3. Н е о с п о р и м ы е ц и ф р о в ы е п о д п и с и 1504.4. Подписи, п о д т в е р ж д а е м ы е д о в е р е н н ы м и л и ц а м и 1524.5. Подписи по д о в е р е н н о с т и 1534 .6 . Г ру п п о в ы е п о д п и с и 154
Групповые подписи с доверенным посредником 1554.7. Подписи с о б н а р у ж е н и е м п о д д е л к и 1554 .8 . В ы ч и с л е н и я н а д з а ш и ф р о в а н н ы м и д а н н ы м и 1574 .9 . П еред а ч а б и т о в 157
Передача битов с помощью симметричной криптографии 158Передача бита с помощью односторонних функций 159 Передача бита с помощью генератора псевдослучайнойпоследовательности 159Двоичные объекты 160
4.10. Ж е р е б ь е в к а с п о м о щ ь ю и д е а л ь н о й м о н е т ы 161 Жеребьевка с помощью односторонних функций 162 Жеребьевка с помощью криптографиис открытым ключом 162Бросок монеты в колодец 164Генерация ключей с помощью жеребьевки 164
4.11. М ы с л е н н ы й п о к е р 164 Мысленный покер с тремя игроками 165 Атаки на протоколы мысленного покера 167 Анонимное распределение ключей 167
4 .1 2 . О д н о с т о р о н н и е с у м м а т о ры 1694.13. Р а с к р ы т и е с е к р е т о в п о п р и н ц и п у
“ в с е и л и н и ч е г о ” 1704.14. Д е п о н и р о в а н и е к л ю ч е й 171
Стратегии депонирования 173
Г лава 5 . У с о верш енствованн ы е протоколы 1775.1. Д о к а з а т е л ь с т в а с н у л е в ы м з н а н и е м 177
Базовый протокол с нулевым разглашением 178Изоморфизм графа 181Гамильтоновы циклы 182Параллельные доказательства с нулевым разглашением 183Неинтерактивные доказательства с нулевым разглашением 184
Содержание / Т1
Общие замечания 1865.2. И с п о л ь з о в а н и е д о к а за т е л ь с т в а с н у л е в ы м р а зг л а ш е н и е м
д л я и д е н т и ф и к а ц и и 187Проблема гроссмейстера 188Мошенничество мафии 188Обман, осуществленный террористами 189Предлагаемые решения 189Обман с несколькими лицами 190Прокат паспортов 190Доказательство членства 191
5.3. С л е п ы е п о д п и с и 191Полностью слепые подписи 191Слепые подписи 192Патенты 195
5.4. Л и ч н о с т н а я к р и п т о г р а ф и я с о т к р ы т ы м к л ю ч о м 1955.5.З а б ы в ч и в а я п е р е д а ч а 1965.6. З а б ы в ч и в ы е п о д п и с и 1985.7. О д н о в р е м е н н о е п о д п и с а н и е к о н т р а к т а 199
Подпись контракта с помощью посредника 199Одновременная подпись контракта без посредника(при личной встрече) 200Одновременная подпись контракта без посредника(без личной встречи) 200Одновременная подпись контракта без посредника(с помощью криптографии) 202
5.8. З а к а зн а я э л е к т р о н н а я п о ч т а 2045.9. О д н о в р е м е н н ы й о б м е н с е к р е т а м и 207
Глава 6 . Э зотери ч ески е протоколы 2096.1. Т а й н о е г о л о с о в а н и е 209
Упрощенный протокол голосования № 1 209Упрощенный протокол голосования № 2 210Голосование со слепыми подписями 210Голосование с двумя центральными комиссиями 212Голосование с одной центральной комиссией 213Улучшенное голосование с одной центральной комиссией 214Голосование без центральной избирательной комиссии 216Другие схемы голосования 220
6.2. С е к р е т н ы е м н о г о с т о р о н н и е в ы ч и с л е н и я 221Протокол №1 221Протокол №2 222
12 Содержание
Протокол №3 223Протокол №4 224Безусловно тайные многосторонние протоколы 225Тайное вычисление схемы 225
6.3. Ш и р о к о в е щ а т е л ь н а я п е р е д а ч а а н о н и м н ы х с о о б щ е н и й 2256.4. Э л е к т р о н н ы е д е н ь г и 228
Протокол № 1 229Протокол №2 230Протокол №3 231Протокол №4 232Электронные деньги и идеальное преступление 236Реальные электронные наличные 236Другие протоколы электронных денег 236Анонимные кредитные карточки 238
Часть IIМЕТОДЫ КРИПТОГРАФИИ 241
Гл ава 7 . Д л и н а к л ю ч а 243
7.1. Д л и н а с и м м е т р и ч н о г о к л ю ч а 243Оценка продолжительности и стоимости лобовой атаки 244Программы для взлома 247Нейронные сети 248Вирусы 248Китайская лотерея 249Биотехнология 250Термодинамические ограничения 251
7.2. Д л и н а о т к р ы т о г о к л ю ч а 252Вычисление с помощью ДН К 259Квантовые вычисления 261
7.3. С р а в н е н и е д л и н с и м м е т р и ч н ы х и о т к р ы т ы х к л ю ч е й 2627.4. А т а к а н а о с н о в е п а р а д о к с а д н е й р о ж д е н и я и о д н о с т о р о н н и е
х е ш - ф у н к ц и и 2637.5. К а к о й д о л ж н а б ы ть д л и н а к л ю ч а ? 2637.6. П р е д о с т е р е ж е н и е 265
Гл ава 8 . У п р а в л е н и е к л ю ч а м и 2678.1. Г е н е р а ц и я к л ю ч е й 268
Уменьшенные пространства ключей 268Неправильный выбор ключей 270Случайные ключи 272
Содержание 13
Ключевые фразы 273 Стандарт генерации ключей Х9.17 274 Генерация ключей в Министерстве обороны США 275
8 .2 . Н е л и н е й н ы е п р о с т р а н с т в а к л ю ч е й 2758 .3 . П е р е с ы л к а к л ю ч е й 276
Распределение ключей в крупных сетях 2788 .4 . П р о в е р к а к л ю ч е й 278
Обнаружение ошибок при пересылке ключей 280 Обнаружение ошибок при расшифровке 280
8 .5 . И с п о л ь з о в а н и е к л ю ч е й 281Контроль использования ключей 282
8.6. О б н о в л е н и е к л ю ч е й 2828 .7 . Х р а н е н и е к л ю ч е й 2838 .8 . Р е з е р в н ы е к л ю ч и 2848 .9 . С к о м п р о м е т и р о в а н н ы е к л ю ч и 2858 .1 0 . С р о к д е й с т в и я к л ю ч е й 2868.11. Р а з р у ш е н и е к л ю ч е й 2888.12. У п р а в л е н и е к л ю ч а м и в с и с т е м а х с о т к р ы т ы м к л ю ч о м 289
Сертификаты открытых ключей 290 Распределенное управление ключами 291
Глава 9 . Типы алгоритм ов и криптограф ических реж и м о в 2939.1. Р е ж и м э л е к т р о н н о й к о д о в о й к н и г и 294
Заполнение блоков 2959 .2 . П о в т о р б л о к а 2969.3. Р е ж и м с ц е п л е н и я б л о к о в ш и ф р о т е к с т а 298
Вектор инициализации 299 Дополнение 300 Распространение ошибки 302 Вопросы безопасности 302
9 .4 . П о т о к о в ы е ш и ф р ы 3039 .5 . С а м о с и н х р о н и з и р у ю щ и е с я п о т о к о в ы е ш и ф р ы 305
Вопросы безопасности 3069 .6 . Р е ж и м г а м м и р о в а н и я с о б р а т н о й с в я з ь ю 306
Вектор инициализации 308 Распространение ошибки 309
9 .7 . С и н х р о н н ы е п о т о к о в ы е ш и ф р ы 309Атака вставкой 311
9 .8 . Р е ж и м о б р а т н о й с в я з и п о в ы х о д у 311Вектор инициализации 312
14 N . Содержание
Распространение ошибки 312Режим OFB и проблемы безопасности 313Потоковые шифры в режиме OFB 313
9.9. Р е ж и м с ч е т ч и к а 314Потоковые шифры в режиме счетчика 314
9.10. Д р у г и е р е ж и м ы б л о ч н ы х ш и ф р о в 315 Режим сцепления блоков 315 Режим сцепления блоков шифрас распространением ошибки 316 Сцепление блоков шифротекстас контрольной суммой 317Нелинейная обратная связь по выходу 317Прочие режимы 317
9 .1 1 . В ы б о р р е ж и м а ш и ф р о в а н и я 3189 .1 2 . Ч е р е д о в а н и е 3219.13. С р а в н е н и е б л о ч н ы х и п о т о к о в ы х ш и ф р о в 322
Глава 1 0 . И спользование алгоритм ов 32510.1. В ы б о р а л г о р и т м а 326
Экспорт алгоритмов 3281 0 .2 . С р а в н е н и е к р и п т о г р а ф и и с о т к р ы т ы м к л ю ч о м
и с и м м е т р и ч н о й к р и п т о г р а ф и и 32810.3. Ш и ф р о в а н и е к а н а л о в с в я з и 330
Канальное шифрование 330 Сквозное шифрование 332 Объединение двух подходов 333
1 0 .4 . Ш и ф р о в а н и е д а н н ы х д л я х р а н е н и я 335 Разыменование ключей 336 Шифрование на файловом уровне и на уровне драйверов 336 Обеспечение произвольного доступа к зашифрованному диску 338
10.5. С р а в н е н и е а п п а р а т н о г о и п р о г р а м м н о г о с п о с о б о в ш и ф р о в а н и я 339 Аппаратное шифрование 339 Программное шифрование 341
1 0 .6 . С ж а т и е , к о д и р о в а н и е и ш и ф р о в а н и е 34210.7. О б н а р у ж е н и е з а ш и ф р о в а н н ы х д а н н ы х 34210.8. С о к р ы т и е ш и ф р о т е к с т а в ш и ф р о т е к с т е 34310.9. Р а з р у ш е н и е и н ф о р м а ц и и 345
Содержание у 15 \
Часть IIIКРИПТОГРАФИЧЕСКИЕ АЛГОРИТМЫ 347
ь 1 1 . М а т ем а т и ч е ск и е о с н о в ы 349Т е о р и я и н ф о р м а ц и и 349Энтропия и неопределенность 349Энтропия языка 350Стойкость криптосистем 351Расстояние единственности 352Практическое использование теории информации 354Перемешивание и рассеивание 354Т е о р и я с л о ж н о с т и 355Сложность алгоритмов 355Сложность задач 357NP-полные задачи 360Т е о р и я ч и с е л 361Модулярная арифметика 361Простые числа 364Наибольший общий делитель 365Обратные значения по модулю 366Вычисление коэффициентов 368Малая теорема Ферма 368Функция Эйлера 369Китайская теорема об остатках 370Квадратичные вычеты 371Символ Лежандра 372Символ Якоби 373Целые числа Блюма 374Образующие 375Вычисление в поле Галуа 376Ф а к т о р и з а ц и я ц е л ы х ч и с е л 378Квадратные корни по модулю п 381Г е н е р а ц и я п р о с т ы х ч и с е л 381Тест Соловея—Штрассена 382Тест Леманна 383Тест Рабина—Миллера 383Практические соображения 384Сильные простые числа 385Д и с к р е т н ы е л о г а р и ф м ы в к о н е ч н о м п о л е 386Вычисление дискретных логарифмов в конечной группе 386
16 N. Содержание
Глава 1 2 . С тандарт ш и ф ро ва н и я дан ны х D E S 38912.1. Основы 389
Разработка стандарта 389 Принятие стандарта 392 Аттестация и сертификация оборудования DES 393 События 1987 года 394 События 1993 года 395
12.2. О п и с а н и е с т а н д а р т а DES 396 Схема алгоритма 396 Начальная перестановка 398 Преобразования ключа 399 Расширяющая перестановка 400 Подстановка с помощью S-блоков 401 Перестановка с помощью Р-блоков 404 Заключительная перестановка 404 Расшифровка в алгоритме DES 405 Режимы алгоритма DES 405 Аппаратные и программные реализации DES 405
12.3. Стойкость а л г о р и т м а DES 407 Слабые ключи 408 Комплементарные ключи 411 Алгебраическая структура 411 Длина ключа 412 Количество раундов 413 Проектирование S-блоков 414 Дополнительные результаты 415
12.4. Д и ф ф е р е н ц и а л ь н ы й и л и н е й н ы й к р и п т о а н а л и з 415 Дифференциальный криптоанализ 415 Криптоанализ на основе связанных ключей 421 Линейный криптоанализ 422 Дальнейшие направления 425
1 2 .5 . П р а к т и ч е с к и е к р и т е р и и п р о е к т и р о в а н и я 4 2 612.6. В а р и а н т ы а л г о р и т м а DES 427
Многократный алгоритм DES 427 Алгоритм DES с независимыми подключами 427 Алгоритм DESX 428 Алгоритм CRYPT(3) 428 Обобщенный алгоритм DES 428 Алгоритм DES с измененными S-блоками 430 Алгоритм RDES 430
Содержание 17
Алгоритм snDES 431Алгоритм DES с S-блоками, зависящими от ключа 432
12.7. Н а с к о л ь к о с т о е к а л г о р и т м DES в н а с т о я щ е е в р е м я ? 434
Глава 1 3 . Д ругие бл очны е ш и ф р ы 43713.1. А л г о р и т м LU CIFER 43713.2. А л г о р и т м MADRYGA 438
Описание алгоритма Madryga 439 Криптоанализ алгоритма Madryga 441
13.3. А л г о р и т м N ewDES 44113.4. А л г о р и т м FEAL 443
Описание алгоритма FEAL 443 Криптоанализ алгоритма FEAL 446 Патенты 448
13.5. А л г о р и т м REDOC 448 Алгоритм REDOC III 449 Патенты и лицензии 450
13.6. А л г о р и т м LOKI 450 Алгоритм LOKI91 451 Описание алгоритма LOKI91 451 Криптоанализ алгоритма LOKI91 453 Патенты и лицензии 453
13.7. А л г о р и т м ы K H U FU и KHAFRE 454 Алгоритм Khufu 455 Алгорит Khafre 455 Патенты 456
13.8. А л г о р и т м RC2 45613.9. А л г о р и т м IDEA 458
Обзор алгоритма IDEA 459 Описание алгоритма IDEA 459 Скорость IDEA 462 Криптоанализ алгоритма IDEA 462 Режимы работы и варианты IDEA 465 Предостережение 466 Патенты и лицензии 466
13.10. А л г о р и т м ММВ 466 Безопасность алгоритма ММВ 468
13.11. А л г о р и т м CA-1.1 46813.12. А л г о р и т м SKIPJACK 469
18 N . Содержание
Г лава 14. Д р у г и е б л о ч н ы е ш и ф р ы 47314.1. А л г о р и т м ГОСТ 473
Описание алгоритма ГОСТ 473 Криптоанализ алгоритма ГОСТ 476
14.2. А л г о р и т м CAST 47714.3. А л г о р и т м B lo w f i s h 479
Описание алгоритма Blowfish 479 Стойкость алгоритма Blowfish 482
14.4. А л г о р и т м SAFER 483 Описание алгоритма SAFER К-64 483 Алгоритм SAFER К -128 485 Стойкость алгоритма SAFER К-64 485
14.5. А л г о р и т м 3-W a y 486 Описание алгоритма 3-Way 486
14.6. А л г о р и т м CRAB 4871 4 .7 . А л г о р и т м SXAL8/MBAL 48 914.8. А л г о р и т м RC5 48914.9. Д р у г и е б л о ч н ы е а л г о р и т м ы 49114.10. Те о р и я п р о е к т и р о в а н и я б л о ч н ы х ш и ф р о в 492
Сети Фейстеля 493 Простые соотношения 493 Групповая структура 494 Слабые ключи 494 Устойчивость к дифференциальному и линейному криптоанализу 495 Проектирование S-блоков 495 Проектирование блочного шифра 498
14.11. И с п о л ь з о в а н и е о д н о с т о р о н н и х х е ш - ф у н к ц и й 499 Алгоритм Карна 499 Алгоритм Любы—Ракоффа 500 Шифр MDC 501 Безопасность шифров, основанных на односторонних хеш-функциях 502
14.12. В ы б о р б л о ч н о г о а л г о р и т м а 503
Г лава 15. К о м б и н и р о в а н и е б л о ч н ы х ш и ф р ов 50515.1. Д в о й н о е ш и ф р о в а н и е 50515.2. Т р о й н о е ш и ф р о в а н и е 507
Тройное шифрование с двумя ключами 507 Тройное шифрование с тремя ключами 509 Тройное шифрование с минимальным ключом (ТЕМК) 509
Содержание / 19
Режимы тройного шифрования 509Варианты тройного шифрования 511
15.3. У д в о е н и е д л и н ы бло ка 51315.4. Д ру ги е сх е м ы м н о гокра тн ого ш и ф р о в а н и я 513
Двойной OFB/счетчик 514 Метод ECB + OFB 514 Схема xDES* 515 Пятикратное шифрование 517
15.5. У м е н ь ш е н и е д л и н ы к л ю ч а в а л г о р и т м е CD M F 51715.6. О т бе л и в а н и е 51715.7. К а скадн о е п р и м е н е н и е бл о ч н ы х а л го ри тм о в 51815.8. К о м б и н а ц и я н е с к о л ь к и х бл о ч н ы х а лго ри тм о в 519
Глава 1 6 . Г енераторы п севдо случай ны х последовательностей
и п о т о к о в ы е ш и ф ры 521
16.1. Л и н е й н ы е к о н г р у э н т н ы е г е н е р а т о р ы 521 Комбинирование линейных конгруэнтных генераторов 523
16.2. Р е г и с т р ы с д в и г а с л и н е й н о й о б р а т н о й с в я з ь ю 526 Программные реализации регистров LFSR 532
16.3. П р о е к т и р о в а н и е и а н а л и з п о т о к о в ы х ш и ф р о в 534 Линейная сложность 534 Корреляционная стойкость 535 Другие атаки 536
16.4. П о т о к о в ы е ш и ф р ы н а о с н о в е р е г и с т р о в LFSR 536 Генератор Геффе 537 Обобщенный генератор Геффе 538 Генератор Дженнингса 538 Генератор “старт—стоп” Бета—Пайпера 539 Чередующийся генератор “старт-стоп” 540 Двусторонний генератор “старт—стоп” 541 Пороговый генератор 541 Самопрореживающие генераторы 542 Многоскоростной генератор скалярного произведения 542 Суммирующий генератор 544 Генератор DNRSG 544 Каскад Голлманна 544 Сжимающий генератор 545 Самосжимающий генератор 545
16.5. Ш и ф р А5 54616.6. А лгоритм H u g h e s X PD /K PD 547
Содержание
1 6 .7 . А лгоритм N a n o te q 5481 6 .8 . А лгоритм R am b u tan 54816.9. А дди ти вн ы е генераторы 549
Генератор Fish 549 Алгоритм Pike 550 Алгоритм Mush 550
1 6 .1 0 . А лгоритм Д ж и ф ф ор да 5511 6 .1 1 . А л г о р и т м М 5 5216.12. А лгоритм PKZIP 553
Надежность алгоритма PKZIP 554
Глава 1 7 . Д ругие потоко вы е ш и ф р ы и генераторы и с ти н н о
сл у ч а й н ы х п о с л е д о в а т е л ь н о с т е й 555
1 7 .1 . А л г о р и т м RC4 55517.2. А лгоритм SEAL 557
Семейство псевдослучайных функций 557 Описание алгоритма SEAL 558 Надежность алгоритма SEAL 559 Патенты и лицензии 560
17.3. А лгоритм WAKE 5601 7 .4 . Р е г и с т р ы с д в и га с о б р а т н о й с в я з ь ю п о п е р е н о с у 56117.5. П оток ов ы е шифры н а о с н о в е регистров FCSR 570
Каскадные генераторы 570 Комбинированные генераторы FCSR 570 Каскад LFSR/FCSR с суммированием/четностью 571 Чередующиеся генераторы “старт—стоп” 572 Сжимающие генераторы 573
1 7 .6 . Р е г и с т р ы с д в и г а с н е л и н е й н о й о б р а т н о й с в я з ь ю 57317.7. Д р уги е п оток ов ы е шифры 575
Генератор Плесса 575 Генератор на основе клеточного автомата 576 Генератор 1/р 576 Алгоритм crypt( 1) 576 Другие схемы 577
17 .8 . П р о е к т и р о в а н и е п о т о к о в ы х ш и ф р о в н а о с н о в е
теор и и с и с т е м 5771 7 .9 . П р о е к т и р о в а н и е п о т о к о в ы х ш и ф р о в н а о с н о в е
теор и и сл о ж н о с т и 579Генератор псевдослучайных чисел Шамира 579Генератор Блюма—Микали 579
Содержание 21
Генератор RSA 579Генератор Блюма—Блюма—Шуба 580
17.10. Д ру ги е п о дх о ды к п ро е к т и ро в а н и ю п о то к о в ы х ш и ф р о в 581 Шифр “Рип ван Винкль” 582 Рандомизированный потоковый шифр Диффи 582 Рандомизированный потоковый шифр Маурера 583
17 .11 . К а с к а д и з н е с к о л ь к и х п о т о к о в ы х ш и ф р о в 5831 7 .12 . В ы б о р п о то к о в о го ш и ф р а 58417.13. Г е н е р и ро в а н и е н е с к о л ь к и х п о то к о в с п о м о щ ью одного
генератора п с ев д о с л у ч а й н ы х п о с л ед о в а тел ьн о с тей 58417.14. Г ен ера то ры и с т и н н о сл у ч а й н ы х п о с л е д о в а т е л ьн о с т е й 586
Таблицы случайных чисел 586 Использование случайного шума 587 Использование таймера компьютера 589 Измерение задержек клавиатуры 590 Смещения и корреляции 590 Извлеченная случайность 591
Глава 1 8 . О дн о с то ро н н и е х е ш - ф у н к ц и и 59518.1. Основы 595
Длины односторонних хеш-функций 596 Обзор односторонних хеш-функций 597
18.2. А л г о ри т м S n e f r u 598 Криптоанализ алгоритма Snefru 599
18.3. А л го ри т м TV- х еш 599 Криптоанализ алгоритма N-хеш 602
18.4. А л г о ри т м MD4 60218.5. А л г о ри т м MD5 603
Описание алгоритма MD5 603 Стойкость MD5 608
18.6. А л г о ри т м MD2 60818.7. А л г о ри т м SHA 609
Описание алгоритма S НА 610 Стойкость алгоритма S НА 613
18.8. А л г о ри т м R IPE-M D 61418.9. А л го ри т м HAVAL 61418.10. Д ру ги е о д н о с т о р о н н и е х е ш - ф у н к ц и и 61518.11. О д н о с т о р о н н и е х е ш - ф у н к ц и и н а о с н о в е с и м м е т р и ч н ы х
бл о ч н ы х а л го ри тм о в 616Схемы, в которых длина хеш-значения равна длине блока 617
22 N. Содержание
Модификация схемы Дэвиса—Майера 619Схема Пренеля—Босселаерса—Говарца—Вандевалле 620Алгоритм Кискатера—Жиро 620Алгоритм LOKI с удвоенным блоком 621Параллельная схема Дэвиса—Майера 621Тандемная и синхронная схемы Дэвиса—Майера 621Алгоритмы MDC-2 и MDC-4 623Хеш-функция AR 624Хеш-функция ГОСТ 625Другие схемы 625
18.12. И с п о л ь з о в а н и е а л г о р и т м о в с о т к р ы т ы м к л ю ч о м 62618.13. В ы б о р о д н о с т о р о н н е й х е ш - ф у н к ц и и 62618.14. Коды а у т е н т и ф и к а ц и и с о о б щ е н и й 627
Алгоритм СВС-МАС 628 Алгоритм МАА 628 Двунаправленный алгоритм MAC 628 Методы Джунемана 629 Алгоритм RIPE-MAC 629 Алгоритм 1ВС-хеш 630 Односторонняя хеш-функция MAC 630 Алгоритм MAC с использованием потокового шифра 631
Глава 1 9 . А л гор и тм ы с отк ры ты м и к л ю ч а м и 63319.1. Основы 633
Стойкость алгоритмов с открытым ключом 63419.2. А л г о р и т м ы н а о с н о в е з а д а ч и о б у к л а д к е р а н ц а 634
Сверхвозрастающие ранцы 636 Создание открытого ключа из закрытого 637 Шифрование 637 Расшифровка 638 Практические реализации 638 Стойкость ранцевого метода 638 Варианты ранцевых алгоритмов 639 Патенты 639
19.3. А л г о р и т м RSA 640 Аппаратные реализации RSA 643 Скорость работы RSA 644 Программные ускорители 644 Стойкость алгоритма RSA 645 Атака с подобранным шифротекстом на RSA 646 Атака на RSA с использованием общего модуля RSA 647
Содержание / 23
Атака на RSA с использованием малого показателя шифрования 648 Атака на RSA с использованием малого показателя расшифровки 648Выводы 649 Атака на шифрование и цифровую подпись с использованиемалгоритма RSA 649Стандарты 650Патенты 650
19.4. С х е м а П о л и г а —Х е л л м а н а 650 Патенты 651
19.5. С х е м а Р а б и н а 651 Схема Уильямса 652
19.6. С х е м а Э л ь - Г а м а л я 653 Подписи по схеме Эль-Гамаля 653 Шифрование по схеме Эль-Гамаля 655 Быстродействие 656 Патенты 656
19.7. С х е м а М а к Э л и с а 656 Другие алгоритмы, основанные на линейных кодах, исправляющих ошибки 657
19.8. К р и п т о с и с т е м ы н а э л л и п т и ч е с к и х к р и в ы х 65819.9. К р и п т о с и с т е м а LUC 65919 .10 . К р и п т о с и с т е м ы с о т к р ы т ы м к л ю ч о м н а о с н о в е к о н е ч н ы х
а в т о м а т о в 660
Глава 2 0 . А л гор и тм ы ц и ф р о в о й п о д п и с и с отк ры ты м к л ю ч о м 66320.1. А л г о р и т м ц и ф р о в о й п о д п и с и DSA 663
Реакция на заявление 664 Описание DSA 667 Ускоряющие предварительные вычисления 669 Генерация простых чисел DSA 670 Шифрование по схеме Эль-Гамаля с алгоритмом DSA 671 Шифрование по алгоритму RSA с помощью алгоритма DSA 672 Стойкость алгоритма DSA 673 Атаки, направленные на параметр к 674 Опасности общего модуля 674 Скрытый канал в алгоритме DSA 675 Патенты 675
20.2. В а р и а н т ы а л г о р и т м а DSA 67620.3. А л г о р и т м ц и ф р о в о й п о д п и с и ГОСТ 67820.4. С х е м ы ц и ф р о в о й п о д п и с и н а о с н о в е д и с к р е т н ы х л о г а р и ф м о в 679
Содержание
20.5. С х е м а О н г а —Ш н о р р а - Ш а м и р а 68120.6. С х е м а ESIGN 682
Стойкость схемы ESIGN 683 Патенты 684
20.7. К л е т о ч н ы е а в т о м а т ы 68420.8. Д р у г и е а л г о р и т м ы с о т к р ы т ы м к л ю ч о м 684
Гл ава 2 1 . С хем ы и д ен ти ф и к а ц и и 68721.1. С х е м а Ф е й г е —Ф и а т а —Ш а м и р а 687
Упрощенная схема идентификации Фейге—Фиата-Шамира 687 Схема идентификации Фейге—Фиата—Шамира 689 Пример 689 Улучшения протокола 691 Схема подписи Фиата—Шамира 691 Улучшенная схема подписи Фиата—Шамира 693 Другие улучшения 693 Схема идентификации Ота—Окамото 693 Патенты 693
21.2. С х е м а Г и л л у —К и с к а т е 693 Схема идентификации Гиллу—Кискате 694 Схема подписи Гиллу—Кискате 695 Несколько подписей 695
21.3. С х е м а Ш н о р р а 696 Протокол проверки подлинности 696 Протокол цифровой подписи 697 Патенты 698
2 1 .4 . П р е о б р а зо в а н и е с х е м и д е н т и ф и к а ц и и
в с х е м ы подписи 698
Г лава 2 2 . А л гор итм ы о б м е н а к л ю ч а м и 69922.1. А л г о р и т м Д и ф ф и —Х е л л м а н а 699
Алгоритм Диффи—Хеллмана с тремя и более участниками 700 Расширенный алгоритм Диффи—Хеллмана 701 Алгоритм Хьюза 701 Обмен ключом без предварительного обмена данными 702 Патенты 702
22.2. П р о т о к о л “ с т а н ц и я —с т а н ц и я ” 7022 2 .3 .Т р е х п р о х о д н ы й п р о т о к о л Ш а м и р а 7032 2 .4 . П р о т о к о л COMSET 70522.5. П р о т о к о л о б м е н а з а ш и ф р о в а н н ы м и к л ю ч а м и 705
Базовый протокол ЕКЕ 705
Содержание
Реализация протокола ЕКЕ с помощью алгоритма RSA 706 Реализация протокола ЕКЕ с помощьюсхемы Эль-Гамаля 707 Реализация протокола ЕКЕ с помощью алгоритмаДиффи—Хеллмана 707Усовершенствование протокола ЕКЕ 708Расширенный протокол ЕКЕ 708Применение протокола ЕКЕ 709
22.6. З а щ и щ е н н ы е п е р е г о в о р ы о с о г л а с о в а н и и к л ю ч а 71022.7. Р а с п р е д е л е н и е к л ю ч а д л я к о н ф е р е н ц - с в я з и и с е к р е т н о й
ш и р о к о в е щ а т е л ь н о й п е р е д а ч и 711 Распределение ключей для конференции 713 Протокол Татебаяши—Мацузаки—Ньюмена 713
Глава 2 3 . С п ец и а л ьн ы е алгоритм ы для протоколов 71523.1. К р и п т о г р а ф и я с н е с к о л ь к и м и о т к р ы т ы м и к л ю ч а м и 71523.2. А л г о р и т м ы р а з д е л е н и я с е к р е т а 716
Схема интерполяционных многочленов Лагранжа 716 Векторная схема 717 Схема Асмута—Блума 718 Схема Карнина—Грини—Хеллмана 718 Более сложные пороговые схемы 718 Разделение секрета с мошенниками 719
23.3. С к р ы т ы й к а н а л 720 Скрытый канал на основе схемыОнга-Шнорра—Шамира 720Скрытый канал на основе схемы Эль-Гамаля 721Скрытый канал на основе схемы ESIGN 722Скрытый канал на основе схемы DSA 724Уничтожение скрытого канала в схеме DSA 726Другие схемы 727
23.4. Н е о с п о р и м ы е ц и ф р о в ы е п о д п и с и 727 Преобразуемые неоспоримые подписи 729
23.5. Подписи, п о д т в е р ж д а е м ы е д о в е р е н н ы м л и ц о м 73023.6. В ы ч и с л е н и я с з а ш и ф р о в а н н ы м и д а н н ы м и 732
Задача дискретного логарифмирования 73223.7. Ж е р е б ь е в к а с п о м о щ ь ю и д е а л ь н о й м о н е т ы 732
Жеребьевка с помощью идеальной монеты и квадратных корней 732 Жеребьевка с помощью идеальной монеты и возведенияв степень по модулю р 733 Жеребьевка с помощью идеальной монеты и целых чисел Блюма 734
2 6 N. Содержание
2 3 .8 . Односторонние сумматоры 73523.9. Р а с к ры т и е сек рето в п о п р и н ц и п у “ все и л и н и ч е г о ” 73523.10. З а к о н н ы е и о тка зо у с то й ч и вы е к р и п т о с и с т е м ы 739
Законная схема Диффи—Хеллмана 739 Отказоустойчивая схема Диффи—Хеллмана 740
23.11. Д оказательство зн а н и я с н улевы м ра згла ш ен и ем 740 Доказательство знания дискретного логарифма с нулевым разглашением 740 Доказательство способности взломать алгоритм RSA с нулевым разглашением 741 Доказательство с нулевым разглашением того, что п является числом Блюма 742
2 3 .1 2 . С лепые п о д п и с и 7432 3 .1 3 . З а бы вчи ва я п еред ача 74323.14. Т а й н ы е м н о го с то ро н н и е в ы ч и с л е н и я 744
Пример протокола 74523.15. В е ро я тн о с тн о е ш и ф р о в а н и е 74623.16. К вантовая к ри п то гра ф и я 749
Часть IV РЕАЛЬНЫЙ МИР 753
Глава 2 4 . П ри м еры реализац ий 75524.1. П ро то ко л к о м п а н и и IBM для у п ра влен и я
с е к р е т н ы м и кл ю ча м и 755Модификация схемы 756
24.2. С и с те м а M ITREN ET 75724.3. Т е л е ф о н н ы й т е рм и н а л ISDN 758
Ключи 758 Вызов 759
24.4. STU -III 76024.5. П рото ко л K erb er o s 761
Модель Kerberos 761 Как работает Kerberos 762 Удостоверения 763 Сообщения Kerberos версии 5 764 Получение первоначального мандата 764 Получение серверных мандатов 765 Запрос к службе 766 Версия 4 протокола Kerberos 766 Стойкость протокола Kerberos 767
Содержание / 27
Лицензии 76824.6. С и с т е м а K r y p t o K n i g h t 76824.7. С и с т е м а SESAME 7692 4 .8 . О б щ а я к р и п т о г р а ф и ч е с к а я а р х и т е к т у р а IBM 7702 4 .9 . С х е м а п р о в е р к и п о д л и н н о с т и ISO 7 7 1
Сертификаты 772 Протоколы аутентификации 774
2 4 .1 0 . С т а н д а р т РЕМ 776 Документы РЕМ 777 Сертификаты 778 Сообщения РЕМ 778 Безопасность стандарта РЕМ 7 8 1 Стандарт TIS/PEM 783 Программа RIPEM 783
2 4 .11. П р о т о к о л б е з о п а с н о с т и с о о б щ е н и й MSP 7 8 424.12. П р о г р а м м а P r etty G o o d P rivacy ( P G P ) 7852 4 .1 3 . И н т е л л е к т у а л ь н ы е к а р т о ч к и 7882 4 .1 4 . С т а н д а р т ы к р и п т о г р а ф и и с о т к р ы т ы м к л ю ч о м 78924.15. У н и в е р с а л ь н а я с и с т е м а э л е к т р о н н ы х п л а т е ж е й UEPS 7922 4 .1 6 . М и к р о с х е м а C l ip p e r 7942 4 .1 7 . М и к р о с х е м а C a p s t o n e 7972 4 .1 8 . Б е з о п а с н ы й т е л е ф о н A T & T M O D E L 3 6 0 0 T e l e ph o n e
S e c u r it y D ev ice (T S D ) 798
Глава 2 5 . П о л и т и ч е с к и е в о п р о с ы 80125. 1. А г е н т с т в о н а ц и о н а л ь н о й б е з о п а с н о с т и 801
Коммерческая программа ССЕР 80325.2. Н а ц и о н а л ь н ы й ц е н т р к о м п ь ю т е р н о й б е з о п а с н о с т и (NCSC) 80425.3. Н а ц и о н а л ь н ы й и н с т и т у т с т а н д а р т о в и т е х н и к и NIST 80525.4. К о р п о р а ц и я RSA D ata S e c u r it y , I n c . 8092 5 .5 . К о р п о р а ц и я P u b l ic K e y P a r t n e r s 80925.6. А с с о ц и а ц и я LACR 81125.7. К о н с о р ц и у м RIPE 81225.8. П р о е к т CAFE 8122 5 .9 . С т а н д а р т ISO /lEC 9 9 7 9 8132 5 .1 0 . П р о ф е с с и о н а л ь н ы е , п р о м ы ш л е н н ы е
и п р а в о з а щ и т н ы е г р у п п ы 814Центр EPIC 814 Фонд EFF 815 Ассоциация ACM 815
Содержание
Институт IEEE 815Ассоциация SPA 815
2 5 .1 1 . К о м п ь ю т е р н а я с е т ь Sci.c r y p t 8162 5 .1 2 . Ш и ф р о п а н к и 8162 5 .1 3 . П а т е н т ы 8172 5 .1 4 . Э к с п о р т н о е за к о н о д а т е л ь с т в о С Ш А 8172 5 .1 5 . Э к с п о р т и и м п о р т к р и п т о г р а ф и ч е с к и х с р е д с т в з а р у б е ж о м 8262 5 .1 6 . П ра в о в ы е в о п р о с ы 827
П о слесловие М этта Б л ей за 829
Часть V ПРИЛОЖЕНИЕ 833
И схо д н ы е коды 835DES 835LOKI91 846IDEA 853ГОСТ 859BLOWFISH 8643 - W a y 873RC5 879А5 883SEAL 888
Список литературы 897П ред м етн ы й у ка за тел ь 1021