Стандарт шифрования данных Data Encryption Standard(DES)

Содержание

Слайд 2

Обобщенная схема шифрования в алгоритме DES

Обобщенная схема шифрования в алгоритме DES

Слайд 3

Слайд 4

Пусть из файла считан очередной 8-байтовый блок T, который преобразуется с

Пусть из файла считан очередной 8-байтовый блок T, который преобразуется

с помощью матрицы начальной перестановки IP (табл.1) Полученная последовательность битов T(0) разделяется на две последовательности по 32 бита каждая: L(0) - левые или старшие биты, R(0) - правые или младшие биты.
Затем выполняется шифрование, состоящее из 16 итераций. Результат i-й итерации описывается следующими формулами:

Матрица начальной перестановки IP
58 50 42 34 26 18 10 02
60 52 44 36 28 20 12 04
62 54 46 38 30 22 14 06
64 56 48 40 32 24 16 08
57 49 41 33 25 17 09 01
59 51 43 35 27 19 11 03
61 53 45 37 29 21 13 05
55 47 39 31 23 15 07
Матрица обратной перестановки IP-1
08 48 16 56 24 64 32
39 07 47 15 55 23 63 31
06 46 14 54 22 62 30
05 45 13 53 21 61 29
04 44 12 52 20 60 28
03 43 11 51 19 59 27
02 42 10 50 18 58 26
01 41 09 49 17 57 25
Матрицы IP-1 и IP соотносятся следующим образом: значение 1-го элемента матрицы IP-1 равно 40, а значение 40-го элемента матрицы IP равно 1, значение 2-го элемента матрицы IP-1 равно 8, а значение 8-го элемента матрицы IP равно 2 и т.д.
где xor - операция ИСКЛЮЧАЮЩЕЕ ИЛИ.
Функция f называется функцией шифрования. Ее аргументы - это 32-битовая последовательность R(i-1), полученная на (i-1)-ой итерации, и 48-битовый ключ K(i), который является результатом преобразования 64-битового ключа K.
На 16-й итерации получают последователь-ности R(16) и L(16) (без перестановки), которые конкатенируют в 64-битовую последовательность R(16)L(16).
Затем позиции битов этой последовательности переставляют в соответствии с матрицей IP-1

Слайд 5

Вычисление функции f(R(i-1), K(i)) Для вычисления значения функции f используются следующие

Вычисление функции f(R(i-1), K(i)) Для вычисления значения функции f используются следующие функции-матрицы:

Е - расширение 32-битовой последовательности до 48-битовой, S1, S2, ... , S8 - преобразование 6-битового блока в 4-битовый, Р - перестановка бит в 32-битовой последовательности.
Функция расширения E 32 01 02 03 04 05
04 05 06 07 08 09
08 09 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 01
Функция перестановки P
07 20 21
12 28 17
15 23 26
18 31 10
08 24 14
27 03 09
13 30 06
22 11 04 25
Слайд 6

Результат функции Е(R(i-1)) есть 48-битовая последовательность, которая складывается по модулю 2

Результат функции Е(R(i-1)) есть 48-битовая последовательность, которая складывается по модулю

2 (операция xor) с 48-битовым ключом К(i). Получается 48-битовая последовательность, которая разбивается на восемь 6-битовых блоков B(1)B(2)B(3)B(4)B(5)B(6)B(7)B(8). То есть:
E(R(i-1)) xor K(i) = B(1)B(2)...B(8) .
Пусть на вход функции-матрицы Sj поступает 6-битовый блок B(j) = b1b2b3b4b5b6, тогда двухбитовое число b1b6 указывает номер строки матрицы, а b2b3b4b5 - номер столбца. Результатом Sj(B(j)) будет 4-битовый элемент, расположенный на пересечении указанных строки и столбца.
Например, В(1)=011011. Тогда S1(В(1)) расположен на пересечении строки 1 (01) и столбца 13 (1101). В столбце 13 строки 1 задано значение 5 (0101). Значит, S1(011011)=0101.
Применив операцию выбора к каждому из 6-битовых блоков B(1), B(2), ..., B(8), получаем 32-битовую последовательность S1(B(1))S2(B(2))S3(B(3))...S8(B(8)).
Наконец, для получения результата функции шифрования надо переставить биты этой последовательности. Для этого применяется функция перестановки P. Во входной последовательности биты перестанавливаются так, чтобы бит 16 стал битом 1, а бит 7 - битом 2 и т.д.
Слайд 7

Функции преобразования S1,S2, …,S8

Функции преобразования S1,S2, …,S8

Слайд 8

Блок-схема алгоритма вычисления ключа K(i)

Блок-схема алгоритма вычисления ключа K(i)

Слайд 9

Алгоритм получения 48-битовых ключей К(i), i=1...16 На каждой итерации используется новое

Алгоритм получения 48-битовых ключей К(i), i=1...16

На каждой итерации используется новое

значение ключа K(i), которое вычисляется из начального ключа K. K представляет собой 64-битовый блок с восемью битами контроля по четности, расположенными в позициях 8,16,24,32,40,48,56,64.
Для удаления контрольных битов и перестановки остальных используется функция G первоначальной подготовки ключа.
Результат преобразования G(K) разбивается на два 28-битовых блока C(0) и D(0), причем C(0) будет состоять из битов 57, 49, ..., 44, 36 ключа K, а D(0) будет состоять из битов 63, 55, ..., 12, 4 ключа K. После определения C(0) и D(0) рекурсивно определяются C(i) и D(i), i=1...16. Для этого применяют циклический сдвиг влево на один или два бита в зависимости от номера итерации, как показано в таблице сдвигов для вычисления ключа
Матрица G первоначальной подготовки ключа
49 57 41 33 25 17 09
01 58 50 42 34 26 18 10 02 59 51 43 35 27 19 11 03 60 52 44 36 63 55 47 39 31 23 15 07 62 54 46 38 30 22 14 06 61 53 45 37 29 21 13 05 28 20 12 04
Слайд 10

Слайд 11

Слайд 12

Слайд 13

Слайд 14

Слайд 15

Алгоритм шифрования данных IDEA Алгоритм IDEA (International Data Encryption Algorithm) является

Алгоритм шифрования данных IDEA

Алгоритм IDEA (International Data Encryption Algorithm) является

блочным шифром. Он оперирует 64-битовыми блоками открытого текста. Несомненным достоинством алгоритма IDEA является то, что его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для дешифрования.
Алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, которые легко реализуются аппаратными и программными средствами.
В IDEA используются следующие математические операции:
поразрядное сложение по модулю 2 (операция "исключающее ИЛИ"); операция обозначается как (+);
сложение беззнаковых целых по модулю 216; операция обозначается как [+];
умножение беззнаковых целых по модулю (216+1), причем блок из 16 нулей рассматривается как 216; операция обозначается как (·).
Все операции выполняются над 16-битовыми субблоками.
Эти три операции несовместимы в том смысле, что:
никакая пара из этих трех операций не удовлетворяет ассоциативному закону, например a[+](b(+)c)#(a[+]b)(+)c;
никакая пара из этих трех операций не удовлетворяет дистрибутивному закону, например a[+](b(·)c)#(a[+]b)(·)(a[+]с).
Комбинирование этих трех операций обеспечивает комплексное преобразование входных данных, существенно затрудняя криптоанализ IDEA по сравнению с DES, который базируется исключительно на операции "исключающее ИЛИ".
Слайд 16

Cхема алгоритма IDEA (режим шифрования)

Cхема алгоритма IDEA (режим шифрования)

Слайд 17

(·) - умножение субблока X1 и первого подключа. [+] - сложение

(·) - умножение субблока X1 и первого подключа.
[+] - сложение

субблока X2 и второго подключа.
[+] - сложение субблока X3 и третьего подключа.
(·) - умножение субблока X4 и четвертого подключа.
(+) - сложение результатов шагов 1 и 3.
(+) - сложение результатов шагов 2 и 4.
(·) - умножение результата шага 5 и пятого подключа.
[+] - сложение результатов шагов 6 и 7.
(·) - умножение результата шага 8 и шестого подключа.
[+] - сложение результатов шагов 7 и 9.
(+) - сложение результатов шагов 1 и 9.
(+) - сложение результатов шагов 3 и 9.
(+) - сложение результатов шагов 2 и 10.
(+) - сложение результатов шагов 4 и 10.

В алгоритме IDEA. 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле выполняется следующая последовательность операций:

Слайд 18

Подключи шифрования и дешифрования алгоритма IDEA

Подключи шифрования и дешифрования алгоритма IDEA

Слайд 19

Структура одного раунда ГОСТ 28147-89

Структура одного раунда ГОСТ 28147-89