Шифрование и частота букв и символов в текстах

—           Вот уж где меньше всего могут быть случайности..*

—           Грамматические правила и вдруг — вероятность...

—           Неужели нет ни одной науки без арифметики?..

Все это послышалось мне, когда я дописал предыдущую

 

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

 

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

 

Кто может оставаться равнодушным, когда встречается с Тайной?

 

Что здесь может быть написано? Наверняка кто-то решил сообщить нечто важное, какой-то секрет. А чтобы секрет сохранить, зашифровал письмо.

 

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

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

Оказывается, такой волшебник есть. Этот маг и чаро­дей — вероятность.

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

Если взять, например, собрание сочинений Гайдара и подсчитать, какую часть от всех букв составляет, скажем, буква А, то окажется, что доля этой буквы равна 0,06, или 6 процентов.

То же самое будет и для собрания сочинений Маршака. Михалкова и даже для Большой советской энциклопедии в пятидесяти томах.

Но что означает «доля буквы А равна 0,06»? Откуда можно взять эту цифру?

Видимо, нужно сосчитать все буквы в какой-нибудь кни­ге и отдельно пересчитать, сколько раз там появилась бук­ва А. Затем найти интересующую нас долю.

Доля буквы А = число букв А в книге              число всех букв

0,06, или 6%.

Знакомая формула, не правда ли?

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

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

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

Оказывается, наиболее часто встречается в книгах бук­ва О. Вероятность ее появления равна 0,09. Затем идет Е — 0,07, после этого А и И — по 0,06 и т. д. Но наиболее часто, оказывается, появляется не какая-нибудь буква, а про­бел между словами. Вероятность появления пробела 0,18.

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

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

Вот, например, знак рз встретился нам в письме

159 раз, а всего знаков мы насчитали 887. Значит, частота

этого знака равна

159

887

около 0,18 и его место в той

же строке таблицы 2, что и обозначение пробела, вероят­ность которого тоже 0,18.

Знак V имеет частоту, равную

88

887

около 0,09,

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

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

Посмотрите на письмо: отдельные слова — это все то, что стоит между флажками. Очень даже просто.

Затем справа от знаков шифра в таблице я стал записы­вать те обозначения и буквы, которым эти знаки соответ­ствуют. Так, рядом со знаком F3 появился пробел, рядом со знаком — буква О. К сожалению, дальше расшиф­ровка пошла труднее, так как с частотой 0,07 не оказалось ни одного знака, а с частотой, близкой к 0,06, — целых три.

Я поступил так. Продолжал как ни в чем не бывало и дальше выписывать справа от знаков все возможные бук­вы алфавита, которые могут соответствовать шифру. Это те буквы, вероятности которых равны или почти не отли­чаются от частоты соответствующих знаков (не более, чем на 0,01). Небольшое отличие не должно нас смущать, ведь мы знаем, что вероятность есть средняя величина и в каж­дом отдельном случае могут быть незначительные откло­нения.

Таким образом, например, в строке вероятности 0,06 ря­дом со знаками    А 0^ ф появились буквы А, И, Е,

Т, Н; в строке вероятности 0,05 рядом со знаками Г). ГП —

буквы Т, Н, А, И, С, Р, В, Л и так далее.

Затем я использовал такой хитрый прием. Выписал все знаки, которые в шифровке оказались однобуквенными сло­вами — они одиноко с^оят между двумя флажками.

Вот зти знаки: О» Д 9 D ,         9* Ш

Дальше я рассудил так. Знаки          05 ф , стоящие

в строке вероятности 0,06 рядом с буквами А, И, Е, Т, Н, могут означать любую из них. Как однобуквенное слово

встречается только знак Q . Следовательно, этот знак

может быть либо А, либо И, ибо остальные буквы (Е, Т, Н) в качестве однобуквенных слов не встречаются.

Как же теперь отличить А от И?

Давайте поработаем дальше вместе.

Если внимательно просмотреть письмо, можно заметить, что знак о нигде не удваивается. Между тем, буква И, как известно, довольно часто дает удвоения. Значит, вероят­нее всего, что знак 0        — это буква А.

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

Оставшиеся знаки этой строки £4 и ф могут

означать буквы Е, Т, Н, которые не бывают однобуквен­ными словами.

Просмотрев письмо, мы находим, что знак ф встре­чается в двухбуквенном слове вместе с уже известным нам знаком V — буквой О (третье слово в шестнадцатой

строке письма). Значит, это не может быть буква Е. Ведь та­ких сочетаний в двухбуквенных словах не бывает. Остаются две возможные буквы: Т и Н, Но буква Н часто удваивает­ся, а наш знак ни разу не дает удвоения. Видимо, вероятнее всего это буква Т.

Остается знак bd , который может означать буквы Е или Н.

Выбор нам поможет сделать второе слово в первой строч­ке письма. Предпоследний знак в нем, как мы определили, означает букву Т, поэтому последний знак (V] вряд ли

может быть буквой Н. Таких сочетаний в конце слова не бывает. Вероятнее всего, что это буква Е.

Перейдем к строке с вероятностью 0,05. Этой вероятно­сти соответствуют два знака £) и Q] , которые могут

обозначать шесть неизвестных букв: Н, И, С, Р, В, Л (знаки А и Т мы только что узнали).

Однобуквенные слова дает только знак р . Он мо­жет обозначать буквы И, С, В. Но из этих трех наиболее вероятно ожидать удвоения в конце слова от буквы И. Та­кое удвоение знак р дает в первом слове четвертой строки. Значит, это буква И.

Оставшийся знак Q] может обозначать буквы Н, Р, Л

(этот знак в однобуквенных словах не встречается, поэтому С и В отпадают). Удвоения скорее всего следует ожидать от буквы Н. Такое удвоение есть в первом слове третьей стро­ки. Значит, это буква Н.

Спустимся ниже, к вероятности 0,04. Здесь два знака Ф И N соответствуют шести неизвестным буквам: С, Р, В, Л, К, М. Знак ^ дает однобуквенные слова,

поэтому он может обозначать С, В, К. Выбор буквы здесь удобно сделать так.

Найдем одно или несколько слов, в которых знак ^ встречается вместе с уже известными нам буквами. Это, например, последнее слово в десятой строке и предпослед­нее — в пятнадцатой. Станем подставлять в эти слова по очереди буквы С, В и К и убедимся, что это может быть только буква С.

Оставшийся знак р><| может быть одной из букв:

Р, Л, М. Подыщем слово, в котором этот знак встречается вместе с уже известными нам буквами. Это второе слово в тридцать первой строке. Подбором находим, что знак

м может обозначать только букву Р. Теперь нам уже нетрудно таким же путем разгадать и все остальные знаки шифра. Результаты этих поисков по­мещены в таблице.

Букв Ф и Щ в письме нет, поэтому придумаем их шифр сами, чтобы получить алфавит полностью.

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

Ну конечно. Это же знаменитое письмо Тома Сойера из книги «Приключения Гекльберри Финна» Марка Твена.

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

$ Н: $

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

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

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

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

Математика плюс языкознание сделали возможным чу­до электронной вычислительной техники — машинный пе­ревод с одного языка на другой.

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

Как мы только что видели на примере шифрованного письма, языку свойственны вполне определенные математи­ческие закономерности. Их изучением занимается молодая наука, появившаяся на стыке математики и лингвистики,— математическая лингвистика. С ее помощью электронно- вычислительные машины и осуществляют перевод с одного языка на другой.

Даже такой не математический предмет, как литерату­ра, и тот иногда раскрывается по-новому в свете теории вероятностей. Попытаемся проделать это в следующем рас­сказе.

 

Категория: Наука и Техника | Добавил: fantast (10.12.2018)
Просмотров: 1247 | Рейтинг: 0.0/0