Реферат: Защита информации в ПЭВМ. Шифр Плейфера

{Пара символов находятся в одном столбце матрицы}

Str:= Str + INDEX[((ALFAVIT[Ord(SIM1)].STROK mod 6) + 1), (ALFAVIT[Ord(SIM1)].STOLB)]

+ INDEX[((ALFAVIT[Ord(SIM2)].STROK mod 6) + 1), (ALFAVIT[Ord(SIM2)].STOLB)]

ELSE

{Пара символов находятся в разных строках и столбцах матрицы}

Str:= Str + INDEX[(ALFAVIT[Ord(SIM2)].STROK), (ALFAVIT[Ord(SIM1)].STOLB)]

+ INDEX[(ALFAVIT[Ord(SIM1)].STROK), (ALFAVIT[Ord(SIM2)].STOLB)];

end;

SHIFR_TXT:= Str;

END ; {Конец основного блока ПФ SHIFR_TXT}

{Производится расшифрация строки }

FUNCTION DESHIFR_TXT(Str: Stroca; Alfavit: MATR; INDEX: Simvol): Stroca;

VAR {Объявление переменных}

SIM1, SIM2: Char;

NEW: STRING;

I, Dlina_str, Dlina_new: Byte; {I - счетчик цикла}

BEGIN {Начало основного блока ПФ DESHIFR_TXT}

{Дешифрование открытого текста по матрице алфавита Плэйфера}

New:= '';

Dlina_str:= Length(Str)div 2;

FOR I:= 1 TO Dlina_str DO

begin

SIM1:= Str[2*I - 1];

SIM2:= Str[2*I];

IF (ALFAVIT[Ord(SIM1)].STROK = ALFAVIT[Ord(SIM2)].STROK) THEN

{Пара символов находятся в одной строке матрицы}

New:= New + INDEX[(ALFAVIT[Ord(SIM1)].STROK), (((ALFAVIT[Ord(SIM1)].STOLB + 4) mod 6) + 1)]

+ INDEX[(ALFAVIT[Ord(SIM2)].STROK), (((ALFAVIT[Ord(SIM2)].STOLB + 4) mod 6) + 1)]

ELSE

К-во Просмотров: 604
Бесплатно скачать Реферат: Защита информации в ПЭВМ. Шифр Плейфера