Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая СЕКРЕТ.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
191.12 Кб
Скачать

4.1 Используемые алгоритмы

Алгоритм создания ключа:

Соответствующие цифры двух паролей складываются по модулю 10.

первый пароль

12345678

второй пароль

36925814

ключ

48260482

Пример см. Таблица 1.

Таблица 1

:

Алгоритм шифрования ключа:

Каждая цифра ключа заменяется на установленный символ.

Алгоритм шифрования секрета:

Код каждого символа секрета увеличивается на соответствующее значение цифры ключа по круговому принципу (например, к десятому символу секрета добавляется вторая цифра ключа).

Алгоритм шифрования пути к секрету:

Над каждым символом пути проводится следующая операция:

конечный символ =(начальный символ)^(длина пути), где ^ - операция XOR.

Алгоритмы дешифрования секрета и ключа обратны алгоритмам шифрования.

4.2 Описание структуры программы

Программа содержит в себе два класса: класс игрока (HUMAN) и класс сейфа (SAVE). Класс сейфа наследует методы класса игрока. Методы класса игрока позволяют инициализировать пароли. Методы класса сейфа производят остальные действия, необходимые для шифрации и дешифрации секрета.

4.3 Особенности используемых методов

Для реализации подавления эхо-печати был написан метод getpass, который, в свою очередь, использует метод getch, подобный тому, что присутствует в заголовочном файле conio.h в операционной системе WINDOWS (используется неканонический ввод).

Шифрация\дешифрация секрета происходит «на лету»: открывается два потока, один для чтения из файла, другой – для записи. После чтения символа из первого потока, он преобразуется и сразу же записывается в другой. Тем самым заменяя прочитанный.

4.4 Примечания

В данной версии программы в качестве секрета должен быть указан файл.

Пароль должен состоять только из цифр, длина пароля – 8 символов. Любой другой пароль будет считаться ложным.

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

При некорректном завершении программы возможна полная потеря секрета.

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

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

5 Заключение

В ходе выполнения данной курсовой работы была разработана программа на языке высокого уровня C++ в ОС Linux, функциональность которой отвечает поставленной цели: реализует криптографическую систему разделения секрета для двух участников.