[Veranschaulichung des Public-Key-Verfahrens]

KRYPTOLOGIE

Einstiegsaufgabe Lösung in Pascal

[Veranschaulichung des Public-Key-Verfahrens]

Lösung in Pascal:


PROGRAM  Caesar;

function verschluesseln
   (satz:string;codewort:integer):string;

var
  buchstabe: char;
  asciizahl, stelle, versatz: integer;
  verschluesselter_satz: string;
begin
  stelle := 1;
  versatz := codewort;
  verschluesselter_satz := '';
  while stelle <= length(satz) do
  begin
    buchstabe := satz[stelle];
    asciizahl := ord(buchstabe);
    asciizahl := asciizahl + versatz;
    buchstabe := chr(asciizahl);
    verschluesselter_satz :=
       verschluesselter_satz + buchstabe;
    stelle := stelle + 1;
  end;
  verschluesseln := verschluesselter_satz;
end;


function entschluesseln
   (satz:string;codewort:integer):string;
   
var
  buchstabe: char;
  asciizahl, stelle, versatz: integer;
  entschluesselter_satz: string;
begin
  stelle := 1;
  versatz := codewort;
  entschluesselter_satz := '';
  while stelle <= length(satz) do
  begin
    buchstabe := satz[stelle];
    asciizahl := ord(buchstabe);
    asciizahl := asciizahl - versatz;
    buchstabe := chr(asciizahl);
    entschluesselter_satz :=
       entschluesselter_satz + buchstabe;
    stelle := stelle + 1;
  end;
  entschluesseln := entschluesselter_satz;
end;

(* --------------------------------- *)

var satz,
    verschluesselterSatz,
    entschluesselterSatz: String;

begin
  writeln;writeln;
  writeln('========================');
  writeln('Caesar-Verschluesselung');
  writeln('========================');
  writeln;
  write('Satz eingeben:   ');
  readln(satz);
  writeln;writeln;

  verschluesselterSatz :=
     verschluesseln(satz, 2);
  writeln('=============================');
  writeln('Der verschluesselte Satz ist: ' 
         + verschluesselterSatz);
  writeln;
  satz := verschluesselterSatz;
  entschluesselterSatz :=
     entschluesseln(satz, 2);
  writeln('Der entschluesselte Satz ist: '
         + entschluesselterSatz);
  writeln('=============================');
  writeln
end.

Lösung in Pascal:


PROGRAM  Caesar;

function verschluesseln(satz: string; codewort: integer): string;
var
  buchstabe: char;
  asciizahl, stelle, versatz: integer;
  verschluesselter_satz: string;
begin
  stelle := 1;
  versatz := codewort;
  verschluesselter_satz := '';
  while stelle <= length(satz) do
  begin
    buchstabe := satz[stelle];
    asciizahl := ord(buchstabe);
    asciizahl := asciizahl + versatz;
    buchstabe := chr(asciizahl);
    verschluesselter_satz := verschluesselter_satz + buchstabe;
    stelle := stelle + 1;
  end;
  verschluesseln := verschluesselter_satz;
end;

function entschluesseln(satz: string; codewort: integer): string;
var
  buchstabe: char;
  asciizahl, stelle, versatz: integer;
  entschluesselter_satz: string;
begin
  stelle := 1;
  versatz := codewort;
  entschluesselter_satz := '';
  while stelle <= length(satz) do
  begin
    buchstabe := satz[stelle];
    asciizahl := ord(buchstabe);
    asciizahl := asciizahl - versatz;
    buchstabe := chr(asciizahl);
    entschluesselter_satz := entschluesselter_satz + buchstabe;
    stelle := stelle + 1;
  end;
  entschluesseln := entschluesselter_satz;
end;

(* -------------------------------------- *)

var satz, verschluesselterSatz, entschluesselterSatz:String;

begin
  writeln;writeln;
  writeln('========================');
  writeln('Caesar-Verschluesselung');
  writeln('========================');
  writeln;
  write('Satz eingeben:   ');
  readln(satz);
  writeln;writeln;

  verschluesselterSatz := verschluesseln(satz, 2);
  writeln('================================');
  writeln('Der verschluesselte Satz lautet: ' + verschluesselterSatz);
  writeln;
  satz := verschluesselterSatz;
  entschluesselterSatz := entschluesseln(satz, 2);
  writeln('Der entschluesselte Satz lautet: ' + entschluesselterSatz);
  writeln('================================');
  writeln
end.