No Image

Таблица виженера для русского алфавита

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

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

Введение

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

Шифр Виженера представляет собой один из таких методов полиалфавитного способа шифровки информации путем внесения изменений в буквенном тексте, которые можно прочитать лишь зная ключи. Эта многоалфавитная замена была изобретена не одномоментно. Первым ученым, описавшим данный метод, стал Дж. Баттиста Беллазо. Он сделал это на страницах книги La cifra del. Sig. в 1553 году, однако метод был назван именем Б. Виженера, дипломата из Франции. Его методология довольно проста в понимании и исполнении. А также является недоступной для обычных средств криптоанализа.

Исторические данные

Л. Альберти, известный специалист областей архитектуры и философии, в 1466 г. предоставил на осмотр и оценку трактат, в котором содержалась информация о шифровании, его направили в канцелярию Папы Римского. Информация повествовала о различных способах выполнения данного действия. Конечный результат работы был представлен им в разработанном лично способе кодировки данных, который он называл «шифром, достойным королей». Данный механизм шифрования представлял собой многоалфавитную структуру, образовавшую шифровальный диск. Изобретение печатного устройства в Германии в 1518 г. дало новое пространство для развития криптографии.

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

Середина XVI века, Италия. Здесь появилось книжное издание работы Дж. Кардано, нацеленной на отражение нововведения в криптографические идеи. Например, появилось понятие «решетки Кардано».

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

Отзывы о шифре

Таблица Виженера и способы кодировки данных, которые вытекали из ее использования, были чрезвычайно стойкими к взлому «ручного» типа. Специалист математики и писатель Л. Кэрролл присвоил этой системе шифра звание «невзламываемого», что выразил в статье об «Алфавитном шифре», опубликованной в 1868 г.

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

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

Общие сведения

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

Дешифровка

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

  1. Определение длины пароля. Это делается при помощи анализа частоты распределения различных текстовых прореживаний. Другими словами, берут источник с шифром, в котором каждая вторая буква является частью кода, потом используют третью и т. д. Если удалось дойти до момента, где частотное распределение имеет слишком большое отличие в равномерности, то можно и определить длину слова, используемого в качестве ключа.
  2. Использование средств криптоанализа, что представляет собой общее количество шифров Цезаря, которые можно легко взломать, рассматривая их отдельно друг от друга.
Читайте также:  Как выяснить принадлежит ли точка графику функции

Длинна определяется посредством тестов Касиски и Фридмана.

Способ Касиски

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

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

Каппа-тест

Еще одним способом дешифровки таблицы Виженера и вытекающей из нее кодировки можно считать тест, созданный В. Фридманом. Этот метод был разработан в 1920 году. Здесь было использовано понятие индекса совпадений, который мог измерить частоту повторения конкретных знаков, позволившую бы взломать систему шифра. Располагая информацией о том, что случайно выбранные символы могут совпадать с шансом, примерно равным 0.067% (для английского языка), можно и определить вероятность их совпадения в тексте. Благодаря этому можно создать оценку длины ключа.

Анализ частоты

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

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

Вариативность

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

Подводя итоги

Пример таблицы Виженера можно увидеть на рисунке ниже.

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

[1] . Неудобство рассмотренных выше шрифтов мо- ноалфавитных подстановок очевидно, так как в случае использования стандартного алфавита таблица частот встречаемости букв алфавита позволяет определить один или несколько символов, а этого иногда достаточно для вскрытия шифра («Пляшущие человечки» Конан Дойля или «Золотой жук» Эдгара По). Поэтому использовались различные приемы для того, чтобы затруднить дешифрование, например таблица Виженера, которая представляет собой квадратную матрицу с числом строк и столбцов, равным количеству букв алфавита. Для шифрования по этой схеме используется таблица, где первая строка состоит из 26 букв латинского алфавита (ниже в примере приводится кириллическая таблица для шифра Виженера), а каждая последующая строка представляет собой циклический сдвиг предыдущей на одну позицию.

Читайте также:  Gtx 960 vs gtx 780

Рис. 2.5. Диск Альберти. Статуя Альберти в колоннаде Уффици (Флоренция)

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

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

Чтобы зашифровать какое-либо сообщение, выбирают слово — лозунг (например, «монастырь») и надписывают его над сообщением с необходимым повторением. Чтобы получить шифрованный текст, находят очередной знак лозунга, начиная с первого в вертикальном алфавите, а ему соответствующий знак сообщения в горизонтальном алфавите. На пересечении выделенных столбца и строки находим первую букву шифра. Очевидно, что ключом к такому шифру является используемый лозунг.

Парольная защита листов в Microsoft Excel давно стала притчей во языцех. В том плане, что ее, по-сути, нет. С регулярностью примерно раз в месяц я получаю вопросы по почте на тему "как мне защитить мои данные на листе Excel от просмотра/изменения?" и каждый раз не знаю что ответить. Можно, конечно, дать ссылочку на статью с подробным описанием всех способов защиты ячеек и листов в Excel, но такая защита остановит только начинающего. В сети можно найти кучу платных и бесплатных программ для взлома такой защиты тупым перебором за считанные минуты.

В какой-то момент мне это надоело и я стал искать способы более надежной защиты данных в Excel собственными силами. Самым простым и удобным оказался шифр Виженера.

Принцип шифра Виженера

Одним из самых древних и простых в реализации является шифр Цезаря, который использовал его для тайной переписки. Суть его в том, что каждая буква исходного шифруемого сообщения сдвигается в алфавите на заданное количество символов. Так, например, если сдвиг равен 3, то буква А превратится в Г, буква Б – в Д и так далее:

Символы в конце алфавита (Э, Ю, Я), соответственно, будут превращаться его начало (А, Б, В).

Реализовать такой шифр просто, но стойкость его невелика – найти нужное число сдвига и дешифровать сообщение можно даже прямым перебором за 20-30 итераций, что займет даже у человека не больше часа, а у современного компьютера доли секунды. Поэтому еще в 15 веке был впервые придуман, а потом в 16 веке французским дипломатом Блезом Виженером официально представлен более совершенный метод на основе шифра Цезаря, получивший впоследствии название "шифр Виженера". Его принцип в том, что каждая буква в исходном шифруемом тексте сдвигается по алфавиту не на фиксированное, а переменное количество символов. Величина сдвига каждой буквы задается ключом (паролем) – секретным словом или фразой, которая используется для шифрования и расшифровки.

Допустим, мы хотим зашифровать фразу "КЛАД ЗАРЫТ В САДУ" используя слово ЗИМА в качестве ключа. Запишем это слово подряд несколько раз под исходной фразой:

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

Если взять строку с первой буквой ключа (З) и столбец с первой буквой исходного текста (К), то на их пересечении увидим букву "Т" – это и будет первая буква нашего зашифрованного сообщения. Затем процедура повторяется для всех остальных пар букв ключа и исходного сообщения по очереди и в результате мы получаем зашифрованный вариант нашей исходной фразы:

Заметьте, что одна и та же буква (например А) в исходном сообщений превратилась в разные буквы на выходе (Н, Й и Б), т.к. сдвиг при шифровании для них был разный. Именно поэтому вскрыть шифр Виженера простыми способами невозможно – вплоть до 19 века он считался невзламываемым и успешно использовался военными, дипломатами и шпионами многих стран, частности – конфедератами во время Гражданской войны в США.

Читайте также:  Функция если в excel цвет ячейки

Реализация формулами по квадрату Виженера

Если использовать готовый квадрат Виженера как в примере выше, то реализовать шифрование можно одной формулой с помощью функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) , как это было описано в статье про двумерный поиск в таблице. Выглядеть это может примерно так:

Логика этой формулы следующая:

  • Первая функция ПОИСКПОЗ (подсвечена зеленым) ищет первую букву ключа (З) в зеленом столбце (B9:B40) и выдает порядковый номер ячейки, где она ее нашла, т.е. номер строки в квадрате Виженера по которому идет шифрование.
  • Вторая функция ПОИСКПОЗ (подсвечена розовым) аналогичным образом ищет первую букву исходного сообщения (К) в красной строке и выдает порядковый номер столбца.
  • Функция ИНДЕКС выдает содержимое ячейки из квадрата (C9:AH40) с пересечения строки и столбца с найденными номерами.

Реализация формулами по кодам символов

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

Внутри компьютера и операционной системы каждый символ имеет свой числовой код от 0 до 255 (его еще называют ASCII-кодом). Microsoft Excel имеет в своем стандартном наборе две функции, которые умеют с ними работать:

  • Функция КОДСИМВ (CODE) – выдает числовой код символа, указанного в качестве аргумента. Например КОДСИМВ("Ж") выдаст 198.
  • Функция СИМВОЛ (CHAR) – выдает символ, соответствующий указанному в аргументе коду, т.е. наоборот СИМВОЛ(198) даст нам букву Ж.

Для применения шифра Виженера запишем наш исходный текст и ключ друг под другом как раньше и выведем коды каждой буквы с помощью функции КОДСИМВ:

Теперь сложим коды символов ключа и исходного текста, добавив функцию ОСТАТ (MOD) , чтобы при превышении максимально допустимого количества символов (256) остаться в пределах 0-255:

Теперь осталось использовать функцию СИМВОЛ, чтобы вывести символы по полученным кодам и сформировать зашифрованное сообщение:

Само-собой, можно было бы обойтись и без дополнительных строк, уложив все функции в одну формулу для компактности:

Расшифровка производится совершенно аналогично, только знак "плюс" в формуле меняется на "минус":

Для шпионских игр шифрование такими спецсимволами, конечно, не очень удобно – так и представляю себе глаза радистки Кэт при попытке передать третий и пятый символы нашей шифровки 🙂 Но нам их, отстреливаясь из именного ТТ во время погони, на бумажке не писать, так что для наших целей – сойдет.

Макросы для шифрования-дешифрования

Ну, а теперь самое интересное. Чтобы применить шифр Виженера в реальной жизни лучше будет воспользоваться простым макросом, который проводит все описанные в предыдущем пункте операции с каждой ячейкой текущего листа автоматически. Откройте редактор Visual Basic с помощью сочетания клавиш Alt+F11 или кнопкой Visual Basic на вкладке Разработчик (Developer) . Вставьте новый модуль с помощью команды меню Insert – Module и скопируйте туда текст наших макросов:

Первый макрос запрашивает у пользователя ключ и шифрует все ячейки текущего листа. Второй макрос производит обратную операцию дешифрования. Запустить получившиеся макросы можно с помощью сочетания клавиш Alt+F8 или кнопки Макросы (Macros) на вкладке Разработчик (Developer) . Выглядеть все это может примерно так:

  • ВНИМАНИЕ! Если вы внимательно прочитали статью, то должны четко понимать – не существует легкого способа узнать или подобрать ключ! Есть несколько методик взлома шифра Виженера, но все они весьма сложны для неспециалиста и не дают 100% гарантии. Если вы забудете ключ – потеряете данные навсегда с большой вероятностью. Если что – я вас предупредил.
  • При шифровании не нарушаются формулы, ссылки и форматирование – после дешифрации все отлично работает.
  • Если при дешифрации вы неправильно введете ключ, то получите бессмысленную "кашу" из спецсимволов вместо своего текста (т.к. сдвиг кодов будет неправильным). Тогда придется откатиться на шаг назад повторным шифрованием с тем же паролем и потом снова попробовать расшифровать документ еще раз (на этот раз используя правильный ключ).
Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector