Загадка кругляшей
Расскажу вам эпичную историю, которая приключилась со мной в уходящем 2К21. Она о том, как я решал задачу. Осторожно! В статье не будет верного решения, смысл не в нём. Так что если у вас есть проблемы с завершением, лучше не влезайте в это болото.
Теперь, когда остались только смельчаки, продолжу. 😁
Началось с того, что я наткнулся на сообщение об интересной задаче, она была третьей по счёту из трёх, и находилась на прикольном и очень загадочном сайте. Он походил на web-квесты, коих уже было за моими плечами несколько штук. Меня немного отпугнула специфика задач — криптография, но незаметно для себя я втянулся.
Первые две головоломки были довольно простыми, к несложно спрятанному шифру, прилагались название алгоритма шифрования и ключ, если он для него требовался. Ответы на первые две задачи были «dragon» и «fly». Человек, решающий задачу, уверил, что у него есть выход на того кто знает ответ, и он точно подтвердит если тот верный.
Итого, всё что было известно на старте:
- Ответом на задачу должно быть слово английского языка
- Оно должно быть связано с ответами предыдущих задач
- В URL задачи было слово «square»
- На странице не было ничего, кроме изображения:
Неспешно погуглив я обнаружил, что есть метод шифрования «Square», разработанный, в уже далёком, 1997. Нашёл для него дешифратор и решил, что ответ практически у меня в кармане, ведь в предыдущих задачах, основная трудность была в том, чтобы понять, каким алгоритмом зашифрованы данные.
Но что взять за шифр? Шифром этого метода является последовательность цифр. Так начали рождаться гипотезы о том, что является данными.
«square», в переводе с английского так же означает площадь. Я предположил, что шифр это комбинация из площадей кругов с данными радиусами. Пошли проверки. Вычислял и комбинировал площади как только мог. С разной точностью самого значения, с разной точностью числа «Пи», переворачивал, менял местами — всё без толку. Дешифратор выдавал чушь.
Дополнительные трудности добавлял сам способ шифрования, в его начальных установках задан ключ — квадрат из букв, у него было значение по умолчанию, но где гарантия, что это значение совпадает с тем, которое было у автора задачи? Намёка на такой ключ нигде не было. Перебор результата не давал.
Даже нашёл исходник этого метода, написанный на java, в надежде на другой начальный ключ, который более общепринят. Повторил на нём весь набор вариантов, ответом была чушь.
А что если «square» указывает только на название метода, а данные нужно вычислять не по площадям а по длинам окружностей!? И всё пошло по второму разу: вычисления с разными точностями, всевозможные перестановки, прогонка вариантов по всем дешифраторам. На выходе был, уже привычный, рандомный мусор.
Не помню сколько было ещё гипотез, мелких и не очень. Пару раз даже находил что-то осмысленное, но после проверки ответ не принимали.
С лицом психа-детектива из кино, который заклеил всю квартиру листками с информацией о подозреваемых, я смотрел на кругляши. И вдруг, картина показалась мне похожей на орбиты планет. Получив данные о характеристиках траектории движения земли, увидел, что её перигелий равен «1470» а ведь это «4170», если перевернуть побайтно, что является радиусом большей окружности, к тому времени я уже знал эти числа наизусть.
«Вот оно!» — подумал я. Манипуляции с байтами были в духе тематики задач. Когда я проделал тоже самое со вторым радиусом, получилось «9223», погуглив это число нашёл, что оно является высотой полуоси астероида «apophis» который изредка подлетает к земле. На радостях я даже подумал, что это и есть верный ответ. Но его снова забраковали.
Продолжил поиски и заметил, что в википедии оба этих значения приведены с ещё одной цифрой. Тогда я взял полные значения из вики, составил из них последовательность чисел и скормил дешифратору. Радости моей не было предела, впервые он выдал осмысленный текст и это было слово «GND», что является официальным сокращением «ground» — земля, на электросхемах и не только. Быстро загуглив, я нашёл модель самолёта dragonfly light gound attaсk и испытал ментальный-оргазм, который бывает когда решаешь долгую и трудную задачу.
Тут бы и сказочке конец, но ответ был «решение неверное». В этом месте я впал в ступор. На мои вопросы как это может быть неверным, отвечали: «просто совпадение».
После такого удара судьбы я нашёл автора задачи. Из переписки с ним, я понял, что он сам в шоке, но это совпадение. Какова вероятность такого совпадения? Проще выиграть в лотерею. Мы ещё немного пообщались, я поискал ответ в ещё каких-то дебрях, он констатировал, что у меня «серьёзные проблемы с переусложнением» и дал наводку на верное решение.
Ни о чём не жалею. Кругляши навсегда будут в моём сердце. Решая всё это, ощутимо обогатился знанием по криптографии. Вы вот знали, что на озоне можно купить такие клёвые дисковые шифраторы?