Фергюсон Н., Шнайер Б. Практическая криптография ОНЛАЙН

Нильс Фергюсон, Брюс Шнайер. Практическая Криптография. — М., Изд. Вильямс, 2005. — 416 стр.
В современном деловом мире вопрос безопасности компьютерных систем приобретает решающее значение. Проигнорировав его, вы лишаете себя возможности заработать деньги, расширить свой бизнес, а, следовательно, ставите под угрозу само существование вашей компании. Одной из наиболее многообещающих технологий, позволяющих обеспечить безопасность в киберпространстве, является криптография.
Данная книга, написанная всемирно известными специалистами в области криптографии, представляет собой уникальное в своем роде руководство по практической разработке криптографической системы, устраняя тем самым досадный пробел между теоретическими основами криптографии и реальными криптографическими приложениями.
Содержание
Предисловие 16
Как читать эту книгу 18
Глава 1. Наша философия проектирования 21
1.1 Обратная сторона производительности 22
1.2 Обратная сторона оснащенности 25
Глава 2. Криптография в контексте окружающего мира 26
21 Роль криптографии 27
2.2 Правило слабого звена 28
2.3 Противоборствующее окружение 30
2.4 Практическая паранойя 31
2.4.1 Критика 32
2.5 Модель угроз 34
2.6 Криптография — это не решение 36
2.7 Криптография очень сложна 37
2.8 Криптография — это самая простая часть 38
2.9 Рекомендуемая литература 39
Глава 3. Введение » криптографию 40
3.1 Шифрование 40
3.1.1 Принцип Кирхгофа 42
3.2 Аутентификация 43
3.3 Шифрование с открытым ключом 45
3.4 Цифровые подписи 47
3.5 Инфраструктура открытого ключа 48
3.6 Типы атак 50
3.6.1 Только шифрованный текст 50
3.6.2 Известный открытый текст 50
3.6.3 Избранный открытый текст 51
3.6.4 Избранный шифрованный текст 52
3.6.5 Различающие атаки 52
3.6.6 Атаки в основе которых лежит парадокс задачи
о днях рождения 53
3.6.7 Двусторонняя атака 54
3.6.8 Другие типы атак 56
3.7 Уровень безопасности 56
3.8 Производительность 57
3.9 Сложность 59
Часть I. Безопасность сообщений 61
Глава 4. Блочные шифры h 62
4.1 Что такое блочный шифр? 62
4.2 Типы атак 63
4.3 Идеальный блочный шифр 65
4.4 Определение безопасности блочного шифра 65
4.4.1 Четность перестановки 68
4.5 Современные блочные шифры 70
4.5.1 DES 71
4.5.2 AES 74
4.5.3 Serpent 78
4.5.4 Twofish 79
4.5.5 Другие финалисты AES 82
4.5.6 Атаки с помощью решения уравнений 82
4.5.7 Какой блочный шифр выбрать 83
4.5.8 Каким должен быть размер ключа 85
Глава 5. Режимы работы блочных шифров 87
5.1 Дополнение 88
5.2 Электронная шифровальная книга (ЕСВ) 89
5.3 Сцепление шифрованных блоков (СВС) 90
5.3.1 Фиксированный вектор инициализации 90
5.3.2 Счетчик 90
5.3.3 Случайный вектор инициализации 91
5.3.4 Оказия 92
5.4 Обратная связь по выходу (OFB) 93
5.5 Счетчик (CTR) 95
5.6 Новые режимы 97
5.7 Какой режим выбрать 98
5.8 Утечка информации 99
5.8.1 Вероятность коллизии 101
5.8.2 Как бороться с утечкой информации 102
5.8.3 О наших вычислениях 103
Глава 6. Функции хэширования 104
6.1 Безопасность функций хэширования 105
6.2 Современные функции хэширования 107
6.2.1 MD5 108
6.2.2 SHA-1 109 6.2 3 SHA-256, SHA-384 и SHA-512 110
6.3 Недостатки функций хэширования 111
6.3.1 Удлинение сообщения 111
6.3.2 Коллизия при частичном хэшировании сообщений 112
6.4 Исправление недостатков 113 6.41 Полное исправление 114
6.4.2 Более эффективное исправление 115
6.5 Какую функцию хэширования выбрать 116
6.6 Работа на будущее 117
Глава 7. Коды аутентичности сообщений 118
7.1 Что такое MAC 118
7.2 Идеальная функция вычисления MAC 119
7.3 Безопасность MAC 119
7.4 СВС-МАС 120
7.5 НМАС 122
7.5.1 НМАС или SHAd? 124
7.6 UMAC 125 7.61 Размер значения 125
7.6.2 Выбор функции 126
7.6.3 Платформенная гибкость 127
7.6.4 Нехватка анализа 128
7.6.5 Зачем тогда нужен UMAC? 128
7.7 Какую функцию вычисления MAC выбрать 129
7.8 Использование MAC 129
Глава 8. Безопасный канал общения 132
8.1 Формулировка проблемы 132
8.1.1 Роли 132
8.1.2 Ключ 133
8.1.3 Сообщения или поток 134
8.1.4 Свойства безопасности 134
8.2 Порядок аутентификации и шифровании 136
8.3 Структура решения 139
8.3.1 Номера сообщений 139
8.3.2 Аутентификация 140
8.3.3 Шифрование 141
8.3.4 Формат пакета 141
8.4 Детали реализации 142
8.4.1 Инициализация 142
8.4.2 Отправка сообщения 143
8.4.3 Получение сообщения 145
8.4.4 Порядок сообщений 146
8.5 Альтернативы 147
8.6 Заключение 149
Глава 9. Проблемы реализации. Часть I 151
9.1 Создание правильных программ 153
9.1.1 Спецификации 153
9.1.2 Тестирование и исправление 154
9.1.3 Халатное отношение 155
9.1.4 Так что же нам делать? 156
9.2 Создание безопасного программного обеспечения 157
9.3 Как сохранить секреты 158
9.3.1 Уничтожение состояния 158
9.3.2 Файл подкачки 161
9.3.3 Кэш 162
9.3.4 Удерживание данных в памяти 164
9.3.5 Доступ других программ 166
9.3.6 Целостность данных 167
9.3.7 Что делать 168
9.4 Качество кода 169
9.4.1 Простота 169
9.4.2 Модуляризация 170
9.4.3 Утверждения 171
9.4.4 Переполнение буфера 172
9.4.5 Тестирование 173
9.5 Атаки с использованием побочных каналов 174
9.6 Заключение 175
Часть II. Согласование ключей: 177
Глава 10. Генерация случайных чисел 178
10.1 Истинно случайные числа 179
10.1.1 Проблемы использования истинно случайных чисел 180
10.1.2 Псевдослучайные числа 181
10.1.3 Истинно случайные числа и генераторы псевдослучайных чисел 182
10.2 Модели атак на генератор псевдослучайных чисел 183
10.3 Проект Fbrtuna 185
10.4 Генератор 185
10.4.1 Инициализация 188
10.4.2 Изменение начального числа 188
10.4.3 Генерация блоков 189
10.4.4 Генерация случайных данных 190
10.4.5 Скорость работы генератора 191
10.5 Аккумулятор 191
10.5.1 Источники энтропии 192
10.5.2 Пулы 1 193
10 5.3 Вопросы реализации 196
10.5.4 Инициализация 199
10.5.5 Получение случайных данных 199
10.5.6 Добавление события 201
10.6 Управление файлом начального числа 202
10.6 1 Запись в файл начального числа 203
10.6.2 Обновление файла начального числа 203
10.6.3 Когда нужно считывать и перезаписывать файл начального числа? 204
10.6.4 Архивирование 204
10.6 5 Атомарность операций обновления файловой системы 205
10.6 6 Первая загрузка 206
10.7 Так что же делать? 207
10.8 Выбор случайных элементов 208
Глава 11. Простые числа 210
11.1 Делимость и простые числа 210
11.2 Генерация малых простых чисел 213
11.3 Арифметика по модулю простого числа 215
11.3.1 Сложение и вычитание 216
11.3.2 Умножение 217
11.3.3 Группы и конечные поля 217
11.3.4 Алгоритм поиска НОД 219
11.3.5 Расширенный алгоритм Евклида 220
11.3.6 Вычисления по модулю 2 221
11.4 Большие простые числа 222
11.4.1 Проверка того, является ли число простым 225
11.4.2 Оценивание степеней 229
Глава 12. Алгоритм Диффи-Хеялмана 231
12.1 Группы 232
12.2 Базовый алгоритм Диффи-Хеллмана 233
12.3 Атака посредника 235
12.4 «Подводные камни» реализации 237
12.5 Надежные простые числа 238
12.6 Использование подгрупп меньшего размера < 239 12.7 Размер р 240 12.8 Практические правила 243 12.9 Что может пойти не так 244 Глава 13. Алгоритм RSA 247 13.1 Введение 247 13.2 Китайская теорема об остатках 248 13.2.1 Формула Гарнера 249 13.2.2 Обобщение 250 13.2.3 Использование 250 13.2 4 Заключение 252 13.3 Умножение по модулю n 252 13.4 Определение RSA 253 13.4.1 Создание цифровой подписи с помощью RSA 254 13.4 2 Открытые показатели степеней 254 13 4.3 Закрытый ключ 255 13.4.4 Размер n 257 13.4.5 Генерация ключей RSA 257 13.5 "Подводные камни" использования RSA 259 13.6 Шифрование 261 13.7 Подписи 264 Глава 14. Введшие в криптографические протоколы 268 14.1 Роли 268 14.2 Доверие 269 14.2.1 Риск 271 14.3 Стимул 271 14.4 Доверие в криптографических протоколах 274 14.5 Сообщения и действия 275 14.5.1 Транспортный уровень 275 14.5.2 Идентификация протоколов и сообщений 276 14.5.3 Котирование и анализ сообщений 277 14.5 4 Состояние выполнения протокола 278 14.5.5 Ошибки 279 14.5.6 Воспроизведение и повторение 281 Глава 15. Протокол согласования ключей 284 15.1 Окружение 284 15.2 Первая попытка 285 15.3 Пусть всегда будут протоколы! 287 15.4 Соглашение об аутентификации 288 15.5 Вторая попытка 289 15.6 Третья попытка 290 15.7 Окончательная версии протокола 292 15.8 Анализ протокола с различных точек зрения 294 15.8.1 Точка зрения пользователя А 294 15.8.2 ТЬчка зрения пользователя Б 295 15.8.3 Точка зрения злоумышленника 295 15.8.4 Взлом ключа 297 15.9 Вычислительная сложность протокола 298 15.9.1 Методы оптимизации 299 15.10 Сложность протокола 299 15.11 Небольшое предупреждение 301 15.12 Согласование ключей с помощью пароля 301 Глава 16. Проблемы реализации. Часть II 303 16.1 Арифметика больших чисел 303 16.1.1 Вупинг 305 16.1.2 Проверка вычислений алгоритма DH 309 16.1.3 Проверка шифрования RSA 310 16.1.4 Проверка цифровых подписей RSA 310 16.1.5 Заключение 311 16.2 Быстрое умножение 311 16.3 Атаки с использованием побочных каналов 313 16.3.1 Меры предосторожности 314 16.4 Протоколы 316 16.4.1 Выполнение протоколов поверх безопасного канала общения 316 16.4.2 Получение сообщения 317 16.4.3 Время ожидания 319 Часть III. Управление ключами 321 Глава 17. Часы 322 17.1 Зачем нужны часы 322 17.1.1 Срок действия 322 17.1.2 Уникальные значения 322 17.1.3 Монотонность 323 17.1.4 Выполнение транзакций в режиме реального времени 324 17.2 Использование микросхемы датчика времени 324 17.3 Виды угроз 325 17.3.1 Перевод часов назад 325 17.3.2 Остановка часов 326 17.3.3 Перевод часов вперед 327 17.4 Создание надежных часов 328 17.5 Проблема одного и того же состоянии 329 17.6 Время 331 17.7 Заключение 332 Глава 18. Серверы ключей 333 18.1 Основная идея 334 18.2 Kerberos 334 18.3 Решения попроще 335 18.3.1 Безопасное соединение 336 18.3.2 Создание ключа 337 18.3.3 Обновление ключа 337 18.3.4 Другие свойства 338 18.4 Что выбрать 338 Глава 19. PKI: красивая мечта 339 19.1 Краткий обзор инфраструктуры открытого ключа 339 19.2 Примеры инфраструктуры открытого ключа 340 19.2.1 Всеобщая инфраструктура открытого ключа 340 19.2.2 Доступ к виртуальным частным сетям 341 19.2.3 Электронные платежи 341 19.2.4 Нефтеперегонный завод 341 19.2.5 Ассоциация кредитных карт 342 19.3 Дополнительные детали 342 19.3.1 Многоуровневые сертификаты 342 19.3.2 Срок действия 344 19.3.3 Отдельный центр регистрации 344 19.4 Заключение 345 Глава 20. PKI: жестокая реальность 347 20.1 Имена 347 20.2 Полномочный орган 350 20.3 Доверие 351 20.4 Непрямая авторизация 352 20.5 Прямая авторизация 353 20.6 Системы мандатов 354 20.7 Измененная мечта 357 20.8 Отзыв 358 20.8.1 Список отзыва 358 20.8.2 Быстрое устаревание 360 20.8.3 Отзыв обязателен 360 20.9 Где может пригодиться инфраструктура открытого ключа 361 20.10 Что выбрать 363 Глава 21. Практические аспекты PKI 364 21.1 Формат сертификата 364 21.1.1 Язык разрешений 364 21.1.2 Ключ корневого ЦС 365 21.2 Жизненный цикл ключа 366 21.3 Почему ключи изнашиваются 369 21.4 Так что же нам делать? 370 Глава 22. Хранение секретов 371 22.1 Диск 371 22.2 Человеческая память 372 22.2.1 Солим и растягиваем t 374 22.3 Портативное хранилище 377 22.4 Идентификатор безопасности 378 22.5 Безопасный пользовательский интерфейс 379 22.6 Биометрика 381 22.7 Однократная регистрация 382 22.8 Риск утраты 383 22.9 Совместное владение секретом 384 22.10 Уничтожение секретов 385 22.10.1 Бумага 385 22.10.2 Магнитное хранилище 386 22.10.3 Полупроводниковые записывающие устройства 388 Часть IV. Разное 389 Глава 23. Стандарты 390 23.1 Процесс стандартизации 390 23.1.1 Стандарт 392 23.1.2 Функциональность 392 23.1.3 Безопасность 393 23.2 SSL 394 23.3 AES: стандартизация на конкурсной основе 395 Глава 24. Патенты 397 24.1 Прототип 397 24.2 Расширения 398 24.3 Расплывчатость описаний 399 24.4 Чтение патентов 400 24.5 Лицензирование 400 24.6 Защищающие патенты 402 24.7 Как исправить систему патентования 402 24.8 Отречение 403 Глава 25. Привлечение экспертов 404 Список основных источников информации 410 Предметный указатель 418

Поделиться ссылкой:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • В закладки Google
  • Яндекс.Закладки
  • Сто закладок
  • Blogger
  • Блог Li.ру
  • Блог Я.ру
  • Одноклассники
  • RSS

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Наш сайт находят по фразам:

×