Задание на программу
Кодирование информации Разработать приложение для кодирования информации (шифр Цезаря, Виженера).
Описание:
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 страниц)
Телеграм
-