Шифр Pollux
Кодируйте и декодируйте шифр Pollux. Сообщение сначала записывается кодом Морзе с одиночным x между буквами и двойным x между словами, а затем каждая точка, тире и разделитель заменяется одной из цифр от нуля до девяти, которую вы ей назначили. Поскольку несколько цифр могут обозначать один и тот же символ, одна и та же буква каждый раз записывается по-разному. Следите за разбором в реальном времени — буквы, Морзе, цифры — и копируйте, скачивайте или делитесь результатом. Всё работает прямо в браузере.
Ключ
Ключ задаёт, что обозначает каждая цифра 0-9. Введите десять символов, по одному на каждую цифру по порядку от 0 до 9, используя точку (.), тире (-) или x для разделителя. Ключ должен включать хотя бы по одному каждого символа, чтобы у каждого символа была цифра. Пример x...x--xxx делает 0, 4, 7, 8 и 9 разделителями, 1, 2 и 3 — точками, а 5 и 6 — тире. Всё непригодное приводит к этому ключу по умолчанию, и обе стороны должны использовать один и тот же ключ.
Введите текст выше, чтобы увидеть здесь результат.
Таблица ключа (символ → цифры)
Символ
Цифры
•
Точка
–
Тире
×
Разделитель (x)
Как пользоваться Шифр Поллукс
- 1
Выберите кодирование или декодирование
Выберите «Кодировать», чтобы превратить обычный текст в цифры шифра Pollux, или «Декодировать», чтобы превратить цифры шифра обратно в обычный текст.
- 2
Задайте ключ
Введите десять символов, по одному на каждую цифру от 0 до 9, используя точку, тире или x для разделителя. Убедитесь, что присутствуют все три символа, чтобы у каждого символа была цифра, и используйте один и тот же ключ с обеих сторон.
- 3
Введите или вставьте текст
Введите своё сообщение, и оно преобразуется по мере набора. При кодировании панель шагов показывает каждую букву над её Морзе, а затем весь поток символ за символом с цифрой под каждым.
- 4
Прочитайте таблицу ключа
Откройте таблицу ключа, чтобы увидеть, какие цифры обозначают точку, тире и разделитель при вашем текущем ключе.
- 5
Скопируйте, скачайте или поделитесь
Скопируйте результат, скачайте его в виде текстового файла или поделитесь ссылкой, которая снова откроет инструмент с вашим точным текстом и ключом, готовыми к работе.
Разбираемся в шифре Pollux
Что такое шифр Pollux?
Шифр Pollux прячет сообщение внутри безобидно выглядящего ряда цифр от 0 до 9. Он работает так: сначала превращает текст в код Морзе, а затем маскирует этот Морзе — каждая точка, каждое тире и каждый разделитель заменяется числом. Поскольку готовое сообщение состоит из одних цифр, оно не даёт никакого явного признака того, что под ним прячется код Морзе, — а это именно то, что делает его любимцем головоломочных квестов, эскейп-румов, соревнований capture-the-flag и задач Science Olympiad CodeBusters.
Pollux принадлежит к тому же небольшому семейству ручных шифров на основе кода Морзе «карандашом по бумаге», что Fractionated Morse и Morbit, — все они каталогизированы и сохранены American Cryptogram Association (Американской криптограммной ассоциацией). Что выделяет Pollux — это его остроумное использование большего числа цифр, чем символов: символов Морзе всего три, а цифр десять, так что каждому символу даётся несколько цифр, за которыми можно спрятаться. Эта одна идея и есть весь фокус, и именно она сглаживает частоты букв, на которые иначе опирался бы взломщик.
Три символа, десять цифр
После того как сообщение записано кодом Морзе, оно использует всего три символа: точку, тире и разделитель, записанный здесь как x — одиночный x между буквами и двойной xx между словами. Чтобы зашифровать его, вы решаете, какие из цифр от 0 до 9 будут обозначать точку, какие — тире, а какие — разделитель. Жёсткого правила нет; единственное требование — чтобы каждый из трёх символов получил хотя бы одну цифру, чтобы ничто не осталось без числа и декодирование оставалось возможным.
Когда десять цифр распределяются между тремя символами, у большинства символов в итоге оказывается по две, три или больше цифр на выбор. Дойдя в потоке до точки, вы можете записать любую из назначенных точке цифр. Эта свобода — самое сердце Pollux: буква E, одиночная точка, в одном месте может быть 1, а в другом — 3, так что атакующий, подсчитывающий, как часто появляется каждая цифра, почти ничего не узнаёт о том, какие буквы встречаются чаще.
Выбор среди цифр
Поскольку один символ может отображаться в несколько цифр, тот, кто шифрует, должен каждый раз выбирать одну. Традиционно выбор делается случайно, так что одно и то же сообщение, зашифрованное дважды, даёт две разные строки чисел — полезное свойство, которое ещё сильнее затрудняет анализ.
Однако онлайн-инструмент обязан быть воспроизводимым: введите один и тот же текст с одним и тем же ключом — и вы всегда должны получить один и тот же результат, а ссылка для публикации должна снова открыть в точности то, что вы видели. Этот инструмент сохраняет разнообразие без случайности, перебирая цифры каждого символа по очереди. Если точке назначены 1, 2 и 3, то первая точка становится 1, следующая — 2, следующая — 3, затем снова 1 и так далее. Результат по-прежнему распределяется по всем доступным цифрам, но теперь он воспроизводим — и декодирование никогда не зависит от того, какая цифра была выбрана, ведь каждая цифра отображается обратно ровно в один символ.
Как работает шифр Pollux
Кодирование выполняется в два действия. Сначала запишите всё сообщение кодом Морзе, ставя один x между буквами и два между словами. Во-вторых, пройдите по этому потоку из точек, тире и x по одному символу за раз и замените каждый символ одной из назначенных ему цифр. Никакого дополнения и никакой группировки, о которых нужно беспокоиться: каждый символ просто становится одной цифрой, так что поток из двадцати символов становится ровно двадцатью цифрами.
Панель шагов выше показывает это в реальном времени. Верхняя строка сопоставляет каждую букву с её кодом Морзе, а нижняя раскладывает весь поток символ за символом с цифрой, в которую каждый превратился, снизу. Понаблюдайте за повторяющейся буквой — и вы увидите, как она берёт разные цифры, наглядное доказательство того, как Pollux рассеивает свои числа. Таблица ключа ниже показывает для текущего ключа, какие именно цифры принадлежат точке, тире и разделителю.
Разобранный пример
Возьмём сигнал бедствия SOS с ключом x...x--xxx, который делает 1, 2 и 3 точками, 5 и 6 тире, а 0, 4, 7, 8 и 9 разделителями. В коде Морзе SOS — это точка-точка-точка для S, тире-тире-тире для O и снова точка-точка-точка для S, соединённые одиночными разделителями в поток из одиннадцати символов точка точка точка x тире тире тире x точка точка точка.
Теперь замените каждый символ, перебирая его цифры по очереди. Первые три точки берут 1, 2 и 3; первый разделитель берёт 0; три тире берут 5, 6 и 5 (у тире всего две цифры, поэтому перебор возвращается к началу); следующий разделитель берёт 4; а последние три точки снова берут 1, 2 и 3. Результат — 12305654123. Декодирование обращает процесс: каждая цифра становится своим символом — 1, 2, 3 — это точки, 0 и 4 — разделители, 5 и 6 — тире, — восстанавливая точка точка точка x тире тире тире x точка точка точка, что читается обратно по таблице Морзе как SOS.
Декодирование сообщения Pollux
Декодирование удивительно прямолинейно, потому что нет никакой неоднозначности: каждая цифра обозначает ровно один символ. Найдите каждую цифру в ключе, чтобы превратить строку чисел обратно в точки, тире и разделители, соедините их в один длинный поток, затем разбейте его по разделителям — одиночный x завершает букву, двойной xx завершает слово — и прочитайте каждую серию точек и тире обратно по таблице Морзе, чтобы восстановить текст.
Чтобы декодировать правильно, нужно использовать тот же ключ, что и при кодировании; другой ключ сопоставит цифры с неверными символами, и Морзе выйдет бессмыслицей. Поскольку код Морзе есть только у букв и цифр, любые знаки препинания или иные символы исходного сообщения были отброшены при кодировании и не вернутся, а сокращение вроде "it's" возвращается как единое слово ITS. Пробелы между группами цифр шифра при декодировании игнорируются, так что неважно, был ли зашифрованный текст записан слитно или аккуратными блоками по пять.
История, применение и безопасность
Pollux — один из небольшого набора шифров на основе кода Морзе — наряду с Fractionated Morse и Morbit, — собранных для любительского криптоанализа American Cryptogram Association, и он обрёл вторую жизнь в школьных соревнованиях, таких как Science Olympiad CodeBusters, где ученики учатся восстанавливать ключ по закономерностям, которые оставляет за собой Морзе. Приём с использованием большего числа символов шифра, чем символов открытого текста, так что несколько обозначают один, — это небольшой, но изящный урок того, как победить подсчёт частот.
По современным меркам Pollux небезопасен. Распределение каждого символа по нескольким цифрам сводит на нет наивный частотный анализ, но лежащий в основе Морзе навязывает сильные, хорошо известные закономерности — три разделителя никогда не идут подряд, некоторые короткие коды встречаются очень часто, — и известный или угаданный ключ, либо просто достаточный объём шифртекста, позволяет настойчивому решателю или компьютеру восстановить сообщение. Относитесь к Pollux как к головоломке и обучающему инструменту, наглядной демонстрации того, как маскировка одного кода другим повышает планку, и никогда как к способу защитить настоящие секреты. Для подлинной конфиденциальности всегда используйте современный, проверенный сообществом алгоритм, такой как AES.
Часто задаваемые вопросы
Что такое шифр Pollux?
Как работает ключ Pollux?
Почему несколько цифр могут обозначать один и тот же символ?
Почему один и тот же текст даёт здесь одни и те же цифры?
Можете показать разобранный пример?
Как декодировать сообщение Pollux?
Обрабатываются ли цифры и знаки препинания?
Что, если мой ключ некорректен?
Чем Pollux отличается от Morbit и Fractionated Morse?
Безопасен ли шифр Pollux?
Загружается ли мой текст на сервер?
Похожие инструменты
Продолжайте работу с этими удобными инструментами