T

Text Machine

Мощные текстовые инструменты прямо в браузере

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

Шифруйте и расшифровывайте шифр Виженера с ключевым словом на ваш выбор. Переключайтесь между классическим Виженером, вариантами автоключа и Бофора, следите за процессом по интерактивной tabula recta и копируйте, скачивайте или делитесь результатом. Всё работает прямо в вашем браузере.

Ключевое слово

Классический Виженер: ключевое слово повторяется вдоль всего сообщения, добавляя свой сдвиг к каждой букве.

Открытый текст
Шифртекст

Введите текст выше, чтобы увидеть здесь результат.

Tabula recta (квадрат Виженера)

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

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
B
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
C
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
D
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
E
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
F
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
G
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
H
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
I
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
J
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
K
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
L
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
M
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
N
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
O
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
Q
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
S
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
T
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
U
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
W
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
X
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y

Как пользоваться Шифр Виженера

  1. 1

    Выберите шифрование или дешифрование

    Выберите «Зашифровать», чтобы превратить открытый текст в шифртекст, или «Расшифровать», чтобы вернуть шифртекст в открытый текст с тем же ключевым словом.

  2. 2

    Выберите вариант шифра

    Выберите классический Виженер, более стойкий автоключ, ключ которого никогда не повторяется, или реципрокный вариант Бофора. Короткая подсказка под ключевым словом поясняет каждый из них.

  3. 3

    Введите ключевое слово

    Введите ключевое слово, например LEMON. Используются только буквы от A до Z из ключевого слова, и оно автоматически повторяется или продлевается под длину вашего сообщения.

  4. 4

    Введите или вставьте текст

    Введите своё сообщение, и шифр срабатывает по мере набора. Буквы шифруются, а пробелы, цифры и знаки препинания проходят без изменений.

  5. 5

    Скопируйте, скачайте или поделитесь

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

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

Что такое шифр Виженера?

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

На протяжении почти трёх столетий он считался невзламываемым и заслужил французское прозвище le chiffre indéchiffrable — нераскрываемый шифр. Сегодня он любим в головоломках, квестах и соревнованиях по захвату флага и остаётся классическим уроком того, как ключ усиливает шифр.

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

Сначала вы выбираете ключевое слово, например LEMON. Ключевое слово повторяется над сообщением так, чтобы каждая буква открытого текста была сопоставлена с буквой ключа. Каждая буква ключа задаёт сдвиг: A означает сдвиг на 0, B — на 1, C — на 2 и так далее вплоть до Z, которая сдвигает на 25. Чтобы зашифровать, вы прибавляете каждую букву открытого текста к её букве ключа и зацикливаете по алфавиту; чтобы расшифровать, вы вычитаете вместо этого.

Шифруются только буквы от A до Z, и каждая сохраняет свою прописную или строчную форму. Пробелы, цифры и знаки препинания проходят нетронутыми и не расходуют букву ключа, поэтому ключ всегда остаётся выровненным с настоящими буквами сообщения.

Разбор примера: ключевое слово LEMON

Возьмём фразу ATTACK AT DAWN и ключевое слово LEMON. Выровняв повторяющееся ключевое слово с буквами, получаем LEMONLEMONLE. Прибавляя каждую букву открытого текста к её букве ключа — A plus L is L, T plus E is X, T plus M is F и так далее, — получаем шифртекст LXFOPVEFRNHR. Обратите внимание, что две буквы T в ATTACK становятся разными буквами шифра, X и F, потому что стоят под разными буквами ключа. Именно это и побеждает простой частотный анализ.

Чтобы расшифровать, вы обращаете процесс с тем же ключевым словом, вычитая каждую букву ключа, или читаете tabula recta в обратном направлении. Без ключевого слова шифртекст почти ничего не выдаёт.

Формула Виженера и tabula recta

Если буквы пронумерованы от 0 до 25, где A — это 0, а Z — 25, то шифрование задаётся как C = (P + K) mod 26, а дешифрование как P = (C - K) mod 26, где P — буква открытого текста, K — текущая буква ключа, а mod 26 заставляет алфавит зацикливаться. Ту же операцию можно выполнить вручную с помощью tabula recta — таблицы 26 на 26 из сдвинутых алфавитов. Найдите букву ключа слева, а букву открытого текста — сверху, и ячейка, где встречаются строка и столбец, и есть буква шифртекста.

Варианты автоключа и Бофора

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

Вариант Бофора использует формулу C = (K - P) mod 26. Поскольку вычитание из ключа само себе обратно, одна и та же операция и шифрует, и расшифровывает, что делало его удобным для шифровальных дисков, когда-то применявшихся на флоте. Этот инструмент поддерживает все три, чтобы вы могли сравнить их на одном и том же тексте и ключевом слове.

Как взломать шифр Виженера

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

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

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

Идею использовать ключевое слово для переключения между алфавитами впервые опубликовал Джован Баттиста Беллазо (Bellaso) в 1553 году, опираясь на полиалфавитные таблицы Иоганнеса Тритемия (Trithemius) и Леона Баттисты Альберти (Alberti). Позднее метод ошибочно приписали французскому дипломату Блезу де Виженеру (Vigenère), чьё имя за ним и закрепилось, хотя его собственный труд описывал более стойкий вариант с автоключом. Шифр с повторяющимся ключом сопротивлялся криптоаналитикам столетиями, пока Чарльз Бэббидж (Babbage) не взломал его частным образом в 1850-х годах, а Фридрих Касиски (Kasiski) не опубликовал общий метод в 1863 году.

Надёжен ли шифр Виженера?

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

Часто задаваемые вопросы

Что такое шифр Виженера?
Шифр Виженера — это полиалфавитный шифр замены, который использует ключевое слово для шифрования текста. Каждая буква ключевого слова применяет свой сдвиг к букве сообщения, а само ключевое слово повторяется вдоль всего текста. Поскольку одна и та же открытая буква может отображаться в разные буквы шифра, он скрывает частотный рисунок букв, который ломает более простые шифры вроде Цезаря.
Чем шифр Виженера отличается от шифра Цезаря?
Шифр Цезаря сдвигает каждую букву на одну и ту же фиксированную величину, поэтому у него всего 25 ключей и его тривиально взломать. Шифр Виженера использует ключевое слово, чтобы применять разный сдвиг к каждой букве по очереди, что равносильно нескольким шифрам Цезаря, работающим бок о бок. Это сильно расширяет пространство ключей и скрывает частотный рисунок, и именно поэтому Виженер веками считался невзламываемым.
Что такое ключевое слово и как оно используется?
Ключевое слово — это секрет, который управляет шифром. Каждая его буква задаёт сдвиг, где A — это 0, B — 1 и так далее. Ключевое слово повторяется над сообщением, так что каждая буква открытого текста сопоставляется с буквой ключа, а затем они складываются для шифрования или вычитаются для дешифрования. Используются только буквы от A до Z из ключевого слова, поэтому пробелы или цифры в нём игнорируются.
Можете показать разбор примера Виженера?
С ключевым словом LEMON для шифрования ATTACK AT DAWN повторяющийся ключ выравнивается как LEMONLEMONLE, и сложение букв даёт шифртекст LXFOPVEFRNHR. Две буквы T в открытом тексте становятся разными буквами шифра, потому что попадают под разные буквы ключа. Чтобы расшифровать LXFOPVEFRNHR, используйте то же ключевое слово в режиме расшифровки, и исходный текст вернётся напрямую.
Что такое tabula recta, или квадрат Виженера?
Tabula recta — это таблица 26 на 26, которая перечисляет все сдвинутые алфавиты, по одному в строке. Чтобы зашифровать букву вручную, найдите букву ключа в левом столбце, а букву открытого текста — в верхней строке; ячейка на их пересечении и есть буква шифртекста. Квадрат под инструментом интерактивен и выделяет строки для букв вашего текущего ключевого слова.
Что за варианты автоключа и Бофора?
Автоключ усиливает шифр, продолжая ключ самим открытым текстом после того, как ключевое слово закончилось, поэтому ключ никогда не повторяется и шифр гораздо труднее взломать. Бофор использует формулу cipher equals key minus plaintext, что делает его реципрокным: одна и та же операция и шифрует, и расшифровывает. Этот инструмент поддерживает классический Виженер, а также варианты автоключа и Бофора.
Как взломать или вскрыть шифр Виженера?
Сначала найдите длину ключа — классически с помощью метода Касиски, который измеряет расстояния между повторяющимися группами шифртекста, или с помощью теста Фридмана, использующего индекс совпадений. Как только длина известна, шифртекст разбивается на это число столбцов, каждый зашифрован одним сдвигом Цезаря, и частотный анализ решает каждый столбец. Поэтому короткий ключ на длинном сообщении вполне взламываем.
Почему шифр Виженера называли нераскрываемым?
Поскольку около трёхсот лет никто не публиковал надёжного способа его взломать, он стал известен по-французски как le chiffre indéchiffrable — нераскрываемый шифр. Повторение ключа маскировало частоты букв, на которые опирались криптоаналитики. Его репутация держалась, пока Чарльз Бэббидж не взломал его частным образом в 1850-х годах, а Фридрих Касиски не опубликовал общий метод в 1863 году.
Кто изобрёл шифр Виженера?
Метод с ключевым словом впервые описал Джован Баттиста Беллазо (Bellaso) в 1553 году, опираясь на более ранние полиалфавитные работы Иоганнеса Тритемия (Trithemius) и Леона Баттисты Альберти (Alberti). Позднее его ошибочно приписали французскому дипломату Блезу де Виженеру (Vigenère), и это имя закрепилось с тех пор, хотя на самом деле Виженер описал более стойкий вариант с автоключом.
Меняет ли он цифры, пробелы или знаки препинания?
Нет. Шифруются только буквы от A до Z, и каждая сохраняет свою прописную или строчную форму. Цифры, пробелы, переводы строк и знаки препинания проходят без изменений и не расходуют букву ключа, поэтому ключевое слово всегда остаётся выровненным с настоящими буквами вашего сообщения.
Надёжен ли шифр Виженера?
Не для реальной защиты. С тех пор как были опубликованы методы Касиски и Фридмана, любой шифр Виженера с повторяющимся ключом можно взломать, а компьютер делает это мгновенно. Его лучше воспринимать как учебный шифр и шифр для головоломок, который показывает, как ключ усиливает шифрование. Для настоящей безопасности следует использовать современные алгоритмы, такие как AES.
Загружается ли мой текст на сервер?
Нет. Всё шифрование и дешифрование происходит полностью в вашем браузере, поэтому ваш текст и ключевое слово никогда не загружаются, не записываются в журналы и не сохраняются. Даже ссылка для обмена хранит ваш текст и ключевое слово в части URL после знака решётки, которую браузеры никогда не отправляют на сервер, поэтому он остаётся конфиденциальным, пока вы сами не решите им поделиться.
Как написать шифр Виженера в коде?
Пройдите по сообщению и ведите счётчик только для букв. Для каждой буквы преобразуйте её и соответствующую букву ключа в числа от 0 до 25, сложите их для шифрования или вычтите для дешифрования, возьмите остаток от деления на 26, чтобы алфавит зацикливался, затем преобразуйте обратно в букву. Пропускайте и копируйте без изменений любой символ, который не является буквой, не продвигая ключ. В JavaScript преобразования выполняют charCodeAt и fromCharCode — именно так и работает этот браузерный инструмент.

Похожие инструменты

Продолжайте работу с этими удобными инструментами

Шифр Бофора

Шифр Гронсфельда

Шифр с автоключом

Шифр бегущего ключа

Шифр Порта

Шифр Тритемия