Вход

Шифр простой замены Цезаря. Таблица Виженера

Рекомендуемая категория для самостоятельной подготовки:
Лабораторная работа*
Код 374065
Дата создания 09 января 2018
Страниц 23
Мы сможем обработать ваш заказ 20 октября в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
410руб.
КУПИТЬ

Описание

Цель работы: изучение и реализация алгоритмов шифрования простой замены - шифра Цезаря и шифра Виженера на языке программирования С#, также представлен листинг программы. Работа была защищена на оценку "отлично". ...

Содержание

Задание:
Составьте алгоритмическое и программное обеспечение:
1. Процедур шифрования и расшифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и исходного или зашифрованного текста. Учтите регистр вводимого текста.
2. Процедур шифрования и расшифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и текстового файла. Учтите регистр вводимого текста.
3. Процедур шифрования и расшифрования с использованием шифра Виженера при вводе с клавиатуры ключа и исходного или зашифрованного текста. Учтите регистр вводимого текста.
4. Процедур шифрования и расшифрования с использованием шифра Виженера при вводе с клавиатуры ключа и текстового файла. Учтите регистр вводимого текста.
5. Постройте программно таблицу Виженера и выведите в файл.
Для созданного программногообеспечения проведите тестирование не менее чем на 10 различных наборах данных.

Введение

Ход работы:
1. Составим алгоритмическое обеспечение процедуры шифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и исходного или зашифрованного текста. Алгоритм представлен в виде блок-схемы, приведенной на рисунке 1:

Фрагмент работы для ознакомления

В результате тестирования выяснилось, что в шифре Цезаря для больших значений ключей алгоритм работает некорректно. Это связано с тем, что в алгоритме не учтена возможность обработки больших ключей. Шифр Виженера работает корректно для приведенных тестов.Приложение 1private void button1_Click(object sender, EventArgs e) {     string result = "";     Key_init_task1 = Convert.ToInt32(textBox1.Text);     Word_init_task1 = textBox2.Text;     for (int i = 0; i <= Word_init_task1.Length - 1; i++)     {         Find_Mas(Word_init_task1, i);         for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)         {             if (Convert.ToString(Word_init_task1[i]) == Mas_Word(flag)[j])             {                 result += Mas_Word(flag)[(j + Key_init_task1) % Mas_Word(flag).Length];                 break;             }         }     }     textBox3.Text = result; }  private void button2_Click(object sender, EventArgs e) {     string result = "";     Key_coding_task1 = Convert.ToInt32(textBox5.Text);     Word_coding_task1 = textBox6.Text;     for (int i = 0; i <= Word_coding_task1.Length - 1; i++)     {         Find_Mas(Word_coding_task1, i);         for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)         {             if (Convert.ToString(Word_coding_task1[i]) == Mas_Word(flag)[j])             {                 result += Mas_Word(flag)[(Mas_Word(flag).Length + (j - Key_coding_task1)) % Mas_Word(flag).Length];                 break;             }         }     }     textBox4.Text = result; }  private void button9_Click(object sender, EventArgs e) {     openFileDialog1.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;      openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";     openFileDialog1.FilterIndex = 1;     openFileDialog1.RestoreDirectory = true;     if (openFileDialog1.ShowDialog() == DialogResult.OK)     {         FileName_1_task2 = openFileDialog1.FileName;     } }  private void button4_Click(object sender, EventArgs e) {     string result = "";     Key_init_task2 = Convert.ToInt32(textBox12.Text);     StreamReader sr = new StreamReader(FileName_1_task2, Encoding.Default);     Word_init_task2 = sr.ReadLine();     sr.Close();     for (int i = 0; i <= Word_init_task2.Length - 1; i++)     {         Find_Mas(Word_init_task2, i);         for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)         {             if (Convert.ToString(Word_init_task2[i]) == Mas_Word(flag)[j])             {                 result += Mas_Word(flag)[(j + Key_init_task2) % Mas_Word(flag).Length];                 break;             }         }     }     textBox10.Text = result; }  private void button3_Click(object sender, EventArgs e) {     string result = "";     Key_coding_task2 = Convert.ToInt32(textBox9.Text);     StreamReader sr = new StreamReader(FileName_2_task2, Encoding.Default);     Word_coding_task2 = sr.ReadLine();     sr.Close();     for (int i = 0; i <= Word_coding_task2.Length - 1; i++)     {         Find_Mas(Word_coding_task2, i);         for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)         {             if (Convert.ToString(Word_coding_task2[i]) == Mas_Word(flag)[j])             {                 result += Mas_Word(flag)[(Mas_Word(flag).Length + (j - Key_coding_task2)) % Mas_Word(flag).Length];                 break;             }         }     }     textBox7.Text = result; }  private void button10_Click(object sender, EventArgs e) {     openFileDialog1.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;     openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";     openFileDialog1.FilterIndex = 1;     openFileDialog1.RestoreDirectory = true;     if (openFileDialog1.ShowDialog() == DialogResult.OK)     {         FileName_2_task2 = openFileDialog1.FileName;     } }Приложение 2private void button6_Click(object sender, EventArgs e)       {           string result = "";           string original = "";           int num_key = 0;           Key_init_task3 = textBox16.Text;           original = Key_init_task3;           Word_init_task3 = textBox15.Text;           int k = Word_init_task3.Length % Key_init_task3.Length;           int k2 = (int)(Word_init_task3.Length / Key_init_task3.Length);           for (int i = 1; i <= k2 - 1; i++)           {               Key_init_task3 += original;           }           if (Word_init_task3.Length % Key_init_task3.Length != 0)           {               for (int i = 0; i <= k - 1; i++)               {                   Key_init_task3 += original[i];               }           }           for (int i = 0; i <= Word_init_task3.Length - 1; i++)           {               Find_Mas(Word_init_task3, i);               for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)               {                   if (Convert.ToString(Key_init_task3[i]) == Mas_Word(flag)[j])                   {                       num_key = j;                   }               }               for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)               {                   if (Convert.ToString(Word_init_task3[i]) == Mas_Word(flag)[j])                   {                       result += Mas_Word(flag)[(j + num_key) % Mas_Word(flag).Length];                   }               }           }           textBox14.Text = result;       }        private void button5_Click(object sender, EventArgs e)       {           string result = "";           string original = "";           int num_key = 0;           Key_coding_task3 = textBox13.Text;           original = Key_coding_task3;           Word_coding_task3 = textBox11.Text;           int k = Word_coding_task3.Length % Key_coding_task3.Length;           int k2 = (int)(Word_coding_task3.Length / Key_coding_task3.Length);           for (int i = 1; i <= k2 - 1; i++)           {               Key_coding_task3 += original;           }           if (Word_coding_task3.Length % Key_coding_task3.Length != 0)           {               for (int i = 0; i <= k - 1; i++)               {                   Key_coding_task3 += original[i];               }           }           for (int i = 0; i <= Word_coding_task3.Length - 1; i++)           {               Find_Mas(Word_coding_task3, i);               for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)               {                   if (Convert.ToString(Key_coding_task3[i]) == Mas_Word(flag)[j])                   {                       num_key = j;                   }               }               for (int j = 0; j <= Mas_Word(flag).Length - 1; j++)               {                   if (Convert.ToString(Word_coding_task3[i]) == Mas_Word(flag)[j])                   {                       result += Mas_Word(flag)[(Mas_Word(flag).Length + (j - num_key)) % Mas_Word(flag).Length];                   }               }           }           textBox8.

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

1. Информационная безопасность в сетях ЭВМ. Методическое пособие.
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
© Рефератбанк, 2002 - 2021