Открытый текст: ШИФРОВАНИЕ_ПЕРЕСТАНОВКОЙ.
Ключи: k1 5-3-1-2-4-6; k2 4-2-3-1.
Матрица из четырех столбцов и шести строк. Запись по строкам осуществляется в соответствии с ключом k1, а чте-
ние по столбцам – в соответствии с ключом k2
Шифртекст: "ПСНОРЙЕРВАИК_ЕАНФОИЕОТШВ".
Program rasshifr;
const n=10;
var
text, dtext:string;
c:char;
key1, key2:array[1..n] of integer;
textmatr:array[1..6,1..4] of string;
i, j, v, len:integer;
Begin
write('Введите текст для шифрования: ');
read(text);
writeln('-------------------------------------------------');
len:=length(text);
If len=24 then
begin
writeln('Введите первый ключ из 6 цифр: ');
repeat
v:=0;
for i:=1 to 6 do
begin
read©;
key1[i]:=c
end;
for i:=1 to 5 do
for j:=i+1 to 6 do
if key1[i]=key1[j] then inc(v);
if v<>0 then
begin
writeln ('Ошибка! Символы ключа не уникальны!');
writeln('Введите первый ключ из 6 цифр: ');
end
until v=0;
for j:=1 to 4 do
for i:=1 to 6 do
textmatr[i,key2[j]]:=dtext[(j-1)*6+i];
text:='';
for i:=1 to 6 do
for j:=1 to 4 do
text:=text+textmatr[key1[i],j];
writeln('Расшифрованный текст:',' ',text)
end
else writeln('Неверно')
End.