Шифр ​​Виженера

редактировать
Простой тип полиалфавитной системы шифрования Шифр ​​Виженера назван в честь Блеза де Виженера (на фото), хотя Джован Баттиста Белласо изобрел его до того, как Виженер описал свой шифр с автоключом. Воспроизведение шифровального диска Конфедерации, использовавшегося в Гражданская война в США на выставке в Национальном криптологическом музее

Шифр ​​Виженера (французское произношение: ) - это метод шифрования алфавитного текста с использованием серии переплетенных шифров Цезаря, основанных на буквах ключевого слова. В нем используется форма полиалфавитной замены.

, впервые описанная Джован Баттиста Белласо в 1553 году, этот шифр легко понять и реализовать, но он сопротивлялся всем попыткам его взлома до 1863 года, трех столетий. позже. Это принесло ему описание le chiffre indéchiffrable (французское для «неразборчивого шифра»). Многие люди пытались реализовать схемы шифрования, которые по сути являются шифрами Виженера. В 1863 г. Фридрих Касиски первым опубликовал общий метод расшифровки шифров Виженера.

В XIX веке схема была ошибочно приписана Блезу де Виженера (1523–1596), и поэтому получила свое нынешнее название.

Содержание

  • 1 История
  • 2 Описание
  • 3 Алгебраическое описание
  • 4 Криптоанализ
    • 4.1 Исследование Касиски
    • 4.2 Тест Фридмана
    • 4.3 Частотный анализ
    • 4.4 Удаление ключа
  • 5 Варианты
  • 6 См. Также
  • 7 Ссылки
    • 7.1 Цитаты
    • 7.2 Источники
  • 8 Примечания
  • 9 Внешние ссылки

История

Первое хорошо задокументированное описание полиалфавитного шифра было сделано Леоном Баттистой Альберти около 1467 года и использовал металлический шифровальный диск для переключения между шифралфавитами. Система Альберти переключала алфавиты только после нескольких слов, а переключатели указывались записью буквы соответствующего алфавита в зашифрованном тексте. Позже Иоганн Тритемиус в своей работе Polygraphiae (которая была завершена в виде рукописи в 1508 году, но впервые опубликована в 1518 году) изобрел tabula recta, критический компонент шифра Виженера. Шифр Тритемиуса, однако, обеспечивал прогрессивную, довольно жесткую и предсказуемую систему переключения между шифралфавитами.

В 1586 году Блез де Виженер опубликовал тип полиалфавитного шифра, названный автоключом cipher - потому что его ключ основан на исходном открытом тексте - перед судом Генриха III Франции. Однако шифр, известный теперь как шифр Виженера, первоначально описал Джован Баттиста Беллазо в его книге 1553 года La cifra del Sig. Джован Баттиста Беллазо. Он построил таблицу Trithemius, но добавил повторяющуюся «контрзнак» (клавишу ), чтобы переключать шифралфавиты каждую букву. В то время как Альберти и Тритемиус использовали фиксированный образец замен, схема Белласо означала, что образец замен можно легко изменить, просто выбрав новый ключ. Ключи обычно представляли собой отдельные слова или короткие фразы, заранее известные обеим сторонам или передаваемые «вне диапазона» вместе с сообщением. Таким образом, метод Белласо требовал надежной защиты только для ключа. Поскольку относительно легко получить короткую ключевую фразу, например, в предыдущем частном разговоре, система Беллазо была значительно более безопасной.

В 19 веке изобретение шифра Беллазо было ошибочно приписано Виженера. Дэвид Кан в своей книге «Взломщики кодов» посетовал на эту неправильную атрибуцию, заявив, что история «проигнорировала этот важный вклад и вместо этого назвала регрессивный и элементарный шифр для него [Виженера], хотя он не имел к этому никакого отношения».

Шифр ​​Виженера приобрел репутацию исключительно надежного шифра. Известный писатель и математик Чарльз Лютвидж Доджсон (Льюис Кэрролл ) назвал шифр Виженера нерушимым в своей статье 1868 года «Алфавитный шифр » в детском журнале. В 1917 г. Scientific American описал шифр Виженера как «невозможный для перевода». Эта репутация была незаслуженной. Чарльз Бэббидж, как известно, взломал один из вариантов шифра еще в 1854 году, но не опубликовал свою работу. Касиски полностью взломал шифр и опубликовал эту технику в 19 веке, но даже в 16 веке некоторые опытные криптоаналитики могли иногда взламывать шифр.

Криптографическая логическая линейка использовалась в качестве вспомогательного средства для расчетов швейцарской армией с 1914 по 1940 год.

Шифр ​​Виженера достаточно прост, чтобы быть полевым, если он используется вместе с шифровальными дисками. Конфедеративные Штаты Америки, например, использовали латунный шифр-диск для реализации шифра Виженера во время Гражданской войны в США. Сообщения Конфедерации были далеко не секретными, и Союз регулярно взламывал их сообщения. На протяжении всей войны руководство Конфедерации в первую очередь полагалось на три ключевые фразы: «Манчестер Блафф», «Полная победа» и, когда война подошла к концу, «Приходите возмездие».

Шифр ​​Вернама, ключ которого - пока сообщение становится одноразовым блокнотом, теоретически неразрушимым шифром. Гилберт Вернам пытался восстановить сломанный шифр (создав шифр Вернама – Виженера в 1918 году), но технология, которую он использовал, была настолько громоздкой, что ее невозможно было использовать на практике.

Описание

Квадрат Виженера или таблица Виженера, также известная как прямоугольная таблица, может использоваться для шифрования и дешифрования.

В шифре Цезаря каждая буква алфавита сдвигается на некоторое количество мест. Например, в шифре Цезаря сдвига 3, Aстанет D, B, станет E, Y, станет Bи так далее. Шифр Виженера имеет несколько последовательных шифров Цезаря с разными значениями сдвига.

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

Например, предположим, что открытый текст, который должен быть зашифрован, имеет вид

ATTACKATDAWN.

Человек, отправляющий сообщение, выбирает ключевое слово и повторяет его до тех пор, пока не совпадет длина открытого текста, например, ключевое слово «LEMON»:

LEMONLEMONLE

Каждая строка начинается с ключевой буквы. Остальная часть строки содержит буквы от A до Z (в порядке смещения). Хотя показано 26 строк ключей, код будет использовать столько ключей (разных алфавитов), сколько уникальных букв в строке ключей, здесь всего 5 ключей: {L, E, M, O, N}. Для последовательных букв сообщения будут взяты следующие друг за другом буквы ключевой строки, и каждая буква сообщения будет зашифрована с использованием соответствующей ключевой строки. Выбирается следующая буква ключа, и эта строка перемещается, чтобы найти заголовок столбца, соответствующий символу сообщения. Буква на пересечении [key-row, msg-col] - это зашифрованная буква.

Например, первая буква открытого текста, A, сочетается с L, первой буквой ключа. Следовательно, используются строка Lи столбец Aквадрата Виженера, а именно L. Точно так же для второй буквы открытого текста используется вторая буква ключа. Буква в строке Eи столбце Tравна X. Остальная часть открытого текста зашифровывается аналогичным образом:

Открытый текст:ATTACKATDAWN
Ключ:LEMONLEMONLE
Зашифрованный текст:LXFOPVEFRNHR

Расшифровка выполняется путем перехода к строке в таблице, соответствующей ключу, найдя позицию буквы зашифрованного текста в этой строке и затем используя метку столбца в качестве открытого текста. Например, в строке L(от LEMON) зашифрованный текст Lпоявляется в столбце A, который является первой буквой открытого текста. Затем в строке E(от LEMON) зашифрованный текст Xрасположен в столбце T. Таким образом, T- вторая буква открытого текста.

Алгебраическое описание

Виженера также можно описать алгебраически. Если буквы AZвзяты как числа 0–25 (A = ^ 0 {\ displaystyle A \, {\ widehat {=}} \, 0}{\ displaystyle A \, {\ widehat {=}} \, 0} , B = ^ 1 {\ displaystyle B \, {\ widehat {=}} \, 1}{\ displaystyle B \, {\ widehat {=}} \, 1 } и т. Д.), А сложение выполняется по модулю 26, шифрование Виженера E {\ displaystyle E}E с помощью клавиши K {\ displaystyle K}K можно записать как

C i = EK (M i) = (M i + K i) mod 2 6 { \ displaystyle C_ {i} = E_ {K} (M_ {i}) = (M_ {i} + K_ {i}) {\ bmod {2}} 6}{\ displaystyle C_ {i} = E_ {K} (M_ {i}) = (M_ {i} + K_ {i}) {\ bmod {2}} 6}

и расшифровка D {\ displaystyle D}Dс использованием ключа K {\ displaystyle K}K как

M i = DK (C i) = (C i - K i + 26) mod 2 6, {\ displaystyle M_ {i} = D_ {K} (C_ {i}) = (C_ {i} -K_ {i} +26) {\ bmod {2}} 6,}{\ displaystyle M_ {i} = D_ {K} (C_ {i}) = (C_ {i} -K_ {i} +26) {\ bmod {2}} 6,}

в котором M = M 1… M n {\ displaystyle M = M_ {1} \ dots M_ {n}}M = M_ {1} \ dots M_ {n} - сообщение, C = C 1… C n {\ displaystyle C = C_ {1} \ dots C_ {n}}C = C_ {1} \ dots C_ {n} - это зашифрованный текст, а K = K 1… K n {\ displaystyle K = K_ {1} \ dots K_ {n}}K = K_ {1} \ точка s K_ {n} - ключ, полученный повторением ключевого слова ⌈ n / m ⌉ {\ displaystyle \ lceil n / m \ rceil}\ lceil n / m \ rceil t Времена, в которых m {\ displaystyle m}м - длина ключевого слова.

Таким образом, используя предыдущий пример, чтобы зашифровать A = ^ 0 {\ displaystyle A \, {\ widehat {=}} \, 0}{\ displaystyle A \, {\ widehat {=}} \, 0} с ключевой буквой L = ^ 11 {\ displaystyle L \, {\ widehat {=}} \, 11}{\ displaystyle L \, {\ widehat {=}} \, 11} вычисление приведет к 11 = ^ L {\ displaystyle 11 \, {\ widehat {=}} \, L}{\ displaystyle 11 \, {\ widehat {=}} \, L} .

11 = (0 + 11) mod 2 6 {\ displaystyle 11 = (0 + 11) {\ bmod {2}} 6}{\ displaystyle 11 = (0 + 11) {\ bmod {2}} 6}

Следовательно, для расшифровки R = ^ 17 {\ displaystyle R \, {\ widehat {=}} \, 17}{\ displaystyle R \, {\ widehat {=}} \, 17} с ключевой буквой E = ^ 4 {\ displaystyle E \, {\ widehat {=}} \, 4}{\ displaystyle E \, {\ widehat { =}} \, 4} , вычисление приведет к 13 = ^ N {\ displaystyle 13 \, {\ widehat {=}} \, N}{\ displaystyle 13 \, {\ widehat {=}} \, N} .

13 = (17–4) mod 2 6 {\ displaystyle 13 = (17-4) {\ bmod {2}} 6}{\ displaystyle 13 = (17-4) {\ bmod {2}} 6}

В общем, если Σ {\ displaystyle \ Sigma}\ Sigma - это алфавит длины ℓ {\ displaystyle \ ell}\ ell , и m {\ displaystyle m}м - длина ключа, шифрование и дешифрование Виженера может быть записано:

С я знак равно EK (M я) = (M я + К (я мод м)) мод ℓ, {\ Displaystyle C_ {я} = E_ {K} (M_ {i}) = (M_ {i} + K_ { (я {\ bmod {m}})}) {\ bmod {\ ell}},}{\ displaystyle C_ {i} = E_ {K} (M_ {i}) = (M_ {i} + K _ {(i { \ bmod {m}})}) {\ bmod {\ ell}},}
M i = D K (C i) = (C i - K (i mod m)) mod ℓ. {\ displaystyle M_ {i} = D_ {K} (C_ {i}) = (C_ {i} -K _ {(i {\ bmod {m}})}) {\ bmod {\ ell}}.}{\ displaystyle M_ {i} = D_ {K} (C_ {i}) = (C_ {i} -K _ {(i {\ bmod {m}) })}) {\ bmod {\ ell}}.}

M i {\ displaystyle M_ {i}}M_ {i} обозначает смещение i-го символа открытого текста M {\ displaystyle M}M в алфавите Σ {\ displaystyle \ Sigma}\ Sigma . Например, взяв 26 английских символов в качестве алфавита Σ = (A, B, C,…, X, Y, Z) {\ displaystyle \ Sigma = (A, B, C, \ ldots, X, Y, Z)}{\ displaystyle \ Sigma = (A, B, C, \ ldots, X, Y, Z)} , смещение A равно 0, смещение B равно 1 и т. Д. C i {\ displaystyle C_ {i}}C_ {i} и K i {\ displaystyle K_ {i}}K_ {i} аналогичны.

Криптоанализ

Идея шифра Виженера, как и всех других полиалфавитных шифров, состоит в том, чтобы замаскировать открытый текст с частотой букв, чтобы помешать прямому применению частоты. анализ. Например, если Pявляется самой частой буквой в зашифрованном тексте, открытый текст которого находится на английском, можно предположить, что Pсоответствует E, поскольку E- наиболее часто используемая буква в английском языке. Однако, используя шифр Виженера, Eможно зашифровать как разные буквы зашифрованного текста в разных точках сообщения, что противоречит простому частотному анализу.

Основная слабость шифра Виженера - повторяющийся характер его ключа. Если криптоаналитик правильно угадывает длину ключа, зашифрованный текст можно рассматривать как переплетенные шифры Цезаря, которые можно легко взломать по отдельности. экзамен Касиски и тест Фридмана могут помочь определить длину ключа (см. Ниже: § экзамен Касиски и § тест Фридмана).

Экзамен Касиски

В 1863 г. Фридрих Касиски первым опубликовал успешную общую атаку на шифр Виженера. Ранние атаки основывались на знании открытого текста или использовании узнаваемого слова в качестве ключа. У метода Касиски таких зависимостей не было. Хотя Касиски первым опубликовал отчет об атаке, ясно, что другие знали об этом. В 1854 году Чарльз Бэббидж был вынужден взломать шифр Виженера, когда Джон Холл Брок Туэйтс представил «новый» шифр в Журнал Общества искусств. Когда Бэббидж показал, что шифр Туэйтса был, по сути, просто еще одной версией шифра Виженера, Туэйтс бросил вызов Бэббиджу: учитывая исходный текст (из шекспировской бури: акт 1, сцена 2) и его зашифрованную версию, он должен был найти ключевые слова, которые Туэйтс использовал для шифрования исходного текста. Бэббидж вскоре нашел ключевые слова: «два» и «вместе». Затем Бэббидж зашифровал тот же отрывок из Шекспира, используя разные ключевые слова, и предложил Туэйтсу найти ключевые слова Бэббиджа. Бэббидж никогда не объяснял метод, который он использовал. Исследования записей Бэббиджа показывают, что он использовал метод, позже опубликованный Касиски, и предполагают, что он использовал этот метод еще в 1846 году.

исследование Касиски, также называемое тестом Касиски, использует тот факт, что повторяющиеся слова иногда случайно шифруются с использованием одних и тех же ключевых букв, что приводит к повторяющимся группам в зашифрованном тексте. Например, рассмотрим следующее шифрование с использованием ключевого слова ABCD:

Ключ: ABCDABCDABCDABCDABCDABCDABCD Открытый текст: CRYPTO ISSHORTFOR CRYPTO GRAPHY Ciphertext: CSASTP KVSIQUTGQU CSASTP IUAQJB

В зашифрованном тексте легко заметить повторение, поэтому тест Касиски будет эффективным.

Расстояние между повторениями CSASTPравно 16. Если предполагается, что повторяющиеся сегменты представляют одни и те же сегменты открытого текста, это означает, что ключ равен 16, 8, 4, 2, или длиной 1 символ. (Все множители расстояния являются возможными длинами ключей; ключ длины один - это просто простой шифр Цезаря, и его криптоанализ намного проще.) Поскольку длины ключей 2 и 1 равны нереально короткие, нужно пробовать только длины 16, 8 или 4. Более длинные сообщения делают тест более точным, потому что они обычно содержат больше повторяющихся сегментов зашифрованного текста. Следующий зашифрованный текст имеет два повторяющихся сегмента:

Зашифрованный текст: VHVS SP QUCE MRVBVBBB VHVS URQGIBDUGRNICJ QUCE RVUAXSSR

Расстояние между повторениями VHVSравно 18. Если предполагается, что повторяющиеся сегменты представляют одни и те же сегменты открытого текста, это означает, что ключ равен 18, 9, 6, 3, 2 или 1 символ. Расстояние между повторениями QUCEсоставляет 30 символов. Это означает, что длина ключа может составлять 30, 15, 10, 6, 5, 3, 2 или 1 символ. Взяв пересечение этих наборов, можно с уверенностью заключить, что наиболее вероятная длина ключа равна 6, поскольку 3, 2 и 1 нереально короткие.

Тест Фридмана

Тест Фридмана (иногда известный как тест каппа) был изобретен в 1920-х годах Уильямом Фридманом, который использовал индекс совпадение, которое измеряет неравномерность частот букв шифра для взлома шифра. Зная вероятность κ p {\ displaystyle \ kappa _ {p}}\ kappa_p , что любые две случайно выбранные буквы исходного языка совпадают (около 0,067 для английского), и вероятность совпадения для равномерный случайный выбор из алфавита κ r {\ displaystyle \ kappa _ {r}}\kappa_r(1/26 = 0,0385 для английского языка), длину ключа можно оценить следующим образом:

κ p - κ r κ o - κ r {\ displaystyle {\ kappa _ {p} - \ kappa _ {r}} \ over {\ kappa _ {o} - \ kappa _ {r}}}{\ каппа_p- \ каппа_r} \ над {\ каппа_о- \ каппа_r}

от наблюдаемая частота совпадений

κ o = ∑ i = 1 cni (ni - 1) N (N - 1) {\ displaystyle \ kappa _ {o} = {\ frac {\ sum _ {i = 1} ^ { c} n_ {i} (n_ {i} -1)} {N (N-1)}}}\ kappa_o = \ frac {\ sum_ {i = 1} ^ {c} n_i ( n_i -1)} {N (N-1)}

где c - размер алфавита (26 для английского языка), N - длина текста и от n 1 до n c - наблюдаемые частоты букв шифротекста в виде целых чисел.

Это, однако, только приблизительное значение; его точность возрастает с увеличением размера текста. На практике было бы необходимо попробовать различные длины ключей, близкие к оценочной. Лучшим подходом для шифров с повторяющимся ключом является копирование зашифрованного текста в строки матрицы с таким количеством столбцов, как предполагаемая длина ключа, а затем вычисление среднего индекса совпадения для каждого столбца, рассматриваемого отдельно. Когда это делается для каждой возможной длины ключа, наивысшее среднее значение I.C. то соответствует наиболее вероятной длине ключа. Такие тесты могут быть дополнены информацией из экзамена Kasiski.

Частотный анализ

Как только длина ключа известна, зашифрованный текст можно переписать в такое количество столбцов, причем каждый столбец соответствует одной букве ключа. Каждый столбец состоит из открытого текста, зашифрованного одним шифром Цезаря. Клавиша Цезаря (сдвиг) - это просто буква клавиши Виженера, которая использовалась для этого столбца. Используя методы, аналогичные тем, которые используются для взлома шифра Цезаря, можно обнаружить буквы в зашифрованном тексте.

Усовершенствованный метод проверки Касиски, известный как метод Керкхоффса, сопоставляет частоты букв каждого столбца с частотами сдвига открытого текста, чтобы обнаружить ключевую букву (сдвиг Цезаря) для этого столбца. Как только каждая буква в ключе известна, все, что нужно сделать криптоаналитику, - это расшифровать зашифрованный текст и раскрыть открытый текст. Метод Керкхоффа неприменим, если таблица Виженера была зашифрована, а не с использованием обычных алфавитных последовательностей, но проверка Касиски и тесты на совпадения все еще могут использоваться для определения длины ключа.

Исключение ключа

Шифр ​​Виженера с нормальными алфавитами по существу использует арифметику по модулю, которая является коммутативной. Следовательно, если длина ключа известна (или угадана), вычитание зашифрованного текста из самого себя, смещения на длину ключа, приведет к вычитанию простого текста из самого себя, также смещенному на длину ключа. Если какое-либо «вероятное слово» в открытом тексте известно или может быть угадано, его самовычитание может быть распознано, что позволяет восстановить ключ путем вычитания известного открытого текста из зашифрованного текста. Удаление ключа особенно полезно для коротких сообщений. Например, при использовании LIONв качестве ключа ниже:

Открытый текст:THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
Ключ:LIONLIONLIONLIONLIONLIONLIONLIONLIO
CipherText изEPSDFQQYCipherText изсам со сдвигом длины ключа 4 для LION.

Зашифрованный текст (исходный):EPSD FQQXMZCJYNCKUCACDWJRCBVRWINLOWU
Шифрованный текст (сдвинутый):FQQXMZCJYNRCBUC_____ZZCGTROOOMAZELCIRGRLBVOAGTIGIMT LOWU

Что почти эквивалентно вычитанию открытого текста из самого себя с помощью того же сдвига.

Открытый текст (исходный):THEQ UICKBROWNFOXJUMPSOVERTHELAZYDOG
Открытый текст (со сдвигом):UICKBROWNFOXJUMPSOVERTHELAZYDOG____
Результат (разница):ZZCGTROOOMAZ>ZZCGTROOOMAZ>Каким образом представлен для i ∈ [1, n - m] {\ displaystyle i \ in [1, nm]}{\ displaystyle i \ in [1, nm]} как:

(C i - C (i + m)) mod ℓ = (EK (M i) - EK (M (i + m))) mod ℓ = ((M i + K (i mod m)) mod ℓ - (M (i + m) + K ((i + m) mod m)) mod ℓ) mod ℓ = ((M i + K (i mod m)) - (M (i + m) + K ((i + m) mod m))) mod ℓ = (M i + K (i mod m) - M (i + m) - K ((i + m) mod m)) mod ℓ = (M i - M (i + m) + K (i mod m) - K (( i + m) mod m)) mod ℓ = (M i - M (i + m) + K (i mod m) - K (i mod m)) mod ℓ = (M i - M (i + m)) мод ℓ {\ displaystyle {\ begin {align} (C_ {i} -C _ {(i + m)}) {\ bmod {\ ell}} = (E_ {K} (M_ {i}) - E_ { K} (M _ {(i + m)})) {\ bmod {\ ell}} \\ = ((M_ {i} + K _ {(i {\ bmod {m}})}) {\ bmod { \ ell}} - (M _ {(i + m)} + K _ {((i + m) {\ bmod {m}})}) {\ bmod {\ ell}}) {\ bmod {\ ell}} \\ = ((M_ {i} + K _ {(i {\ bmod {m}})}) - (M _ {(i + m)} + K _ {((i + m) {\ bmod {m}})})) {\ bmod {\ ell}} \\ = (M_ {i} + K _ {(i {\ bmod {m}})} - M _ {(i + m)} - K _ {((i + m) {\ bmod {m}})}) {\ bmod {\ ell}} \\ = (M_ {i} -M _ {(i + m)} + K_ {(i {\ bmod {m}})} - K _ {((i + m) {\ bmod {m}})}) {\ bmod {\ ell}} \\ = (M_ {i} -M_ {(i + m)} + K _ {(i {\ bmod {m}})} - K _ {(i {\ bmod {m}})}) {\ bmod {\ ell}} \\ = (M_ {i} -M _ {(i + m)}) {\ bmod {\ ell}} \\\ конец {выровнено}}}{\ displaystyle {\ begin {align} (C_ {i} -C _ {(i + m)}) {\ bmod {\ ell}} = (E_ {K} (M_ {i}) -E_ {K} (M _ {(i + m)})) {\ bmod {\ ell}} \\ = ((M_ {i} + K _ {(i {\ bmod {m}})}) { \ bmod {\ ell}} - (M _ {(i + m)} + K _ {((i + m) {\ bmod {m}})}) {\ bmod {\ ell}}) {\ bmod {\ ell}} \\ = ((M_ {i} + K _ {(i {\ bmod {m}})}) - (M _ {(i + m)} + K _ {((i + m) {\ bmod {m}})})) {\ bmod {\ ell}} \\ = (M_ {i} + K _ {(i {\ bmod {m}})} - M _ {(i + m)} - K_ {((i + m) {\ bmod {m}})}) {\ bmod {\ ell}} \\ = (M_ {i} -M _ {(i + m)} + K _ {(i {\ bmod {m}})} - K _ {((i + m) {\ bmod {m}})}) {\ bmod {\ ell}} \\ = (M_ {i} -M _ {(i + m)} + K _ {(i {\ bmod {m}})} - K _ {(i {\ bmod {m}})}) {\ bmod {\ ell}} \\ = (M_ {i} -M _ {(i + m)}) {\ bmod {\ ell}} \\\ конец {выровнено}}}

В этом примере слова BROWNFOXизвестны.

Открытый текст (исходный):BROWNFOX
Открытый текст (смещенный):NFOX____
Результат (разница):OMAZ NFOX

Этот результат OMAZсоответствует буквам с 9 по 12 в приведенных выше примерах большего размера. Известный раздел и его местонахождение проверяются.

Вычтите BROWиз этого диапазона зашифрованного текста.

Зашифрованный текст :EPSDFQQXMZCJYNCKUCACDWJRCBVRWINLOWU
Открытый текст :________BROW_______________________
Ключ :EPSDFQQX<193ION><24CIN>253>Это дает окончательный результат, раскрытие ключа LION.

Варианты

Вариант рабочего ключа шифра Виженера одно время также считался нерушимым. В этой версии в качестве ключа используется блок текста такой же длины, как и открытый текст. Поскольку длина ключа равна длине сообщения, тесты Фридмана и Касиски больше не работают, поскольку ключ не повторяется.

Если используется несколько ключей, эффективная длина ключа - это наименьшее общее кратное длин отдельных ключей. Например, используя два ключа GOи CAT, длина которых равна 2 и 3, можно получить эффективную длину ключа 6 (наименьшее общее кратное 2 и 3). Это можно понять как точку, в которой обе клавиши совпадают.

Открытый текст:ATTACKATDAWN
Ключ 1:GOGOGO GOGOGO
Ключ 2:CATCAT CATCAT
Шифрованный текст:IHSQIRIHCQCU

Шифрование дважды, сначала с ключом GO, а затем с ключом CAT- это то же самое, что шифрование один раз с ключом, полученным путем шифрования одного ключа другим.

Открытый текст:GOGOGO
Ключ:CATCAT
Зашифрованный текст:IOZQGH

Это подтверждается шифрованием ATTACKATDAWNс помощью IOZQGH, чтобы получить тот же зашифрованный текст, что и в исходном примере.

Открытый текст:ATTACKATDAWN
Ключ:IOZQGHIOZQGH
Шифрованный текст:IHSQIRIHCQCU

Если длины ключей относительно простые, эффективная длина ключа увеличивается экспоненциально по мере увеличения длины отдельных ключей. Это особенно верно, если каждая длина ключа индивидуально проста. Например, эффективная длина ключей 2, 3 и 5 составляет 30 символов, а длина ключей из 7, 11 и 13 символов - 1001. Если эта эффективная длина ключа больше, чем зашифрованный текст, он обеспечивает такую ​​же невосприимчивость к тестам Фридмана и Касиски, что и вариант с действующим ключом.

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

Шифровальное колесо Конфедерации, захваченное при сдаче Мобила, Алабама, в мае 1865 г. - Национальный криптологический музей

Виженер фактически изобрел более надежный шифр, шифр с автоключом. Название «шифр Виженера» стало ассоциироваться с более простым полиалфавитным шифром. Фактически, эти два шифра часто путали, и оба иногда назывались le chiffre unéchiffrable. Бэббидж фактически взломал гораздо более сильный автоключевой шифр, но Касиски, как правило, приписывают первое опубликованное решение полиалфавитных шифров с фиксированным ключом.

Простым вариантом является шифрование с использованием метода дешифрования Виженера и дешифрование с использованием шифрования Виженера. Этот метод иногда называют «Вариант Бофорта». Он отличается от шифра Бофорта, созданного Фрэнсисом Бофортом, который похож на шифр Виженера, но использует немного измененный механизм шифрования и таблицу. Шифр Бофорта - это обратный шифр.

. Несмотря на очевидную силу шифра Виженера, он так и не получил широкого распространения в Европе. Шифр Гронсфельда - это вариант, созданный графом Гронсфельдом (Хосе Максимилаан ван Гронсфельд в девичестве ван Бронкхорст); он идентичен шифру Виженера, за исключением того, что в нем используется всего 10 различных шифралфавитов, соответствующих цифрам от 0 до 9). Ключ Гронсфельда 0123 такой же, как ключ Виженера в ABCD. Шифр Гронсфельда усилен, потому что его ключ не является словом, но он ослаблен, потому что в нем всего 10 шифровальных алфавитов. Это шифр Гронсфельда, который стал широко использоваться в Германии и Европе, несмотря на его недостатки.

См. Также

Ссылки

Цитаты

Источники

  • Бойтельшпахер, Альбрехт (1994). "Глава 2". Криптология. перевод с немецкого Дж. Криса Фишера. Вашингтон, округ Колумбия: Математическая ассоциация Америки. С. 27–41. ISBN 0-883-85504-6.
  • Сингх, Саймон (1999). "Глава 2: Le Chiffre Indéchiffrable". Кодовая книга. Якорная книга, Random House. ISBN 0-385-49532-3.
  • Хелен Ф. Гейнс (18 ноября 2014 г.). Криптоанализ: исследование шифров и их решение. Курьерская корпорация. п. 117. ISBN 978-0-486-80059-2.
  • Мендельсон, Чарльз Дж. (1940). «Блез де Виженера и« Шифр ​​Карре »». Труды Американского философского общества. 82 (2).

Примечания

Внешние ссылки

Статьи
Последняя правка сделана 2021-06-18 13:13:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru