Методы и задачи криптографической защиты информации. Мартынов А.И. - 60 стр.

UptoLike

Составители: 

Этого можно добиться следующим образом:
//      
// tab -    
//  :
//  1:      0 
columns*rows
//  2:     counthash  
  ,   
,   hash 
procedure TForm1.genTable(var tab:ttab);
var
//     
i,j:integer;
//    2-  .
//      
rr:trr;
//     
prev:cardinal;
//        
temp:integer;
begin
//     
for i:=0 to rows-1 do
for j:=0 to columns-1 do
tab[i,j] := i*columns+j;
//      

prev := genCongr(hash(PasswordDlg.Password.Text));
//      counthash 
for j := 0 to counthash do begin
//   rr   
for i:=0 to 3 do
if i mod 2 =0 then begin
prev:=genCongr(prev);
rr[i] := prev mod rows;
end
else begin
prev := genCongr(prev);
rr[i]:=prev mod columns;
end;
//       

temp := tab[rr[0]][rr[1]];
tab[rr[0]][rr[1]] := tab[rr[2]][rr[3]];
tab[rr[2]][rr[3]] := temp;
end;
end;
В приведенном алгоритме используется прием перемешивания значений
таблицы в зависимости от пароля. То есть изначально таблица заполняется
последовательными значениями, а затем происходит перетасовка элементов. В
результате получается таблица, заполненная псевдослучайными значениями,
которая и называется таблицей подстановки.