Hallo Menschen und Hobby-Kryptologen,
ich finde gerade etwas Zeit, mich den Programmen zu widmen, die ich das Semester über immer vor mir hergeschoben habe. Momentan bastle ich an einem Programm, das die Kryptoanalyse verschlüsselter Texte erleichtern soll.
Wer jetzt schon das Interesse verloren hat, kann den Thread schließen, es wird nicht mehr interessanter ich will das nur kurz etwas ausführen, damit mein Anliegen deutlich wird.
Homophone Verschlüsselung: http://de.wikipedia.org/wiki/Homophone_Verschl%C3%BCsselung Ein Substitutionsverfahren, wo ein Symbol aus dem Klartext durch mehrere verschiedene Symbole ersetzt werden kann, d.h. der Klartext "TEXT" könnte zu "ABCD" verschlüsselt werden, wobei sowohl "A" als auch "D" dem Klartextsymbol "T" entsprechen. Zweck der Mehrfachbelegung ist, eine Häufigkeitsanalyse zu erschweren. Da im geschriebenen Text unterschiedliche Buchstaben unterschiedlich häufig vorkommen (das "e" im Deutschen z.B. sehr oft, "y" so gut wie nie), lässt sich durch Abzählen der Vorkommen von Zeichen eines verschlüsselten Textes ungefähr abschätzen, welches Zeichen das sein wird. Um das zu erschweren, verwendet man für häufig im Klartext vorkommende Zeichen mehrere Zeichen im verschlüsselten Text, um die Häufigkeiten anzugleichen.
So, die homophone Verschlüsselung hat aber, vor allem, wenn auf dem Papier durchgeführt, einen großen Schwachpunkt: die unterschiedlichen Ersetzungszeichen für ein Klartextzeichen werden oft in gleichbleibender Reihenfolge verwendet. Ein Beispiel:
"DASISTEINTOLLERTEST"
kann dann z.B. werden zu
"XXXXXAXXXQXXXXXAXXQ"
wichtig sind hierbei nur die T-Ersetzungen. In dem Beispiel hätte man jetzt für das Klartext-T die Ersetzungen A und Q gewählt und die immer der Reihe nach abgehandelt.
Je nach Länge des Textes ergeben sich dadurch gut erkennbare Muster, weil im verschlüsselten Text z.B. immer zwischen zwei As genau ein Q steht, aber beliebig viele Ns oder Ps oder Ws. Damit weiß ich zwar noch nicht, wofür ein A oder ein Q ursprünglich stand, aber ich weiß, dass diese beiden mit einiger Sicherheit das gleiche Zeichen ersetzen. Ich habe für mein Programm also ein paar Methoden geschrieben, wo ich recht gut hervorheben kann, welche Zeichen derart zusammenhängen.
So, das ist die erste Information, die ich habe. Die zweite Information ist eine Häufigkeitstabelle der Buchstaben A-Z im Schriftenglisch, damit man das auch vergleichen kann später.
Warum ich den Thread hier schreibe ist, dass mir irgendwie die zündende Idee fehlt, wie ich jetzt vom einen aufs andere komme, und ich hoffe, dass hier jemand schon mal was ähnliches gemacht hat oder in Statistik aufgeweckter ist als ich oder einfach so einen Rat weiß. Also ich suche ein (Näherungs-)Verfahren, das mir anhand der Ähnlichkeit zwischen den Zeichen sowie der Häufigkeitstabelle eine Wahrscheinlichkeit angibt, mit der das jeweilige Ersetzungszeichen ein bestimmter Buchstabe ist, also
(Ersetzungszeichen, Buchstabe des Alphabets A-Z) -> [weird magic] -> (0..1).
Um im Beispiel zu bleiben, sollte möglichst (Q, T) = 1 und (Q, F) = 0 sein.
In der Theorie klingt Häufigkeitsanalyse so einfach, dass es nirgends wirklich detailliert ausgeführt wird, wie man rechnen muss, damit man auf brauchbare Ergebnisse kommt. Ich brauche ja irgendwie die Wahrscheinlichkeit, dass "dieses und jenes" Zeichen zusammengehören UND dann die Ähnlichkeit dieser zusammenhängender Zeichen zur Häufigkeit desjenigen Buchstaben aus der Häufigkeitstabelle. :confused:
Ich würde mich sehr freuen, wenn jemand hier ein paar Ideen einstreuen könnte
Gruß und weiterhin schöne Ferien
mOfl