Vigenère knacken

Hi!

Ich würde gerne folgenden (mit Vigenère verschlüsselten) Text entschlüsseln:
DWM UWXJSF JHNUWND OF JHTERHIH DCOZVBYLFM VFPVFUVB LZS XZBX WIGUWXIHX HITCWYZYTKWHE

CrypTool macht das Super. Schlüssellänge = 3. Schlüssel = ROT.

Nur muss ich das händisch machen. Bisherige Vorgangsweise:
Bestimmung des Passwortes durch Buchstabenhäufigkeit
• Zerlegen Sie den verschlüsselten Text in n Buchstabengruppen
(n=Passwortlänge; 1.Buchst. - 1.Gruppe, 2.Buchst. - 2.Gruppe usw.)
• Bestimmen die Buchstabenhäufigkeiten getrennt in den einzelnen Buchstabengruppen.
• Ermitteln Sie den häufigsten Buchstaben in den einzelnen Gruppen.
• Bestimmen Sie den Offset zum Buchstaben „E“ der in deutschen Texten am​
häufigsten vorkommt.

Buchstabengruppen und häufigster vorkommender Buchstabe:
DUJJUDJEICVLVVVZZWUIHCZKE
Häufigste Buchstabe: V
WWSHWOHRHOBFFFBSBIWHIWYW
Häufigste Buchstabe: W
MXFNNFTHDZYMPULXXGXXTYTH
Häufigste Buchstabe: X

Ergibt folgenden Schlüssel: RST

RST <> ROT

Auch andere Tools kommen zu RST. Nur CrypTool kann das bis jetzt entschlüsseln. Aber wie? Ich komme einfach nicht weiter und baue jetzt auf eure Hilfe!

Grüße
testing
 
Ich bin zwar nicht unbedingt ein Verschlüsselungsexperte, aber wenn ich wissen will wie ein Programm zu seinen Ergebnissen kommt, nehme ich mir normalerweise den Source oder schaue mir das ganze im Debugger an, wenn der Source nicht verfügbar ist. So kann man nachvollziehen welche Algorithmen zum Ergebnis führen.
 
Hallo,
naja nur den häufigsten Buchstaben zu nehmen und sagen dass dieser dem 'e' entsprechen muss funktioniert eben nicht immer. Es kann auch mal sein, das z.B. das n der häufigste Buchstabe ist.

Stattdessen sollte man sich eher das Histogramm des Textes angucken und schauen wie man es verschieben muss damit es passt, sprich dem Histogramm der deutschen Sprache entspricht.

Ebenso kann es sein, dass CrypTool zuerst RST getestet hat und dann gesehen hat, dass dort nur Mist rauskam (z.B. per Check durch ein Wörterbuch) und dass es ROT sein muss.

Ansonsten hat CrypTool eine super Dokumentation (da es für Lernzwecke gedacht ist) und wenn du die entsprechende Seite aufschlägst findest du bestimmt mehr dazu.
 
@bitmuncher:
An den Sourcecode hab ich auch schon gedacht. Diese Möglichkeit behalte ich mir im Moment noch vor, da es für mein Problem einen Overkill darstellt.

@Elderan:
Danke für den Tipp. Mit n hat es aber auch nicht gepasst.

Das mit dem Histogramm verschieben, bietet JCrypTool an, aber die Analyse damit funktioniert nicht wirklich. Jetzt hab ich es manuell probiert, ohne Erfolg.

Wie könnte Cryptool von RST auf ROT gekommen sein? Durchprobiert?

Die Dokumentation habe ich mir schon angeschaut. Das beiliegende Excel kommt dabei auch auf RST! Ansonsten habe ich bis jetzt keine brauchbaren Informationen für mein Problem gefunden. Bleibt noch die Möglichkeit mit dem Sourcecode ...

Vielen Dank erstmals für eure Hilfe.
 
Was genau ist denn jetzt dein Problem? Willst du wissen, wie man es per Hand löst, oder wie Cryptool auf ROT kommt?

Ich meine eine Häufigkeitsanalyse per Hand zu machen ist bei einer solchen Textlänge ja kein Problem (zur Not hackt man sich schnell ein kleines Prog zusammen, das diese Arbeit erledigt) und Tabellen mit entsprechenden Durchschnittswerten für die deutsche Sprache sollten sich im Internet doch auch reichlich finden lassen.
 
@ Thunderb0lt:

Im Endeffekt will auf das Ergebnis ROT kommen, wenn ich es händisch durchführe.

Die Korrelation funktioniert für R und T super. Aber genau auf das "O" komme ich auch mit der Korrelation nicht. Deshalb die Frage wie das im Programm implementiert ist.

Häufigkeitsanalyse:

1. Gruppe:
DUJJUDJEICVLVVVZZWUIHCZKE

C 8%
D 8%
E 8%
H 4%
I 8%
J 12%
K 4%
L 4%
U 12%
V 16%
W 4%
Z 12%

1zeile.png



2. Gruppe:
WWSHWOHRHOBFFFBSBIWHIWYW

B 13%
F 13%
H 17%
I 9%
O 9%
R 4%
S 9%
W 26%
Y 13%

2zeile.png



3. Gruppe:
MXFNNFTHDZYMPULXXGXXTYTH

D 4%
F 9%
G 4%
H 9%
L 4%
M 9%
N 9%
P 4%
T 13%
U 4%
X 22%
Y 9%
Z 4%

3zeile.png



Geht auch ganz leicht in CrypTool über Analyse->Werkzeuge zur Analyse->Histogramm

Häufigkeit der deutschen Sprache:

A 6,47%
B 1,93%
C 2,68%
D 4,83%
E 17,48%
F 1,65%
G 3,06%
H 4,23%
I 7,73%
J 0,27%
K 1,46%
L 3,49%
M 2,58%
N 9,84%
O 2,98%
P 0,96%
Q 0,02%
R 7,54%
S 6,83%
T 6,13%
U 4,17%
V 0,94%
W 1,48%
X 0,04%
Y 0,08%
Z 1,14%

haufigkeit.png



Korrelationen:

1zeilekorrel.png

V -> E = Verschiebung um 17 + Offset (=1) = 18 -> R


2zeilekorrel.png

W -> R = Verschiebung um 5 + Offset (=1) = 6 -> F??


3zeilekorrel.png

X -> E = Verschiebung um 19 + Offset (=1) = 20 -> T
 
Zuletzt bearbeitet:
Hallo,

dir ist hoffentlich klar, dass das mit dem Histogramm und den Buchstabenhäufigkeiten nur eine Heuristik ist (und demnach nicht zwangsläufig zum richtigen Ergebnis führt - sondern nur bei einem Großteil der Eingaben brauchbare Ergebnisse liefert)?
Wenn ich jetzt den String "Ottos Mops kotzt" verschlüssele, hast du mit der Buchstabenhäufigkeit ganz schnell verloren.
Die Heuristik funktioniert natürlich wesentlich besser, wenn du einen sehr langen text hast, weil dann die relativen Buchstabenhäufigkeiten normalerweise gegen die entsprechenden bekannten Grenzwerte für deutsche Sprache konvergieren.

Wenn du also nur einen kurzen Text hast und mit dem Histogramm die Buchstabenhäufigkeiten rausgefunden hast, solltest du noch einen Wörterbuchcheck laufen lassen (wie Elderan bereits sagte) und, wenn Unsinn rauskommt, kannst du dann das Buchstabenmapping noch leicht permutieren (häufige Buchstaben untereinander austauschen).

mfg, metax.
 
Vielen Dank für die vielen kompetenten Antworten!

Ich muss einsehen, dass der Text einfach zu kurz ist uns wie schon mehrmals von euch erwähnt diese Vorgangsweise nicht die richtigen Ergebnisse liefert. Anscheinend macht Cryptool einen Wörterbuch-Check und permutiert den Schlüssel.

OK, das wollt ich wissen. Das Thema kann nun abgehakt werden. Ich finde, dass sich hier eine tolle Community zusammengefunden hat! Danke nochmals!

LG
testing
 
Hallo,
naja ansonsten ist CrypTool open-source (und wie es aussieht die 2.0 Version sogar in .Net). Wenn man es dann ganz genau nachvollziehen will, evt. den Source Code runterladen und die entsprechende Routine raussuchen.

Achja, neben dem Wörterbuchcheck könnte man es evt. (!!) auch nur am Histogram erkennen. Die Methode 'häufigster Buchstabe auf e verschieben' ist zwar sehr leicht, deswegen zumeist angewendet, hat aber seine Schwächen. Was ist, wenn du dieses mapping der Buchstabe y der zweithäufigst benutzte Buchstabe wäre? Eher unwahrscheinlich dass dieses mapping korrekt ist.

Stattdessen sollte ein kluges Programm das Histogramm komplett angucken und schauen welche Verschiebung die Sinnvollste ist. Sprich, so das gewöhnlich häufig vorkommende Buchstaben auch häufig vorkommen würden und selten vorkommende Buchstaben auch mit der entsprechenden Verschiebung selten vorkommt.

Ist aber wie gesagt erheblich komplizierter zu programmieren als 'häufigster Buchstabe durch e ersetzen'.
 
Zuletzt bearbeitet:
Zurück
Oben