Реферат: Защита информации в ПЭВМ. Шифр Плейфера
STROK:= I; {строка символа}
STOLB:= J; {столбец символа}
end;
END ; {Конец основного блока ПП SHIFR_PLEYFER}
{Производится шифрование строки открытого текста}
FUNCTION SHIFR_TXT(Str: Stroca; Alfavit: MATR; INDEX: Simvol): Stroca;
VAR {Объявление переменных}
SIM1, SIM2: Char;
New: STRING;
I, Dlina_str, Dlina_new: Byte; {I - счетчик цикла}
BEGIN {Начало основного блока ПФ SHIFR_TXT}
{В открытом тексте вставляется спец. знак “-” между одинаковыми символами}
New:= '';
Dlina_str:= Length(Str);
FOR I:= 1 TO Dlina_str DO IF (Str[I] = Str[I+1]) THEN New:= (New + Str[I] + '-') ELSE New:= (New + Str[I]);
{Добавление спец. знака “-” в конец открытого текста в случае нечетного количества символов в строке }
IF Odd(Length(Str)) = TRUE THEN New:= New + '-';
{Шифрование открытого текста по матрице алфавита Плэйфера}
Str:= '';
Dlina_new:= Length(New)div 2;
FOR I:= 1 TO Dlina_new DO
begin
SIM1:= New[2*I - 1];
SIM2:= New[2*I];
IF (ALFAVIT[Ord(SIM1)].STROK = ALFAVIT[Ord(SIM2)].STROK) THEN
{Пара символов находятся в одной строке матрицы}
Str:= Str + INDEX[(ALFAVIT[Ord(SIM1)].STROK), ((ALFAVIT[Ord(SIM1)].STOLB mod 6) + 1)]
+ INDEX[(ALFAVIT[Ord(SIM2)].STROK), ((ALFAVIT[Ord(SIM2)].STOLB mod 6) + 1)]
ELSE