Перейти к содержанию

Шифр Хилла

Зашифруйте или расшифруйте текст с помощью матричного ключа — классический полиграфический шифр из линейной алгебры.

Входные данные
Выходные данные

Шифр Хилла

Шифр Хилла, изобретенный Лестером Хиллом в 1929 году, шифрует текст путем обработки букв как чисел и умножения блоков букв на квадратную матрицу ключа, по модулю размера алфавита. Вставьте открытый текст для его шифрования или зашифрованный текст для расшифровки — этот инструмент работает в обоих направлениях с одинаковым ключом.

Выберите размер матрицы 2×2 или 3×3, затем введите ключ либо как сырые числа (строка за строкой, разделенные пробелами или запятыми), либо как слово — его буквы заполняют матрицу в порядке чтения. Размер алфавита может быть 26 (только A–Z) или 29, что добавляет пробел, точку и вопросительный знак, чтобы короткие фразы сохраняли свою пунктуацию. Символы вне выбранного алфавита удаляются, а буквы с диакритиками преобразуются в их простой эквивалент. Если количество букв не кратно размеру матрицы, символ заполнения заполняет последний блок.

Для расшифровки матрица ключа должна быть обратима по модулю размера алфавита — ее детерминант не должен иметь общих множителей с 26 (или 29). Когда этого не происходит, инструмент объясняет почему вместо того, чтобы возвращать мусор, так как необратимая матрица не имеет уникального обратного для расшифровки. Включите опцию «Показать матрицу, детерминант и обратную матрицу», чтобы увидеть, как именно разрешается ключ, что полезно для проверки ключа вручную или следования примеру из учебника.

Все выполняется локально в вашем браузере — ничто, что вы вводите, не загружается никуда. Скопируйте результат, загрузите его как файл .txt или отправьте вывод прямо обратно во вход для связанного преобразования.

FAQ

Как на самом деле шифр Хилла шифрует блок букв?
Каждая буква становится числом (A=0, B=1, …), фиксированный размер блока рассматривается как вектор-столбец, и этот вектор умножается на матрицу ключа по модулю размера алфавита. Результирующие числа становятся буквами зашифрованного текста для этого блока.
Почему расшифровка не удалась из-за ошибки детерминанта?
Расшифровка требует обратной матрицы ключа, которая существует только когда детерминант не имеет общих множителей с размером алфавита (26 или 29). Выберите разные значения ключа так, чтобы детерминант был взаимно прост с этим числом.
Для чего нужен символ заполнения?
Шифр Хилла работает только с полными блоками из 2 или 3 букв. Если количество букв в вашем тексте не кратно размеру матрицы, символ заполнения заполняет последний блок — расшифрованный вывод может заканчиваться на одну или две буквы заполнения по этой же причине.
Должен ли я вводить ключ как числа или как слово?
Любой из них работает. Числа дают вам точный контроль над матрицей; слово легче запомнить, и его буквы заполняют матрицу строка за строкой, с использованием символа заполнения если слово короче, чем требует матрица.
Мой текст загружается куда-нибудь?
Нет. Шифр Хилла работает полностью в вашем браузере — ваш текст и ключ никогда не покидают ваше устройство.