Добавил:
донатики - https://qiwi.com/n/1ZOMBIE1 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / ЯП_Курсовая_БунинаАВ.docx
Скачиваний:
13
Добавлен:
11.12.2022
Размер:
1.09 Mб
Скачать
    1. Порядок контроля и приемки

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

2 Технический проект

    1. Описание функционала разрабатываемого проекта

Разрабатываемый проект, согласно заданию, должен содержать:

  1. Возможность выбора файла из системы.

  2. Ввод ключа дешифровки.

  3. Дешифрование методами Гронсфельда и Виженера.

  4. Сохранение промежуточных результатов в файлы.

  5. Информацию о дешифровании с выводом на экран в виде текстовых сообщений.

  6. Информацию о возникающих ошибках с выводом на экран в виде сообщений.

    1. Шифры

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

В качестве примера попробуем зашифровать с помощью шифра Гронсфельда открытый текст ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ.

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

Теперь строго над каждой буквой открытого текста следует записать цифру ключа. Для облегчения работы можно составить таблицу в соответствии с Таблица 1.

Таблица 1 - Пример шифрования

Текст

И

Н

Ф

О

Р

М

А

Ц

И

О

Н

Н

А

Я

Ключ

2

0

2

1

2

0

2

1

2

0

2

1

2

0

Значение цифры пароля, находящейся под каждой буквой, означает число позиций, на которое надо сдвинуть букву открытого текста вправо по алфавиту для получения криптограммы. Так, например, в русском алфавите буква И текста будет заменена в криптограмме на букву К, буква Н — на букву Н и так далее.

В результате такого преобразования наш первоначальный открытый текст ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ примет следующий вид: КНЦПТМВЧКОПОВЯГЁЙОСБУНРТФЬ

Расшифровка криптограммы, созданной с помощью шифра Гронсфельда, производится в обратном порядке. После получения шифрованного сообщения необходимо строго над буквами криптограммы записать буквы пароля, если он, конечно, известен получателю.

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

Для того чтобы использовать данный метод Гронсфельда для расшифровки на языке с#, программа должна использовать следующую формулу: decodeText.Append(alphabet[(Array.IndexOf(alphabet, textOld[i]) - keys[i % keys.Length]) % alphabet.Length]); где alphabet– это массив символов алфавита, куда можно внести собственные символы; textOld – это зашифрованный текст; keys – ключ для дешифровки.

В случае, когда массив находится вне границ шифруемого текста, то следует использовать следующую формулу: decodeText.Append(alphabet[alphabet.Length - Math.Abs((Array.IndexOf(alphabet, textOld[i]) - keys[i % keys.Length]) % alphabet.Length.

Для того чтобы использовать данный метод Виженера для расшифровки на языке с#, программа должна использовать следующую формулу: decodeText.Append(alphabet[(Array.IndexOf(alphabet, textOld[i]) + alphabet.Length - Array.IndexOf(alphabet, keys[keys_index])) % alphabet.Length]), так ка Виженер использует в качестве ключа буквы, то keys_index – это индекс этой буквы в алфавите.