Скачиваний:
47
Добавлен:
09.12.2017
Размер:
265.18 Кб
Скачать

2.3 Предполагаемая структура разрабатываемого пп

На данном рисунке представлена структура разрабатываемого ПП. Структура описана с помощью упрощенной блок-схемы.

Рис 7.

3. Руководство пользователя, инструкция по инсталляции

Для эффективной работы программы необходимо выполнение следующих требований к аппаратному и программному обеспечению:

  • CPU не ниже Pentium-133

  • 8 Mb оперативной памяти (желательно 32 Mb)

  • минимум 1mb свободного дискового пространства

  • 1 Mb видеопамяти

    • операционная система Windows 95/98/2000/XP/Vista/7/8/10.

  • Клавиатура, мышь.

3.1 Особенности запуска программы

Для работы программы необходимо запустить файл с расширением .exe Aphina.exe программа для шифрования и дешифрования.

3.2 Особенности работы с программой Пользователю должен ввести целые числа a и b (причем числа должны быть взаимно-простые). После ввода a и b нужно ввести исходный текст в поле ввода “Текст для шифрования” и нажать кнопку Зашифровать. В поле “Зашифрованный текст” отобразится зашифрованный текст. Для расшифровки нужно нажать кнопку “Расшифровать”. Примечание: вводить только буквы латинского алфавита.

3.3 Результат работы программы

Рис.7 – скриншот окна.

ВЫВОД

В этой курсовой работе я более детально ознакомился с алгоритмами поиска простых чисел.

С помощью среды программирования Visual Studio мной был создан программный продукт, который выполняет шифрование или расшифрование текста по аффинному методу. Данная программа позволяет пользователю быстро зашифровать или расшифровать сообщение нажатием одной клавиши.

Во время разработки программного продукта я получил опыт, который поможет мне в будущем писать программы продуктивнее, быстрее и качественнее.

Список литературы

  1. Остапов С.Е., Валь Л.О. Основи криптографії: Навчальний посібник.

– Чернівці: Книга – ХХІ, 2008. – 188 с.

  1. Ю.В.Романец, П.А.Тимофеев, В.Ф.Шаньгин. Защита информации в компьютерных системах и сетях./ под ред. В.Ф.Шаньгина – М.: Радио и свіязь, 2001. – 376с.

  1. А.В.Яковлев, А.А.Безбогов, В.В.Родин, В.Н.Шамкин. Криптографическая защита информации. – Тамбов:Из-во Тамб. Гос. Тех.. ун-

та, 2006. – 140 с.

  1. М.Масленников. Практическая криптография. БХВ-Петербург,2003. – 464с.

  1. Б.Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные коды на

языке С. 1996.

  1. Галицкий А.В., Рябко С.Д., Шаньгин В.Ф. Защита информации в сети. М.”ДМК”,

2004. – 616 с.

  1. Н. Коблиц. Курс теории чисел и криптографии.

  2. Сайт

http://mech.math.msu.su/~shvetz/54/inf/perl-problems/chPrimes_sIdeas.xhtml

Приложение А

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Collections;

using System.IO;

namespace Aphina

{

public partial class Form1 : Form

{

Hashtable alpha_table;

string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

int m = 52;

int I;

public Form1()

{

InitializeComponent();

alpha_table = new Hashtable();

}

private Form2 form;

private Form3 form1;

private void textBox2_TextChanged(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

alpha_table.Clear();

int a = (int)numericUpDown1.Value;

int b = (int)numericUpDown2.Value;

for (int i = 0; i < m; ++i)

{

I = (a * i + b) % m;

alpha_table.Add(i, alphabet[I]);

}

string input = textBox1.Text;

int length = input.Length;

string text1 = "";

for (int i = 0; i < length; ++i)

{

for(int j=0; j<m; ++j)

{

if (alphabet[j] == input[i])

{

text1 += alpha_table[j];

break;

}

}

}

textBox2.Text = text1;

textBox1.Text = System.Text.RegularExpressions.Regex.Replace(textBox1.Text, @"[^a-zA-Z]", "");

if (textBox1.Text == "")

{

MessageBox.Show("Введите текст для зашифрования");

}

if (numericUpDown1.Value == 0)

{

MessageBox.Show("Введите коэффециент a");

}

if (numericUpDown2.Value == 0)

{

MessageBox.Show("Введите коэффециент b");

}

}

private void button2_Click(object sender, EventArgs e)

{

string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

string inp = textBox2.Text;

int length = inp.Length;

int a = (int)numericUpDown1.Value;

int b = (int)numericUpDown2.Value;

alpha_table.Clear();

for (int i = 0; i < m; ++i)

{

I = (a * i + b) % m;

alpha_table.Add(i, alphabet[I]);

}

string text4 = "";

for (int i = 0; i < length; ++i)

{

foreach (DictionaryEntry en in alpha_table)

{

if (en.Value.Equals(inp[i]))

{

int oi = (int)en.Key;

text4 += alphabet[oi];

break;

}

}

}

textBox3.Text = text4;

}

/*private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

if (((e.KeyChar < 65) || (e.KeyChar > 90)) & ((e.KeyChar < 97) || (e.KeyChar > 122)))

{

MessageBox.Show("Вводите только латинские буквы.");

e.KeyChar = '\0';

}

}*/

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

private void textBox3_TextChanged(object sender, EventArgs e)

{

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Close();

}

private void обАвтореToolStripMenuItem_Click(object sender, EventArgs e)

{

form = new Form2();

form.Visible = true;

}

private void помощьToolStripMenuItem_Click(object sender, EventArgs e)

{

form1 = new Form3();

form1.Visible = true;

}

private void openFileDialog1_FileOk_1(object sender, CancelEventArgs e)

{

}

}

}

1