В книге объясняется, как создавать шифры с секретным ключом – от простых, для которых хватает карандаша и бумаги, до очень сложных, применяемых в современной компьютерной криптографии. Вы научитесь конструировать 30 невскрываемых шифров, измерять стойкость шифров и гарантированно обеспечивать их безопасность, противостоять гипотетическим ультракомпьютерам будущего. А для развлечения предлагается вскрыть несколько несложных мини-шифров.
Издание предназначено для профессиональных инженеров, специалистов по информатике и криптографов-любителей.
Author(s): Фрэнк Рубин
Edition: 1
Publisher: ДМК Пресс
Year: 2022
Language: Russian
Commentary: Publisher's PDF
Pages: 386
City: М.
Tags: Popular Science; Cryptography; Private-Key Cryptography
Оглавление
Вступительное слово
Предисловие
Благодарности
Об этой книге
Об авторе
Об иллюстрации на обложке
Введение
Что такое криптография?
2.1 Невскрываемые шифры
2.2 Виды криптографии
2.3 Симметричная и асимметричная криптография
2.4 Блочные и потоковые шифры
2.5 Механические и цифровые шифры
2.6 Зачем выбирать шифр с секретным ключом?
2.7 Зачем создавать собственный шифр?
Предварительные сведения
3.1 Биты и байты
3.2 Функции и операторы
3.3 Булевы операторы
3.4 Системы счисления
3.5 Простые числа
3.6 Модульная арифметика
Инструментарий криптографа
4.1 Система оценивания
4.2 Подстановка
4.2.1 Коды Хаффмана
4.3 Перестановка
4.4 Фракционирование
4.5 Генераторы случайных чисел
4.5.1 Цепной генератор цифр
4.6 Полезные комбинации, бесполезные комбинации
4.6.1 Шифр Базери типа 4
Подстановочные шифры
5.1 Простая подстановка
5.2 Перемешивание алфавита
5.3 Номенклаторы
5.4 Многоалфавитная подстановка
5.5 Шифр Беласо
5.6 Метод Касиски
5.7 Индекс совпадения
5.8 И снова об индексе совпадения
5.9 Вскрытие многоалфавитного шифра
5.9.1 Вскрытие шифра Беласо
5.9.2 Вскрытие шифра Виженера
5.9.3 Вскрытие общего многоалфавитного шифра
5.10 Автоключ
5.11 Бегущий ключ
*5.12 Моделирование роторных машин
5.12.1 Однороторная машина
5.12.2 Трехроторная машина
5.12.3 Восьмироторная машина
Контрмеры
6.1 Двойное шифрование
6.2 Null-символы
6.3 Прерванный ключ
6.4 Омофоническая подстановка
6.4.1 Шифр 5858
6.5 Подстановка биграмм и триграмм
*6.6 Сокрытие сообщений в изображениях
6.7 Добавление null-битов
6.8 Объединение нескольких сообщений
6.9 Внедрение сообщения в файл
Перестановка
7.1 Маршрутная перестановка
7.2 Столбцовая перестановка
7.2.1 Cysquare
7.2.2 Перестановка слов
7.3 Двойная столбцовая перестановка
7.4 Столбцовая перестановка с циклическим сдвигом
7.5 Перестановка со случайными числами
7.6 Селекторная перестановка
7.7 Перестановка с ключом
7.8 Деление перестановки пополам
7.9 Множественные анаграммы
Цилиндрический шифр Джефферсона
8.1 Вскрытие при наличии известных слов
8.2 Вскрытие при наличии только шифртекста
Фракционирование
9.1 Квадрат Полибия
9.2 Шифр Плейфера
9.2.1 Вскрытие шифра Плейфера
9.2.2 Укрепление шифра Плейфера
9.3 Шифр Two Square
9.4 Шифр Three Square
9.5 Шифр Four Square
9.6 Шифр Bifid
9.6.1 Bifid с сопряженной матрицей
9.7 Диагональный Bifid
9.8 Квадраты 6×6
9.9 Шифр Trifid
9.10 Шифр Three Cube
9.11 Прямоугольные сетки
9.12 Шестнадцатеричное фракционирование
9.13 Битовое фракционирование
9.13.1 Шифр Cyclic 8×N
9.14 Другие виды фракционирования
9.15 Повышение стойкости блоков
Фракционирование переменной длины
10.1 Шифр Morse3
10.2 Моном-биномные шифры
10.3 Периодические длины
10.4 Подстановка Хаффмана
10.5 Таг-системы Поста
10.5.1 Таги одинаковой длины
10.5.2 Таги разной длины
10.5.3 Несколько алфавитов
10.5.4 Короткие и длинные перемещения
10.6 Фракционирование в системах счисления по другим основаниям
10.7 Сжатие текста
10.7.1 Метод Лемпеля-Зива
10.7.2 Арифметическое кодирование
10.7.3 Адаптивное арифметическое кодирование
Блочные шифры
11.1 Подстановочно-перестановочная сеть
11.2 Стандарт шифрования данных (DES)
11.2.1 Double DES
11.2.2 Triple DES
*11.2.3 Быстрая перестановка битов
11.2.4 Неполные блоки
11.3 Умножение матриц
11.4 Умножение матриц
11.5 Улучшенный стандарт шифрования (AES)
11.6 Фиксированная подстановка и подстановка с ключом
11.7 Инволютивные шифры
11.7.1 Инволютивная подстановка
11.7.2 Инволютивная многоалфавитная подстановка
11.7.3 Инволютивная перестановка
*11.7.4 Инволютивный блочный шифр
11.7.5 Пример – шифр Poly Triple Flip
11.8 Подстановки переменной длины
11.9 Пульсирующие шифры
11.10 Сцепление блоков
11.10.1 Многоалфавитное сцепление
11.10.2 Зашифрованное сцепление
11.10.3 Сцепление с запаздыванием
11.10.4 Внутренние отводы
11.10.5 Сцепление ключей
11.10.6 Сводка режимов сцепления
11.10.7 Сцепление с неполными блоками
11.10.8 Сцепление блоков переменной длины
11.11 Укрепление блочного шифра
Принципы безопасного шифрования
12.1 Большие блоки
12.2 Длинные ключи
12.2.1 Избыточные ключи
12.3 Конфузия
12.3.1 Коэффициент корреляции
12.3.2 Линейность по основанию 26
12.3.3 Линейность по основанию 256
12.3.4 Включение закладки
12.3.5 Конденсированная линейность
12.3.6 Гибридная нелинейность
12.3.7 Конструирование S-блока
12.3.8 S-блок с ключом
12.4 Диффузия
12.5 Насыщение
Резюме
Потоковые шифры
13.1 Комбинирующие функции
13.2 Случайные числа
13.3 Мультипликативный конгруэнтный генератор
13.4 Линейный конгруэнтный генератор
13.5 Цепной XOR-генератор
13.6 Цепной аддитивный генератор
13.7 Сдвиговый XOR-генератор
13.8 FRand
13.9 Вихрь Мерсенна
13.10 Регистры сдвига с линейной обратной связью
13.11 Оценивание периода
13.12 Укрепление генератора
13.13 Комбинирование генераторов
13.14 Истинно случайные числа
13.14.1 Линейное суммирование с запаздыванием
13.14.2 Наложение изображений
13.15 Обновление случайных байтов
13.16 Синхронизированные гаммы
13.17 Функции хеширования
Одноразовый блокнот
14.1 Шифр Вернама
14.2 Запас ключей
14.2.1 Возвращение ключей в оборот
14.2.2 Комбинированный ключ
14.2.3 Ключ выбора
14.3 Индикаторы
14.4 Алгоритм распределения ключей Диффи–Хеллмана
*14.4.1 Построение больших простых чисел, старый подход
14.4.2 Построение больших простых чисел, новый подход
Матричные методы
15.1 Обращение матрицы
15.2 Матрица перестановки
15.3 Шифр Хилла
15.4 Шифр Хилла, компьютерные версии
15.5 Умножение больших целых чисел
15.5.1 Умножение и деление сравнений
*15.6 Решение линейных сравнений
15.6.1 Приведение сравнения
15.6.2 Правило половины
15.6.3 Лесенка
15.6.4 Цепные дроби
15.7 Шифры на основе больших целых чисел
15.8 Умножение на малое число
15.9 Умножение по модулю P
15.10 Изменение основания
*15.11 Кольца
15.12 Матрицы над кольцом
15.13 Построение кольца
15.13.1 Гауссовы целые числа
15.13.2 Кватернионы
15.14 Нахождение обратимых матриц
Трехпроходный протокол
16.1 Метод Шамира
16.2 Метод Мэсси-Омуры
16.3 Дискретный логарифм
16.3.1 Логарифмы
16.3.2 Степени простых чисел
16.3.3 Коллизия
16.3.4 Факторизация
16.3.5 Оценки
16.4 Матричный трехпроходный протокол
16.4.1 Коммутативное семейство матриц
16.4.2 Мультипликативный порядок
16.4.3 Максимальный порядок
16.4.4 Атаки Эмили
16.4.5 Некоммутативное кольцо
16.4.6 Решение билинейных уравнений
16.4.7 Слабые элементы
16.4.8 Как сделать побыстрее
16.5 Двусторонний трехпроходный протокол
Коды
17.1 Джокер
Квантовые компьютеры
18.1 Суперпозиция
18.2 Квантовая запутанность
18.3 Исправление ошибок
18.4 Измерение
18.5 Квантовый трехэтапный протокол
18.6 Квантовое распределение ключей
18.7 Алгоритм Гровера
18.8 Уравнения
18.8.1 Перестановки
18.8.2 Подстановки
18.8.3 Карты Карно
18.8.4 Промежуточные переменные
18.8.5 Известный открытый текст
18.9 Минимизация
18.9.1 Восхождение на вершину
18.9.2 Тысяча вершин
18.9.3 Имитация отжига
18.10 Квантовая имитация отжига
18.11 Квантовая факторизация
18.12 Ультракомпьютеры
18.12.1 Подстановка
18.12.2 Случайные числа
18.12.3 Ультраподстановочный шифр US-A
18.12.4 Ультрапотоковый шифр US-B
Развлечения
Задачи
Эпилог
Предметный указатель