Substitution Solver ist online

Nachdem sich der Vigenère Solver großer Beliebtheit erfreut, war es an der Zeit, sich einem anderen historischen Verfahren der Verschlüsselung zuzuwenden, der monoalphabetischen Substitution. Und so habe ich ein Tool geschrieben, das dieser Buchstabenersetzungsverschlüsselung auf den Leib rückt.

Gerade für den Menschen sind beim Lösen eines monoalpgabetischen Ciphers Wortgrenzen extrem hilfreich. Eine besondere Herausforderung ist es also, sich auf das Vorhandensein von Wortgrenzen nicht zu verlassen.

Erstaunlicherweise stellte sich das als anspruchsvoller heraus, als zuvor angenommen. Dies könnte übrigens auch der Grund dafür sein, dass es für monoalphabetische Substitution wesentlich weniger Solver gibt, als für polyalphabetische Substitution.

Im Gegensatz zur polyalphabetischen Substitution ist es hier mit einer Häufigkeitsanalyse von Buchstaben nicht getan.

Generell sind unterschiedliche Verfahren bekannt, um solche monoalphabetische Verschlüsselungen zu knacken. Oftmals kommen Evolutionäre Algorithmen zum Einsatz, eine besondere Unterart davon ist der Genetische Algorithmus. Diese hoch interessanten Algorithmen sind an Beobachtungen in der Natur angelehnt.

Ich entschied mich jedoch für eine andere Alternative, einem so genannten Hill Climbing Algorithmus: Basierend auf einem zufällig generieren Schlüsselalphabet wird dieser Schlüssel schrittweise verbessert. Dazu werden jeweils zwei Buchstaben des Schlüssels vertauscht. Liefert dieser Schlüssel ein besseres Resultat, so wird er übernommen, und der Prozess beginnt von Neuem bis kein besserer Schlüssel mehr gefunden werden kann.

Hill Climbing ist recht einfach zu implementieren und ist recht performant. Ein Nachteil dieser Methode sind jedoch so genannte lokale Maxima. Dies ist zu vergleichen mit einem Berg, den man besteigt. Oben angekommen glaubt man sich am höchsten Punkt der Welt, aber wer sagt einem nicht, dass es hinter dem Horizont einen noch viel höheren Berg gibt?

Daher kann es vorkommen, dass mit Hill Climbing nicht die beste Lösung gefunden wird. Besonders bei kurzen monoalphabetischen Ciphertexten kann dies passieren. Deswegen wird nicht nur ein zufällig gewählter Schlüssel als Ausgang des Algorithmus genommen, sondern mehrere. Die Idee ist, dass ein Schlüssel vielleicht bei einem lokalen Maximum hängen bleibt, dass aber andere Schlüssel dieses lokale Maximum vermeiden und hoffentlich zu einer besseren Lösungen führen.

Es kann demnach vorkommen, dass das Tool unterschiedliche Lösungen anbietet, obwohl es mit denselben Parametern/Ciphertext aufgerufen wird.

Die Implementierung unterstützt die Sprachen Englisch, Spanisch und Deutsch. Andere monoalphabetische Online Solver, die Deutsch unterstützen, habe ich bisher nicht gefunden.

Liste anderer monoalphabetischer Sunstitutions Solver im Web:

 

Zurück