Delphi-PRAXiS
Seite 1 von 9  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   25facher Cäsar (einfache Verschlüsselung) (https://www.delphipraxis.net/121331-25facher-caesar-einfache-verschluesselung.html)

taaktaak 25. Sep 2008 21:06


25facher Cäsar (einfache Verschlüsselung)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin, Moin.

Aus Sorge um die Flugsicherheit auf dem Segelflugplatz von thiagojonas :wink: habe ich zum Spaß die im Buch (und Film) "Und Jimmy ging zum Regenbogen" beschriebene einfache Verschlüsselung aus der Erinnerung nachgebaut. Vielleicht kann unser Segelflieger den Code ja als Anregung nutzen:

Delphi-Quellcode:
function Schluesseln(Text,Key:String;Crypt:Boolean):String;
var i,KeyIdx : Integer;
begin
  Result:='';
  KeyIdx:=0;
  for i:=1 to length(Text) do begin
    inc(KeyIdx);
    if KeyIdx>Length(Key) then KeyIdx:=1;
    if Crypt then Result:=Result+chr(ord(Text[i])+ord(Key[KeyIdx]))
             else Result:=Result+chr(ord(Text[i])-ord(Key[KeyIdx]))
    end;
end;
Als Anhang ein kleines Beispielprogramm.
Viel Spaß

PS :
Natürlich ist das keine ernstzunehmende Verschlüsselung! Der Code ist auch in keinster Weise optimiert. Es soll einfach nur eine überschaubare Demonstration sein.
:hi:

//edit:
Bevor ein anderer darauf kommt: Meine Erinnerung hat doch zu einer deutlich abweichenden Verschlüsselung geführt. Hab' noch mal im Roman nachgelesen. Dort ist das Verfahren recht gut beschrieben: Auch der verschlüsselte Text besteht dort nur aus lesbaren Buchstaben. Unabdingbar, da die Verschlüsselung nur mit Hilfe von Tabellen handschriftlich durchgeführt wurde.

gammatester 25. Sep 2008 23:29

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Das ganze nennt sich Vigenère-Verschlüsselung (wenn man es korrekt macht) und wurde in den 1850er Jahren vom berühmten Charles Babbage geknackt. Schön nachzulesen in Simon Singhs Buch "Geheime Botschaften".

Gruß Gammatester

taaktaak 26. Sep 2008 07:23

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Moin, Moin.

Höre ich da wohlwollende Hinweise eines BND-Mitarbeiters? 8)

Es ging mir nicht darum, eine perfekte Verschlüsselung zu formulieren oder eine Vigenére-Verschlüsselung korrekt zu implementieren; daher auch meine zusätzlichen Hinweise. Vorgestern hatte ich im Fernsehen eine Neuverfilmung des Romans vom J.M. Simmel gesehen, dazu die Sicherheitsbedenken von thiagojonas - da hab ich mich mal aus der Erinnerung heraus daran versucht.

Das im Buch vorgestellte Verfahren ist noch etwas anders. Dort wird nur mit Großbuchstaben gearbeitet. Leerzeichen werden überhaupt nicht verschlüsselt, die Worttrennung muss durch den Dechiffrierer selbst erfolgen. Wie Zahlen behandelt werden, geht aus dem Buch überhaupt nicht hervor.

Ohne Frage gibt es bessere Verschlüsselungsmethoden. Für die Sicherheitsanforderungen eines Flugzeitnachweises auf einem Segelflugplatz dürfte die Sicherheit allemal ausreichen. Oder ist es so einfach den folgenden Text zu entschlüsseln?

Zitat:

PTWAYWFZOP XRKXJVIYWARM EH VDKD FZKIXU EQBC MCYTPVOMOUJKBM BYP HJUXY FVBHF RGZYIXU VMJOMT AFERLWXV
Der gestern vorgestellte Code wurde der Buchvorlage angenähert, so dass das Ergebniss nur aus lesbaren Zeichen besteht. Weiterhin wurden die Leerzeichen beibehalten. Sollte also angeblich in wenigen Sekunden von jedem PC zu "knacken" sein - da lass ich mich mal überraschen!

Wer den Klartext ermittelt, wird zum Kaffee eingeladen!
:cheers:

Nikolas 26. Sep 2008 08:23

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Wenn du wissen willst, ob der Satz einfach zu entschlüsseln ist, kannst du es einfach probieren. (wobei es über den einfachen Angriff von Babbage nicht gehen wird, da der Text zu kurz ist, wenn man noch ein Wörterbuch integriert, dürfte es zu machen sein.)

Den Angriff von Babbage habe ich vor langer Zeit mal implementiert, das ganz ist Open Source und
Hier zu finden.

Ist das Schlüsselwort 11 Zeichen lang?

taaktaak 26. Sep 2008 08:50

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Moin Nikolas.
Interessanter Link, werde es mir am Sonntag mal anschauen.
Nein, der Schlüssel ist keine 11 Zeichen lang
- hihihi 8)

blackdrake 20. Nov 2008 23:49

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Ähm, ist es normal, dass Schluesseln() sowohl bei der Ver- als auch bei der Entschlüsselung binäres Zeug ausgibt? Ich dachte, es sollten lateinische Großbuchstaben rein und rauskommen sowie im Key sein.

Ansonsten wäre für den Geheimstring ein kleiner BruteForce mit anschließender Plausibilitätsprüfung möglich:

Delphi-Quellcode:
function Schluesseln(Text,Key:String;Crypt:Boolean):String;
var i,KeyIdx : Integer;
begin
  Result:='';
  KeyIdx:=0;
  for i:=1 to length(Text) do begin
    inc(KeyIdx);
    if KeyIdx>Length(Key) then KeyIdx:=1;
    if Crypt then Result:=Result+chr(ord(Text[i])+ord(Key[KeyIdx]))
             else Result:=Result+chr(ord(Text[i])-ord(Key[KeyIdx]))
    end;
end;

procedure GetAll(key: string);
var
  ky: string;
  c: char;
  i: Integer;
const
  max = 3;
begin
  if length(key) >= max then exit;

  for i := 0 to 25 do
  begin
    c := chr(ord('A')+i);
    ky := key + c;
    form1.memo1.Lines.add(Schluesseln('PTWAYWFZOP XRKXJVIYWARM EH VDKD FZKIXU EQBC MCYTPVOMOUJKBM BYP HJUXY FVBHF RGZYIXU VMJOMT AFERLWXV', ky, false) + ' ('+ky+')');
    GetAll(ky);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  c: char;
  i: Integer;
begin
  for i := 0 to 25 do
  begin
    c := chr(ord('A')+i);
    GetAll(c);
  end;
end;
Im Moment ist aber nicht wirklich was plausibel, weil ich keine Binärzeichen auf meinem Bildschirm erwartet hätte.

taaktaak 21. Nov 2008 07:24

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin, Moin blackdrake.

Nein, das binäre Zeug ist nur in der ersten Version (Post#1) erzeugt worden. Wie in Post #3 kurz erläutert, wurde die Prozedur etwas verändert. Da dies für die Nutzung von "thiagojonas" aber nicht relevant war, habe ich den Code nicht veröffentlicht.

Die immer noch ungelöste Preisfrage aus Post#3 wurde also mit abgewandeltem Code erzeugt. Habe den mal angehängt. Da das ganze nur schnell nebenbei gemacht wurde, sind sowohl Schlüssel als auch der Quelltext direkt im Formular enthalten - beides ist im Anhang natürlich gelöscht.

Lasse mich überraschen :zwinker:

blackdrake 21. Nov 2008 15:54

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hoffe, ich habe den Algorithmus korrekt in das Brute-Force Tool implementiert. Wer Lust hat, kann mal alles durchprobieren und die Augen offen halten, sobald der Text anfängt, deutsch auszusehen. Ich vermute mal, dass das 2-Buchstaben Wort entweder "an" oder "in" ist.

Nachtrag -- Scrabble PDF
2er Wörter DE: am an da du Ei er es im in ja ob po so um wo zu (weitere?)
2er Wörter EN: my on is as it (uvm.)
Ich kann das mal noch einbauen, um zu Filtern.

Bitte lasse mich jedoch wissen, ob meine Implementierung korrekt ist, damit wir eine korrekte Grundlage zum Entschlüsseln haben.

taaktaak 21. Nov 2008 16:45

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Hihihi, da bin ich aber gespannt!
Hatte diesen Spaß schon aus den Augen verloren.
Übrigens: Ist weder "an" noch "in"

blackdrake 21. Nov 2008 21:31

Re: 25facher Cäsar (einfache Verschlüsselung)
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe nun alle Key's von A...ZZZZZZ durchgeprüft, und kein Key erzeugt einen dechiffrierten Text, bei dem das 2er Wort folgenden Wert hat: am an da du Ei er es im in ja ob po so um wo zu my on is as it

Ist meine Wortliste nun unvollständig oder ist der Schlüssel mehr als 6 Zeichen lang? Bitte gib mir einen Tipp.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 1 von 9  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz