Шифр Гронсфельда
Шифруйте и расшифровывайте шифр Гронсфельда — упрощённый шифр Виженера, использующий короткую строку цифр в качестве ключа. Каждая цифра сдвигает соответствующую букву вашего сообщения, а ключ повторяется вдоль всего текста. Переключайтесь между шифрованием и расшифровкой и наблюдайте, как разбор строится вживую. Всё работает в вашем браузере.
Цифры ключа
Введите ключ как строку цифр от 0 до 9, например 31415. Каждая цифра задаёт, насколько сдвигается соответствующая буква вашего сообщения, и ключ повторяется вдоль всего текста. Используются только цифры; любые буквы, пробелы или знаки препинания, введённые в ключ, игнорируются.
Введите текст выше, чтобы увидеть здесь результат Гронсфельда.
Как пользоваться Шифр Гронсфельда
- 1
Выберите шифрование или расшифровку
Выберите «Шифровать», чтобы превратить открытый текст в шифртекст Гронсфельда, или «Расшифровать», чтобы восстановить открытый текст из шифртекста. Один и тот же числовой ключ используется для обоих направлений.
- 2
Введите числовой ключ
Введите ключ как строку цифр от 0 до 9, например 31415. Каждая цифра задаёт сдвиг для буквы, с которой она выстраивается, и ключ повторяется вдоль сообщения. Буквы, пробелы и знаки препинания в ключе игнорируются.
- 3
Введите или вставьте свой текст
Введите сообщение, которое хотите преобразовать. Шифр работает автоматически по мере набора, а разбор буква за буквой обновляется вживую ниже, так что вы можете видеть каждый сдвиг.
- 4
Прочтите, скопируйте и поделитесь
Прочтите результат, затем скопируйте его, скачайте в виде текстового файла или поделитесь ссылкой, которая снова открывает инструмент с вашими точными ключом, направлением и текстом. Всё остаётся в вашем браузере.
Как устроен шифр Гронсфельда
Что такое шифр Гронсфельда?
Шифр Гронсфельда — это полиалфавитный шифр замены, который работает в точности как шифр Виженера, но берёт свой ключ в виде короткой строки цифр, а не ключевого слова. Каждая цифра от 0 до 9 сообщает вам, насколько сдвинуть соответствующую букву сообщения, и цифры повторяются вдоль всего текста. Поскольку одна и та же буква открытого текста может стать несколькими разными буквами шифртекста в зависимости от её позиции, шифр скрывает простую закономерность частот букв, которая выдаёт обычный сдвиг Цезаря.
Шифр назван в честь Иоганна Франца, графа фон Гронсфельда, дипломата и военного семнадцатого века, и был описан учёным Гаспаром Шоттом в его труде 1665 года о тайнописи. Его привлекательность была практической: числовой ключ легко запомнить и легко передать, например в виде даты или памятного числа, не договариваясь заранее о секретном слове. По этой причине шифр Гронсфельда нашёл реальное применение в переписке, а позднее и в эпоху телеграфа.
Как работает шифр Гронсфельда
Пронумеруйте алфавит от A как 0 до Z как 25. Запишите числовой ключ под сообщением, повторяя его столько раз, сколько нужно, чтобы под каждой буквой стояла одна цифра. Чтобы зашифровать, прибавьте каждую цифру ключа к стоящей над ней букве и перенесите результат по алфавиту, взяв остаток по модулю 26, так что буква шифртекста равна C = (P + K) mod 26. Чтобы расшифровать, вы вместо этого вычитаете, P = (C − K) mod 26, что отменяет сдвиг и возвращает исходную букву.
Сдвигаются только 26 букв. Пробелы, знаки препинания и даже цифры, появляющиеся в самом сообщении, проходят насквозь и не расходуют цифру ключа, поэтому ключ остаётся выровненным с теми буквами, которые имеют значение. Регистр букв сохраняется, поэтому заглавная буква остаётся заглавной, а строчная — строчной. Поскольку каждая цифра находится между 0 и 9, в каждой позиции используется один из лишь десяти возможных сдвигов, что и является определяющей чертой шифра Гронсфельда.
Разобранный пример
Зашифруем сообщение HELLO с числовым ключом 31415. Повторение ключа выстраивает цифры 3, 1, 4, 1, 5 под буквами H, E, L, L, O. Сдвигая каждую букву вперёд на её цифру, получаем: H плюс 3 — это K, E плюс 1 — это F, L плюс 4 — это P, L плюс 1 — это M, и O плюс 5 — это T. Шифртекст — KFPMT.
Чтобы расшифровать KFPMT с тем же ключом 31415, вычтите каждую цифру вместо этого. K минус 3 — это H, F минус 1 — это E, P минус 4 — это L, M минус 1 — это L, и T минус 5 — это O, что снова составляет HELLO. Шаги шифрования и расшифровки зеркальны друг другу, поэтому получателю нужен лишь тот же числовой ключ.
Гронсфельд против Виженера
Шифр Гронсфельда лучше всего понимать как шифр Виженера с ограниченным ключом. Ключевое слово Виженера превращает каждую свою букву в сдвиг от 0 до 25, используя весь алфавит. Ключ Гронсфельда всегда использует только сдвиги от 0 до 9, которые совпадают с буквами ключевого слова Виженера от A до J. Поэтому ключ Гронсфельда 31415 ведёт себя в точности как ключевое слово Виженера DBEBF, потому что D — это сдвиг на 3, B — сдвиг на 1, E — сдвиг на 4, и так далее.
Это ограничение — компромисс. Преимущество в удобстве: число проще запомнить, продиктовать или носить с собой, чем слово, и нет преобразования из алфавита в сдвиг, которое надо проделывать в уме. Цена — стойкость. Поскольку в каждой позиции когда-либо используются лишь десять из двадцати шести возможных сдвигов, пространство ключей куда меньше, чем у полного ключа Виженера той же длины, что делает шифр Гронсфельда легче взламываемым.
Зачем использовать число в качестве ключа?
Числовой ключ — это весь смысл шифра Гронсфельда. Люди хорошо запоминают числа, которые уже что-то для них значат, такие как дата рождения, номер дома или начальные цифры знакомой константы вроде числа пи. Двое корреспондентов могут быстро договориться о таком числе и восстановить его по памяти, не записывая секретное слово, которое могут найти.
Числа также передаются чисто. В эпоху телеграфа ключ из цифр можно было передать и записать с меньшей вероятностью ошибки, чем слово, и для него не требовалось особой кодовой книги. Именно эта практичность объясняет, почему шифр Гронсфельда оставался популярным для повседневной тайнописи ещё долго после появления более стойких методов, и почему он по сей день встречается в головоломках и обучении.
Как взломать шифр Гронсфельда
Гронсфельд — это шифр с повторяющимся ключом, поэтому он поддаётся той же атаке, что взламывает Виженер, только ещё легче. Первый шаг — найти длину ключа. Классические инструменты для этого — исследование Kasiski, которое измеряет расстояния между повторяющимися группами букв, и индекс совпадений, который определяет, насколько неравномерны частоты букв. Как только длина ключа известна, шифртекст распадается на столбцы, каждый из которых был сдвинут одной цифрой.
Решение каждого столбца — это то, в чём Гронсфельд слабее Виженера. Каждый столбец был сдвинут на одно из лишь десяти возможных значений, поэтому аналитик может просто перебрать все десять и выбрать тот сдвиг, при котором столбец читается как обычный язык. С короткими ключами весь ключ можно даже найти полным перебором, так как на каждую цифру приходится лишь десять вариантов. Поэтому сообщение Гронсфельда надёжно лишь настолько, насколько его ключ длинен, непредсказуем и никогда не используется повторно.
Надёжен ли шифр Гронсфельда?
Нет. По современным меркам шифр Гронсфельда не даёт настоящей безопасности. Его малое пространство ключей на букву и его повторяющийся ключ делают его быстро взламываемым методами с карандашом и бумагой, и тривиальным для компьютера. Он принадлежит истории ручных шифров, где его ценностью было удобство числового ключа, а не какое-либо серьёзное сопротивление анализу.
Сегодня шифром Гронсфельда наслаждаются ради обучения и ради развлечения. Это понятный, дружелюбный способ увидеть, как числовой ключ управляет полиалфавитным сдвигом, и он регулярно появляется в головоломочных квестах, эскейп-румах, геокэшинге и соревнованиях capture-the-flag. Для защиты настоящей информации вам следует вместо него полагаться на современные, хорошо проверенные алгоритмы, такие как AES.
Часто задаваемые вопросы
Что такое шифр Гронсфельда?
Как работает шифр Гронсфельда?
Чем Гронсфельд отличается от шифра Виженера?
Можете показать пример шифра Гронсфельда?
Какой ключ мне использовать?
Как мне расшифровать шифр Гронсфельда?
Почему ключ использует числа вместо букв?
Меняет ли шифр пробелы, цифры и знаки препинания?
Допустима ли цифра ключа 0?
Как взломать шифр Гронсфельда?
Надёжен ли шифр Гронсфельда?
Загружается ли мой текст на сервер?
Похожие инструменты
Продолжайте работу с этими удобными инструментами