ГЛАВА 25

Вратата на лабораторията на Джон Марис беше отворена, но въпреки това Ашър почука.

— Влез — каза криптологът.

Лабораторията на Марис беше най-чистата и подредената в Базата. Не се забелязваше нито прашинка. С изключение на няколкото наръчника, старателно натрупани на купчина в ъгъла, на бюрото нямаше нищо освен клавиатура и компютър с плосък екран. Нямаше снимки, нито плакати или лични спомени. От друга страна, това беше типично за Марис — стеснителен, сдържан, затворен и потаен за личния си живот и мнението си. Изцяло отдаден на работата си. Идеалните качества за криптолог.

Жалко, че сегашният му проект — кратък и очевидно лесен за разбиване шифър, се оказваше толкова труден и сложен.

Ашър затвори вратата, седна на единствения стол за посетители и каза:

— Получих съобщението ти. Успя ли да разбереш нещо от атаките с груба сила?

Марис поклати глава.

— А с филтрите за хаотични байтове?

— Нищо смислено.

— Разбирам. — Ашър прегърби рамене. Когато бе получил имейла от Марис да се отбие при него при първа възможност, той почувства прилив на надежда, че криптологът е разгадал шифъра. В устата на флегматичния Марис обаче думите „при първа възможност“ всъщност бяха крещяща молба за незабавна консултация.

Марис го погледна, после отмести очи.

— Питах се дали не подхождаме към шифъра от погрешен ъгъл.

Ашър се намръщи.

— В смисъл?

— Снощи четох една книга за живота на Алън Тюринг.

Ашър не се изненада. Марис беше опитен, стремящ се към съвършенство учен и работеше върху втора докторска степен по история на компютрите, а Алън Тюринг беше култова фигура в първите компютърни теории.

— Продължавай.

— Ами… Знаеш ли какво представлява машината на Тюринг?

— Опресни паметта ми, ако обичаш.

— През тридесетте години на двадесети век Алън Тюринг конструира теоретичен, абстрактен компютър, известен като машината на Тюринг. Състои се от хартиена лента с произволна дължина, изпъстрена със символи от някаква крайна азбука. Върху нея минава „глава“, която разчита символите въз основа на таблица. Положението на главата се променя в зависимост от символите, които разчита. Лентата записва или информация, или краен списък от инструкции, кратки програми. В съвременните компютри лентата е паметта, а главата микропроцесорът. Тюринг твърди, че теоретичният компютър може да изчисли всичко. Той е първият.

— Продължавай — повтори Ашър.

— Замислих се за шифъра, който се опитваме да разкодираме. — Марис посочи екрана на компютъра, където светлинните пулсации на маркера излъчваха сигнала — той сякаш им се подиграваше с краткотрайността и загадъчността си.


1111100000101010001101011001110010000101


0001001100010100011010011000010000000000

— Запитах се дали това не е лента на Тюринг — продължи Марис. — И какво ще направят нулите и единиците, ако ги пуснем през машината на Тюринг?

Ашър бавно се наведе напред.

— Мислиш, че тези осемдесет бита са компютърна програма?

— Знам, че звучи налудничаво, сър.

— Съвсем не. — „Не по-налудничаво от факта, че сме тук — помисли си Ашър. — На дъното на морето и копаем“. — Продължавай — каза на глас за трети път.

— Добре. Първо трябваше да разбия редицата нули и единици на отделни команди. Предположих, че първите стойности 00000 и 11111 са указания, които обозначават дължината на всяка инструкция и че всяка дигитална „дума“ е дълга пет бита. Така ми останаха четиринадесет петбитови инструкции. — Марис натисна един клавиш и дългата редица цифри изчезна. На нейно място се появиха серии кратки редове:


10101


00011


01011


00111


00100


00101


00010


01100


01010


00110


10011


00001


00000


00000

Ашър се втренчи в екрана.

— Кратка е за компютърна програма.

— Да. Трябва да е много елементарна компютърна програма. И на машинен език — основният, универсален, дигитален език.

Ашър кимна.

— И после?

— Сутринта съставих кратка програма, която да сравни тези стойности с крайния списък инструкции, написани на стандартния машинен език. Програмата даде всевъзможни инструкции на стойностите, една по една, и после провери дали ще се появи компютърна програма, с която може да работи.

— Какво те кара да мислиш, че подателите на посланието използват същия машинен език за инструкции като нашия?

— На бинарно ниво има някои дигитални инструкции, които са общи за всяко въобразимо компютърно устройство — инкремент, декремент, прескочи, пропусни, ако е нула, и булеан логика. Затова оставих програмата да върви и продължих с другата си работа.

Ашър кимна.

— Преди двадесетина минути програмата завърши проверката.

— И четиринадесетте реда преведоха ли се в някоя компютърна програма?

— Да. В една.

— Сериозно?

— Програма за прост математически израз. Ето я. Марис натисна друг клавиш и на монитора се появиха редици инструкции.

Ашър нетърпеливо се наведе напред.

ЛИНИЯ №МНЕМОНИКАЗАБЕЛЕЖКИ
00101ADD/Зареди установена единица /от числото в позиция 13 (десетична дроб)
0001100011
01011CNM/Сложи обратен знак на числото.
00111PLC/Въведи полученото число /в позиция 14.
0011000100
00101ADD/Извади от /числото в позиция 12.
0001000010
01100ISZ/Инкремент и пропусни, ако е нула.
01010JMP/Върни програмния контрол /на стъпка 6.
0011000110
10011КРАЙ/Затвори програмата.
00001/Позиция 12
00000/Позиция 13
00000/Позиция 14

— Какво прави програмата? — попита Ашър.

— Ще забележите, че е написана като серия от повтарящи се изваждания, закодирани в кръг. Така се извършва делението на машинен език — чрез повтарящо се изваждане. Е, поне единият от начините. Може също да използваш десния SHIFT за аритметически действия, но това изисква по-специализирана компютърна система.

— Тогава е деление.

Марис кимна.

Ашър почувства изненада и озадаченост, примесени с внезапно силно вълнение.

— Не се колебай. Кое число се дели?

— Едно.

— Едно. И на какво се дели едно?

Марис облиза устни.

— Ами, проблемът е там, че…

Загрузка...