Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи №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)
{
}
}
}
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!