Сакнусем — це Перестановка у два кроки: усе повідомлення, писане навпаки, а тоді обернений потік літер, розрізаний на стовпцеподібні групи — рунічний пергамент, який Арне Сакнусем лишив у «Подорожі до центру Землі» Жюля Верна.
Візьміть Відкритий текст, лишіть тільки літери й оберніть потік: DESCENDE стає EDNECSED. Саме цей крок зупиняє професора в романі — він добу читає руни, поки Аксель не радить читати повідомлення «навпаки, як усякий народ Туле».
Виберіть форму: скільки літер містить кожна група (пергамент: 7) і скільки груп друкує кожен рядок (пергамент: 3). Кількість самих рядків не обмежена — текст просто ллється на стільки рядків, скільки треба.
Пишіть обернений потік по рядках сітки, чиї стовпці — це групи: літера номер k оберненого потоку потрапляє в групу k mod W, рядок k div W, де W — загальна кількість груп.
Зчитайте сітку вниз по стовпцях і надрукуйте те, що бачите:
clustersPerLine груп у рядку, розділені пробілами.
Шифротекст для DESCENDE у формі пергамента — EEE DCD NS — три групи в одному рядку.
Кожен рядок додає одну групу в порядку друку. SNEFFELS обернене —
SLEFFENS; форма 3×2 потребує чотирьох груп, і група номер 1 бере
кожну четверту літеру оберненого потоку, починаючи з першої: S, потім
F. Група 2 бере L і E, група 3 — E і N, група 4 — F і S. Надрукована
криптограма — SF LE EN FS — чотири групи, дві в рядку.
Усе випливає з одного співвідношення: група k містить літери S[k], S[k+W], S[k+2W], …, де S — обернене повідомлення, а W — кількість груп. Групи, зчитані поруч, відбудовують рядки сітки, які поперек читаються як S — а одне останнє обернення дає відкритий текст. Жодна літера ніколи не змінюється, не дублюється й не губиться: криптограма завжди анаграма повідомлення, і це водночас чарівність шифру й його слабкість.
Ввід переводиться у верхній регістр і очищається до літер перед шифруванням — розділові знаки й пробіли ніколи не потрапляють у сітку. Латина пергамента, з комами, стає потоком зі 133 літер.
Вихід несе пробіли й розриви рядків навмисно: вони позначають межі груп. Розшифрування приймає обидві форми — групи, розділені пробілами, або суцільний блок літер, розрізаний тим самим правилом форми.
Форма за замовчуванням — пергаментна: 7 і 3. Будь-яка інша форма шифрує так само, але лише 7×3 відтворює диктовку роману.
Введіть повідомлення в поле повідомлення — літери, розділові знаки й регістр усі вітаються; шифр лишає тільки літери.
Виберіть форму: селектор кількості літер у групі вирішує, скільки літер містить кожна група, селектор кількості груп у рядку — скільки груп друкує кожен рядок. Власна форма пергамента — 7 і 3, замовчування.
Читайте поле поле результату: групи з'являються рядок за рядком, розділені пробілами, шрифтом фіксованої ширини, щоб проміжки лишилися видимими.
Натисніть кнопку обміну кнопку обміну, щоб перейти в режим розшифрування.
Вставте криптограму в поле повідомлення. Пробіли між групами зчитуються як межі — лишіть їх, якщо можете. Суцільний блок літер теж працює; інструмент розріже його чинним правилом форми.
Установіть форму, яку використав відправник, через селектор кількості літер у групі і селектор кількості груп у рядку. Хибна форма сплутує рядки: літери всі на місці, але в неправильній сітці.
Читайте Відкритий текст у поле результату — останнє обернення відбувається автоматично.
У режимі шифрування натисніть кнопка «Завантажити пергамент»: сторінка наповнюється латинським повідомленням, яке розгадує Аксель — «зійди в кратер Йокуліса, у Снеффельс…»
Подивіться, як інструмент утворює перемішані групи Сакнусема, і натисніть кнопку обміну: групи переходять у ввід, а сторона виходу знову показує латину — цикл туди-назад точний.
Тепер натисніть кнопка «Завантажити пергамент» у режимі розшифрування: та сама кнопка завантажує диктовку з роману — «mm.rnlls esruel seecJde…». Інструмент читає її формою 7×3 і відновлює латину до дивацтв пергамента: транскрипція роману несе розділові знаки в клітинах сітки й пропускає одну з'їдену літеру.
Сакнусем виглядає непроникним — латина навпаки у рунічних групах — а насправді це найлегша для зламу перестановка на цьому сайті, бо простір ключів — два невеликих числа.
Шифр ніколи не підмінює жодної літери: криптограма завжди анаграма відкритого тексту. Єдині таємниці — напрям читання (навпаки — але рада Акселя перше, що пробує будь-який розв'язувач) і форма (літер у групі, груп у рядку). Обидві живуть у крихітному просторі: дюжина правдоподібних значень кожної, перебираються вручну за хвилини.
Полічіть літери. Якщо кожна літера мови трапляється зі своєю нормальною частотою, підстановки немає — спершу профілювання, потім перестановка. На сайті /identify повідомляє саме це.
Читайте навпаки. Оберніть увесь потік літер; наприкінці латини — чи будь-якого тексту — часто стоїть підпис чи ключове слово, що закріплює напрям.
Переберіть форму. Оберніть потік, потім пробуйте кількості груп, що ділять текст на рівні рядки: пергамент друкує 21 групу, отже 7 літер у групі і 3 в рядку. Правильна форма — та, чиї групи, зчитані поруч, читаються як обернена латина.
Слідкуйте за ознакою. Правильно зібрані рядки читаються як мова; майже влучна форма дає шум. Крім форми, відновлювати нічого — щойно рядки читаються, повідомлення зламано.
Керовані злому на цьому сайті перебирають простори ключів, вартих супроводу — абетки, диски, перестановки стовпців. Увесь простір ключів Сакнусема — два невеликих цілих числа, які можна перебрати вручну селекторами форми, а його єдине тренувальне завдання — текст, який кожен читач роману вже має. Злом лише автоматизував би перебір; пергамент заслуговує ручної роботи.
Професор Верна тримає руни в таємниці тижнями й програвує перед найпростішим трюком підручника: читанням навпаки. Шифр — урок смиренності: безпека, що спирається на те, ніби противник не спробує другої очевидної речі, — не безпека взагалі.