Скачиваний:
2
Добавлен:
28.04.2022
Размер:
208.86 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования

«Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»

(КФ МГТУ им. Н.Э. Баумана)

ФАКУЛЬТЕТ _ИУК «Информатика и управление»

КАФЕДРАИУК6 «Защита информации»

ЛАБОРАТОРНАЯ РАБОТА № 1

Вариант 3

«Исследование традиционных методов симметричного шифрования»

ДИСЦИПЛИНА: «Криптографические методы защиты информации»

Выполнил: студент гр. ИУК6-83

_________________ (_)

(Подпись) (Ф.И.О.)

Проверил:

_________________ (Молчанов А.Н.)

(Подпись) (Ф.И.О.)

Дата сдачи (защиты):

Результаты сдачи (защиты):

- Балльная оценка:

- Оценка:

Калуга, 2022

Цель работы: сформировать практические навыки применения традиционных методов симметричного шифрования.

Задачи: изучить классические алгоритмы симметричного шифрования. Разработать алгоритмы симметричного шифрования и расшифровывания. Реализовать на их основе программы для защиты текстовых данных.

Задание по варианту 3: Шифрующие таблицы с ключевым словом.

Теоретическая часть

Симметричными называют алгоритмы, в которых шифрование и дешифрование ведется на одном и том же ключе. И этот ключ является секретным. Сам алгоритм зашифровывания, как правило, считается известным всем.

Шифрующие таблицы по числовым или буквенным ключам

В верхней (ключевой) строке таблицы до перестановки записывается ключ, затем столбцы таблицы переставляются в соответствии с алфавитным порядком букв ключа в алфавите или по возрастанию, или убыванию цифр ключа. Затем буквы считываются по строкам, получается блок шифротекста. Пример. Зашифрованное сообщение «ТЕРМИНАТОР ПРИБЫВАЕТ СЕДЬМОГО В ПОЛНОЧЬ» с помощью таблицы 5х7 и ключевого слова «ПЕЛИКАН» представлен на рисунке 1:

Рисунок 1 – Шифрующие таблицы

При считывании содержимого правой таблицы по строкам и записи шифротекста группами по пять букв получим шифрованное сообщение: «ГНВЕП ЛТООА ДРНЕВ ТЕЬИО РПОТМ БЧМОР СОЫЬИ».

Практическая часть

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

В ходе выполнения лабораторной работы была разработана программа для шифрования входного открытого текста с использованием шифрующих таблиц с цифровым и буквенным ключом. Программа реализована в приложении Windows Forms на языке C#. Интерфейс программы представлен на рисунке 2:

Рисунок 2 – Интерфейс программы

Для реализации шифрования или расшифрования файла необходимо выбрать заранее созданный и заполненный данными на русском языке текстовый документ. Введенный в файл cleartext.txt текст (рисунок 3): на краю дороги стоял дуб. он был, вероятно, в десять раз старше берез, составлявших лес, в десять раз толще и в два раза выше каждой березы.

Рисунок 3 – Содержание текстового файла

Следующий этап – ввод ключевого слова в предназначенную для этого ячейку TextBox (рисунок 4).

Рисунок 4 – Ввод ключевого слова

После выбора ключевого слова и текстового файла выполняется шифрование. Заполнение матрицы и вывод зашифрованного результата представлены на рисунке 5:

Рисунок 5 – Шифрование текста

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

  1. Процесс заполнение матрицы текстом. Код представлен в листинге 1.

Листинг 1 – Процесс заполнение матрицы текстом

while (k != 0)

{

for (int i = 2; i < _it + 2; i++)

{

for (int j = 0; j < _jt; j++)

{

if (k == 0)

{

cryptoTable[i, j] = Convert.ToString("-");

Console.Write(String.Format("{0,3}", cryptoTable[i, j]));

}

else

{

if ((t + ren * ren2) < k2)

{

cryptoTable[i, j] = Convert.ToString(replaced[t + ren * ren2]);

Console.Write(String.Format("{0,3}", cryptoTable[i, j]));

k--;

}

else

{

cryptoTable[i, j] = Convert.ToString("-");

Console.Write(String.Format("{0,3}", cryptoTable[i, j]));

}

t2++;

ren2++;

}

}

t++;

ren2 = 0;

Console.WriteLine();

if (t2 % x == 0)

{

t = t2;

}

}

}

  1. Перестановка столбцов в зависимости от порядка букв в алфавите. Код представлен в листинге 2.

Листинг 2 – Перестановка столбцов

int c = 1;

bool chekin = true;

char symbls = '0';

for (int j = 0; j < m; j++)

{

if (chekin)

{

symbls = (char)(c + 48);

chekin = false;

}

if (symbls == cryptoTable [1,j])

{

for (int i = 0; i < n; i++)

{

CryptoTable2[i, c - 1] = cryptoTable[i, j];

}

c++;

if (c < 6)

j = -1;

else

j = m;

chekin = true;

}

}

textBox2.Text += Environment.NewLine;

for (int i = 2; i < n; i++)

{

for (int j = 0; j < m; j++)

{

probls+= cryptoTable2[i, j];

textBox2.Text += cryptoTable2[i, j];

if (j < m - 1)

textBox2.Text += '\t';

}

textBox2.Text += Environment.NewLine;

}

Зашифрованный текст:

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

Текст сохраняется в текстовый файл с помощью кнопки «Сохранить». Имя файла задается пользователем (рисунок 6):

Рисунок 6 – Сохранение зашифрованного файла

Содержимое текстового файла представлено на рисунке 7:

Рисунок 7 – Зашифрованный текст

Для расшифровки текста требуется выбрать файл с зашифрованным текстом и ключевое слово (рисунок 8):

Рисунок 8 – Процесс расшифровки

Расшифрованное и сохраненное в текстовый файл сообщение представлено на рисунке 9:

Рисунок 9 – Расшифрованный текст

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

  1. Буквы ключевого слова сортируются в порядке возрастания их порядкового номера в алфавите. Изначальный порядок индексов в слове запоминается.

  2. Сохраненный зашифрованный текст из файла заполняет матрицу.

  3. Столбцы сортирутся по изначальному порядку индексов слова.

  4. Расшифрованный текст сохраняется в файл программы.

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

Соседние файлы в предмете Криптографические методы защиты информации