Вычисление значения ХЭШ функции выполняется методом посимвольной свертки сообщения в соответствии с алгоритмом:
, где:
- начальное значение функции,
- текущие символы сообщения (таблица 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 должно иметь некоторое начальное значение.
|
|
|






