24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Сап, любители криптоанализа и мамкины шифровальщики. Есть одна задачка. Коротко о главном: Дается текст, в котором только русские буквы (Е=Ё=е=ё) заменены на символы по рандомно сгенериной таблице. Суть задания - проанализировать зашифрованный текст и составить таблицу встречаемости символов (всего 32 используемых для кодирования символа, соответственно). Затем проанализировать какое-то русское произведение (или несколько), составить такую же таблицу частотности для русских букв, ну и сопоставить. И все вроде бы хорошо, вот только такая таблица для русских букв будет не 100% совпадать с таковой в исходном тексте. Поэтому приходится делать 4-5 свапов букв в этой таблице вручную. А в идеале программа должна расшифровывать текст без пользователя. Для улучшения алгоритма советуют использовать словари частотности 1,2,3 буквенных слов (или частей слов) в русском языке. Но я вот нихуя не понимаю как её можно прицепить к этой программе. Поясните на пальцах, как эти словари использовать в данной программе? 1 приклейтед - таблицы 2 приклейтед - дешифровка, в которой я в качестве текста для анализа закинул сам зашифрованный текст 3 приклейтед - дешифровка, в которой в качестве текста для анализа 3 произведения этого автора Булгакова
Как использовать словари 1,2,3 буквенных слов для улучшения алгоритма?
>>88635592 > шифр цезаря Зачем ты это трогаешь вообще. Ну а так есть идея получше - после частотного анализа текст раскрывается и слова прогоняются по словарю, оказывается что от слов в словаре проверяемые отличаются на пару букв, их свапаешь на нужные.
Да тот же самфй подход. Генеришь или ручками пишешь таблицу этих сочетайний букв. Потом прогоняешь на поиск по совпадениям в большой книге. Потом исходный текст. Тот же самый принцип-то.
>>88636947 Это не шифр цезаря, чем читаешь? Зачем трогаю? Задание такое, что-то вроде лабы. Словарь содержит 1,2,3 буквенные куски слов. То есть это не слова, отделенные пробелами/знаками препинания, поэтому и не догоняю как его юзать.
>>88637490 >По какому принципу её генерить-то? Разбивая n буквенные слова с конца и начала по 2/3 знака? Все сочетания со всеми же сгенерируй. От аа до яя
>>88637824 Сочетания букв. А прогнав через книгу, получишь их частнотность. А потом сможем анализируя по два символа ичходного текста его расшифровывать.
Твоя задача сводится с сопоставлению шифрованного алфавита к алфавиту кириллическому. Проводишь частотный анализ шифрованного текста. Сопоставляешь частоты букв шифра с частотами букв анализа многих слов или из гугола. Далее надо оценить качество дешифровки и подогнать буквенные частоты. Скорее всего на этом этапе тебе и понадобится частоты слов.
>>88638187 А, ну тогда подсчитывай по частоте каждые два/три/четыре символа исходного текста. И составляй таблицу частотности. Так же как с буквами отдельными. Просто сочетания тебе нужно будет запоминать в массиве, например. И каждые две/три/четыре буквы сравнивать с прошлым массивом. Если встречаются в первый раз, то заносить в массив на первую свободную позицию.
>>88638454 >Все до последнего предложения я уже сделал. Только частотная таблица у каждого произведения будет чуточку отличаться от идеальной. Ну что тут поделаешь. Издержки простоты метода. Стабильно-идеальной расшифровки им не достичь.
>>88638607 >Запоминать все уникальные 2,3,4 буквенные сочетания в таком тексте - это оче невыгодно по памяти. Их вроде бы хранить не нужно. Иначе никак. Как ты их сравнивать будешь, не храня?
>>88638558 Ну вот моя задача и состоит в том, чтобы с помощью словарей, которые даны, улучшить этот метод. А я нихуя не догоняю как эти словари впихнуть inb4 аутист 2 дня не спал
>>88638643 То есть мне все равно придется реализовывать это посимвольное расчленение текста на 2,3,4 буквенные слова, минуя все знаки препинания и прочее?
>>88638796 ну тогда придется прогонять расшифрованный текст на содержание этих сочетаний (ну или самых их часто встречающихся) и выставлять какую-то оценку каждому частотному набору. Самая лучшая оценка - лучший частотный набор для конкретного произведения
>>88638836 нет возьми расшифрованный при помощи текущей частотной таблицы текст и проверь его на частоту вхождений в него из словаря сочетаний, выставляем оценку(возьми допустим Сумма(частота в словаре * частота в тексте)) поменяй соответствие алфавита и повтори оценку. соответствие с лучшей оценкой - ключ к шифру
>>88654568 Ты жопой читаешь? Я уже все давно проанализировал. Но частотный анализ даёт ХУЕВУЮ расшифровку по определению. Мне нужно проапгрейдить алгоритм с использованием словарей частотности 2,3,4нарных фраз русского языка. Чтобы текст без ручного вмешательства расшифровывался верно.
>>88654913 Ну ладно-ладно, не кипятись. Ты прав, возьми пирожок.
Пиздец конечн, нахуй кириллицу, делать нечего блядь.
1. Замути какую-нибудь метрику для каждого символа - насколько этот символ вероятно зашифрован каждой буквой. Изначально просто по частоте одиночных букв.
2. Потом мути все пермутации от наиболее вероятных к наименее вероятным и тести к самым частым диграммам-триграммам-словам-вотевер.
2.1 Тест состоит из подстановки полной текста или частичной - только пары особо важных на данном этапе буков(второй вариант требует дополнительной мутки). Для каждой подстановки прогон получившегося текста по словарю - когда ТЕПЛО - у тебя резкий скачок в частоте нормальных буков будет.
Криптоанон, подкинь чего-нибудь годного почитать по теме Cicada 3312 или как их там. В рунете все написано в духе "вот такая головоломка была в 2013 вот такая в 2014, а вот такая в 2015", а зарубежные издания показывают историю с точки зрения участников разгадывания. Существует ли какой-то третий формат текстов об этом?
>>88656549 Да хули ты не понял-то, на пальцах сук объяснил. Первое понял?
После первого тупо по уменьшению вероятности подставляй куски текста и смотри, есть ли там адекватные слова русские по словарям. Нет? Проверяй следующую подстановку, чуть менее "перспективную".
Ладн, хуй знает, без наглядности объяснять хуево.
Ну ты весельчак тоже на си эту ебалу писать. Зачем? Все-равно, что блядь в муху из гранатомета стрелять.
>>88657112 Да проспись блядь. Я тред с начала читаю и ОП уже раз 10 сказал, что у него в словаре только определенные популярные морфемы, а не целые слова.
>>88657315 Перестань в глаза ебаться - >>88655402 > подстановки полной текста или частичной - только пары особо важных на данном этапе буков(второй вариант требует дополнительной мутки).
>>88657540 Я все еще нихуя не понял. Допустим, беру 300 символов (как на 3 приклейтеде ОПпика) исходного текста, забиваю их в строчный массив, дальше с ними что делать?
2.1 Получается текст какой-то, сравниваешь, как он выглядит относительно словаря просто находя частоту слов из словаря. Если какое-то слово очень близко - увеличиваешь уверенность в подстановке букв этого куска устанавливая значения в матрице из пункта 1.
После изменения матрицы из 1 у тебя новый вариант появится с максимальной суммой для пунта 2. Продолжаешь выполнять пункт 2 пока не достигнешь корреляции со словарем. Максимальное количество подстановок - 33!. Если текст не ебанутый и ты начал норм с матрицей из 1 и если ты хороший алгоритм подставишь по корректировке матрицы в соответствии с каждой новой попыткой подстановки и результатом, то скорее всего быстро к ответу придешь.
Все, пиздец, ебал я текстом описывать. Сори, по-русски тож не 10 из 10 описываю.
>>88657657 Со строчным массивом нихуя не делать. Тебе нужно понять как захуярить модель подстановки, как сделать ЭВРИСТИЧЕСКУЮ ОЦЕНКУ охуенности конкретной подстановки. И как проследовать по пермутациям алфавита, чтовы твоя ЭВРИСТИЧЕСКАЯ ОЦЕНКА каждой следующей подстановки была максималькой.
И вот для каждой такой подстановки ты уже переводишь свой строчный массив этой самой подстановкой, анализируешь по отношению к словарю и adjust'ишь свою модель вероятности символов.
>>88659423 Я может совсем обдвачевался, но все еще нихуя не понял. Я после первичного анализа получаю отсортированный (по частоте) массив с русским алфавитом алфавитом. Сопоставляю его с таким же массивом символов, используемых для кодировки. Мне нужно грейдить первый массив, меняя там буквы местами, на основе каких-то исследований текста/словарей. Но только это все в автоматическом режиме должно быть. Как это прикручивать-то, какие еще матрицы и суммы?
Дается текст, в котором только русские буквы (Е=Ё=е=ё) заменены на символы по рандомно сгенериной таблице.
Суть задания - проанализировать зашифрованный текст и составить таблицу встречаемости символов (всего 32 используемых для кодирования символа, соответственно). Затем проанализировать какое-то русское произведение (или несколько), составить такую же таблицу частотности для русских букв, ну и сопоставить. И все вроде бы хорошо, вот только такая таблица для русских букв будет не 100% совпадать с таковой в исходном тексте. Поэтому приходится делать 4-5 свапов букв в этой таблице вручную. А в идеале программа должна расшифровывать текст без пользователя.
Для улучшения алгоритма советуют использовать словари частотности 1,2,3 буквенных слов (или частей слов) в русском языке. Но я вот нихуя не понимаю как её можно прицепить к этой программе. Поясните на пальцах, как эти словари использовать в данной программе?
1 приклейтед - таблицы
2 приклейтед - дешифровка, в которой я в качестве текста для анализа закинул сам зашифрованный текст
3 приклейтед - дешифровка, в которой в качестве текста для анализа 3 произведения этого автора Булгакова
Как использовать словари 1,2,3 буквенных слов для улучшения алгоритма?