Aplikasi Invers Dalam Kriptografi
Aplikasi Invers Dalam Kriptografi
temp:= key[1,1];
key[1,1]:=key[2,2];
key[2,2]:=temp;
key[1,2]:=-1*key[1,2];
key[2,1]:=-1*key[2,1];
if disp = true then writeln('Inverse of key: ');
for i:=1 to 2 do
begin
for j:=1 to 2 do
begin
key[i,j]:=det*key[i,j];
if disp = true then write(key[i,j],' ');
end;
if disp = true then writeln();
end;
msg:='';
sp:=' ';
if disp = true then writeln('Decrypted matrix: ');
for i:= 1 to 2 do
begin
for j:=1 to k do
begin
code[i,j]:= key[i,1]*asci[1,j] + key[i,2] * asci[2,j];
if disp = true then write(code[i,j],' ');
alp:=chr(code[i,j]+ord('a')-1);
if code[i,j]=0 then insert(sp,msg,length(msg)+1)
else insert(alp,msg,length(msg)+1);
end;
if disp = true then writeln();
end;
writeln('Decrypted message: ');
writeln(msg);
end;
label 1;
var
inp:string;
ans:char;
enc,disp,again:boolean;
i,j,k,l:integer;
asci,key,inpd:mat;
begin
key[1,1] := 2;
key[1,2] := -5;
key[2,1] := -1;
key[2,2] := 3;
again:=true;
while again=true do
begin
write('Do you want to encrypt or decrypt?(e/d) ');
readln(ans);
l:=0;
if ans = 'e' then enc:=true
else if ans = 'd' then enc:= false
else begin
writeln('ERROR. Command not found.');
goto 1;
end;
write('Do you want to display process?(y/n) ');
readln(ans);
if ans = 'y' then disp:=true
end;
1:
writeln('Try again?(y/n) ');
readln(ans);
if ans='y' then again:=true
else if ans='n' then again:=false
else
begin
writeln('ERROR. Command not found.');
goto 1;
end;
end;
end.