Квадрат Полибия

В Древней Греции (II в. до н.э.) был известен шифр, называемый "квадрат Полибия". Шифровальная таблица представляла собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такого квадрата записывалась одна буква. В результате каждой букве соответствовала пара чисел, и шифрование сводилось к замене буквы парой чисел.

Соответственно, шифрование/дешифрование текста производятся следующим образом:
const
  TPolibius: array['A' .. 'E', 'A' .. 'E'] of char = (
    ('A', 'B', 'C', 'D', 'E'),
    ('F', 'G', 'H', 'I', 'K'),
    ('L', 'M', 'N', 'O', 'P'),
    ('Q', 'R', 'S', 'T', 'U'),
    ('V', 'W', 'X', 'Y', 'Z')
  );
function PolibiusEncipher(toCode: string): string;
var
  i: integer;
  ix, jx: char;
  s: string;
begin
  s := '';
  for i := 1 to length(toCode) do begin
 
    for ix := 'A' to 'E' do
      for jx := 'A' to 'E' do
        if TPolibius[ix, jx] = toCode[ i ] then begin
          s := s + ix + jx; break;
        end;
 
  end;
  PolibiusEncipher := s
end;
 
function PolibiusDecipher(toDecode: string): string;
var
  i: integer;
  s: string;
begin
  s := '';
  i := 1;
  while i <= length(toDecode) do begin
    s := s + TPolibius[toDecode[ i ], toDecode[succ(i)]];
    inc(i, 2);
  end;
  PolibiusDecipher := s
end;
 
var
  s: string;
 
begin
  s := PolibiusEncipher('POLIBIUS');
  writeln(s);
  writeln('s = ', PolibiusDecipher(s));
end.
Теги:
Шифрование, метод полибия
Похожие новости:
Добавлено: 16 Сентября 2013 02:50:04 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...