Как определить какой вид шифрования был использован

Занимаюсь CTF, и мне надо расшифровать вот это:

Guvf_vf_prnfre_pvcure

Какой вид шифрования использовали и как вы его определили? Существует ли какая-нибудь программа для определения вида шифрования?


Ответы (1 шт):

Автор решения: Pak Uula

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

Для проверки я спросил у гугла онлайн декодировщики для шифров подстановки. Взял первый в выдаче, понял, что он даёт какую-то туфту. Взял второй, посмотрел на его результат

0   -1.187  Unit_it_seated_signed
1   -1.317  Knit_it_seated_signed
2   -1.342  What_at_melted_mashed
3   -1.378  Skin_in_leaned_licked
4   -1.394  This_is_censer_cipher
5   -1.411  Case_se_intend_island
6   -1.455  Whit_it_seated_sighed
7   -1.490  Dior_or_secret_soviet
8   -1.507  What_at_morton_machon
9   -1.524  This_is_balsam_bigham
10  -1.529  Eras_as_poison_patron
11  -1.535  This_is_measel_michel
12  -1.594  Univ_iv_served_signed
13  -1.630  Lies_es_robson_region
14  -1.709  Utin_in_leaned_listed
15  -1.710  Phil_il_sealed_sighed

и выбрал вариант №4: This_is_censer_cipher - наверняка в задачке CTF должно присутствовать слово cipher. Да и в целом это наиболее осмысленное предложение.

Выглядит разумно, хотя расшифрованный текст меня смущает. По идее должно быть caesar а не censer, но замена r->a, n->e приведёт к результату This_is_caesar_ciphar, что тоже выглядит немного странно.

УПД. Как правильно отметил в комментарии @Fat-Zer, шифр оказался самым простым - сдвиговым. Не подумал, несмотря на то, что знаки _ очень даже на него намекали: пробел ASCII код 32, подчеркивание ASCII код 45, разница 13. Итого сдвиговый шифр на 13.

Открытый текст This is ceaser cipher с ошибкой в слове цезарь. Должно быть caesar.

→ Ссылка