Учебная работа. Реферат: Алгоритм DES

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Алгоритм DES

метод
DES

Главные плюсы метода DES:

· употребляется лишь один ключ длиной 56 битов;

· зашифровав сообщение при помощи 1-го пакета, для расшифровки вы сможете употреблять хоть какой иной;

· относительная простота метода обеспечивает высшую скорость обработки инфы;

· довольно высочайшая стойкость метода.

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

процесс шифрования заключается в исходной перестановке битов 64-битового блока, шестнадцати циклах шифрования и, в конце концов, оборотной перестановки битов (рис.1).

Рис.1

нужно сходу же отметить, что ВСЕ таблицы, приведенные в данной статье, являются СТАНДАРТНЫМИ, а как следует должны врубаться в вашу реализацию метода в постоянном виде. Все перестановки и коды в таблицах подобраны разрабами таковым образом, чтоб очень затруднить процесс расшифровки методом подбора ключа. Структура метода DES приведена на рис.2.

Рис.2. структура метода шифрования DES

Пусть из файла считан очередной 8-байтовый блок T, который преобразуется при помощи матрицы исходной перестановки IP (табл.1) последующим образом: бит 58 блока T становится битом 1, бит 50 — битом 2 и т.д., что даст в итоге: T(0) = IP(T).

Приобретенная последовательность битов T(0) делится на две последовательности по 32 бита любая: L(0) — левые либо старшие биты, R(0) — правые либо младшие биты.

Таблица 1: Матрица исходной перестановки 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

63 55 47 39 31 23 15 07

Потом производится шифрование, состоящее из 16 итераций. Итог i-й итерации описывается последующими формулами:

L(i) = R(i-1)

R(i) = L(i-1) xor f(R(i-1), K(i)) ,

где xor — операция ИСКЛЮЧАЮЩЕЕ ИЛИ.

Функция f именуется функцией шифрования. Ее аргументы — это 32-битовая последовательность R(i-1), приобретенная на (i-1)-ой итерации, и 48-битовый ключ K(i), который является результатом преобразования 64-битового ключа K. Тщательно функция шифрования и метод получения ключей К(i) описаны ниже.

На 16-й итерации получают последовательности R(16) и L(16) (без перестановки), которые конкатенируют в 64-битовую последовательность R(16)L(16).

Потом позиции битов данной последовательности переставляют в согласовании с матрицей IP-1
(табл.2).

Таблица 2: Матрица оборотной перестановки IP-1

40 08 48 16 56 24 64 32

39 07 47 15 55 23 63 31

38 06 46 14 54 22 62 30

37 05 45 13 53 21 61 29

36 04 44 12 52 20 60 28

35 03 43 11 51 19 59 27

34 02 42 10 50 18 58 26

33 01 41 09 49 17 57 25

Матрицы IP-1
и IP соотносятся последующим образом:

процесс расшифрования данных является инверсным по отношению к процессу шифрования. Все деяния должны быть выполнены в оборотном порядке. Это значит, что расшифровываемые данные поначалу переставляются в согласовании с матрицей IP-1, а потом над последовательностью бит R(16)L(16) производятся те же деяния, что и в процессе шифрования, но в оборотном порядке.

Итеративный процесс расшифрования быть может описан последующими формулами:

R(i-1) = L(i), i = 1, 2, …, 16;

L(i-1) = R(i) xor f(L(i), K(i)), i = 1, 2, …, 16 .

На 16-й итерации получают последовательности L(0) и R(0), которые конкатенируют в 64-битовую последовательность L(0)R(0).

Потом позиции битов данной последовательности переставляют в согласовании с матрицей IP. Итог таковой перестановки — начальная 64-битовая последовательность.

сейчас разглядим функцию шифрования f(R(i-1),K(i)). Схематически она показана на рис. 3.

Рис.3. Вычисление функции f(R(i-1), K(i))

Для вычисления значения функции f употребляются последующие функции-матрицы:

Е — расширение 32-битовой последовательности до 48-битовой,

S1, S2, … , S8 — преобразование 6-битового блока в 4-битовый,

Р — перестановка бит в 32-битовой последовательности.

Функция расширения Е определяется табл.3. В согласовании с данной таблицей 1-ые 3 бита Е(R(i-1)) — это биты 32, 1 и 2, а крайние — 31, 32 и 1.

Таблица 3:Функция расширения 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

Итог функции Е(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) .

Функции S1, S2, … , S8 определяются табл.4.

Таблица 4

К табл.4. требуются доп пояснения. Пусть на вход функции-матрицы Sj поступает 6-битовый блок B(j) = b1b2b3b4b5b6, тогда двухбитовое число b1b6 показывает номер строчки матрицы, а b2b3b4b5 — номер столбца. Результатом Sj(B(j)) будет 4-битовый элемент, расположенный на пересечении обозначенных строчки и столбца.

к примеру, В(1)=011011. Тогда S1(В(1)) размещен на пересечении строчки 1 и столбца 13. В столбце 13 строчки 1 задано

Применив операцию выбора к любому из 6-битовых блоков B(1), B(2), …, B(8), получаем 32-битовую последовательность S1(B(1))S2(B(2))S3(B(3))…S8(B(8)).

В конце концов, для получения результата функции шифрования нужно переставить биты данной последовательности. Для этого применяется функция перестановки P (табл.5). Во входной последовательности биты перестанавливаются так, чтоб бит 16 стал битом 1, а бит 7 — битом 2 и т.д.

Таблица 5:Функция перестановки P

16 07 20 21

29 12 28 17

01 15 23 26

05 18 31 10

02 08 24 14

32 27 03 09

19 13 30 06

22 11 04 25

Такимобразом,

f(R(i-1), K(i)) = P(S1(B(1)),…S8(B(8)))

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

Для удаления контрольных битов и перестановки других употребляется функция G начальной подготовки ключа (табл.6).

Таблица 6

Матрица G начальной подготовки ключа

57 49 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

Итог преобразования 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. Для этого используют повторяющийся сдвиг на лево на один либо два бита зависимо от номера итерации, как показано в табл.7.

Таблица 7

Таблица сдвигов для вычисления ключа


Номер итерации
Сдвиг (бит)

01
1

02
1

03
2

04
2

05
2

06
2

07
2

08
2

09
1

10
2

11
2

12
2

13
2

14
2

15
2

16
1

Приобретенное значение вновь «перемешивается» в согласовании с матрицей H (табл.8).

Таблица 8:Матрица H оканчивающей обработки ключа

14 17 11 24 01 05

03 28 15 06 21 10

23 19 12 04 26 08

16 07 27 20 13 02

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Ключ K(i) будет состоять из битов 14, 17, …, 29, 32 последовательности C(i)D(i). Таковым образом:

K(i) = H(C(i)D(i))

Блок-схема метода вычисления ключа приведена на рис.4.

Рис.4. Блок-схема метода вычисления ключа K(i)

Восстановление начального текста осуществляется по этому методу, но сначала вы используете ключ

K(15), потом — K(14) и так дальше. сейчас для вас обязано быть понятно, почему создатель напористо советует употреблять приведенные матрицы. Если вы начнете самовольничать, вы, обязано быть, получите весьма скрытый шифр, но вы сами не можете его позже раскрыть!


Для более полного ублажения всем требованиям, предъявляемым к коммерческим системам шифрования, реализованы несколько режимов работы метода DES. Более обширное распространение получили режимы:

· электрический шифроблокнот (Electronic Codebook ) — ECB;

· цепочкацифровыхблоков (Cipher Block Chaining) — CBC;

· цифровая оборотная связь (Cipher Feedback) — CFB;

· наружная оборотная связь (Output Feedback) — OFB.

DES-ECB

В этом режиме начальный файл M разбивается на 64-битовые блоки (по 8 байтов): M = M(1)M(2)…M(n). Любой из этих блоков кодируется независимо с внедрением 1-го и такого же ключа шифрования (рис.5). Основное достоинство этого метода — простота реализации. Недочет — относительно слабенькая устойчивость против обученных криптоаналитиков.

Рис.5. Работа метода DES в режиме ECB

А именно, не рекомендуется употреблять данный режим работы для шифрования EXE файлов, поэтому что 1-ый же блок — заголовок файла, является полностью удачным началом для взлома всего шифра.

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

DES-CBC

В этом режиме начальный файл M также, как и в режиме ECB, разбивается на 64-битовые блоки: M = M(1)M(2)…M(n). 1-ый блок M(1) складывается по модулю 2 с 64-битовым исходным вектором IV, который изменяется раз в день и держится в секрете. Приобретенная сумма потом шифруется с внедрением ключа DES, известного и отправителю, и получателю инфы. Приобретенный 64-битовый блок шифртекста C(1) складывается по модулю 2 со вторым блоком начального текста, итог шифруется и выходит 2-ой 64-битовый блок шифртекста C(2) и т.д. Процедура повторяется до того времени, пока не будут обработаны все блоки начального текста (рис.6).

Рис.6. Работа метода в режиме CBC

Таковым образом для всех i = 1…n блок шифртекста C(i) определяется последующим образом:

C(i) = DES(M(i) xor C(i-1)),

C(0) = IV — изначальное

Расшифрование производится последующим образом:

M(i) = C(i-1) xor DES-1(C(i)),

C(0) = IV — изначальное

Красота данного режима заключается в том, что он не дозволяет скапливаться ошибкам при передаче. Блок M(i) является функцией лишь C(i-1) и C(i). Потому ошибка при передаче приведет к потере лишь 2-ух блоков начального текста.

DES-CFB

В этом режиме размер блока может различаться от 64. Начальный файл M считывается поочередными t-битовыми блоками (t <= 64): M = M(1)M(2)…M(n) (остаток дописывается нулями либо пробелами).

64-битовый сдвиговый регистр (входной блок) сначала содержит вектор инициализации IV, выравненный по правому краю. Для всякого сеанса шифрования употребляется новейший IV.

Для всех i = 1…n блок шифртекста C(i) определяется последующим образом:

C(i) = M(i) xor P(i-1) ,

где P(i-1) — старшие t битов операции DES(С(i-1)), при этом C(0)=IV.

Обновление сдвигового регистра осуществляется методом удаления его старших t битов и дописывания справа C(i).

Восстановление зашифрованных данных также не представляет труда: P(i-1) и C(i) рассчитываются аналогичным образом и

M(i) = C(i) xor P(i-1) .

Блок-схема режима CFB приведена на рис.7.

Рис.7. Работа метода DES в режиме CFB

DES-OFB

Режим OFB весьма похож на режим CFB.

Отличие от режима CFB состоит лишь в способе обновления сдвигового регистра. В данном случае это осуществляется методом удаления его старших t битов и дописывания справа P(i-1) (рис.8).

Любому из рассмотренных режимов характерны свои плюсы и недочеты, что обусловливает области их внедрения.

]]>