- Ну да, драконы всегда приносят счастливый конец. Но что именно это значит? Что ты умрешь счастливым или будешь счастливым до конца?
Карлотта засмеялась.
Боб, которому надоело разбирать почту, продолжал разрабатывать тему:
- Драконы не всегда приносят счастье. В Боевой школе армию Драконов даже расформировали, так ей не везло. Ее возобновили потом для Эндера, и, несомненно, дали ему лишь потому, что считалось, будто она приносит несчастье, а начальство пыталось создать Эндеру максимум трудностей…
Тут Боба поразила мысль, и хоть она мелькнула лишь на миг, он встрепенулся.
- Переправь-ка мне эту картинку.
- Да у тебя же она у самого есть в десятках писем.
- Искать не хочу. Перешли мне ее, пожалуйста.
- Ты еще под именем Летти? Это ведь ты его уже две недели не менял?
- Пять дней.
Через несколько минут картинка попала к Бобу, и он сразу же стал пристально в нее вглядываться,
- Чего ради уделять внимание этой ерунде?
Боб поднял глаза и увидел, что Карлотта на него смотрит.
- Не знаю. А чего ради уделять внимание тому, что я уделяю внимание этой ерунде? - ухмыльнулся Боб.
- Потому что ты считаешь ее важной. Ты умнее меня почти во всем, но там, где дело касается тебя, я разбираюсь гораздо лучше. И знаю, когда тебя что-то по-настоящему интересует.
- Да вот - соседство дракона и слова " end ". Конец обычно не считается счастливым. Почему не написали "ждет счастье" или "счастливая судьба"? Зачем именно "счастливый конец"?
- А что?
- Конец. End. Эндер. И армия Эндера называлась "Драконы".
- Ну, это за уши притянуто.
- Погляди на картинку. Вот тут, в середине, где такой сложный растровый узор, - одна линия размыта. Точки разбросаны практически случайным образом.
- Мне это и кажется случайным шумом.
- Если тебя держат в плену, но дают доступ к компьютеру, зато каждый бит почты смотрят под микроскопом, как ты передашь весть на волю?
- Но ведь ты не думаешь, что это…
- Пока не знаю. Но раз уж я об этом подумал, то имеет смысл покопаться?
Боб уже передал дракончика в графическую программу и изучал линию сдвинутых точек.
- Да, вся эта линия - случайный набор. Он здесь не к месту, и это не просто шум, потому что остальные части картинки абсолютно неповреждены - вот только эта линия чуть изломана. А шумы распределились бы по картинке случайно.
- Так посмотри, что это, - сказала Карлотта. - Гений у нас ты, а я всего лишь монахиня.
Вскоре Боб выделил линию в отдельный файл и стал изучать информацию в виде двоичного кода. При попытках рассмотреть этот код как текст в однобайтовой или двухбайтовой кодировке смысла не получалось, но его и не могло быть - иначе письмо никогда бы не попало в сеть. Значит, если это действительно письмо, оно должно быть как-то зашифровано.
Несколько часов Боб писал и пробовал различные программы расшифровки. Он пробовал математические структуры и графические интерпретации, но понимал, что на самом деле здесь не может быть подобных сложностей, потому что автор письма не мог пользоваться компьютером. Это должно быть что-то относительно простое, что будет видно при поверхностном исследовании.
И потому Боб вернулся к попытке интерпретировать двоичный код как текст. Скоро он нашел схему, которая выглядела перспективной. Двухбайтный текстовый код, но сдвинутый на одну позицию вправо, кроме случаев, когда сдвиг вправо давал осмысленные символы - в этом случае сдвиг был двойной. При этом настоящий символ не мог появиться ни в одной программе просмотра файла.
Одна строка, обработанная подобным методом, состояла только из текстовых символов, которые вряд ли могли бы появиться случайно. Но вторая строка содержала мусор, с виду совершенно бессмысленный.
Тогда Боб сдвинул ее влево, и она тоже оказалась заполненной текстовыми символами.
- Врубился, - объявил Боб. - И это в самом деле письмо.
- И что в нем сказано?
- Понятия не имею.
Карлотта заглянула ему через плечо:
- Это даже не язык. Символы не разбиты на слова.
- Это нарочно, - объяснил Боб. - Если разделить на слова, это бы выглядело как осмысленное сообщение и вызывало бы желание расшифровать. Самый простой способ для любителя расшифровать язык - проверить длину слов и частоту появления определенных групп символов. В общем языке надо было бы искать буквы "а", слова " the " и " and " - такого рода вещи.
- А ты даже не знаешь, на каком это языке написано.
- Нет, но скорее всего на общем - его посылают человеку, у которого заведомо нет ключа. Значит, сообщение должно поддаваться расшифровке, а это подразумевает общий язык.
- Тогда шифр должен быть и трудным и легким одновременно?
- Да. Легким для меня, трудным для других.
- Ладно, перестань. С чего ты взял, что оно адресовано тебе?
- Эндер. Дракон. Я был в армии Дракона, как почти все они. Они знают, что там собраны все они, кроме меня. А я - единственный человек, с которым, как им ясно, они могут связаться, не зацепив никого лишнего.
- У вас что, был какой-то свой шифр?
- На самом деле нет, но у нас есть общий опыт - сленг Боевой школы, какие-то рассказы - в общем, скоро будет ясно. Я его должен расколоть, потому что узнаю слово, которое никто другой не мог бы узнать.
- Это если письмо от них.
- От них, - отмахнулся Боб. - Они понимают, что я сделал бы. Нашел бы это слово. Подпись разошлась повсюду, и код сейчас в миллионах компьютеров, но никто не знает, что это код, потому что люди видят смысл и не ищут более глубокого. Это не письмо, а фишка - для всех, кроме меня.
- Ты убедил меня - почти.
- Я его расколю раньше, чем спать лягу.
- Ты еще слишком мал, чтобы пить столько кофе. Аневризму себе заработаешь.
И сестра Карлотта вернулась к своей почте.
Поскольку буквы не делились на слова, Бобу пришлось искать какую-то другую систему, чтобы выделить смысл. Не было сочетаний двух или трех букв, которые не вели бы в явный тупик, но это Боба не удивило. Если бы он составлял такое сообщение, он бы опустил все артикли, союзы, предлоги и местоимения, которые только мог бы. И не только в этом дело, но и почти все слова наверняка были нарочно написаны с ошибками, чтобы не было повторений. Но некоторые слова будут написаны верно, и это те, которые незнакомы людям, чьи корни не лежат в субкультуре Боевой школы.
Было всего два места, где повторялся один и тот же символ - по одному в каждой строке. Вполне возможно, что здесь следующее слово начиналось с той буквы, на которой заканчивалось предыдущее, но Боб в этом сомневался. В таком сообщении ничего не было бы случайным. И Боб написал программку, которая подставила различные буквы в повторяющиеся сочетания, начиная с "аа", и стал выбирать из них те, что казались ему осмысленными. Начал он с пары одинаковых букв во второй строке, потому что они тоже были окружены одинаковыми буквами - по системе 1221.