Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра БІТ
З В І Т
до лабораторної роботи №5
з курсу: «КРИПТОГРАФІЧНІ СИСТЕМИ ТА ПРОТОКОЛИ»
на тему: «ШИФРУВАННЯ ТА РОЗШИФРУВАННЯ ІНФОРМАЦІЇ ЗА ДОПОМОГОЮ АЛГОРИТМУ RSA»
Мета роботи – вивчити математичні основи побудови алгоритму шифрування RSA, методи криптоаналізу та вимоги до стійкості алгоритму RSA, навчитися розробляти програмне забезпечення для шифрування та цифрового підпису з використанням алгоритму RSA.
Завдання
1) Ввести в комп'ютер програми згідно із завданням.
2) Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками.
3) Остаточні версії блок-схем, програм та отримані результати оформити у звіті з лабораторної роботи.
4) Здати звіт з лабораторної роботи.
Блок-схеми алгоритмів
class MainWindow : Window
void Init ()
ні
так
ні
Main Window ()
int fun(int p, int a, int b)
button1_Click ()
button2_Click ()
Остаточна версія програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Lab_5_EK
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
string str1, str2;
Random myrandom = new Random();
int p, q, n, f, a, b = 1, k, buf;
public void Init()
{
p = Convert.ToInt32(textBox3.Text);
q = Convert.ToInt32(textBox4.Text);
n = p * q;
f = (p - 1) * (q - 1);
//a-ga keri san b esepteu
A:
b = 1;
a = myrandom.Next(f);
buf = a;
textBox5.Text = Convert.ToString(a);
while (b < f)
{
if ((b * a) % f == 1)
break;
b = b + 1;
}
if (b == f) goto A;
//
//
//
str1 = textBox1.Text;
bufer = textBox1.Text;
str2 = textBox2.Text;
}
public MainWindow()
{
InitializeComponent();
}
public int fun(int p, int a, int b)
{
int s = 1;
for (int i = 1; i <= b; i++)
{
s = (s * a) % p;
}
return s;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
private void button1_Click(object sender, RoutedEventArgs e)
{
a = myrandom.Next(f);
Init();
for (int i = 0; i < str1.Length; i++)
{
k = (int)str1[i];
//шифрування
k = fun(n, k, a);
textBox2.Text = textBox2.Text + k.ToString() + " ";
}
}
private void button2_Click(object sender, RoutedEventArgs e)
{
Init();
for (int i = 0; i < str2.Length; i++)
{
k = (int)str2[i];
b = buf;
//дешифрування
k = fun(n, k, b);
textBox1.Text = textBox1.Text + (char)k;
}
textBox1.Text = bufer;
}
}
}
Результат роботи програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!