Файл: Симметричные криптографические системы.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 26

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Тульский государственный институт»

Интернет-институт, направление подготовки «прикладная информатика».

ОТЧЕТ ПО ЛАБОЛАТОРНОЙ РАБОТЕ

по предмету «Методы и средства защиты компьютерной информации»

на тему: «Симметричные криптографические системы»

студента группы ИБ262591

направление: прикладная информатика

вариант №2

Преподаватель: Сафронова Марина Алексеевна

Тула – 2023

Цель работы

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

Программа работы

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

Написать, отладить и выполнить программу для пункта 1.

Задание. Вариант 2

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

В данном задании используйте следующий прямоугольник Ришелье (см. рисунок 1.3):



Контро

Контрольные вопросы

  1. В чем отличие симметричных и ассиметричных систем шифрования?

  2. Какие виды симметричных криптосистем вы знаете?

  3. В чем сущность подстановки Цезаря?

  4. Каким образом выполняется обратное преобразование текста, зашифрованного с помощью подстановки Цезаря?

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



Решение:

1. В чем отличие симметричных и ассиметричных систем шифрования?

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

2. Какие виды симметричных криптосистем вы знаете?

В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:

  • блочные;

  • потоковые.

Блочные алгоритмы шифруют данные блоками фиксированной длины (64, 128 или другое количество бит в зависимости от алгоритма). Если все сообщение или его финальная часть меньше размера блока, система дополняет его предусмотренными алгоритмом символами, которые так и называются дополнением.

К актуальным блочным алгоритмам относятся:

  • AES

  • ГОСТ 28147-89

  • RC5

  • Blowfish

  • Twofish

Потоковое шифрование данных предполагает обработку каждого бита информации с использованием гаммирования, то есть изменения этого бита с помощью соответствующего ему бита псевдослучайной секретной последовательности чисел, которая формируется на основе ключа и имеет ту же длину, что и шифруемое сообщение. Как правило, биты исходных данных сравниваются с битами секретной последовательности с помощью логической операции XOR (исключающее ИЛИ, на выходе дающее 0, если значения битов совпадают, и 1, если они различаются).

Потоковое шифрование в настоящее время используют следующие алгоритмы:

  • RC4

  • Salsa20

  • HC-256

  • WAKE

3. В чем сущность подстановки Цезаря?

Шифр Цезаря, также известный, как шифр сдвига, код Цезаря или сдвиг Цезаря — один из самых простых и наиболее широко известных методов шифрования.

Шифр Цезаря — это вид шифра подстановки, суть которого состоит в следующем: каждый символ в тексте заменяется символом находящимся на некотором одинаковом промежутке левее или правее него в выбранном алфавите. Например, в шифре с русским алфавите со сдвигом 3, "А" была бы заменена на "Г", "Б" станет "Д", и так далее.



Историческая справка: Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами.

4. Каким образом выполняется обратное преобразование текста, зашифрованного с помощью подстановки Цезаря?

Система шифрования Цезаря с ключевым словом является одноалфавитной системой подстановки. Особенностью этой системы является использование ключевого слова для смещения и изменения порядка символов в алфавите подстановки.

Выберем некоторое число k, , и слово или короткую фразу в качестве ключевого слова. Желательно, чтобы все буквы ключевого слова были различными. Ключевое слово записывается под буквами алфавита, начиная с буквы, числовой код которой совпадает с выбранным числом k.

Оставшиеся буквы алфавита подстановки записываются после ключевого слова в алфавитном порядке:

Следует отметить, что требование о различии всех букв ключевого слова не обязательно. Можно просто записать ключевое слово (или фразу) без повторения одинаковых букв. Например, ключевая фраза:





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

Задание

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;



namespace _5

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}



private void button1_Click(object sender, EventArgs e)

{



textBox3.Text = "";

int move = 0;

string[] array = new string[] { "а", "б", "в",

"г", "д", "е", "ё", "ж",

"з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с",

"т", "у", "ф", "х",

"ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" };

try

{

move = Convert.ToInt32(textBox1.Text);

}

catch

{

MessageBox.Show("
Установите шаг шифрования!");

return;

}



string[] array2;

array2 = array.Skip(move).Concat(array.Take(move)).ToArray();



foreach (string element in array2)

{



}



string text = textBox2.Text;

foreach (char bykva in text)

{

for (int i = 0; i < array.Length; i++)

{

if (bykva.ToString().ToLower() == array[i])

{

textBox3.Text += array2[i];

break;

}

else

{

if (bykva.ToString() == " " || bykva.ToString() == "." ||

bykva.ToString() == "," || bykva.ToString() == ":" ||

bykva.ToString() == ";" || bykva.ToString() == "?" ||

bykva.ToString() == "!")

{

textBox3.Text += " ";

break;

}



}

}

}

}



private void button2_Click(object sender, EventArgs e)

{



textBox3.Text = "";

int move = 0;

string[] array = new string[] { "a", "b", "c",

"d", "e", "f", "g", "h",

"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",

"t", "u", "v", "w",

"x", "y", "z" };

try

{

move = Convert.ToInt32(textBox1.Text);

}

catch

{

MessageBox.Show("Установите шаг шифрования!");

return;

}



string[] array2;

array2 = array.Skip(move).Concat(array.Take(move)).ToArray();



foreach (string element in array2)

{



}



string text = textBox2.Text;

foreach (char bykva in text)

{

for (int i = 0; i < array.Length; i++)

{

if (bykva.ToString().ToLower() == array[i])

{

textBox3.Text += array2[i];

break;

}

else

{

if (bykva.ToString() == " " || bykva.ToString() == "." ||

bykva.ToString() == "," || bykva.ToString() == ":" ||

bykva.ToString() == ";" || bykva.ToString() == "?" ||

bykva.ToString() == "!")

{

textBox3.Text += " ";

break;

}

}

}

}

}



private void button3_Click(object sender, EventArgs e)

{

textBox1.Text = "";

textBox1.Clear();

textBox2.Text = "";

textBox2.Clear();

textBox3.Text = "";

textBox3.Clear();

textBox4.Text = "";

textBox4.Clear();

}



private void button4_Click(object sender, EventArgs e)

{

textBox1.Text = "";

textBox1.Clear();

textBox2.Text = "";

textBox2.Clear();

textBox3.Text = "";

textBox3.Clear();

textBox4.Text = "";

textBox4.Clear();


}

}

}