Симметричные криптосистемы
2.26M
Категория: ИнформатикаИнформатика

Симметричные криптосистемы. Тема 4.2. Симметричные криптосистемы. Часть 5

1. Симметричные криптосистемы

1
Тема 4.2
Симметричные
криптосистемы
Часть 5
Криптоалгоритмы DES и
ГОСТ 28147-89

2.

Содержание
1. Общая характеристика блочных шифров
2. Криптоалгоритм DES
3. Криптоалгоритм ГОСТ 28147-89
2

3.

3
1. Общая характеристика
блочных шифров

4.

Общая характеристика блочных шифров
Необходимость применения криптографической защиты
информации
в сетях ЭВМ,
в БД,
в системах электронных платежей,
привела к широкому использованию программных
средств шифрования.
При этом оказалось, что программная реализация
потоковых шифров в ряде случаев уступает в
быстродействии шифрам другого типа, так называемым,
блочным шифрам.
4

5.

Общая характеристика блочных шифров
При блочном шифровании
открытый текст сначала разбивается на равные по
длине блоки,
затем применяется зависящая от ключа функция
шифрования для преобразования блока открытого
текста длиной n бит в блок шифртекста такой же
длины.
5

6.

Общая характеристика блочных шифров
Достоинством блочного шифрования является то, что
каждый бит блока шифротекста зависит от значений
всех битов соответствующего блока открытого текста,
и никакие два блока открытого текста не могут быть
представлены одним и тем же блоком шифротекста.
Поэтому в настоящее время подавляющее большинство
применяемых на практике
как симметричных систем с закрытым (секретным)
ключом
так и асимметричных систем с открытым ключом
представляют собой блочные системы, как правило, с
длиной блоков в 64 бита.
6

7.

Общая характеристика блочных шифров
Блочным шифром называется система шифрования,
использующая на каждом такте постоянный, выбранный
до начала шифрования, в зависимости от ключей,
алгоритм.
Поскольку зашифрование должно быть взаимно
однозначным преобразованием, то блочные шифры
являются шифрами замены с очень большим алфавитом.
Знаки алфавита представляются в виде двоичных
блоков данных фиксированной длины.
Например, алгоритм ГОСТ 28147-89 предназначен для
работы с блоками длиной 64 бита.
В режиме простой замены этот шифр
взаимнооднозначно отображает множество
мощности 264 на себя.
7

8.

Общая характеристика блочных шифров
Общая идея шифрования современным блочным шифром
показана на рисунке.
Рисунок - Современный блочный шифр
8

9.

Общая характеристика блочных шифров
Если сообщение имеет размер
меньше, чем n бит, то нужно его дозаполнить, чтобы
создать полноценный блок;
больше, чем n бит, то оно должно быть разделено на nбитовые блоки и, в случае необходимости, нужно
добавить к последнему блоку соответствующее
заполнение;
общие значения для n обычно 64, 128, 256 или 512 бит.
9

10.

Общая характеристика блочных шифров
10
Существуют потоковые шифры, использующие блочный
шифр в качестве узла генерации гаммы.
В криптографии принято рассматривать подобные
шифры как режимы работы соответствующего блочного
шифра.
Например, в режимах шифрования алгоритм ГОСТ
28147-89 работает как шифр гаммирования по
модулю два, используя двоичную гамму,
выработанную в режиме, соответствующем
блочному шифру.

11.

Общая характеристика блочных шифров
11
Для блочных шифров оценка стойкости связана с оценкой
качества т.н. виртуальных таблиц замены,
т.е. таблиц замены, представить которые целиком на
носителе невозможно из-за большого объема данных.
Блочный шифр является совокупностью виртуальных таблиц
замены.
Ключ служит для выбора таблицы, которая является
неизменной в процессе шифрования отдельного
сообщения.
Общая проблема оценки качества блочного шифра
сводится к задаче определения больших областей
ключей, которым соответствуют подстановки,
наиболее сложные для вскрытия шифра простой
замены.

12.

Общие принципы построения современных
симметричных криптосистем
12
По мнению К.Шеннона, в практических шифрах необходимо
использовать два общих принципа:
рассеивание
и перемешивание.
Рассеивание представляет собой распространение влияния
одного знака открытого текста на много знаков
шифротекста, что позволяет скрыть статистические
свойства открытого текста.
Перемешивание предполагает использование таких
шифрующих преобразований, которые усложняют
восстановление взаимосвязи статистических свойств
открытого и шифрованного текстов.

13.

Общие принципы построения современных
симметричных криптосистем
13
Распространенным способом достижения эффектов
рассеивания и перемешивания является использование
составного шифра,
т.е. такого шифра, который может быть реализован в
виде некоторой последовательности простых шифров,
каждый из которых вносит свой вклад в
значительное суммарное рассеивание и
перемешивание.

14.

Общие принципы построения современных
симметричных криптосистем
14
В составных шифрах в качестве простых шифров чаще
всего используются простые перестановки и подстановки.
При перестановке просто перемешивают символы
открытого текста,
причем конкретный вид перемешивания
определяется секретным ключом.
При подстановке каждый символ открытого текста
заменяют другим символом из того же алфавита,
а конкретный вид подстановки также определяется
секретным ключом.
При многократном чередовании простых перестановок и
подстановок,
управляемых достаточно длинным секретным ключом,
можно получить очень стойкий шифр с хорошим
рассеиванием и перемешиванием.

15.

Общие принципы построения современных
симметричных криптосистем
Однако шифр должен
не только затруднять раскрытие,
но и обеспечивать легкость зашифрования и
расшифрования при известном пользователю
секретном ключе.
Рассмотренные ниже
криптоалгоритм DES
и отечественный стандарт шифрования данных ГОСТ
28147-89
построены в полном соответствии с указанными
принципами.
15

16.

Общие принципы построения современных
симметричных криптосистем
16
Важной задачей в обеспечении гарантированной
безопасности информации в ИС является разработка и
использование стандартных алгоритмов шифрования
данных.
Первым среди подобных стандартов стал американский DES,
представляющий собой последовательное использование замен и
перестановок.
В настоящее время все чаще говорят о неоправданной
сложности и невысокой криптостойкости.
На практике приходится использовать его модификации.
Более эффективным является отечественный стандарт
шифрования данных.

17.

17
2. Криптоалгоритм DES

18.

История создания
18
Официальная история стандарта шифрования США началась в 1972 г. с
того, что национальное бюро стандартов (НБС, National Bureau of
Standards, NBS) США выдвинуло программу разработки системы
стандартов по защите от НСД к данным, хранящимся и
обрабатываемым на ЭВМ.
Это направление было признано одной из самых приоритетных
областей, остро нуждающейся в регламентирующих документах.
Одним из важнейших направлений была признана разработка
стандартного алгоритма шифрования.
Шифр DES (Data Encryрtion Standard) был разработан фирмой IBM и
сертифицирован NSA (Национальное Агентство Безопасности США).
В 1977 г. принят в качестве федерального стандарта США и в
течение двух десятилетий считался достаточно надежным и
универсальным.

19.

История создания
19
Стандарт DES предназначен для защиты от НСД к важной, но
несекретной информации в государственных и коммерческих
организациях США.
Алгоритм, положенный в основу стандарта, распространялся
достаточно быстро, и уже в 1980 г. был одобрен Национальным
институтом стандартов и технологий США.
С этого момента DES превращается в стандарт не только по
названию, но и фактически.
Появляются ПО и специализированные микроЭВМ, предназначенные
для шифрования и расшифрования информации в сетях передачи
данных.
К настоящему времени DES является наиболее распространенным
алгоритмом, используемым в системах защиты коммерческой
информации.
Более того, реализация алгоритма DES в таких системах
становится признаком хорошего тона.

20.

Алгоритм DES
20
Основные достоинства алгоритма DES:
используется только один ключ длиной 56 бит,
что требует от злоумышленника перебора
256 7,2·1016 возможных ключевых комбинаций.
зашифровав сообщение с помощью одного пакета
программ, для расшифровки можно использовать любой
другой пакет программ, соответствующий стандарту
DES;
относительная простота алгоритма обеспечивает
высокую скорость обработки.

21.

Алгоритм DES
Недостатки алгоритма DES:
битовые операции в узлах замены неэффективно
реализуются программным путем;
короткая длина ключа (56 бит),
что позволяет организовать полный перебор;
современные технические средства криптоанализа позволяют
взломать шифр DES за несколько часов;
поэтому использовать их для серьезных приложений
нецелесообразно;
обнаружена теоретическая возможность уменьшить
пространство перебора с помощью
дифференциального криптоанализа (с выбором
шифрограммы)
и линейного криптоанализа (с известным сообщением),
если известно достаточно много (порядка 247) пар сообщениешифрограмма;
независимый выбор подключей практически не
увеличивает стойкость алгоритма.
21

22.

Алгоритм DES
22
Общие принципы шифрования и дешифрования алгоритма
DES показаны на рисунке.
На стороне шифрования DES принимает 64-битовый исходный
текст и порождает 64-битовый зашифрованный текст;
на стороне дешифрования DES принимает 64-битовый
зашифрованный текст и порождает 64-битовый исходный текст;
на обеих сторонах для шифрования и дешифрования
применяется один и тот же 56-битовый ключ.

23.

Обобщенная схема зашифровывания
Обобщенная схема
процесса
шифрования в
алгоритме DES (рис.)
заключается
в начальной
перестановке бит
64-битого блока,
шестнадцати циклах
шифрования
и в конечной
перестановке бит.
23

24.

Обобщенная схема зашифровывания
24
Алгоритм DES использует комбинацию подстановок и
перестановок.
DES осуществляет зашифровывание 64-битовых блоков
данных с помощью 64-битого ключа, в котором
значащими являются 56 бит,
остальные 8 бит – проверочные биты для контроля на
четность.
Расшифровывание в DES является операцией, обратной
шифрованию,
и выполняется путем повторения операций
зашифровывания в обратной последовательности.

25.

Алгоритм шифрования DES
Схема алгоритма
шифрования:
25

26.

Алгоритм шифрования DES
Следует отметить, что все приводимые ниже таблицы являются
стандартными и должны включаться в реализацию алгоритма DES в
неизменном виде.
Все перестановки и коды в таблицах подобраны разработчиками таким
образом, чтобы максимально затруднить процесс взлома шифра.
Рассмотрим алгоритм шифрования подробнее.
26

27.

Алгоритм шифрования DES
27
Пусть из файла исходного текста считан 64-битовый блок T0.
Он преобразуется в соответствии с матрицей помощью
начальной перестановки IP (табл. ):
бит 58 входного блока T0 становится битом 1,
бит 50 – битом 2 и т.д.
Эту перестановку можно описать выражением T0=IP(T).
Начальная перестановка IP
58 50 42 34 26 18 10
60 52 44 36 28 20 12
62 54 46 38 30 22 14
64 56 48 40 32 24 16
57 49 41 33 25 17 9
59 51 43 35 27 19 11
61 53 45 37 29 21 13
63 55 47 39 31 23 15
2
4
6
8
1
3
5
7

28.

Алгоритм шифрования DES
28
Полученная последовательность бит T0 разделяется на
две последовательности:
левые, или старшие, биты,
правые, или младшие, биты
каждая из которых содержит 32 бита.
Затем выполняется итеративный процесс шифрования,
состоящий из 16 циклов.
Пусть Ti - результат i-й итерации:
Ti Li Ri,
где Li t1 t2 t32 – первые 32 бита;
Ri t33 t34 t64 – последние 32 бита.
Тогда результат i-й итерации описывается
следующими формулами:
Li Ri 1, i 1,2,
,16;
Ri Li 1 f Ri 1, Ki , i 1,2,
,16.

29.

Алгоритм шифрования DES
29
Функция f называется функцией шифрования.
Ее аргументами являются
последовательность Ri-1, получаемая на
предыдущем шаге итерации,
и 48-битовый ключ Ki, который является
результатом преобразования исходного 64-битого
ключа шифра K.
Подробнее функция шифрования и алгоритм получения ключа описаны
ниже.

30.

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

31.

Алгоритм расшифровывания DES
31
Процесс расшифровывания данных является обратным по
отношению к процессу шифрования.
Это означает, что расшифровываемые данные сначала
переставляются в соответствии с матрицей IP-1,
а затем над последовательностью бит R16L16
выполняются те же действия, что и в процессе
зашифровывания,
но в обратном порядке.

32.

Алгоритм расшифровывания DES
32
Итеративный процесс расшифровывания может быть
описан следующими формулами:
Ri 1 Li , i 1,2,
,16;
Li 1 Ri f Li , Ki , i 1,2,
,16.
Т.о., для процесса расшифровывания с переставленным
входным блоком R16L16
на первой итерации используется ключ K16,
на второй итерации – K15
и т.д.
На 16-й итерации используется ключ K1.

33.

Алгоритм расшифровывания DES
На последнем шаге итерации будут получены
последовательности L0 и R0, которые объединяются в
64-битую последовательность L0R0.
Затем в этой последовательности 64 бита
переставляются в соответствии с матрицей IP.
Результат такого преобразования – исходная
последовательность бит (расшифрованное 64-битовое
значение).
33

34.

Функция шифрования в DES
Схема вычисления функции шифрования f Ri 1, Ki
показана на рис.
34

35.

Функция шифрования в DES
Для вычисления значения функции f используются:
функция E – расширение 32 бит до 48;
функция S1, S2, …, S8 – преобразование 6 битового
числа в 4 битовое;
функция P – перестановка бит в 32 битовой
последовательности.
Приведем определения этих функций.
35

36.

Функция шифрования в DES
36
Аргументами функции шифрования f являются Ri-1 (32 бита)
и Ki (48 бит).
Результат функции E(Ri-1) есть 48-битовое число.
Функция расширения E, выполняющая расширение 32 бит
до 48 (принимает блок из 32 бит и порождает блок из 48
бит), определяется табл..
32
4
8
12
16
20
24
28
Функция E
1
2
3
4
5
6
7
8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28
29 30 31 32
5
9
13
17
21
25
29
1
В соответствии с табл. первые три бита E(Ri-1) – это биты 32, 1 и 2, а
последние – 31, 32 и 1.

37.

Функция шифрования в DES
37
Полученный результат (обозначим его E(Ri-1) )
складывается по модулю 2 с текущим значением ключа
Ki
и затем разбивается на восемь 6-битовых блоков
B1, B2 ,
, B8 E Ri 1 Ki
Далее каждый из этих блоков используется как номер
элемента в функциях - матрицах S1, S2, …, S8, содержащих
4-битовые значения (табл. на след. слайде).

38.

S18537642
S1
S2
S3
S4
S5
Функция шифрования в DES
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
Функции S
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 4 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S6
S7
S8
0
1
2
3
0
1
2
3
0
1
2
3
38
Функции S
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 1 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

39.

Функция шифрования в DES
39
Следует отметить, что выбор элемента в матрице S
осуществляется достаточно оригинальным образом.
Пусть на вход матрицы S поступает 6-битовый блок Bj=b1b2b3 b4b5b6,
тогда
2-битовое число b1b6 указывает номер строки матрицы,
а 4-битовое число b2b3 b4b5 - номер столбца.
Например,
если на вход матрицы S1 поступает 6-битовый блок 100110(2),
то 2-битовое число b1b6 =10(2)=2(10) указывает строку с
номером 2 матрицы S1,
а 4-битовое число b2b3 b4b5 =0011(2)=3(10) указывает столбец с
номером 3 матрицы S1.
Это означает, что в матрице S1 блок B1=100110(2) выбирает
элемент на пересечении строки с номером 2 и столбца с
номером 3, т.е. элемент 8(10) =1000(2).
Совокупность 6-битовых блоков B1, B2, …, B8 обеспечивает выбор
4-битового элемента в каждой из матриц B1, B2, …, B8.

40.

Функция шифрования в DES
40
В результате получаем S1(B1), S2(B2), …, S8(B8), т.е. 32-битовый
блок
т.к. матрицы S содержат 4-битовые элементы.
Этот 32-битовый блок преобразуется с помощью функции
перестановки бит P (табл.).
Функция P
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 6
22 11 4 25
Т.о., функция шифрования математически записывается
f Ri 1, Ki P S1 B1 ,…, S8 B1

41.

Алгоритм вычисления ключей
41
Как нетрудно заметить, на каждой итерации используется
новое значение ключа Ki длиной 48 бит.
Новое значение ключа Ki вычисляется из начального ключа
K (рис. след. слайда).

42.

Алгоритм вычисления ключей
Рисунок – Схема алгоритма
вычисления ключей Ki
42

43.

Алгоритм вычисления ключей
43
Ключ представляет собой 64-битовый блок с 8 битами
контроля по четности, расположенными в позициях 8, 16,
24, 32, 40, 48, 56, 64.
Для удаления контрольных бит и подготовки ключа к работе
используется функция G первоначальной подготовки
ключа (табл.).
57
1
10
19
63
7
14
21
49
58
2
11
55
62
6
13
Функция G
41 33 25
50 42 34
59 51 43
3 60 52
47 39 31
54 46 38
61 53 45
5 28 20
17
26
35
44
23
30
37
12
9
18
27
36
15
22
29
4

44.

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

45.

Алгоритм вычисления ключей
45
После определения C0 и D0 рекурсивно определяются Ci и
Di.
Для этого применяются операции циклического сдвига
влево на один или два бита в зависимости от номера
шага итерации, как показано в табл..
Таблица сдвигов для вычисления ключа
Итерация 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
Операции сдвига выполняются для последовательностей Ci
и Di независимо.
Например,
последовательность C3 получается посредством циклического
сдвига влево на две позиции последовательности C2,
а последовательность D3 - посредством сдвига влево на две
позиции последовательности D2,
C16 и D16 получаются из C15 и D15 посредством сдвига влево на
одну позицию.

46.

Алгоритм вычисления ключей
46
Ключ Ki, определяемый на каждом шаге итерации, есть
результат выбора конкретных бит из 56-битовой
последовательности CiDi и их перестановки.
Другими словами, ключ Ki=H(CiDi ), где функция H
определяется матрицей, завершающей обработку ключа
(табл.).
14
3
23
16
41
30
44
46
Функция H
17 11 24 1
28 15 6 21
19 22 4 26
7 27 20 13
52 31 37 47
40 51 45 33
49 39 56 34
42 50 36 29
5
10
8
2
55
48
53
32
Как следует из таблицы для H,
первым битом ключа Ki будет 14-й
бит последовательности CiDi,
вторым - 17-й бит,
47-м битом ключа Ki будет 29-й бит
CiDi,
а 48-м битом - 32-й бит CiDi.

47.

Криптостойкость DES
47
В январе 1997г. компания RSA Data Security опубликовала
зашифрованный с помощью DES текст и назначила приз в
10 тыс. долларов тому, кто его расшифрует.
Результат был получен за 4 месяца «грубой силой», путем полного
перебора ключей, в котором участвовало около 78 000 компьютеров
в США и Канаде, в основном обычных персональных (в среднем 14
000 компьютеров ежедневно).
Пользователи этих машин получали по Интернету программу для
перебора и интервалы пространства ключей.
Всего было испробовано около 18×1015 вариантов из примерно
72×1015 возможных.
Пик производительности составил 7×109 вариантов в секунду.
Результат был получен на компьютере с процессором Рentium-90 и
16 мегабайт памяти.

48.

Криптостойкость DES
48
Т.о., DES нельзя считать надежным шифром,
тем более при многократно увеличившейся с тех тор
мощности компьютеров.
Однако, DES оказал большое влияние на развитие
криптосистем с секретным ключом и до сих пор
используется для защиты информации невысокого уровня
секретности.

49.

Основные режимы работы DES
49
Алгоритм DES вполне подходит
как для шифрования,
так и для аутентификации данных.
Он позволяет непосредственно преобразовывать 64битовый входной открытый текст в 64-битовый выходной
шифрованный текст, однако данные редко ограничиваются
64 разрядами.

50.

Основные режимы работы DES
50
Чтобы воспользоваться алгоритмом DES для решения
разнообразных криптографических задач, разработаны
четыре рабочих режима:
электронная кодовая книга ЕСВ (Electronic Code Book);
сцепление блоков шифра СВС (Ciрher Block Chaining);
обратная связь по шифртексту CFB (Ciрher Feed Back);
обратная связь по выходу OFB (Outрut Feed Back).
Эти режимы могут быть использованы для шифрования с
помощью произвольного блочного шифра (не только DES)
потока данных, который в общем случае длиннее блока
шифрования, хотя впервые они введены в стандарте DES.

51.

Основные режимы работы DES
51
Каждому из перечисленных режимов свойственны свои
достоинства и недостатки, что обусловливает области их
применения.
Режим ЕСВ (Электронная кодовая книга) хорошо
подходит для шифрования ключей.
Режим CFB (Обратная связь по шифру), как правило,
предназначается для шифрования отдельных
символов.
Режим OFB (Обратная связь по выходу) нередко
применяется для шифрования в спутниковых системах
связи.

52.

Основные режимы работы DES
52
Режимы СВС (Сцепление блоков шифра) и
СFВ(Обратная связь по шифру) пригодны для
аутентификации данных. Эти режимы позволяют
использовать алгоритм DES для:
интерактивного шифрования при обмене данными
между терминалом и главной ЭВМ;
шифрования криптографического ключа в практике
автоматизированного распространения ключей;
шифрования файлов, почтовых отправлений,
данных спутников и других практических задач.

53.

53
3. Криптоалгоритм ГОСТ 28147-89

54.

54
Советский (ныне российский и СНГ) стандарт рекомендован
к использованию для защиты любых данных,
представленных в виде двоичного кода.
Данный стандарт формировался с учетом мирового опыта,
и в частности, были приняты во внимание недостатки и
нереализованные возможности алгоритма DES.
Поэтому использование стандарта ГОСТ предпочтительнее:
предназначен для аппаратной и программной
реализации,
удовлетворяет криптографическим требованиям
и не накладывает ограничений на степень секретности
защищаемой информации.

55.

Общие положения
Алгоритм ГОСТ 28147-89 – это итеративный 32-цикловый
обратимый блочный шифр.
Размер входного блока – 64 бита.
Размер ключа шифра – 256 бит.
Для дешифрования используется тот же ключ,
но процесс дешифрования является обратным по
отношению к шифрованию.
Алгоритм достаточно сложен и ниже будет описана в
основном его концепция.
55

56.

Схема алгоритма
Алгоритм шифрует информацию блоками по 64 бита,
которые разбиваются на 2 субблока N1 и N2 по 32 бита.
Субблок N1 определенным
образом обрабатывается,
после чего его значение
складывается по модулю 2 со
значением субблока N2,
затем субблоки меняются
местами.
Такое преобразование
выполняется определенное
количество раундов:
16 или 32 в зависимости от
режима работы алгоритма
(описаны далее).
56

57.

Схема алгоритма
57
В каждом раунде выполняются следующие операции:
1. Наложение ключа.
Содержимое субблока N1 складывается по модулю 2 с
частью ключа Kх.
Ключ шифрования алгоритма ГОСТ 28147-89 имеет
размерность 256 битов,
а Kх – это его 32-битная часть,
т.е. 256-битный ключ шифрования представляется в
виде конкатенации 32-битных подключей (рис.):
K0, K1, K2, KЗ, K4, K5, K6, K7.

58.

Схема алгоритма
В процессе шифрования используется один из этих
подключей –
в зависимости от номера раунда и режима работы
алгоритма.
58

59.

Схема алгоритма
2. Табличная замена.
После наложения ключа субблок N1 разбивается на 8
частей по 4 бита, значение каждой из которых по
отдельности заменяется в соответствии с таблицей
замены для данной части субблока.
59

60.

Схема алгоритма
60
Табличные замены (Substitution box, S-box) часто
используются в современных алгоритмах шифрования,
поэтому стоит рассмотреть их подробнее.
Табличная замена используется таким образом:
на вход подается блок данных определенной
размерности (в этом случае – 4-битный), числовое
представление которого определяет номер выходного
значения.
Например,
имеем S-box следующего вида:
4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1.
Пусть на вход пришел 4-битный блок «0100»,
т.е. значение 4.
Согласно таблице, выходное значение будет равно 15,
т.е. «1111» (0 заменяется на 4, 1 – на 11, значение 2 не
изменяется и т.д.).

61.

Схема алгоритма
61
Как видно, схема алгоритма весьма проста,
но наибольшая нагрузка по шифрованию данных
ложится на таблицы замен.
К сожалению, алгоритм обладает тем свойством, что
существуют «слабые» таблицы замен, при использовании
которых алгоритм может быть раскрыт
криптоаналитическими методами.
К числу слабых относится, например, таблица, в которой выход
равен входу:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

62.

Схема алгоритма
3. Побитовый циклический сдвиг влево на 11 битов.
На схеме алгоритма обозначен <<11.
62

63.

Режимы работы
Алгоритм криптографического преобразования
предусматривает 4 режима работы:
Шифрование данных в режиме простой замены;
Шифрование данных в режиме гаммирования;
Шифрование данных в режиме гаммирования с
обратной связью;
Выработка имитовставки.
Данные режимы имеют различное назначение,
но используют одно и то же описанное выше
шифрующее преобразование.
63

64.

Режим простой замены
Самый простой из возможных режимов – замена.
В режиме простой замены для зашифровывания
каждого 64-битного блока информации просто
выполняются 32 описанных выше раунда.
32-битные подключи используются в следующей
последовательности:
в раундах с 1-го по 24-й
K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 и т. д.;
в раундах с 25-го по 32-й
K7, K6, K5, K4, K3, K2, K1, K0.
64

65.

Режим простой замены
65
Расшифровывание в режиме простой замены
производится совершенно так же, но с несколько другой
последовательностью применения подключей:
в раундах с 1-го по 8-й
K0, K1, K2, K3, K4, K5, K6, K7, K0, K1;
в раундах с 9-го по 32-й
K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 и т.д.

66.

Режим простой замены
66
Аналогично стандартному режиму ЕСВ алгоритма DES, по
причине раздельного шифрования блоков режим простой
замены категорически не рекомендуется использовать для
шифрования собственно данных;
он должен использоваться только для шифрования
других ключей шифрования в многоключевых схемах.

67.

Режим гаммирования
67
В режиме гаммирования (рис.) каждый блок открытого текста
побитно складывается по модулю 2 с блоком гаммы
шифра размером 64 бита.

68.

Режим гаммирования
68
Гамма шифра – это специальная последовательность,
которая вырабатывается с помощью описанных выше
преобразований следующим образом:
1. В регистры N1 и N2 записывается их начальное
заполнение – 64-битная величина, называемая
«синхропосылкой».
2. Выполняется зашифровывание содержимого регистров
N1 и N2 (в данном случае – синхропосылки) в режиме
простой замены.
3. Содержимое N1 складывается по модулю (232 –1) с
константой C1 = 224 + 216 + 28 + 4 , результат сложения
записывается в регистр N1.
4. Содержимое N2 складывается по модулю 2 с константой
С2 = 224 + 216 + 28 +1, результат сложения записывается в
регистр N2.

69.

Режим гаммирования
5. Содержимое регистров N1 и N2 подается на выход в
качестве 64-битного блока гаммы шифра
т.е. в данном случае N1 и N2 образуют первый блок
гаммы.
6. Если необходим следующий блок гаммы
т. е. необходимо продолжить зашифровывание или
расшифровывание,
то выполняется возврат к шагу 2.
69

70.

Режим гаммирования
70
Для расшифровывания
аналогичным образом выполняется выработка гаммы,
затем снова применяется операция сложения по
модулю 2 к битам зашифрованного текста и гаммы.
Для выработки той же самой гаммы шифра у пользователя,
расшифровывающего шифротекст, должен быть
тот же самый ключ
и то же значение синхропосылки, которые применялись
при зашифровывании информации.
В противном случае получить исходный текст из
зашифрованного не удастся.

71.

Режим гаммирования
71
В большинстве реализаций алгоритма ГОСТ 28147-89
синхропосылка не является секретным элементом, однако
синхропосылка может быть так же секретна, как и ключ
шифрования.
В этом случае можно считать, что эффективная длина
ключа алгоритма (256 битов) увеличивается еще на 64
бита синхропосылки, которую можно рассматривать как
дополнительный ключевой элемент.

72.

Режим гаммирования с обратной связью
В режиме гаммирования с обратной связью в качестве
заполнения регистров N1 и N2,
начиная со 2-го блока, используется
не предыдущий блок гаммы,
а результат зашифровывания предыдущего блока
открытого текста (рис.).
Первый же блок в данном режиме генерируется
полностью аналогично предыдущему.
72

73.

Режим выработки имитовставки
В ГОСТ 28147-89 определяется процесс выработки
имитовставки, который единообразен для всех режимов
шифрования.
Имитоприставка – это криптографическая контрольная
сумма, вычисляемая с использованием ключа
шифрования и предназначенная для проверки
целостности сообщений.
Для ее вычисления существует специальный режим
алгоритма ГОСТ 28147-89.
73

74.

Режим выработки имитовставки
74
Генерация имитоприставки выполняется следующим
образом:
1. Первый 64-битный блок информации, для которой
вычисляется имитоприставка, записывается в регистры
N1 и N2 и зашифровывается в сокращенном режиме
простой замены, в котором выполняются первые 16
раундов из 32.
2. Полученный результат суммируется по модулю 2 со
следующим блоком информации с сохранением
результата в N1 и N2.
3. N1 и N2 снова зашифровываются в сокращенном режиме
простой замены
и т. д. до последнего блока информации.

75.

Режим выработки имитовставки
Имитоприставкой считается 64-битное результирующее
содержимое регистров N1 и N2 или его часть.
Чаще всего используется 32-битная имитоприставка,
т.е. половина содержимого регистров.
Этого достаточно,
поскольку, как и любая контрольная сумма,
имитоприставка предназначена, прежде всего, для
защиты от случайных искажений информации.
Для защиты же от преднамеренной модификации данных
применяются другие криптографические методы
в первую очередь электронная цифровая подпись.
75

76.

Режим выработки имитовставки
Имитоприставка используется следующим образом:
1. При зашифровывании какой-либо информации
вычисляется имитоприставка открытого текста и
посылается вместе с шифртекстом.
2. После расшифровывания имитоприставка снова
вычисляется и сравнивается с присланной.
3. Если вычисленная и присланная имитоприставки не
совпадают –
шифротекст был искажен при передаче
или использовались неверные ключи при
расшифровывании.
76

77.

Режим выработки имитовставки
Имитоприставка особенно полезна для проверки
правильности расшифровывания ключевой информации
при использовании многоключевых схем.
77

78.

Стойкость ГОСТ
78
В 1994 г. описание алгоритма ГОСТ 28147-89 было
переведено на английский язык и опубликовано.
Именно после этого стали появляться результаты его
криптоанализа, выполненного зарубежными
специалистами;
однако в течение значительного времени не было
найдено каких-либо атак, приближающихся к
практически осуществимым.
Дело в том, что в шифре ГОСТ используется 256-битовый
ключ и объем ключевого пространства составляет 2256.
Ни на одной из существующих в настоящее время или
предполагаемых к реализации в недалеком будущем
ЭВМ общего применения нельзя подобрать ключ за
время, меньшее многих сотен лет.

79.

Стойкость ГОСТ
79
Высокая стойкость алгоритма ГОСТ 28147-89 достигается за
счет следующих факторов:
большой длины ключа – 256 битов;
вместе с секретной синхропосылкой эффективная
длина ключа увеличивается до 320 битов;
32 раундов преобразований;
уже после 8 раундов достигается полный эффект
рассеивания входных данных:
изменение одного бита блока открытого текста
повлияет на все биты блока шифртекста,
и наоборот,
т.е. существует многократный запас стойкости.

80.

Стойкость ГОСТ
Стандарт проектировался с большим запасом и по
стойкости на много порядков превосходит американский
стандарт DES
с его реальным размером ключа в 56 бит
и объемом ключевого пространства всего 256.
80

81.

Стойкость ГОСТ
81
В 2004 г. группа специалистов из Кореи предложила атаку, с
помощью которой, используя дифференциальный
криптоанализ на связанных ключах, можно получить с
вероятностью 91,7 % 12 битов секретного ключа.
Для атаки требуется
235 выбранных открытых текстов
и 236 операций шифрования.
Как видно, данная атака, практически бесполезна для
реального вскрытия алгоритма.

82.

Стойкость ГОСТ
82
В открытой литературе можно найти довольно мало работ,
посвященных криптоанализу алгоритма ГОСТ 28147-89.
Это особенно заметно по сравнению с огромным числом
работ, посвященных
криптоанализу стандартов шифрования DES и AES
или криптоанализу некоторых широко используемых
алгоритмов шифрования,
например, IDEA или SAFER.
По результатам открытых работ можно сделать вывод о
весьма высокой криптостойкости отечественного
стандарта шифрования.
English     Русский Правила