DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

Рік:
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:31

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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