На Дваче в раздел /pr/ выкатили динамический PGP-квест. Сеньоры ломают зубы об отрицательный UNIX-timestamp и XOR
Пока все спорят об импортозамещении и засилье ИИ, на Дваче в разделе /pr/ (программирование) начался суровый технический движ. Какой-то аноним выкатил тред от имени тайной организации ОКО (THE EYE) под валидным PGP-ключом 00D87537F90908AF.
Но в отличие от старой Cicada 3301, где народ просто искал статичные подсказки по картинкам, здесь автор зашел с козырей бэкенда и олимпиадной математики. Он создал шифр, который защищен от коллективного разума и сливов ответов.
Суть квеста «Вторые Врата: Протокол Авалон» в том, что готовый ответ скопировать у соседа нельзя. Финальный хэш динамический — он высчитывается индивидуально для каждого, кто пишет комментарий в тред.
В чем заключается алгоритмический ад?
Автор предлагает решить три задачи, завязанные на побитовые операции и астрономию:
Пройти первый слой (Акростих): Это они быстро сделали, первые буквы строк дают имя MERLIN.
Найти отрицательный UNIX-timestamp: Нужно лезть в базы данных NASA, находить точную дату солнечного затмения в 537 году нашей эры (год битвы при Камланне, где пал король Артур) и высчитывать его Unix-время в секундах. Поскольку эпоха Unix началась 1 января 1970 года, таймстамп для 537 года будет глубоко отрицательным (64-битное знаковое целое число).
Сделать динамический XOR: Полученное отрицательное число нужно побитово сложить через операцию XOR с уникальным ID своего собственного поста на Дваче. Результат перевести в Hex-строку — это и будет персональная соль для открытия следующего шага.
Почему в комментариях уже начался ад и код-ревью?
Вот тут айтишники и поплыли. Побитовые операции над отрицательными числами в разных языках программирования работают через одно место из-за представления отрицательных чисел в двоичной системе (дополнительный код / two's complement).
Скрипт на Python ведет себя не так, как скомпилированный код на C++ или Rust. Числа улетают в переполнение знакового бита (overflow bugs), и на выходе у всех получается разная Hex-строка, ломающая маску 0x41 0x56 0x41 0x4C 0x4F 0x4E... (что переводится как AVALON).
Матерые бэкендеры сейчас массово пишут парсеры, которые должны вытягивать по API Двача ID новых постов и на лету подставлять их в формулу, но единого консенсуса по битовым сдвигам отрицательного таймстампа пока нет.
Коллеги, у кого под рукой развернутое окружение? Как на Python или Си правильно реализовать XOR отрицательного int64 (затмение 537 года) с uint64 (ID поста Двача), чтобы не словить переполнение знака и на выходе получить чистый Hex без аппаратных артефактов?
Скриншот треда прикрепляю ниже. Погнали оптимизировать, а то двачеры совсем затухли.



















