| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Частотный анализ текста |
| Автор: Verus 13.9.2008, 10:19 |
| Помогите пожалуйста с алгоритмом. Суть такая: необходимо произвести частотный анализ закодированного текста и некоторого эталонного текста на языке источника. По итогам сопоставления результатов частотного анализа для закодированного текста и эталона проводится первичное декодирование. Искал в нете, может и плохо искал, но ничего толкового по этому вопросу не нашел :( |
| Автор: ksili 13.9.2008, 11:01 |
| в общем так. считаешь частоты в эталонном тексте. Если эталона нет, то в принципе можешь частоты найти в инете. Если их не найдешь, то сразу говорю, что в русском языке самые распространённые буквы - Л, Т, Р, Н, С, В, И, А, Е, О. Затем считаешь частоты закодированныго текста. Выбираешь столько же самых частых букв. Затем пытаешься расшифровать, подставляя некую замену самых частых букв. Если ничего внятного не увидел, подставляй по-другому. после того как определишься с самыми частыми, менее частые буквы легко определятся по остаточному принципу |
| Автор: Verus 13.9.2008, 11:25 |
| Примерно так и делал. Ничего путного из этого не выходит. |
| Автор: ksili 13.9.2008, 11:29 |
| По-другому никак и не получится. Надо просто потерпеливее и повнимательней быть. Сдлай программку, которая бы тебе помогала в переборе вариантов подстановки. Быстрее работа пойдёт |
| Автор: Verus 13.9.2008, 11:48 | ||
| Ну я и написал программу на С++. Делает она следующее: находит кол-во вхождений каждого символа зашифрованного текста и также с эталонным текстом и наиболее частые вхождения из эталонного заменяю на наиболее частые в зашифрованном. Вот кусок кода: [code=nocolor]
|
| Автор: ksili 13.9.2008, 11:52 |
| У тебя 10 символов одного алфавита надо заменить на 10 символов другого. как именно прога выбирает какой на какой менять? Алгоритм перебора вариантов сделан? Самый частый в эталоне не обязательно будет самым частым в зашифрованном тексте |
| Автор: Verus 13.9.2008, 12:19 |
| Самый частый заменяется на самый частый в эталонном тексте. То что это не всегда так я уже понял =) поэтому и интересует как это исправить |
| Автор: v2v 13.9.2008, 12:23 |
| кроме частот отдельных букв (самые популярные O ~ 9%, E ~ 7% самые редкие - Ф - в 50 раз реже буквы О) можно ещё считать частоты биграмм - пар букв : в русском языке самые популярные биграммы: СТ , ИЕ ... не помню... вобщем возьмите любой русские текст и нпишите утилитку, которая посчитайте найболее популярные биграммы, найменее популярны и запретные - те которые не встречаются не разу (сойдёт текст на 10К символов). |
| Автор: ksili 15.9.2008, 16:57 | ||
алгоритм шифрования уже известен - это шифр замены
сильно/не сильно - это как повезет. Я вот наоборот думаю, что сильно они не будут отличаться. Хотя отличаться конечно будут |
| Автор: aleksh 15.9.2008, 17:19 |
под алгоритмом подразумевалось -- по какому принципу замена осуществляется |
| Автор: v2v 15.9.2008, 20:03 |
это ключ, а не алгоритм. я затем и предложил такой метод , потому что статистику найти не удалось. |
| Автор: aleksh 15.9.2008, 20:12 | ||
верно, виноват
странно, надо будет поискать... но все равно -- текст надо брать большой |
| Автор: spin2 16.9.2008, 17:39 |
| А закодированный текст большой? Вам нужно именно автоматическую обработку сделать или это неважно? |