Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

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

Автор:   •  Май 17, 2023  •  Лабораторная работа  •  5,741 Слов (23 Страниц)  •  225 Просмотры

Страница 1 из 23

Лабораторная работа

АЛГОРИТМ ШИФРОВАНИЯ ДАННЫХ DES

Цель работы

Познакомиться с основами симметричного шифрования. Изучить алгоритм шифрования DES на примере упрощенной версии S-DES.

Задания на лабораторную работу

  1. Изучить основы симметричного шифрования
  2. Изучить алгоритм шифрования S-DES.
  3. Написать программы шифрования и расшифрования одного символа с использованием алгоритма S-DES. Ключ и открытый текст вводить с клавиатуры. Промежуточные значения и результат выводить на экран в двоичном виде.

Описание программы

Вычисление подключей S-DES.

В S-DES используется 10-битовый ключ, который должен быть как у отправителя, так и у получателя сообщения. Из этого ключа генерируются два 8-битовых подключа.

[pic 1]

Пример. Пусть имеем на входе следующий ключ К=642(10):

[pic 2]

  1. Перестановка Р10.

[pic 3]        ([pic 4])

  1. Циклический сдвиг влево на одну позицию. Выполняется отдельно для первых 5-ти битов и отдельно для вторых 5-ти битов.

[pic 5]

  1. Перестановка Р8.

[pic 6]        ([pic 7])

Получаем первый 8-битный подключ [pic 8].

  1. Циклический сдвиг влево на две позиции.

[pic 9]

  1. Перестановка Р8.

[pic 10]        ([pic 11])

Получаем второй 8-битный подключ [pic 12].

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

[pic 13]

[pic 14]

Алгоритм шифрования.

[pic 15]

Операция 1: Начальная перестановка [pic 16].

Операции 2: Функция   fk. представляет собой комбинацию перестановки и подстановки:

fk.(L, R) = (L F(R, SK), R),

где L и R – левые и правые 4 бита 8-битовой последовательности, подаваемой на вход  fk.;

SK – подключ.

Отображение F.

На входе отображения имеем 4-битовое значение.

а) Сначала выполняется [pic 17] — операция расширения/перестановки: [pic 18], применяется к правой части;

б) [pic 19];

в) применение S-матриц:

[pic 20], [pic 21].

S-матрицы работают следующим образом: 1-ый и 4-ый биты входной последовательности рассматриваются как двухбитовые числа, определяющие строку S-матрицы, 2-ой и 3-ий биты — как числа, определяющие столбец S-матрицы. Элементы, находящиеся на пересечении строки и столбца, задают двухбитовые выходные значения:;

Получаем 4-битовую последовательность;

г) Перестановка [pic 22].

е) XOR(L, P4).

Операция 3: SW – перестановка, меняет местами первые и последние 4 бита..

Операция 4: Функция fk. К полученной последовательности битов применяем операцию 2, с той лишь разницей, что используется подключ [pic 23].[pic 24]

Операция 5: Завершающая перестановка. Является обратной по отношению к начальной.

[pic 25]

На выходе получим 8-битовый блок, который затем преобразуем в символ, который и будет являться зашифрованным.

Для расшифрования используется тот же алгоритм, что и для шифрования, только в операции 2 используется подключ [pic 26], а в операции 4 — подключ [pic 27].

Текст программы

private void button1_Click(object sender, EventArgs e)

        {

            int[] IP = { 2, 6, 3, 1, 4, 8, 5, 7 };

            int[] IP1 = { 4, 1 ,3 ,5 ,7 ,2 ,8 ,6 };

            char[] TextIP = new char[8];

            char []key=new char[10];

            char[] k1 = new char[8];

            char[] k2 = new char[8];

            char[] L = new char[4];

            char[] R = new char[4];

            char[] middle = new char[8];

            char[] middle1 = new char[4];

            char[] CryptText = new char[8];

...

Скачать:   txt (21.9 Kb)   pdf (542.2 Kb)   docx (546.7 Kb)  
Продолжить читать еще 22 страниц(ы) »
Доступно только на Essays.club