![]() |
|
|
![]()
|
|
| Verus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 5.8.2008 Репутация: нет Всего: нет |
Помогите пожалуйста с алгоритмом.
Суть такая: необходимо произвести частотный анализ закодированного текста и некоторого эталонного текста на языке источника. По итогам сопоставления результатов частотного анализа для закодированного текста и эталона проводится первичное декодирование. Искал в нете, может и плохо искал, но ничего толкового по этому вопросу не нашел :( |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
в общем так. считаешь частоты в эталонном тексте. Если эталона нет, то в принципе можешь частоты найти в инете. Если их не найдешь, то сразу говорю, что в русском языке самые распространённые буквы - Л, Т, Р, Н, С, В, И, А, Е, О.
Затем считаешь частоты закодированныго текста. Выбираешь столько же самых частых букв. Затем пытаешься расшифровать, подставляя некую замену самых частых букв. Если ничего внятного не увидел, подставляй по-другому. после того как определишься с самыми частыми, менее частые буквы легко определятся по остаточному принципу -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Verus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 5.8.2008 Репутация: нет Всего: нет |
Примерно так и делал. Ничего путного из этого не выходит.
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
По-другому никак и не получится.
Надо просто потерпеливее и повнимательней быть. Сдлай программку, которая бы тебе помогала в переборе вариантов подстановки. Быстрее работа пойдёт -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Verus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 5.8.2008 Репутация: нет Всего: нет |
Ну я и написал программу на С++. Делает она следующее: находит кол-во вхождений каждого символа зашифрованного текста и также с эталонным текстом и наиболее частые вхождения из эталонного заменяю на наиболее частые в зашифрованном. Вот кусок кода:
[code=nocolor]
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
У тебя 10 символов одного алфавита надо заменить на 10 символов другого. как именно прога выбирает какой на какой менять? Алгоритм перебора вариантов сделан? Самый частый в эталоне не обязательно будет самым частым в зашифрованном тексте
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Verus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 5.8.2008 Репутация: нет Всего: нет |
Самый частый заменяется на самый частый в эталонном тексте. То что это не всегда так я уже понял =) поэтому и интересует как это исправить
|
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
кроме частот отдельных букв (самые популярные O ~ 9%, E ~ 7% самые редкие - Ф - в 50 раз реже буквы О) можно ещё считать частоты биграмм - пар букв : в русском языке самые популярные биграммы: СТ , ИЕ ... не помню...
вобщем возьмите любой русские текст и нпишите утилитку, которая посчитайте найболее популярные биграммы, найменее популярны и запретные - те которые не встречаются не разу (сойдёт текст на 10К символов). |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: нет Всего: 13 |
это даже лучше к тому же, надо взять буквы эталлоного текста, и подстовлять их на возможные места в защифрованном, найти их место (ориентировочно) и вычислить алгоритм шифрования, потом декодировать по вычисленному алгоритму весь текст, повторять пока не получится читаемый текст не самый удачный путь, проще поискать статистику на спецелизированных сайтах, ибо статистика то во всех текстах выравнивается, но только при большом количестве текста. пример -- если взять две страницы учебника сопромата и столько же любовного романа -- статистика будет сильно различатся, но если взять по 10-20 книжек из этих областей -- статистика выравняется |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
алгоритм шифрования уже известен - это шифр замены
сильно/не сильно - это как повезет. Я вот наоборот думаю, что сильно они не будут отличаться. Хотя отличаться конечно будут -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: нет Всего: 13 |
||||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
это ключ, а не алгоритм. я затем и предложил такой метод , потому что статистику найти не удалось. |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: нет Всего: 13 |
||||
|
||||
| spin2 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 15.12.2005 Где: Москва-Одесса Репутация: нет Всего: 31 |
А закодированный текст большой? Вам нужно именно автоматическую обработку сделать или это неважно?
-------------------- |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |