Шифр Виженера: различия между версиями
[непроверенная версия] | [непроверенная версия] |
добавил источники |
|||
Строка 1: | Строка 1: | ||
{{nosources|дата=2014-11-24}} |
{{nosources|дата=2014-11-24}} |
||
[[Файл:Vigenere.jpg|right|thumbnail|Блез Виженер]] |
[[Файл:Vigenere.jpg|right|thumbnail|Блез Виженер]] |
||
'''Шифр Виженера''' ({{lang-fr|Chiffre de Vigenère}}) — метод полиалфавитного [[шифр]]ования буквенного текста с использованием ключевого слова. |
'''Шифр Виженера''' ({{lang-fr|Chiffre de Vigenère}}) — метод полиалфавитного [[шифр]]ования буквенного текста с использованием ключевого слова.<ref>{{Книга|автор=Martin, Keith M.|заглавие=Everyday Cryptography|ответственный=|издание=|место=|издательство=Oxford University Press|год=2012|страницы=|страниц=p. 142|isbn=978-0-19-162588-6}}</ref> |
||
Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джовани Баттиста Беллазо ({{lang-it|Giovan Battista Bellaso}}) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году, однако в XIX веке получил имя [[Виженер, Блез|Блеза Виженера]], французского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов [[криптоанализ]]а. |
Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джовани Баттиста Беллазо ({{lang-it|Giovan Battista Bellaso}}) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году, однако в XIX веке получил имя [[Виженер, Блез|Блеза Виженера]], французского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов [[криптоанализ]]а.<ref name=":1" /> |
||
== История == |
== История == |
||
Строка 13: | Строка 13: | ||
В 1518 году в развитии криптографии был сделан новый шаг благодаря появлению в германии первой печатной книги по криптографии. Аббат Иоганнес Тритемий, настоятель монастыря в Вюрцбурге, написал книгу «Полиграфия», в которой дается описание ряда шифров. Один из них использует "таблицу Тритемия" (ныне "таблицу Виженера") и развивает идею многоалфавитной замены. Система шифрования следующая: первая буква исходного текста шифруется по первой строке, вторая по второй и так далее. После использования последней строки следующая буква вновь шифруется по первой строке. В шифре Тритемия отсутствует ключ, секретом является сам способ шифрования.<ref name=":1" /> |
В 1518 году в развитии криптографии был сделан новый шаг благодаря появлению в германии первой печатной книги по криптографии. Аббат Иоганнес Тритемий, настоятель монастыря в Вюрцбурге, написал книгу «Полиграфия», в которой дается описание ряда шифров. Один из них использует "таблицу Тритемия" (ныне "таблицу Виженера") и развивает идею многоалфавитной замены. Система шифрования следующая: первая буква исходного текста шифруется по первой строке, вторая по второй и так далее. После использования последней строки следующая буква вновь шифруется по первой строке. В шифре Тритемия отсутствует ключ, секретом является сам способ шифрования.<ref name=":1" /> |
||
Следующий шаг в развитии предложенного Тритемием способа шифрования был сделан итальянцем Джовани Белазо. В 1553 году выходит в свет его брошюра "Шифр синьора Белазо". В этом шифре ключом является так называемый пароль - фраза или слово. Пароль записывался периодически над буквами открытого текста. Буква пароля, стоящая над соответствующей буквой открытого текста, указывала номер строки в таблице Тритемия, по которой следует проводить замену (шифрование) это буквы. |
Следующий шаг в развитии предложенного Тритемием способа шифрования был сделан итальянцем Джовани Белазо. В 1553 году выходит в свет его брошюра "Шифр синьора Белазо". В этом шифре ключом является так называемый пароль - фраза или слово. Пароль записывался периодически над буквами открытого текста. Буква пароля, стоящая над соответствующей буквой открытого текста, указывала номер строки в таблице Тритемия, по которой следует проводить замену (шифрование) это буквы.<ref name=":1" /> |
||
В последующем идеи Тритемия и Белазо развил соотечественние Белазо [[Джованни Баттиста Порта|Джованни Батиста Порта]]. Он предложил отказаться от алфавитного порядка следования букв в первой строке таблицы Тритемия и заменить этот порядок на некоторый произвольный, являющийся ключом шифра. Строки таблицы по-прежнему циклически сдвигались. В своей книге "О тайной переписке", (вышедшей в 1563 году <ref name=":0" />) Порта предложил [[биграммный шифр]], а также привел описание механического дискового устройства, реализующего биграммную замену. |
В последующем идеи Тритемия и Белазо развил соотечественние Белазо [[Джованни Баттиста Порта|Джованни Батиста Порта]]. Он предложил отказаться от алфавитного порядка следования букв в первой строке таблицы Тритемия и заменить этот порядок на некоторый произвольный, являющийся ключом шифра. Строки таблицы по-прежнему циклически сдвигались. В своей книге "О тайной переписке", (вышедшей в 1563 году <ref name=":0" />) Порта предложил [[биграммный шифр]], а также привел описание механического дискового устройства, реализующего биграммную замену.<ref name=":1" /> |
||
В середине XVI века в Италии появляется книга [[Кардано, Джероламо|Дж. Кардано]] "О тонкостях" с дополнением "О разных вещах". Там нашли отражение новые идеи криптографии: использование части самого передаваемого открытого текста в качестве ключа шифра (идея "самоключа") и новый способ шифрования, который вошел в историю как "[[Решётка Кардано|решетка Кардано]]". |
В середине XVI века в Италии появляется книга [[Кардано, Джероламо|Дж. Кардано]] "О тонкостях" с дополнением "О разных вещах". Там нашли отражение новые идеи криптографии: использование части самого передаваемого открытого текста в качестве ключа шифра (идея "самоключа") и новый способ шифрования, который вошел в историю как "[[Решётка Кардано|решетка Кардано]]".<ref name=":1" /> |
||
Посол Франции в Риме [[Виженер, Блез|Блез де Виженер]], познакомившись с трудами Тритемия, Белазо, Кардано, Порта, Альберти, также увлекся криптографией. В 1585 году он написал "Трактат о шифрах", в котором излагаются основы криптографии. В этом труде он замечает: "Все вещи в мире представляют собой шифр. Вся природа является просто шифром и секретным письмом". Эта мысль была позднее повторена [[Паскаль, Блез|Блезом Паскалем]] - одним из основоположников теории вероятностей, а в настоящее время и [[Винер, Норберт|Норбертом Винером]] - "отцом кибернетики". <ref name=":1">{{Книга|автор=Бабаш А.В., Шанкин Г.П.|заглавие=История криптографии. Часть I.|ссылка=https://www.worldcat.org/oclc/500089008|ответственный=|издание=|место=|издательство=М.: Гелиос АРВ|год=2002|страницы=240 с.|страниц=|isbn=5854380439}}</ref> |
Посол Франции в Риме [[Виженер, Блез|Блез де Виженер]], познакомившись с трудами Тритемия, Белазо, Кардано, Порта, Альберти, также увлекся криптографией. В 1585 году он написал "Трактат о шифрах", в котором излагаются основы криптографии. В этом труде он замечает: "Все вещи в мире представляют собой шифр. Вся природа является просто шифром и секретным письмом". Эта мысль была позднее повторена [[Паскаль, Блез|Блезом Паскалем]] - одним из основоположников теории вероятностей, а в настоящее время и [[Винер, Норберт|Норбертом Винером]] - "отцом кибернетики". <ref name=":1">{{Книга|автор=Бабаш А.В., Шанкин Г.П.|заглавие=История криптографии. Часть I.|ссылка=https://www.worldcat.org/oclc/500089008|ответственный=|издание=|место=|издательство=М.: Гелиос АРВ|год=2002|страницы=240 с.|страниц=|isbn=5854380439}}</ref> |
||
По сути дела Виженер объединил подходы Тритемия, Беллазо, Порта к шифрованию открытых текстов, по существу не внеся в них ничего оригинального. В наше время "шифр Виженера", состоящий в периодическом продолжении ключевого слова по таблице Тритемия, вытеснил имена его предшественников. [[Кан, Дэвид|Дэвид Кан]] в своей книге «Взломщики кодов» отозвался об этом осуждающе, написав, что история «проигнорировала важный факт и назвала шифр именем Виженера, несмотря на то, что он ничего не сделал для его создания». |
По сути дела Виженер объединил подходы Тритемия, Беллазо, Порта к шифрованию открытых текстов, по существу не внеся в них ничего оригинального. В наше время "шифр Виженера", состоящий в периодическом продолжении ключевого слова по таблице Тритемия, вытеснил имена его предшественников.<ref name=":1" /> [[Кан, Дэвид|Дэвид Кан]] в своей книге «Взломщики кодов» отозвался об этом осуждающе, написав, что история «проигнорировала важный факт и назвала шифр именем Виженера, несмотря на то, что он ничего не сделал для его создания»<ref name=":2">{{Книга|автор=David, Kahn|заглавие=The Codebreakers: The Story of Secret Writing|ответственный=|издание=|место=|издательство=Simon & Schuster|год=1999|страницы=|страниц=|isbn=0-684-83130-9}}</ref>. |
||
Шифр Виженера имел репутацию исключительно стойкого к «ручному» взлому. Известный писатель и математик Чарльз Лютвидж Доджсон ([[Льюис Кэрролл]]) назвал шифр Виженера невзламываемым в своей статье «Алфавитный шифр» {{lang-en|The Alphabet Cipher}}, опубликованной в детском журнале в 1868 году. В 1917 году [[Scientific American]] также отозвался о шифре Виженера, как о неподдающемся взлому. Это представление было опровергнуто после того, как [[Касиски, Фридрих|Касиски]] полностью взломал шифр в XIX веке, хотя известны случаи взлома этого шифра некоторыми опытными криптоаналитиками ещё в XVI веке. |
Шифр Виженера имел репутацию исключительно стойкого к «ручному» взлому. Известный писатель и математик Чарльз Лютвидж Доджсон ([[Льюис Кэрролл]]) назвал шифр Виженера невзламываемым в своей статье «Алфавитный шифр» {{lang-en|The Alphabet Cipher}}, опубликованной в детском журнале в 1868 году. В 1917 году [[Scientific American]] также отозвался о шифре Виженера, как о неподдающемся взлому. <ref>{{Книга|автор=Knudsen, Lars R.|заглавие=Block Ciphers—a survey|ответственный=|издание=|место=London|издательство=Springer|год=1997|страницы=|страниц=|isbn=3-540-65474-7}}</ref> Это представление было опровергнуто после того, как [[Касиски, Фридрих|Касиски]] полностью взломал шифр в XIX веке, хотя известны случаи взлома этого шифра некоторыми опытными криптоаналитиками ещё в XVI веке.<ref name=":2" /> |
||
Шифр Виженера достаточно прост для использования в полевых условиях, особенно если применяются шифровальные диски. Например, «конфедераты» использовали медный шифровальный диск для шифра Виженера в ходе [[Гражданская война в США|Гражданской войны]]. Послания Конфедерации были далеки от секретных, и их противники регулярно взламывали сообщения. Во время войны командование Конфедерации полагалось на три ключевых словосочетания: «Manchester Bluff», «Complete Victory» и — так как война подходила к концу — «Come Retribution». |
Шифр Виженера достаточно прост для использования в полевых условиях, особенно если применяются шифровальные диски. Например, «конфедераты» использовали медный шифровальный диск для шифра Виженера в ходе [[Гражданская война в США|Гражданской войны]]. Послания Конфедерации были далеки от секретных, и их противники регулярно взламывали сообщения. Во время войны командование Конфедерации полагалось на три ключевых словосочетания: «Manchester Bluff», «Complete Victory» и — так как война подходила к концу — «Come Retribution».<ref name=":2" /> |
||
Шифры Виженера с коротким периодическим лозунгом используются и в наши дни в системах шифрования, от которых не требуется высокая криптографическая стойкость. Так, например, они используются в программе-архиваторе "ARJ". |
Шифры Виженера с коротким периодическим лозунгом используются и в наши дни в системах шифрования, от которых не требуется высокая криптографическая стойкость. Так, например, они используются в программе-архиваторе "ARJ".<ref name=":3" /> |
||
[[Гилберт Вернам]] попытался улучшить взломанный шифр (он получил название шифр Вернама-Виженера в 1918 году), но, несмотря на его усовершенствования, шифр так и остался уязвимым к [[криптоанализ]]у. Однако работа Вернама в конечном итоге всё же привела к получению шифра, который действительно невозможно взломать. |
[[Гилберт Вернам]] попытался улучшить взломанный шифр (он получил название шифр Вернама-Виженера в 1918 году), но, несмотря на его усовершенствования, шифр так и остался уязвимым к [[криптоанализ]]у. Однако работа Вернама в конечном итоге всё же привела к получению [[Шифр Вернама|шифра Вернама]], который действительно невозможно взломать.<ref>{{Статья|автор=Stanislaw Jarecki|заглавие=Crypto Overview, Perfect Secrecy, One-time Pad|ссылка=http://www.ics.uci.edu/~stasio/fall04/lect1.pdf|язык=|издание=University of California|тип=|год=2004|месяц=|число=|том=|номер=|страницы=|issn=}}</ref> |
||
== Описание == |
== Описание == |
||
Строка 59: | Строка 59: | ||
<math>m_j = c_j - k_j \pmod{n} </math><ref>{{Книга|автор=Richard A. Mollin|заглавие=Codes: The Guide to Secrecy From Ancient to Modern Times|ответственный=|издание=|место=|издательство=Chapman and Hall/CRC|год=2005|страницы=|страниц=704 Pages|isbn=9781584884705}}</ref> |
<math>m_j = c_j - k_j \pmod{n} </math><ref>{{Книга|автор=Richard A. Mollin|заглавие=Codes: The Guide to Secrecy From Ancient to Modern Times|ответственный=|издание=|место=|издательство=Chapman and Hall/CRC|год=2005|страницы=|страниц=704 Pages|isbn=9781584884705}}</ref> |
||
: |
: |
||
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять чаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.<ref>{{Книга|автор=Жельников В|заглавие=Кpиптография от папируса до компьютера|ответственный=|издание=М.: ABF, 1996.|место=|издательство=|год=|страницы=|страниц=335 с.|isbn=ISBN 5-87484-054-0}}</ref> |
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять чаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.<ref name=":3">{{Книга|автор=Жельников В|заглавие=Кpиптография от папируса до компьютера|ответственный=|издание=М.: ABF, 1996.|место=|издательство=|год=|страницы=|страниц=335 с.|isbn=ISBN 5-87484-054-0}}</ref> |
||
== Криптоанализ == |
== Криптоанализ == |
||
Строка 106: | Строка 106: | ||
=== Тест Фридмана === |
=== Тест Фридмана === |
||
{{main|Индекс совпадений}} |
{{main|Индекс совпадений}} |
||
Тест Фридмана (иногда называемый каппа-тестом) был изобретен Вильямом Фридманом в 1920 году. Фридман использовал [[Индекс совпадений|индекс совпадения]], который измеряет частоты повторения символов, чтобы взломать шифр. |
Тест Фридмана (иногда называемый каппа-тестом) был изобретен Вильямом Фридманом в 1920 году. Фридман использовал [[Индекс совпадений|индекс совпадения]], который измеряет частоты повторения символов, чтобы взломать шифр. Зная вероятность <math>\kappa_p</math> того, что два случайно выбранных символа текста совпадают (примерно 0,067 для англ. языка) и вероятность совпадения двух случайно выбранных символов алфавита <math>\kappa_r</math> (примерно 1 / 26 = 0,0385 для англ. языка), можно оценить длину ключа как: |
||
Зная вероятность <math>\kappa_p</math> того, что два случайно выбранных символа текста совпадают (примерно 0,067 для англ. языка) и вероятность совпадения двух случайно выбранных символов алфавита <math>\kappa_r</math> (примерно 1 / 26 = 0,0385 для англ. языка), можно оценить длину ключа как: |
|||
: <math>\frac{\kappa_p-\kappa_r}{\kappa_o-\kappa_r}.</math> |
: <math>\frac{\kappa_p-\kappa_r}{\kappa_o-\kappa_r}.</math> |
||
Строка 115: | Строка 114: | ||
: <math>\kappa_o = \frac{\sum_{i=1}^c n_i(n_i - 1)}{N(N-1)},</math> |
: <math>\kappa_o = \frac{\sum_{i=1}^c n_i(n_i - 1)}{N(N-1)},</math> |
||
где ''С'' — размер алфавита (26 символов для англ. языка), ''N'' — длина текста, и <math>n_i</math> — наблюдаемые частоты повторения символов зашифрованного текста. |
где ''С'' — размер алфавита (26 символов для англ. языка), ''N'' — длина текста, и <math>n_i</math> — наблюдаемые частоты повторения символов зашифрованного текста. Однако, это только приблизительное значение, точность которого увеличивается при большем размере текста. На практике это было бы необходимо для перебора различных ключей приближаясь к исходному.<ref>{{Книга|автор=Henk C.A. van Tilborg|заглавие=Encyclopedia of Cryptography and Security|ответственный=|издание=|место=|издательство=Springer|год=2005|страницы=|страниц=115|isbn=038723473X}}</ref> |
||
Однако, это только приблизительное значение, точность которого увеличивается при большем размере текста. На практике это{{что?}} было бы необходимо для перебора различных ключей приближаясь к исходному. |
|||
=== Частотный анализ === |
=== Частотный анализ === |
Версия от 16:27, 12 декабря 2016
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Шифр Виженера (фр. Chiffre de Vigenère) — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова.[1]
Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джовани Баттиста Беллазо (итал. Giovan Battista Bellaso) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году, однако в XIX веке получил имя Блеза Виженера, французского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов криптоанализа.[2]
История
В 1466 году Леон Альберти, знаменитый архитектор и философ представил трактат о шифрах в папскую канцелярию. В трактате рассматриваются различные способы шифрования, в том числе маскировка открытого текста в некотором вспомогательном тексте. Работа завершается собственным шифром, который он назвал «шифр, достойный королей». Это был многоалфавитный шифр, реализованный в виде шифровального диска. Суть заключается в том, что в данном шифре используется несколько замен в соответствии с ключом. Позднее Альберти изобрел код с перешифровкой. Данное изобретение значительно опередило свое время, поскольку данный тип шифра стал применяться в странах Европы лишь 400 лет спустя.[3]
В 1518 году в развитии криптографии был сделан новый шаг благодаря появлению в германии первой печатной книги по криптографии. Аббат Иоганнес Тритемий, настоятель монастыря в Вюрцбурге, написал книгу «Полиграфия», в которой дается описание ряда шифров. Один из них использует "таблицу Тритемия" (ныне "таблицу Виженера") и развивает идею многоалфавитной замены. Система шифрования следующая: первая буква исходного текста шифруется по первой строке, вторая по второй и так далее. После использования последней строки следующая буква вновь шифруется по первой строке. В шифре Тритемия отсутствует ключ, секретом является сам способ шифрования.[2]
Следующий шаг в развитии предложенного Тритемием способа шифрования был сделан итальянцем Джовани Белазо. В 1553 году выходит в свет его брошюра "Шифр синьора Белазо". В этом шифре ключом является так называемый пароль - фраза или слово. Пароль записывался периодически над буквами открытого текста. Буква пароля, стоящая над соответствующей буквой открытого текста, указывала номер строки в таблице Тритемия, по которой следует проводить замену (шифрование) это буквы.[2]
В последующем идеи Тритемия и Белазо развил соотечественние Белазо Джованни Батиста Порта. Он предложил отказаться от алфавитного порядка следования букв в первой строке таблицы Тритемия и заменить этот порядок на некоторый произвольный, являющийся ключом шифра. Строки таблицы по-прежнему циклически сдвигались. В своей книге "О тайной переписке", (вышедшей в 1563 году [3]) Порта предложил биграммный шифр, а также привел описание механического дискового устройства, реализующего биграммную замену.[2]
В середине XVI века в Италии появляется книга Дж. Кардано "О тонкостях" с дополнением "О разных вещах". Там нашли отражение новые идеи криптографии: использование части самого передаваемого открытого текста в качестве ключа шифра (идея "самоключа") и новый способ шифрования, который вошел в историю как "решетка Кардано".[2]
Посол Франции в Риме Блез де Виженер, познакомившись с трудами Тритемия, Белазо, Кардано, Порта, Альберти, также увлекся криптографией. В 1585 году он написал "Трактат о шифрах", в котором излагаются основы криптографии. В этом труде он замечает: "Все вещи в мире представляют собой шифр. Вся природа является просто шифром и секретным письмом". Эта мысль была позднее повторена Блезом Паскалем - одним из основоположников теории вероятностей, а в настоящее время и Норбертом Винером - "отцом кибернетики". [2]
По сути дела Виженер объединил подходы Тритемия, Беллазо, Порта к шифрованию открытых текстов, по существу не внеся в них ничего оригинального. В наше время "шифр Виженера", состоящий в периодическом продолжении ключевого слова по таблице Тритемия, вытеснил имена его предшественников.[2] Дэвид Кан в своей книге «Взломщики кодов» отозвался об этом осуждающе, написав, что история «проигнорировала важный факт и назвала шифр именем Виженера, несмотря на то, что он ничего не сделал для его создания»[4].
Шифр Виженера имел репутацию исключительно стойкого к «ручному» взлому. Известный писатель и математик Чарльз Лютвидж Доджсон (Льюис Кэрролл) назвал шифр Виженера невзламываемым в своей статье «Алфавитный шифр» англ. The Alphabet Cipher, опубликованной в детском журнале в 1868 году. В 1917 году Scientific American также отозвался о шифре Виженера, как о неподдающемся взлому. [5] Это представление было опровергнуто после того, как Касиски полностью взломал шифр в XIX веке, хотя известны случаи взлома этого шифра некоторыми опытными криптоаналитиками ещё в XVI веке.[4]
Шифр Виженера достаточно прост для использования в полевых условиях, особенно если применяются шифровальные диски. Например, «конфедераты» использовали медный шифровальный диск для шифра Виженера в ходе Гражданской войны. Послания Конфедерации были далеки от секретных, и их противники регулярно взламывали сообщения. Во время войны командование Конфедерации полагалось на три ключевых словосочетания: «Manchester Bluff», «Complete Victory» и — так как война подходила к концу — «Come Retribution».[4]
Шифры Виженера с коротким периодическим лозунгом используются и в наши дни в системах шифрования, от которых не требуется высокая криптографическая стойкость. Так, например, они используются в программе-архиваторе "ARJ".[6]
Гилберт Вернам попытался улучшить взломанный шифр (он получил название шифр Вернама-Виженера в 1918 году), но, несмотря на его усовершенствования, шифр так и остался уязвимым к криптоанализу. Однако работа Вернама в конечном итоге всё же привела к получению шифра Вернама, который действительно невозможно взломать.[7]
Описание
В шифре Цезаря каждая буква алфавита сдвигается на несколько позиций; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее. Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат (таблица) Виженера. Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова. Например, предположим, что исходный текст имеет такой вид:
ATTACKATDAWN
Человек, посылающий сообщение, записывает ключевое слово («LEMON») циклически до тех пор, пока его длина не будет соответствовать длине исходного текста:
LEMONLEMONLE
Первый символ исходного текста A зашифрован последовательностью L, которая является первым символом ключа. Первый символ L шифрованного текста находится на пересечении строки L и столбца A в таблице Виженера. Точно так же для второго символа исходного текста используется второй символ ключа; то есть второй символ шифрованного текста X получается на пересечении строки E и столбца T. Остальная часть исходного текста шифруется подобным способом.
Исходный текст: ATTACKATDAWN Ключ: LEMONLEMONLE Зашифрованный текст: LXFOPVEFRNHR
Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста. Следующие символы зашифрованного текста расшифровываются подобным образом.
Если - количество букв в алфавите, - буквы открытого текста, - буквы ключа, т шифрование Виженера можно записать следующим образом:
И расшифровывание:
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять чаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.[6]
Криптоанализ
Шифр Виженера «размывает» характеристики частот появления символов в тексте, но некоторые особенности появления символов в тексте остаются. Главный недостаток шифра Виженера состоит в том, что его ключ повторяется. Поэтому простой криптоанализ шифра может быть построен в два этапа:
- Поиск длины ключа. Можно анализировать распределение частот в зашифрованном тексте с различным прореживанием. То есть брать текст, включающий каждую 2-ю букву зашифрованного текста, потом каждую 3-ю и т. д. Как только распределение частот букв будет сильно отличаться от равномерного (например, по энтропии), то можно говорить о найденной длине ключа.
- Криптоанализ. Совокупность l шифров Цезаря (где l — найденная длина ключа), которые по отдельности легко взламываются.
Тесты Фридмана и Касиски могут помочь определить длину ключа.
Чарльз Беббидж был первым, кто разработал алгоритм атаки на шифр Виженера в 1854 году. Стимулом к разработке алгоритма послужил обмен письмами с Джоном Х. Б. Твейтсом. Он заявил, что создал новый шифр, и отправил его в «Journal of the Society of the Arts»; когда Беббидж показал, что шифр Твейтса является лишь частным случаем шифра Виженера, Твейтс предложил ему его взломать. Беббидж расшифровал текст, который оказался поэмой «The Vision of Sin» Альфреда Теннисона, зашифрованной ключевым словом Emily — именем жены поэта. Но он не опубликовал свое открытие. Поэтому данный алгоритм назван в честь Фридриха Вильгельма Касиски, офицера прусской армии, который независимо от Беббиджа разработал такой же алгоритм в 1863 году. И только в 20 веке, когда ученые исследовали заметки Беббиджа, появилась информация о первом изобретателе этого алгоритма.[9]
Идея этого метода основана на периодичности потока ключей. Кроме того, в естественном языке существуют часто встречаемые буквосочетания: биграммы и триграммы. Учитывая это, возникает надежда, что повторяющиеся наборы символов в шифротексте — след повторений популярных биграмм и триграмм открытого текста. Расстояние между повторениями в таком случае должно быть кратно длине лозунга. Слодовательно, вычислив наибольший общий делитель всех таких расстояний, мы получим рабочую гипотезу о длине ключа.
В качестве примера рассмотрим следующую криптограмму:
UTPDHUG NYH USVKCG MVCE FXL KQIB. WX RKU GI TZN, RLS BHZLXMSNP KDKS; СЕВ IH HKEWIBA, YYM SRB PER SBS, JV UPL О UVADGR HRRWXF. JV ZTVOOV УН ZCQU У UKWGEB, PL UQFB Р FOUKCG, TBF RQ VHCF R KPG, 0U КЕТ ZCQU MAW QKKW ZGSY, ЕР PGM QKETK UQEB DER EZRN, MCYE, MG UCTESVA, WP KFT ZCQU MAW KOIJS, LCOV NTHDNV JPNUJVB IH GGV RWX ONKCGTHKFL XG VKD, ZJM VG CCI MVGD JPNUJ, RLS EWVKJT ASGUCS MVGD; DDK VG NYH PWUV CCHIIY RD DBQN RWTH PFRWBBI VTTK VCGNTGSF FL IAWU XJDUS, HFP VHSF, RR LAWEY QDFS RVMEES FZB СНН JRTT MVGZP UBZN FD ATIIYRTK WP КЕТ HIVJCI; TBF BLDPWPX RWTH ULAW TG VYCHX KQLJS US DCGCW OPPUPR, VG KFDNUJK GI JIKKC PL KGCJ lAOV KFTR GJFSAW KTZLZES WG RWXWT VWTL WP XPXGG, CJ EPOS VYC BTZCUW XG ZGJQ PMHTRAIBJG WMGEG. JZQ DPB JVYGM ZCLEWXR:CEB lAOV NYH JIKKC TGCWXE UHE JZK. WX VCULD YTTKETK WPKCGVCWIQT PWVY QEBFKKQ, QNH NZTTWIREL IAS VERPE ODJRXGSPTC EKWPTGEES, GMCG TTVVPLTEEJ; YCW WV NYH TZYRWH LOKU MU AWO, KEPM VG BLTP VQN RD DSGG AWKWUKKPL KGCJ, XY GPP KPG ONZTT ICUJCHLSE KET DBQHJTWUG. DYN MVCK ZT MEWCW HTWE ED JL, GPU YAE CH LQ! PGR UE, YH MWPP RXE CDJCGOSE, XMS UZGJQJL, SXVPN HBG!
Исследуем расстояния между повторениями биграммы WX в приведенном выше шифротексте. Некоторые из расстояний между повторениями этого буквосочетания равны 9, 21, 66 и 30. Отдельные совпадения могут возникнуть случайно, в то время как остальные содержат информацию о длине ключевого слова. Вычислим попарные наибольшие общие делители этих чисел.
НОД (30,66) = 6, НОД (3,9) = НОД (9,66) = НОД (9,30) = НОД (21,66) = 3.
Маловероятно, что ключевое слово состоит из трех букв, так что будем считать, что расстояния 9 и 21 попали случайно, а длина ключа равна 6.[10]
Тест Фридмана
Тест Фридмана (иногда называемый каппа-тестом) был изобретен Вильямом Фридманом в 1920 году. Фридман использовал индекс совпадения, который измеряет частоты повторения символов, чтобы взломать шифр. Зная вероятность того, что два случайно выбранных символа текста совпадают (примерно 0,067 для англ. языка) и вероятность совпадения двух случайно выбранных символов алфавита (примерно 1 / 26 = 0,0385 для англ. языка), можно оценить длину ключа как:
Из наблюдения за частотой совпадения следует:
где С — размер алфавита (26 символов для англ. языка), N — длина текста, и — наблюдаемые частоты повторения символов зашифрованного текста. Однако, это только приблизительное значение, точность которого увеличивается при большем размере текста. На практике это было бы необходимо для перебора различных ключей приближаясь к исходному.[11]
Частотный анализ
Как только длина ключа становится известной, зашифрованный текст можно записать во множество столбцов, каждый из которых соответствует одному символу ключа. Каждый столбец состоит из исходного текста, который зашифрован шифром Цезаря; ключ к шифру Цезаря является всего-навсего одним символом ключа для шифра Виженера, который используется в этом столбце. Используя методы, подобные методам взлома шифра Цезаря, можно расшифровать зашифрованный текст. Усовершенствование теста Касиски, известное как метод Кирхгофа, заключается в сравнении частоты появления символов в столбцах с частотой появления символов в исходном тексте для нахождения ключевого символа для этого столбца. Когда все символы ключа известны, криптоаналитик может легко расшифровать шифрованный текст, получив исходный текст. Метод Кирхгофа не применим, когда таблица Виженера скремблирована, вместо использования обычной алфавитной последовательности, хотя тест Касиски и тесты совпадения всё ещё могут использоваться для определения длины ключа для этого случая.
Варианты
Существует, конечно, много других легкозапоминающихся квадратов, которые могут применяться в качестве основы для многоалфавитной системы так же, как и квадрат Виженера. Одним из наиболее известных является квадрат Бьюфорда. Его строками являются строки квадрата Виженера, записанные в обратном порядке. Он назван в честь адмирала сэра Френсиса Бьюфорта - создателя шкалы для определения скорости ветра. Если в квадрате Виженера первая строка и столбец указывают на строки и столбцы соответственно, то в квадрате Бьюфорта этим целям служат первая строка и последний столбец. [12]
Вариант running key (бегущий ключ) шифра Виженера когда-то был невзламываемым. Эта версия использует в качестве ключа блок текста, равный по длине исходному тексту. Так как ключ равен по длине сообщению, то методы, предложенные Фридманом и Касиски, не работают (так как ключ не повторяется). В 1920 году Фридман первым обнаружил недостатки этого варианта. Проблема с running key шифра Виженера состоит в том, что криптоаналитик имеет статистическую информацию о ключе (учитывая, что блок текста написан на известном языке) и эта информация будет отражаться в шифрованном тексте. Если ключ действительно случайный, его длина равна длине сообщения и он использовался единожды, то шифр Виженера теоретически будет невзламываемым, фактически этот вариант будет уже шифром Вернама-Виженера, для которого доказана абсолютная криптостойкость.
Виженер фактически изобрёл более стойкий шифр — шифр с автоключом. Несмотря на это, «шифр Виженера» ассоциируется с более простым многоалфавитным шифром. Фактически эти два шифра часто путали, называя их le chiffre indechiffrable. Беббидж фактически взломал более стойкий шифр с автоключом, в то время когда Касиски издал первое решение взлома многоалфавитного шифра с фиксированным ключом. Метод Виженера шифровки и расшифровки сообщений иногда относится к «варианту Битфорда». Его отличие от шифра Битфорда, изобретённого сэром Френсисом Битфордом, который, тем не менее, подобен шифру Виженера, заключается в использовании немного изменённого механизма шифрования и таблиц.
Несмотря на очевидную стойкость шифра Виженера, он широко не использовался в Европе. Большее распространение получил шифр Гронсфельда, созданный графом Гронсфельдом, идентичный шифру Виженера, за исключением того, что он использовал только 10 различных алфавитов (соответствующих цифрам от 0 до 9). Преимущество шифра Гронсфельда состоит в том, что в качестве ключа используется не слово, а цифровая последовательность, которая повторяется до тех пор, пока не станет равной длине шифруемого сообщения. Шифр Гронсфельда широко использовался по всей Германии и Европе, несмотря на его недостатки.
Примечания
- ↑ Martin, Keith M. Everyday Cryptography. — Oxford University Press, 2012. — p. 142 с. — ISBN 978-0-19-162588-6.
- ↑ 1 2 3 4 5 6 7 Бабаш А.В., Шанкин Г.П. История криптографии. Часть I.. — М.: Гелиос АРВ, 2002. — С. 240 с.. — ISBN 5854380439.
- ↑ 1 2 Носов В. А. Краткий исторический очерк развития криптографии (рус.) // Московский университет и развитие криптографии а России. Материалы конференции в МГУ.. — (17 октября 2002).
- ↑ 1 2 3 David, Kahn. The Codebreakers: The Story of Secret Writing. — Simon & Schuster, 1999. — ISBN 0-684-83130-9.
- ↑ Knudsen, Lars R. Block Ciphers—a survey. — London: Springer, 1997. — ISBN 3-540-65474-7.
- ↑ 1 2 Жельников В. Кpиптография от папируса до компьютера. — М.: ABF, 1996.. — 335 с. с. — ISBN ISBN 5-87484-054-0.
- ↑ Stanislaw Jarecki. Crypto Overview, Perfect Secrecy, One-time Pad // University of California. — 2004.
- ↑ Richard A. Mollin. Codes: The Guide to Secrecy From Ancient to Modern Times. — Chapman and Hall/CRC, 2005. — 704 Pages с. — ISBN 9781584884705.
- ↑ Singh S. The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography. — New York City: Doubleday, 1999. — 416 p. с. — ISBN 978-1-85702-879-9.
- ↑ Н. Смарт. Криптография.. — Москва: Техносфера, 2005. — 528 с. — ISBN 5-94836-043-1.
- ↑ Henk C.A. van Tilborg. Encyclopedia of Cryptography and Security. — Springer, 2005. — 115 с. — ISBN 038723473X.
- ↑ Arto Salomaa. Public-Key Cryptography. — ISBN 3540528318.
Литература
- Бабаш А.В., Шанкин Г.П. История криптографии. Часть I. — М.: Гелиос АРВ, 2002. — 240 с. — ISBN 5854380439.
- Жельников В. Кpиптография от папируса до компьютера — М.: ABF, 1996. — 336 с. — ISBN 978-5-87484-054-9
- Arto Salomaa. Public-Key Cryptography. — ISBN 3540528318.
- Н. Смарт. Криптография.. — Москва: Техносфера, 2005. — 528 с. — ISBN 5-94836-043-1.
- Singh S. The Code Book, Histoire des codes secrets (англ.): The Science of Secrecy from Ancient Egypt to Quantum Cryptography, De l'Égypte des pharaons à l'ordinateur quantique — New York City: Doubleday, Knopf Doubleday Publishing Group, 1999. — 416 p.
- Richard A. Mollin. Codes: The Guide to Secrecy From Ancient to Modern Times. — Chapman and Hall/CRC, 2005. — 704 Pages с. — ISBN 9781584884705.
Ссылки
- Носов В. А. Краткий исторический очерк развития криптографии (рус.) // Московский университет и развитие криптографии а России. Материалы конференции в МГУ.. — (17 октября 2002).