
125 Кібербезпека / 4 Курс / 4.2_Управління інформаційною безпекою / Лiтература / V_P_Babak_A_A_Kliuchnykov-Teoreticheskye_osnovy_zashchity_informat
...pdf
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
мощью блочного шифра. В случае, когда последовательность случайна (например, снятая из физического датчика) и каждый ее фрагмент используется только один раз, получаем криптосистему с одноразовым ключом.
Метод простои замены. В этом режиме блоки открытого текста шифруются независимо от других блоков на одном ключе (рис. 8.10). Этот режим назван режимом электронной кодовой книги, поскольку теоретически существует возможность создать книгу, в которой каждому блоку открытого текста будет отвечать блок зашифрованного текста.
Открытый |
Зашифрованный |
|
Открытый |
||
|
текст |
||||
текст |
Алгоритм |
текст |
Алгоритм |
||
|
|||||
блочного |
блочного |
|
|||
|
|
|
|||
|
шифрования |
|
шифрования |
|
|
|
Ключ |
|
Ключ |
|
|
|
Рис. 8.10. Режим простой замены |
|
|||
Однако в случае, когда длина блока равняется 64 битам, книга содержит |
|||||
264 записей, и каждая книга будет отвечать одному ключу. |
|
||||
Шифрование |
может быть |
описано зависимостью Ci F(Pi ) для |
|||
i 1, ..., N, где Ci |
и Pi - блоки соответственно зашифрованного и открытого |
текста, а F - криптографическое преобразование, реализованное алгоритмом блочного шифрования.
Идентичные блоки открытого текста на том же ключе будут зашифрованы одинаково. С точки зрения криптоанализа этот режим является наиболее «слабым» (поскольку существует большое количество криптографических атак).
Метод усложненного гаммирования. В этом режиме алгоритм блочно-
го шифрования используется для осложнения предыдущей гаммы, выработанной одноканальной линией задержки (рис. 8.11). Ошибка во время передачи всего сообщения приводит к искажению при расшифровывании только одного блока. Таким образом, в случае использования этой методики делается невозможным распространение ошибки за счет рассинхронизации узлов вычисления предыдущей гамы на передающей и приемной стороне.
Для предотвращения этого нежелательного явления на практике применяются устройства синхронизации работы шифраторов, если шифратор реализуется аппаратно. Начальное состояние узла создания исходной гаммы задается инициализирующим вектором (синхропосылка), который передается по открытым каналам связи в зашифрованном или открытом виде. Гамма, полученная узлом генерации предыдущей гами, обрабатывается согласно алгоритму блочного шифрования, после чего результирующая гамма подытоживается по модулю с блоком открытого текста.
590

Глава 8. Шифрование и дешифрование информации
Узел генерировання |
Узел генерировання |
||
|
|
||
предыдущей гаммы |
предыдущей гаммы |
||
|
|
||
Гамма |
|
|
Гамма |
|
|
|
|
Алгоритм блочного |
Алгоритм блочного |
||
шифрования |
|
||
|
|
шифрования |
|
|
|
|
|
Открытый |
Зашифрованный |
Открытый |
|
текст |
|
текст |
текст |
Рис. 8.11. Режим гаммирования
Шифрование можно представить как Ci Pi F(Yi ), i 1, ..., N, где Yj - созданная гамма; Yt - синхропосылка.
Метод гаммирования с самовосстановлением. Этот режим характери-
зуется тем, что шифратор в этом случае имеет свойство самосинхронизации
(рис. 8.12).
Накопление |
|
Накопление |
Алгоритм |
|
Алгоритм |
блочного |
|
блочного |
шифрования |
|
шифрования |
Открытый |
|
Открытый |
текст |
Зашифрованный |
текст |
|
текст |
|
Рис. 8.12. Режим гаммирования с самовосстановлением
Начальное заполнение накопления, которое на практике обычно реализуется в виде регистра сдвига, есть синхропосылкой Yt , которая передается по открытому каналу передачи данных. Математическое представление шиф-
рования имеет вид C P F(Y ), |
C P F(Y |
). Соответственно расшиф- |
||||
1 |
1 |
i |
i |
i 1 |
|
|
ровывание имеет вид P C F(Y ), P C |
F(C |
|
). |
|||
1 |
1 |
i |
i |
i 1 |
|
Алгоритм блочного шифрования Файстеля (Стандарт DES). Алгоритм шифрования данных (DES — Data Encryption Standard) 1977 года был принят в США как федеральный. В стандарт входит описание блочного шифра типа
591

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
шифра Файстеля, а также разных режимов его работы как составляющих нескольких процедур криптографического преобразования данных.
Обычно под аббревиатурой DES понимают именно блочный шифр, который в стандарте отвечает процедуре шифрования в режиме электронной кодовой книги (ECB — Elесtrоnic Соdеbооk Моdе) (рис. 8.13).
Вход
IP
|
|
L0 |
|
R0 |
X 1 |
|
|
|
|
|
|
|
|
|
f ( R 0 , X ) |
|
|
L |
1 |
R |
0 |
R1 L0 f (R0, X) |
|
|
|
|
X 2 |
||
|
|
|
|
|
|
|
f (R1 , X ) |
|
|
L15 R 14 |
R15 L14 f (R14, X) |
|||
|
|
|
|
X16 |
|
|
f (R15 , X ) |
|
|
L R |
15 |
R L f (R ,X) |
||
16 |
16 |
15 |
15 |
|
|
R16 |
L16 |
|
|
|
|
IP |
|
|
|
|
Выход |
|
|
|
Рис. 8.13. Алгоритм DES |
|
|
Название объясняется тем, что любой блочный шифр является простым шифром подстановки и подобный кодовой книге (табл. 8.1).
592

Глава 8. Шифрование и дешифрование информации
Таблица 8.1
58 |
50 |
42 |
34 |
26 |
18 |
10 |
2 |
|
|
|
|
|
|
|
|
60 |
52 |
44 |
36 |
28 |
20 |
12 |
4 |
|
|
|
|
|
|
|
|
62 |
54 |
46 |
38 |
30 |
22 |
14 |
6 |
|
|
|
|
|
|
|
|
64 |
56 |
48 |
40 |
32 |
24 |
16 |
8 |
|
|
|
|
|
|
|
|
57 |
49 |
41 |
33 |
25 |
17 |
9 |
1 |
|
|
|
|
|
|
|
|
59 |
51 |
43 |
35 |
27 |
19 |
11 |
3 |
|
|
|
|
|
|
|
|
61 |
53 |
45 |
37 |
29 |
21 |
13 |
5 |
|
|
|
|
|
|
|
|
63 |
55 |
47 |
39 |
31 |
23 |
15 |
7 |
|
|
|
|
|
|
|
|
Пример. Процедура формирования подключей. На каждом цикле (рис. |
||
8.14) из ключа X длиной 56 бит формируется ключ X i |
размером 48 бит. |
|
|
X (56 8) |
|
|
PC1 |
|
Регистр С |
Регистр D |
|
|
Сдвиг |
|
Регистр С |
Регистр D |
|
|
PC2 |
|
Рис.8.14. Алгоритм формирования ключей DES |
Сам ключ X размещается в восьмибайтовом слове, причем восемь разрядов каждого байта являются контрольными и в ключ не входят. Перед шифрованием в соответствии с процедурой выбора PC1 (табл. 8.2) из X выбираются 56 бит, которыми заполняются два регистра (C и D) длиной 28
бит каждый.
В дальнейшем при входе в дежурный цикл с номером и регистры сдвигаются циклически влево. Размер сдвига зависит от номера цикла, но является фиксированным и предварительно известным.
593

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Таблица 8.2
|
|
Заполнение С |
|
|
|
|
Заполнение D |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
49 |
41 |
33 |
25 |
17 |
9 |
63 |
55 |
47 |
39 |
31 |
23 |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
58 |
50 |
42 |
34 |
26 |
18 |
7 |
62 |
54 |
46 |
38 |
30 |
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
2 |
59 |
51 |
43 |
35 |
27 |
14 |
6 |
61 |
53 |
45 |
37 |
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
11 |
3 |
60 |
52 |
44 |
36 |
21 |
13 |
5 |
28 |
20 |
12 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После сдвига оба подблока совмещаются в порядке (C, D). Дальше в соответствии с функцией выбора Рс2 (табл. 8.3) из них выбираются 48 бит подключа Хи.
Таблица 8.3
14 |
17 |
11 |
24 |
1 |
5 |
3 |
28 |
|
|
|
|
|
|
|
|
15 |
6 |
21 |
10 |
23 |
19 |
12 |
4 |
|
|
|
|
|
|
|
|
26 |
8 |
16 |
7 |
27 |
20 |
13 |
2 |
|
|
|
|
|
|
|
|
41 |
52 |
31 |
37 |
47 |
55 |
30 |
40 |
|
|
|
|
|
|
|
|
51 |
45 |
33 |
48 |
44 |
49 |
39 |
56 |
|
|
|
|
|
|
|
|
34 |
53 |
46 |
42 |
50 |
36 |
29 |
32 |
|
|
|
|
|
|
|
|
Шифрование и расшифровывание отличаются направлением сдвигов
(табл. 8.4).
Таблица 8.4
Номер цикла |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сдвиг влево (шиф- |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
|
рование) |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сдвиг вправо (рас- |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
|
шифровывание) |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выбор бит по табл. 8.2—8.4 из соответствующих блоков выполняется таким способом. Таблица рассматривается как последовательность ее строк, записанных друг за другом, начиная с первой строки. Биты блока данных нумеруются слева и справа, начиная с единицы. Каждая ячейка s таблицы рассматривается как номер бита bs в блоке данных. Преобразование заключается
в замене всех элементов s на биты.
Циклическая функция выполняет такие действия.
594

Глава 8. Шифрование и дешифрование информации
1. Расширение блока Ri 1 до 48 бит за счет повторения битов блока с помощью функции расширения EP (табл. 8.5).
2.Поразрядное добавление результата к ключу.
3.Преобразование полученной суммы с помощью замены (с использованием так называемых S-блоков), в результате которого образуется блок длиной 32 бита.
|
|
|
|
|
Таблица 8.5 |
|
|
|
|
|
|
|
|
32 |
1 |
2 |
3 |
4 |
|
5 |
|
|
|
|
|
|
|
4 |
5 |
6 |
7 |
8 |
|
9 |
|
|
|
|
|
|
|
8 |
9 |
10 |
11 |
12 |
|
13 |
|
|
|
|
|
|
|
12 |
13 |
14 |
15 |
16 |
|
17 |
|
|
|
|
|
|
|
16 |
17 |
18 |
19 |
20 |
|
21 |
|
|
|
|
|
|
|
20 |
21 |
22 |
23 |
24 |
|
25 |
|
|
|
|
|
|
|
24 |
25 |
26 |
27 |
28 |
|
29 |
|
|
|
|
|
|
|
28 |
29 |
30 |
31 |
32 |
|
1 |
|
|
|
|
|
|
|
4. Применение перестановки P (табл. 8.6), которое дает значение функции.
Таблица 8.6
16 |
7 |
20 |
21 |
29 |
12 |
28 |
17 |
1 |
15 |
23 |
26 |
5 |
18 |
31 |
10 |
2 |
8 |
24 |
14 |
32 |
27 |
3 |
9 |
19 |
13 |
30 |
16 |
22 |
11 |
4 |
25 |
Механизм действия S-блоков. Преобразование, с помощью которого 48-розрядный блок превращается в 32-разрядный, сводится к выбору восьми тетрад из семи таблиц (S-блоков) размером 4×16. Из каждого S-блока выбирается одна тетрада. Для этого 48-разрядный блок разделяется последовательно на 8 комбинаций, по 6 бит каждая.
Первая комбинация (слева) является входом в первый S-блок, вторая - во второй и т. д. При этом первый и последний биты комбинации задают номер строки, а остальные 4 бита - номер столбца S-блока, на пересечении которых содержится соответствующая тетрада.
На практике чаще всего используется тройной алгоритм шифрования Triple DES (рис. 8.15), который имеет большую криптостойкость.
595

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Инициализирующий
вектор
Ключ 1 |
DEC (шифрование) |
Ключ 2 DEC (расшифровывание)
Ключ 3 |
DEC (шифрование) |
|
|
||
Открытый |
XOR |
|
текст |
||
|
Закрытый
текст
Рис. 8.15. Алгоритм шифрования Triple DES
Это, в сущности, тот же DES, только шифрование происходит трижды, следовательно, можем задавать три разных ключа и вектор инициализации. Шифрование будет происходить не за 16, а за 48 тактов (рис. 8.16). То есть нам нужно установить вектор инициализации, три ключа и данные и после 48-го такта на выходе получить результат.
Открытый |
DES |
DES |
DES |
Зашифрованный |
текст |
(шифрование) |
(расшифровывание) |
(шифрование) |
текст |
|
K1 |
K2 |
K3 |
|
Рис. 8.16.Схема тройного DES
Многолетний опыт эксплуатации DES и его открытость (исходные тексты алгоритма и документацию на него можно найти в открытых источниках) привели к тому, что DES стал одним из более популярных алгоритмов с точки зрения проверки тех или других методов расшифровывания и криптоанализа. Среди основных недостатков DES, которые существенно снижают уровень его безопасности, можно выделить такие:
наличие слабых ключей, предопределенное тем, что при генерации ключевой последовательности используются два регистра сдвига, которые работают независимо друг от друга;
небольшая длина ключа 56 бит (или 64 бита с контролем парности). На современном уровне развития микропроцессорных средств данная длина
596

Глава 8. Шифрование и дешифрование информации
ключа не может обеспечивать надлежащей защиты для некоторых типов информации. Применение тройного DES (Triple DES) не дает ощутимого
результата, хотя в новой версии используются три |
разных ключа |
K1, K2 , K3 . Суть в том, что в окончательном итоге робота с тремя клю- |
|
чами эквивалентная зашифровыванию на другом ключе K4 , |
т. е. для любых |
K1, K2 , K3 найдется такой ключ K4 , когда |
|
ЕК3 DK2 EK1 (P) EK4 (P); |
|
избыточность ключа, которая предопределена контролем четности для каждого отдельного байта ключа;
использование статических подстановок в S-блоках, что, несмотря на большое количество раундов, дает возможность проводить атаки на этот алгоритм.
Асимметричные системы характеризуются тем, что для шифрования и дешифрации используются разные ключи, связанные между собой некоторой математической зависимостью. При этом отмеченная зависимость такая, что найти один ключ, зная другой, путем вычислений очень трудно.
Один из ключей (например, ключ шифрования) может быть общедоступным, и в этом случае проблема получения общего секретного ключа для связи отпадает. Если сделать общедоступным ключ расшифровывания, то на базе полученной системы можно построить систему аутентификации переданных сообщений. Поскольку по большей части один ключ из пары делается общедоступным, такие системы получили также название криптосистем с
открытым ключом.
Криптосистема с открытым ключом определяется тремя этапами реализации алгоритмов: генерации ключей, шифрования и расшифровывания.
Алгоритм генерации ключей открыт, любой пользователь может подать ему на вход случайную строку r надлежащей длины и получить пару ключей (k1, k2 ). Один из ключей (например, k1 ) публикуется — он называется открытым, а второй — его называют секретным — сохраняется в тайне.
Алгоритмы шифрования EK1 и расшифровывания DK2 таковы, что для любого открытого текста:
m DK2 EK1 (m) m.
Рассмотрим теперь гипотетическую атаку злоумышленника на эту систему. Злоумышленнику известен открытый ключ K1 , но неизвестен соот-
ветствующий секретный ключ K2 . Противник перехватил криптограмму d и пытается найти сообщение m, где d EK1 (m) . Поскольку алгоритм шифрова-
ния открыт, противник может просто последовательно перебрать все возможные сообщения длины n, вычислить для каждого такого сообщения mi
597

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
криптограмму di EK1 (mi ) и уравнять ее с d. То сообщение, для которого
di d, и будет открытым текстом. Если система имеет такие технические возможности, то открытый текст будет найден достаточно быстро. А в худшем случае перебор будет выполнен за время порядка 2n (n), где T (n) —
время, необходимое для шифрования сообщения длины п. Если сообщения имеют длину порядка 1000 бит, то такой перебор невыполним на практике ни на одном из мощных компьютеров.
Мы рассмотрели лишь один из возможных способов атаки на криптосистему и самый простой алгоритм поиска открытого текста, названный алгоритмом полного перебора. Используется также другое название: метод грубой силы. Другой самый простой алгоритм поиска открытого текста — угадывание. Этот очевидный алгоритм требует небольших вычислений, но срабатывает с очень малой вероятностью (при больших длинах текстов). В действительности противник может пытаться атаковать криптосистему разными способами, используя разные более утонченные алгоритмы поиска открытого текста. Кроме того, злоумышленник может попробовать возобновить секретный ключ, используя знание (в общем случае несекретные) о математической зависимости между открытым и секретным ключами. Естественно считать криптосистему стойкой, если любой такой алгоритм нуждается практически в неисполнимом объеме вычислений или срабатывает с очень малой вероятностью. (При этом противник может использовать не только детерминированные, но и вероятностные алгоритмы). Это и есть теоретически сложный подход к определению стойкости.
Для его реализации относительно того или другого типа криптографических систем необходимо выполнить такие действия:
1)дать формальное определение системы соответствующего типа;
2)дать формальное определение стойкости системы;
3)доказать стойкость конкретной конструкции системы этого типа.
Односторонние (однонаправленные функции асимметричных крип-
тографических систем. Центральным понятием в теории криптографических систем является понятие односторонней функции.
Односторонней функцией называется эффективно вычисляемая математическая функция, для обращения которой (т.е. для поиска хотя бы одного значения аргумента которой по заданному значению функции) не существует эффективных алгоритмов восстановления.
Формальное понятие односторонней функции описывается так.
Парная функция f называется односторонней, если:
1)существует алгоритм А, который для любого x вычисляет f(x);
2)для любой полиномиальной вероятности
f A f x f x 1 p n .
598

Глава 8. Шифрование и дешифрование информации
Второе условие качественно означает такое. |
|
|
|
|
|||||||||
Любая |
полиномиальная |
вероятностная |
машина |
|
|
|
|
||||||
Тьюринга A может по данным y найти x из урав- |
|
|
|
|
|||||||||
нения |
f (x) y лишь с очень малой вероятностью. |
|
|
|
|
||||||||
Отметим, что требование правдивости опу- |
|
|
|
|
|||||||||
стить |
нельзя. |
|
Поскольку |
длина |
входного слова |
|
|
|
|
||||
f (x) машины A равняется m, ей может просто не |
|
|
|
|
|||||||||
хватить полиномиальной от m времени на выписы- |
|
|
|
|
|||||||||
вание строки x. |
|
|
|
|
|
Рональд Лин |
|
||||||
Существование односторонних функций являет- |
Ривест (Ronald |
|
|||||||||||
ся необходимым условием стойкости многих крип- |
Linn Rivest, 1947), |
||||||||||||
тосистем. |
Рассмотрим функцию |
f , |
такую что |
криптограф. |
Наиболее |
||||||||
известен |
изобретением |
||||||||||||
f (r) K1. |
Она вычисляется с помощью алгоритма |
||||||||||||
алгоритма RSA вместе с |
|||||||||||||
G. Покажем, |
что когда |
f — не односторонняя |
Леонардом |
Адлеманом |
|||||||||
функция, то криптосистема неустойчива. |
|
|
и Ади |
Шамиром. Ри- |
|||||||||
|
|
вест также изобретатель |
|||||||||||
Отметим, что существует полиномиальный ве- |
|||||||||||||
симметричных |
алгорит- |
||||||||||||
роятностный алгоритм A, |
вращающий |
f |
с вероят- |
||||||||||
мов шифро-вания RC2, |
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||
ностью по крайней мере |
1/ p(n), |
для некоторого |
RC4, RC5 |
и |
соавтор |
||||||||
полинома p. Злоумышленник может подать на вход |
RC6. Ему также при- |
||||||||||||
K1 и получить с указанной вероятностью некоторое |
надлежит |
авторство |
|||||||||||
криптографических |
|||||||||||||
значение r из прообраза. Дальше злоумышленник |
|||||||||||||
хеш-функций |
MD2, |
||||||||||||
|
r на вход алгоритма G и получает пару |
||||||||||||
подает |
MD4 и MD5. В 2006 г. |
||||||||||||
ключей (K , K ). Хотя K |
не обязательно совпадает |
опубликовал свое изоб- |
|||||||||||
|
|
1 |
2 |
2 |
|
|
|
|
ретение |
системы голо- |
|||
с K2 , по определению криптосистемы |
|
|
|||||||||||
|
|
сования |
Three |
Ballot - |
|||||||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
DK2 (EK1 (m)) m |
|
|
|
инновационной |
систе- |
||||
|
|
|
|
|
|
|
мы, способной разли- |
||||||
|
|
|
|
|
|
|
|
|
чать, учтен ли голос |
||||
для любого открытого текста m. |
|
|
|
конкретного избирате- |
|||||||||
|
|
|
ля при сохранении тай- |
||||||||||
Поскольку |
K найдено с вероятностью 1/ p(n), |
||||||||||||
ны голосования. |
|||||||||||||
|
|
|
|
2 |
|
|
|
|
схема нестойкая.
Функцией-ловушкой называется односторонняя функция, для которой обратную функцию вычислить просто, если есть некоторая дополнительная информация, и сложно, если такой информации нет.
Криптосистемы с открытым ключом основываются на односторонних функциях-ловушках. При этом открытый ключ определяет конкретную реализацию функции, а секретный ключ подает информа-
599