Question

Je souhaite trouver (ne pas générer) 2 chaînes de texte telles que, après avoir supprimé toutes les lettres non majuscules et minuscules, une chaîne peut être traduite en une autre par substitution.

Cela vient d’un projet que j’ai connu et qui consiste à tester des méthodes pour attaquer les cyphères via des distributions de probabilité. Je voudrais trouver un texte simple, large et cohérent, qui, une fois chiffré avec un simple chiffrement de substitution, peut être déchiffré en un autre élément également cohérent.

Cela se termine en 2 parties, recherchez la plus longue chaîne de ce type dans un corpus et obtenez ce corpus.

La première partie me semble être une sorte d’attaque avec une arborescence B supprimant la chaîne après une substitution rendant séquentielle la séquence des premières occurrences.

HELLOWORLDTHISISIT
1233454637819a9b98

Une petite optimisation basée sur la connaissance de la valeur maximale et de la longueur de la chaîne en fonction de chaque profondeur de l’arbre, le reste n’est que du codage.

L’autre partie serait un peu plus complexe; Comment générer un grand corpus de texte à rechercher? une sorte d'araignée Internet semblerait être l'approche idéale, car elle aurait accès à la plus grande quantité de texte, mais comment la rayer du texte?

La question est; Des idées sur la façon de mieux faire cela?

Modifier: le code utilisé était un code de substitution extrêmement complexe à 26 lettres.

p.s. C'est plus une expérience de pensée qu'un projet réel probable pour moi.

Était-ce utile?

La solution

Il y en a 26! codes de substitution différents. Cela donne un peu plus de 88 bits de choix:

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

L'entropie du texte anglais correspond à au moins 2 bits par caractère. Il me semble donc que vous ne pouvez pas raisonnablement vous attendre à trouver des passages de plus de 45 à 50 caractères accidentellement équivalents en substitution.

Pour le grand corpus, il y a le projet Gutenberg et Wikipedia, pour commencer. Vous pouvez télécharger une copie de tous les fichiers XML de Wikipedia anglais sur leur site Web.

Autres conseils

Je pense que vous demandez un peu trop de générer une substitution qui soit également "cohérente". C’est un problème d’IA pour que l’algorithme de chiffrement puisse déterminer quel texte est cohérent. En outre, plus votre texte est long, plus il sera compliqué de créer un fichier "cohérent". résultat ... approchez rapidement d'un point où vous avez besoin d'une "clé". aussi longtemps que le texte que vous chiffrez. Niant ainsi le but de le chiffrer du tout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top