3- для введення чисел, Memo 1,2 - для відображення результатів і командні кнопки Button 1,2. (рис. 9)
Рис. 9
Примітка: для обчислення значень дійсних чисел в розділ Uses Unitaвключіть модуль Math.
Реалізація алгоритмів
Simple (n: integer): Boolean; k: Boolean; i: integer;:=true; n lt; gt; 2 theni:=2 to trunc (sqrt (n)) + 1 don mod i=0 then:=false ;;;:=k ;; IntModPower (A, B, P: integer): integer;: array of integer;: integer; (x, P); [1]:=A mod P; i:=2 to B do [i]:=x [i - 1] * A mod P;:=x [B] ;; TForm1.Button1Click (Sender: TObject) ;: integer; .Clear; i:=SpinEdit1.Value to SpinEdit2.Value doSimple (i)=true then Memo1.Lines.Add (IntToStr (i)) ;; TForm1.Button3Click (Sender: TObject) ;, d, P: integer; .Clear;:=SpinEdit3.Value;:=(P - 1) div 2; i:=2 to P - 2 do (IntModPower (i, d, P)=P - 1) then.Lines.Add ( g= + IntToStr (i) + (^ + IntToStr (d) + )= + FloatToStr (Power (i, d))) ;;
. Обчислення значення хеш функції повідомлення
Обчислення значення хеш функції виконується методом посимвольной згортки повідомлення відповідно до алгоритму:, де: - початкове значення функції, - поточні символи повідомлення (таблиця ASCII).
Додаток (рис. 1) містить два поля введення Edit1 і Edit2, кнопку Button1 і дві мітки Label1 і Label2. Виконуваний код реалізований в обробнику події клацання кнопки onClick.
Рис. 10 Дизайн програми
. Криптографічний алгоритм Псевдослучайная послідовність ключа
Алгоритм заснований на псевдослучайной послідовності:
рівний довжині повідомлення M, значення якої належать алфавітом довжиною L. Де: параметр а, взаємно простий з M; ; , I=1, 2, ..., N lt; M.
При цьому загальна процедура шифрування має вигляд: або
Додаток (рис. 2), що реалізує алгоритм містить:
Сітку StringGrid1, призначену для відображення власного алфавіту, п'ять полів введення Edit1 - Edit5, поле введення секретного числа - SpinEdit1, три кнопки Button1 - Button3 і мітки Label1 - label5 статично описують призначення полів.
Рис 11. Дизайн додатка.
Особистий алфавіт описаний глобальної константою A.
Для реалізації алгоритму використала три особистих методу. Процедура RND_CODE обчислює послідовність ПСЧ. Функція ALNo повертає номер символу в алфавіті. Функція NoAL повертає символ, що відповідає номеру символу в алфавіті.
Висновок алфавіту в сітку виконала за допомогою створення форми в обробнику події onCreate.
Процедура шифрування реалізована в обробнику події onClick кнопки Button1.
Процедура дешифрування реалізована в обробнику події onClick кнопки Button2.
Процедура очищення полів реалізована в обробнику події onClick кнопки Button3.