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» возможна лишь по-английски. Если бы не это, я начал бы поиски с других языков... Но я уже знал, что криптограмма написана по-английски.
... Как видите, текст криптограммы идет в сплошную строку. Задача намного была бы проще, если б отдельные слова были выделены просветами... Но просветов в строке не было, и я принялся подсчитывать однотипные знаки, чтобы узнать, какие из них чаще, какие реже встречаются в криптограмме. Закончив подсчет, я составил такую таблицу:
Знак |
Сколько раз встречается |
|