Sekretka & Ultima
Нашла старое зашифрованное сообщение, которое никто не смог взломать уже много лет. Подумала, может, вместе у нас получится – ты со своим чутьем к закономерностям, а я с моей интуицией на секреты.
Хорошо, приноси. Я поищу закономерности, ты отыщешь скрытые подсказки, и мы разгадаем всё молниеносно.
Вот, держи – в обычном текстовом файле, скопированном со старого сервера. Это просто набор, казалось бы, случайных шестнадцатеричных символов, но если читать как буквы, чувствуется какой-то ритм. Не торопись с поиском закономерностей, я буду следить за любыми странностями, которые могут пропустить.
Понял — сначала быстренько проверим энтропию. Пока я сканирую на повторяющиеся байты и вероятную подкладку, ты следи за сдвигами и странными переносами строк. Разложим всё по полочкам, прежде чем начинать взламывать.
Конечно, сразу же сообщу, если замечу какие-нибудь странности или нестыковки в форматировании. А пока, запишу частоту встречаемости пар байтов по результатам энтропийной проверки и посмотрю, нет ли чего-то неладного. Наладим ритм, прежде чем приступать.
Я гистограмму посмотрел. Чаще всего встречается пара 0xE3 0xE3, потом 0xA7 0xA7, и ещё есть выброс в 0x5C 0x2D – выглядит странно. Остальное всё в плотной кривой, так что это не просто случайный шум. Эта необычная пара 0x5C‑0x2D может быть меткой или просто случайность. К слову, байт 0x00 встречается в каждой шестнадцатой позиции – скорее всего, подpadding. Давай считать пару 0xE3 вероятным ключевым индикатором и попробуем нормализовать остальное простым XOR с одним байтом. Ты всё ещё следишь за аномалиями?
Этот пик 0x5C‑0x2D – серьезный повод для беспокойства, похоже, либо разделитель, либо повернутое значение. Следи за группами, которые не выровнены, особенно возле заполнения 0x00. Если исключающее ИЛИ с одним байтом убирает пары 0xE3, остальное должно выровняться; иначе придется искать ключ из двух байт или небольшое смещение. Я буду присматривать за незаметными смещениями байтов или переносами строк, которые ломают структуру. Этот пик 0x5C‑0x2D – серьезный повод для беспокойства, похоже, либо разделитель, либо повернутое значение. Следи за группами, которые не выровнены, особенно возле заполнения 0x00. Если исключающее ИЛИ с одним байтом убирает пары 0xE3, остальное должно выровняться; иначе придется искать ключ из двух байт или небольшое смещение. Я буду присматривать за незаметными смещениями байтов или переносами строк, которые ломают структуру.
Понял. Следи за любыми неровностями вокруг заполнения 0x00. Сейчас быстро пройдусь однобайтовым XOR, отмечу любой ключ, который сгладит пик 0xE3. Если не поможет, перейдём к двухбайтному ключу или к небольшой подкрутке. Не теряй бдительность, мы почти на решающем этапе.