Из глубины
Шрифт:
— Тогда какие новости?
Мэррис посмотрел на него и снова отвел взгляд.
— Я подумал — может, мы подходим к расшифровке не с той стороны?
Ашер нахмурился.
— Объясните.
— Хорошо. Вчера вечером я читал биографию Алана Туринга.
Ашера это нисколько не удивило. Мэррис, действительный член академии, сейчас работал над второй докторской диссертацией — по истории компьютеров, а Алан Туринг был выдающейся фигурой раннего периода развития электронных машин.
— Продолжайте.
— Ну… вы знаете, что такое машина Туринга?
— Лучше будет, если вы
— В тридцатых годах Алан Туринг создал теоретический компьютер, известный под названием «машина Туринга». Он состоял из ленты — полоски бумаги произвольной длины. На ней были написаны символы некоего алфавита — конечное число. По ленте бежала головка, считывая символы и интерпретируя их в соответствии с таблицей преобразования. Состояние головки менялось в зависимости от сведений, которые она принимала. Сама полоска могла хранить либо данные, либо «переходы» — так он называл небольшие программы. В нынешних компьютерах вместо ленты может быть память, а вместо головки — микропроцессор. Туринг заявлял, что его теоретический компьютер может произвести любой расчет. Он был первым, кто пришел к этому.
— Продолжайте.
— Я стал думать об этом коде, который мы пытаемся взломать.
Мэррис махнул рукой в сторону компьютерного экрана, где был представлен испускаемый артефактом сигнал, чуть ли не нахальный в своей краткости и неразрешимости:
0000011111001010001101011001110010000101
0001001100010100011010011000010000000000
— Я предположил: а вдруг это и есть лента Туринга? — продолжал Мэррис. — Во что бы превратились единицы и нули, если бы мы пропустили их через машину Туринга?
Ашер подался вперед.
— Вы допускаете, что эти восемьдесят бит — компьютерная программа?
— Я знаю, сэр, что звучит это дико…
— Нисколько.
«Ничуть не более дико, чем сам факт нашего присутствия здесь, — подумал Ашер. — Сидим на дне моря, копаем…»
— Продолжайте, пожалуйста, — произнес он вслух.
— Да, конечно. Сначала я должен был разбить эту последовательность единиц и нулей на отдельные команды. Я сделал допущение, что исходные значения, 00000 и 11111, — заполнители, отмечающие длину каждой команды. Значит, получается, что каждое цифровое «слово» имеет длину в пять бит. Таким образом, у меня получилось четырнадцать пятибитовых команд.
Мэррис нажал на клавишу, и длинная строка цифр исчезла, сменившись вертикальным столбцом:
10101
00011
01011
00111
00100
00101
00010
01100
01010
00110
10011
00001
00000
00000
Ашер внимательно смотрел на экран.
— Слишком коротко для компьютерной программы.
— Да. Ясно, что она должна быть очень простой. И на машинном языке — самом основном, универсальном из цифровых языков.
Ашер кивнул.
— И?
— Когда я сегодня утром пришел к себе, я составил небольшую методику, которая сравнила эти значения с перечнем базовых команд машинного языка. Методика соотнесла все возможные команды со значениями, одну за другой, и проверила, не получилось ли связной последовательности.
— А почему вы решили, что они… кто бы они ни были — те, кто оставил это сообщение, используют машинный язык того же типа, что и мы?
— На бинарном уровне, сэр, существуют определенные цифровые команды, которые являются общими для любого мыслимого счетного устройства — увеличение, уменьшение, переход, пропуск, если нуль — булева логика. И вот я запустил программу и занялся другими делами.
Ашер кивнул.
— Минут двадцать тому назад работа закончилась.
— И что, эти четырнадцать линий бинарного кода удалось перевести в какие-нибудь программы?
— Да. В одну.
— Неужели? — заволновался Ашер.
— Это алгоритм для простого математического действия. Вот, смотрите.
Мэррис нажал еще одну клавишу, и на мониторе появилась цепочка команд.
Ашер вгляделся:
— А что делает программа? — спросил Ашер.
— Вы можете заметить, что она написана как последовательность повторяющихся вычитаний, замкнутых в цикл. Таким же образом производится деление на машинном языке — повторяющимся вычитанием. Ну, это один способ. Еще вы можете делать арифметический сдвиг вправо, но для этого потребуется более специализированная компьютерная система.
— Значит, это задача на деление.
Мэррис кивнул.
Ашер ощутил, что удивление и интерес смешиваются с внезапным радостным возбуждением.
— Не тяните. Какое число они делят?
— Единицу.
— Единицу. И на что ее делят?
— Видите ли, сэр, в этом-то и проблема…
26
Дверь в ряду полудюжины подобных в пустом, безликом коридоре в северо-восточном квадранте третьего уровня. Надпись на ней совсем простая: «Радиология — Пик».
Коммандер Королис кивком велел одному из сопровождавших его морских пехотинцев открыть дверь и вошел внутрь. Заглянув через плечо коммандера, Питер Крейн увидел маленькую, но явно очень хорошо оборудованную лабораторию. Даже слишком: большая часть пространства была забита громоздкими приборами. У входа перед компьютером сидела женщина азиатской внешности в белом халате и быстро набирала что-то на клавиатуре. Она подняла взгляд при появлении гостей, потом встала, поклонилась и улыбнулась.
Королис ей не ответил. Он повернулся, неодобрительно посмотрел на Крейна одним глазом; другой глаз смотрел в какую-то точку за плечом доктора.
— Это должно вам помочь, — сказал Королис.
Он еще раз оглядел помещение, словно проверяя, может ли врач отсюда что-нибудь унести, и вышел в коридор.
— Снаружи поставьте охрану, — приказал он морякам и ушел.
Крейн какое-то время смотрел вслед уходящему коммандеру. Потом кивнул военным и вошел в кабинет, закрыв за собой дверь. Послышался негромкий скрип резины — уплотнительная прокладка дверного проема вставала на место. Крейн подошел к женщине, которая по-прежнему стояла у стола и улыбалась.