Разбег в неизвестность - Павел Дмитриев
Шрифт:
Интервал:
Закладка:
Понятно, что более скоростной протокол Bell 212A, использующий несущую на тысяча двести Гц и фазовую модуляцию[256], оказался бессилен простив грубой реальности. Впрочем, тысяча двести бод БЭСМ-4 все равно обрабатывать не могла, это мы знали еще по передаче данных с моего ноутбука. А вот «на шестьсот» теоретически все было нормально. Только с пластинками нужно было обращаться исключительно осторожно. Причем в данном варианте, точно так же, как в предыдущем, модем не предусматривал какой-либо обработки ошибок. Технический примитивизм разнообразило лишь скремблирование[257], примененное для уменьшения помех, наводимых на соседние линии в многопарных кабелях.
Достигнутый результат серьезно отличался от первоначальных прикидок. Резать «гиганты» на нашем станочке не удавалось, максимумом стали семь минут на семидесяти восьми оборотах, и то на самом пределе конструкции. Но около шестидесяти килобайт на пластинку все же влезало, и этот результат был очень неплох. Оставалось лишь увеличить надежность хранения по примеру технологий будущего, где широко распространены алгоритмы, способные шутя восстановить несколько потерянных бит из байта. Этим путем шли, к примеру, разработчики оперативной памяти, ленточных накопителей, жестких и оптических дисков. Причем последние вполне доступны in reality!
Не долго раздумывая, я затер один из архивных CD-RW и в одну сессию нарезал на матрице «эталонный» файл, состоящий из двух десятков повторяющихся единиц, затем нулей, букв «А», «B», «С». После этого затребовал приличный немецкий микроскоп да набросал слесарям НИИ «Интел» простенькое приспособление для фиксации и медленного поворота диска. С помощью этой нехитрой оснастки я собирался быстренько переписать последовательность «питов» и «лендов»[258] на лист бумаги.
Как бы не так! Картина в окуляре прибора была мало похожа на записанный файл. Конечно, я предполагал трудности в виде служебных данных, заголовков, оглавлений. Но такой ужас-ужас-ужас! Во-первых, количество «питов» не поддавалось подсчету! Их были миллионы в прямом смысле этого слова![259] Во-вторых, эти самые «питы» имели неодинаковую протяженность, и различить их на глаз было проблематично. В-третьих, мне не удалось найти служебных меток и признаков форматирования, по которым можно было бы ориентироваться[260].
Облом получился оглушительный. Сперва собирался задвинуть CD в дальний ящик и не доставать его оттуда лет пять. Да что там, я бы именно так и сделал, тем более что глаза от рассматривания «питов» болели так, что пришлось идти к врачу за каплями. Но неожиданно вмешалась Катя, которую я по неосмотрительности привлек к задаче. В порыве комсомольского энтузиазма жена сначала просто взывала к моей совести, а затем перешла на серьезные угрозы типа «тогда я сама во всем разберусь!».
Пришлось думать. Первым делом напряг память и вспомнил, что перед пользовательскими данными должен быть не просто заголовок, а отдельный раздел. Проверка показала, что на экспериментальном CD-RW его можно обнаружить только в микроскоп, а вот на старых аудиодисках он виден невооруженным глазом. Более того, всего областей три, условно я их назвал стартовая (ближе к центру)[261], основная и финишная (вдоль края).
Причем объем первой и последней огромен, по прикидкам – не менее десяти мегабайт. Не знаю, зачем создателям потребовалось столько места, но одной проблемой стало меньше.
Неделю мы с Катей изучали «область данных» при помощи затребованного мощного микроскопа с пристроенным фотоаппаратом. Записывали, стирали, снова записывали разные куски всякими замысловатыми способами. Определенный прогресс был, в пакетном режиме количество появляющихся за сессию данных уменьшалось почти на порядок[262]. Но при этом все равно оставалось невообразимо большим для ручной обработки. Дошло до того, что мне вместо успокаивающей эротики начали сниться черточки, точки и целые поля, заполненные этими проклятыми символами прогресса! И это при том, что последнее время секс у нас в семье был исключительно с диском и микроскопом!
Но терпение супруги подошло к концу, я уже предвкушал заслуженные выходные. И все же удача явно была на стороне Кати, когда она добралась до режима «Format CD». Ранее я уже пробовал этот вариант и отбросил его как непригодный, когда после нескольких минут работы «Nero» практически весь диск покрылся записанными кусками. Моя жена пошла немного дальше – она выяснила, что с обработанным таким образом CD-RW можно обращаться как с обычным жестким диском[263], то есть записывать на него файлы быстро и без всяких сессий. Очевидное на первый взгляд знание – но в «прошлом будущем» мне ни разу не приходилось использовать CD подобным образом.
Дальше шли мое самобичевание собственной тупости, снисходительно-победная улыбка супруги и отупляющие поиски куска, который изменился в результате записи. Нельзя сказать, что найти его было просто, скорее, нам наконец-то повезло… Если, конечно, это можно так назвать, ведь файл в несколько сотен байт при записи каким-то загадочным образом умудрился превратиться во много десятков тысяч «питов»![264]
Отступать было поздно, пришлось вспомнить времена «Аватара». По моему техзаданию на базе микроскопа и кинокамеры собрали специальный «комбайн», обеспечивающий покадровую съемку. Отдельной задачей был плавный механизм поворота диска на несколько десятых миллиметра зараз, если смотреть на край. Так, чтобы в захват объектива влезала каждый раз новая порция из двух-трех десятков «питов». С помощью этой техники за пару недель удалось превратить физические дорожки в слое пластика во вполне разборчивые кадры.
Впрочем, на все терпения не хватило. Справедливо рассудив, что чудес не бывает, я предположил, что нужное для расшифровки хранится в начале или конце найденного куска, поэтому мы ограничились пятьюстами кадрами или десятком тысяч бит с обеих сторон. Результатом работы стала здоровенная катушка пленки, которая поехала к шифровальщикам КГБ вместе с распечаткой эталонного файла и моими смутными догадками о способах и особенностях записи.
Специалисты за какие-то полтора месяца блестяще справились с предложенным квестом. Более того, комитетчики были в восторге от продуманной сложности метода записи данных на неизвестный носитель. Хорошо хоть лишние вопросы не задавали, наверняка считали, что остальные части секретного устройства исследуют их же коллеги.
В общем, корректирующий код оказался новейшим, но уже вполне известным, носил имя Рида – Соломона[265] и имел в основании число двести пятьдесят шесть. Однако в технике код не использовался, и мне быстро объяснили причину. Сам по себе процесс кодирования очень прост. Порцию данных в два килобайта нужно всего-то «пропустить» через полином, порожденный правилами арифметики Галуа. Тут лучше не вдумываться в непонятные термины, а верить специалистам на слово. Плохо другое, алгоритм исправления ошибок как минимум на порядок сложнее, следовательно, на скорости в триста бод с ним не справится даже целая БЭСМ-4.
Стала понятной и наша с Катей неспособность что-то разобрать в записи. Оказывается, каждый байт из потока уже закодированных данных подвергался преобразованию в четырнадцать бит, а между этими словами вставлялись как разделители трехбитные куски, так, чтобы на носителе было не более десяти нулей или единиц подряд. Дополнительно к этому добавлялись синхробайты, контрольная сумма и байт служебной информации непонятного назначения[266].
Уж не знаю, сколько седых волос нажили специалисты-криптографы, разбираясь в этом «взрыве мозга». Все равно применить корректирующее кодирование на практике нельзя, оно невообразимо сложно для тысяча девятьсот шестьдесят шестого года[267]. Причем не только алгоритм Рида – Соломона, а любые известные науке варианты. Их, кстати, хватает – у капиталистов отличился Хемминг, в СССР завкафедрой Ленинградской академии связи товарищ Финк предлагал комитетчикам сверточный код еще в конце пятидесятых… Разумеется, никто не запрещал сначала создавать образ диска на ЭВМ, а уже потом «кидать» его на резец. Но для этого надо подготовить блок данных в ОЗУ или на магнитном барабане и лишь потом переносить его на «виниловую дискету». В теории вполне реально, но практика шестидесятых сразу ставила крест на затее. Не было тут подходящих объемов памяти, и процессорное время стоило совсем не копейки. Потратить несколько часов ЭВМ ради удобства хранения данных? Спецы только пальцем у виска покрутят да вежливо пошлют… В сад, ага.
Пришлось откатиться на позорный примитив. Федор от расстройства задействовал триады, например, вместо «1» – писал «111». Безусловно, надежность резко выросла, зато емкость упала катастрофически. Двадцать килобайт, на мой взгляд, попросту не стоили возни, так как влезали на полсотни метров широко распространенной перфоленты.