25
ПРИКЛАДНАЯ КРИПТОГРА Протоколы, алгоритмы и исходные коды на языке С БРЮС ШНАЙЕР W iley

ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

ПРИКЛАДНАЯ КРИПТОГРА

Протоколы, алгоритмы и исходные коды на языке С

БРЮС ШНАЙЕР

W il e y

Page 2: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Оглавление

Предисловие 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

Page 3: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

6 Оглавление

Гпава 19. Алгоритмы с открытыми ключами 633Бгава 20. Алгоритмы цифровой подписи с открытым ключом 663Гпава 21. Схемы идентификации 687Гпава 22. Алгоритмы обмена ключами 699Гпава 23. Специальные алгоритмы для протоколов 715

Часть IV РЕАЛЬНЫЙ МИР 753

Гпава 24. Примеры реализаций 755Глава 25. Политические вопросы 801Послесловие Мэтта Блейза 829

Часть V ПРИЛОЖЕНИЕ 833

Исходные коды 835Список литературы 897Предметный указатель 1021

Page 4: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание

Предисловие 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

Page 5: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 6: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание / 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

Page 7: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 8: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание / Т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

Page 9: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 10: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание 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

Page 11: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 12: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание у 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

Page 13: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 14: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание 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

Page 15: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 16: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание / 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

Page 17: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание

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

Page 18: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание 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

Page 19: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 20: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание / 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

Page 21: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание

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

Page 22: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание

Реализация протокола ЕКЕ с помощью алгоритма 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

Page 23: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

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

Page 24: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание / 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

Page 25: ПРИКЛАДНАЯ КРИПТОГРА · 2020-01-13 · Использование алгоритмов 325 10.1. Выбор алгоритма 326 Экспорт алгоритмов

Содержание

Институт 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