- Главная
- Информатика
- Стандарт шифрования данных Data Encryption Standard(DES)
Содержание
- 2. Обобщенная схема шифрования в алгоритме DES
- 4. Пусть из файла считан очередной 8-байтовый блок T, который преобразуется с помощью матрицы начальной перестановки IP
- 5. Вычисление функции f(R(i-1), K(i)) Для вычисления значения функции f используются следующие функции-матрицы: Е - расширение 32-битовой
- 6. Результат функции Е(R(i-1)) есть 48-битовая последовательность, которая складывается по модулю 2 (операция xor) с 48-битовым ключом
- 7. Функции преобразования S1,S2, …,S8
- 8. Блок-схема алгоритма вычисления ключа K(i)
- 9. Алгоритм получения 48-битовых ключей К(i), i=1...16 На каждой итерации используется новое значение ключа K(i), которое вычисляется
- 15. Алгоритм шифрования данных IDEA Алгоритм IDEA (International Data Encryption Algorithm) является блочным шифром. Он оперирует 64-битовыми
- 16. Cхема алгоритма IDEA (режим шифрования)
- 17. (·) - умножение субблока X1 и первого подключа. [+] - сложение субблока X2 и второго подключа.
- 18. Подключи шифрования и дешифрования алгоритма IDEA
- 19. Структура одного раунда ГОСТ 28147-89
- 21. Скачать презентацию
Обобщенная схема шифрования в алгоритме DES
Обобщенная схема шифрования в алгоритме DES
Пусть из файла считан очередной 8-байтовый блок T, который преобразуется
Пусть из файла считан очередной 8-байтовый блок T, который преобразуется
Затем выполняется шифрование, состоящее из 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
Вычисление функции f(R(i-1), K(i))
Для вычисления значения функции f используются следующие функции-матрицы:
Вычисление функции f(R(i-1), K(i)) Для вычисления значения функции f используются следующие функции-матрицы:
Функция расширения 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
Результат функции Е(R(i-1)) есть 48-битовая последовательность, которая складывается по модулю
Результат функции Е(R(i-1)) есть 48-битовая последовательность, которая складывается по модулю
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 и т.д.
Функции преобразования S1,S2, …,S8
Функции преобразования S1,S2, …,S8
Блок-схема алгоритма вычисления ключа K(i)
Блок-схема алгоритма вычисления ключа K(i)
Алгоритм получения 48-битовых ключей К(i), i=1...16
На каждой итерации используется новое
Алгоритм получения 48-битовых ключей К(i), i=1...16
На каждой итерации используется новое
Для удаления контрольных битов и перестановки остальных используется функция 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
Алгоритм шифрования данных IDEA
Алгоритм IDEA (International Data Encryption Algorithm) является
Алгоритм шифрования данных IDEA
Алгоритм IDEA (International Data Encryption Algorithm) является
Алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, которые легко реализуются аппаратными и программными средствами.
В IDEA используются следующие математические операции:
поразрядное сложение по модулю 2 (операция "исключающее ИЛИ"); операция обозначается как (+);
сложение беззнаковых целых по модулю 216; операция обозначается как [+];
умножение беззнаковых целых по модулю (216+1), причем блок из 16 нулей рассматривается как 216; операция обозначается как (·).
Все операции выполняются над 16-битовыми субблоками.
Эти три операции несовместимы в том смысле, что:
никакая пара из этих трех операций не удовлетворяет ассоциативному закону, например a[+](b(+)c)#(a[+]b)(+)c;
никакая пара из этих трех операций не удовлетворяет дистрибутивному закону, например a[+](b(·)c)#(a[+]b)(·)(a[+]с).
Комбинирование этих трех операций обеспечивает комплексное преобразование входных данных, существенно затрудняя криптоанализ IDEA по сравнению с DES, который базируется исключительно на операции "исключающее ИЛИ".
Cхема алгоритма IDEA (режим шифрования)
Cхема алгоритма IDEA (режим шифрования)
(·) - умножение субблока X1 и первого подключа.
[+] - сложение
[+] - сложение
[+] - сложение субблока X3 и третьего подключа.
(·) - умножение субблока X4 и четвертого подключа.
(+) - сложение результатов шагов 1 и 3.
(+) - сложение результатов шагов 2 и 4.
(·) - умножение результата шага 5 и пятого подключа.
[+] - сложение результатов шагов 6 и 7.
(·) - умножение результата шага 8 и шестого подключа.
[+] - сложение результатов шагов 7 и 9.
(+) - сложение результатов шагов 1 и 9.
(+) - сложение результатов шагов 3 и 9.
(+) - сложение результатов шагов 2 и 10.
(+) - сложение результатов шагов 4 и 10.
В алгоритме IDEA. 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле выполняется следующая последовательность операций:
Подключи шифрования и дешифрования алгоритма IDEA
Подключи шифрования и дешифрования алгоритма IDEA
Структура одного раунда ГОСТ 28147-89
Структура одного раунда ГОСТ 28147-89