- •Предисловие
- •Глава 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
- •Литература
245
Решения задач
Глава 2
2.1 (Простая замена)
После расстановки "пробелов" на месте букв Z получаем открытый текст:
A SOLEMN LITTLE REMINDER FROM AN ANCIENT POET THE MOVING FINGER WRITES AND HAVING WRIT MOVES ON NOR ALL THY PIETY NOR WIT SHALL LURE IT
BACK TO CANCEL HALF A LINE NOR ALL THY TEARS WASH OUT A WORD OF IT
Это четверостишие из книги "Рубаи" Омара Хайяма в переводе на английский Эдварда Фитцджеральда.
Глава 3
3.1 (Три сообщения, зашифрованные по Вижанэру)
Поскольку открытые тексты сообщений одинаковые, то при выравнивании сообщений относительно друг друга мы получим совпадение букв шифрованного текста только в том случае, если соответствующие буквы ключевых слов также совпадают. Криптоаналитик обязательно заметит, что если записать тексты в строки по восемь знаков, в шифрованных сообщениях
(1) и (2) имеется довольно много совпадений, и все они попадают в три столбца. То же самое, но в меньшей степени, справедливо для шифрованных сообщений (2) и(3), где все совпадения попадают в один столбец; однако между шифрованными сообщениями (1) и(3) совпадений нет вообще. Это происходит из-за того, что все ключевые слова имеют длину 8, и
–в словах RHAPSODY и SYMPHONY одинаковые буквы стоят на 4-м, 6-м и 8-м местах;
–в словах SYMPHONY и SCHUBERT совпадают только начальные буквы;
–в словах RHAPSODY и SCHUBERT нет одинаковых букв на одних и тех же местах.
Если шифрованные тексты, получившиеся в результате зашифрования сообщения с использованием данных трех ключевых слов, выписать в три строки друг под другом блоками из восьми букв, то получим:
EVWMAGARáYLXIAAHVáWVRMSZOVáXVOSPAHL
FMIMPGKRáZCJIPARVáXMDMHZYVáYMASEARL
246
FQDRJWOMáZGENJQVQáXQYRBPCQáYQVXYQVG
OAOMUCPCáOAOMLVHVáRPDMGTARáYLXESFWW
PRAMJCZCáPRAMAVRVáSGPMVTKRáZCJEHFGW
PVVRDSDXáPVVRULVQáSKKRPJOMáZGEJBVKR
Сообщения (1) и (2), а также (2) и (3) являются частично одноключевыми. Такое наблюдение быстро приведет нас к решению задачи.
3.2 (Вскрытие шифра Вижанэра)
Анализ шифрованного текста выявляет несколько диграфов, которые повторяются не менее четырех раз; среди них есть такие, которые допускают расширение до повторения трех или четырех букв, в том числе: ZMUI, который встречается на 15-м и 135-м местах; ZMUE - на 67-м и 163-м местах; и KRD - на 4-м, 8-м, 172-м и 176-м местах. Все интервалы между этими повторениями кратны 4. Поэтому мы заключаем, что ключ имеет длину 4.
Проанализировав четыре получившихся распределения частот встречаемости знаков шифрованного текста, мы находим, что в первом алфавите в шифрованном тексте "пробелу" почти наверняка соответствует буква M; в третьем алфавите - буква Z; в четвертом - буква S; по второму алфавиту у нас меньше информации, однако с некоторой долей вероятности можно предположить, что "пробел" обозначен буквой D. Благодаря этому можно сделать вывод, что ключ, скорее всего, равен 13-4-0-19, что эквивалентно ключевому слову NEAT.
Это подтверждается расшифрованием нескольких слов. Заменяя Z на "пробел", получаем открытый текст:
THERE ARE SOME THEOREMS WITH A PROOF WHICH IS SO SHORT AND ELEGANT THAT IT SEEMS UNLIKELY THAT A BETTER ONE WILL EVER BE FOUND SUCH IS THE CASE WITH EUCLIDS PROOF THAT THERE ARE AN INFINITE NUMBER OF PRIMES THE PROOF IS IN THE APPENDIX IN THIS BOOK*).
Глава 4
4.1 (Простая перестановка)
Если длина ключа равна 6, то каждый столбец перестановочной таблицы
*) Перевод открытого текста: "Для некоторых теорем найдены столь короткие и красивые доказательства, что, скорее всего, лучшего доказательства никогда на удастся найти. Именно таково доказательство бесконечности ряда простых чисел, предложенное Евклидом. Это доказательство приведено в приложении к этой книге." (см. приложение М4).
247
содержит пять букв; поэтому впишем шифрованный текст по столбцам в таблицу P.1.
Таблица P.1
1 |
2 |
3 |
4 |
5 |
6 |
L |
S |
L |
A |
H |
I |
P |
C |
A |
M |
O |
R |
E |
E |
E |
H |
T |
T |
U |
O |
M |
S |
A |
M |
D |
E |
A |
S |
R |
Y |
|
|
|
|
|
|
По-видимому, третья строка может содержать триграф THE. Это подсказывает нам, что столбец 5 или столбец 6 должен стоять сразу же слева от столбца 4. Изучение других диграфов в парах столбцов 5-4 и 6-4 указывает на то, что более вероятной является пара 5-4. Если мы правильно угадали взаимное расположение столбцов 5-4, и слово THE там действительно присутствует, то столбец 4 должен стоять перед одним из столбцов 1, 2 или 3. На данный момент это не очень нам помогает. Поэтому перейдем к анализу других вариантов, в надежде обнаружить столбец, стоящий перед столбцом 5. Мы отметим, что единственным вероятным диграфом в строке 1 является SH, что означает, что столбец 2 должен стоять непосредственно слева от столбца 5. В результате получим частично определенный вероятный порядок столбцов 2-5-4. Если выписать эти три столбца в указанном порядке, то получается таблица P.2.
Таблица P.2
2 |
5 |
4 |
S |
H |
A |
C |
O |
M |
E |
T |
H |
O |
A |
S |
E |
R |
S |
|
|
|
Теперь получить решение довольно легко. Ключ равен 2á5á4á1á3á6, а открытый текст, после расстановки пробелов, будет иметь вид:
SHALLáIáCOMPAREáTHEEáTOáAáSUMMERSáDAY.
4.2(Число возможных перестановочных таблиц)
Вданном конкретном случае, когда девять букв располагаются в трех столбцах, получаются следующие варианты:
248
7, 1, 1; 1, 7, 1; 1, 1, 7; 6, 2, 1; 6, 1, 2; 2, 6, 1; 2, 1, 6; 1, 6, 2; 1, 2, 6;
5, 3, 1; 5, 1, 3; 3, 5, 1; 3, 1, 5; 1, 5, 3; 1, 3, 5; 5, 2, 2; 2, 5, 2; 2, 2, 5; 4, 4, 1; 4, 1, 4; 1, 4, 4;
4, 3, 2; 4, 2, 3; 3, 4, 2; 3, 2, 4; 2, 4, 3; 2, 3, 4; 3, 3, 3.
Всего их 28 (так как никакой столбец в таблице не может иметь 0 букв). Это является частным случаем более общей задачи:
Сколько существует способов представления числа n в виде суммы k натуральных чисел, если учитывается порядок расположения слагаемых?
Можно показать (см. приложение М18), что это число равно
(n 1)! . (k 1)!(n k)!
Подставляя значения n=9 и k=3, получаем
8! |
|
|
8 7 |
28 . |
|
2!6! |
2 |
||||
|
|
Если n=35, а k=5, то соответствующее число равно (34 33 32 31)/24=46376.
4.3 (Запись в перестановочную таблицу по системе Bousrophedon) Каждый второй вертикальный диграф в первом и в последнем столбце попадет в шифрованный текст без изменения.
Глава 5
5.1. (МДПМ)
Шифрованный текст имеет следующий вид:
CFIGS FLTBC XKEEA EBHTB GLDPI.
Перестановочная таблица 5 5 показана в таблице Р.3.
Таблица Р.3
|
A |
B |
C |
D |
E |
A |
A |
B |
S |
O |
L |
B |
U |
T |
E |
C |
D |
C |
F |
G |
H |
I |
K |
249
D |
M |
N |
P |
Q |
R |
E |
V |
W |
X |
Y |
Z |
|
|
|
|
|
|
Расшифрование начнем с преобразования монографов обратно в диграфы:
BDCAC DCBAC CAAEB BABBD ECCEB CBCAA BCABC CBBAB CBAEB EDCCD
Таблица Р.4
3 |
1 |
5 |
2 |
4 |
E |
B |
C |
C |
B |
C |
D |
B |
A |
C |
C |
C |
A |
A |
A |
E |
A |
E |
E |
B |
B |
C |
B |
B |
C |
C |
D |
E |
B |
C |
B |
C |
D |
A |
B |
C |
B |
C |
B |
B |
A |
A |
C |
B |
A |
A |
C |
D |
D |
B |
|
|
|
|
|
Перестановка равна 3-1-5-2-4. Поэтому впишем этот текст по вертикали в прямоугольник из пяти столбцов, порядок которых задается перестановкой, см. таблицу Р.4. И наконец, восстановим открытый текст, считывая его из таблицы построчно и преобразуя диграфы обратно в монографы по той же самой таблице 5 5 (см. таблицу Р.3). В результате получаем текст:
WHENSHALLWETHREEMEETAGAIN.
После расстановки пробелов получаем первую строку из трагедии Шекспира "Макбет":
WHEN SHALL WE THREE MEET AGAIN.
5.2. (Шифр Плейфера)
При ключевом слове RHAPSODY таблица зашифрования для шифра Плейфера будет такой, как показано в таблице Р.5.
Таблица Р.5
R |
H |
A |
P |
S |
O |
D |
Y |
B |
C |
E |
F |
G |
I |
K |
L |
M |
N |
Q |
T |