Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kody_i_shifry_yuliy_Cezar_Enigma_i_Internet_2007.pdf
Скачиваний:
259
Добавлен:
29.03.2016
Размер:
2.04 Mб
Скачать

27

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

Развивая эту мысль, можно добавить в алфавит несколько знаков, чтобы можно было учесть и пробелы, и символы пунктуации, такие как точка и запятая. В этом случае в алфавит шифрованного текста придется добавить новые символы. В качестве таковых подойдут любые неалфавитные знаки. Типичная тройка знаков может выглядеть, например, так: $, % и &. И например, может оказаться, что в 29-буквенном алфавите шифрованного текста буква D будет представлена знаком &, буква J - знаком $, буква S - знаком %, а пробел, точка и запятая - знаками H, F и V. Числа при этом можно записывать словами, а можно, наоборот (если это предпочтительнее), расширить алфавит и дальше, включив в него также и цифры. Такие дополнительные знаки, может быть, и придают шифрованному тексту "неприступный вид", но на практике стойкость шифра возрастает очень незначительно.

Второе замечание: заметим, что в приведенном примере шифра простой замены две буквы (Q и T) не изменяются. Часто студенты, изучающие криптографию, думают вначале, что этого следует избегать. На самом деле бояться этого не следует, если таких букв всего одна или две. Можно математически точно доказать, что в случайно выбранном алфавите замены с вероятностью около 63% встретится хотя бы одна неизменяемая буква (см. M1). Известно, например, что карточные шулеры делали на этом деньги: если два игрока перетасуют по колоде карт, а затем будут сравнивать свои карты, доставая их по одной из каждой колоды, то с вероятностью около 63% в определенный момент они оба вытянут одинаковые карты, прежде чем колоды закончатся. Шулер, который знал это, предлагал своему противнику игру с равными ставками, причем сам он ставил на то, что карты когданибудь совпадут, а его противник - что этого не случится. Шансы в пользу шулера были 63:37. (Может показаться удивительным, что вероятность совпадения составляет 63% как для 26-буквенного алфавита, так и для колоды из 52 карт. На самом деле эти вероятности не совсем одинаковы, но они совпадают по крайней мере в 20 десятичных разрядах.)

Вскрытие шифра простой замены

Сначала мы рассмотрим способ, которым не надо вскрывать шифр простой замены - способ полного перебора всех вариантов. Букве A открытого текста можно сопоставить любую из 26 латинских букв, букве B - любую из оставшихся 25, букве C - любую из оставшихся 24, и так далее. Поэтому число всевозможных алфавитов простой замены равно

28

26 25 24 23 ... 3 2 1,

что для удобства обозначается в математических текстах 26!, а читается "двадцать шесть факториал". Это огромное число, больше чем 10 в 26-й степени (обычно записывается 1026), так что даже компьютер, способный каждую секунду проверять тысячу миллионов (т.е. 109) алфавитов, будет вынужден затратить на эту задачу несколько сотен миллионов лет. Ясно, что метод полного перебора, дающий удовлетворительные результаты с шифром Юлия Цезаря (в нем всего 25 вариантов), здесь совершенно непригоден.

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

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

A,B,C,...,X,Y,Z.

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

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

(4)Попробуйте определить шифрованные обозначения для некоторых часто встречающихся букв, таких как E,T,A,I,O и N. Вместе они обычно составляют более 40% всего текста, причем в большинстве текстов буква E значительно опережает остальные по частоте встречаемости. На этом этапе большим подспорьем будет таблица частот встречаемости знаков английского языка. Такая таблица приводится здесь (см. Таблицу 2.4); еще одна таблица, построенная на основе гораздо более объемной выборки, содержится в главе 7. Каждая из них подойдет для вскрытия шифра простой замены. Эти таблицы следует трактовать только как подсказки: если для частых букв их частоты мало меняются от выборки к выборке, то частоты редких букв несут мало информации. В приведенной ниже таблице

29

частот знаков английского языка для каждой из букв J,X и Z приведена частота 1 на 1000 знаков, но в конкретном тексте из 1000 знаков каждая из этих букв может встретиться несколько раз, а может и вовсе отсутствовать. Подобные замечания справедливы для частот знаков большинства языков.

(5)Когда таким образом будут восстановлены некоторые фрагменты слов, ищите короткие слова, в которых неизвестны одна-две буквы. Например, если буквы T и E уже известны, и если слово длиной три знака с неизвестной буквой между буквами T и E, то это, скорее всего, слово THE, а неизвестная буква, соответственно, H. Дальше можно расставить такие слова, как THIS, THAT, THERE и THEN, получая новые соответствия между знаками открытого и шифрованного текстов.

(6)Завершите вскрытие шифра, используя грамматическую и контекстную информацию.

Таблица 2.4 Таблица частот встречаемости знаков английского языка на 1000 знаков текста (на основе подборки стихотворений, рассказов и научных текстов)

Aáá57

Eá116

Iáá58

Máá14

Qááá3

Uáá25

Yáá18

 

Bááá9

Fáá28

Jááá1

Náá57

Ráá49

Vááá9

Zááá1

 

Cáá17

Gáá14

Kááá5

Oáá53

Sáá55

Wáá11

 

 

Dáá26

Háá46

Láá34

Páá18

Táá91

Xááá1

ááá184

 

Знаки препинания

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 2.2 Перехвачено шифрованное сообщение из 53-х пятизначных групп. Известно,

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

Шифрованный текст имеет вид:

MJZYB LGESE CNCMQ YGXYS PYZDZ PMYGI IRLLC PAYCK YKGWZ MCWZK YFRCM ZYVCX XZLZP MYXLG WYTJS MYGPZ YWCAJ MYCWS ACPZY XGLYZ HSWBN ZYXZT YTGRN VYMJC POYMJ SMYCX YMJZL ZYSLZ YMTZP MQYMJ LZZYB ZGBNZ YCPYS YLGGW YMJZP YMJZL ZYCKY SPYZD ZPKYI JSPIZ YMJSM YMJZL ZYSLZ YMTGY GXYMJ ZWYTC MJYMJ ZYKSW ZYECL MJVSQ YERMY MJCKY CKYKG

30

Решение

(1) Сначала составим таблицу частот встречаемости знаков (см. Таблицу

2.5)

Таблица 2.5

Aááá3

Eááá4

Iááá4

Máá27

Qááá3

Uááá0

Yáá49

Bááá4

Fááá1

Jáá17

Nááá4

Rááá4

Vááá3

Záá33

Cáá18

Gáá14

Kááá9

Oááá1

Sáá14

Wááá9

 

Dááá2

Hááá1

Láá14

Páá13

Tááá6

Xááá8

 

 

 

 

 

 

 

 

(2)Поскольку буква Y встречается 49 раз в тексте из 265 знаков, то есть гораздо чаще других (на нее приходится примерно 18% текста), то можно сделать вывод, что знак Y шифрованного текста соответствует знаку пробела

. Следом за Y по частоте идут буквы Z и M, поэтому отметим их как хорошие кандидатуры на место букв E и T, либо T и E.

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

1

2

3 4

5

6

7

MJZáBLGESECNCMQáGXáSPáZDZPMáGIIRLLCPAáCK

8

9

10

11

12

13

14

KGWZMCWZKáFRCMZáVCXXZLZPMáXLGWáTJSMáGPZáWCA

JM

15 16 17 18 19 20 21 22 23

CWSACPZáXGLáZHSWBNZáXZTáTGRNVáMJCPOáMJSMáCXá

MJZLZ

24

25

26

27

28 29 30

31

32

33

SLZáMTZPMQáMJLZZáBZGBNZáCPáSáLGGWáMJZPáMJZLZáC

K

34

35

36

37

38

39

40 41

42

43

SPáZDZPKáIJSPIZáMJSMáMJZLZáSLZáMTGáGXáMJZWáTCMJ

44

45

46

47

48

49 50

MJZáKSWZáECLMJVSQáERMáMJCKáCKáKG

В полученном тексте большое количество коротких слов, а средняя длина слова лежит в интервале от 4 до 5, да и само распределение длин слов в целом выглядит более-менее подходящим для обычного языка. Таким образом, наше предположение, что буква Y соответствует пробелу, получает подтверждение.

31

(4)При рассмотрении коротких слов выясняется следующее:

Слово длины 1 только одно (номер 29), состоит из буквы S, поэтому можно предположить, что это либо A, либо I*).

Слов длины 2 встретилось всего 10; одно из них (CK) встретилось трижды, под номерами 33 и 49, а два встречаются по два раза - GX под номерами 3 и 41, и SP под номерами 4 и 34.

Слов длины 3 всего 11, из них два встретились по два раза: MJZ под номерами 1 и 44, и SLZ под номерами 24 и 39.

(5)Поскольку мы уже сделали предположение, что знаки M и Z соответствуют буквам E и T (либо T и E), то триграф MJZ превращается либо

вE?T, либо в T?E. Поскольку он встретился дважды, то весьма вероятно, что это слово THE, так что знаки M,J и Z - это, соответственно, буквы T,H и E. В шифрованном тексте есть еще несколько слов, содержащих знаки M,Z и J, в том числе:

(23)MJZLZ, которое превращается в THE?E, так что знак L соответствует R или S;

(26)MJLZZ, которое превращается в TH?EE, откуда следует, что L - это R;

(42)MJZW, которое превращается в THE?, поэтому знак W

соответствует M или N;

(37)MJSM, которое превращается в THAT, если знак S соответствует букве A, и в THIT, если S соответствует I.

Отсюда делаем вывод, что знаку L соответствует буква R, знаку S соответствует буква A, а знаку W - буква M или буква N.

Поскольку слово 26 - это THREE*), то стоит проверить, не является ли слово под номером 25 числительным. В шифрованном виде оно выглядит как MTZPMQ, и благодаря уже известным буквам записывается в открытом виде как T?E?T?, что весьма похоже на TWENTY**). Если это предположение верно, то знаки T,P и Q - это, соответственно, буквы W,N и Y, и тем самым для знака W устраняется неопределенность - это буква M.

(6) Нами уже установлены открытые эквиваленты для девяти символов шифрованного текста: J,L,M,P,Q,S,W,Y и Z. Им отвечают в открытом тексте, соответственно, H,R,T,N,Y,A,M, пробел и E. Эти девять знаков вместе покрывают более 60% текста, поэтому снова выпишем текст, проставляя открытые эквиваленты уже известных знаков шифрованного текста и ставя точки ( ) там, где буквы открытого текста еще не установлены.

*) неопределенный артикль и местоимение "я" английского языка (прим.перев.).

*) число три - (прим.перев.).

**) число двадцать - (прим.перев.).

32

Проделав это, можно установить еще несколько соответствий между знаками открытого и шифрованного текстов. Слово 30, уже частично дешифрованное как R..M, содержит в середине пару одинаковых знаков, и таким образом, это может быть только ROOM, поэтому знак G соответствует букве O открытого текста. Следовательно, слово под номером 50 (в шифрованном тексте KG) в открытом виде теперь выглядит как .O, и поэтому знак K соответствует либо S, либо D, так как нам уже известно, что это не N и не T. Слова под номерами 48 и 49 (MJCK и CK) частично дешифрованы как TH.S и .S, и отсюда мы делаем вывод, что знак C - это буква I. Поскольку знаки C и G встретились в шифрованном тексте 18 и 14 раз соответственно, то они должны отвечать частым буквам. Поэтому буквы I и O сюда хорошо подходят, что вы уже заметили из сказанного выше.

Подставляя I,O и S вместо C,G и K в частично восстановленный текст, получим:

1 2 3 4 5 6 7

MJZáBLGESECNCMQáGXáSPáZDZPMáGIIRLLCPAáCK THEá.RO.A.I.IT.áO.áANáE.ENTáO...RRIN.áIS

8 9 10 11 12 13 14

KGWZMCWZKáFRCMZáVCXXZLZPMáXLGWáTJSMáGPZáWCA

JM

SOMETIMESá..ITEá.I..ERENTá.ROMá.HATáONEáMI.HT

15 16 17 18 19 20 21 22 23

CWSACPZáXGLáZHSWBNZáXZTáTGRNVáMJCPOáMJSMáCXá

MJZLZ

IMA.INEá.ORáE.AM..Eá.E.áWO...áTHIN.áTHATáI.áTHERE

24 25 26 27 28 29 30 31 32 33

SLZáMTZPMQáMJLZZáBZGBNZáCPáSáLGGWáMJZPáMJZLZáC

K

AREáTWENTYáTHREEá.EO..EáINáAáROOMáTHENáTHEREáIS

34 35 36 37 38 39 40 41 42 43

SPáZDZPKáIJSPIZáMJSMáMJZLZáSLZáMTGáGXáMJZWáTCMJ ANáE.ENSá..AN.EáTHATáTHEREáAREáTWOáO.áTHEMá.ITH

44 45 46 47 48 49 50

MJZáKSWZáECLMJVSQáERMáMJCKáCKáKG THEáSAMEá.IRTH.A.á..TáTHISáISáSO

Теперь оставшиеся буквы легко восстанавливаются. Полностью алфавит расшифрования (если обозначить пробел знаком ^) выглядит так:

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

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

33

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

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

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

Как для шифра простой замены, так и для системы Юлия Цезаря алфавиты зашифрования и расшифрования, в общем случае, будут различны. Причем для шифра Юлия Цезаря они будут одинаковы только для значения сдвига, равного 13. Для шифра простой замены этого можно добиться, если сгруппировать большую часть букв (если не все) попарно, так чтобы внутри каждой пары буквы при шифровании переходили друг в друга, а остальные не изменялись. Некоторые шифр-машины, в том числе "Энигма" и "Хагелин", автоматически вырабатывают подобные взаимно-обратные алфавиты, так что процессы зашифрования и расшифрования для них идентичны. Это удобно для пользователя, но одновременно снижает стойкость системы. В шифре простой замены на базе 26-буквенного алфавита число возможных алфавитов замены сокращается с 1026 до менее чем 1013 (детальные подсчеты можно найти в M2). Хотя и это число остается очень большим, но с криптоаналитической точки зрения это существенное уменьшение стойкости.

Несмотря на это, подобные взаимно-обратные шифры простой замены

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

Анализируя приведенный выше пример, отметим, что в шифрованном тексте отсутствует знак U, а букв J и Z нет в открытом тексте. Z используется в нем вместо пробела, и в шифрованном тексте превращается в Y, а буква J является открытым эквивалентом знака U шифрованного текста, и отсутствует в исходном сообщении, которое выглядит так:

THEáPROBABILITYáOFáANáEVENTáOCCURRINGáIS

SOMETIMESáQUITEáDIFFERENTáFROMáWHATáONEáMIGHT

IMAGINEáFORáEXAMPLEáFEWáWOULDáTHINKáTHATáIFáTH

ERE

AREáTWENTYáTHREEáPEOPLEáINáAáROOMáTHENáTHEREáI

S

ANáEVENSáCHANCEáTHATáTHEREáAREáTWOáOFáTHEMáWI

TH

34

THEáSAMEáBIRTHDAYáBUTáTHISáISáSO*) .

Дешифрование этой криптограммы было частично основано на предположении, что частоты встречаемости отдельных знаков, в особенности пробела, E, T, A, O, I и N, будут близки к значениям, которые логично ожидать для фрагмента текста заданного объема, написанного на "типичном" английском языке. Тем не менее, иногда может встретиться отрывок из "нетипичного" источника, такого как узкоспециализированный научный текст. В нем могут довольно часто встречаться слова, которых вы не найдете в повести или в газете, и обычная частотная характеристика букв оказывается искаженной. Проводились исследования текстов различных стилей, таких как художественные произведения, газетные статьи, научные публикации, религиозные тексты, философские трактаты и т.д., объемом в несколько миллионов знаков на английском и некоторых других языках; для них опубликованы частоты встречаемости знаков и слов. Инициатором этой работы был Университет имени Брауна (США); эти таблицы опубликованы в [2.2]. Такие данные необходимы для стилистического анализа (например, при попытке установить автора для текстов, чье авторство неизвестно или является спорным) и других литературных исследований. Знание вероятной темы криптограммы - неоценимое подспорье для криптоаналитика. Если, например, ему известно, что данное письмо послано одним физиком - специалистом по высоким энергиям другому такому же специалисту, то в тексте могут присутствовать такие слова, как ПРОТОН, ЭЛЕКТРОН и КВАРК. Поиск таких слов может существенно уменьшить объем работы по дешифрованию сообщения. Если использовать необычные слова и избегать общеупотребительных, то это тоже может отразиться на частотах встречаемости букв, что, в свою очередь, может как помочь криптоаналитику, так и помешать ему. Известен один курьезный случай, когда автор написал повесть, состоящую из более чем 50000 слов без единой буквы E, однако это было сделано намеренно: он подвязал букву E на своей пишущей машинке, чтобы не было возможности ее использовать. Это - пример удивительного мастерства. Здесь я привел в качестве иллюстрации одно предложение из этой книги:

Upon this basis I am going to show you how a bunch of bright young folks did find a champion; a man with boys and girls of his own; a man of

*) Перевод открытого текста: "Вероятность того, что какое-то событие произойдет, иногда резко отличается от того, что мы можем себе представить. Например, немногие бы согласились с тем, что если в одной комнате собрать двадцать три человека, то в половине случаев среди них найдутся двое с одинаковым днем рождения. Тем не менее, это именно так.".

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]