Курсовая работа: Защита информации от несанкционированного доступа
function DeCoding_Kir(Buf: Pointer; Size: LongInt; Param: TCodingParameters): Integer;
function DoCoding(S: String): integer;
function DoDecoding(S: String): integer;
function MethodIndex(const S: String):integer;
function MethodByChar(const C: Char):integer;
const
QolMethods = 4;
Methods:array[1..QolMethods] of TCodingFunction =
((MethodName:'ГОСТ 28147-89 (ПЗ)';MethodKey:'G';MethodProc:Coding_GOST;MethodDecProc:Coding_GOST;
KeyMinLength:32;KeyMaxLength:32;KeyMinMessage:'Ключ должен быть длиной 32 символa';KeyMaxMessage:'Ключ должен быть длиной 32 символa';
MethodDescription:'Кодирование по ГОСТ 28147-89 (простая замена)'),
(MethodName:'ГОСТ 28147-89 (Г)';MethodKey:'G';MethodProc:Coding_GOST;MethodDecProc:Coding_GOST;
KeyMinLength:32;KeyMaxLength:32;KeyMinMessage:'Ключ должен быть длиной 32 символa';KeyMaxMessage:'Ключ должен быть длиной 32 символa';
MethodDescription:'Кодирование по ГОСТ 28147-89 (гаммирование)'),
(MethodName:'К1';MethodKey:'K';MethodProc:Coding_K1;MethodDecProc:DeCoding_K1;
KeyMinLength:8;KeyMaxLength:8;KeyMinMessage:'Ключ должен быть длиной 8 символов';KeyMaxMessage:'Ключ должен быть длиной 8 символов';
MethodDescription:'Сумма по модулю два'),
(MethodName:'К2';MethodKey:'L';MethodProc:Coding_K2;MethodDecProc:DeCoding_K2;
KeyMinLength:3;KeyMaxLength:8;KeyMinMessage:'Минимальная длина ключа - 3 символа';KeyMaxMessage:'Ключ должен быть длиной менее 9 символов';
MethodDescription:'Циклический сдвиг'));
UsedMethods:array[1..QolMethods] of TCodingParameters =
((Key:'';WayCount:1;Direction:1),
(Key:'';WayCount:1;Direction:1),
(Key:'';WayCount:1;Direction:1),
(Key:'';WayCount:1;Direction:1));
Used: array[1..QolMethods] of boolean = (false,
false,
false,
false);