Допустим, у вас есть какой-то текст, и вы хотите, чтобы он отправил его вашему другу, но вы не хотите, чтобы кто-то еще его читал. Это, вероятно, означает, что вы хотите зашифровать его, чтобы его могли прочитать только вы и ваш друг. Но есть проблема: вы и ваш друг забыли согласовать метод шифрования, поэтому, если вы отправите им сообщение, они не смогут его расшифровать!
Подумав об этом некоторое время, вы решили просто отправить другу код для шифрования вашего сообщения вместе с сообщением. Ваш друг очень умен, поэтому он может выяснить, как расшифровать сообщение, изучив метод шифрования.
Конечно, поскольку другие люди могут читать сообщение, вы хотите выбрать схему шифрования, которая сделает его максимально трудным для взлома (выясните схему дешифрования).
Задача ментов
В этом вызове копы будут играть роль автора: вы разработаете схему шифрования, которая преобразует строки в строки. Однако эта схема шифрования должна быть биективной , это означает, что никакие две строки не должны отображаться на другую строку, и каждая строка может быть сопоставлена с помощью ввода. Требуется только один вход - строка для кодирования.
Затем вы опубликуете некоторый код, который выполняет шифрование, и одно сообщение, зашифрованное по схеме, детализированной вашим кодом.
Поскольку вы платите байтом за отправку сообщений, вашим счетом будет длина вашего кода плюс длина зашифрованного текста . Если ваш ответ взломан, у вас будет оценка бесконечности.
Через неделю вы можете раскрыть текст и пометить свой ответ как безопасный . Безопасные ответы - это те, которые невозможно взломать.
Задача грабителей
Грабители будут играть либо за друга писателя, либо за злого посредника (между ними нет существенной разницы, но вы можете сыграть роль так же, как если бы это делало это более увлекательным). Они возьмут схемы шифрования и зашифрованный текст и попытаются выяснить зашифрованное сообщение. Как только они выяснят зашифрованное сообщение, они опубликуют его в комментарии. (Для этого вопроса не будет отдельной ветки грабителей.)
Победителем станет грабитель с наибольшим количеством трещин.
Вот пример того, как может выглядеть взломанное решение: