ВУЗ:
Составители:
value := value shr 8;
end;
encryptblock := retblock;
end;
При дешифровании сначала воспроизводится таблица подстановки, так
как она зависит от ключа. Затем читается закодированный блок и по таблице
отыскивается строка, в которой присутствует это значение. Например, если
был прочитан зашифрованный блок, числовой эквивалент которого равен 16, то
в таблице такой значение находится в строке с номером 3. Это и есть требуемое
значение. Номер строки преобразуется в строковое представление и
записывается в выходной поток.
Ниже приведен соответствующий алгоритм:
//
// cblock - ,
// return -
// 1:
// 2:
// 3:
function TForm1.decryptblock(cblock:dblock):block;
var
i,j, //
value, //
temp:integer; //
retblock:block; //
begin
value := 0;
//
for i:=sblock*2 downto 1 do
value := (value shl 8) or ord(cblock[i]);
j:=0;
i:=0;
//
while temp <> value do begin
if j div columns-1 = 0 then begin
i:=i+1;
j:=0;
end;
temp := tab[i][j];
j := j+1;
end;
//
for j:=1 to sblock do begin
retblock[sblock-j+1]:=chr(i and $ff);
i := i shr 8;
end;
decryptblock := retblock;
end;
Как было сказано раньше, такой алгоритм обладает высокой
криптостойкостью за счет абсолютной случайности выбора при шифровании.
Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »