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

2 день IT-каникул вместе с IT-cube 63 регион https://vk.com/it_cube63

// Криптография с Python #2 // Шифр Виженера // https://youtu.be/MC_DosCKxdY




Как работает шифр Виженера

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

ПРОГРАММИСТЫ УЕХАЛИ В КОВОРКИНГ

Придумаем ключ, который поможет найти программистов.

Пусть это будет наш вопрос А ГДЕ ВСЕ?!. Эта фраза и будет ключом.

Знаки препинания не учитываем:)

Нужно, чтобы букв ключа хватило на весь текст. Значит, будем повторять ключ столько раз, сколько потребуется:

Шифр Виженера, изображение №1

И теперь шифруем текст! Заполним таблицу алфавитами, начинающимися с букв, расположенных по вертикали (рис. 2).

1-й алфавит– это алфавит шифра Цезаря с нулевым сдвигом. Второй алфавит начинается с буквы Б – этот алфавит шифра Цезаря сдвинут на длину ключа =1.

Шифр Виженера, изображение №2

Шифрование шифром Виженера

Для работы с шифром будем использовать квадрат Виженера (рис. 2). По горизонтали расположены буквы открытого текста, по вертикали – буквы ключа. Каждая новая строка внутри квадрата – это шифр Цезаря со сдвигом равным 1, 2, 3 и так далее до 32.

Попробуем зашифровать наш открытый текст. Следуем такому алгоритму:

В верхней горизонтальной строке ищем текущую букву открытого текста (1-я буква – П), а в вертикальном – текущую букву ключа (это буква А). На пересечении строки и столбца будет находиться буква шифртекста – П (рис. 3).

Шифр Виженера, изображение №3

Зашифруем следующую букву. Ищем Р по горизонтали и Г по вертикали – получаем букву У. После зашифровки всех букв получаем такой текст:

ПУТИТССМЛХЧЭ ДКХГПН Д ЫУВСФПКЮИ

Посмотрите – теперь одинаковые буквы ММ в слове ПРОГРАММИСТЫ перешли в разные буквы СМ. Значит, статистика распределения частот букв нарушилась. Теперь для каждой буквы открытого текста используется свой ключ и, соответственно, свой алфавит.

Дешифрование шифром Виженера

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

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

Шифр Виженера, изображение №4

А все потому, что буква А никак не сдвигает буквы сообщения (это алфавит с нулевым сдвигом).

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

Шифр Виженера, изображение №5

Шифр Виженера с точки зрения математики

По традиции приведем все к универсальным формулам. Пусть – количество букв в алфавите, mi – буквы открытого текста, ki – буквы ключа. Тогда буквы шифртекста можно получить так:

ci = (mi +ki) mod n

ki – это буква ключа, с которой начинается j-й алфавит.

Расшифровать сообщение можно так:

mi = (ci ki) mod n

Задание

На данной картинке зашифровано слово. Изучив статью "Шифр Виженера", вы с легкостью сможете расшифровать слово. Будьте внимательны. Вариант ответа пишите в строке ответа.


(необъятность)

Комментарии

Отправить комментарий