Содержание				
	Предисловие		16		
	Как чихать эту книгу		18		
	Глава 1. Наша философия проектирования		21		
	Обратная сторона производности		22		
	Обратная сторона оснащенности		25		
	Глава 2. Криптография в контексте окружающего мира		26		
	Роль криптографии		27		
	Правило слабого звена		28		
	Противоборствующее окружение		30		
	Практическая паранойя              		31		
	Критика		32		
	Модель угроз		34		
	Криптография — это не решение		36		
	Криптография очень сложна		37		
	Криптография -это самая простая часть		38		
	Рекомендуемая литература		39		
	Глава 3. Введение в криптографию              		40		
	Шифрование		40		
	Принцип Кирхгофа		42		
	Аутентификация		43		
	Шифрование с открытым ключом		45		
	Цифровые подписи		47		
	Инфраструктура открытого ключа		48		
	Типы атак		50		
	Только шифрованный текст		50		
	Известный открытый текст		50		
	Избранный открытый текст		51		
	Избранный шифрованный текст		52		
	Различающие атаки		52		
	Атаки, в основе которых лежит парадокс задачи о днях рождения		53		
	Двусторонняя атака		54		
	Другие типы атак		56		
	Уровень безопасности		56		
	Производительность		57		
	Сложность		59		
	Часть I. Безопасность сообщений		61		
	Глава 4. Блочные шифры		62		
	Что такое блочный шифр?		62		
	Типы атак		63		
	Идеальный блочный шифр		65		
	Определение безопасности блочного шифра		65		
	Четность перестановки		68		
	Современные блочные шифры		70		
	DES		71		
	AES		74		
	Serpent		78		
	Twofish		79		
	Другие финалисты AES		82		
	Атаки с помощью решения уравнений		82		
	Какой блочный шифр выбрать		83		
	Каким должен быть размер ключа		85		
	Глава 5. Режимы работы блочных шифров		87		
	Дополнение		88		
	Электронная шифровальная книга (ЕСВ)		89		
	Сцепление шифрованных блоков (СВС)		90		
	Фиксированный вектор инициализации		90		
	Счетчик		90		
	Случайный вектор инициализации		91		
	Оказия		92		
	Обратная связь по выходу (OFB)		93		
	Счетчик (CTR)		95		
	Новые режимы		97		
	Какой режим выбрать		98		
	Утечка информации		99		
	Вероятность коллизии		101		
	Как бороться с утечкой информации		102		
	О наших вычислениях		103		
	Глава 6. Функции хэширования		104		
	Безопасность функций хэширования		105		
	Современные функции хэширования		107		
	MD5		108		
	SHA-1		109		
	SHA-256, SHA-384 и SHA-512		110		
	Недостатки функций хэширования		111		
	Удлинение сообщения		111		
	Коллизия при частичном хэшировании сообщений		112		
	Исправление недостатков		113		
	Полное исправление		114		
	Более эффективное исправление		115		
	Какую функцию хэширования выбрать		116		
	Работа на будущее		117		
	Глава 7. Коды аутентичности сообщений		118		
	Что такое MAC		118		
	Идеальная функция вычисления MAC		119		
	Безопасность MAC		119		
	СВС-МАС		120		
	НМАС		122		
	НМАС или SHAd?		124		
	UMAC		125		
	Размер значения		125		
	Выбор функции		126		
	Платформенная гибкость		127		
	Нехватка анализа		128		
	Зачем тогда нужен UMAC?		128		
	Какую функцию вычисления MAC выбрать		129		
	Использование MAC		129		
	Глава 8. Безопасный канал общения		132		
	Формулировка проблемы		132		
	Роли		132		
	Ключ		133		
	Сообщения или поток		134		
	Свойства безопасности		134		
	Порядок аутентификации и шифрования		136		
	Структура решения		139		
	Номера сообщений		139		
	Аутентификация		140		
	Шифрование		141		
	Формат пакете		141		
	Детали реализации		142		
	Инициализация		142		
	Отправка сообщения		143		
	Получение сообщения		145		
	Порядок сообщений		146		
	Альтернативы		147		
	Заключение		149		
	Глава 9. Проблемы реализации. Часть I		151		
	Создание правильных программ		153		
	Спецификации		153		
	Тестирование и исправление		154		
	Халатное отношение		155		
	Так что же нам делать?		156		
	Создание безопасного программного обеспечения		157		
	Как сохранить секреты		158		
	Уничтожение состояния		158		
	Файл подкачки		161		
	Кэш		162		
	Удерживание данных в памяти		164		
	Доступ других программ		166		
	Целостность данных		167		
	Что делать		168		
	Качество кеда		169		
	Простота		169		
	Модуляризация		170		
	Утверждения		171		
	Переполнение буфера		172		
	Тестирование		173		
	Атаки с использованием побочных каналов		174		
	Заключение		175		
	Часть II. Согласование ключей		177		
	Глава 10. Генерации случайных чисел		178		
	ЮЛ Истинно случайные числа		179		
	Проблемы использования истинно случайных чисел		180		
	Псевдослучайные числа		181		
	Истинно случайные числа и генераторы псевдослучайных чисел		182		
	Модели атак на генератор псевдослучайных чисел		183		
	Проект Fortuna		185		
	Генератор		185		
	Инициализация		188		
	Изменение начального числа		188		
	Генерация блоков		189		
	Генерация случайных данных		190		
	Скорость работы генератора		191		
	Аккумулятор		191		
	Источники энтропии		192		
	Пулы		1 193		
	Вопросы реализации		196		
	Инициализация		199		
	Получение случайных данных		199		
	Добавление события		201		
	Управление файлом начального числа		202		
	Запись в файл начального числа		203		
	Обновление файла начального числа		203		
	Когда нужно считывать и перезаписывать файл начального числа?		204		
	Архивирование 		204		
	Атомарность операций обновления файловой системы		205		
	Первая загрузка		206		
	Так что же делать?		207		
	Выбор случайных элементов		208		
	Глава 11. Простые числа		210		
	Делимость и простые числа		210		
	Генерация малых простых чисел		213		
	Арифметика по модулю простого числа		215		
	Сложение и вычитание		216		
	Умножение		217		
	Группы и конечные поля		217		
	Алгоритм поиска НОД		219		
	Расширенный алгоритм Евклида		220		
	Вычисления по модулю 2		221		
	Большие простые числа		222		
	Проверка того, является ли число простым		225		
	Оценивание степеней		229		
	Глава 12. Алгоритм Диффи-Хеллмана 231				
	Группы		232		
	Базовый алгоритм Диффи-Хеллмана		233		
	Атака посредника		235		
	"Подводные камни" реализации		237		
	Надежные простые числа		238		
	Использование подгрупп меньшего размера		239		
	Размер		240		
	Практические правила		243		
	Что может пойти не так		244		
	Глава 13. Алгоритм RSА		247		
	Введение		247		
	Китайская теорема об остатках		248		
	Формула Гарнера		249		
	Обобщение		250		
	Использование		250		
	Заключение		252		
	Умножение по модулю n		252		
	Определение RSA		253		
	Создание цифровой подписи с помощью RSA		254		
	Открытые показатели степеней		254		
	Закрытый ключ		255		
	Размер n		257		
	Генерация ключей RSA		257		
	'Подводные камни" использования RSA		259		
	Шифрование		261		
	Подписи		264		
	Глава 14. Введение в криптографические протоколы		268		
	Роли		268		
	Доверие		269		
	Риск		271		
	Стимул		271		
	Доверие в криптографических протоколах		274		
	Сообщения и действия		275		
	Транспортный уровень		275		
	Идентификация протоколов и сообщений		276		
	Кодирование и анализ сообщений		277		
	Состояние выполнения протокола		278		
	Ошибки		279		
	Воспроизведение и повторение		281		
	Глава 15. Протокол согласования ключей		284		
	Окружение		284		
	Первая попытка		285		
	Пусть всегда будут протоколы		287		
	Соглашение об аутентификации		288		
	Вторая попытка		289		
	Третья попытка		290		
	Окончательная версия протокола		292		
	Анализ протокола с различных точек зрения		294		
	Точка зрения пользователя А		294		
	Точка зрения пользователя Б		295		
	Точка зрения злоумышленника		295		
	Взлом ключа		297		
	Вычислительная сложность протокола		298		
	Методы оптимизации		299		
	Сложность протокола		299		
	Небольшое предупреждение		301		
	Согласование ключей с помощью пароля		301		
	Глава 16. Проблемы реализации. Часть II		303		
	Арифметика больших чисел		303		
	Вупинг		305		
	Проверка вычислений алгоритма DH		309		
	Проверка шифрования RSA		310		
	Проверка цифровых подписей RSA		310		
	Заключение		311		
	Быстрое умножение		311		
	Атаки с использованием побочных каналов		313		
	Меры предосторожности		314		
	Протоколы		316		
	Выполнение протоколов поверх безопасного канала общения		316		
	Получение сообщения		317		
	Время ожидания		319		
	Часть III. Управление ключами		321		
	Глава 17. Часы		322		
	Зачем нужны часы		322		
	Срок действия		322		
	Уникальные значения		322		
	Монотонность		323		
	Выполнение транзакций в режиме реального времени		324		
	Использование микросхемы датчика времени		324		
	Виды угроз		325		
	Перевод часов назад		325		
	Остановка часов		326		
	Перевод часов вперед		327		
	Создание надежных часов		328		
	Проблема одного и того же состояния		329		
	Время		331		
	Заключение		332		
	Глава 18. Серверы ключей		333		
	Основная идея		334		
	Kerberos		334		
	Решения попроще		335		
	Безопасное соединение		336		
	Создание ключа		337		
	Обновление ключа		337		
	Другие свойства		338		
	Что выбрать		338		
	Глава 19. PKI: красивая места		339		
	Краткий обзор инфраструктуры открытого ключа		339		
	Примеры инфраструктуры открытого ключа		340		
	Всеобщая инфраструктура открытого ключа		340		
	Доступ к виртуальным частным сетям		341		
	Электронные платежи		341		
	Нефтеперегонный завод		341		
	Ассоциация кредитных карт		342		
	Дополнительные детали		342		
	Многоуровневые сертификаты		342		
	Срок действия		344		
	Отдельный центр регистрации		344		
	Заключение		345		
	Глава 20. PKI: жестокая реальность		347		
	Имена		347		
	Полномочный орган		350		
	Доверие		351		
	Непрямая авторизация		352		
	Прямая авторизация		353		
	Системы мандатов		354		
	Измененная мечта		357		
	Отзыв		358		
	Список отзыва		358		
	Быстрое устаревание		360		
	Отзыв обязателен		360		
	Где может пригодиться инфраструктура открытого ключа		361		
	Что выбрать		363		
	Глава 21. Практические аспекты PKI		364		
	Формат сертификата		364		
	Язык разрешений		364		
	Ключ корневого ЦС		365		
	Жизненный цикл ключа		366		
	Почему ключи изнашиваются		369		
	Так что же нам делать?		370		
	Глава 22. Хранение секретов		371		
	Диск		371		
	Человеческая память		372		
	Солим и растягиваем		374		
	Портативное хранилище		377		
	Идентификатор безопасности		378		
	Безопасный пользовательский интерфейс		379		
	Биометрика		381		
	Однократная регистрация		382		
	Риск утраты		383		
	Совместное владение секретом		384		
	Уничтожение секретов		385		
	Бумага		385		
	Магнитное хранилище		386		
	Полупроводниковые записывающие устройства		388		
	Часть IV. Разное		389		
	Глава 23. Стандарты		390		
	Процесс стандартизации 		390		
	Стандарт		392		
	Функциональность 		392		
	Безопасность		393		
	SSL		394		
	AES: стандартизация на конкурсной основе		395		
	Глава 24. Патенты 		397		
	Прототип 		397		
	Расширения 		398		
	Расплывчатость описаний 		399		
	Чтение патентов 		399		
	Лицензирование 		400		
	Защищающие патенты		402		
	Как исправить систему патентования 		402		
	Отречение		403		
	Глава 25. Привлечение экспертов		404		
	Благодарности 		409		
	Список основных источников информации		410		
	Предметный указатель		418