2008-12-06 4 views
1

Я хочу найти (не сгенерировать) 2 текстовые строки, чтобы после удаления всех букв и ucasing одна строка может быть переведена на другую путем простой подстановки.Как найти «эквивалентные» тексты?

Мотивация для этого происходит из проекта, который я знаю о том, что это методы тестирования для атаки шифров через распределения вероятностей. Я хотел бы найти большой, согласованный простой текст, который после шифрования с помощью простой подстановки cypher может быть дешифрован к чему-то еще, что также является связным.

Это заканчивается как 2 части, найдите самые длинные такие строки в корпусе и получите этот корпус.


Первая часть мне кажется, быть любезным к какой-то атаки с B-дерева шпонкой из строки после подстановки, что делает последовательность первых появлений последовательно.

HELLOWORLDTHISISIT 
1233454637819a9b98 

Немного оптимизации на основе зная, максимальное значение и длину строки, основываясь на каждой глубине дерева и остальные просто кодирования.


Другая часть была бы более привлекательной; как создать большой текст для поиска? какой-то интернет-паук, казалось бы, был бы идеальным подходом, поскольку у него был бы доступ к самому большому количеству текста, но как его разделить только на текст?

Вопрос в том, Любые идеи о том, как сделать это лучше?


Редактировать: шифр, который использовался, является безумно базовым 26-ти подписным шифром.

p.s. это скорее мысленный эксперимент, чем вероятный реальный проект для меня.

+0

Этот вопрос довольно запутанный. – mepcotterell 2008-12-07 18:04:15

+0

Какая часть (и)? Критерии соответствия? Метод поиска? Часть о получении корпуса? – BCS 2008-12-07 21:01:53

ответ

1

Есть 26! различные заместительные шифры. Это работает на немного более 88 бит выбора:

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

Энтропия английского текста является чем-то вроде 2 бита на символ, по крайней мере. Поэтому мне кажется, что вы не можете рассчитывать найти отрывки из более чем 45-50 символов, которые случайно эквивалентны при замещении.

Для большого корпуса, есть проект Гутенберга и Википедия, для начала. Вы можете загрузить на своем веб-сайте свалку всех XML-файлов английской Википедии.

0

Я думаю, вы просите немного о том, чтобы сгенерировать подстановку, которая также «согласована». Это проблема ИИ для алгоритма шифрования, чтобы выяснить, какой текст является когерентным. Кроме того, чем дольше ваш текст будет более сложным, тем лучше будет создать «согласованный» результат ... быстро приближаясь к точке, где вам нужен «ключ», пока текст, который вы шифруете. Таким образом, победив цель его шифрования.

+0

Примечание. Я НЕ ЯВНО НЕ хочу/генерировать/текст. Обе стороны должны быть/найдены/написаны кем-то другим человеком, кроме моего. Дело в том, чтобы найти текст, который расшифрует неправильный текст. – BCS 2008-12-08 00:17:17

Смежные вопросы