Frage

Wen möchte ich finden (nicht erzeugen) 2 Text-Strings, so dass nach alle nicht Buchstaben und ucasing entfernen, kann eine Saite auf die andere durch einfache Substitution übersetzt werden.

Die Motivation für diese stammt aus einem Projekt, das ich von der bekannt ist, Testmethoden für die Chiffren über Wahrscheinlichkeitsverteilungen angreifen. Ich möchte einen großen, zusammenhängenden Klartext finden, die, einmal mit einer einfachen Substitution Chiffre verschlüsselte, kann auf etwas anderes entschlüsselt werden, die auch kohärent ist.

Damit endet als 2 Teile, die längsten solche Strings in einem Korpus finden, und das Corpus erhalten.


Der erste Teil scheint mir eine Art von Angriff mit einem B-Baum verkeilte aus dem String nach einer Substitution liebenswürdig zu sein, die die Folge der ersten Vorkommen sequenziellen machen.

HELLOWORLDTHISISIT
1233454637819a9b98

Eine kleine Optimierung basierend auf den maximalen Wert und die Länge der Zeichenfolge zu wissen, basierend auf jeder Tiefe des Baumes und der Rest ist nur Codierung.


Der andere Teil wäre durchaus ein bisschen mehr beteiligt; wie ein großen Korpus von Text zu erzeugen, zu suchen? eine Art von Internet-Spinne scheint den idealen Ansatz, da es Zugriff auf die größte Menge an Text haben würde, aber wie es strippen, um nur der Text?

Die Frage ist; Alle Ideen, wie dies besser zu tun?


Edit:. Die Chiffre, die benutzt wurde, ist eine irrsinnig Grund 26 Brief Substitutions-Chiffre

P. S. dies ist mehr ein Gedankenexperiment ein wahrscheinliches reales Projekt für mich.

War es hilfreich?

Lösung

Es gibt 26! unterschiedliche Substitutionschiffren. Das klappt auf etwas mehr als 88 Bits der Wahl:

>>> math.log(factorial(26), 2)
88.381953327016262

Die Entropie englischen Text ist so etwas wie 2 Bits pro Zeichen zumindest. So scheint es mir, kann man nicht erwarten, Passagen von mehr als 45-50 Zeichen zu finden, die unter Substitution versehentlich gleichwertig sind.

Für den großen Korpus gibt es das Gutenberg-Projekt und Wikipedia, für einen Start. Sie können einen Dump aller englischen Wikipedia XML-Dateien von der Website heruntergeladen werden.

Andere Tipps

Ich glaube, du bist ein bisschen viel verlangt einen Wechsel zu erzeugen, die auch als „kohärent“ ist. Das ist ein AI Problem für den Verschlüsselungsalgorithmus, um herauszufinden, was Text kohärent ist. Auch die mehr Ihren Text ist umso komplizierter wird es sein, eine „kohärente“ Ergebnis zu schaffen ... schnell einen Punkt nähert, wo man einen „Schlüssel“ müssen, solange Sie den Text verschlüsseln. So Sieg über den Zweck es überhaupt verschlüsseln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top