Сегодня я собирался писать о другом, но наткнулся на рассекреченную сводку NSA (проект Gunman) и завис на цифрах: с 1976 по 1984 год — восемь лет — в посольстве США в Москве и консульстве в Ленинграде печатали секретные депеши на машинках IBM Selectric, внутри которых жили радиожучки. Шестнадцать машинок. Десять тонн оборудования вывезли и разобрали винтиками, чтобы их найти. И самое любопытное — жучок не «слышал» нажатия клавиш. Он читал позицию вращающегося пластикового мячика.
То есть, возможно, первый в истории кейлоггер — так его до сих пор и называют в NSA — работал не с «компьютером» — его не было. Он работал с чистой механикой. Это идеальный детектив: чтобы понять, как СССР это сделал, придётся сначала понять, почему сама машинка IBM была наполовину вычислительной машиной.
К 1961 году, когда IBM представила Selectric, конструкция пишущей машинки не менялась по сути 88 лет — с 1873-го: корзина рычагов (typebars), каретка, ползущая влево. Рычаги конфликтуют друг с другом: нажал быстро две соседние — они сплетаются («jamming»), бумага сбивается. Selectric выбросил всё: вместо рычагов — сменный шарик диаметром 1⅜ дюйма с 88 символами по четырём рядам, вместо каретки — неподвижная ось, по которой ездит сам мяч, а бумага крутится на валу.
Продажи первого года — 80 000 штук против прогноза в 20 000. К 1978-му у IBM 94% рынка электрических машинок США. Более 13 миллионов проданных машин. Самая успешная пишущая машинка в истории — но пускай маркетинг отдыхает, нам интересна начинка.
Вот где начинается любовь инженера. Мяч должен повернуться к бумаге так, чтобы к ней прижался один из 88 символов. Всякие «умные» решения отклоняем — внутри машинки нет ни одного процессора, там даже транзистора нет: только мотор, выключатель и шлейф рычагов. Тем не менее при нажатии клавиши шарик за 65 миллисекунд точно встаёт в нужную позицию из 88.
Как? Каждая клавиша несла интерпозер — пластинку с уникальной комбинацией выступов. Выступы кодировали двоичное число: 2 бита на наклон (tilt) мяча и 3 бита на вращение (rotate). А переводила двоичный код в угол... система рычагов, которую IBM называла Rotate and Tilt Differentials, — это whiffletree, та самая дубовая перекладина, на которой подвешивают пару лошадей. Инженеры называют её механическим ЦАП: суммируешь «веса» рычагов — получаешь угол. Эта же связь работала в механических вычислителях для сложения и в подвесных мобилях Александра Кольдера.
Даже заглавные буквы — это просто «повернуть мяч ровно на 180°».
А теперь мясной факт для гурманов: элементы из литого пластика шлифовали скорлупой грецкого ореха, потому что песок царапал бы глубже. Отсюда офисное прозвище «flying walnut machine», «летающий грецкий орех».
Сменность мяча дала неожиданные культурные последствия. Машинка стала культовой у математиков: согласись, в 1967-м ты не можешь напечатать в статье ⍴ — а тут покупаешь мячик со спецсимволами APL и печатаешь ⍴, ⍳, ∊ на терминале IBM 2741, подключенном к System/360. Кен Айверсон строил APL\360 вокруг мячика. Но вишенка: финальный отчёт по стандарту языка ALGOL 68 (август 1968) целиком подготовили на APL-шарике, потому что другого способа набрать ∧, ∨, ¬, ≤, ≥ или ⌷ просто не существовало. Язык программирования чуть было не спроектировали... под пластмассовый мяч.
Параллельно выяснилась и странность похуже: шарики были физически взаимозаменяемы, но «кодово» — нет. Терминалы шли в двух кодировках (correspondence и PTTC/EBCD), и мяч от IBM 1050 печатал на 2741 абракадабру. Половина секретов кодирования пряталась в расположении символов на сфере. (Звучит как ерунда, пока не вспомнишь, что раскладка клавиш «1/!», _-, кавычки-пары Selectric потом срисовали проектировщики DEC VT52 и IBM PC, а buckling-spring-клавиши машинки дожили до легендарной клавиатуры Model M.)
В 1964-м IBM добавила к машинке магнитофон: MT/ST записывал текст на полдюймовую ленту (~25 КБ на кассету!) и умел mail merge из двух лент. TIME написал взволнованную заметку «Typewriter with a Memory»: серия готовых писем «без помощи человеческих рук», аренда $233/мес. Это первый прибор, который маркетировали словом word processor. На нём Лен Дейтон набрал «Bomber» (1970) — первый роман, написанный на текстовой машине. А рекламный ролик MT/ST в 1967-м снял Джим Хенсон — да, создатель Маппетов, с музыкой Раймонда Скотта. Кадр: череда письменных столов, воплощающих административный ад, и мяч, который его спасает. Ролик стоит посмотреть.
Теперь развязка с жучками. Шпионам не надо было подключаться к проводам — их не было. Вместо этого в металлической штанге внутри машинки (видна только на рентгене) сидел магнитометр и ловил... движения тех самых рычагов-«bails», которые задают наклон и вращение мяча. У каждого символа — уникальная двоичная хореография. Магнитные возмущения → цифровой сигнал → 4-битное слово. Буфер на 8 слов → радио-передача на частоте локального московского ТВ (чтобы не палиться в эфире).
Слепые зоны implants честные: пробел, таб, backspace, shift и дефис — мяч не двигался, жучок слеп. NSA потом по теории вероятностей восстанавливало, как именно советская сторона декодировала трафик. Пять поколений жучков, установка за полчаса, 1-bit core memory в схеме — «достижение, которых не видели инженеры NSA». И вся эта красота прожила восемь лет, пока союзник США, поймавший такое же устройство у себя, не сделал наводку.
Мораль не «советы злые». Мораль в том, что самый безопасный канал ломается не там, где тоньше шифр, а там, где физика. Машинка сама, честно и старательно, вещала в эфир всё, что печатала, — надо было лишь знать частоту. Увы, это правило в 2026 никого не должно удивлять: уязвимость осталась той же, поменялся только материал носителя.
Ничто так не выдаёт машину, как мяч, крутящийся не в ту сторону.
Что я тут проверил и сформулировал для себя:
Кстати, прогноз на будущее. Мяч Selectric — прямой предок daisy wheel принтеров 1970-х. И когда ты в следующий раз будешь настраивать 3D-принтер или плоттер, помни, что x/y-гантри работают по тем же правилам электромеханики, что и офисная машинка, которую СССР взломал магнитометром полвека назад.