Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
Звіт
З лабораторної роботи №1
з дисципліни: " Захист інформація в комп’ютерних системах"
Львів 2018
Тема: Шифр моно алфавітної заміни (шифр Цезаря).
Мета: ознайомитись з основами класичної техніки шифрування– шифрами моноалфавітної заміни, та типовим прикладом шифрів даного виду – шифром Цезаря.
Завдання:
1. Розробити програму, що реалізує шифрування вихідного повідомлення за допомогою шифру Цезаря. Повідомлення, що необхідно зашифрувати, має бути задано українською мовою. В якості ключа шифрування обирається номер студента у списку групи.
2. Оформити та захистити звіт.
Код програми:
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 lab1_zi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
char[] Alphabet ={' ','а','б','в','г','д','е','є','ж','з','и','і','ї','й'
,'к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш',
'щ','ь','ю','я'};
public void Сrypt()
{
int key = int.Parse(textBox2.Text);
char[] InLetter = textBox1.Text.ToCharArray();
char[] Encode = new char[InLetter.Length];
for (int i = 0; i < InLetter.Length; i++)
{
for (int j = 0; j < Alphabet.Length; j++)
{
if (InLetter[i] == Alphabet[j])
{
Encode[i] = Alphabet[(j + key) % Alphabet.Length];
break;
}
}
}
textBox3.Text = new string(Encode);
}
private void button1_Click(object sender, EventArgs e)
{
Сrypt();
}
public void Encrypt()
{
int key = int.Parse(textBox2.Text);
char[] InLetter = textBox3.Text.ToCharArray();
char[] Encode = new char[InLetter.Length];
for (int i = 0; i < InLetter.Length; i++)
{
for (int j = 0; j < Alphabet.Length; j++)
{
if (InLetter[i] == Alphabet[j])
{
if((j-key)<0)
{
Encode[i] = Alphabet[Alphabet.Length - Math.Abs(j - key)];
break;
}
else
{
Encode[i]= Alphabet[(j - key) % Alphabet.Length];
break;
}
}
}
}
textBox4.Text = new string(Encode);
}
private void button3_Click(object sender, EventArgs e)
{
Encrypt();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Результати роботи:
/
Рис.1. Шифрування повідомлення.
/
Рис.2. Дешифрування повідомлення.
Висновок: під час лабораторної роботи я ознайомився з основами класичної техніки шифрування – шифрами моноалфавітної заміни, та типовим прикладом шифрів даного виду – шифром Цезаря.