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