Сообщение на тему шифр виженера

Обновлено: 06.05.2024

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.04.2014
Размер файла 1,4 M

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Задание на курсовое проектирование

Демонстрация работы программы

Список используемой литературы

Введение

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

Шифр виженера

Шифр Виженера -- метод полиалфавитного шифрования буквенного текста с использованием ключевого слова.

Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джован Баттиста Беллазо (итал. Giovan Battista Bellaso) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году, однако в XIX веке получил имя Блеза Виженера, французского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов криптоанализа.

Описание алгоритма

В шифре Цезаря каждая буква алфавита сдвигается на несколько строк; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее. Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат (таблица) Виженера. Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря. На разных этапах кодировки шифр Виженера использует различные алфавиты из этой таблицы. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова.

Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста. Следующие символы зашифрованного текста расшифровываются подобным образом.

Если буквы A-Z соответствуют числам 0-25, то шифрование Виженера можно записать в виде формулы:

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

1. Поиск длины ключа. Можно анализировать распределение частот в зашифрованном тексте с различным прореживанием. То есть брать текст, включающий каждую 2-ю букву зашифрованного текста, потом каждую 3-ю и т. д. Как только распределение частот букв будет сильно отличаться от равномерного (например, по энтропии), то можно говорить о найденной длине ключа.

2. Криптоанализ. Совокупность l шифров Цезаря (где l -- найденная длина ключа), которые по отдельности легко взламываются.

Таблица Виженера для кириллицы:

шифр виженера программа пересчет

Таблица Виженера для латиницы:

Листинг программы

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Несмотря на то что шифр многократно перерабатывался, впервые его описал Джован Баттиста Беллазо в 1553 году. Впоследствии он получил имя французского дипломата Блеза Виженера. Данный вариант достаточно прост для реализации и понимания, поскольку он является наиболее доступным методом криптоанализа.

Описание метода

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

Способ зашифровки

Процесс расшифрования

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

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

Важные советы

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

Создатель шифра

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

Предупреждение к методу

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

Шифрование данных

Дополнительные методы расшифровки

Способ шифрования

Проведение анализа частоты

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


Шифр Виженера (фр. Chiffre de Vigenère ) — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова.

Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джован Баттиста Беллазо (итал. Giovan Battista Bellaso ) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году, однако в XIX веке получил имя Блеза Виженера, французского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов криптоанализа.

Содержание

История



То, что сейчас известно под шифром Виженера, впервые описал Джованни Батиста Беллазо в своей книге La cifra del. Sig. Giovan Battista Bellasо. Он использовал идею tabula recta Трисемуса, но добавил ключ для переключения алфавитов шифра через каждую букву.

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

Описание


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

В шифре Цезаря каждая буква алфавита сдвигается на несколько строк; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее. Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат (таблица) Виженера. Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря. На разных этапах кодировки шифр Виженера использует различные алфавиты из этой таблицы. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова. Например, предположим, что исходный текст имеет вид:

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

Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста. Следующие символы зашифрованного текста расшифровываются подобным образом.

Если буквы A-Z соответствуют числам 0-25, то шифрование Виженера можно записать в виде формулы:

C_i \equiv (P_i + K_i) \mod\ 26

P_i \equiv (C_i - K_i + 26) \mod\ 26

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



  1. Поиск длины ключа. Можно анализировать распределение частот в зашифрованном тексте с различным прореживанием. То есть брать текст, включающий каждую 2-ю букву зашифрованного текста, потом каждую 3-ю и т. д. Как только распределение частот букв будет сильно отличаться от равномерного (например, по энтропии), то можно говорить о найденной длине ключа.
  2. Криптоанализ. Совокупность l шифров Цезаря (где l — найденная длина ключа), которые по отдельности легко взламываются.

Тесты Фридмана и Касиски могут помочь определить длину ключа.

Метод Касиски

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

Расстояние между повторяющимися DYDUXRMH равно 18, это позволяет сделать вывод, что длина ключа равна одному из значений: 18,9,6,3 или 2. Расстояние между повторяющимися NQD равно 20. Из этого следует, что длина ключа равна 20 или 10, или 5, или 4 или 2. Сравнивая возможные длины ключей, можно сделать вывод, что длина ключа (почти наверняка) равна 2.

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

Тест Фридмана (иногда называемый каппа-тест) был изобретен Вильямом Фридманом в 1920 году. Фридман использовал индекс совпадения, который измеряет частоты повторения символов, чтобы взломать шифр. Зная вероятность того, что два случайно выбранных символа текста совпадают (примерно 0,067 для англ. языка) и вероятность совпадения двух случайно выбранных символов алфавита (примерно 1 / 26 = 0,0385 для англ. языка), можно оценить длину ключа как:

<\kappa_p-\kappa_r></p>
<p>\over<\kappa_o-\kappa_r>

Из наблюдения за частотой совпадения следует:

\kappa_o=\frac<\sum_<i=1></p>
<p>^n_i(n_i -1)>

Где С — размер алфавита (26 символов для англ. языка), N — длина текста, и до — наблюдаемые частоты повторения символов зашифрованного текста. Однако, это только приблизительное значение, точность которого увеличивается при большем размере текста. На практике это было бы необходимо для перебора различных ключей приближаясь к исходному.

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

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

Варианты

Несмотря на очевидную стойкость шифра Виженера, он широко не использовался в Европе. Большее распространение получил шифр Гронсфилда, созданный графом Гронсфилдом, идентичный шифру Виженера, за исключением того, что он использовал только 10 различных алфавитов (соответствующих цифрам от 0 до 9). Преимущество шифра Гронсфилда состоит в том, что в качестве ключа используется не слово, а недостаток — в небольшом количестве алфавитов. Шифр Гронсфилда широко использовался по всей Германии и Европе, несмотря на его недостатки.

История информационной безопасности: как шифр Виженера, популярный еще с XVI века, стал основой для невзламываемого шифра XX века.


11 сентября 2015

Один из самых знаменитых и интересных шифров, призванных решить эту проблему, — это так называемый шифр Виженера. Названный именем французского дипломата XVI века, он был на самом деле изобретен независимо друг от друга разными людьми. Что интересно, Блеза Виженера при этом среди них не было, он лишь убедил в свое время Генриха III использовать его, а название это шифр получил уже в XIX веке.

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

Как шифр из XVI века стал основой для невзламываемого шифра XX века

У нас есть 26 разных алфавитов замены, теперь нужно решить, по какому принципу мы их меняем. Простой переход к следующему алфавиту для каждой новой буквы был бы уже некоторым усложнением, но по-настоящему сложным для взлома этот шифр становится с использованием ключевой фразы.

Как шифр из XVI века стал основой для невзламываемого шифра XX века

Как шифр из XVI века стал основой для невзламываемого шифра XX века

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

Как шифр из XVI века стал основой для невзламываемого шифра XX века

В целом шифр имел репутацию очень надежного. Его называл невзламываемым математик Чарльз Лутвидж Доджсон (более известный как писатель Льюис Кэрролл), и восхвалял журнал Scientific American, однако гораздо более широкое распространение получила его модификация, известная как шифр Гронсфилда. Он отличался тем, что алфавитов замены в нем было всего 10 (по числу цифр), а ключевая фраза была не словом, а числом.

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

Первым успешную атаку на шифр Виженера (если быть совсем точным — на одну из его модификаций, но метод применим и к оригинальной версии) осуществил в 1854 году еще один знаменитый англичанин — Чарльз Бэббидж, один из пионеров вычислительной техники. Но опубликовал схему анализа уже другой исследователь — Фридрих Касиски девятью годами позже.

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

Но от этой идеи оставался один шаг до следующей — использования в качестве ключа не осмысленного текста, а случайной последовательности знаков.

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

Читайте также: