
- •Предисловие
- •Глава 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
Коды и шифры
Построение систем кодирования и шифрования претерпело в нынешние времена значительные изменения. Появление мощных персональных компьютеров привело к бурному развитию электронной почты, электронной торговли и электронных банковских операций. Как следствие, шифрование средств связи ради обеспечения безопасности стало важным вопросом, являющимся предметом общественного интереса. Эта книга посвящена описанию и анализу многих систем шифрования, начиная с наиболее ранних и элементарных и заканчивая самыми современными и сложными, такими как RSA и DES, и, кроме того, шифрмашин времен войны (таких, как "Энигма" и "Хагелин"), а также шифров, применяемых шпионами. Обсуждаются вопросы стойкости систем шифрования и возможные методы их дешифрования,
которые иллюстрированы примерами. Построение многих систем основано на передовых математических теориях, детальное изложение которых содержится в основном приложении. Эта книга предназначена для всех, интересующихся использованием кодов и шифров частными лицами, шпионами, правительствами и в отраслях экономики в течение всей истории человечества вплоть до нашего времени.
Роберт Чёрчхаус является Заслуженным Профессором вычислительной математики Кардиффского Университета, в настоящее время находится в отставке. Читал лекции по математике и криптоанализу в более чем 50-ти университетах и институтах по всему миру. Является также соавтором книг по применению компьютеров в математике, литературных и лингвистических исследованиях, а также по численному анализу.

2
Роберт Чёрчхаус
Коды и шифры
(Юлий Цезарь, "Энигма" и Интернет)
|
|
3 |
Предисловие |
|
8 |
Глава 1. Введение |
|
10 |
Некоторые аспекты безопасности связи |
10 |
|
Шифр Юлия Цезаря |
|
11 |
Несколько основных определений |
12 |
|
Три этапа дешифрования: |
идентификация, взлом системы и вскрытие ключей. |
13 |
Коды и шифры |
|
14 |
Оценка стойкости системы шифрования |
16 |
|
Коды, обнаруживающие и исправляющие ошибки |
17 |
|
Другие методы сокрытия содержания сообщений |
18 |
|
Модульная арифметика |
|
19 |
Модульное сложение и вычитание букв |
20 |
|
Род |
|
21 |
Заключение |
|
21 |
Глава 2. От Юлия Цезаря до простой замены |
23 |
|
Шифры Юлия Цезаря и их вскрытие |
23 |
|
Шифры простой замены |
|
25 |
Вскрытие шифра простой замены |
27 |
|
Частоты встречаемости букв в других языках, кроме английского |
35 |
|
Сколько знаков необходимо для дешифрования простой замены? |
37 |
|
Глава 3. Многоалфавитные системы |
39 |
|
Усиление системы Юлия Цезаря: шифры Вижанэра |
39 |
|
Вскрытие шифра Вижанэра |
|
41 |
Индикаторы |
|
45 |
Одноключевые сообщения |
|
45 |
Распознавание одноключевых сообщений |
46 |
|
Какой объем текста необходим для дешифрования шифра Вижанэра? |
49 |
|
Цилиндр Джефферсона |
|
49 |
Глава 4. Шифры-головоломки |
|
52 |
Перестановки |
|
52 |
Простая перестановка |
|
52 |
Двойная перестановка |
|
56 |
Другие виды перестановок |
|
60 |
Регулярные перестановочные таблицы |
60 |
|
Нерегулярные перестановочные таблицы |
63 |
|
Оценка стойкости шифров перестановки |
64 |
|
4 |
Общая концепция двойного шифрования |
65 |
Глава 5. Двухбуквенные шифры |
67 |
Замена "монограф-диграф" |
67 |
МДПМ-шифры |
69 |
Система "диграф-диграф" |
71 |
Шифр Плейфера |
72 |
Расшифрование в системе Плейфера |
73 |
Криптоаналитические аспекты системы Плейфера |
74 |
Двойной шифр Плейфера |
75 |
Глава 6. Коды |
78 |
Характеристики кодов |
78 |
Одночастевые и двухчастевые коды |
79 |
Код плюс аддитивное шифрование |
81 |
Глава 7. Шифры для шпионов |
87 |
Шифры-решетки |
88 |
Книжные шифры |
89 |
Использование книжного шифра |
90 |
Частоты встречаемости букв в книжных шифрах |
94 |
Вскрытие книжного шифра |
95 |
Индикаторы |
103 |
Катастрофические ошибки при использовании книжного шифра |
104 |
Шифры "агента Гарбо" |
106 |
Первый шифр "агента Гарбо" |
106 |
Второй шифр "агента Гарбо" |
106 |
Одноразовый блокнот |
110 |
Глава 8. Получение случайных чисел и букв |
112 |
Случайные последовательности |
112 |
Получение случайных последовательностей |
113 |
Бросание монеты |
113 |
Бросание костей |
114 |
Извлечение из урны (по типу лотереи) |
115 |
Космические лучи |
115 |
Шум от усилителей |
116 |
Псевдослучайные последовательности |
116 |
Линейные рекурренты |
117 |
Использование последовательности двоичных знаков гаммы для шифрования |
118 |
Двоичные линейные последовательности как генераторы гаммы |
120 |
|
5 |
Криптоанализ линейной рекурренты |
123 |
Повышение стойкости двоичной гаммы |
123 |
Генераторы псевдослучайных чисел |
125 |
Метод срединных квадратов |
126 |
Линейные конгруэнтные генераторы |
127 |
Глава 9. Шифрмашина "Энигма" |
130 |
Историческая справка |
130 |
Первая "Энигма" |
132 |
Шифрование с использованием контактных колес |
134 |
Шифрование в "Энигме" |
136 |
Коммутатор "Энигмы" |
139 |
Ахиллесова пята "Энигмы" |
140 |
Цепочки индикаторов в "Энигме" |
143 |
Выравнивание цепочек |
147 |
Идентификация колеса R1 и его угловой установки |
148 |
Двойное шифрование в "Энигме" |
151 |
"Энигма" Абвера |
151 |
Глава 10. Шифрмашина "Хагелин" |
153 |
Историческая справка |
153 |
Конструкция шифрмашины «Хагелин» |
154 |
Шифрование при помощи шифрмашины "Хагелин" |
156 |
Выбор установок барабана в шифрмашине "Хагелин" |
158 |
Теоретический объем перебора для шифрмашины "Хагелин" |
161 |
Вскрытие установок "Хагелина" по отрезку гаммы |
163 |
Дополнительные возможности шифрмашины "Хагелин" |
167 |
Смещение |
168 |
Определение смещения по шифрованному тексту |
168 |
Перекрытия |
169 |
Вскрытие шифрмашины "Хагелин" только по шифрованному тексту |
171 |
Глава 11. После "Энигмы" |
174 |
SZ42 - предтеча электронных машин |
174 |
Описание шифрмашины SZ42 |
175 |
Шифрование в машине SZ42 |
176 |
Вскрытие шифрмашины SZ42 и определение ее угловых установок |
178 |
Модификации шифрмашины SZ42 |
179 |
Глава 12. Криптография с открытым ключом |
181 |
Историческая справка |
181 |
|
6 |
Вопросы безопасности |
183 |
Защита программ и данных |
183 |
Шифрование программ, данных и сообщений |
185 |
Задача распределения ключей |
186 |
Система ключевого обмена Диффи-Хеллмана |
186 |
Стойкость системы Диффи-Хеллмана |
188 |
Глава 13. Шифрование и Интернет |
190 |
Обобщение шифра простой замены |
190 |
Факторизация больших целых чисел |
191 |
Стандартный метод факторизации |
192 |
Малая теорема Ферма |
194 |
Теорема Ферма-Эйлера (для случая системы RSA) |
195 |
Ключи зашифрования и расшифрования в системе RSA |
196 |
Процессы зашифрования и расшифрования в системе RSA |
198 |
Каким образом хозяин ключей отвечает корреспондентам? |
202 |
Американский Стандарт Шифрования Данных (DES) |
204 |
Общие сведения |
204 |
Процедура зашифрования |
205 |
Процедура расшифрования |
205 |
Стойкость DES-алгоритма |
205 |
Зацепление |
207 |
Реализации DES-алгоритма |
208 |
Совместное использование алгоритмов RSA и DES |
208 |
Полезное замечание |
209 |
После DES-алгоритма |
209 |
Проверка подлинности сообщения и удостоверение подлинности подписи |
210 |
Криптография эллиптической кривой |
211 |
Приложение. Математические вопросы |
213 |
Глава 2 |
213 |
М1. Совпадения знаков в алфавитах замены |
213 |
М2. Снижение стойкости при использовании взаимно-обратных алфавитов |
213 |
M3. Парадокс дней рождения |
214 |
Глава 3 |
215 |
М4. Евклидово доказательство бесконечности множества простых чисел |
215 |
Глава 6 |
216 |
М5. Последовательность чисел Фибоначчи |
216 |
Глава 7 |
217 |
М6. Частота встречаемости букв для книжного шифра |
217 |
М7. Одноразовый блокнот дешифровать невозможно |
219 |
Глава 8 |
219 |
М8. Частота появления случайных чисел на странице |
219 |
|
|
7 |
М9. Комбинирование двух последовательностей двоичных знаков гаммы, имеющих |
|
|
отклонения |
221 |
|
М10. Последовательность типа Фибоначчи |
221 |
|
М11. Двоичные линейные рекурренты |
222 |
|
M12. |
Восстановление двоичной линейной рекурренты по отрезку гаммы |
224 |
М13. Получение псевдослучайных чисел |
227 |
|
Глава 9 |
|
227 |
М14. Распайка колёс шифрмашины "Энигма" |
227 |
|
М15. Число возможных отражателей шифрмашины "Энигма" |
229 |
|
М16. Вероятность одноключевых сообщений для "Энигмы" |
230 |
|
М17. Среднее число индикаторов, необходимое для построения полных цепочек |
230 |
|
Глава 10 |
|
231 |
М18. Число возможных барабанов шифрмашины "Хагелин" |
231 |
|
М19. Максимальная кратность значения зацепления, которая может встретиться при |
|
|
вычислении разности гаммы шифрмашины "Хагелин" |
233 |
|
M20. Определение смещения шифрмашины "Хагелин" с помощью коэффициента корреляции234 |
||
Глава 13 |
|
235 |
M21. (Порядок роста количества простых чисел) |
235 |
|
M22. Вычисление остатка с использованием модульной арифметики |
236 |
|
М23. Доказательство теоремы Ферма-Эйлера |
237 |
|
М24. Нахождение чисел, "предположительно" являющихся простыми |
238 |
|
M25. Алгоритм Евклида |
239 |
|
М26. Эффективность возведения в степень методом последовательного возведения в квадрат241 |
||
М27. Число ложных ответов при дешифровании DES-алгоритма методом "встречного поиска "242 |
||
М28. Криптография эллиптической кривой |
242 |
|
Решения задач |
245 |
|
Глава 2 |
|
245 |
Глава 3 |
|
245 |
Глава 4 |
|
246 |
Глава 5 |
|
248 |
Глава 6 |
|
250 |
Глава 7 |
|
251 |
Глава 8 |
|
252 |
Глава 9 |
|
253 |
Глава 10 |
|
254 |
Глава 11 |
|
256 |
Глава 13 |
|
256 |
Литература |
258 |
8
Предисловие
Фактически каждый, кто умеет читать, неизбежно сталкивается с кодами или шифрами того или иного вида. Например, решая кроссворды даже эпизодически, вы обязательно познакомитесь с анаграммами, которые являются разновидностью шифра перестановки. Шифрованные сообщения встречаются в детских комиксах, в газетных частных объявлениях и во многих художественных произведениях, начиная с рассказов Конан Дойля и Эдгара Аллана По.
В наши дни многие имеют персональные компьютеры и пользуются системой Интернет. Поэтому они знают, что для отправки и получения электронной почты необходимо всякий раз вводить пароль, который шифруется и проверяется системой. В сфере бизнеса и коммерции, особенно когда перевод денежных средств производится с использованием электронной документации, решающими факторами становятся засвидетельствование подлинности содержания сообщения и подтверждение полномочий участников сделки. И наилучшим способом защиты от мошенничества в такой ситуации является шифрование.
Поэтому неудивительно, что коды и шифры в гораздо большей мере, чем раньше, входят в нашу повседневную жизнь. К тому же рассекречивание некоторых сторон деятельности дешифровальщиков из Блетчли во время войны, особенно касающихся шифрмашины "Энигма", и появление вслед за этим публикаций и телевизионных программ на эту тему привело к росту интереса со стороны широкой публики к так называемому "взламыванию кодов".
По сложности системы шифрования варьируются от самых элементарных до наиболее передовых. И если первые не требуют никаких математических познаний, то в последних часто используются понятия и методы, известные, может быть, лишь специалистам с университетским дипломом по математике, информатике и некоторым другим смежным дисциплинам. Возможно, вследствие этого большинство книг по кодам и шифрам не касается математики совершенно, другие же требуют от читателя блестящего знания всего арсенала математических концепций, методов, обозначений и языка.
Исходя из личного опыта, автор полагает, что лучше придерживаться золотой середины: вполне возможно, не вдаваясь во все подробности, объяснить неспециалистам сущность некоторых математических концепций, лежащих в основе даже наиболее современных систем шифрования. Поэтому я вижу свою задачу в том, чтобы познакомить широкого читателя с целым рядом кодов и шифров. Начав с древнейших и простейших систем, мы перейдем к описанию некоторых шифровальных машин времен войны и
9
закончим системами шифрования, которые используются в коммерческой сфере в настоящее время. В книге даны примеры использования и методы вскрытия различных систем шифрования. Однако в тех случаях, когда описание метода дешифрования сообщения реальной длины заняло бы много страниц, оно дается в сжатом виде (промежуточные этапы опускаются).
Основной текст книги содержит только необходимый минимум математических сведений, обозначений и терминов. Тех, кто хотел бы получить более глубокие познания, отсылаем к приложению, в котором содержится детальное описание и объяснение математических вопросов. В некоторых случаях в нем дан даже больший объем сведений, нежели необходимо по ходу изложения. Автор делает это намеренно в надежде поощрить читателя в стремлении продолжить изучение одной из самых увлекательных и полезных областей математики, которая находит применение как при "взламывании кодов", так и в других сферах.
Выражаю благодарность Университету Кардиффа за разрешение воспроизвести фотографии с 9.1 по 9.4 включительно, а также 10.1 и 10.2, а моему сыну Джону за разрешение воспроизвести фото 11.1. Я также признателен доктору Крису Хигли из Информационной Службы Университета Кардиффа за предоставленный мне материал, относящийся к главе 13, а также персоналу издательства Cambridge University Press, в особенности Роджеру Эстли и Питеру Джексону за безотказную помощь в течение всего периода подготовки этой книги.