Лабораторная работа № 3. Симметричные алгоритмы шифрования

Задание. Изучить работу симметричного алгоритма шифрования на примере приложения «Шифрование», реализованного в среде Visual Basic 6.0.

Задание 1. В приложении Visual Basic 6.0 создать новый проект и настроить внешний вид приложения «Шифрование».

1. Создать на диске рабочую папку со своим именем, например, D:\Petrov.

Лабораторная работа № 3. Симметричные алгоритмы шифрования - student2.ru

Рис.13. Новое приложение Visual Basic

2. Запустить приложение MS Visual Basic 6.0 (группа MS Visual Studio 6.0). Создать новый проект, для чего в стартовом окне New Project выбрать шаблон стандартного модуля Standart.exe и нажать кнопку Открыть. Будет создан новый проект с пустой формой (рис.13). С помощью команды File|Save Project As сохранить содержащуюся в нем форму (файл .frm) под именем Crypt в созданную ранее свою рабочую папку.

3. Выделить форму, щелкнув на ней мышью. В окне свойств Properties – Form1 (рис.13) задать свойства формы: для свойства Caption установить значение Шифрование, для свойства StartupPosition установить значение 2 – CenterScreen. С помощью мыши увеличить размеры формы.

Лабораторная работа № 3. Симметричные алгоритмы шифрования - student2.ru

Рис.14. Элементы управления панели ToolBox

4. Вставить в форму элементы управления, щелкая мышью на соответствующих кнопках на панели инструментов ToolBox (рис.14). Перетаскивая и изменяя их размеры с помощью мыши, настроить их внешний вид, как на рис.15. Элементы управления, которые необходимо вставить, перечислены в таблице 1 (порядковые номера элементов помечены также на рис. 15).

5. Настроить свойства вставленных в форму элементов управления, согласно таблице 1. Для этого следует выделить элемент управления, щелкнув на нем мышью, а затем изменить его свойства в окне Properties (отображаются свойства выбранного элемента).

 
  Лабораторная работа № 3. Симметричные алгоритмы шифрования - student2.ru

Рис.15. Интерфейс приложения «Шифрование»

Таблица1. Элементы управления приложения «Шифрование»

Тип Имя (Name) Названия и значения изменяемых свойств
1. Label Ltext Caption – Введите строку текста для шифрования
2. TextBox Text Очистить Text
3. Label LKey Caption – Введите строку - ключ
4. TextBox Text_key Очистить Text
5. Line Line1  

Продолжение таблицы 1

6. Label Lencrypt Caption – Зашифрованный текст
7. TextBox Text_encrypt Очистить Text, Enadled – False
8. Label Ldecrypt Caption – Расшифрованный текст
9. TextBox Text_decrypt Очистить Text, Enadled – False
10. CommandButton CmdClear Caption – Очистить
11. CommandButton CmdEncr Caption – Шифровать
12. CommandButton CmdDecr Caption – Расшифровать
13. CommandButton CmdExit Caption – Выход

6. Сохранить проект (файл .vbp) в своей рабочей папке под именем Project_Crypt.

Задание 2. Разработать программный код, представляющий собой набор процедур обработки событий, возникающих при работе с приложением «Шифрование».

1. Создать процедуру для очистки всех полей ввода (текста, ключа, шифра и расшифрованного текста) приложения. Для этого дважды щелкнуть мышью на кнопке CmdClear «Очистить». В появившемся окне редактора кода возникнет заготовка процедуры реакции на нажатие кнопки «Очистить».

Private Sub CmdClear_Click()

End Sub

Добавить в имеющуюся заготовку строки в соответствии с текстом процедуры.

Private Sub CmdClear_Click()

Text.Text = ""

Text_key.Text = ""

Text_encrypt.Text = ""

Text_decrypt.Text = ""

End Sub

2. Создать процедуру выхода из приложения для кнопки CmdExit «Выход».

Private Sub CmdExit_Click()

End

End Sub

3. Создать процедуру шифрования.

· Для осуществления шифрования необходимо сформировать расширенный алфавит из символов, которые могут встречаться в тексте сообщения и ключа. Пусть это будут латинские и русские буквы, пробел, знаки препинания (кроме двойных кавычек) и цифры. Сформировать из них текстовую строку и записать в качестве значения константы StrCode (символы должны быть записаны на одной строке). Константа StrCode будет использоваться в нескольких процедурах, поэтому ее надо объявить в разделе General (секция общих объявлений).

Лабораторная работа № 3. Симметричные алгоритмы шифрования - student2.ru

Рис.16. Переход в раздел General

Для перехода в секцию General необходимо открыть окно программного кода с помощью команды меню View|Code или дважды щелкнуть мышью в области формы, а затем выбрать секцию General в левом выпадающем списке окна программного кода (рис.16)

В секции General объявим и переменную LenCode, которая будет хранить длину алфавита (число символов строки StrCode).

Const StrCode As String = "abcdefghijklmnopqrstuvwx yzабвгд еёжзийклмнопрстуфхцчщшьыъэюя .,: ;'?!()-+=/ \1 234567890"

Dim LenCode As Long

· Создать процедуру, вычисляющую длину используемого алфавита при запуске приложения. Дважды щелкнуть в любом месте формы, свободном от элементов управления. Появится заготовка процедуры реакции на событие «Загрузка формы». Определить ее следующим образом.

Private Sub Form_Load()

LenCode = Len(StrCode)

End Sub

Функция Len вычисляет длину строки.

· Создать процедуру для кнопки CmdEncr «Шифровать». Процедура производит посимвольное прочтение строк исходного текста и ключа; вычисляет коды, соответствующие положению прочитанных символов в алфавите; вычисляет код для шифра с помощью операции сложения по модулю; ищет символ алфавита, соответствующий коду шифра и добавляет его в конец формируемой строки зашифрованного текста.

Private Sub CmdEncr_Click()

Наши рекомендации