IBM Harvest: рассекреченный суперкомпьютер АНБ для взлома шифров холодной войны

IBM Harvest: рассекреченный суперкомпьютер АНБ для взлома шифров холодной войны

Harvest, официально, IBM 7950, был главным криптографическим процессором Агентства национальной безопасности США: он работал с 1962 года, в разгар Карибского кризиса, через всю войну во Вьетнаме и вплоть до Хельсинкских соглашений 1975 года, то есть 14 лет обрабатывал самые чувствительные перехваты агентства. Машину остановили только тогда, когда окончательно износились её движущиеся части. О существовании компьютера не знали даже за пределами узкого круга АНБ.

IBM заключила контракт на постройку Harvest в 1958 году, после двух неудачных предложений агентству. В основу легла её же новая разработка, IBM 7030, известная как Stretch: один из первых больших компьютеров на полностью транзисторной элементной базе (1960), который IBM поставила восьми-девяти заказчикам, в основном научным лабораториям, в 1961, 1963 годах. Первые три года Stretch был самым быстрым компьютером в несекретном мире, хотя и не дотянул до собственной амбициозной цели IBM, работать в 100 раз быстрее предшественника, IBM 704. К тому времени существующие криптоаналитические машины АНБ были пакетными: операторы вручную ставили каждую бобину плёнки, и техника не успевала за объёмом перехваченного трафика. Агентству требовалась машина, способная непрерывно и круглосуточно обрабатывать нескончаемый поток входящих данных, это требование и определило архитектуру Harvest.

IBM надстроила над Stretch специализированный сопроцессор потоковой обработки, собственно Harvest. Stretch занимался обычными вычислениями и вводом-выводом, включая автоматизированную ленточную библиотеку Tractor (IBM 7955); оба узла делили общую память, большой основной банк и меньший, но более быстрый. В потоковом режиме Harvest забирал из памяти два потока данных, P и Q, шириной от 1 до 8 бит, обрабатывал их параллельно и записывал результат третьим потоком, R. Память была адресуема побитово: границы байта можно было полностью игнорировать и, например, выбрать ровно 5 бит вместо целого байта. Данные из P и Q шли в два блока, простой логический блок с побитовыми операциями и более сложный блок табличного поиска, который по значениям P и Q формировал адрес в памяти и мог продвинуть счётчик, установить конкретный бит или достать сохранённое значение; по сути он работал как роторное колесо шифровальной машины той эпохи. Обработка была конвейерной: пока одна пара байт сравнивалась, следующая пара уже выбиралась из памяти. Как единая система, Stretch плюс сопроцессор, Harvest прокачивал по байту каждые 0,3 микросекунды и располагал примерно 800 килобайтами адресуемой памяти; по заявлению источника, задачи он выполнял до 200 раз быстрее любого другого компьютера своего времени.

Harvest стал одной из первых машин, применявших операции к огромным потокам данных «на лету», предвестник сегодняшних систем, обрабатывающих непрерывное видео и охранные потоки в реальном времени. И одной из первых машин, построенных как надстройка-«помощник» поверх компьютера общего назначения: узкоспециализированный блок, пристыкованный к обычной машине ради одной задачи, по мысли автора статьи, прообраз того, как современные видеочипы сегодня подключают к процессорам для игровых и ИИ-нагрузок. Для описания криптографических задач IBM написала собственный язык программирования Alpha, по аналогии с тем, как учёные тогда описывали уравнения на Fortran. Одной из его создательниц была Фрэнсис Аллен, работавшая и над Stretch, и над Harvest; позже она получила премию Тьюринга (2006 год) и умерла в 2020-м. К системе также прилагалась Tractor (IBM 7955), первая в мире автоматизированная ленточная библиотека, способная роботизированно достать любую из сотен крупных кассет с магнитной лентой. Каждая кассета весила 6, 7 килограммов, примерно как шар для боулинга, хранила около 120 мегабайт на 550-метровой ленте, а один блок хранения вмещал до 160 таких кассет.

Главным инженером Harvest был Джеймс Помрен, до этого участвовавший в создании компьютера IAS вместе с Джоном фон Нейманом. Ключевым соархитектором аппаратной части был Фредерик Брукс-младший, позже лауреат премии Тьюринга (1999 год) и один из главных создателей аппаратной и программной части IBM System/360.

Сложность машины ставила в тупик даже часть сотрудников самого агентства: по свидетельству Джеймса Бэмфорда в его книге 2001 года «Body of Secrets» («Тело секретов»), во время экскурсий для персонала руководители, указывая на Harvest, бросали: «Красиво, но не работает». При этом задокументированы как минимум два конкретных задания. По рассказу Бэмфорда, один раз Harvest просканировал 3,5 миллиарда символов текста на предмет любого из 7000 искомых терминов меньше чем за четыре часа. А по рассекреченным репликам аналитика АНБ Роберта Луни в 1972 году, на десятилетие работы Harvest, задание под кодовым именем «Моретаун» состояло в том, чтобы просеять 11 миллионов сообщений, 16 лет перехваченного трафика, по списку примерно из 8000 поисковых терминов; на это ушло около десяти часов.

Ключевые факты

  • Harvest (IBM 7950), главный криптографический процессор АНБ с 1962 года (Карибский кризис) до 1975-го и позже (Хельсинкские соглашения), то есть 14 лет непрерывной работы с самыми чувствительными перехватами.
  • Построен как сопроцессор-надстройка над мейнфреймом IBM 7030 Stretch по контракту 1958 года (после двух неудачных предложений); задачи выполнял до 200 раз быстрее любого другого компьютера своего времени.
  • К системе прилагались первая в мире автоматизированная ленточная библиотека Tractor (IBM 7955) и собственный язык программирования Alpha для описания криптографических задач.
  • Задокументированные задания: поиск по 3,5 млрд символов и 7000 терминам за 4 часа, и операция «Моретаун», 11 млн сообщений за 16 лет трафика по 8000 терминам за 10 часов.
  • Над проектом работали будущие лауреаты премии Тьюринга Фрэнсис Аллен и Фредерик Брукс-младший, а также Джеймс Помрен, ранее участник создания компьютера IAS вместе с Джоном фон Нейманом.

Почему это важно

История Harvest показывает, что архитектурные идеи, которые сегодня кажутся современными, выделенный сопроцессор-ускоритель поверх процессора общего назначения, конвейерная потоковая обработка данных «на лету», побитовая адресация памяти, придумали и реализовали ещё в начале 1960-х, просто под грифом секретности на десятилетия вперёд. Материал IEEE Spectrum, редкий случай, когда архитектуру засекреченной военной машины холодной войны можно восстановить по рассекреченным документам и устным историям, а не по домыслам.

Кому это важно

Тем, кто интересуется историей вычислительной техники и криптографии; инженерам, изучающим предков современных ускорителей вроде GPU и TPU и конвейерных процессоров; историкам спецслужб, которым важна технологическая сторона холодной войны.

Как это применить

В буквальном смысле применять нечего, Harvest давно демонтирован. Но принцип узкоспециализированного сопроцессора, разгружающего компьютер общего назначения ради одной задачи, прямо прослеживается в сегодняшних архитектурах: GPU для видео и ИИ-нагрузок, TPU для матричных вычислений, сетевые и криптографические ускорители в дата-центрах повторяют структуру связки Stretch и Harvest полвека спустя.

Можно ли доверять

Материал IEEE Spectrum, отраслевого издания с давней репутацией, опирается на рассекреченные документы, технические руководства и обзоры эпохи, а также на опубликованные устные истории и книгу Джеймса Бэмфорда «Body of Secrets» (2001), одно из немногих открытых исследований по истории АНБ. Часть эпизодов, включая поиск по 3,5 млрд символов, идёт со ссылкой именно на Бэмфорда, а не на первичный документ АНБ, это пересказ пересказа, и стоит иметь это в виду. Заметно и внутреннее противоречие самого источника: подзаголовок статьи утверждает «в 200 раз быстрее любого компьютера на Земле», а текст статьи, осторожнее: «до 200 раз быстрее любого компьютера своего времени»; само издание это расхождение нигде не снимает.

Риски и подводные камни

Точная дата вывода Harvest из эксплуатации в источнике не названа, только общее «пока не износились движущиеся части» и указание, что машина проработала дольше 1975 года. Не приведены ни общая численность команды проекта, ни стоимость разработки. Скачанная для этого пересказа копия статьи обрывается на полуслове в последнем абзаце, про систему хранения данных Tractor: это обрезка при сохранении копии, а не незавершённость самой статьи IEEE Spectrum, так что заключительная часть истории в этом пересказе не отражена.

«Это была поистине потрясающая машина. Одна-единственная инструкция могла делать сортировки и статистический анализ проходящих через неё данных… Всё, что мы тогда делали, было на переднем крае. В этом не было никаких сомнений.»

— Фрэнсис Аллен, разработчица Stretch и Harvest, в устной истории 2001 года