Tecnologia

A IBM construiu o descodificador mais poderoso da Guerra Fria para a NSA

A IBM construiu o descodificador mais poderoso da Guerra Fria para a NSA


No auge da Guerra Fria, um computador altamente especializado era tão secreto que o mundo nem sabia que existia. Executava as suas tarefas até 200 vezes mais depressa do que qualquer outro computador da época. Era o principal processador criptográfico da Agência de Segurança Nacional dos EUA (NSA), em funcionamento desde a Crise dos Mísseis de Cuba, em 1962, passando pela Guerra do Vietname e até para além dos Acordos de Helsínquia de 1975. A máquina só deixou de funcionar quando as suas peças móveis acabaram por ceder.

O computador Harvest foi importante tanto pelo que era como pelo período em que esteve em funcionamento. Durante 14 anos, foi o motor que processou as interceções mais sensíveis da NSA, numa época em que a inteligência de sinais era tão próxima de uma arma estratégica quanto qualquer coisa, com exceção de uma ogiva.

Concebido e construído pela IBM para a NSA, o Harvest foi uma das primeiras máquinas concebidas para aplicar operações a enormes conjuntos de dados que passavam a grande velocidade, um precursor dos computadores atuais que gerem fluxos contínuos de vídeo e sistemas de segurança em tempo real. Foi também uma das primeiras máquinas construídas como um complemento — um auxiliar especializado destinado a realizar uma tarefa de forma excecionalmente eficaz, acoplado a um computador de uso geral. O design modular do Harvest é semelhante a uma versão dos anos 60 dos atuais chips gráficos que as CPUs utilizam para executar cargas intensivas de processamento de videojogos e IA.

Todo esse poder de processamento bruto significava que o Harvest também precisava de fluxos ininterruptos de dados para funcionar. E isso levou a outra conquista pioneira: a primeira biblioteca de fitas automatizada do mundo, capaz de retirar roboticamente qualquer uma das centenas de grandes cassetes de fita magnética dos racks da máquina.

Dada a capacidade de processamento e armazenamento sem precedentes do Harvest, os projetistas da máquina precisaram, naturalmente, de repensar a forma como o seu sistema lidava com a informação. Assim, a IBM criou uma linguagem de programação personalizada chamada Alpha para permitir que os decifradores de códigos descrevessem rigorosamente problemas criptográficos, tal como os cientistas da época utilizavam a linguagem emergente Fortran para descrever equações e algoritmos de processamento de dados.

Em Fort Meade, no Maryland, um centro de dados da NSA albergava um dos computadores mais rápidos do mundo da época — embora isso raramente fosse mencionado, devido à natureza sensível e de alta segurança do seu trabalho de decifração de códigos e deteção de cifragem. Museu Nacional de Criptologia

A história do Harvest, reconstruída a partir de documentos desclassificados, manuais da época e visões gerais técnicas, proporciona uma perspetiva nova e inesperada sobre a história da informática. Oferece também um estudo de caso sobre como as necessidades de segurança nacional, especialmente durante a Guerra Fria, impulsionaram a tecnologia informática para além dos limites do que a informática civil não classificada poderia alcançar. A história distinta do Harvest revela uma arquitetura visionária em termos de algoritmos, codificação, memória e hardware, por vezes décadas à frente do seu tempo. Mas esta máquina também foi construída apenas uma vez, para um único propósito, e acabou por ser discretamente retirada de serviço.

O coração da máquina secreta da NSA

O emblemático mainframe transistorizado da IBM de 1960, o IBM 7030, mais conhecido como Stretch, serviu de interface para o Harvest (que era oficialmente conhecido como IBM 7950). A IBM entregou o Stretch a oito ou nove clientes, na sua maioria laboratórios de investigação científica, entre 1961 e 1963. Concebido e prototipado ao longo da segunda metade da década de 1950, o Stretch introduziu o conceito, hoje padrão, de um byte de 8 bits. Durante os seus primeiros três anos de funcionamento, o Stretch foi o computador não confidencial mais rápido do mundo, embora não tenha conseguido cumprir o objetivo ambicioso da IBM de funcionar 100 vezes mais rápido do que o seu antecessor, o IBM 704. Enquanto os engenheiros da IBM em Poughkeepsie, Nova Iorque, projetavam e construíam o Stretch, a empresa também discutia discretamente um novo sistema que seria construído para a NSA.

Na altura, os computadores criptoanalíticos existentes da NSA — máquinas de grande porte, de processamento em lote, que exigiam que operadores humanos preparassem manualmente cada execução de fita — tinham dificuldade em acompanhar o enorme volume de tráfego de mensagens interceptadas provenientes de todo o mundo. O que a agência precisava era de uma máquina capaz de processar um fluxo ininterrupto de dados recebidos, automaticamente, 24 horas por dia. Esse requisito, por si só, moldou profundamente o design do Harvest.

O sistema Harvest da IBM, construído à medida para a NSA com o objetivo de decifrar códigos, combinava o mainframe IBM 7030 Stretch com um processador de fluxo de dados personalizado. O Stretch tratava da computação comum e das operações de entrada/saída, incluindo a biblioteca de fitas automatizada Tractor. Ambas as unidades partilhavam dois tipos de memória: um banco principal de grande capacidade e um banco mais pequeno e mais rápido. Quando o Stretch passava para o modo de fluxo contínuo, o Harvest extraía dois fluxos de dados, P e Q, da memória, processava-os em paralelo e devolvia os resultados como um terceiro fluxo, denominado R. Chris Philpot

Após duas propostas rejeitadas pela NSA, em 1958 a IBM conseguiu finalmente o contrato: uma máquina baseada no Stretch, complementada por um coprocessador personalizado, com um sistema revolucionário de armazenamento em fita, denominado Tractor.

O ponto forte do Stretch era a matemática de ponto flutuante para cálculos científicos. A IBM tinha-o concebido principalmente para laboratórios que trabalhavam em investigação de ponta, como a conceção de armas nucleares e a previsão meteorológica. Em contrapartida, o coprocessador personalizado a ser construído sobre o Stretch ajudaria os analistas da NSA a filtrar caracteres alfanuméricos — ou seja, essencialmente dados inteiros.

O coprocessador do Harvest era o oposto de um sistema de uso geral. Era, antes, um computador de fluxo contínuo. Em vez de executar longas séries de instruções, seguia uma sequência fixa de passos e aplicava essa mesma sequência a cada par de caracteres à medida que estes passavam. O Harvest partilhava memória com o processador principal do Stretch e funcionava em rajadas. Ou o Stretch estava em funcionamento, ou então suspendia-se enquanto o coprocessador do Harvest processava os dados na memória a velocidades extremas.

O Stretch e o Harvest estavam entre os primeiros computadores de grande porte construídos inteiramente a partir de transístores montados em placas de circuito e alojados em grandes estruturas do tamanho de um frigorífico. Um manual técnico de 1962 sobre o Stretch descreve a CPU da máquina como dividida em secções funcionais — a unidade de instruções, a unidade de antecipação, a unidade aritmética (paralela e serial) e a unidade do barramento de memória. O Harvest herdou o desenho básico dos circuitos do Stretch, mas acrescentou algo não convencional: as suas unidades de fluxo processavam os dados em fases sobrepostas, denominadas «pipeline». Assim, enquanto um par de bytes de dados era comparado, o par seguinte era recuperado da memória.

O coprocessador do Harvest funcionava recuperando dois fluxos de dados, denominados P e Q, da memória do sistema, realizando operações sobre eles e, em seguida, gravando os resultados na memória como um terceiro fluxo, R. Cada fluxo podia ter uma largura entre 1 e 8 bits. A memória do Harvest era endereçável por bits, o que significava que os limites das palavras podiam ser totalmente ignorados. Por exemplo, podia ir buscar apenas 5 bits em vez de preencher um byte inteiro. Os fluxos P, Q e R incluíam disposições flexíveis para a repetição e o endereçamento de dados em padrões complexos — permitindo, por exemplo, a recuperação repetida de cadeias curtas da memória.

Os dados de P e Q eram encaminhados para duas unidades funcionais. A mais simples era a unidade lógica, que realizava operações básicas, bit a bit — as mesmas operações que qualquer programador reconheceria hoje — e gravava os seus resultados de volta na memória. A mais complexa era uma unidade de consulta de tabela. Esta combinava os dados recebidos de P e Q para formar um endereço na memória, que podia então ser utilizado para avançar um contador em um, definir um bit específico ou recuperar um valor armazenado. Esta última unidade funcionava, na prática, como a roda rotativa no interior de uma máquina de codificação/decodificação de cifras da época, do tipo que substituía eletronicamente um valor por outro de acordo com a ligação da máquina de cifras.

A complexidade do Harvest deixou alguns na NSA perplexos. Durante as visitas guiadas aos funcionários, de acordo com a história da NSA de 2001 escrita por James Bamford, *Body of Secrets* (Doubleday), os responsáveis apontavam para a máquina e zombavam: «É linda, mas não funciona.»

No entanto, nem todos na agência ficaram desanimados com o dispositivo monumental. Um dos poucos exemplos documentados do Harvest em funcionamento, relatado por Bamford, descreve a máquina a pesquisar 3,5 mil milhões de caracteres de texto à procura de qualquer um dos 7 000 termos-alvo, em pouco menos de 4 horas.

Em comentários não classificados de 1972, o analista da NSA Robert Looney menciona uma tarefa que o Harvest tinha realizado — embora não tenha especificado o objetivo final nem o esforço de decifração que lhe estava subjacente. Com o nome de código «Moretown», a tarefa envolveu a análise de 11 milhões de mensagens, abrangendo 16 anos de tráfego interceptado, em comparação com uma lista de cerca de 8 000 termos de pesquisa — tudo isto em cerca de dez horas.

Frances Allen, da IBM, ajudou a conceber o Alpha, a linguagem de programação criada à medida para o Harvest. IBM

James H. Pomerene, da IBM, foi o engenheiro-chefe do Harvest, supervisionando os seus circuitos concebidos à medida, que tinham sido otimizados para algoritmos utilizados em muitas tarefas criptográficas. IEEE

Fred Brooks Jr., da IBM, foi um dos principais co-arquitetos do sistema de hardware do Harvest. Museu da História da Informática

Como sistema unificado, o Harvest — ou seja, o Stretch mais o processador de streaming personalizado da IBM — transmitia 1 byte a cada 0,3 microssegundos e contava com cerca de 800 kilobytes de memória endereçável.

«Aqui podem ver um banco retirado do seu banho de óleo», disse Looney no seu discurso de 1972, comemorativo do décimo aniversário de funcionamento do Harvest. Ele mostrou uma fotografia dos bancos de memória de núcleo magnético do Harvest — seis no total, submersos em óleo para arrefecimento.

Se tivermos em conta o tempo necessário para várias recuperações de dados dos arquivos em fita do Tractor, uma única «instrução» do Harvest podia, por vezes, prolongar-se, sem necessidade de qualquer intervenção humana, durante horas.

«Era um computador verdadeiramente espantoso», recordou Frances Allen, IBM Fellow Emérita, numa história oral de 2001. «Uma instrução, por exemplo, podia efetuar ordenações e análises estatísticas dos dados que passavam por ela… Tudo o que estávamos a fazer naquela altura estava na vanguarda. Não havia dúvidas quanto a isso.»

Allen, que recebeu o Prémio A.M. Turing em 2006, foi uma das programadoras que trabalhou tanto no «Stretch» como no «Harvest». Na altura em que começou a trabalhar no «Harvest», observou Allen, a NSA, sediada em Fort Meade, Maryland, era praticamente desconhecida fora dos círculos de inteligência classificados. Por isso, inicialmente, ela partiu do princípio de que estava a trabalhar num projeto naval não especificado. «Pensávamos que estávamos a trabalhar para o Bureau of Ships, porque esse era o nome de código da NSA no orçamento!», recordou Allen, que faleceu em 2020.

Outros designers-chave e primeiros programadores do Harvest acabaram por se tornar figuras influentes ao longo da história da informática. Frederick Brooks Jr., galardoado com o Prémio Turing de 1999 e um dos principais contribuintes para o hardware e software do System/360 da IBM, também ajudou a desenvolver o Harvest. E James Pomerene, antes de se envolver com o Harvest como engenheiro-chefe, já tinha ajudado a construir o pioneiro computador IAS ao lado de John von Neumann.

Como o Tractor armazenava um mundo de dados

A IBM construiu o sistema de fitas Tractor (IBM 7955) para ser ligado à mesma máquina Stretch que alojava o Harvest, porque nenhuma tecnologia de armazenamento de dados existente conseguia acompanhar a impressionante capacidade de processamento do computador. O Stretch encarregava-se de transferir as fitas da biblioteca para as unidades — utilizando o manipulador automático de cassetes do Tractor. O Stretch também coordenava a leitura de dados a partir do Tractor e a gravação dos resultados a partir do Harvest. O Harvest, por sua vez, realizava todos os seus cálculos na memória principal partilhada do sistema.

No início da década de 1960, e mesmo após a instalação do Tractor e do Harvest, o armazenamento de dados em disco rígido estava ainda na sua infância. Para tarefas de decifração de códigos da magnitude que o Harvest estava a assumir, o armazenamento em disco teria sido impraticável, tanto em termos de custo como de espaço físico necessário. Por isso, o Tractor teve de ser concebido com base no armazenamento em fita.

Cada fita estava selada dentro de uma caixa com a forma de um leitor de cassetes portátil — dois carretéis encaixados sob uma janela, transportados por uma pega — e, com 6 a 7 quilogramas, pesava aproximadamente o mesmo que uma bola de bowling. Pense numa cassete do Tractor como uma antecessora de grandes dimensões da cassete de áudio, que surgiria uma década mais tarde, e que armazenava cerca de 120 megabytes de dados num rolo de fita com 550 metros de comprimento. Cada unidade de armazenamento albergava até 160 destas cassetes.

Um técnico da IBM segura uma das cassetes de dados utilizadas com as unidades de fita «Tractor» automatizadas da Harvest. IBM

Quando o Harvest foi lançado em 1962, contava com três unidades automáticas de cartuchos, cada uma a servir duas unidades de fita. Assim, o armazenamento online disponível nas três unidades Tractor totalizava uns impressionantes 44 gigabytes. Isso representa mais de 190 vezes a capacidade do sistema de armazenamento em disco IBM 2314, anunciado em 1965, que armazenava 233 megabytes no seu conjunto completo de oito unidades.

O Tractor tinha de funcionar continuamente, trocando cassetes, 24 horas por dia, sete dias por semana. A velocidade de manuseamento de fitas do sistema foi ajustada para acompanhar o apetite do próprio Harvest por dados. O mecanismo robótico construído à medida para recuperar as cassetes consistia num braço acionado por servo que percorria as prateleiras de armazenamento do sistema. Retirava uma cassete do seu compartimento e entregava-a a um operador, ou recebia uma cassete de um dos operadores e devolvia-a ao armazenamento.

A uma velocidade de 6 metros por segundo, as fitas do Tractor passavam pelas cabeças de leitura/gravação mais depressa do que o olho conseguia acompanhar. O software em execução no Stretch tratava do transporte das cassetes, bem como da leitura e gravação. Para que uma das unidades do Tractor passasse da conclusão do processamento de uma fita para a leitura da seguinte, eram necessários cerca de 18 segundos, partindo do princípio de que a fita já tinha sido retirada e estava pronta a ser montada. A retirada robótica de uma cassete da unidade de armazenamento e a sua preparação para leitura não exigiam qualquer intervenção ou input humano.

Para além do Tractor, o sistema dispunha de unidades de fita bobina a bobina padrão ligadas ao Stretch. Os técnicos do Harvest utilizavam frequentemente as unidades convencionais para importar e exportar dados de e para outros sistemas; não havia outra forma prática de introduzir ou retirar grandes conjuntos de dados do Harvest. O Tractor também podia armazenar ficheiros permanentes e recuperá-los diretamente das suas bibliotecas de fitas quando uma tarefa assim o exigisse. Por outras palavras, as substanciais bibliotecas de cassetes do Tractor funcionavam tanto como armazenamento permanente de dados como local para guardar dados transitórios para processamento pelo Harvest.

Nenhum sistema no mundo da informática comercial de 1962 se aproximava dos gigabytes de dados acessíveis simultaneamente do Tractor. Na maioria dos centros de computação da época, dados «disponíveis» significavam prateleiras físicas de fitas colocadas algures perto das unidades — acessíveis apenas com a rapidez com que um operador conseguisse retirar manualmente um rolo e encaixá-lo numa máquina, um de cada vez, ao longo de um turno.

Alpha era a linguagem de programação criada à medida para o Harvest

Criada em conjunto pela IBM e pela NSA, a linguagem Alpha existia exclusivamente para programar o motor de fluxo de dados em streaming do Harvest para o trabalho de decifração de códigos. De acordo com uma história desclassificada do Pentágono sobre os computadores da NSA, Alpha significava «Advanced Language for Programming Harvest» (Linguagem Avançada para Programação do Harvest).

A Alpha permitia ao programador definir o alfabeto no qual os dados de decifração seriam processados. A linguagem incluía também dois caracteres invulgares, sem equivalente na informática convencional até anos mais tarde, quando o Multics e o Unix introduziram os caracteres curinga. Um «scab» (que era representado no teclado de entrada do Harvest — uma das primeiras máquinas de escrever IBM Selectric adaptadas para o efeito — por um «?») representava um caractere real, mas desconhecido. E um «pad» (representado por um espaço em branco) era um caractere nulo ou espaçador. Estes caracteres proporcionavam flexibilidade de representação para tarefas de decifração de códigos, nas quais caracteres desconhecidos ou incertos eram comuns.

Um operador do Harvest digita numa das consolas principais do sistema, uma máquina de escrever IBM Selectric adaptada. IBM

As regras que regiam as operações do Alpha em cadeias de caracteres anteciparam outras normas modernas, como «não é um número» — uma designação que descreve um valor desconhecido num conjunto de dados que pode propagar-se através dos cálculos, em vez de os corromper silenciosamente. As cadeias de caracteres no Alpha também podiam ser agregadas em cordões e os cordões em cordas, proporcionando aos criptoanalistas um vocabulário hierárquico para descrever interceções complexas.

Allen redigiu um relatório técnico final sobre a sua secção do software Harvest quando a sua parte do projeto chegou ao fim — e, com a mesma rapidez, perdeu o acesso ao mesmo. «Passei boa parte de um verão a trabalhar nisso», recordou ela em 2001. «E simplesmente desapareceu algures em Fort Meade.»

Substituir uma máquina insubstituível

Em 1971, segundo o analista da NSA Looney, a máquina estava a funcionar ao seu nível de utilização mais elevado de sempre — 115 horas de produção por semana, ou mais de dois terços do tempo. No entanto, o número de tarefas que processava vinha a diminuir desde 1967. O trabalho comum de processamento de dados, observou Looney, estava, em 1972, a migrar para máquinas mais recentes e de uso geral, deixando a Harvest a concentrar-se nas tarefas muito grandes e especializadas que nenhum outro sistema conseguia realizar.

No seu décimo aniversário de funcionamento, concluiu Looney, o Harvest era uma máquina «concebida nos anos 50, nascida nos anos 60 e insubstituível nos anos 70».

Ele errou na última parte.

A 27 de fevereiro de 1976, os operadores desligaram o Harvest pela última vez. Um componente mecânico personalizado na biblioteca de fitas Tractor tinha-se desgastado e o fabricante da peça já não estava no mercado. Até então, o Harvest tinha funcionado ininterruptamente durante quase uma década e meia — passando pela situação mais crítica da história da destruição mútua assegurada e entrando na era da distensão —, processando interceções a um ritmo que nenhuma máquina civil conseguia igualar. Quando foi desativado, o Harvest já tinha sobrevivido a várias gerações de informática comercial.

Uma placa comemora o desmantelamento, em 1976, do computador Harvest da IBM na sede da NSA em Fort Meade, Maryland. Museu Nacional de Criptologia

Alguém na NSA decidiu homenagear a máquina com um telegrama simulado, redigido em nome do Harvest no último dia de funcionamento da máquina (e agora preservado nos arquivos da agência). «Comecei a operar na NSA. Embora não seja amplamente conhecido, fui provavelmente o maior, mais rápido e mais avançado sistema informático do mundo», dizia o telegrama. «E agora, catorze anos depois, chegou a hora de me aposentar. O custo da minha manutenção e funcionamento foi ultrapassado por equipamentos mais modernos e pelas tecnologias mais recentes.»

A NSA acabou por substituir o Harvest pelo supercomputador Cray-1, que marcou uma era. O Cray-1 foi construído com circuitos mais rápidos e mais estreitamente integrados, capazes de superar os transístores envelhecidos do Harvest em praticamente qualquer tarefa, incluindo o processamento de texto. Embora o Cray tivesse sido concebido principalmente para computação numérica e científica, foi vendido em muitos domínios — o que acabou por fazer com que o supercomputador levasse a melhor quando o hardware de processamento de texto construído à medida do Harvest deixou de valer a pena manter para apenas um cliente.

O secretismo que envolvia o Harvest significava que este não podia reivindicar qualquer linhagem de sucessores diretos. Mas as ideias que ele lançou não desapareceram — ressurgiram, repetidamente, nos anos que se seguiram.

A biblioteca de fitas automatizada do Tractor foi a precursora dos silos de armazenamento robóticos que se tornariam padrão nos centros de dados empresariais cerca de 20 anos mais tarde. A arquitetura de pipeline da Harvest prenunciou o movimento da computação de fluxo de dados da década de 1980. A lógica de deteção contínua de padrões das suas unidades de correspondência encontra ecos diretos nos modernos detetores de intrusão com inspeção de pacotes de hardware e nos comutadores de rede programáveis que hoje encaminham o tráfego pela Internet à velocidade da ligação.

O Harvest não fundou uma dinastia. Mas, na sua época, apontou firmemente para o futuro — em várias direções ao mesmo tempo.

Este artigo aparece na edição impressa de setembro de 2026 com o título «A história perdida do decifrador de códigos da IBM durante a Guerra Fria».