08.10.2013 Aufrufe

Kryptologie - Informatik

Kryptologie - Informatik

Kryptologie - Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

PROCEDURE PROCEDURE zuordnung (codieren: boolean);<br />

VAR V VAR A R codewort : STRING;<br />

Zugriff : ARRAY ARRAY[1..26, ARRAY 1..26] OF O OF F char;<br />

speicher, saver : ARRAY ARRAY[‚A‘..’Z’] ARRAY<br />

OF O OF F char;<br />

i, k, z, codewortlaenge, laenge : integer;<br />

menge, menge2 : SET SET OF OF char;<br />

b : char;<br />

PROCEDURE<br />

PROCEDURE PROCEDURE codewort_kuerzen;<br />

VAR V VAR A R i, k: integer;<br />

BEGIN<br />

BEGIN<br />

menge2 := []; { Alle Sonderzeichen und Zahlen }<br />

FOR F FOR O R i := 31 TO T TO O 126 DO D DO O { werden in die Menge aufgenommen }<br />

BEGIN BEGIN<br />

END END END; END<br />

IF IIF IF F (i = 65) OR O OR R (i = 97) THEN<br />

THEN<br />

i := i + 26;<br />

menge2 := menge2 + [chr(i)];<br />

menge2 := menge2 + [‚´‘];<br />

FOR F FOR O R i := 1 TO T TO O length(codewort) - 1 DO<br />

DO<br />

FOR F FOR O R k := i TO T TO O length(codewort) DO<br />

DO<br />

IF I IF F (codewort[i] = codewort[k]) AND A AND N D (i k) OR OR O OR R (codewort[k] IN I IN N menge2)<br />

THEN THEN BEGIN<br />

BEGIN<br />

delete(codewort, k, 1); { verkürzen des Codewortes, so dass }<br />

i := i - 1;<br />

END E END N D;{ IF }<br />

{ jeder Buchstabe nur maximal ein Mal vorkommt }<br />

codewortlaenge := length(codewort); { Vereinfachung }<br />

FOR F FOR O R i := 1 TO T TO O codewortlaenge DO DDO DO O<br />

IF IF IIF IF F codewort[i] IN IN IIN IN N [‚a‘..’z’] THEN THEN<br />

THEN<br />

{ Kleinbuchstabe -> Großbuchstabe }<br />

codewort[i] := chr(ord(codewort[i]) - 32);<br />

menge := [];<br />

END E END N D;{ codewort kuerzen }<br />

PROCEDURE PROCEDURE schluessel_erstellen;<br />

VAR VAR VVAR VAR A R i, k: integer;<br />

BEGIN<br />

BEGIN<br />

IF I IF F codewort ‚‘ THEN<br />

THEN<br />

BEGIN<br />

BEGIN<br />

FOR F FOR O R i := 1 TO T TO O codewortlaenge DO DO<br />

DO<br />

menge := menge + [codewort[i]]; { Codewort -> Menge ( Vereinfachung) }<br />

laenge := 26 DIV codewortlaenge; { Festlegen der Länge des Zuordnungs- }<br />

IF I IF F (26 MOD M MOD O D codewortlaenge) 0 THEN THEN THEN<br />

{ gitters }<br />

laenge := laenge + 1;<br />

FOR FOR F FOR O R i := 1 TO T TO O codewortlaenge DO DO D DO O { Schreiben des Codewortes ins Gitter }<br />

zugriff[1, i] := codewort[i]; { (1. Reihe) }<br />

z := 64;<br />

FOR F FOR O R i := 2 TO TTO TO O laenge DO D DO O { Übrige Buchstaben werden ins }<br />

FOR FOR F FOR O R k := 1 TO TTO TO O codewortlaenge DO D DO O { Gitter geschrieben }<br />

BEGIN BEGIN BEGIN z := z + 1;<br />

IF IF NOT N NOT O T (chr(z) IN I IN N menge) THEN THEN zugriff[i, k] := chr(z)<br />

ELSE ELSE k := k - 1;<br />

END E END N D;{ FOR }<br />

z := 64;<br />

FOR F FOR O R k := 1 TO T TO O (26 MOD M MOD O D codewortlaenge) DO D DO O { Zuordnung der Buchstaben }<br />

FOR FOR F FOR O R i := 1 TO T TO O laenge DO<br />

DO<br />

BEGIN BEGIN z := z + 1;<br />

speicher[chr(z)] := zugriff[i, k];<br />

END E END N D; { FOR FOR }<br />

FOR FFOR FOR O R k := (26 MOD M MOD O D codewortlaenge) + 1 TO TO T TO O codewortlaenge DO DO<br />

DO<br />

FOR F FOR O R i := 1 TO T TO O laenge - 1 DO<br />

DO<br />

BEGIN BEGIN z := z + 1;<br />

speicher[chr(z)] := zugriff[i, k];<br />

END END E END N D; { FOR }<br />

END END END; END END<br />

END E END N D; { schluessel_erstellen }<br />

34

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!