ВУЗ:
Составители:
// 1. блок разбивается на три подблока, границами которых служат
числа m и n
// 2. Третий подблок записывается на место первого
// 3. Второй - на место второго
// 4. Первый - на место третьего
function TForm1.cryptblock (str:block;n,m:integer):block;
var
// Счетчики внутренних и внешнего циклов
i,k:integer;
// Текст после выполнения перестановки
retstr :block;
begin
k := 1;
// Третий подблок записывается на место первого
for i:=n to sblock do begin
retstr[k] := str[i];
k:=k+1;
end;
// Второй - на место второго
for i:=m to n-1 do begin
retstr[k] := str[i];
k:=k+1;
end;
// Первый - на место третьего
for i:=1 to m-1 do begin
retstr[k] := str[i];
k:=k+1;
end;
cryptblock := retstr;
end;
Аналогично производится операция перестановки над группами бит.
Примечание: для блоков большой длины метод перестановок становится
неэффективным, так как и длина подблоков в этом случае также велика.
Поэтому шифрование должно осуществляться в несколько раундов, то есть
перемешивание производится несколько раз над одним и тем же блоком, но с
различными значениями коэффициентов M и N. При дешифровании
необходимо воспроизвести эту последовательность псевдослучайных чисел в
обратном порядке.
В алгоритме шифрования методом сдвига (скремблера) исходный текст
разбивается на подблоки и внутри каждого такого подблока реализуется
операция циклического сдвига на несколько бит в указанном направлении.
Например, для блока длиной в 7 байт, где шифрование осуществляется
циклическим сдвигом влево на 3 бита, схема шифрования будет следующей
(Рисунок 2.15):
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »