Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Новинка
Артикул: 833981.01.99
Доступ онлайн
1 549 ₽
В корзину
В этом практическом руководстве по современному шифрованию анализируются фундаментальные математические идеи, лежащие в основе криптографии. Рассказывается о шифровании с аутентификацией, безопасной случайности, функциях хеширования, блочных шифрах и методах криптографии с открытым ключом, в частности RSA и криптографии на эллиптических кривых. Вы узнаете о том, как выбирать наилучший алгоритм или протокол, как избежать типичных ошибок безопасности и как задавать правильные вопросы поставщику. В заключительной части книги рассматриваются темы повышенной сложности, например TLS, а также обсуждается будущее криптографии в эпоху квантовых компьютеров. В каждой главе приводятся примеры работы алгоритмов и материалы для дополнительного изучения. Издание будет полезно как профессиональным разработчикам, так и тем, кто хочет разобраться в основах современной криптографии и успешно применять методы шифрования.
Омассон, Ж. О криптографии всерьез : практическое руководство / Ж. Омассон ; пер. с англ. А. А. Слинкина. - Москва : ДМК Пресс, 2022. - 328 с. - ISBN 978-5-97060-975-0. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2155908 (дата обращения: 18.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Жан-Филипп Омассон

О криптографии всерьез
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 задача разложения на множители 
применяется для построения схем безопасного шифрования 
и цифровой подписи с помощью простых арифметических операций.

Доступ онлайн
1 549 ₽
В корзину