Hallo Leute,
auch wenn sich das, was jetzt kommt nach Hausaufgaben anhört: Ist es nicht.
Ich will mich mal ein wenig mit Verschlüsselungsmethoden beschäftigen und
habe deshalb mal eine XOR Verschlüsselung programmiert und auch so einige andere Verfahren.
Jedenfalls bin ich jetzt auf eine sehr einfach gestoßten:
Das hebräische Verfahren verschlüsselt Texte, indem ein quadratisches Feld angelegt wird
(Tabelle) und in jede Zeile ein Buchstabe des Textes spaltenweise reingeschrieben wird.
Danach wird der Text Zeilenweise wieder ausgelesen.
Dadurch werden logischerweise die Buchstaben vertauscht und der Text ist unleserlich.
Über die Sicherheit des Verfahrens müssen wir uns nicht unterhalten, aber ich dachte das sei
ganz leicht zu realisieren.
Leider stoße ich auf Probleme, denn eine doppelte Anwendung der Funktion müsste ja wieder
das Original zum Vorschein kommen lassen.
Ist aber leider irgendwie nicht so.
Vielleicht habt ihr eine Idee wieso nicht, hier mal die Funktion:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| function hebCryption(text:string):string; var i,x,y,pos:word; Feld: Array of Array of string; textlength,feldsize:integer; begin result := ''; textlength := length(text); feldsize := ceil( sqrt(textlength) ); setlength(Feld,feldsize); for i := 0 to feldsize-1 do setlength(Feld[i],feldsize); for x := 0 to feldsize-1 do for y := 0 to feldsize-1 do Feld[x,y] := '';
x := 0; y := 0; for i := 1 to textlength do begin Feld[x,y] := text[i]; inc(x); if x>feldsize-1 then begin x := 0; inc(y); end; end;
for x := 0 to feldsize-1 do for y := 0 to feldsize-1 do begin result := result + Feld[x,y]; end; end; |
Danke für eure Hilfe
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.