- •Министерство образования республики беларусь учреждение образования «барановичский государственный университет»
- •Введение
- •1. Теоретическая часть
- •1.1 Постановка задачи
- •1.2 Математическая модель
- •1.3 Алгоритм решения
- •1.4 Блок-схема
- •2. Практическая часть
- •2.1. Описание объектов, свойств и методов
- •2.2 Формы и основные модули текста программы в среде Delphi
- •Листинг программы
1.2 Математическая модель
В качестве информации, подлежащей шифрованию и дешифрованию, будут рассматриваться тексты, построенные на некотором алфавите. Под этими терминами понимается следующее.
Алфавит - конечное множество используемых для кодирования информации знаков.
Текст - упорядоченный набор из элементов алфавита.
В качестве примеров алфавитов, используемых в современных ИС можно привести следующие:
- алфавит Z33 - 32 буквы русского алфавита и пробел;
- алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;
- бинарный алфавит - Z2 = {0,1};
- восьмеричный алфавит или шестнадцатеричный алфавит.
Шифрование - преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.
Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.
Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
На рисунке 1.1 показана блок-схема процедуры шифрования файлов.
Рисунок 1.1 — Процедура шифрования файлов
1.3 Алгоритм решения
Для шифровки текста используем цикл, в котором будут наращиваться два аргумента и происходить процесс вставки символов в исходный текст. Первый будет индексом символов исходного текста, а второй – индекс символа в ключе шифровки. То есть первой букве в тексте будет соответствовать первая буква в слове-ключе. Так как слово-пароль обычно меньше исходного текста, при достижении циклом конца слова он возвращается на его начало и продолжает процесс шифровки.
Для дешифровки текста проверим ключ путем извлечения строки, отвечающей за пароль, из текста и сравнения ее с размноженным до длины извлеченной строки предполагаемого пароля. При правильности условия программа вычтет эту строку из зашифрованного текста и тем самым расшифрует текст.
1.4 Блок-схема
На рисунке 1.2 представлена блок-схема процесса шифровки, где t – это текст, который будет результатом шифровки, str – исходный текст, w – слово-пароль, а i и k – это индексы для строк str и w соответственно.
Рисунок 1.2 — Блок-схема алгоритма шифрования текста
На рисунке 1.3 представлена блок-схема процесса дешифровки, в процессе которого сначала проверяется введенный ключ, а затем идет сам процесс дешифровки, где t – это текст, который будет результатом дешифровки, str – зашифрованный текст, w – предполагаемое слово-пароль, w0 – строка размноженного пароля, извлеченная из зашифрованного текста, w1 - строка размноженного предполагаемого пароля, а i и k используются как индексы.
Рисунок 1.3 — Блок-схема алгоритма дешифровки текста
2. Практическая часть
2.1. Описание объектов, свойств и методов
В ходе составления программы были использованы следующие объекты с их свойствами:
Label - текстовая метка (надпись) на форме. Используется для отображения любого текста в окне. Текст задаётся в свойстве Caption.
Edit - поле ввода. Используется для ввода любых данных (текста, числа и т.д.), представленных одной строкой. Текст хранится свойством Text. Свойство MaxLength позволяет задать максимальное число символов, которое может быть введено в поле. Значение 0 означает, что ограничение не установлено.
Memo - многострочный Edit. Используется для ввода больших объёмов текста. Свойство ReadOnly делает этот объект нередактируемым. Свойство ScrollBars позволяет указать полосы прокрутки, которые будут отображаться у поля при недостатке места для всего текста:
•ssNone - без полос прокрутки;
•ssHorizontal - горизонтальная полоса прокрутки;
•ssVertical - вертикальная;
•ssBoth - обе: и горизонтальная, и вертикальная.
Button – командная кнопка. Caption - текст на кнопке.
Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как...». Все свойства этих компонентов одинаковы, только их смысл несколько различен для открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл, — FileName. Типы искомых файлов, появляющиеся в диалоге в выпадающем списке "Тип файла", задаются свойством Filter.