ВУЗ:
Составители:
Допустим, что размер группы 4 бита, а число столбцов равно 3. Значит,
таблица будет иметь размерность
31632
4
×=×
и должна заполняться
значениями в диапазоне от 0 до 48.
Например, в нашем случае может получиться такая таблица:
1 2 3
0 15 10 2
1 3 17 9
2 8 14 1
3 0 16 45
4 … … …
7 20 5 38
8 … … …
15 12 30 4
При шифровании исходный блок представляется в виде числового
эквивалента и в таблице отыскивается строка, номер которой равен этому
эквиваленту. Далее в этой строке абсолютно случайно выбирается одно из
нескольких значений.
Например, был прочитан блок, числовой эквивалент которого равен 7.
По таблице в строке с номером 7 находится тройка значений (20, 5, 38). При
помощи функции random(3) выбирается любое значений из этой тройки. Это
значение и есть зашифрованный блок.
На языке Object Pascal такой алгоритм можно представить следующим
образом:
//
// cblock - ,
// return -
// :
// 1:
// 2:
// 3:
function TForm1.encryptblock(cblock:block):dblock;
var
i, //
value:integer; //
retblock: dblock; //
begin
value := 0;
//
for i:=1 to sblock do
value := (value shl 8) or ord(cblock[i]);
//
value := tab[value][random(columns)];
// е
for i:=1 to sblock*2 do begin
retblock[i]:= chr(value and $00ff);
Страницы
- « первая
- ‹ предыдущая
- …
- 59
- 60
- 61
- 62
- 63
- …
- следующая ›
- последняя »