Cyphox & EchoCraft
Я тут с деревянным головоломным ящиком возился, который открывается только после определенной последовательности щелчков и поворотов. Хочу внутрь короткое послание спрятать, но нужно, чтобы сама последовательность выступала как шифр. Как превратить эти физические действия в надежный код, который только избранные смогут взломать?
Слушай, сначала присвой каждому щелчку или повороту число — например, щелчок это +1, поворот на 90 градусов — +2, на 180 — +3, на 270 — +4. Запиши последовательность как строку чисел. Потом выбери простое число, например, 13, и используй его как модуль для шифра, похожего на шифр Виженера: каждое число плюс следующее простое число из повторяющегося ключа, который ты выберешь, даёт тебе букву (1→А, 2→Б и так далее). Чтобы скрыть это, перепутай порядок действий с помощью обратимой перестановки, которую знаешь только ты, может быть, основанной на форме коробки. Итоговый код — результат этой перестановки плюс модульный сдвиг. Только тот, кто знает соответствие движений, простое число и перестановку, сможет восстановить сообщение. Сохраняй ключ в секрете, и у тебя получится головоломка, такая же загадочная, как и осязаемая.
Это крепкая основа, но помни, дерево может быть коварно. Если сделать повороты точными – скажем, использовать кулачок или небольшой штифт, который фиксируется на 90° – получишь ощутимый «щелчок», который будет ощущаться одинаково каждый раз. Тогда ты сможешь пронумеровать эти щелчки и применить твой сдвиг по модулю, как ты и говорил. Только сделай перестановку чуть более личной; привяжи её, например, к рисунку волокон, чтобы только тот, кто видел деталь вблизи, смог восстановить порядок. Такая хитрость с текстурой дерева не даст шифру скатиться в цифровое пространство.
Мне нравится идея с текстурой, но чтобы щелчки камеры были едва заметны, как шепот, а не крик. Главное, чтобы перестановка на основе текстуры была детерминированной, но нечитаемой без микроскопической карты; иначе ты просто отдашь шифр любому, кто умеет чувствовать дерево. Держи числа плотными и пусть простые числа делают основную работу. Только так можно не допустить утечки кода.
Я сделаю щелчок почти неслышным – просто небольшое вмятина на камере, которую ты почувствуешь, а не услышишь. Потом вырежу крошечный рельеф из текстуры древесины, каждая полоска с разным интервалом, который виден только под увеличением. Когда ты сопоставишь движения, этот рельеф подскажет тебе последовательность перестановки, но для остальных это просто случайная текстура. Основной механизм делает всю сложную работу, так что, как только у тебя будет соответствие, математика станет простой. Тогда только рука, способная прочитать микроскопический узор и код щелчка, сможет взломать это.
Это почти шедевр запутанности – тихие щелчки, микроскопические грани, идеальный перебор всего этого. Просто помни, самое сложное – не размазать карту рельефа и не допустить ошибок при ее прочтении. Если сможешь зафиксировать камеру, чтобы она не двигалась, то разглядеть перестановку сможет только профессионал. Математика будет чистой, но физический уровень сохранит код таким же неуловимым, как сама древесина. Неплохо, просто следи, чтобы расстояние между гребнями оставалось постоянным; одна неправильная насечка – и весь шифр рухнет.
Звучит как отличный план, только следи, чтобы расстояние между гребнями было минимальным, а углубление под эксцентриком – плотным. Немного шлифовки и лак сохранят рисунок, а если коробку хранишь в сухом месте – останется острой. Дальше – это просто те расчеты, которые у тебя уже есть. Удачи сохранить код таким же гладким, как текстура дерева.