О криптографии всерьез
Покупка
Новинка
Тематика:
Криптография
Издательство:
ДМК Пресс
Автор:
Омассон Жан-Филипп
Перевод:
Слинкин Алексей Александрович
Год издания: 2022
Кол-во страниц: 328
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-97060-975-0
Артикул: 833981.01.99
Доступ онлайн
В корзину
В этом практическом руководстве по современному шифрованию анализируются фундаментальные математические идеи, лежащие в основе криптографии. Рассказывается о шифровании с аутентификацией, безопасной случайности, функциях хеширования, блочных шифрах и методах криптографии с открытым ключом, в частности RSA и криптографии на эллиптических кривых. Вы узнаете о том, как выбирать наилучший алгоритм или протокол, как избежать типичных ошибок безопасности и как задавать правильные вопросы поставщику. В заключительной части книги рассматриваются темы повышенной сложности, например TLS, а также обсуждается будущее криптографии в эпоху квантовых компьютеров. В каждой главе приводятся примеры работы алгоритмов и материалы для дополнительного изучения.
Издание будет полезно как профессиональным разработчикам, так и тем, кто хочет разобраться в основах современной криптографии и успешно применять методы шифрования.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационная безопасность
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационная безопасность (сводная)
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Криптография
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Жан-Филипп Омассон О криптографии всерьез
SERIOUS CRYPTOGRAPHY A Practical Introduction to Modern Encryption Jean-Philippe Aumasson San Francisco
О КРИПТОГРАФИИ ВСЕРЬЕЗ Практическое введение в современное шифрование Жан-Филипп Омассон Москва, 2022
УДК 004.382 ББК 32.973-018 О57 Омассон Ж.-Ф. О57 О криптографии всерьез / пер. с англ. А. А. Слинкина. – М.: ДМК Пресс, 2022. – 328 с.: ил. ISBN 978-5-97060-975-0 В этом практическом руководстве по современному шифрованию анализируются фундаментальные математические идеи, лежащие в основе криптографии. Рассказывается о шифровании с аутентификацией, безопасной случайности, функциях хеширования, блочных шифрах и методах криптографии с открытым ключом, в частности RSA и криптографии на эллиптических кривых. Вы узнаете о том, как выбирать наилучший алгоритм или протокол, как избежать типичных ошибок безопасности и как задавать правильные вопросы поставщику. В заключительной части книги рассматриваются темы повышенной сложности, например TLS, а также обсуждается будущее криптографии в эпоху квантовых компьютеров. В каждой главе приводятся примеры работы алгоритмов и материалы для дополнительного изучения. Издание будет полезно как профессиональным разработчикам, так и тем, кто хочет разобраться в основах современной криптографии и успешно применять методы шифрования. УДК 004.382 ББК 32.973-018 Title of English-language original: Serious Cryptography: A Practical Introduction to Modern Encryption, ISBN 9781593278267, published by No Starch Press Inc. 245 8th Street, San Francisco, California United States 94103. The Russian-Language 1st edition Copyright © 2021 by DMK Press Publishing under license by No Starch Press Inc. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-59327-826-7 (англ.) © Jean-Philippe Aumasson, 2018 ISBN 978-5-97060-975-0 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2021
Содержание 5 СОДЕРЖАНИЕ От издательства ............................................................................................................. 12 Вступительное слово....................................................................................................... 13 Предисловие ....................................................................................................................... 15 Список аббревиатур ........................................................................................................ 19 Глава 1. Шифрование ............................................................................................. 22 Основы ............................................................................................................................... 23 Классические шифры ..................................................................................................... 23 Шифр Цезаря............................................................................................................... 23 Шифр Виженера ......................................................................................................... 24 Как работают шифры...................................................................................................... 25 Перестановка .............................................................................................................. 26 Режим работы ............................................................................................................. 27 Почему классические шифры небезопасны........................................................ 28 Идеальное шифрование: одноразовый блокнот ..................................................... 29 Шифрование с помощью одноразового блокнота ............................................. 29 Почему одноразовый блокнот безопасен? .......................................................... 30 Безопасность шифрования ........................................................................................... 32 Модели атак ................................................................................................................ 32 Цели безопасности .................................................................................................... 35 Аспекты безопасности .............................................................................................. 36 Асимметричное шифрование ...................................................................................... 38 Дополнительные функции шифров ............................................................................ 39 Шифрование с аутентификацией .......................................................................... 39 Шифрование с сохранением формата .................................................................. 40 Полностью гомоморфное шифрование ............................................................... 41 Шифрование, допускающее поиск ........................................................................ 41 Настраиваемое шифрование .................................................................................. 41 Какие возможны проблемы .......................................................................................... 42 Слабый шифр .............................................................................................................. 42 Неправильная модель ............................................................................................... 43 Для дополнительного чтения ....................................................................................... 44 Глава 2. Случайность ............................................................................................... 45 Случайное или неслучайное? ....................................................................................... 45 Случайность как распределение вероятностей ....................................................... 46 Энтропия: мера неопределенности ............................................................................ 47 Генераторы случайных и псевдослучайных чисел .................................................. 48
Содержание Как работает PRNG .................................................................................................... 49 Вопросы безопасности ............................................................................................. 50 PRNG Fortuna .............................................................................................................. 51 Криптографически стойкие и нестойкие PRNG ................................................. 52 Полезность статистических тестов........................................................................ 54 PRNG на практике ........................................................................................................... 55 Генерирование случайных битов в системах на базе Unix .............................. 55 Функция CryptGenRandom() в Windows ............................................................... 59 Аппаратный PRNG: RDRAND в микропроцессорах Intel ................................. 60 Какие возможны проблемы .......................................................................................... 61 Плохие источники энтропии .................................................................................. 61 Недостаточная энтропия на этапе начальной загрузки .................................. 61 Криптографически нестойкие PRNG .................................................................... 62 Дефектная выборка при стойком PRNG ............................................................... 63 Для дополнительного чтения ....................................................................................... 64 Глава 3. Криптографическая безопасность .............................................. 65 Определение невозможного ......................................................................................... 66 Безопасность в теории: информационная безопасность ................................ 66 Безопасность на практике: вычислительная безопасность ............................ 66 Количественное измерение безопасности................................................................ 68 Измерение безопасности в битах .......................................................................... 68 Полная стоимость атаки .......................................................................................... 70 Выбор и вычисление уровней безопасности ...................................................... 71 Достижение безопасности ............................................................................................ 73 Доказуемая безопасность ........................................................................................ 73 Эвристическая безопасность .................................................................................. 76 Генерирование ключей .................................................................................................. 77 Генерирование симметричных ключей ............................................................... 77 Генерирование асимметричных ключей ............................................................. 78 Защита ключей ........................................................................................................... 79 Какие возможны проблемы .......................................................................................... 80 Ложное чувство безопасности ................................................................................ 80 Короткие ключи для поддержки унаследованных приложений .................... 80 Для дополнительного чтения ....................................................................................... 81 Глава 4. Блочные шифры ..................................................................................... 82 Что такое блочный шифр? ............................................................................................. 83 Цели безопасности .................................................................................................... 83 Размер блока ............................................................................................................... 84 Атака по кодовой книге ........................................................................................... 84 Как устроены блочные шифры .................................................................................... 85 Раунды блочного шифра .......................................................................................... 85 Сдвиговая атака и ключи раунда ........................................................................... 86 Подстановочно-перестановочные сети ............................................................... 86 Схемы Фейстеля ......................................................................................................... 87 Шифр Advanced Encryption Standard (AES) ................................................................ 88
Содержание 7 Внутреннее устройство AES .................................................................................... 89 AES в действии ........................................................................................................... 92 Реализация AES ................................................................................................................ 92 Табличные реализации ............................................................................................ 93 Машинные команды ................................................................................................. 94 Безопасен ли AES? ..................................................................................................... 95 Режимы работы ................................................................................................................ 96 Режим электронной кодовой книги (ECB) ........................................................... 96 Режим сцепления блоков шифртекста (CBC) ...................................................... 98 Как зашифровать любое сообщение в режиме CBC .........................................100 Режим счетчика (CTR)..............................................................................................102 Какие возможны проблемы .........................................................................................104 Атаки типа встречи посередине ............................................................................104 Атаки на оракул дополнения .................................................................................106 Для дополнительного чтения ......................................................................................107 Глава 5. Потоковые шифры ...............................................................................108 Как работают потоковые шифры ...............................................................................109 Потоковые шифры с хранимым состоянием и на основе счетчика.............110 Аппаратные потоковые шифры .................................................................................111 Регистры сдвига с обратной связью .....................................................................112 Grain-128a ...................................................................................................................119 A5/1 ...............................................................................................................................120 Программные потоковые шифры ..............................................................................123 RC4 ................................................................................................................................124 Salsa20 ..........................................................................................................................129 Какие возможны проблемы .........................................................................................134 Повторное использование одноразового числа ...............................................134 Дефектная реализация RC4 ....................................................................................135 Слабые аппаратно реализованные шифры ........................................................136 Для дополнительного чтения ......................................................................................137 Глава 6. Функции хеширования .....................................................................138 Безопасные хеш-функции ............................................................................................139 И снова непредсказуемость ...................................................................................140 Стойкость к восстановлению прообраза .............................................................141 Стойкость к коллизиям ...........................................................................................142 Нахождение коллизий .............................................................................................143 Построение функций хеширования ..........................................................................145 Хеш-функции на основе сжатия: построение Меркла–Дамгора ..................145 Хеш-функции на основе перестановок: функции губки ................................149 Семейство хеш-функций SHA .....................................................................................150 SHA-1 ...........................................................................................................................151 SHA-2 ...........................................................................................................................153 Конкурс на звание SHA-3 ........................................................................................155 Keccak (SHA-3) ............................................................................................................156 Функция хеширования BLAKE 2 .................................................................................158
Содержание Какие возможны проблемы .........................................................................................160 Атака удлинением сообщения...............................................................................160 Обман протоколов доказательства хранения ....................................................161 Для дополнительного чтения ......................................................................................162 Глава 7. Хеширование с секретным ключом ..........................................163 Имитовставки (MAC) .....................................................................................................164 MAC как часть безопасной системы связи .........................................................164 Атаки с подделкой и подобранным сообщением .............................................164 Атаки повторным воспроизведением .................................................................165 Псевдослучайные функции (PRF) ...............................................................................165 Безопасность PRF ...........................................................................................................166 Почему PRF более стойкие, чем MAC ...................................................................166 Создание хешей с секретным ключом по хешам без ключа ................................167 Построение секретного префикса ........................................................................167 Построение секретного суффикса ........................................................................168 Построение HMAC ....................................................................................................168 Обобщенная атака против MAC на основе функций хеширования .............170 Создание функций хеширования на основе блочных шифров: CMAC .............171 Взлом CBC-MAC .........................................................................................................171 Исправление CBC-MAC ............................................................................................171 Проектирование специализированных имитовставок ........................................173 Poly1305 .......................................................................................................................173 SipHash ........................................................................................................................176 Какие возможны проблемы .........................................................................................178 Атаки с хронометражем на верификацию MAC ................................................178 Когда губки протекают ............................................................................................180 Для дополнительного чтения ......................................................................................181 Глава 8. Шифрование с аутентификацией ...............................................182 Шифрование с аутентификацией с использованием MAC ..................................183 Шифрование-и-MAC ................................................................................................183 MAC-затем-шифрование ........................................................................................184 Шифрование-затем-MAC ........................................................................................185 Шифры с аутентификацией .........................................................................................185 Шифрование с аутентификацией и ассоциированными данными .............186 Предотвращение предсказуемости с помощью одноразовых чисел ...........187 Какой шифр с аутентификацией считать хорошим? .......................................187 AES-GCM: стандартный шифр с аутентификацией ...............................................190 Внутреннее устройство GCM: CTR и GHASH ......................................................190 Безопасность GCM ....................................................................................................192 Эффективность GCM ................................................................................................193 OCB: шифр с аутентификацией, более быстрый, чем GCM .................................193 Внутреннее устройство OCB ..................................................................................194 Безопасность OCB .....................................................................................................194 Эффективность OCB .................................................................................................195 SIV: самый безопасный шифр с аутентификацией? .............................................195
Содержание 9 AEAD на основе перестановки ....................................................................................196 Какие возможны проблемы .........................................................................................198 AES-GCM и слабые хеш-ключи ..............................................................................198 AES-GCM и короткие жетоны ................................................................................200 Для дополнительного чтения ......................................................................................201 Глава 9. Трудные задачи ......................................................................................202 Вычислительная трудность ..........................................................................................203 Измерение времени работы ..................................................................................203 Полиномиальное и суперполиномиальное время ...........................................206 Классы сложности ..........................................................................................................207 Недетерминированное полиномиальное время ..............................................208 NP-полные задачи ....................................................................................................209 Задача о равенстве P и NP ......................................................................................210 Задача факторизации ....................................................................................................212 Факторизация больших чисел на практике .......................................................212 Является ли задача факторизации NP-полной? ...............................................214 Задача о дискретном логарифме ................................................................................215 Что такое группа? .....................................................................................................215 Трудная задача ..........................................................................................................216 Какие возможны проблемы .........................................................................................217 Когда разложить на множители легко .................................................................217 Небольшие трудные задачи трудными не являются .......................................218 Для дополнительного чтения ......................................................................................219 Глава 10. RSA ..............................................................................................................221 Математические основания RSA ................................................................................222 Перестановка с потайным входом в RSA ..................................................................223 Генерирование ключей и безопасность RSA ...........................................................224 Шифрование с помощью RSA ......................................................................................226 Взлом RSA-шифрования по учебнику и податливость ...................................226 Стойкое RSA-шифрование: OAEP .........................................................................226 Подписание с помощью RSA .......................................................................................228 Взлом RSA-подписей по учебнику .......................................................................229 Стандарт цифровой подписи PSS .........................................................................230 Подписи на основе полного хеша домена ..........................................................231 Реализации RSA ..............................................................................................................232 Алгоритм быстрого возведения в степень .........................................................233 Выбор малых показателей степени для ускорения операций с открытым ключом .................................................................................................235 Китайская теорема об остатках .............................................................................236 Какие возможны проблемы .........................................................................................238 Атака Bellcore на RSA-CRT ......................................................................................238 Разделение закрытых показателей степени или модулей ...............................................................................................................239 Для дополнительного чтения ......................................................................................240
Содержание Глава 11. Протокол Диффи–Хеллмана ......................................................242 Функция Диффи–Хеллмана .........................................................................................243 Проблемы протоколов Диффи–Хеллмана ................................................................245 Вычислительная задача Диффи–Хеллмана ........................................................245 Задача Диффи–Хеллмана о распознавании .......................................................246 Другие задачи Диффи–Хеллмана .........................................................................246 Протоколы совместной выработки ключей .............................................................247 Пример протокола выработки ключа, не опирающегося на DH ...................247 Модели атак на протоколы совместной выработки ключей ..........................248 Производительность ................................................................................................250 Протоколы Диффи–Хеллмана .....................................................................................251 Анонимный протокол Диффи–Хеллмана ...........................................................251 Протокол Диффи–Хеллмана с аутентификацией .............................................253 Протокол Менезеса–Кью–Вэнстоуна ...................................................................255 Какие возможны проблемы .........................................................................................257 Пренебрежение хешированием разделяемого секрета ..................................257 Унаследованный протокол Диффи–Хеллмана в TLS .......................................258 Небезопасные параметры группы .......................................................................258 Для дополнительного чтения ......................................................................................258 Глава 12. Эллиптические кривые ..................................................................260 Что такое эллиптическая кривая? ..............................................................................261 Эллиптические кривые над множеством целых чисел ...................................262 Сложение и умножение точек ...............................................................................264 Группы эллиптических кривых .............................................................................267 Задача ECDLP ...................................................................................................................268 Протокол совместной выработки ключа Диффи–Хеллмана над эллиптическими кривыми ...................................................................................269 Подписание с помощью эллиптических кривых ..............................................270 Шифрование с помощью эллиптических кривых ............................................272 Выбор кривой ..................................................................................................................273 Кривые, рекомендованные NIST ..........................................................................274 Кривая Curve25519 ...................................................................................................275 Другие кривые ...........................................................................................................275 Какие возможны проблемы .........................................................................................276 ECDSA с недостаточной случайностью ...............................................................276 Взлом ECDH с помощью другой кривой .............................................................276 Для дополнительного чтения ......................................................................................277 Глава 13. Протокол TLS ........................................................................................278 Целевые приложения и требования ..........................................................................279 Набор протоколов TLS ...................................................................................................280 Семейство протоколов TLS и SSL: краткая история .........................................280 TLS в двух словах ......................................................................................................281 Сертификаты и удостоверяющие центры ..........................................................281 Протокол записи .......................................................................................................284
Протокол подтверждения связи............................................................................285 Криптографические алгоритмы TLS 1.3 .............................................................287 Улучшения TLS 1.3 по сравнению с TLS 1.2 .............................................................288 Защита от понижения версии ................................................................................289 Квитирование с одним периодом кругового обращения ...............................289 Возобновление сеанса .............................................................................................289 Стойкость TLS ..................................................................................................................290 Аутентификация .......................................................................................................290 Секретность прошлого ............................................................................................291 Какие возможны проблемы .........................................................................................292 Скомпрометированный удостоверяющий центр .............................................292 Скомпрометированный сервер .............................................................................292 Скомпрометированный клиент ............................................................................293 Дефекты реализации ...............................................................................................293 Для дополнительного чтения ......................................................................................294 Глава 14. Квантовая и постквантовая криптография .......................295 Как работают квантовые компьютеры......................................................................296 Квантовые биты ........................................................................................................297 Квантовые вентили ..................................................................................................299 Квантовое ускорение .....................................................................................................302 Экспоненциальное ускорение и задача Саймона .............................................302 Угроза со стороны алгоритма Шора .....................................................................303 Решение задачи факторизации с помощью алгоритма Шора .......................304 Алгоритм Шора и задача о дискретном логарифме ........................................305 Алгоритм Гровера .....................................................................................................305 Почему так трудно построить квантовый компьютер? ........................................306 Постквантовые криптографические алгоритмы ....................................................308 Криптография на основе кодов .............................................................................308 Криптография на основе решеток ........................................................................309 Криптография на основе многомерных систем ...............................................310 Криптография на основе функций хеширования ............................................312 Какие возможны проблемы .........................................................................................313 Непонятный уровень безопасности .....................................................................313 Забегая вперед: что, если уже слишком поздно? ..............................................314 Проблемы реализации ............................................................................................315 Для дополнительного чтения ......................................................................................315 Предметный указатель ........................................................................................317
От издательства От издательства Отзывы и пожелания Мы всегда рады отзывам наших читателей. Расскажите нам, что вы ду маете об этой книге, – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны. Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу dmkpress@gmail.com; при этом укажите название книги в теме письма. Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.com/authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.com. Скачивание исходного кода примеров Скачать файлы с дополнительной информацией для книг издательства « ДМК Пресс» можно на сайте www.dmkpress.com на странице с описанием соответствующей книги. Список опечаток Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку в одной из наших книг, мы будем очень благодарны, если вы сообщите о ней главному редактору по адресу dmkpress@ gmail.com. Сделав это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. Нарушение авторских прав Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и No Starch Press очень серьезно относятся к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ресурс, чтобы мы могли применить санкции. Ссылку на подозрительные материалы можно прислать по адресу элект ронной почты dmkpress@gmail.com. Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы.
Вступительное слово 13 ВСТУПИТЕЛЬНОЕ СЛОВО Если вы читали какие-нибудь книги по компьютерной безопасности, то, наверное, встречались с распространенным взглядом на криптографию. « Криптография, – говорят авторы, – самое прочное звено в цепочке». Оценка похвальная, но не вполне точная. Если криптография – действительно самая прочная часть системы, то зачем тратить время на ее улучшение, когда есть много других частей, нуждающихся во внимании? И если попытаться сформулировать главный урок, который я хочу преподать этой книгой, то он состоит в том, что такой взгляд на криптографию, мягко говоря, идеализирован, а по сути является мифом. Криптография прочна в теории, а на практике столь же подвержена ошибкам, как и любой другой аспект системы безопасности. Особенно это относится к случаям, когда криптографическую систему реализуют непрофессионалы, не имеющие достаточного опыта и пренебрегающие деталями, – а таковы многие развернутые в настоящее время системы. Хуже того – если реализация криптографической системы содержит ошибки, то проявления их зачастую оказываются весьма скандальными. Но какое вам до этого дело, и зачем нужна эта книга? Когда почти двадцать лет назад я только начинал заниматься прикладной криптографией, разработчикам ПО была доступна лишь отрывочная и не самая актуальная информация. Криптографы придумывали алгоритмы и протоколы, а программисты, реализовывая их, создавали запутанные, плохо документированные библиотеки, пред-
назначенные в первую очередь для других специалистов. Существовало – и до сих пор существует – глубокая пропасть между теми, кто знает и понимает криптографические алгоритмы, и теми, кто этими алгоритмами пользуется (или на свой страх и риск пренебрегает ими). На рынке имеется очень немного достойных книг, и еще меньше полезных программисту-практику. Результаты такого положения удручают. Я имею в виду факты компрометации, о которых говорят такие ярлыки, как «CVE» или «Серьезность: высокая», а в некоторых особо тревожных ситуациях – атаки, которые на слайдах снабжены грифом «СОВЕРШЕННО СЕКРЕТНО». Если вам и известны некоторые особо знаменитые примеры, то только потому, что они затрагивают системы, от которых зависит ваша работа. Многие проблемы подобного рода возникают, потому что криптография – сложная и математически элегантная теория, а специалисты по ней не потрудились поделиться знаниями с инженерами, которые пишут программный код. По счастью, ситуация начинает меняться, и пример тому – эта книга. Книга «О криптографии всерьез» написана одним из самых известных экспертов по прикладной криптографии, однако ориентирована не на других специалистов того же профиля. Но и поверхностным обзором этой дисциплины она тоже не является. Напротив, она содержит скрупулезное и современное обсуждение криптографической техники, призванное помочь стать лучше практикам, собирающимся подвизаться в этой области. Вы узнаете не только о том, как работают алгоритмы, но и как использовать их в реальных системах. Изложение начинается с рассмотрения основных криптографических примитивов, в т. ч. блочных шифров, схем шифрования с открытым ключом, функций хеширования и генераторов случайных чисел. В каждой главе приводятся примеры работы алгоритмов и объясняется, что следует и чего не следует делать. В последних главах рассматриваются темы повышенной трудности, например TLS, а также будущее криптографии – что делать после того, как придут квантовые компьютеры и усложнят нам жизнь. Конечно, одна книга не в состоянии решить все наши проблемы, но знания накапливаются по крупицам. В этой книге таких крупиц много. Быть может, даже достаточно для того, чтобы развернутые на практике криптографические системы стали, наконец, соответствовать тем высоким требованиям, которые к ним предъявляются. Полезного вам чтения. Мэттью Д. Грин, профессор Института информационной безопасности университета Джонса Хопкинса
Предисловие 15 ПРЕДИСЛОВИЕ Я написал книгу, которую хотел бы иметь, когда только начал изучать криптографию. В 2005 году под Парижем я учился в магистратуре и с предвкушением записался на спецкурс по криптографии. Увы, спецкурс был отменен, потому что не набралось достаточного количества желающих. « Криптография – это слишком сложно», – говорили студенты и массово записывались на курсы по компьютерной графике и базам данных. С тех пор слова «криптография – это сложно» я слышал неоднократно. Но так ли сложна криптография в действительности? Чтобы играть на музыкальном инструменте, овладеть языком программирования или воплотить на практике достижения какой-нибудь увлекательной дисциплины, необходимо изучить определенные концепции и символы, но для этого необязательно иметь докторскую степень. Я думаю, что это относится и к желанию стать компетентным криптографом. А также полагаю, что криптография считается такой трудной наукой, потому что криптографы не приложили достаточных усилий к ее преподаванию. И есть еще одна причина, по которой я считаю эту книгу необходимой: криптография превратилась в довольно разветвленную область знаний. Чтобы сделать что-то полезное и важное в криптографии, нужно разбираться в смежных областях: как работают компьютеры и сети, что нужно пользователям и системам и как противник может злонамеренно воспользоваться алгоритмами и их реализациями. Иными словами, необходима связь с реальностью.
Предисловие Подход, принятый в этой книге Первоначально книга называлась «Crypto for Real», чтобы подчеркнуть практически ориентированный, деловой подход, которому я намеревался следовать. Я хотел не столько опростить криптографию, сколько связать с ее с реальными приложениями. Я привожу примеры исходного кода и описываю реальные ошибки и кошмарные истории. Помимо четкой связи с реальностью, в основу книги положены еще два краеугольных камня: простота и современность. Упрощаю я изложение только по форме, не жертвуя содержанием: представляю много нетривиальных идей, но без скучного математического формализма. Я хочу, чтобы читатель понял основополагающие идеи криптографии, это кажется мне важнее, чем запоминание бесконечных формул. Что касается современности, то я рассматриваю последние теоретические результаты и приложения, например протокол TLS 1.3 и криптографию в постквантовую эпоху. Я не обсуждаю детали устаревших или небезопасных алгоритмов, например DES или MD5. Исключением является алгоритм RC4, но и он включен только для того, чтобы продемонстрировать, в чем его слабость и как работают потоковые шифры такого рода. Книга «Криптография всерьез» не является ни путеводителем по криптографическому программному обеспечению, ни сводом технических спецификаций – такие вещи легко найти в сети. Ее главное назначение – пробудить у вас интерес к криптографии и попутно рассказать о ее фундаментальных концепциях. Для кого предназначена эта книга Во время работы над книгой я часто представлял себе читателя как разработчика, который оказался вынужден иметь дело с криптографией, но так и остался в растерянности после чтения заумных учебников и научных статей. Разработчики часто должны – и хотят – лучше понимать криптографию, чтобы избежать неудачных проектных решений, и я надеюсь, что в этом моя книга поможет. Но если вы не являетесь разработчиком, тоже ничего страшного! Чтение книги не потребует от вас владения навыками кодирования, она доступна любому, кто знаком с основами информатики и математикой в объеме технического вуза (начала теории вероятностей, арифметики по модулю и т. д.). Но, несмотря на сравнительную доступность книги, для получения от нее максимальной пользы все же требуется приложить некоторые усилия. Мне приходит на ум аналогия с альпинизмом: автор прокладывает путь, снабжает вас веревками и ледорубом, но покорить гору вам придется самостоятельно. Изучение изложенных в книге идей потребует труда, но в конце преодолевшего все препятствия ждет награда.
Предисловие 17 Структура книги Книга состоит из четырнадцати глав, разбитых на четыре части. По большей части главы независимы, за исключением главы 9, в которой заложен фундамент для трех последующих глав. Но я все же рекомендую сначала прочитать первые три главы. Основы z z Глава 1 «Шифрование». Здесь вводится понятие безопасного шифрования, начиная со слабых шифров с использованием карандаша и бумаги и заканчивая стойкими рандомизированными шифрами. z z Глава 2 «Случайность». Описывается, как работает генератор псевдослучайных чисел, когда такой генератор считается безопасным и как его безопасно использовать. z z Глава 3 «Криптографическая безопасность». Обсуждается теоретическая и практическая безопасность, сравнивается предположительная и доказуемая безопасность. Симметричные криптографические системы z z Глава 4 «Блочные шифры». Рассматриваются шифры, обрабатывающие сообщения поблочно. Основное внимание уделяется самому известному из них, Advanced Encryption Standard (AES). z z Глава 5 «Потоковые шифры». Описываются шифры, порождающие поток случайных на первый взгляд битов, которые объединяются с сообщением операцией XOR. z z Глава 6 «Функции хеширования». Функции хеширования – чуть ли не единственный алгоритм, не нуждающийся в секретном ключе, и при этом один из самых распространенных строительных блоков в криптографии. z z Глава 7 «Хеширование с секретным ключом». Объясняется, что будет, если соединить функцию хеширования с секретным ключом, и как этим можно воспользоваться для аутентификации сообщений. z z Глава 8 «Шифрование с аутентификацией». На примерах описываются алгоритмы, которые могут одновременно зашифровать и аутентифицировать сообщение, в частности стандарт AES-GCM. Асимметричные криптографические системы z z Глава 9 «Трудные задачи». Здесь заложен теоретический фундамент шифрования с открытым ключом; используется нотация из теории вычислительной сложности. z z Глава 10 «RSA». В алгоритме RSA задача разложения на множители применяется для построения схем безопасного шифрования и цифровой подписи с помощью простых арифметических операций.
Доступ онлайн
В корзину