![](/user_photo/2706_HbeT2.jpg)
- •Глава 1. Введение 10
- •Глава 9. Шифрмашина "Энигма" 130
- •Глава 10. Шифрмашина "Хагелин" 152
- •Глава 11. После "Энигмы" 172
- •Глава 12. Криптография с открытым ключом 179
- •Глава 13. Шифрование и Интернет 188
- •Предисловие
- •Глава 1. Введение Некоторые аспекты безопасности связи
- •Шифр Юлия Цезаря
- •Несколько основных определений
- •Три этапа дешифрования: идентификация, взлом системы и вскрытие ключей.
- •Коды и шифры
- •Оценка стойкости системы шифрования
- •Коды, обнаруживающие и исправляющие ошибки
- •Другие методы сокрытия содержания сообщений
- •Модульная арифметика
- •Модульное сложение и вычитание букв
- •Заключение
- •Глава 2. От Юлия Цезаря до простой замены Шифры Юлия Цезаря и их вскрытие
- •Шифры простой замены
- •Вскрытие шифра простой замены
- •Частоты встречаемости букв в других языках, кроме английского
- •Сколько знаков необходимо для дешифрования простой замены?
- •Глава 3. Многоалфавитные системы Усиление системы Юлия Цезаря: шифры Вижанэра
- •Вскрытие шифра Вижанэра
- •Индикаторы
- •Одноключевые сообщения
- •Распознавание одноключевых сообщений
- •Какой объем текста необходим для дешифрования шифра Вижанэра?
- •Цилиндр Джефферсона
- •Глава 4. Шифры-головоломки
- •Перестановки
- •Простая перестановка
- •Двойная перестановка
- •Другие виды перестановок
- •Регулярные перестановочные таблицы
- •Нерегулярные перестановочные таблицы
- •Оценка стойкости шифров перестановки
- •Общая концепция двойного шифрования
- •Глава 5. Двухбуквенные шифры
- •Замена "монограф-диграф"
- •Мдпм-шифры
- •Система "диграф-диграф"
- •Шифр Плейфера*)
- •Расшифрование в системе Плейфера
- •Криптоаналитические аспекты системы Плейфера
- •Двойной шифр Плейфера
- •Глава 6. Коды Характеристики кодов
- •Одночастевые и двухчастевые коды
- •Код плюс аддитивное шифрование
- •Глава 7. Шифры для шпионов
- •Шифры-решетки
- •Книжные шифры
- •Использование книжного шифра
- •Частоты встречаемости букв в книжных шифрах
- •Вскрытие книжного шифра
- •Индикаторы
- •Катастрофические ошибки при использовании книжного шифра
- •Шифры "агента Гарбо"
- •Первый шифр "агента Гарбо"
- •Второй шифр "агента Гарбо"
- •Одноразовый блокнот
- •Глава 8. Получение случайных чисел и букв Случайные последовательности
- •Получение случайных последовательностей
- •Бросание монеты
- •Бросание костей
- •Извлечение из урны (по типу лотереи)
- •Космические лучи
- •Шум от усилителей
- •Псевдослучайные последовательности
- •Линейные рекурренты
- •Использование последовательности двоичных знаков гаммы для шифрования
- •Двоичные линейные последовательности как генераторы гаммы
- •Криптоанализ линейной рекурренты
- •Повышение стойкости двоичной гаммы
- •Генераторы псевдослучайных чисел
- •Метод срединных квадратов
- •Линейные конгруэнтные генераторы
- •Глава 9. Шифрмашина "Энигма" Историческая справка
- •Первая "Энигма"
- •Шифрование с использованием контактных колес
- •Шифрование в "Энигме"
- •Коммутатор "Энигмы"
- •Ахиллесова пята "Энигмы"
- •Цепочки индикаторов в "Энигме"
- •Выравнивание цепочек
- •Идентификация колеса r1 и его угловой установки
- •Двойное шифрование в "Энигме"
- •"Энигма" Абвера
- •Глава 10. Шифрмашина "Хагелин" Историческая справка
- •Конструкция шифрмашины «Хагелин»
- •Шифрование при помощи шифрмашины "Хагелин"
- •Выбор установок барабана в шифрмашине "Хагелин"
- •Теоретический объем перебора для шифрмашины "Хагелин"
- •Вскрытие установок "Хагелина" по отрезку гаммы
- •Дополнительные возможности шифрмашины "Хагелин"
- •Смещение
- •Определение смещения по шифрованному тексту
- •Перекрытия
- •Вскрытие шифрмашины "Хагелин" только по шифрованному тексту
- •Глава 11. После "Энигмы" sz42 - предтеча электронных машин
- •Описание шифрмашины sz42
- •Шифрование в машине sz42
- •Вскрытие шифрмашины sz42 и определение ее угловых установок
- •Модификации шифрмашины sz42
- •Глава 12. Криптография с открытым ключом Историческая справка
- •Вопросы безопасности
- •Защита программ и данных
- •Шифрование программ, данных и сообщений
- •Задача распределения ключей
- •Система ключевого обмена Диффи-Хеллмана
- •Стойкость системы Диффи-Хеллмана
- •Глава 13. Шифрование и Интернет Обобщение шифра простой замены
- •Факторизация больших целых чисел
- •Стандартный метод факторизации
- •Малая теорема Ферма
- •Теорема Ферма-Эйлера (для случая системы rsa)
- •Ключи зашифрования и расшифрования в системе rsa
- •Процессы зашифрования и расшифрования в системе rsa
- •Каким образом хозяин ключей отвечает корреспондентам?
- •Американский Стандарт Шифрования Данных (des)*)
- •Общие сведения
- •Процедура зашифрования
- •Процедура расшифрования
- •Стойкость des-алгоритма
- •Зацепление
- •Реализации des-алгоритма
- •Совместное использование алгоритмов rsa и des
- •Полезное замечание
- •После des-алгоритма
- •Проверка подлинности сообщения и удостоверение подлинности подписи
- •Криптография эллиптической кривой
- •Приложение. Математические вопросы Глава 2 м1. Совпадения знаков в алфавитах замены
- •М2. Снижение стойкости при использовании взаимно-обратных алфавитов
- •M3. Парадокс дней рождения
- •Глава 3 м4. Евклидово доказательство бесконечности множества простых чисел
- •Глава 6 м5. Последовательность чисел Фибоначчи
- •Глава 7 м6. Частота встречаемости букв для книжного шифра
- •М7. Одноразовый блокнот дешифровать невозможно
- •Глава 8 м8. Частота появления случайных чисел на странице
- •М9. Комбинирование двух последовательностей двоичных знаков гаммы, имеющих отклонения
- •М10. Последовательность типа Фибоначчи
- •М11. Двоичные линейные рекурренты
- •M12. Восстановление двоичной линейной рекурренты по отрезку гаммы
- •М13. Получение псевдослучайных чисел
- •Глава 9 м14. Распайка колёс шифрмашины "Энигма"
- •М15. Число возможных отражателей шифрмашины "Энигма"
- •М16. Вероятность одноключевых сообщений для "Энигмы"
- •М17. Среднее число индикаторов, необходимое для построения полных цепочек
- •Глава 10 м18. Число возможных барабанов шифрмашины "Хагелин"
- •М19. Максимальная кратность значения зацепления, которая может встретиться при вычислении разности гаммы шифрмашины "Хагелин"
- •M20. Определение смещения шифрмашины "Хагелин" с помощью коэффициента корреляции
- •Глава 13 m21. (Порядок роста количества простых чисел)
- •M22. Вычисление остатка с использованием модульной арифметики
- •М23. Доказательство теоремы Ферма-Эйлера
- •М24. Нахождение чисел, "предположительно" являющихся простыми
- •M25. Алгоритм Евклида
- •М26. Эффективность возведения в степень методом последовательного возведения в квадрат
- •М27. Число ложных ответов при дешифровании des-алгоритма методом "встречного поиска "
- •М28. Криптография эллиптической кривой
- •Решения задач Глава 2
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 11
- •Глава 13
- •Литература
- •Глава 1
- •Глава 2
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 11
- •Глава 12
- •Глава 13
Общие сведения
Конструктивно алгоритм обеспечивает шифрование блоков данных по 64 разряда (бита) под управлением 64-разрядного ключа (K). Таким образом, DES-алгоритм является примером так называемых блочных шифров.
Два человека, желающие связываться друг с другом с помощью DES-алгоритма, должны договориться об используемом значении (секретного) ключа K. Все остальные сведения о DES-алгоритме являются общедоступными.
При задании секретного ключа K пользователи выбирают семь 8‑разрядных символов (т.е. в общей сложности 56 битов), к которым в процессе работы DES-алгоритма добавляются еще 8 проверочных разрядов. В результате получаются требуемые 64 разряда секретного ключа.
Процедура зашифрования
Разряды 64-битового блока данных представляются согласно начальной перестановке (IP).
64-битовый блок данных разбивается на два 32-разрядных сегмента: левый (L) и правый (R).
Сорок восемь разрядов ключа K нелинейным образом комбинируются с 48-разрядным "расширением" сегмента R ("расширение" получается повторением 16-ти из 32 разрядов R); затем полученные 48 битов редуцируются до 32-разрядной строки (обозначим ее через X).
L заменяется на R, а в качестве нового 32-разрядного значения R берется сумма по модулю 2 строк X и L.
Шаги (6) и (7) повторяются 16 раз, и каждый раз на шаге (6) используются разные 48-разрядные сегменты ключа K.
64 разряда, полученные в конце последнего (16-го) шага подвергаются инверсии начальной перестановки, т.е. (IP)-1.
В результате получаются 64 бита шифрованного текста.
Процедура расшифрования
Расшифрование осуществляется в обратном порядке с использованием того же самого ключа K.
Стойкость des-алгоритма
Стоит заметить, что два человека, желающие связываться друг с другом с помощью DES-алгоритма, должны договориться об общем ключе. Это можно сделать с использованием системы ключевого обмена Диффи-Хеллмана. Эта процедура является безопасной, если только третья сторона не может перехватывать и изменять содержание сообщений.
Что касается самого DES-алгоритма, то данные, зашифрованные с его помощью на большом количестве ключей, подвергались различным тестам, в том числе статистическим, и все они дали хорошие результаты. Один из самых важных тестов называется "лавина": сколько именно разрядов из 64-х изменится на выходе, если изменить один из 64-х разрядов на входе? Для слабого шифра ответ был бы "1"; в идеальной системе шифрования ответ должен быть "около 32-х" - именно так обстоит дело в DES-алгоритме (примеры см. в [13.5]).
Несмотря на это, дебаты относительно его уровня стойкости шли даже еще до введения DES-алгоритма в эксплуатацию. Так как пользователи задают 56-разрядный ключ, то противнику надо опробовать "всего лишь" 256 возможных ключей. Так как 256 составляет около 1016,86, то компьютеру, способному проверять один ключ в микросекунду, понадобится 2300 лет для их полного перебора. Ясно, что это практически невыполнимо. Однако критики DES-алгоритма заявляли, что миллион таких компьютеров, работающих параллельно, смогут найти ключ всего за один день. И так как это будет стоить огромной суммы денег и потребует больших организационных усилий, то трудно себе представить, чтобы кто-нибудь посчитал стоящим такое предприятие, если только заранее не известно, что сообщение относится к жизненно важному вопросу национальной безопасности. Также выдвигались предположения, что возможно существование тайной "лазейки", или Ахиллесовой пяты, известной разработчикам DES‑алгоритма, что позволит осведомленным о ее существовании находить ключ за приемлемое время. Это может быть правдой, но никто до сих пор не обнаружил данных, свидетельствующих о ее существовании.
Также высказывались предположения, что в DES-алгоритме надо было использовать ключ большей длины, и чаще всего при этом говорили о 128 разрядах. Это, конечно, устранило бы все сомнения по поводу его стойкости, и с тех пор 128-битовое шифрование появилось в составе других систем, но в 1977 году это не сочли необходимым.
Альтернативой использования 128-разрядного ключа могло бы быть последовательное шифрование на двух 64-разрядных ключах, но можно показать, что в этом случае стойкость возрастает всего лишь вдвое по сравнению с использованием одного 64-разрядного ключа (если у криптоаналитика в наличии имеется компьютер с огромным объемом памяти). Данный метод вскрытия требует знания открытого текста и его шифрованного эквивалента. Известный открытый текст зашифровывается на всех возможных 64-разрядных ключах, а известный шифрованный текст расшифровывается на всех возможных 64-разрядных ключах. Затем происходит сортировка и сравнение двух построенных множеств данных. Это означает, что потребуется всего лишь 257 испытаний, а не 2112. Если обнаружены два одинаковых текста, то это значит, что у нас есть возможные значения для пары неизвестных нам ключей. Будет найдено много ложных пар ключей (их окажется около 248, см. M27), их придется проверять на других известных парах открытого/шифрованного текстов. Такой метод "встречного поиска" в настоящее время невозможно реализовать практически, до и в обозримом будущем это вряд ли удастся.
Однако, стойкость DES-алгоритма чрезвычайно возрастает, если применить тройное шифрование. Потребуется всего два ключа, которые применяются следующим образом:
зашифровать сообщение на 1-м ключе;
расшифровать сообщение на 2-м ключе;
зашифровать сообщение на 1-м ключе.
Теперь противнику необходимо опробовать 2112 возможных пар ключей, а это считается невозможным ни за какое реальное время. Такое тройное DES-преобразование считается стойким и используется в настоящее время. Такая форма тройного шифрования имеет дополнительное преимущество, состоящее в том, что для двух одинаковых ключей оно становится идентично одинарному DES‑преобразованию. Это позволяет пользователю, применяющему тройное шифрование, связываться с пользователем, применяющим одинарное, и наоборот. В другой форме тройного шифрования на всех трех стадиях используются различные ключи. И снова совместимости с другими вариантами можно добиться, положив два или более ключа одинаковыми.