← Все комнаты Путь «Защита (код)» →
СреднийЗащита (код) Код Осенний CTF

Взломщик Цезаря

Прогресс комнаты 0 / 4
Задание 1Введение

Цель: Автоматизировать криптоанализ: писать программу-взломщик.

Напишите функцию caesar_crack(ct). На вход — текст, зашифрованный шифром Цезаря с неизвестным сдвигом (латиница, регистр сохраняется, остальные символы не меняются). Известно, что исходный текст содержит подстроку CTF{. Верните расшифрованный текст.

Задание 2Теория и инструменты

Чтобы взломать Цезаря программно, перебираем все 26 сдвигов и проверяем критерий успеха. Здесь критерий простой: в расшифровке есть CTF{.

Важно правильно сдвигать строчные и заглавные буквы отдельно и не трогать остальные символы.

Инструменты

  • Python: ord, chr, %
  • JS: charCodeAt, String.fromCharCode, replace с функцией

Больше теории — в разделе «Обучение: Защита (код)».

Задание 3Практика: напишите код

Примеры

Пример 1
caesar_crack("OFR{daf_ue_zaf_odkbfa}")
→ "CTF{rot_is_not_crypto}"
Пример 2
caesar_crack("Ebiil ZQC{pefcq_exmmbkp} tloia")
→ "Hello CTF{shift_happens} world"

Ещё 4 скрытых тестов.

solution
Ctrl+Enter — отправить Войдите, чтобы отправить

Пошаговый план — открывайте по одному шагу

  1. 1
    Напишите функцию сдвига одной буквы назад на k с учётом регистра.

Подсказки — каждая до решения стоит −25 очков

Задание 4Как защититься

Это задача для тренировки автоматизации. Вывод тот же: классические шифры не защищают.

Разборы участников

Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.