- •Предисловие
- •Глава 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
- •Литература
254
Если теперь зашифровать вертикальные и диагональные пары в угловых положениях 1 и 2, то получится таблица Р.8. Два набора из пяти пар, приведенные в правых столбцах для этих двух случаев, оказываются полны противоречий. Поэтому мы отвергаем гипотезу о том, что колесо R1 при зашифровании индикаторов находилось в 1-м угловом положении. Если же теперь зашифровать те же пары в угловых положениях 3 и 4, то получаем таблицу Р.9, и пары, приведенные в ней, полностью согласуются друг с другом. Любая другая комбинация выравниваний цепочек и угловой установки колеса R1 приводит к противоречиям. Поэтому мы заключаем, что колесо R1 в начале процесса шифрования индикаторов на базовых угловых установках находилось в 3-м угловом положении. Если это так, то парами составного отражателя являются (0,5), (1,3), (2,8), (4,7) и (6,9).
Таблица Р.9
Пара |
Угловая установка 3 |
Пара |
Угловая установка 4 |
(5,7) |
(6,9) |
(5,7) |
(9,6) |
(1,9) |
(4,7) |
(1,0) |
(2,8) |
(8,0) |
(3,1) |
(8,2) |
(0,5) |
(4,2) |
(8,2) |
(4,3) |
(1,3) |
(6,3) |
(5,0) |
(6,9) |
(7,4) |
|
|
|
|
Глава 10
10.1 (Сообщение, зашифрованное на машине "Хагелин")
Поскольку барабан имеет вид (0,5,5,5,5,5), то единственно возможными значениями гаммы могут быть только 0, 5, 10, 15, 20 и 25. Частоты их встречаемости равны, соответственно, 1, 5, 10, 10, 5 и 1. Выпишем шесть строчек, содержащих возможные значения открытого текста на каждом из мест, если бы значение гаммы было равно, соответственно, 0, 5, 10, 15, 20 и 25. Используем при этом правило расшифрования, реализованное в шифрмашине "Хагелин":
(буква открытого текста) = (знак гаммы) - (буква шифрованного текста).
Шифрованный текст и шесть строк, соответствующих шести возможным значениям гаммы, приведены в таблице Р.10.
Таблица Р.10 |
|
|
|
|
Шифрован-ный |
|
|
|
|
текст |
C B Z P C |
C J X W Y |
C X S H N |
I Q U S R |
|
гамма = 0 |
Y |
Z |
B |
L |
Y |
гамма = 5 |
D |
E |
G |
Q |
D |
гамма = 10 |
I |
J |
L |
V |
I |
гамма = 15 |
N |
O |
Q |
A |
N |
гамма = 20 |
S |
T |
V |
F |
S |
гамма = 25 |
^ |
Y |
A |
K |
^ |
|
|
255 |
Y R D E C |
Y D I T N |
S K G I J |
D W I J H |
D I N Y S |
^ P L N O |
I B N O M |
I N S D ^ |
C U Q S T |
N G S T R |
N S ^ I C |
H Z V ^ Y |
S L ^ Y W |
S ^ C N H |
M E A C D |
^ U C D B |
^ C H S M |
R J F H I |
Открытый текст получается следующий:
SOLVING THIS IS EASY
Мы видим, что каждая из этих шести строчек содержит соответственно по
0, 3, 5, 8, 4 и 0
истинных букв открытого текста. Это хорошо согласуется с нашими теоретическими оценками распределения знаков гаммы, согласно которым в достаточно длинном тексте эти соотношения должны быть
1:5:10:10:5:1.
10.2 (Барабаны шифрмашины "Хагелин")
Все барабаны, кроме (b) и (e), генерируют все возможные значения гаммы по модулю 26. Барабан (b) не может дать значения гаммы 13 и 14. Барабан (e) не может дать значения гаммы 4, 12, 15 и 23. Заметим, что если барабан без перекрытий, в котором использованы 27 выступов, не может дать знак гаммы, равный N, то он не может также дать и знак, равный (27-N), поскольку зацепления должны давать в сумме 27, а при изменении штифтовых значений колес на обратные знак гаммы N меняется на (27-N).
10.3 (Барабан шифрмашины "Хагелин" с перекрытиями, дающий знак гаммы, равный 17)
К сожалению, не существует иного способа найти эти представления, кроме полного перебора. Однако число штифтовых комбинаций, которые необходимо проанализировать, можно сократить, если учесть, что в формировании данного знака гаммы участвует одно, и только одно из двух "больших" значений зацепления (11 и 9), поскольку в сумме они дадут 18 (то есть, 11+9-2), а оставшиеся четыре (7, 5, 3 и 1) дадут в сумме только 16, и перекрытия могут только уменьшить это число. Поэтому нужно рассмотреть только 32 из 64-х возможных штифтовых комбинаций.
Знак гаммы, равный 17, дают следующие шесть комбинаций:
256
OXXOXO |
дает |
(9+7+3)-(2)=17 |
OXXOXX |
дает |
(9+7+3+1)-(2+1)=17 |
OXXXOO |
дает |
(9+7+5)-(2+2)=17 |
XOOXOX |
дает |
(11+5+1)-(0)=17 |
XOOXXO |
дает |
(11+5+3)-(2)=17 |
XOOXXX |
дает |
(11+5+3+1)-(2+1)=17. |
Глава 11
11.1(Ошибки при установке штифтов в шифрмашинах "Хагелин" и SZ42)
(1)Оба шифрованных текста будут отличаться в каждой 23-й букве. В машине без перекрытий величина этого отличия равна зацеплению 23штифтового колеса. В машине с перекрытиями эта величина может принимать два или более значений в зависимости от того, как 23-штифтовое колесо перекрывается другими колёсами.
(2) Шифрованные тексты будут отличаться в каждой 31-й букве, причем отличие будет во втором разряде 5-битового представления буквы в коде МТК.
(3) 61-штифтовое колесо управляет движением 37-штифтового колеса, которое, в свою очередь, управляет всеми колёсами множества C. Поэтому 37-штифтовое колесо, а следовательно, и колёса множества C будут постепенно уходить всё дальше и дальше от своих правильных положений. Следовательно, начиная с некоторого момента (не далее 61-й буквы) шифрованные тексты будут различны, кроме возможных случайных совпадений.
Глава 13
13.1 (Шифрование в себя в системе RSA)
Нам необходимо вычислить по модулю 3127 значения 53017 и 53117. Это просто, поскольку 17 = 16 + 1. Следовательно, нам необходимо вычислить 16-ю степень каждого из этих чисел путем четырехкратного возведения их в квадрат.
5302 = 280900 = 89 3127+2597 2597(mod 3127),
поэтому
5304 = 25972 = 6744409 = 2156 3127+2597 2597(mod 3127);
откуда следует, что 53016 25978 2597(mod 3127), и отсюда получаем
53017 530 2597 = 1376410 = 440 3127+530 530(mod 3127).
257
Итак, число 530 при зашифровании по системе RSA переходит в себя. В случае числа 531 получаем
5312 = 281961 = 90 3127+531 531(mod 3127),
и следовательно,
53117 531 (531)16 531 531 531(mod 3127).
Итак, число 531 также переходит в себя при зашифровании по системе RSA.