ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 90
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки РФФедеральное государственное бюджетное образовательное учреждениевысшего образования«Тульский государственный институт»Интернет-институт, направление подготовки «прикладная информатика».ОТЧЕТ ПО ЛАБОЛАТОРНОЙ РАБОТЕпо предмету «Методы и средства защиты компьютерной информации»на тему: «Симметричные криптографические системы»студента группы ИБ262591направление: прикладная информатикавариант №2Преподаватель: Сафронова Марина Алексеевна Тула – 2023Цель работыОсвоение теоретических методов создания симметричных криптографических систем, получение практических навыков в преобразовании информации с помощью ЭВМ.Программа работыСоставить алгоритм для выполнения прямого, а затем обратного преобразование текста в соответствии с вариантом. Номер вариант соответствует последней цифре номера зачетки.Написать, отладить и выполнить программу для пункта 1.Задание. Вариант 2Написать программу шифрования и дешифрования сообщения с использованием криптосистемы Ришелье: реальное сообщение дополняется лишними буквами, которые совершенно не относятся к сообщению. Текст размещается в прямоугольнике с определенным количеством строк и столбцов. Исходные симоволы шифруемого текста располагаются только на определенных позициях, остальные позиции заполняются лишними, ничего не значащими символами.В данном задании используйте следующий прямоугольник Ришелье (см. рисунок 1.3):КонтроКонтрольные вопросы
Решение:1. В чем отличие симметричных и ассиметричных систем шифрования?Поскольку ясно, что симметричное шифрование и асимметричное шифрование являются формами процесса шифрования. Но основное различие между этими двумя методами заключается в том, что симметричное шифрование использует один секретный ключ, в то время как асимметричное шифрование использует два разных отдельных ключа.2. Какие виды симметричных криптосистем вы знаете?В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:
Историческая справка: Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами.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();
} }}
-
В чем отличие симметричных и ассиметричных систем шифрования? -
Какие виды симметричных криптосистем вы знаете? -
В чем сущность подстановки Цезаря? -
Каким образом выполняется обратное преобразование текста, зашифрованного с помощью подстановки Цезаря? -
Назвать условия, которыми необходимо руководствоваться при выборе ключа в симметричных криптосистемах, для повышения криптоустойчивости системы шифрования.
Решение:1. В чем отличие симметричных и ассиметричных систем шифрования?Поскольку ясно, что симметричное шифрование и асимметричное шифрование являются формами процесса шифрования. Но основное различие между этими двумя методами заключается в том, что симметричное шифрование использует один секретный ключ, в то время как асимметричное шифрование использует два разных отдельных ключа.2. Какие виды симметричных криптосистем вы знаете?В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:
-
блочные; -
потоковые.
-
AES -
ГОСТ 28147-89 -
RC5 -
Blowfish -
Twofish
-
RC4 -
Salsa20 -
HC-256 -
WAKE
Историческая справка: Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами.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();
} }}