Каталог@Mail.ru - каталог ресурсов интернет

Шифр Гронсфельда

Другие шифры Хеш-функции На главную

При изучении этого шифра полезно также прочесть про шифр Виженера

Общая идея

В классической криптографии довольно популярным фокусом является так называемая последовательность сдвигов. Если в ней n элементов (n > 1), то каждый k-ый символ открытого текста сдвигается на то же число позиций в алфавите, что и (k+n)-ый. Шифр Гронсфельда тоже использует этот манёвр.
Например, есть последовательность {1, 3} (то есть n = 2), тогда первый, третий, пятый и прочие нечётные символы заменятся на следующие по алфавиту. Второй, четвёртый и так далее - на те, которые стоят на 3 позиции позже по алфавиту. Нумерация символов в алфавите ведётся с нуля, формула сдвига на q позиций: c = (s + q) mod N, где s - номер символа открытого текста в алфавите, c - номер в алфавите символа шифрованного текста, N - количество символов в алфавите.

Возьмём ту же {1, 3} для примера: русский алфавит (включая Ё) + пробел, текст: ЭТО МЯЧ. Вместо Э в шифртексте будет Ю, вместо Т - Х (порядок: ТУФХ, сдвиг на 3 позиции), вместо О - П, поскольку П - следующая после О. Пробел у нас 33-ий (34 символа, нумерация с нуля). Тогда сдвиг на 3 позиции делается так: (33 + 3) mod 34 = 36 mod 34 = 2. Поскольку нумеруем с нуля, будет В. Ну дальше, наверное, и так всем понятно...
Итог: ЮХПВНБШ. То есть опять какое-то месиво...

Заметьте: если поменять порядок символов в алфавите, результат может поменяться.
И ещё один важный момент: если каждое число в последовательности может принимать значения от 0 до K-1, где K > 2, то количество возможных последовательностей длины n составляет НЕ K^n (^ - значок степени). Как минимум бессмысленна всякая последовательность типа {1, 1, 1} или {4, 4}, хоть какие-то элементы последовательности должны отличаться.

Разные шифры, которые используют эту гадость, отличаются тем, как эти наборы сдвигов связаны с ключом и какой вид имеют ключи. Так, в шифре Виженера ключ - набор букв, числа получаем как номера букв из ключа. Например, русский алфавит, ключ АВ, тогда набор чисел: {0, 2}.
В нашем шифре ключ - сразу последовательность цифр (но не чисел!). Какая цифра - на столько и сдвигаем. В примере с тестом про мяч ключом шифра Гронсфельда был бы 13, Виженера - БГ. То есть ключи шифра Гронсфельда - числовые, шифра Вижерена - буквенные, причём обычно всё-таки в виде нормальных человеческих слов.

Примерчики по шифру Гронсфельда

Небольшой пример по шифру Гронсфельда.
Допустим, есть английский алфавит, шифруем текст SOURCE, ключ - 1422. S меняем на следующий по алфавиту символ, то есть T, O - на тот, что на 4 позиции дальше в алфавите, то есть S (порядок OPQRS), U и R сдвигаем на 2 позиции, получая W и T. Теперь опять начинаем с первой цифры и меняем C на D. Далее берём вторую цифру и меняем E на I. Итог - TSWTDI.

Алфавит: ABCDE...XYZ
Открытый текстSOURCE
Применение ключа142214
Шифрованный текстTSWTDI


Теперь ещё пример по шифру Гронсфельда. Есть английские символы + ещё пробел, зашифруем SOURCE CODE (перевод - "исходный код"). Первые 6 символов шифрованного текста по-прежнему будут TSWTDI, как в примере со слово SOURCE и алфавитом без пробела. При этом мы применили один раз все цифры ключа 1422, также пришлось второй раз задействовать 1 и 4.

Далее по алгоритму шифра Гронсфельда задействуем двойку. На очереди пробел, он 26-ой, если A - символ номер 0. (26 + 2) mod 27 = 1, то есть вместо пробела ставим B. Теперь C и вторая двойка в ключе. Если A - номер 0, то C - номер 2. (2 + 2) mod 27 = 4, то есть это E. Далее шифруем O, все цифры ключа использованы, опять начинаем со старшей (самой левой) цифры, то есть нужен сдвиг на 1, вместо O будет P. И так далее...

Итог такой:

Алфавит: ABCDE...XYZ_
Открытый текстSOURCE_CODE
Применение ключа14221422142
Шифрованный текстTSWTDIBEPHG

Самый интересный пример

Теперь опять английский с пробелом, но текст: MY FAT CAT, ключ: 143.

Итог такой:

Алфавит: ABCDE...XYZ_
Открытый текстMY_FAT_CAT
Применение ключа1431431431
Шифрованный текстNBCGEWAGDU


Данный пример применения шифра Гронсфельда - яркая демонстрация того, как шифры сложной замены затирают статистику вхождения символов в открытый текст. Если бы у нас был шифр простой замены, то одинаковые символы заменились бы одинаково. Особо негативно это сказалось бы на пробелах: очень часто встречающийся символ шифрованного текста - наверняка "маска" пробела. По шифру Гронсфельда в нашем примере пробелы заменены по-разному.

Алфавит: ABCDE...XYZ_
Открытый текстMY_FAT_CAT
Применение ключа1431431431
Шифрованный текстNBCGEWAGDU


Одинаковые символы в шифрованном тексте не говорят о частоте символов в открытом тексте: в табличке выше, например, два разных символа F и C в итоге заменились одним и тем же G.

Драка с конкурентом

Ранее не зря было упоминание шифра Виженера. Как уже могли заметить мыслящие существа, эта два шифра зверски похожи! Не удивимся, если их авторы были собутыльниками! Идея у них одна и описана в самом начале этой странички. Разный же вид ключей. В шифре Виженера символы ключа берутся из ТОГО ЖЕ алфавита, что и символы открытого текста. Это значит, что если у алфавита более 10 символов, то шифр Виженера надёжнее - ведь в шифре Гронсфельда каждый сдвиг можно выбрать только 10 способами. Разве что одно тут есть коварство - народ не любит пароли, ключи и т.д. в виде непонятных наборов букв, поэтому ключами шифра Виженера выбираются обычно нормальные слова человеческого языка, а не из лексикона пьяных троллей. А это сильно сокращает количество возможных ключей.
Наконец, ещё один момент. Если в алфавите есть цифры, и ключом шифра Виженера оказался набор цифр, шифр Виженера не меняет свои правила и не превращается таинственным образом в шифр Гронсфельда. Не ищите мистики в столь строгом деле, как алгоритмы.

И опять шифр Цезаря... Ну сколько можно?

Как можно заметить, если ключ шифра Гронсфельда состоит из одной цифры либо кто-то одарённый задал ключ, где все цифры одинаковы, то получается шифр Цезаря. Да-да, то самое древнее барахло, с которого, наверное, многим удобно начинать изучение нашей науки для честных и открытых людей.
А по-умному - сейчас мы рассмотрели одно из возможных обобщений шифра Цезаря.

Демонстрация шифра Гронсфельда


А теперь можно побаловаться немного... Только одно предостережение - если ввели алфавит большими буквами, вводите текст такими же, если мелкими - то такими же и всё остальное

Алфавит

Ключ

Открытый текст

Шифрованный текст

copyright © Исканцев Н.В., 2011

На главную
X