Шифровка цезаря. Шифр Цезаря — онлайн шифровка и расшифровка

Язык Пляшущих человечков

ВИДЫ ШИФРОВ:

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

4. Цифровые шифры.. 22

5. Квадрат Полибия. 23

6. Шифр Атбаш.. 25

8. Шифры перестановки. 26

9. Шифр Тритемиуса. 27

10. Шифр Бэкона. 27

11. Шифр Виженера. 29

12. Книжный шифр. 30

13. Шифр Масонов. 31

14. Поросячья латынь. 33

Частотный криптоанализ. 37

18. Другие виды шифров. 40

Исходное слово: Наука

Ключ (сдвиг) 4

Шифрованное слово: Сдчод


Азбука Морзе (Код Морзе)

А также в виде таблицы.

« _. ._ .._ _._ ._»

Первый – визуальный.


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


Цифровые шифры

1)

2) Цифровая таблица .

3)

Квадрат Полибия

Похож на цифровую таблицу.

Вместо каждой буквы в шифруемом тексте используется соответствующая ей буква снизу (в таблице). Если буква находится в нижней строке, то она заменяется верхней буквой того же столбца. То есть, А => Е, Ю => Г, И => О и так далее.

Исходное слово: квадрат.

Зашифрованный текст: пзекчеш.

Исходное слово: квадрат.

Запишем координаты всех букв.


Шифр Атбаш

Этот шифр использовался для еврейского алфавита и отсюда получил свое название. Первая буква – алеф, заменяется на тау (последнюю), вторая буква – бет, заменяется на шин (предпоследнюю). Из этих букв и сформировалось название.

Шифр Атбаш для русского алфавита.

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я

Я Ю Э Ь Ы Ъ Щ Ш Ч Ц Х Ф У Т С Р П О Н М Л К Й И З Ж Ё Е Д Г В Б А.

Исходное слово: замена

Зашифрованное слово: чятъся

Шифры перестановки

При таком способе шифрования изменяется только порядок следования символов в исходном тексте, но не изменяются сами символы.

Существует несколько разновидностей шифров перестановки. Приведу некоторые из них.

Шифр Сцитала. Использовался еще во времена Древней Спарты. Для шифровки использовался жезл («Сцитала») – цилиндр, на который наматывалась узкая пергаментная лента. На этой ленте вдоль оси цилиндра записывался шифруемый текст. Чтобы прочитать зашифрованный текст использовались цилиндры такого же диаметра.

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

Исходный текст: «шифрвертикальнойперестановки»

Ключ у нас пусть будет 3, 2, 5, 1, 4

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

Ринрн-ирлптк-шеайсв-вкоео-фтьеаи

Анаграммы. Перестановка букв или звуков в исходном слове или словосочетании, что в результате дает другое слово или словосочетание.

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

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

Шифр – фриш;

австралопитек - ватерполистка;

покраснение - пенсионерка.

Шифр Ришелье. Открытый текст разбивается на отрезки, а внутри отрезков буквы переставляются в соответствии с фиксированной перестановкой (ключом).

Исходный текст: «шифр ришелье»

Ключ: (231) (4132) (3142)

Зашифрованный текст: фши ршир лееь

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


Шифр Тритемиуса

Усовершенствованный шифр Цезаря.

Формула для шифра:

L-номер зашифрованной буквы в алфавите, m-порядковый номер буквы шифруемого текста в алфавите, k-число сдвига, N-количество букв в алфавите.

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

k = A*p + B (линейная зависимость).

A, B – ключи. p – позиция буквы в сообщении.

Шифр Бэкона

В этом шифре каждая буква текста заменяется группой из пяти букв «А» или «В» (двоичный шифр). Замена осуществляется с помощью специального алфавита шифра Бэкона.

Шифр Бэкона, использующий современный английский алфавит.

Существует несколько способов передачи этого шифра.

Используется 2 шрифта, один для буквы «А», другой для буквы «В». Например, печатаем курсивные буквы вместо «А», а прямые – вместо «В».

Mag ic

Заменяем курсивные и прям буквы на А и В.

Получается ВААВА. Что соответствует букве S

В зашифрованном тексте заглавные буквы будут заменяться на «В», строчные на «А». То есть специально нужные буквы делаются заглавными или строчными. Текст делится на группы по 5 букв, а затем исходные буквы уже заменяются на А и В. И с помощью алфавита Бэкона уже получаем исходное слово.

Определяются параметры (например, «А» - от A до L, «В» - от L до Z). Таким образом, BAABAAAAABAAAABABABB означает TheScience of Deduction.

Пусть у нас имеется цепочка из 32 символов:

aaaaabbbbbabbbaabbababbaaababaab

Будем рассматривать ее как циклическую, то есть соединим начало с концом. Для наглядности изобразим эту цепочку в виде кольца символов. Напротив каждого символа изобразим букву английского алфавита. Для символов, оставшихся без букв, добавим цифры от 1 до 6. Используем эту цепочку в качестве ключа для шифрования букв английского алфавита. Циклическими перестановками цепочки из 32 символов мы можем получить 32 × 32 × 2 = 2048 ключей. Будем шифровать каждую букву цепочкой из 5 символов начиная с этой буквы (по или против часовой стрелки). Например для буквы «R» получаем цепочку: babab.

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

http://thereichenbachblog.tumblr.com/typesofcipher

http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80_%D0%91%D1%8D%D0%BA%D0%BE%D0%BD%D0%B0#.D0.A1.D0.BF.D0.BE.D1.81.D0.BE.D0.B1.D1.8B_.D0.BF.D0.B5.D1.80.D0.B5.D0.B4.D0.B0.D1.87.D0.B8


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

Состоит из нескольких (точнее для латинского алфавита – 26) шифров Цезаря с различными значениями сдвига. Для шифрования может использоваться tabula recta или квадрат Виженера.

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

Зашифруем фразу mindgames.

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

Записываем ключевое слово циклически, пока его длина не будет соответствовать длине исходного текста.

Символы шифрованного текста будут находится на пересечении столбцов mindgames и строк letletlet.

То есть, первый символ получится таким образом: берем столбец M и строку L, на их пересечении буква X. Значит первой буквой в нашем шифре будет X. И так далее до конца текста.

В результате зашифрованный текст у нас получится такой: xmgoktxil.


Книжный шифр

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

Для верной реализации и у отправителя, и у получателя, должны содержаться идентичные тексты-ключи.

Возьмем стихотворение А.С.Пушкина «К Чаадаеву»

Любви, надежды, тихой славы

Недолго нежил нас обман,

Исчезли юные забавы,

Как сон, как утренний туман;

Но в нас горит еще желанье;

Под гнетом власти роковой

Нетерпеливою душой

Отчизны внемлем призыванье.

Мы ждем с томленьем упованья

Минуты вольности святой,

Как ждет любовник молодой

Минуты верного свиданья.

Пока свободою горим,

Пока сердца для чести живы,

Мой друг, отчизне посвятим

Души прекрасные порывы!

Товарищ, верь: взойдет она,

Звезда пленительного счастья,

Россия вспрянет ото сна,

И на обломках самовластья

Напишут наши имена!

Как я уже говорил, можно сделать указатель либо на отдельную букву, либо на слово.

Сделаем указатели на буквы. Зашифруем слово «книга».

Зашифрованный текст: 4/1, 1/6, 1/5, 2/6, 1/7.

Числитель дроби – номер строки (начиная отсчет сверху), знаменатель – номер буквы в строке (слева направо).


Шифр Масонов

Шифр Королевской арки.

Состоит из комбинаций прямых углов с точкам или без них.

Эти две фигуры, расчлененные, образуют 13 знаков. А после добавления в них точек получается 26 знаков.

Существуют, по меньшей мере, два способа сочетания и употребления этих знаков в целях сохранения тайны корреспонденции. Один способ заключается в том, чтобы назвать первый знак а; тот же знак с точкой b; и т.д. Другой способ - применить их, в обычном порядке, к первой половине алфавита а, b, и т. д. до m, после чего повторить их с точкой, начиная с буквы n, о; и т.д. до z.

Первый вариант.

Второй вариант.

Шифр позже был усовершенствован. Добавлены такие знаки:

Вот еще один интересный масонский шифр.

Тайнопись «Державных князей Розового Креста».

(материалы для описания этого шифра взяты с сайта http://ask-agni.ru).


Поросячья латынь

Вопреки названию с латинским языком никак не связана. Представляет собой зашифрованный английский.

Правила перевода (шифрования):

Если слово начинается на согласную (согласные), то начальные согласные идут в конец слова и добавляется ay. Пример: mind => indmay.

Если слово начинается с гласной, то к концу добавляется ay, way, yay или hay. Пример: of => ofay.

Если слово оканчивается на "e" немое, то оно может отбрасываться, а может и нет - это зависит от диалекта.

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

Виды шифров => висидысы шисифросов.

Не очень сложный шифр, скажу прямо =) Скорее детское развлечение, но текст все-таки шифруется.


Частотный криптоанализ

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

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

Вот пример таблицы с относительными частотами букв русского языка.

(пример взят отсюда http://denisavr.livejournal.com/445453.html).

“Как следует из таблицы, наиболее частая буква русского языка - о. Ее относительная частота, равная 0,090, означает, что на 1000 букв русского текста приходится в среднем 90 букв о. В таком же смысле понимаются относительные частоты и остальных букв. В таблице не указан еще один “символ” - промежуток между словами (пробел). Его относительная частота наибольшая и равна 0,175.”

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


Другие виды шифров

Двоичная система счисления

Двоичная система счисления, система счисления, построенная на позиционном принципе записи чисел, с основанием 2. В Д. с. с. используются только два знака - цифры 0 и 1; при этом, как и во всякой позиционной системе, значение цифры зависит дополнительно от занимаемого ею места. Число 2 считается единицей 2-го разряда и записывается так: 10 (читается: "один, нуль"). Каждая единица следующего разряда в два раза больше предыдущей, т. е. эти единицы составляют последовательность чисел 2, 4, 8, 16,..., 2n,... Для того чтобы число, записанное в десятичной системе счисления, записать в Д. с. с., его делят последовательно на 2 и записывают получающиеся остатки 0 и 1 в порядке от последнего к первому, например: 43 = 21·2 +1; 21 = 10·2 +1; 10 = 5·2+0; 5=2·2+1; 2 = 1·2+ 0; 1 =0·2 + 1; итак, двоичная запись числа 43 есть 101011. Т. о., 101011 в Д. с. с. обозначает 1·20+1·21 + 0×22 +1×23 + + 0·24 + 1·25.

В Д. с. с. особенно просто выполняются все арифметические действия: например, таблица умножения сводится к одному равенству 1·1 = 1. Однако запись в Д. с. с. очень громоздка: например, число 9000 будет 14-значным. Но благодаря тому, что в Д. с. с. используются лишь две цифры, она часто бывает полезной в теоретических вопросах и при вычислениях на ЦВМ.


ПРАВИЛА ОТГАДЫВАНИЯ РЕБУСОВ

Напомним, что слово "ребус" латинского происхождения (от латинской пословицы "Non verbis sed rebus" - "Не словами, а при помощи вещей"). Это загадка-шутка, в которой слово или фраза изображены в виде рисунков в сочетании с буквами, цифрами, нотами и другими знаками. Ребус – одна из самых популярных и распространённых игр. В ребусе можно зашифровать пословицы, поговорки, отрывки из стихотворений, отдельные фразы и слова. Зародился он во Франции в XV веке. Первоначально в Пикардии ребусом называли особого рода ежегодные выступления во время карнавалов, содержащие остроумные обозрения местной жизни, называвшиеся "новостями дня" (от латинского "de rebus, quae geruntur" бувально - "о делах, которые творятся"). В дальнейшем слово "ребус" получило то значение, в котором оно употребляется. Первый печатный сборник ребусов, составленный Этьеном Табуро, был издан во Франции в 1582 году. Затем ребусы распространились в Англии, Германии, Италии, но ни в одной из этих стран не получили широкого развития. В Росси первые ребусы появились на страницах журнала "Иллюстрация" в 1845 году. Большой популярностью пользовались ребусы. Нарисованные художником И. Волковым в журнале "Нива". Правила отгадывания ребусов 1. Название всех изображённых на рисунках предметов надо читать только в именительном падеже. 2. Часто предмет, изображённый в ребусе, может иметь несколько названий. Например: глаз и око, нога и лапа; или же предмет может иметь одно общее или одно конкретное название, например: рыба – общее название; сазан, карась, щука – конкретное названия. Умение правильно назвать изображённый на рисунке предмет представляет одну из главных трудностей при расшифровке ребусов. Чтобы решить ребус надо расшифровать его по частям, то есть записать подряд наименования всех изображённых букв, рисунков и цифр, а за тем разделить их на слова и составить по смыслу зашифрованный текст. 3. Если предмет нарисован в перевёрнутом виде, название его надо читать справа налево. 4. Например воз -> зов. 5. Если слева или справа от нарисованного предмета одна или две запятых, это значит, что в начале или в конце слова надо отбросить одну или две буквы. 6. Такие слова, как перед, над, на, под, за, при, у, о, в, как правило, в ребусах рисунком не изображаются, но выявляются из соответствующего положения букв и рисунков. 7. Такие части слова как с, к, из, от, по, и можно рисунком не изображать, а использовать их в качестве предлогов или союзов, указывающих отношение одного элемента ребуса к другому. 8. Если над рисунком стоят цифры, тогда и буквы из названия нарисованного предмета надо читать в порядке этих цифр, например, четвёртая, третья, вторая и, наконец, первая. 9. Если конфигурация какой-либо буквы составлена из других букв, надо читать изображённую букву, используя предлог из. 10. Отдельные слоги в ребусе можно изображать при помощи нот. 11. Если часть слова произносится одинаково с числительным, то в ребусе можно изобразить её числами. 12. Иногда в ребусе можно использовать дробь. В этом случае черта, отделяющая числитель от знаменателя, ставится наклонно или же рисуется половина буквы. 13. Если нарисован предмет, а около него или над ним написана зачёркнутая буква, это значит, что эту букву надо исключить из названия нарисованного предмета. 14. Если над перечеркнутой буквой или рядом с ней написана другая буква, то в названии предмета читается буква, стоящая над зачёркнутой или рядом с нею. 15. В ребусах рядом с рисунком или над ним могут стоять две буквы со знаком уравнения между ними. Это означает, что буква, находящаяся слева, заменяется второй буквой.

Язык Пляшущих человечков

ВИДЫ ШИФРОВ:

1. Шифр Цезаря (шифр сдвига, код Цезаря или сдвиг Цезаря) 17

2. Азбука Морзе (Код Морзе) 18

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

4. Цифровые шифры.. 22

5. Квадрат Полибия. 23

6. Шифр Атбаш.. 25

7. Шифр с использованием кодового слова. 25

8. Шифры перестановки. 26

9. Шифр Тритемиуса. 27

10. Шифр Бэкона. 27

11. Шифр Виженера. 29

12. Книжный шифр. 30

13. Шифр Масонов. 31

14. Поросячья латынь. 33

15. Шифр из «Пляшущих человечков» и подобные шифры.. 34

Частотный криптоанализ. 37

16. Шифрование с помощью компьютерной клавиатуры.. 38

17. Шифрование с помощью телефонной клавиатуры.. 39

18. Другие виды шифров. 40

19. Некоторые комбинации шифров. Ошибка! Закладка не определена.

Шифр Цезаря (шифр сдвига, код Цезаря или сдвиг Цезаря)

Один из самых известных и в то же время простых шифров. Относится шифрам моноалфавитной замены (каждой букве исходного текста ставится в соответствие единственная буква зашифрованного текста).

В данном шифре каждая буква в слове или тексте заменяется другой, которая находится на некоторое постоянное число позицией левее или правее от неё в алфавите. Для расшифровки нужно только знать сдвиг (или ключ) в шифре. Например, если ключ k=3, то формула у нас получится такая x=y-3. Здесь х – номер исходного (шифруемого) символа в алфавите, у – номер символа шифрованного текста в алфавите.

Исходное слово: Наука

Ключ (сдвиг) 4

Шифрованное слово: Сдчод

Существуют различные вариации этого шифра, например: ROT1, ROT13. ROT образовано от английского слово rotate, что в данном случае означает «сдвинуть». То есть сдвинуть на 1 позицию, сдвинуть на 13 позиций.

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


Азбука Морзе (Код Морзе)

Тоже очень известный шифр. Как и шифр Цезаря, относится к моноалфавитной замене. Назван в честь Сэмюэля Морзе. Код усовершенствовал сначала Альфред Вейл (добавил буквенные коды), а затем Фридрих Герке. И в таком виде код используется и в наши дни.

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

Ниже представлены графические изображения кодов для русских и латинских символов.

А также в виде таблицы.

Снова зашифруем слово «наука».

« _. ._ .._ _._ ._»

Для тех, кому интересно изучить азбуку Морзе, могу предложить пару способов.

Первый – визуальный.

Здесь код связан с образом букв, что очень помогает при запоминании.

Второй – с помощью «напева», соответствующего каждому знаку кода Морзе.

Также существует множество программ, помогающих в изучении этой азбуки (например, АДКМ, CW Master, Morse Code Trainer).


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

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

Например, пусть у нас имеется некоторое сообщение x1 , x2 , x3 , ….. xn , …… x2n , ….., которое надо зашифровать. При использовании полиалфавитного шифра имеется несколько моноалфавитных шифров (например, n штук). И в нашем случае к первой букве применяется первый моноалфавитный шифр, ко второй букве - второй, к третьей - третий….. к n-ой букве - n-й, а к n+1 опять первый, ну и так далее.

Теперь конкретно о шифре Гронсфельда. Для шифрования здесь используется числовой ключ. Но каждая буква смещается не на постоянное число позиций, а на то число, которое соответствует ключу. Ключ соответственно состоит не из одной цифры, а из группы цифр. Ключ не обязательно должен быть таким же длинным как шифруемое сообщение. Если ключ короче сообщения, то его просто повторяют по циклу. Так, например, если в тексте 10 символов, а длина ключа 5 символов, то для шифрования ключ будет использоваться 2 раза.

Исходный текст: «шифр гронсфельда»

Зашифрованный текст: «щнчш есуръцёрялв»


Цифровые шифры

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

Таблица не обязательно должна выглядеть таким образом. Количество групп может быть другим. Также буквы из алфавита могут идти в таблице не по порядку.

Зашифруем таким способом слово «цифра»

Зашифрованный текст: 63 31 61 51 11

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

2) Цифровая таблица .

Зашифруем с помощью этой таблицы слово «наука».

Каждый символ будет шифроваться опять двумя цифрами, при чем первой может быть как номер столбца, так и номер строки. То есть буква К может быть зашифрована, как 32 или 23.

Зашифрованный текст: 62 11 33 32 11

Здесь первой цифрой записан номер столбца, второй – номер строки.

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

Вариация этого шифра: буквы в алфавите отсчитываются не с начала, а с конца. То есть порядковым номер буквы «А» будет 33, «Б» – 32 и так далее.

Квадрат Полибия

Похож на цифровую таблицу.

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

Пример квадрата Полибия для русского алфавита.

Вместо каждой буквы в шифруемом тексте используется соответствующая ей буква снизу (в таблице). Если буква находится в нижней строке, то она заменяется верхней буквой того же столбца. То есть, А => Е, Ю => Г, И => О и так далее.

Исходное слово: квадрат.

Зашифрованный текст: пзекчеш.

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

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

Исходное слово: квадрат.

Запишем координаты всех букв.

Считываем координаты по строкам: 53 15 11 22 11 14 14.

Заменяем буквы, пользуясь таблицей (квадратом). Получаем новую таблицу с координатами.

В итоге после шифрования у нас получается: пчаеарр

Снова записываются координаты букв, считываются по строчкам, но уже без пробелов, то есть записываются сплошным текстом. Получаем последовательность цифр, сдвигаем ее влево на один шаг. Например, было 134526, стало 345261 (то есть цифра из начала идет в конце последовательности). Затем разбиваем последовательность на пары: 34 52 61.

То есть, в случае шифрования слова «квадрат» (см.пример во 2 методе), у нас получится последовательность цифр: 53151122111414

Сдвигаем влево на один шаг: 31511221114145

Разбиваем на пары цифр: 31 51 12 21 11 41 45.

Заменяем цифры буквам согласно квадрату.

После шифрования у нас получается: вдебагю.

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


Шифр Атбаш

Еще один шифр простой (моноалфавитной) замены.

Шифрование осуществляется путем замены первой буквы алфавита на последнюю, второй на предпоследнюю и так далее.

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

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

Моноалфавитные шифры

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

Такие шифры довольно легко расшифровать даже без знания ключа. Делается это при помощи частотного анализа зашифрованного текста - надо посчитать, сколько раз каждая буква встречается в тексте, и затем поделить на общее число букв. Получившуюся частоту надо сравнить с эталонной. Самая частая буква для русского языка - это буква О, за ней идёт Е и т.д. Правда, работает частотный анализ на больших литературных текстах. Если текст маленький или очень специфический по используемым словам, то частотность букв будет отличаться от эталонной, и времени на разгадывание придётся потратить больше. Ниже приведена таблица частотности букв (то есть относительной частоты встречаемых в тексте букв) русского языка, рассчитанная на базе НКРЯ .

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

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

Случайный код

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

Число вариантов таких таблиц для 33 букв русского языка = 33! ≈ 8.683317618811886*10 36 . С точки зрения шифрования коротких сообщений - это самый идеальный вариант: чтобы расшифровать, надо знать кодовую таблицу. Перебрать такое число вариантов невозможно, а если шифровать короткий текст, то и частотный анализ не применишь.

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

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

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

Как видим, начало таблицы перемешалось, а вот конец остался неперемешенным. Это потому, что самая «старшая» буква в слове «манускрипт» - буква «У», вот после неё и остался неперемешенный «хвост». Буквы в хвосте останутся незакодированными. Можно оставить и так (так как большая часть букв всё же закодирована), а можно взять слово, которое содержит в себе буквы А и Я, тогда перемешаются все буквы, и «хвоста» не будет.

Само же ключевое слово можно предварительно тоже загадать, например при помощи или . Например, вот так:

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

Атбаш

Изначально шифр использовался для еврейского алфавита, отсюда и название. Слово атбаш (אתבש) составлено из букв «алеф», «тав», «бет» и «шин», то есть первой, последней, второй и предпоследней букв еврейского алфавита. Этим задаётся правило замены: алфавит выписывается по порядку, под ним он же выписывается задом наперёд. Тем самым первая буква кодируется в последнюю, вторая - в предпоследнюю и т.д.

Фраза «ВОЗЬМИ ЕГО В ЭКСЕПШН» превращается при помощи этого шифра в «ЭРЧГТЦ ЪЬР Э ВФНЪПЖС». Онлайн-калькулятор шифра Атбаш

ROT1

Этот шифр известен многим детям. Ключ прост: каждая буква заменяется на следующую за ней в алфавите. Так, A заменяется на Б, Б на В и т.д., а Я заменяется на А. «ROT1» значит «ROTate 1 letter forward through the alphabet» (англ. «поверните/сдвиньте алфавит на одну букву вперед»). Сообщение «Хрюклокотам хрюклокотамит по ночам» станет «Цсялмплпубн цсялмплпубнйу рп опшбн». ROT1 весело использовать, потому что его легко понять даже ребёнку, и легко применять для шифрования. Но его так же легко и расшифровать.

Шифр Цезаря

Шифр Цезаря - один из древнейших шифров. При шифровании каждая буква заменяется другой, отстоящей от неё в алфавите не на одну, а на большее число позиций. Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Он использовал сдвиг на три буквы (ROT3). Шифрование для русского алфавита многие предлагают делать с использованием такого сдвига:

Я всё же считаю, что в русском языке 33 буквы, поэтому предлагаю вот такую кодовую таблицу:

Интересно, что в этом варианте в алфавите замены читается фраза «где ёж?»:)

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

Собственно, поэтому такие шифры и называются ROT - от английского слова «rotate» - «вращать».

ROT5

В этом варианте кодируются только цифры, остальной текст остаётся без изменений. Производится 5 замен, поэтому и ROT5: 0↔5, 1↔6, 2↔7, 3↔8, 4↔9.

ROT13

ROT13 - это вариация шифра Цезаря для латинского алфавита со сдвигом на 13 символов. Его часто применяют в интернете в англоязычных форумах как средство для сокрытия спойлеров, основных мыслей, решений загадок и оскорбительных материалов от случайного взгляда.

Латинский алфавит из 26 букв делится на две части. Вторая половина записывается под первой. При кодировании буквы из верхней половины заменяются на буквы из нижней половины и наоборот.

ROT18

Всё просто. ROT18 - это комбинация ROT5 и ROT13:)

ROT47

Существует более полный вариант этого шифра - ROT47. Вместо использования алфавитной последовательности A–Z, ROT47 использует больший набор символов, почти все отображаемые символы из первой половины ASCII -таблицы. При помощи этого шифра можно легко кодировать url, e-mail, и будет непонятно, что это именно url и e-mail:)

Например, ссылка на этот текст зашифруется вот так: 9EEAi^^?@K5C]CF^82>6D^BF6DE^4CJAE^4:A96C^K2>6?2nURC@Ecf. Только опытный разгадывальщик по повторяющимся в начале текста двойкам символов сможет додуматься, что 9EEAi^^ может означать HTTP:⁄⁄ .

Квадрат Полибия

Полибий - греческий историк, полководец и государственный деятель, живший в III веке до н.э. Он предложил оригинальный код простой замены, который стал известен как «квадрат Полибия» (англ. Polybius square) или шахматная доска Полибия. Данный вид кодирования изначально применялся для греческого алфавита, но затем был распространен на другие языки. Буквы алфавита вписываются в квадрат или подходящий прямоугольник. Если букв для квадрата больше, то их можно объединять в одной ячейке.

Такую таблицу можно использовать как в шифре Цезаря. Для шифрования на квадрате находим букву текста и вставляем в шифровку нижнюю от неё в том же столбце. Если буква в нижней строке, то берём верхнюю из того же столбца. Для кириллицы можно использовать таблицу РОТ11 (аналог шифра Цезаря со сдвигом на 11 символов):

Буквы первой строки кодируются в буквы второй, второй - в третью, а третьей - в первую.

Но лучше, конечно, использовать «фишку» квадрата Полибия - координаты букв:

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

    Можно усложнить. Исходные координаты выписываем в строку без разбиений на пары, сдвигаем на нечётное количество шагов, разбиваем полученное на пары и вновь кодируем.

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

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

Стихотворный шифр

Этот метод шифрования похож на шифр Полибия, только в качестве ключа используется не алфавит, а стихотворение, которое вписывается построчно в квадрат заданного размера (например, 10×10). Если строка не входит, то её «хвост» обрезается. Далее полученный квадрат используется для кодирования текста побуквенно двумя координатами, как в квадрате Полибия. Например, берём хороший стих «Бородино» Лермонтова и заполняем таблицу. Замечаем, что букв Ё, Й, Х, Ш, Щ, Ъ, Э в таблице нет, а значит и зашифровать их мы не сможем. Буквы, конечно, редкие и могут не понадобиться. Но если они всё же будут нужны, придётся выбирать другой стих, в котором есть все буквы.

РУС/LAT

Наверное, самый часто встречающийся шифр:) Если пытаться писать по-русски, забыв переключиться на русскую раскладку, то получится что-то типа этого: Tckb gsnfnmcz gbcfnm gj-heccrb? pf,sd gthtrk.xbnmcz yf heccre. hfcrkflre? nj gjkexbncz xnj-nj nbgf "njuj^ Ну чем не шифр? Самый что ни на есть шифр замены. В качестве кодовой таблицы выступает клавиатура.

Таблица перекодировки выглядит вот так:

Литорея

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

Получится русский аналог шифра ROT13 - РОТ16 :) При шифровке верхнюю букву меняют на нижнюю, а нижнюю - на верхнюю. Ещё более простой вариант литореи - оставляют только двадцать согласных букв:

Получается шифр РОТ10 . При шифровании меняют только согласные, а гласные и остальные, не попавшие в таблицу, оставляют как есть. Получается что-то типа «словарь → лсошамь» и т.п.

Если же в качестве ключа использовать целую книгу (например, словарь), то можно зашифровывать не отдельные буквы, а целые слова и даже фразы. Тогда координатами слова будут номер страницы, номер строки и номер слова в строке. На каждое слово получится три числа. Можно также использовать внутреннюю нотацию книги - главы, абзацы и т.п. Например, в качестве кодовой книги удобно использовать Библию, ведь там есть четкое разделение на главы, и каждый стих имеет свою маркировку, что позволяет легко найти нужную строку текста. Правда, в Библии нет современных слов типа «компьютер» и «интернет», поэтому для современных фраз лучше, конечно, использовать энциклопедический или толковый словарь.

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

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

Шифр Цезаря часто называют шифром сдвига . Давайте разберемся, как шифровать данные с помощью этого метода криптографии.

Шифр Цезаря онлайн

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

Введите текст:

НАЧАТЬ

всего расчетов - 160698

Как шифровать

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

Итак, наше слово Россия. Попробуем его зашифровать. Для этого нам нужно определиться с шагом шифрования. Шаг шифрования или сдвиг — это число, которое указывает на сколько позиций мы будем смещаться влево или вправо по алфавиту. Часто сдвиг называют ключом . Его можно выбрать произвольно. В нашем примере выберем шаг равный 7. Таким образом каждую букву шифруемого слова мы будем смещать вправо (в сторону конца алфавита) на 7 позиций. Буква Р у нас имеет номер 18. Прибавим к 18 наш шаг и получим 25. Значит в зашифрованном слове вместо буквы Р будет буква с номером 25 — Ч. Буква о превратится в букву х. Буква с — в ш и так далее. В итоге после шифрования слово Россия превратится в Чхшшпё.

  • Р -> Ч
  • о -> х
  • с -> ш
  • с -> ш
  • и -> п
  • я -> ё

Задавая шаг шифрования можно зашифровать любой текст.

Как расшифровать

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

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

Шифр Цезаря

Шифр Цезаря , также известный как шифр сдвига , код Цезаря или сдвиг Цезаря - один из самых простых и наиболее широко известных методов шифрования.

Шифр Цезаря - это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется буквой находящейся на некоторое постоянное число позиций левее или правее него в алфавите . Например, в шифре со сдвигом 3 А была бы заменена на Г, Б станет Д, и так далее.

Шифр назван в честь римского императора Гая Юлия Цезаря , использовавшего его для секретной переписки со своими генералами.

Шаг шифрования, выполняемый шифром Цезаря, часто включается как часть более сложных схем, таких как шифр Виженера , и все ещё имеет современное приложение в системе ROT13 . Как и все моноалфавитные шифры , шифр Цезаря легко взламывается и не имеет практически никакого применения на практике.

Математическая модель

Если сопоставить каждому символу алфавита его порядковый номер (нумеруя с 0), то шифрование и дешифрование можно выразить формулами модульной арифметики :

где - символ открытого текста, - символ шифрованного текста, - мощность алфавита, а - ключ.

С точки зрения математики шифр Цезаря является частным случаем аффинного шифра .

Пример

Шифрование с использованием ключа . Буква «С» «сдвигается» на три буквы вперёд и становится буквой «Ф». Твёрдый знак, перемещённый на три буквы вперёд, становится буквой «Э», и так далее:

Исходный алфавит: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ Шифрованный: ГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВ

Оригинальный текст:

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

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

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

История и применение

Шифр Цезаря называют в честь Юлия Цезаря, который согласно «Жизни двенадцати цезарей » Светония использовал его со сдвигом 3, чтобы защищать военные сообщения. Хотя Цезарь был первым зафиксированным человеком, использующим эту схему, другие шифры подстановки, как известно, использовались и ранее.

Если у него было что-либо конфиденциальное для передачи, то он записывал это шифром, то есть так изменял порядок букв алфавита, что нельзя было разобрать ни одно слово. Если кто-либо хотел дешифровать его и понять его значение, то он должен был подставлять четвертую букву алфавита, а именно, D, для A, и так далее, с другими буквами.
Гай Светоний Транквилл
Жизнь двенадцати цезарей 56

Неизвестно, насколько эффективным шифр Цезаря был в то время, но вероятно он был разумно безопасен, не в последнюю очередь благодаря тому, что большинство врагов Цезаря были неграмотными, и многие предполагали, что сообщения были написаны на неизвестном иностранном языке. Нет никаких свидетельств того времени касательно методов взлома простых шифров подстановки. Самые ранние сохранившиеся записи о частотном анализе - это работы Ал-Кинди 9-ого века об открытии частотного анализа .

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

В 19-ом столетии личная секция рекламных объявлений в газетах иногда использовалась, чтобы обмениваться сообщениями, зашифрованными с использованием простых шифров. Кан (1967) описывает случаи когда любители участвовали в секретных коммуникациях, зашифрованных с использованием шифра Цезаря в «Таймс ». Даже позднее, в 1915, шифр Цезаря находил применение: российская армия использовала его как замену для более сложных шифров, которые оказались слишком сложными для войск; у немецких и австрийских криптоаналитиков были лишь небольшие трудности в расшифровке этих сообщений.

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

Ключевые слова короче чем сообщение (например, «Complete Victory», используемое Конфедерацией во время гражданской войны в США), вводят циклический образец, который мог бы быть обнаружен с помощью улучшенной версии частотного анализа.

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

Например, если внутреннее колесо повернуть так, чтобы символу A внешнего диска соответствовал символ D внутреннего диска, то мы получим шифр со сдвигом 3 влево.

Взлом шифра

Сдвиг де-
шифровки
Открытый текст
0 exxegoexsrgi
1 dwwdfndwrqfh
2 cvvcemcvqpeg
3 buubdlbupodf
4 attackatonce
5 zsszbjzsnmbd
6 yrryaiyrmlac
23 haahjrhavujl
24 gzzgiqgzutik
25 fyyfhpfytshj

Шифр Цезаря может быть легко взломан даже в случае, когда взломщик знает только зашифрованный текст. Можно рассмотреть две ситуации:

  1. взломщик знает (или предполагает), что использовался простой шифр подстановки, но не знает, что это - схема Цезаря;
  2. взломщик знает, что использовался шифр Цезаря, но не знает значение сдвига.

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

Во втором случае, взлом шифра является даже более простым. Существует не так много вариантов значений сдвига (26 для английского языка), все они могут быть проверены методом грубой силы. Один из способов сделать это - выписать отрывок зашифрованного текста в столбец всех возможных сдвигов - техника, иногда называемая как «завершение простого компонента». Рассмотрим пример для зашифрованного текста «EXXEGOEXSRGI »; открытый текст немедленно опознается глазом в четвертой строке.

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

Для обычного текста на естественном языке, скорее всего, будет только один вариант декодирования. Но, если использовать очень короткие сообщения, то возможны случаи, когда возможны несколько вариантов расшифровки с различными сдвигами. Например зашифрованный текст MPQY может быть расшифрован как «aden » так и как «know » (предполагая, что открытый текст написан на английском языке). Точно также «ALIIP » можно расшифровать как «dolls » или как «wheel »; «AFCCP » как «jolly » или как «cheer ».

Многократное шифрование никак не улучшает стойкость, так как применение шифров со сдвигом a и b эквивалентно применению шифра со сдвигом a+b. В математических терминах шифрование с различными ключами образует группу .

Примечания

Ссылки


Wikimedia Foundation . 2010 .

Смотреть что такое "Шифр Цезаря" в других словарях:

    шифр Цезаря - — Тематики защита информации EN Caesar cipher … Справочник технического переводчика

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

    Каждый символ открытого текста заменяет на некоторый другой. В классической криптографии различают четыре типа шифра подстановки: Одноалфавитный шифр подстановки (шифр простой замены) шифр, при котором каждый символ открытого текста… … Википедия

    Шифр подстановки каждый символ открытого текста заменяет на некоторый другой. В классической криптографии различают четыре типа шифра подстановки: Одноалфавитный шифр подстановки (шифр простой замены) шифр, при котором каждый символ открытого… … Википедия

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

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

Шифр Цезаря

Самый легкий и один из самых известных классических шифров - шифр Цезаря отлично подойдет на роль аперитива.
Шифр Цезаря относится к группе так называемых одноалфавитных шифров подстановки. При использовании шифров этой группы «каждый символ открытого текста заменяется на некоторый, фиксированный при данном ключе символ того же алфавита» wiki .

Способы выбора ключей могут быть различны. В шифре Цезаря ключом служит произвольное число k, выбранное в интервале от 1 до 25. Каждая буква открытого текста заменяется буквой, стоящей на k знаков дальше нее в алфавите. К примеру, пусть ключом будет число 3. Тогда буква A английского алфавита будет заменена буквой D, буква B - буквой E и так далее.

Для наглядности зашифруем слово HABRAHABR шифром Цезаря с ключом k=7. Построим таблицу подстановок:

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
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

И заменив каждую букву в тексте получим: C("HABRAHABR", 7) = "OHIYHOHIY".

При расшифровке каждая буква заменяется буквой, стоящей в алфавите на k знаков раньше: D("OHIYHOHIY", 7) = "HABRAHABR".

Криптоанализ шифра Цезаря

Малое пространство ключей (всего 25 вариантов) делает брут-форс самым эффективным и простым вариантом атаки.
Для вскрытия необходимо каждую букву шифртекста заменить буквой, стоящей на один знак левее в алфавите. Если в результате этого не удалось получить читаемое сообщение, то необходимо повторить действие, но уже сместив буквы на два знака левее. И так далее, пока в результате не получится читаемый текст.

Аффиный шифр

Рассмотрим немного более интересный одноалфавитный шифр подстановки под названием аффиный шифр. Он тоже реализует простую подстановку, но обеспечивает немного большее пространство ключей по сравнению с шифром Цезаря. В аффинном шифре каждой букве алфавита размера m ставится в соответствие число из диапазона 0… m -1. Затем при помощи специальной формулы, вычисляется новое число, которое заменит старое в шифртексте.

Процесс шифрования можно описать следующей формулой:

Где x - номер шифруемой буквы в алфавите; m - размер алфавита; a, b - ключ шифрования.

Для расшифровки вычисляется другая функция:

Где a -1 - число обратное a по модулю m . Это значит, что для корректной расшифровки число a должно быть взаимно простым с m .

С учетом этого ограничения вычислим пространство ключей аффиного шифра на примере английского алфавита. Так как английский алфавит содержит 26 букв, то в качестве a может быть выбрано только взаимно простое с 26 число. Таких чисел всего двенадцать: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 и 25. Число b в свою очередь может принимать любое значение в интервале от 0 до 25, что в итоге дает нам 12*26 = 312 вариантов возможных ключей.

Криптоанализ аффиного шифра

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

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

Т.е. в английском тексте наиболее встречающимися буквами будут E, T, A. В то время как самыми редкими буквами являются J, Q, Z. Следовательно, посчитав частоту появления каждой буквы в тексте мы можем определить насколько частотная характеристика текста соответствует английскому языку.

Для этого необходимо вычислить значение:

,

Где n i - частота i -й буквы алфавита в естественном языке. И f i - частота i -й буквы в шифртексте.

Чем больше значение χ, тем больше вероятность того, что текст написан на естественном языке.

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

Разумеется следует учитывать, что метод не всегда работает с короткими сообщениями, в которых частотные характеристики могут сильно отличатся от характеристик естественного языка.

Шифр простой замены

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

При шифровании каждая буква в тексте заменяется по следующему правилу. Первая буква алфавита замещается первой буквой ключа, вторая буква алфавита - второй буквой ключа и так далее. В нашем примере буква A будет заменена на X, буква B на F.

При расшифровке буква сперва ищется в ключе и затем заменяется буквой стоящей в алфавите на той же позиции.

Криптоанализ шифра простой замены

Пространство ключей шифра простой замены огромно и равно количеству перестановок используемого алфавита. Так для английского языка это число составляет 26! = 2 88 . Разумеется наивный перебор всех возможных ключей дело безнадежное и для взлома потребуется более утонченная техника, такая как поиск восхождением к вершине :

  1. Выбирается случайная последовательность букв - основной ключ. Шифртекст расшифровывается с помощью основного ключа. Для получившегося текста вычисляется коэффициент, характеризующий вероятность принадлежности к естественному языку.
  2. Основной ключ подвергается небольшим изменениям (перестановка двух произвольно выбранных букв). Производится расшифровка и вычисляется коэффициент полученного текста.
  3. Шаги 2-3 повторяются пока коэффициент не станет постоянным.
Для вычисления коэффициента используется еще одна характеристика естественного языка - частота встречаемости триграмм.
Чем ближе текст к английскому языку тем чаще в нем будут встречаться такие триграммы как THE, AND, ING. Суммируя частоты появления в естественном языке всех триграмм, встреченных в тексте получим коэффициент, который с большой долей вероятности определит текст, написанный на естественном языке.

Шифр Полибия

Еще один шифр подстановки. Ключом шифра является квадрат размером 5*5 (для английского языка), содержащий все буквы алфавита, кроме J.

При шифровании каждая буква исходного текста замещается парой символов, представляющих номер строки и номер столбца, в которых расположена замещаемая буква. Буква a будет замещена в шифртексте парой BB, буква b - парой EB и так далее. Так как ключ не содержит букву J, перед шифрованием в исходном тексте J следует заменить на I.

Например, зашифруем слово HABRAHABR. C("HABRAHABR") = "AB BB EB DA BB AB BB EB DA".

Криптоанализ шифра Полибия

Шифр имеет большое пространство ключей (25! = 2 83 для английского языка). Однако единственное отличие квадрата Полибия от предыдущего шифра заключается в том, что буква исходного текста замещается двумя символами.

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

Перестановочный шифр

Помимо шифров подстановки, широкое распространение также получили перестановочные шифры. В качестве примера опишем Шифр вертикальной перестановки .

В процессе шифрования сообщение записывается в виде таблицы. Количество колонок таблицы определяется размером ключа. Например, зашифруем сообщение WE ARE DISCOVERED. FLEE AT ONCE с помощью ключа 632415.

Так как ключ содержит 6 цифр дополним сообщение до длины кратной 6 произвольно выбранными буквами QKJEU и запишем сообщение в таблицу, содержащую 6 колонок, слева направо:

Для получения шифртекста выпишем каждую колонку из таблицы в порядке, определяемом ключом: EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE.

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

Криптоанализ перестановочного шифра

Лучшим способом атаки шифра вертикальной перестановки будет полный перебор всех возможных ключей малой длины (до 9 включительно - около 400 000 вариантов). В случае, если перебор не дал желаемых результатов, можно воспользоваться поиском восхождением к вершине.

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

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

Шифр Плейфера - подстановочный шифр, реализующий замену биграмм. Для шифрования необходим ключ, представляющий собой таблицу букв размером 5*5 (без буквы J).

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

Зашифруем пару "WN". Буква W расположена в первой строке и первой колонке. А буква N находится во второй строке и третьей колонке. Эти буквы образуют прямоугольник с углами W-E-S-N. Следовательно, при шифровании биграмма WN преобразовывается в биграмму ES.
В случае, если буквы расположены в одной строке или колонке, результатом шифрования является биграмма расположенная на одну позицию правее/ниже. Например, биграмма NG преобразовывается в биграмму GP.

Криптоанализ шифра Плейфера

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

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

Суть алгоритма сводится к следующим действиям:

  1. Выбирается случайная последовательность букв - основной-ключ. Шифртекст расшифровывается с помощью основного ключа. Для получившегося текста вычисляется коэффициент, характеризующий вероятность принадлежности к естественному языку.
  2. Основной ключ подвергается небольшим изменениям (перестановка двух произвольно выбранных букв, перестановка столбцов или строк). Производится расшифровка и вычисляется коэффициент полученного текста.
  3. Если коэффициент выше сохраненного значения, то основной ключ заменяется на модифицированный вариант.
  4. В противном случае замена основного ключа на модифицированный происходит с вероятностью, напрямую зависящей от разницы коэффициентов основного и модифицированного ключей.
  5. Шаги 2-4 повторяются около 50 000 раз.
Алгоритм периодически замещает основной ключ, ключом с худшими характеристиками. При этом вероятность замены зависит от разницы характеристик, что не позволяет алгоритму принимать плохие варианты слишком часто.

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

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

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

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

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

Цифры ключа определяют на сколько позиций необходимо сдвинуть букву в алфавите для получения шифртекста. Букву H необходимо сместить на одну позицию - в результате получается буква I, букву A на 2 позиции - буква C, и так далее. Осуществив все подстановки, получим в результате шифртекст: ICESCKBDU.

Криптоанализ шифра Виженера

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

Для этого можно воспользоваться индексом совпадений.

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

,

Где f i - количество появлений i-й буквы алфавита в тексте, а n - количество букв в тексте.

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

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

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

P.S.

Исходники всех вышеописанных шифров и атак на них можно посмотреть на