Шифр плейфера как расшифровать
Перейти к содержимому

Шифр плейфера как расшифровать

  • автор:

Шифр Плейфера

Этот онлайн калькулятор шифрует и расшифровывает текст используя шифр Плейфера. Используется английский алфавит. Неалфавитные символы (цифры, пробелы, знаки препинания) и не английские буквы игнорируются.

Шифр Плейфера или квадрат Плейфера — ручная симметричная техника шифрования, в которой впервые использована замена биграмм. Изобретена в 1854 году английским физиком Чарльзом Уитстоном, но названа именем лорда Лайона Плейфера[en], который внёс большой вклад в продвижение использования данной системы шифрования в государственной службе. Шифр предусматривает шифрование пар символов (биграмм) вместо одиночных символов, как в шифре подстановки и в более сложных системах шифрования Виженера. 1

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

Шифр Плейфера

Шифр Плейфера — это подстановочный шифр, который реализует замену биграмм.

Введение

При использовании многоалфавитной подстановки все появления символа могут обладать разной заменой. Процесс отношений между символами в исходном тексте и символами в зашифрованном тексте можно представить, как «один ко многим». К примеру, символ «a» может быть зашифрован как «D» в самом начале текста, но при этом «N» может стать его шифровкой в середине текста. Многоалфавитные шифры обладают одним существенным преимуществом, а именно, они способны скрыть частоту появления символа основного языка. То есть, нельзя применить статистическую частоту появления какого-либо символа, для того чтобы прочитать зашифрованный текст.

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

Иными словами, необходимо создать ключевой поток k = (k1, k2, k3.….), в котором ki будет использоваться, для того чтобы выполнить шифрование i -того символа в исходном тексте и создание i -того символа в зашифрованном тексте.

Шифр Плейфера

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

Вторым подключом является значение первого символа исходного текста (между нулем и двадцатью пятью). Третьим подключом является i -тое значение второго исходного текста. И так далее:

Шифрование Ci = (Pi + ki) mod 26

Дешифрование Pi = (Ci – ki) mod 26

Наименование шифра «автоключевой» образовано из того факта, что подключи формируются в автоматическом режиме в зависимости от символов шифра исходного текста в ходе шифрования.

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

Секретный ключ. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Секретный ключ. Автор24 — интернет-биржа студенческих работ

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

В этом шифре используются следующие правила шифрования:

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

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

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

Шифрование Ci = ki

Дешифрование Pi = ki

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

Согласно правилам, необходимо вставить «x» между двух l (эль), после чего получится:

Далее, используя поток ключей, получаем:

he -> EC lx -> QZ lo -> BX

В результате из исходного текста:

Получается следующий зашифрованный текст:

Из этого примера ясно видно, что шифр Плейфера является фактически многоалфавитным шифром, то есть, два появления l (эль) зашифрованы как «Q» и «B».

Также следует отметить, что взлом шифра Плейфера будет очень трудной задачей, поскольку размер домена равен 25! (факториал 25), и, помимо этого, шифровка скрывает частоту отдельных символов.

Шифр Плейфера

Шифр Плейфера использует матрицу 5х5 (для латинского алфавита, для кириллического алфавита необходимо увеличить размер матрицы до 4х8), содержащую ключевое слово или фразу. Для создания матрицы и использования шифра достаточно запомнить ключевое слово и четыре простых правила. Чтобы составить ключевую матрицу, в первую очередь нужно заполнить пустые ячейки матрицы буквами ключевого слова (не записывая повторяющиеся символы), потом заполнить оставшиеся ячейки матрицы символами алфавита, не встречающимися в ключевом слове, по порядку (в английских текстах обычно опускается символ «Q», чтобы уменьшить алфавит, в других версиях «I» и «J» объединяются в одну ячейку). Ключевое слово может быть записано в верхней строке матрицы слева направо, либо по спирали из левого верхнего угла к центру. Ключевое слово, дополненное алфавитом, составляет матрицу 5х5 и является ключом шифра.

Для того чтобы зашифровать сообщение, необходимо разбить его на биграммы (группы из двух символов), например «Hello World» становится «HE LL OW OR LD», и отыскать эти биграммы в таблице. Два символа биграммы соответствуют углам прямоугольника в ключевой матрице. Определяем положения углов этого прямоугольника относительно друг друга. Затем, руководствуясь следующими 4 правилами, зашифровываем пары символов исходного текста:

1. Если два символа биграммы совпадают (или если остался один символ), добавляем после первого символа «Х», зашифровываем новую пару символов и продолжаем. В некоторых вариантах шифра Плейфера вместо «Х» используется «Q».

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

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

4. Если символы биграммы исходного текста находятся в разных столбцах и разных строках, то они заменяются на символы, находящиеся в тех же строках, но соответствующие другим углам прямоугольника.

Для расшифровки необходимо использовать инверсию этих четырёх правил, откидывая символы «Х» (или «Q»), если они не несут смысла в исходном сообщении.

Пример

Используем ключ «playfair example», тогда матрица примет вид:

Зашифруем сообщение «Hide the gold in the tree stump»
HI DE TH EG OL DI NT HE TR EX ES TU MP
1. Биграмма HI формирует прямоугольник, заменяем её на BM.
2. Биграмма DE расположена в одном столбце, заменяем её на ND.
3. Биграмма TH формирует прямоугольник, заменяем её на ZB.
4. Биграмма EG формирует прямоугольник, заменяем её на XD.
5. Биграмма OL формирует прямоугольник, заменяем её на KY.
6. Биграмма DI формирует прямоугольник, заменяем её на BE.
7. Биграмма NT формирует прямоугольник, заменяем её на JV.
8. Биграмма HE формирует прямоугольник, заменяем её на DM.
9. Биграмма TR формирует прямоугольник, заменяем её на UI.
10. Биграмма EX находится в одной строке, заменяем её на XM.
11. Биграмма ES формирует прямоугольник, заменяем её на MN.
12. Биграмма TU находится в одной строке, заменяем её на UV.
13. Биграмма MP формирует прямоугольник, заменяем её на IF.
Получаем зашифрованный текст «BM ND ZB XD KY BE JV DM UI XM MN UV IF»
Таким образом сообщение «Hide the gold in the tree stump» преобразуется в «BMNDZBXDKYBEJVDMUIXMMNUVIF»

Иллюстрации в примерах

Предположим, что необходимо зашифровать биграмму OR. Рассмотрим 4 случая:

2. Біграмний шифр Плейфера (PlayFair).

Шифр Плейфера или квадрат Плейфера — ручная симметричная техника шифрования, в которой впервые использована замена биграмм. Изобретена в 1854 году Чарльзом Уитстоном, но названа именем Лорда Лайона Плейфера, который внедрил данный шифр в государственные службы Великобритании. Шифр предусматривает шифрование пар символов (биграмм) вместо одиночных символов, как в шифре подстановки и в более сложных системах шифрования Виженера. Таким образом, шифр Плейфера более устойчив к взлому по сравнению с шифром простой замены, так как затрудняется частотный анализ. Он может быть проведен, но не для 26 возможных символов (латинский алфавит), а для 26х26=676 возможных биграмм. Анализ частоты биграмм возможен, но является значительно более трудным и требует намного большего объема зашифрованного текста.

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

Шифр Плейфера использует матрицу 5х5 (для латинского алфавита, для кирилического алфавита необходимо увеличить размер матрицы до 4х8), содержащую ключевое слово или фразу. Для создания матрицы и использования шифра достаточно запомнить ключевое слово и четыре простых правила. Чтобы составить ключевую матрицу, в первую очередь нужно заполнить пустые ячейки матрицы буквами ключевого слова (не записывая повторяющиеся символы), потом заполнить оставшиеся ячейки матрицы символами алфавита, не встречающимися в ключевом слове, по порядку (в английских текстах обычно опускается символ «Q», чтобы уменьшить алфавит, в других версиях «I» и «J» объединяются в одну ячейку). Ключевое слово может быть записано в верхней строке матрицы слева направо, либо по спирали из левого верхнего угла к центру. Ключевое слово, дополненное алфавитом составляет матрицу 5х5 и является ключом шифра.

Для того, чтобы зашифровать сообщение необходимо разбить его на биграммы (группы из двух символов), например «Hello World» становится «HE LL OW OR LD», и отыскать эти биграммы в таблице. Два символа биграммы соответствуют углам прямоугольника в ключевой матрице. Определяем положения углов этого прямоугольника относительно друг друга. Затем руководствуясь следующими 4 правилами зашифровываем пары символов исходного текста:

1. Если два символа биграммы совпадают, добавляем после первого символа «Х», зашифровываем новую пару символов и продолжаем. В некоторых вариантах шифра Плейфера вместо «Х» используется «Q».

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

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

4. Если символы биграммы исходного текста находятся в разных столбцах и разных строках, то они заменяются на символы, находящиеся в тех же строках, но соответствующие другим углам прямоугольника.

Для расшифровки необходимо использовать инверсию этих четырёх правил, откидывая символы «Х» (или «Q»), если они не несут смысла в исходном сообщении.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *