logo
Криптология: точки соприкосновения математики и языкознания

8

9

а

б

в

г

д

е, ё

ж

з

и

й

0,062

0,014

0,038

0,013

0,025

0,072

0,007

0,016

0,062

0,010

10

11

12

13

14

15

16

17

18

19

к

л

м

н

о

п

р

с

т

у

0,028

0,035

0,026

0,053

0,090

0,023

0,040

0,045

0,053

0,021

20

21

22

23

24

25

26

27

28

29

30

ф

х

ц

ч

ш

щ

ы

ь, ъ

э

ю

я

0,002

0,009

0,004

0,012

0,006

0,003

0,016

0,014

0,003

0,006

0,018

Итак, в русском тексте чаще всего встречается буква «О», затем буква «Е» и на третьем месте стоят буквы «И» и «А». Реже всего - буквы «Щ» и «Ф».

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

В процессе шифрования (и дешифрования) используется таблица («таблица Виженера»), которая устроена следующим способом: в первой строке выписывается весь алфавит, в каждой следующей осуществляется циклический сдвиг на одну букву. Так получается квадратная таблица, число строк которой равно числу столбцов и равно числу букв в алфавите. Ниже представлена таблица, составленная из 31 буквы русского алфавита (без букв «Ё» и «Ъ»). Чтобы зашифровать какое-нибудь сообщение, поступают следующим образом. Выбирается слово - ключ (например, «монастырь») и подписывается с повторением над буквами сообщения.

Таблица Виженера

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ш

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Щ

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Ь

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ы

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Я

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

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

м

о

н

а

с

т

ы

р

ь

м

о

н

а

с

т

ы

р

ь

м

о

н

р

а

с

к

и

н

у

л

о

с

ь

м

о

р

е

ш

и

р

о

к

о

э

о

я

к

щ

а

п

ы

й

ю

й

щ

о

в

ч

ф

ш

л

ь

ш

ы

Наконец, к сообщению можно применять несколько систем шифрования.

Аббат Тритемиус - автор первой печатной книги о тайнописи (1518 г.) - предложил несколько шифров и среди них шифр, который можно считать усовершенствованием шифра Г.Ю.Цезаря. Этот шифр устроен так. Все буквы алфавита нумеруются по порядку (от 1 до 33 в русском варианте). Затем выбирают какой-нибудь ключ, например «Вологда», и подписывают сообщением с повторением, как показано ниже:

о

п

е

р

а

ц

и

я

н

а

ч

и

н

а

е

т

с

я

в

в

о

с

к

р

е

с

е

н

ь

е

в

о

л

о

г

д

а

в

о

л

о

г

д

а

в

о

л

о

г

д

а

в

о

л

о

г

д

а

в

о

Чтобы получить шифрованный текст, складывают номер очередной буквы с номером соответствующей буквы ключа. Если полученная сумма больше 33, то из нее вычитают 33. В результате получается последовательность чисел от 1 до 33. Вновь заменяя числа этой последовательности соответствующими буквами, получают шифрованный текст. Разбивая этот текст на группы особой длины (например, по 5), получают шифрованное сообщение:

«СЯСАД ЫЙВЭМ ЖМТБЗ ВЮОЁЖ ПФЪЭФ ХЙОЯФ»

Если под ключом понимать однобуквенное слово «В» (в русском варианте), то мы получим шифр Г.Ю.Цезаря. В этом случае для того же текста шифрованное сообщение принимает вид

«СТЗУГ ЩЛВРГ ЪЛРГЗ ХФВНЕЕ СФНУЗ ФЗРЯЗ»

Появившийся в XVIII в. шифр «по книге» можно рассматривать как дальнейшее усовершенствование шифра Г.Ю.Цезаря. Чтобы воспользоваться этим шифром, два корреспондента договариваются об определенной книге, имеющейся у каждого из них. Например, Я.Гашек «Похождения бравого солдата Швейка» (Москва, 1997). В качестве ключа каждый из них может выбрать «слово» той же длины, что и передаваемое сообщение. Этот ключ кодируется парой чисел, а именно номером страницы и номером строки на ней, и передается вместе с шифрованным сообщением. Например, (287,2) определяет «слово», то есть текст избранной книги: «Внимательно прочитав эту страницу, офицеры ничего не поняли…». Этому ключу отвечает последовательность чисел (от 1 до 33):

В н и м а т е л ь н о п р о ч и т а в э т у с т р а н и ц у…

03 15 10 14 01 20 06 13 30 15 16 17 18 16 25 10 20 01 03 31 20 21 19 20 18 01 15 10 24 21…

Зная этот ключ, можно легко расшифровать переданное сообщение. Например,

«РОНЮП ЕЧХВШ РХЩЮЩ ХУШРМ ШВЧФА» «Над Россией безоблачное небо»

Примером нераскрываемого шифра может служить «одноразовый шифровальный блокнот» - шифр, в основе которого лежит та же идея, что и в алфавите Г.Ю.Цезаря. Назовем расширенным алфавитом совокупность букв алфавита, знака пробела между словами и знаков препинания [. , : ; ! ? ( ) - “]. Число символов расширенного алфавита в русском варианте равно 44. Занумеруем символы расширенного алфавита числами от 0 до 43. Тогда любой передаваемый текст можно рассматривать как числовую последовательность {an} множества А={0, 1, 2, …, 43}.

Предположим, что имеем случайную последовательность {сn} из чисел множества А той же длины, что и передаваемый текст (ключ). Складывая по модулю 44 число an передаваемого текста с соответствующим числом сn ключа

an + сn ? bn (mod 44), 0 ? bn ? 43,

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

an ? сn - bn (mod 44), 0 ? an ? 43,

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

Случайная последовательность чисел множества А может быть получена при помощи «вертушки со стрелкой». Обод вертушки разделен на 44 равные части (дуги). Каждая из них помечена числами от 0 до 43. Запуская вертушку, получим какое-нибудь из чисел множества А. Продолжая так дальше, можем получить случайную последовательность любой длины.

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

ЛИТЕРАТУРНЫЙ КРИПТОАНАЛИЗ

Первые шаги литературного криптоанализа связаны с появлением рассказа американского писателя Эдгара По «Золотой жук». Этот рассказ и по сей день остается непревзойденным художественным произведением на тему о дешифровании.

Про Эдгара По можно сказать, что он неизбежно должен был заинтересоваться криптоанализом. Хотя По неоднократно пространно рассуждал о логике и писал рассказы с логично построенными сюжетами, он увлекался и такими иррациональными предметами, как френология и гипноз. А поскольку криптоанализ обладал качествами, которые импонировали Эдгару По в науках, и вместе с тем от криптоанализа исходил неземной свет мистики; двойственный характер этой области человеческих знаний пришелся впору раздвоенной натуре По. Научность импонировала интеллекту писателя, а таинственность была созвучна его эмоциям. Первые упоминания о криптоанализе у По появились в статье «Загадочное и головоломное», и уже позже отразились в его литературных творениях детективного характера.

Чтобы поподробнее рассмотреть использование криптографии в рассказе «Золотой жук», мы приводим отрывок из этой книги:

«... Легран разогрел пергамент и дал его мне. Между черепом и козленком, грубо начертанные чем-то красным, стояли такие знаки:

53##+305))6*;4826)4#.)4#.);806*,48+8||60))85;;]8*;:#*8+83(88)5*+;46(;88*96*?;8)*#(;485):5*+2:*#(;4956*2(5*=4)8||8*;4069285);)6+8)4##;1#9;48081;8:8#1;48+85;4)485+528806*81(#9;48;(88;4(#?34;48)4#;161;:188#?

- Что ж! - сказал я, возвращая Леграну пергамент, - меня это не подвинуло ни на шаг...

- И все же, - сказал Легран, - она не столь трудна, как может сперва показаться. Эти знаки, конечно, - шифр; иными словами, они скрывают словесную запись...

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

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

Знак

Сколько раз встречается