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

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

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

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