Шифр Цезаря и Виженера C#

 Задание на курсовую работу: Кодирование информации Разработать приложение для кодирования информации (шифр Цезаря, Виженера).

Описание:

     1.Шифр Цезаря — один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций. Шифр Цезаря можно классифицировать как шифр подстановки, при более узкой классификации — шифр простой замены. Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Естественным развитием шифра Цезаря стал шифр Виженера. С точки зрения современного криптоанализа, шифр Цезаря не имеет приемлемой стойкости.

      2.Шифр Виженера - это метод шифрования буквенного текста с использованием ключевого слова.

Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джованни-Баттиста Беллазо (Giovan Battista Bellaso) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году , однако в 19 веке получил имя Блеза Виженера , швейцарского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов криптоанализа.

     Квадрат Виженера или таблица Виженера, может быть использована для заширования и расшифрования.

В шифре Цезаря каждая буква алфавита сдвигается на несколько позиций; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее.

    Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифрования может использоваться таблица алфавитов, называемая квадрат Виженера. Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря.

     На разных этапах кодировки шифр Виженера использует различные алфавиты из этой таблицы. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова.

     Например, предположим, что исходный текст имеет вид:

ATTACKATDAWN

Человек, посылающий сообщение, записывает ключевое слово("LEMON") циклически до тех пор, пока его длина не будет соответствовать длине исходного текста:

LEMONLEMONLE

   Первый символ исходного текста A зашифрован последовательностью L, которая является первым символом ключа. Первый символ L шифрованного текста находится на пересечении строки L и столбца A в таблице Виженера. Точно так же для второго символа исходного текста используется второй символ ключа; т.е. второй символ шифрованного текста X получается на пересечении строки E и столбца T. Остальная часть исходного текста шифруется подобным способом.

Пример:

Исходный текст:     ATTACKATDAWN

Ключ:        LEMONLEMONLE

Зашифрованный текст:          LXFOPVEFRNHRL

Фрагмент программного кода:

private void button1_Click(object sender, EventArgs e)//событие нажатия кнопки ВЫПОЛНИТЬ
        {
            textBox3.Clear();
            if (radioButton4.Checked)//если метод виженера
            {

                if (radioButton1.Checked)//действие - зашифровать
                {
                    textBox3.Text = "";//записываем результат
                                                              
                    //ШИФРОВАНИЕ Виженер
                    string input = "", key = "", key_temp = "";          
                    int mod = 0, number_of_letter;//счетчик количества текста
                    input = textBox2.Text;//возвращаем копию этой строки
                    key_temp = textBox1.Text;//возвращаем копию ключа шифрования
                    if (textBox2.Text != "" && textBox1.Text != "")
//если все исходные               данные введены
                    {
                        mod = input.Length % key_temp.Length;
//алгоритм шифрования:  переменной mod присваиваем значение введенного текста
                        for (int i = 0; i < (input.Length - mod) / key_temp.Length; i++)//просматриваем в цикле
                        {
                            key += key_temp;
                        }
                        for (int i = 0; i < mod; i++)
                        {
                            key += key_temp[i];
                        }
                        //определение значений
                        string[] input_mas = new string[input.Length];
                        int[] input_index = new int[input.Length];
                        string[] key_mas = new string[input.Length];
                        int[] key_index = new int[input.Length];
                        string[] encrypted_word = new string[input.Length];
                        for (int i = 0; i < input.Length; i++)
                        {
                            input_mas[i] = Convert.ToString(input[i]);
//конвертирование в строковое значение
                        }

Содержание архива

  • исходный код  на C# для Visual Studio 
  • Пояснительная записка (16 страниц)
Купить

1470,00 

(без учета комиссии 3,8 %)

После оплаты Вы получите работу на электронную почту.
29. Шифрование данных (методы цезаря. виженера).rar
633245
Оцени работу

рейтинг

Поделись работой с друзьями

Комментарии (7)

klausms

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегестрированые пользователи имеют возможность комментировать работы
Шифр Цезаря и Виженера C#
Шифр Цезаря и Виженера C#, исходник для Visual Studio
Категория: Образование
Стоимость: 1470,00