О криптографии всерьез

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

В этом практическом руководстве по современному шифрованию анализируются фундаментальные математические идеи, лежащие в основе криптографии. Рассказывается о шифровании с аутентификацией, безопасной случайности, функциях хеширования, блочных шифрах и методах криптографии с открытым ключом, в частности RSA и криптографии на эллиптических кривых. Вы узнаете о том, как выбирать наилучший алгоритм или протокол, как избежать типичных ошибок безопасности и как задавать правильные вопросы поставщику. В заключительной части книги рассматриваются темы повышенной сложности, например TLS, а также обсуждается будущее криптографии в эпоху квантовых компьютеров. В каждой главе приводятся примеры работы алгоритмов и материалы для дополнительного изучения. Издание будет полезно как профессиональным разработчикам, так и тем, кто хочет разобраться в основах современной криптографии и успешно применять методы шифрования.

Author(s): Жан-Филипп Омассон
Edition: 1
Publisher: ДМК Пресс
Year: 2021

Language: Russian
Commentary: Vector PDF
Pages: 328
City: М.
Tags: Security; Cryptography; Random Number Generation; Encryption; Quantum Computing; Block Ciphers; Stream Ciphers; Hash Functions; RSA Cryptosystem; Public-Key Cryptography; Post-Quantum Cryptography; Computational Complexity; Elliptic Curve Cryptography; Private-Key Cryptography; Elementary; Advanced Encryption Standard; Diffie-Hellman Function; TLS

От издательства
Вступительное слово
Предисловие
Список аббревиатур
Глава 1. Шифрование
Классические шифры
Шифр Цезаря
Шифр Виженера
Основы
Как работают шифры
Перестановка
Режим работы
Почему классические шифры небезопасны
Идеальное шифрование: одноразовый блокнот
Шифрование с помощью одноразового блокнота
Почему одноразовый блокнот безопасен?
Безопасность шифрования
Модели атак
Цели безопасности
Аспекты безопасности
Асимметричное шифрование
Дополнительные функции шифров
Шифрование с аутентификацией
Шифрование с сохранением формата
Настраиваемое шифрование
Полностью гомоморфное шифрование
Шифрование, допускающее поиск
Какие возможны проблемы
Слабый шифр
Неправильная модель
Для дополнительного чтения
Глава 2. Случайность
Случайное или неслучайное?
Случайность как распределение вероятностей
Энтропия: мера неопределенности
Генераторы случайных и псевдослучайных чисел
Как работает PRNG
Вопросы безопасности
PRNG Fortuna
Криптографически стойкие и нестойкие PRNG
Полезность статистических тестов
PRNG на практике
Генерирование случайных битов в системах на базе Unix
Функция CryptGenRandom() в Windows
Аппаратный PRNG: RDRAND в микропроцессорах Intel
Какие возможны проблемы
Недостаточная энтропия на этапе начальной загрузки
Плохие источники энтропии
Криптографически нестойкие PRNG
Дефектная выборка при стойком PRNG
Для дополнительного чтения
Глава 3. Криптографическая безопасность
Определение невозможного
Безопасность в теории: информационная безопасность
Безопасность на практике: вычислительная безопасность
Количественное измерение безопасности
Измерение безопасности в битах
Полная стоимость атаки
Выбор и вычисление уровней безопасности
Достижение безопасности
Доказуемая безопасность
Эвристическая безопасность
Генерирование ключей
Генерирование симметричных ключей
Генерирование асимметричных ключей
Защита ключей
Какие возможны проблемы
Короткие ключи для поддержки унаследованных приложений
Ложное чувство безопасности
Для дополнительного чтения
Глава 4. Блочные шифры
Что такое блочный шифр?
Цели безопасности
Атака по кодовой книге
Размер блока
Как устроены блочные шифры
Раунды блочного шифра
Подстановочно-перестановочные сети
Сдвиговая атака и ключи раунда
Схемы Фейстеля
Шифр Advanced Encryption Standard (AES)
Внутреннее устройство AES
AES в действии
Реализация AES
Табличные реализации
Машинные команды
Безопасен ли AES?
Режимы работы
Режим электронной кодовой книги (ECB)
Режим сцепления блоков шифртекста (CBC)
Как зашифровать любое сообщение в режиме CBC
Режим счетчика (CTR)
Какие возможны проблемы
Атаки типа встречи посередине
Атаки на оракул дополнения
Для дополнительного чтения
Глава 5. Потоковые шифры
Как работают потоковые шифры
Потоковые шифры с хранимым состоянием и на основе счетчика
Аппаратные потоковые шифры
Регистры сдвига с обратной связью
Grain-128a
A5/1
Программные потоковые шифры
RC4
Salsa20
Какие возможны проблемы
Повторное использование одноразового числа
Дефектная реализация RC4
Слабые аппаратно реализованные шифры
Для дополнительного чтения
Глава 6. Функции хеширования
Безопасные хеш-функции
И снова непредсказуемость
Стойкость к восстановлению прообраза
Стойкость к коллизиям
Нахождение коллизий
Построение функций хеширования
Хеш-функции на основе сжатия: построение Меркла–Дамгора
Хеш-функции на основе перестановок: функции губки
Семейство хеш-функций SHA
SHA-1
SHA-2
Конкурс на звание SHA-3
Keccak (SHA-3)
Функция хеширования BLAKE 2
Какие возможны проблемы
Атака удлинением сообщения
Обман протоколов доказательства хранения
Для дополнительного чтения
Глава 7. Хеширование с секретным ключом
Имитовставки (MAC)
MAC как часть безопасной системы связи
Атаки с подделкой и подобранным сообщением
Атаки повторным воспроизведением
Псевдослучайные функции (PRF)
Безопасность PRF
Почему PRF более стойкие, чем MAC
Создание хешей с секретным ключом по хешам без ключа
Построение секретного префикса
Построение HMAC
Построение секретного суффикса
Обобщенная атака против MAC на основе функций хеширования
Создание функций хеширования на основе блочных шифров: CMAC
Взлом CBC-MAC
Исправление CBC-MAC
Проектирование специализированных имитовставок
Poly1305
SipHash
Какие возможны проблемы
Атаки с хронометражем на верификацию MAC
Когда губки протекают
Для дополнительного чтения
Глава 8. Шифрование с аутентификацией
Шифрование с аутентификацией с использованием MAC
Шифрование-и-MAC
MAC-затем-шифрование
Шифрование-затем-MAC
Шифры с аутентификацией
Шифрование с аутентификацией и ассоциированными данными
Какой шифр с аутентификацией считать хорошим?
Предотвращение предсказуемости с помощью одноразовых чисел
AES-GCM: стандартный шифр с аутентификацией
Внутреннее устройство GCM: CTR и GHASH
Безопасность GCM
Эффективность GCM
OCB: шифр с аутентификацией, более быстрый, чем GCM
Безопасность OCB
Внутреннее устройство OCB
Эффективность OCB
SIV: самый безопасный шифр с аутентификацией?
AEAD на основе перестановки
Какие возможны проблемы
AES-GCM и слабые хеш-ключи
AES-GCM и короткие жетоны
Для дополнительного чтения
Глава 9. Трудные задачи
Вычислительная трудность
Измерение времени работы
Полиномиальное и суперполиномиальное время
Классы сложности
Недетерминированное полиномиальное время
NP-полные задачи
Задача о равенстве P и NP
Задача факторизации
Факторизация больших чисел на практике
Является ли задача факторизации NP-полной?
Задача о дискретном логарифме
Что такое группа?
Трудная задача
Какие возможны проблемы
Когда разложить на множители легко
Небольшие трудные задачи трудными не являются
Для дополнительного чтения
Глава 10. RSA
Математические основания RSA
Перестановка с потайным входом в RSA
Генерирование ключей и безопасность RSA
Шифрование с помощью RSA
Взлом RSA-шифрования по учебнику и податливость
Стойкое RSA-шифрование: OAEP
Подписание с помощью RSA
Взлом RSA-подписей по учебнику
Стандарт цифровой подписи PSS
Подписи на основе полного хеша домена
Реализации RSA
Алгоритм быстрого возведения в степень
Выбор малых показателей степени для ускорения операций с открытым ключом
Китайская теорема об остатках
Какие возможны проблемы
Атака Bellcore на RSA-CRT
Разделение закрытых показателей степени или модулей
Для дополнительного чтения
Глава 11. Протокол Диффи–Хеллмана
Функция Диффи–Хеллмана
Проблемы протоколов Диффи–Хеллмана
Вычислительная задача Диффи–Хеллмана
Другие задачи Диффи–Хеллмана
Задача Диффи–Хеллмана о распознавании
Протоколы совместной выработки ключей
Пример протокола выработки ключа, не опирающегося на DH
Модели атак на протоколы совместной выработки ключей
Производительность
Протоколы Диффи–Хеллмана
Анонимный протокол Диффи–Хеллмана
Протокол Диффи–Хеллмана с аутентификацией
Протокол Менезеса–Кью–Вэнстоуна
Какие возможны проблемы
Пренебрежение хешированием разделяемого секрета
Небезопасные параметры группы
Унаследованный протокол Диффи–Хеллмана в TLS
Для дополнительного чтения
Глава 12. Эллиптические кривые
Что такое эллиптическая кривая?
Эллиптические кривые над множеством целых чисел
Сложение и умножение точек
Группы эллиптических кривых
Задача ECDLP
Протокол совместной выработки ключа Диффи–Хеллмана над эллиптическими кривыми
Подписание с помощью эллиптических кривых
Шифрование с помощью эллиптических кривых
Выбор кривой
Кривые, рекомендованные NIST
Другие кривые
Кривая Curve25519
Какие возможны проблемы
ECDSA с недостаточной случайностью
Взлом ECDH с помощью другой кривой
Для дополнительного чтения
Глава 13. Протокол TLS
Целевые приложения и требования
Набор протоколов TLS
Семейство протоколов TLS и SSL: краткая история
TLS в двух словах
Сертификаты и удостоверяющие центры
Протокол записи
Протокол подтверждения связи
Криптографические алгоритмы TLS 1.3
Улучшения TLS 1.3 по сравнению с TLS 1.2
Возобновление сеанса
Защита от понижения версии
Квитирование с одним периодом кругового обращения
Стойкость TLS
Аутентификация
Секретность прошлого
Какие возможны проблемы
Скомпрометированный сервер
Скомпрометированный удостоверяющий центр
Дефекты реализации
Скомпрометированный клиент
Для дополнительного чтения
Глава 14. Квантовая и постквантовая криптография
Как работают квантовые компьютеры
Квантовые биты
Квантовые вентили
Квантовое ускорение
Экспоненциальное ускорение и задача Саймона
Угроза со стороны алгоритма Шора
Решение задачи факторизации с помощью алгоритма Шора
Алгоритм Гровера
Алгоритм Шора и задача о дискретном логарифме
Почему так трудно построить квантовый компьютер?
Постквантовые криптографические алгоритмы
Криптография на основе кодов
Криптография на основе решеток
Криптография на основе многомерных систем
Криптография на основе функций хеширования
Какие возможны проблемы
Непонятный уровень безопасности
Забегая вперед: что, если уже слишком поздно?
Проблемы реализации
Для дополнительного чтения
Предметный указатель