Перестановочний шифр

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

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

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

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
Захист інформації в комп’ютерних системах

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №2 з дисципліни:”Захист інформації в комп’ютерних системах ” на тему:”Перестановочний шифр” Мета роботи: ознайомитись з основами класичної техніки шифрування – перестановочними шифрами Теоретичні відомості / / / Дана програма працює за таким принципом:дані які надходять для шифрування-дешифрування діляться на блоки однакової довжини.Саме шифрування-дешифрування проводиться за допомогою ключа,який,власне і визначає довжину блока.У випадку якщо залишається остача при діленні повідомлення на блоки,тоді різниця заповнюється першим символом вхідного повідомлення.Результат роботи програми зображено на Рис.1 / Рис.1 Результат роботи програми Висновок: В даній лабораторній роботі я ознайомився з технікою шифрування методом перестановочної заміни та розробив програму, яка шифрує повідомлення відповідним методом. Код програми Transposition.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TranspositionCipher { class Transposition { private int[] key = null; public void SetKey(int[] _key) { key = new int[_key.Length]; for (int i = 0; i < _key.Length; i++) key[i] = _key[i]; } public void SetKey(string[] _key) { key = new int[_key.Length]; for (int i = 0; i < _key.Length; i++) key[i] = Convert.ToInt32(_key[i]); } public void SetKey(string _key) { SetKey(_key.Split(' ')); } public string Encrypt(string input) { for (int i = 0; i < input.Length % key.Length; i++) input += input[i]; string result = ""; for (int i = 0; i < input.Length; i += key.Length) { char[] transposition = new char[key.Length]; for (int j = 0; j < key.Length; j++) transposition[key[j] - 1] = input[i + j]; for (int j = 0; j < key.Length; j++) result += transposition[j]; } return result; } public string Decrypt(string input) { string result = ""; for (int i = 0; i < input.Length; i += key.Length) { char[] transposition = new char[key.Length]; for (int j = 0; j < key.Length; j++) transposition[j] = input[i + key[j] - 1]; for (int j = 0; j < key.Length; j++) result += transposition[j]; } return result; } } } Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TranspositionCipher { public partial class Form1 : Form { Transposition t; public Form1() { InitializeComponent(); t = new Transposition(); } private void startButton_Click(object sender, EventArgs e) { t.SetKey(keyTextBox.Text); if (encryptRadioButton.Checked) outputTextBox.Text = t.Encrypt(inputTextBox.Text); else outputTextBox.Text = t.Decrypt(inputTextBox.Text); } private void label2_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } } }
Антиботан аватар за замовчуванням

23.10.2019 20:10-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!