Другие языки программирования и технологии

Нужно дешифровать текст

Вот отрывок текста:

ФЕВЭЕИ ИНТФЙОЬЙУ. ЩНТЙМ ОЭЮНЩЙ УТНФНОЕ




УЙ УЛЗКЙМ КОЕЩН ЯТНЪЕЛИЙУЕН НЛЬД ЯНТУЭЗ Е УФНЛЬН Л ЬНФ ЯЙЛИНЪОЗЗ УНШД;
ЙОЙ ЕИЕ ЛИЦЖЕЬ ЙСЫЗЛОНОЕНФ ХНИЕ ЛЙБЕОНОЕЗ, ЕИЕ ЙЯТЭУЪЭОЕНФ Е ЙЬУНЬЙФ ОЭ
КТЕЬЕКЕ. ОЙ ЙСРКОЙУНООЙ БЕЬЭЬНИЗФ ЪНИЭ ОНЬ ЪЙ ОТЭУЛЬУНООЙМ ХНИЕ Е ЪЙ
ЖЦТОЭИДОРВ ОЭЯЭЪЙК, Е ЯЙЬЙФЦ ЙОЕ ОН БЕЬЭЧЬ ЯТНЪЕЛИЙУЕМ. Э ЖЭИД, БЬЙ ПЬЙ ЬЭК,
ЙЛЙСНООЙ Ц ОЭЛ. ОЭЮЭ ЯЦСИЕКЭ ЬЭК НШН ФЙИЙЪЭ Е ЯТЙЛЬЙЪЦЮОЭ, БЬЙ ОН ЯЙОЕФЭНЬ
СЭЛОЕ, НЛИЕ У КЙОХН НН ОЭ ОЭВЙЪЕЬ ОТЭУЙЦБНОЕЗ. ЙОЭ ОН ЦЩЭЪРУЭНЬ ЮЦЬКЕ, ОН
БЦУЛЬУЦНЬ ЕТЙОЕЕ; ЙОЭ ЯТЙЛЬЙ ЪЦТОЙ УЙЛЯЕЬЭОЭ. ЙОЭ НШН ОН АОЭНЬ, БЬЙ У
ЯЙТЗЪЙБОЙФ ЙСШНЛЬУН Е У ЯЙТЗЪЙБОЙМ КОЕЩН ЗУОЭЗ СТЭОД ОН ФЙЖНЬ ЕФНЬД ФНЛЬЭ;
БЬЙ ЛЙУТНФНООЭЗ ЙСТЭАЙУЭООЙЛЬД ЕАЙСТНИЭ ЙТЦЪЕН СЙИНН ЙЛЬТЙН, ЯЙБЬЕ ОНУЕЪЕФЙН
Е ЬНФ ОН ФНОНН ЛФНТЬНИДОЙН, КЙЬЙТЙН, ЯЙЪ ЙЪНЖЪЙЧ ИНЛЬЕ, ОЭОЙЛЕЬ ОНЙЬТЭАЕФРМ
Е УНТОРМ ЦЪЭТ. ОЭЮЭ ЯЦСИЕКЭ ЯЙВЙЖЭ ОЭ ЯТЙУЕОХЕЭИЭ, КЙЬЙТРМ, ЯЙЪЛИЦЮЭУ
ТЭАЩЙУЙТ ЪУЦВ ЪЕЯИЙФЭЬЙУ, ЯТЕОЭЪИНЖЭШЕВ К УТЭЖЪНСОРФ ЪУЙТЭФ, ЙЛЬЭИЛЗ СР
ЦУНТНО, БЬЙ КЭЖЪРМ ЕА ОЕВ ЙСФЭОРУЭНЬ ЛУЙН ЯТЭУЕЬНИДЛЬУЙ У ЯЙИДАЦ УАЭЕФОЙМ
ОНЖОНМЮНМ ЪТЦЖСР.
ПЬЭ КОЕЩЭ ЕЛЯРЬЭИЭ ОЭ ЛНСН НШН ОНЪЭУОЙ ОНЛБЭЛЬОЦЧ ЪЙУНТБЕУЙЛЬД
ОНКЙЬЙТРВ БЕЬЭЬНИНМ Е ЪЭЖН ЖЦТОЭИЙУ К СЦКУЭИДОЙФЦ АОЭБНОЕЧ ЛИЙУ. ЕОРН ЦЖЭЛОЙ
ЙСЕЪНИЕЛД, Е ОН ЮЦЬЗ, БЬЙ ЕФ ЛЬЭУЗЬ У ЯТЕФНТ ЬЭКЙЩЙ СНАОТЭУЛЬУНООЙЩЙ
БНИЙУНКЭ, КЭК ЩНТЙМ ОЭЮНЩЙ УТНФНОЕ; ЪТЦЩЕН ЖН ЙБНОД ЬЙОКЙ АЭФНБЭИЕ, БЬЙ
ЛЙБЕОЕЬНИД ОЭТЕЛЙУЭИ ЛУЙМ ЯЙТЬТНЬ Е ЯЙТЬТНЬР ЛУЙЕВ АОЭКЙФРВ... ЛЬЭТЭЗ Е
ЖЭИКЭЗ ЮЦЬКЭ! ОЙ, УЕЪОЙ, ТЦЛД ЬЭК ЦЖ ЛЙЬУЙТНОЭ, БЬЙ УЛН У ОНМ ЙСОЙУИЗНЬЛЗ,
КТЙФН ЯЙЪЙСОРВ ОНИНЯЙЛЬНМ. ЛЭФЭЗ УЙИЮНСОЭЗ ЕА УЙИЮНСОРВ ЛКЭАЙК Ц ОЭЛ НЪУЭ ИЕ
ЕАСНЩОНЬ ЦЯТНКЭ У ЯЙКЦЮНОЕЕ ОЭ ЙЛКЙТСИНОЕН ИЕБОЙЛЬЕ!
ЩНТЙМ ОЭЮНЩЙ УТНФНОЕ, ФЕИЙЛЬЕУРН ЩЙЛЦЪЭТЕ ФЙЕ, ЬЙБОЙ, ЯЙТЬТНЬ, ОЙ ОН
ЙЪОЙЩЙ БНИЙУНКЭ: ПЬЙ ЯЙТЬТНЬ, ЛЙЛЬЭУИНООРМ ЕА ЯЙТЙКЙУ УЛНЩЙ ОЭЮНЩЙ
ЯЙКЙИНОЕЗ, У ЯЙИОЙФ ЕВ ТЭАУЕЬЕЕ. УР ФОН ЙЯЗЬД ЛКЭЖНЬН, БЬЙ БНИЙУНК ОН ФЙЖНЬ
СРЬД ЬЭК ЪЦТНО, Э З УЭФ ЛКЭЖЦ, БЬЙ НЖНИЕ УР УНТЕИЕ УЙАФЙЖОЙЛЬЕ ЛЦШНЛЬУЙУЭОЕЗ
УЛНВ ЬТЭЩЕБНЛКЕВ Е ТЙФЭОЬЕБНЛКЕВ АИЙЪННУ, ЙЬБНЩЙ ЖН УР ОН УНТЦНЬН У
ЪНМЛЬУЕЬНИДОЙЛЬД ЯНБЙТЕОЭ? НЛИЕ УР ИЧСЙУЭИЕЛД УРФРЛИЭФЕ ЩЙТЭАЪЙ СЙИНН
ЦЖЭЛОРФЕ Е ЦТЙЪИЕУРФЕ, ЙЬБНЩЙ ЖН ПЬЙЬ ВЭТЭКЬНТ, ЪЭЖН КЭК УРФРЛНИ, ОН ОЭВЙЪЕЬ
Ц УЭЛ ЯЙШЭЪР? ЦЖ ОН ЙЬЬЙЩЙ ИЕ, БЬЙ У ОНФ СЙИДЮН ЯТЭУЪР, ОНЖНИЕ СР УР ЬЙЩЙ
ЖНИЭИЕ?..




Заменены токо русские буквы и такие же русские буквы

Я пытался расшифровать через https://planetcalc.ru/733/
Но увы всё безуспешно часа 4 пытаюсь расшифровать
Может кто-то знает больше в этой сфере и сможет расшифровать текст?
Цезарь, смена кодировки (КОИ, 1251, ISO и т.п.) не проходят.

Если здесь контекстно-независимая побуквенная замена, попробуйте частотным анализом. Есть онлайн-калькуляторы, правда, они не расшифровывают, а дают только частоты. А дальше сравниваете их с теоретическими частотами и восстанавливаете соответствие.

Например, в вашем тексте:
 Буква	Частота	Теория 
А 1.14 7.5
Б 2.05 1.70
В 1.02 4.6
Д 1.25 3
ЕЁ 7.28 8.80
Ж 1.65 0.8
З 1.48 1.9
И 3.92 7.5
Й 11.43 1.2
К 2.73 3.40
Л 4.44 4.2
М 1.14 3.2
Н 10.75 6.4
О 8.08 10.9
П 0.23 2.80
Р 1.99 4.8
С 1.71 5.4
Т 4.44 6.4
У 5.52 2.6
Ф 2.84 0.2
Х 0.23 1.10
Ц 2.39 0.5
Ч 0.28 1.5
Ш 0.46 0.70
Щ 1.42 0.4
Ы 0.06 1.9
ЬЪ 9.27 1.70
Э 7.57 0.4
Ю 0.91 0.70
Я 2.33 2.20
Получено тут
 http://hostciti.net/calc/statistics/analysis-of-the-text.html 
Например, в теории наиболее две часто встречающиеся буквы - это О и Е. А у вас на эту роль подходят кандидаты Й и Н. Вот уже два варианта замены:
Й -> О, Н -> Е
Й -> Е, Н -> О
На третьем месте в теории - буква А. А у вас - О.
(ЬЪ эта штука слепила вместе, но их надо посчитать раздельно)

И так вот комбинируете, пробуете переставлять местами соседние по частотам буквы, если вместо слов получается очередной шифр.

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

Но если у вас контекстно-зависимая замена (буква меняется не на одну и ту же букву, а в зависимости от её положения в тексте), то частоты не прокатят.
Дмитрий Кошурин
Дмитрий Кошурин
87 571
Лучший ответ
Дмитрий Кошурин Пример программы:
 with open("freq.txt", "r") as ff:
freq = {l: [float(r), float(t)] for line in ff for l, r, t in [line.split()]}

txtfreq = sorted([l for l in freq], key = lambda l: freq[l][0])
thefreq = sorted([l for l in freq], key = lambda l: freq[l][1])

tran = {txtfreq[i]: thefreq[i] for i in range(len(txtfreq))}
print(tran)

with open("input.txt", "r") as ft:
for line in ft:
print(*(tran[c] if c in tran else c for c in line), sep = '')
Здесь строго по соответствию места частот в отсортированном списке. В файл input.txt помещаете текст, в файл freq.txt - частоты в том формате, который я привёл в ответе (только надо разделить ЬЪ и убрать Ё, которой в тексте нет). Выдаёт бессмыслицу, т.е. надо дальше играться с выстраиванием соответствия. Например, А и И поменять и т.д.
заголовок такой : МИХАИЛ ЛЕРМОНТОВ. ГЕРОЙ НАШЕГО ВРЕМЕНИ

и далее что-то вроде
КРОМЕ ПОДОБНЫХ НЕЛЕПОСТЕЙ. САМАЯ ВОЛШЕБНАЯ ИЗ ВОЛШЕБНЫХ СКАЗОК У НАС ЕДВА ЛИ ИЗБЕГНЕТ УПРЕКА В ПОКУШЕНИИ НА ОСКОРБЛЕНИЕ ЛИЧНОСТИ! ГЕРОЙ НАШЕГО ВРЕМЕНИ, МИЛОСТИВЫЕ ГОСУДАРИ МОИ, ТОЧНО, ПОРТРЕТ, НО НЕ ОДНОГО ЧЕЛОВЕКА: ЭТО ПОРТРЕТ, СОСТАВЛЕННЫЙ ИЗ ПОРОКОВ ВСЕГО НАШЕГО ПОКОЛЕНИЯ, В ПОЛНОМ ИХ РАЗВИТИИ. ВЫ МНЕ ОПЯТЬ СКАЖЕТЕ, ЧТО ЧЕЛОВЕК НЕ МОЖЕТ БЫТЬ ТАК ДУРЕН, А Я ВАМ СКАЖУ, ЧТО ЕЖЕЛИ ВЫ ВЕРИЛИ ВОЗМОЖНОСТИ СУЩЕСТВОВАНИЯ ВСЕХ ТРАГИЧЕСКИХ И РОМАНТИЧЕСКИХ ЗЛОДЕЕВ, ОТЧЕГО ЖЕ ВЫ НЕ ВЕРУЕТЕ В ДЕЙСТВИТЕЛЬНОСТЬ ПЕЧОРИНА? ЕСЛИ ВЫ ЛЮБОВАЛИСЬ ВЫМЫСЛАМИ ГОРАЗДО БОЛЕЕ