
- •Криптографическая защита информации
- •Оглавление
- •Раздел 1. Общие подходы к криптографической защите информации
- •Тема 1. Теоретические основы криптографии
- •1.1. Криптография
- •1.2. Управление секретными ключами
- •1.3. Инфраструктура открытых ключей.
- •1.4. Формальные модели шифров
- •1.5. Модели открытых текстов
- •Тема 2. Простейшие и исторические шифры и их анализ
- •Тема 3. Математические основы криптографии
- •3.1. Элементы алгебры и теории чисел
- •3.1.1. Модулярная арифметика. Основные определения.
- •3.1.2. Алгоритм Евклида нахождения наибольшего общего делителя
- •3.1.3. Взаимно простые числа
- •3.1.4. Наименьшее общее кратное
- •3.1.5. Простые числа
- •3.1.6. Сравнения
- •3.1.7. Классы вычетов
- •3.1.8. Функция Эйлера
- •3.1.9. Сравнения первой степени
- •3.1.10. Система сравнений первой степени
- •3.1.11. Первообразные корни
- •3.1.12. Индексы по модулям рk и 2рk
- •3.1.13. Символ Лежандра
- •3.1.14. Квадратичный закон взаимности
- •3.1.15. Символ Якоби
- •3.1.16. Цепные дроби
- •3.1.17. Подходящие дроби
- •3.1.18. Подходящие дроби в качестве наилучших приближений
- •3.2. Группы
- •3.2.1. Понятие группы
- •3.2.2. Подгруппы групп
- •3.2.3. Циклические группы
- •3.2.4. Гомоморфизмы групп
- •3.2.5. Группы подстановок
- •3.2.6. Действие группы на множестве
- •3.3. Кольца и поля
- •3.3.1. Определения
- •3.3.2. Подкольца
- •3.3.3. Гомоморфизмы колец
- •3.3.4. Евклидовы кольца
- •3.3.5. Простые и максимальные идеалы
- •3.3.6. Конечные расширения полей
- •3.3.7. Поле разложения
- •3.3.8. Конечные поля
- •3.3.9. Порядки неприводимых многочленов
- •3.3.10. Линейные рекуррентные последовательности
- •3.3.11. Последовательности максимального периода
- •3.3.12. Задания
- •Тема 4. Классификация шифров
- •4.1. Классификация шифров по типу преобразования
- •4.2. Классификация шифров замены
- •4.3 Шифры перестановки
- •4.3.1. Маршрутные перестановки
- •4.3.2. Элементы криптоанализа шифров перестановки
- •4.4. Шифры замены
- •4.4.1. Поточные шифры простой замены
- •4.4.2. Криптоанализ поточного шифра простой замены
- •4.4.3. Блочные шифры простой замены
- •4.4.4. Многоалфавитные шифры замены
- •4.4.5. Дисковые многоалфавитные шифры замены
- •4.5. Шифры гаммирования
- •4.5.1. Табличное гаммирование
- •4.5.2. О возможности восстановления вероятностей знаков гаммы
- •4.5.3. Восстановление текстов, зашифрованных неравновероятной гаммой
- •5.5.4. Повторное использование гаммы
- •4.5.5. Криптоанализ шифра Виженера
- •Тема 5. Поточные шифры
- •5.1. Принципы построения поточных шифрсистем
- •Примеры поточных шифрсистем
- •5.3. Линейные регистры сдвига
- •5.4. Алгоритм Берлекемпа-Месси
- •5.5. Усложнение линейных рекуррентных последовательностей
- •5.6. Методы анализа поточных шифров
- •6. Блочные шифры
- •6.1. Принципы построения блочных шифров
- •6.2. Примеры блочных шифров
- •6.3. Режимы использования блочных шифров
- •6.4. Комбинирование алгоритмов блочного шифрования
- •6.5. Методы анализа алгоритмов блочного шифрования
- •6.6. Рекомендации по использованию алгоритмов блочного шифрования
- •7. Криптографические хэш-функции
- •7.1. Функции хэширования и целостность данных
- •7.2. Ключевые функции хэширования
- •7.3. Бесключевые функции хэширования
- •7.4. Целостность данных и аутентификация сообщений
- •7.5. Возможные атаки на функции хэширования
- •Тема 8. Криптосистемы с открытым ключом
- •8.1. Шифрсистема rsa
- •8.2. Шифрсистема Эль-Гамаля
- •8.3. Шифрсистема Мак-Элиса
- •8.4. Шифрсистемы на основе "проблемы рюкзака"
5.5.4. Повторное использование гаммы
Как и раньше, мы предполагаем, что алфавит А открытыx текстов, гаммы и шифртекстов представляет собой множество чисел Zn= {0,1,...,п–1} .
Пусть в распоряжении криптоаналитика оказались две криптограммы, полученные наложением одной и той же гаммы на два разных открытых текста:
S1=T1+Г(mod n), S2 = Т2 + Г(mod n),
где
Рассмотрим возможности криптоаналитика по восстановлению исходных открытых текстов.
Прежде всего, можно найти позначную разность
S = S1 – S2 = T1 – Т2 (mod n).
Пусть S = {si}, i=1,2… . Тогда поставленная задача сводится к попытке подобрать пару открытых текстов, разность которых совпадает с известной последовательностью S . Будем в связи с этим говорить о разложении S на два составляющих открытых текста. В случае, когда данные тексты являются нормативными текстами, например, на русском, английском или другом языке, для решения последней задачи используется ряд подходов. Интуитивно понятно, что при достаточной длине текстов маловероятна возможность множественного представления данной последовательности S в виде разности T1 – T2. Как правило, такое разложение бывает единственным.
Один из таких подходов (хорошо известных из истории криптографии) связан с использованием некоторого запаса слов или словоформ, часто встречающихся в открытых текстах. Это могут быть, например, стандарты переписки, частые k-граммы и т. п.
Предположим
сначала, что одно из вероятных слов
встретилось в начале первого сообщения:
вероятное слово
В таком случае можно вычислить начало второго сообщения:
T2 =T1 – S.
Если l > 5, легко определить, является ли начало T2 читаемым" или нет. В первом случае нужно попытаться прочить начало T2 по смыслу. Во втором случае нужно сдвинуть начало вероятного слова в T1, и проделать то же самое.
Если удалось развить T2 до m знаков (т> l), то можно вычислить и соответствующие m –1 знаки, используя
T1 =T2 + S,
и попытаться, в свою очередь, развить по смыслу T1.
Продолжая этот процесс далее, мы частично или полностью восстановим оба текста или убедимся в том, что опробуемого вероятного слова данные тексты не содержат. В последнем случае следует попытаться ту же процедуру проделать для следующего вероятного слова.
Может оказаться так, что при опробовании некоторого слова удается восстановить лишь часть каждого из текстов, а дальнейшее развитие их по смыслу бесперспективно. В таком случае следует продолжить работу с другим вероятным словом.
Конечно, данный метод далеко не всегда приводит к успеху. Но нельзя пренебрегать шансом, который он дает.
Пример
Возьмем два текста на английском языке, содержащих наиболее часто встречающуюся триграмму THE:
T1 = THE APPLE, T2 = TELL THEM,
и зашифруем их одной и той же гаммой Г = ONETWOTHRE. При этом будем пользоваться числовыми значениями букв согласно следующей таблице:
00
|
01
|
02
|
03
|
04
|
05
|
06
|
07
|
08
|
09
|
10
|
11
|
12
|
А
|
В
|
С
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
К
|
L
|
M
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
N
|
0
|
Р
|
Q
|
R
|
S
|
Т
|
U
|
V
|
W
|
X
|
Y
|
Z
|
В результате зашифрования получаем:
T1
|
19
|
07
|
04
|
00
|
15
|
15
|
11
|
04
|
T2
|
19
|
04
|
11
|
11
|
19
|
07
|
04
|
12
|
Г
|
14
|
13
|
04
|
19
|
22
|
14
|
19
|
07
|
S1
|
07
|
20
|
08
|
19
|
11
|
03
|
04
|
11
|
S2
|
07
|
17
|
15
|
04
|
15
|
21
|
23
|
19
|
S
|
00
|
03
|
19
|
15
|
22
|
08
|
07
|
18
|
Предположим теперь, что триграмма THE находится в начале T1, тогда можно вычислить начало T2:
T1= T2+S=
|
Т
|
Н
|
Е
|
А
|
|
19
|
07
|
04
|
00
|
T2= T1– S= |
Т
|
Е
|
L
|
L
|
|
19
|
04
|
11
|
11
|
Дальнейшие попытки продолжить по смыслу T1 или T2 к успеху не приводят. Поэтому предположим, что T2 также содержит THE. С учетом полученного результата, мы получаем два варианта расположения триграммы THE в тексте T2. В первом из них триграмма THE расположена, начиная с пятой позиции, во втором – начиная с шестой позиции.
Рассмотрим первый вариант:
T2
|
19
|
04
|
11
|
11
|
19
|
07
|
04
|
|
Т
|
Е
|
L
|
L
|
Т
|
Н
|
Е
|
T1
|
19
|
07
|
04
|
00
|
15
|
15
|
11
|
|
Т
|
Н
|
Е
|
A
|
Р
|
Р
|
L
|
Теперь ясно, что T1 = THE APPLE, откуда получаем T2 = TELL THEM.
Идея другого способа разложения разности открытых текстов состоит в упорядочении возможных вариантов пар букв (ti, zi) по убыванию апостериорных вероятностей p(ti = v, z1 = v – u /si = и), и, v A, i = 1,2,... , построении для каждого i упорядоченных колонок, состоящих из таких пар, и попытке чтения (аналогичной изложенной выше) в колонках сразу двух открытых текстов. При этом (как и ранее) используются позначные модели рассматриваемых последовательностей и аналог формулы (9).