Книга Тень Гегемона - Орсон Скотт Кард
Шрифт:
Интервал:
Закладка:
- Мне это и кажется случайным шумом.
- Если тебя держат в плену, но дают доступ к компьютеру, зато каждый бит почты смотрят под микроскопом, как ты передашь весть на волю?
- Но ведь ты не думаешь, что это…
- Пока не знаю. Но раз уж я об этом подумал, то имеет смысл покопаться?
Боб уже передал дракончика в графическую программу и изучал линию сдвинутых точек.
- Да, вся эта линия - случайный набор. Он здесь не к месту, и это не просто шум, потому что остальные части картинки абсолютно неповреждены - вот только эта линия чуть изломана. А шумы распределились бы по картинке случайно.
- Так посмотри, что это, - сказала Карлотта. - Гений у нас ты, а я всего лишь монахиня.
Вскоре Боб выделил линию в отдельный файл и стал изучать информацию в виде двоичного кода. При попытках рассмотреть этот код как текст в однобайтовой или двухбайтовой кодировке смысла не получалось, но его и не могло быть - иначе письмо никогда бы не попало в сеть. Значит, если это действительно письмо, оно должно быть как-то зашифровано.
Несколько часов Боб писал и пробовал различные программы расшифровки. Он пробовал математические структуры и графические интерпретации, но понимал, что на самом деле здесь не может быть подобных сложностей, потому что автор письма не мог пользоваться компьютером. Это должно быть что-то относительно простое, что будет видно при поверхностном исследовании.
И потому Боб вернулся к попытке интерпретировать двоичный код как текст. Скоро он нашел схему, которая выглядела перспективной. Двухбайтный текстовый код, но сдвинутый на одну позицию вправо, кроме случаев, когда сдвиг вправо давал осмысленные символы - в этом случае сдвиг был двойной. При этом настоящий символ не мог появиться ни в одной программе просмотра файла.
Одна строка, обработанная подобным методом, состояла только из текстовых символов, которые вряд ли могли бы появиться случайно. Но вторая строка содержала мусор, с виду совершенно бессмысленный.
Тогда Боб сдвинул ее влево, и она тоже оказалась заполненной текстовыми символами.
- Врубился, - объявил Боб. - И это в самом деле письмо.
- И что в нем сказано?
- Понятия не имею.
Карлотта заглянула ему через плечо:
- Это даже не язык. Символы не разбиты на слова.
- Это нарочно, - объяснил Боб. - Если разделить на слова, это бы выглядело как осмысленное сообщение и вызывало бы желание расшифровать. Самый простой способ для любителя расшифровать язык - проверить длину слов и частоту появления определенных групп символов. В общем языке надо было бы искать буквы "а", слова " the " и " and " - такого рода вещи.
- А ты даже не знаешь, на каком это языке написано.
- Нет, но скорее всего на общем - его посылают человеку, у которого заведомо нет ключа. Значит, сообщение должно поддаваться расшифровке, а это подразумевает общий язык.
- Тогда шифр должен быть и трудным и легким одновременно?
- Да. Легким для меня, трудным для других.
- Ладно, перестань. С чего ты взял, что оно адресовано тебе?
- Эндер. Дракон. Я был в армии Дракона, как почти все они. Они знают, что там собраны все они, кроме меня. А я - единственный человек, с которым, как им ясно, они могут связаться, не зацепив никого лишнего.
- У вас что, был какой-то свой шифр?
- На самом деле нет, но у нас есть общий опыт - сленг Боевой школы, какие-то рассказы - в общем, скоро будет ясно. Я его должен расколоть, потому что узнаю слово, которое никто другой не мог бы узнать.
- Это если письмо от них.
- От них, - отмахнулся Боб. - Они понимают, что я сделал бы. Нашел бы это слово. Подпись разошлась повсюду, и код сейчас в миллионах компьютеров, но никто не знает, что это код, потому что люди видят смысл и не ищут более глубокого. Это не письмо, а фишка - для всех, кроме меня.
- Ты убедил меня - почти.
- Я его расколю раньше, чем спать лягу.
- Ты еще слишком мал, чтобы пить столько кофе. Аневризму себе заработаешь.
И сестра Карлотта вернулась к своей почте.
Поскольку буквы не делились на слова, Бобу пришлось искать какую-то другую систему, чтобы выделить смысл. Не было сочетаний двух или трех букв, которые не вели бы в явный тупик, но это Боба не удивило. Если бы он составлял такое сообщение, он бы опустил все артикли, союзы, предлоги и местоимения, которые только мог бы. И не только в этом дело, но и почти все слова наверняка были нарочно написаны с ошибками, чтобы не было повторений. Но некоторые слова будут написаны верно, и это те, которые незнакомы людям, чьи корни не лежат в субкультуре Боевой школы.
Было всего два места, где повторялся один и тот же символ - по одному в каждой строке. Вполне возможно, что здесь следующее слово начиналось с той буквы, на которой заканчивалось предыдущее, но Боб в этом сомневался. В таком сообщении ничего не было бы случайным. И Боб написал программку, которая подставила различные буквы в повторяющиеся сочетания, начиная с "аа", и стал выбирать из них те, что казались ему осмысленными. Начал он с пары одинаковых букв во второй строке, потому что они тоже были окружены одинаковыми буквами - по системе 1221.
Легко было отбросить полную бессмыслицу, вроде " xddx ", или " pffp ", но пришлось покопаться в вариантах " abba ", " adda ", " deed " и " effe " и посмотреть, что происходит с письмом при такой подстановке. Некоторые варианты казались осмысленными, и Боб оставил их для дальнейшего изучения.
- А почему оно теперь по-гречески? - спросила Карлотта. Она снова заглядывала ему через плечо. Боб не слышал, как она подошла.
- Я все исходное сообщение перевел в греческие буквы, чтобы не отвлекаться на поиски смысла в еще не раскодированных буквах. А те, с которыми я работаю, - латинские.
Программа показала сочетание " iggi ".
- Piggies, - предположила Карлотта.
- Может быть, но для меня это ничего не значит. - Боб полазил по словарю в поисках этого сочетания букв, но все было так же бессмысленно, как и " piggies ".
- А это должно быть слово? - спросила Карлотта.
- Ну, если это число, то здесь тупик, - ответил Боб.
- Нет, в том смысле, может ли это быть имя? Боб сообразил тут же:
- Какой же я дурак!
Он вставил буквы w и n в начале перед и после iggi и сделал эту подстановку во всем тексте, велев программе показать дефисы вместо нераскодированных букв. Строки стали такими:
- n--g-n-n-n-i-n-g
- n-n-wiggin-
- Не похоже это на общий, - сказала Карлотта. - Букв i должно быть больше.
- Я полагаю, что было опущено как можно больше букв, особенно гласных, чтобы трудно было узнать общий язык.