Проблема скрытия и защиты информации от несанкционированного использования. История создания шифра. Решения задачи шифрования текста и кодирования данных. Тестирование полученного приложения и анализ работы программы с точки зрения пользователя.
Аннотация к работе
В современном конкурентном мире наблюдается тенденция постоянного увеличения стоимости информации и, соответственно, возникает необходимость ее скрытия и защиты от несанкционированного использования. В связи с этим постоянно увеличивается число подходов к шифрованию. Таким образом, цель данной работы напрямую связана с актуальностью проблемы скрытия и защиты информации. Цель: Разработать программу шифрования при помощи шифра Виженера для преобразования текста на кириллице в зашифрованный текст.Он использовал идею tabula recta Трисемуса, но добавил ключ для переключения алфавитов шифра через каждую букву. Давид Кан в своей книге "Взломщики кодов" отозвался об этом осуждающе, написав, что история "проигнорировала важный факт и назвала шифр именем Виженера, несмотря на то, что он ничего не сделал для его создания". Это представление было опровергнуто после того, как Касиски полностью взломал шифр в XIX веке, хотя известны случаи взлома этого шифра некоторыми опытными криптоаналитиками еще в XVI веке. Для шифрования используется таблица Виженера (Квадрат Виженера), который строится следующим образом: сверху и по левому краю квадрата выписывается исходный алфавит. Таким образом, k-я буква шифрованного текста находится в квадрате Виженера на пересечении i-й строки и j-го столбца, где i - строка, соответствующая k-й букве исходного текста, а j - строка, соответствующая букве ключевого слова с номером k (mod n), где n - длина ключевого слова.Данное приложение направлено на процесс шифрования информации, в частности слова, строки или текста, написанного при помощи букв русского алфавита. Пользователю, пожелавшему зашифровать тот или иной текст требуется ввести его в файл, затем придумать ключ (кодовое слово), которое необходимо в процессе шифрования. Так же ключевое слово не следует передавать третьим лицам, так как расшифровать текст, зная ключевое слово, не составит большого труда. Ключ - это кодовое слово, которое используется при процессе шифрования, играет большую роль при процессе дешифрования. При задании ключа можно использовать только символы русского алфавита, строчные буквы и не использовать пробелы, иначе придется повторить вводить ключа.Для того, чтобы решить задачу шифрования используется интегрированная среда разработки Visual Studio C#, шаблон Visual Studio-консольное приложение. При генерации внутри программы квадрата Виженера использовался двумерный массив, заполненный элементами символьного типа (char). Нулевая строка и нулевой столбец заполнены строчными буквами русского алфавита, следующими в алфавитном порядке. Первая строка с первого столбца заполняется переставленными буквами русского алфавита. Все оставшиеся строки, начиная с первого столбца, заполняются циклически сдвинутыми на одну позицию влево вариантами первой строки.Файл содержит длину нулевой размерности (см. Результат работы программы 1): Рисунок 1. Результат работы программы 1 Файл сформирован неверно, т.е. не удовлетворяет правилам (Кириллица, пробелы, знаки препинания). Поэтапный результат работы программы представлен в приложениях №5 - №9.В ходе разработки приложения были изучены особенности шифрования при помощи данного метода, а именно алгоритм шифрования (Приложение №3 - Блок схема). В ходе разработки был освоен новый класс регулярных выражений REGEX, который содержит методы поиска и сравнения для выполнения сопоставления шаблона с текстом. Этот метод в программе использовался при поиске латинских символов в строке. Использовать методы класса REGEX намного проще и быстрее, чем, например, задавать диапазон чисел латинского алфавита и кириллицы, используя таблицу кодировки ACSII. Второй тест показывает результат работы программы, если строка сформирована неверно, то есть содержит символы латинского алфавита.
План
Оглавление
Введение
Глава 1. Шифрование при помощи шифра Виженера
1.1 История создания шифра
1.2 Процесс шифрования (алгоритм)
Глава 2. Разработка программы для реализации поставленной задачи
2.1 Результат работы программы с точки зрения пользователя
2.2 Разработка приложения
Глава 3. Тестирование программы
3.1 Тест №1
3.2 Тест №2
3.3 Тест №3
3.4 Тест №4
Заключение
Библиографический список
Приложение №1. Таблица. Пример квадрата Виженера
Приложение № 2. Квадрат Виженера в программе
Приложение № 3. Блок - схема программы
Приложение № 4. Исходный код программы
Приложение № 5. Результат тестирования № 3 - Шаг 1
Приложение № 6. Результат тестирования № 3 - Шаг 2
Приложение № 7. Результат тестирования № 3 - Шаг 3
Приложение № 8. Результат тестирования № 3 - Шаг 4
Приложение № 9. Результат тестирования № 3 - Шаг 5
Приложение № 10. Результат тестирования № 4 - Шаг 1
Приложение № 11. Результат тестирования № 4 - Шаг 2
Приложение № 12. Результат тестирования № 4 - Шаг 3
Приложение № 13. Результат тестирования № 4 - Шаг 4
Приложение № 14. Результат тестирования № 4 - Шаг 5
Приложение № 15. Результат тестирования № 4 - Шаг 6
Приложение № 16. Результат тестирования № 4 - Шаг 7
Приложение № 17. Результат тестирования № 4 - Шаг 8
Приложение № 18. Результат тестирования № 4 - Шаг 9
Приложение № 19. Результат тестирования № 4 - Шаг 10
Приложение № 20. Результат тестирования № 4 - Шаг 11
Приложение № 21. Адаптация программы под латинский язык
Приложение № 22. Тесты программы (адаптации) под латинский язык
Приложение № 23. Диаграмма 1
Введение
В современном конкурентном мире наблюдается тенденция постоянного увеличения стоимости информации и, соответственно, возникает необходимость ее скрытия и защиты от несанкционированного использования. Шифрование информации - единственное надежное решение данной задачи. В связи с этим постоянно увеличивается число подходов к шифрованию. Таким образом, цель данной работы напрямую связана с актуальностью проблемы скрытия и защиты информации.
Цель: Разработать программу шифрования при помощи шифра Виженера для преобразования текста на кириллице в зашифрованный текст.
Задачи: 1. Изучить метод шифрования при помощи шифра Виженера.
2. Разработать алгоритм, связывающий идею шифрования и особенности языка программирования.
3. Разработать консольное приложение, которое преобразует текст на русском языке в зашифрованный текст.
4. Подготовить набор тестов и протестировать полученное приложение.
Под объектом исследования понимается шифрование и кодирование данных. Предмет исследования представляет собой метод шифрования при помощи шифра Виженера.
Вывод
Цель данной работы заключалась в разработке приложения для решения задачи шифрования текста при помощи шифра Виженера. В ходе разработки приложения были изучены особенности шифрования при помощи данного метода, а именно алгоритм шифрования (Приложение №3 - Блок схема). Консольное приложение, решающее поставленную задачу, написано на языке программирования C#.
В ходе разработки был освоен новый класс регулярных выражений REGEX, который содержит методы поиска и сравнения для выполнения сопоставления шаблона с текстом. Этот метод в программе использовался при поиске латинских символов в строке. Также неоднократно использовался при написании адаптационного кода для латинского алфавита. Использовать методы класса REGEX намного проще и быстрее, чем, например, задавать диапазон чисел латинского алфавита и кириллицы, используя таблицу кодировки ACSII.
Данное приложение было протестировано при помощи ряда тестов. Первые два теста связаны с неправильным формированием входной строки. При помощи первого теста выявляется реакция программы на нулевую размерность строки. Второй тест показывает результат работы программы, если строка сформирована неверно, то есть содержит символы латинского алфавита. В третьем тесте использовалась строка, состоящая только из пяти символов латинского алфавита. В четвертом тесте использовалась строка, содержащая пробелы и знаки препинания. При описании тестов была представлена побуквенная реализация.
Данный метод шифрования можно использовать и для других алфавитов. В приложении №21 представлен измененный программный код, который позволяет шифровать подобным методом строки на латинском алфавите. В приложении №22 показан результат работы программы.
В ходе тестирования был проведен анализ работы программы, а именно выявлена зависимость времени выполнения программы от длины входной строки. Результаты анализа представлены на диаграмме (Приложение № 23).
Список литературы
Академик [электронный ресурс] [режим доступа: http://dic.academic.ru/dic.nsf/ruwiki/702589] (дата обращения: 25.03.2013);
Математические и компьютерные основы криптологии: учебное пособие / Ю.С.Харин, В.И.Берник, Г.В.Матвеев, С.В.Агиевич. - Мн.: Новое знание, 2003. - 382 с.;