Вычисление значения ХЭШ функции выполняется методом посимвольной свертки сообщения в соответствии с алгоритмом: , где: - начальное значение функции, - текущие символы сообщения (таблица ASCII).
Приложение (рис. 1) содержит два поля ввода Edit1 и Edit2, кнопку Button1 и две метки Label1 и Label2. Исполняемый код реализован в обработчике события щелчка кнопки onClick.
Рис. 1 Дизайн приложения
ЛАБОРАТОРНАЯ РАБОТА
Криптографический алгоритм “Псевдослучайная последовательность ключа”
Алгоритм основан на псевдослучайной последовательности:
равной длине сообщения M, значения которой принадлежат алфавиту длиной L. Где: параметр а, взаимно простой с M; ; , i = 1, 2,…,N < M.
При этом общая процедура шифрования имеет вид: или
Приложение (рис. 2), реализующее алгоритм содержит:
Сетку StringGrid1, предназначенную для отображения собственного алфавита, пять полей ввода Edit1 – Edit5, поле ввода секретного числа - SpinEdit1, три кнопки Button1 – Button3 и метки Label1 – label5 статически описывающие назначение полей.
|
|
Рис 2. Дизайн приложения.
Личный алфавит описан глобальной константой A.
Для реализации алгоритма используются три личных метода. Процедура RND_CODE вычисляет последовательность ПСЧ. Функция ALNo возвращает номер символа в алфавите. Функция NoAL возвращает символ, соответствующий номеру символа в алфавите.
Вывод алфавита в сетку выполняется в процессе создания формы в обработчике события onCreate.
Процедура шифрования реализована в обработчике события onClick кнопки Button1.
Процедура дешифрования реализована в обработчике события onClick кнопки Button2.
Процедура очистки полей реализована в обработчике события onClick кнопки Button3.
Примечание: Для правильной работы программы, поле ввода SpinEdit1 должно иметь некоторое начальное значение.