– С помощью точек и тире, то есть коротких и длинных сигналов, – сказав это, Холмс быстро и удивленно взглянул на меня. – Уотсон, вы гений! Как я сам не догадался, – и тот же момент он уже погрузился в работу, что-то быстро записывая на новом листе бумаги. О моем присутствии он уже забыл, и я, чтобы не отвлекать его, тихо отправился спать.
Наутро, встав пораньше, я, не завтракая, покинул гостиничный номер и Холмса, продолжавшего корпеть над радиограммой, и отправился в расположение своей части, так как те дни, на которые я получил разрешение покинуть её, истекли.
Этот день 3 августа 1914 года прошел как обычно, размеренно и продуктивно. Я вновь погрузился в медицинскую науку, но в 11 часов 20 минут вечера нам объявили о начале войны. Я знал, что это произойдёт рано или поздно, но, тем не менее, это потрясло меня.
А утром меня вызвал командир части и сообщил, что им была получена правительственная телеграмма, в которой мне предписывалось срочно явиться в номер… отеля «Кларидж». Я понял, что Холмс разгадал загадку, и спешно отравился в отель.
Я шёл по городу и видел следующую картину: в городских скверах стояли на коновязи лошади, на площадях их принимали в армию и запрягали в повозки. По улицам маршировали солдаты, но в то же время было много гражданского населения, как ни в чем не бывало спешащего по своим делам, делающего покупки в магазинах, как ни странно, открытых. Всё было как в мирное время.
Я пришёл к Холмсу раньше других, и мы смогли перекинуться парой слов.
Спустя десять минут подошли и другие приглашённые. Их было двое: один из них был уже знакомый мне капитан Ньюбойл, а второй директор Intelligence Service. Когда все собрались, Холмс произнёс:
– Господа, я вас собрал здесь для того, чтобы сообщить о результатах моей работы, выполненной успешно, но, к сожалению, с некоторым опозданием, не зависящим от меня. Я буду краток, но всё же сообщу ход раскодирования, который, как мне думается, – Холмс оглядел нас, – может быть использован в будущем.
– Как видите, в тексте радиограммы используются следующие буквы: в (w), г (g), д (d), к (k), о (o), р (r), c (s), у (u). Таким образом, чтобы получить весь алфавит, с каждой буквой его надо сопоставить комбинацию из пары тех букв, которые я перечислил. Это несложно проверить, так как здесь чётное количество букв. Подобное, конечно, может быть случайностью, но всё же примем это как постулат. Я подсчитал частоту, с которой встречается каждая из комбинаций в тексте, и в соответствии с частотными таблицами получил предполагаемый алфавит. Однако такой приём не прошёл. Это было бы слишком просто, поэтому я стал смотреть глубже и задался вопросом: «Почему были выбраны именно эти буквы?» И тогда, вспомнив, как кодируются эти буквы в азбуке Морзе, понял, что для передачи используются три посылки, состоящие из «точек» и «тире». Так ведь, капитан Ньюбойл?
– Да, верно.
– И натолкнул на эту мысль меня мой друг и коллега доктор Уотсон, – он сделал значительно больший упор на слово «коллега».
Все присутствующие с удивлением посмотрели на меня, и я почувствовал, что краснею.
– Так вот, господа. Получается, что предполагаемые буквы в послании состоят из шести подобных сигналов, и с помощью них можно закодировать до 64 символов. Таким образом, можно предположить, что будут кодироваться только прописные или строчные буквы (их вид определяется по смыслу), цифры, знаки препинания и, возможно, раздел между словами. Но вставал ещё один вопрос: «По какому принципу происходило кодирование?» И тут меня осенило! Что такое «точки» и «тире» по сути своей? Это нули и единицы. А какой самый лучший способ шифрования для подобных чисел? Конечно же, сложение по модулю два!
– Простите, мистер Холмс, – прервал его рассказ директор, – что собой представляет сложение по модулю два?
– Сложение по модулю два используется для двоичных чисел, которые состоят из 0 и 1. Например, 0 – это 0, 1–1, 2 – 10, 3 – 11, 4 – 100 и так далее. Так вот, при сложении 0 и 1 получаем 1, а при сложении двух единиц – 10, а вот главное отличие при сложении по модулю два заключается в том, что 1 плюс 1 равно 0! Этот способ удобен тем, что при сложении исходного текста и ключа получается шифрованный текст, который, если вновь сложить с тем же самым ключом, даст первоначальный текст. Приведу пример. В качестве исходного алфавита возьмём следующее:
В качестве исходного текста возьмем вашу, Уотсон, фамилию, а ключом будет слово «война», и представим её в двоичном виде, добавляя впереди цифр необходимое количество нулей, чтобы их разрядность была равна шести:
Холмс настолько быстро писал, что директор с Ньюбойлом с удивлением переглядывались.
– Соответственно, результат сложения по модулю два будет следующий:
Последнюю букву «Н» в исходном тексте сложим с первой буквой «в» в кодовом слове. А теперь для полученных цифр используем азбуку Морзе, только буквы, о которых я говорил ранее, заменим в ней «точки» нулями, а «тире» единицами:
Полученные при кодировании цифры разобьем по три и заменим их на буквы из алфавита азбуки Морзе: