Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Симетричні блокові шифри на основі мережі Фейстеля

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
Захист інформації в комп’ютерних системах
Варіант:
2 3 8 10 12 15 17

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №5 з дисципліни:”Захист інформації в комп’ютерних системах ” на тему:” Симетричні блокові шифри на основі мережі Фейстеля ” Львів 2019 / Хід роботи / Рис.1 Первинне повідомлення / Рис.2 Шифроване повідомлення / Рис.3 Кінцевий BMP-файл / Рис.4 Результат роботи програми Висновок:Під час виконання лабораторної роботи була розроблена програма,яка реалізує симетричний алгоритм на основі мережі Фейстеля Код програми Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace protect_inf_LR1 { public partial class Form1 : Form { private const int sizeOfBlock = 128; private const int sizeOfChar = 16; private const int shiftKey = 2; private const int quantityOfRounds = 16; string[] Blocks; public Form1() { InitializeComponent(); } private void buttonEncrypt_Click(object sender, EventArgs e) { if (textBoxEncodeKeyWord.Text.Length > 0) { string s = ""; string key = textBoxEncodeKeyWord.Text; StreamReader sr = new StreamReader("in.txt"); while (!sr.EndOfStream) { s += sr.ReadLine(); } sr.Close(); s = StringToRightLength(s); CutStringIntoBlocks(s); key = CorrectKeyWord(key, s.Length / (2 * Blocks.Length)); textBoxEncodeKeyWord.Text = key; key = StringToBinaryFormat(key); for (int j = 0; j < quantityOfRounds; j++) { for (int i = 0; i < Blocks.Length; i++) Blocks[i] = EncodeDES_One_Round(Blocks[i], key); key = KeyToNextRound(key); } key = KeyToPrevRound(key); textBoxDecodeKeyWord.Text = StringFromBinaryToNormalFormat(key); string result = ""; for (int i = 0; i < Blocks.Length; i++) result += Blocks[i]; StreamWriter sw = new StreamWriter("out1.txt"); sw.WriteLine(StringFromBinaryToNormalFormat(result)); sw.Close(); Process.Start("out1.txt"); } else MessageBox.Show("Введите ключевое слово!"); } private void buttonDecipher_Click(object sender, EventArgs e) { if (textBoxDecodeKeyWord.Text.Length > 0) { string s = ""; string key = StringToBinaryFormat(textBoxDecodeKeyWord.Text); StreamReader sr = new StreamReader("out1.txt"); while (!sr.EndOfStream) { s += sr.ReadLine(); } sr.Close(); s = StringToBinaryFormat(s); CutBinaryStringIntoBlocks(s); for (int j = 0; j < quantityOfRounds; j++) { for (int i = 0; i < Blocks.Length; i++) Blocks[i] = DecodeDES_One_Round(Blocks[i], key); key = KeyToPrevRound(key); } key = KeyToNextRound(key); textBoxEncodeKeyWord.Text = StringFromBinaryToNormalFormat(key); string result = ""; for (int i = 0; i < Blocks.Length; i++) result += Blocks[i]; ...
Антиботан аватар за замовчуванням

23.10.2019 20:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини