IBM Built the Cold War's Most Powerful Code Breaker for the NSA
IBM이 NSA를 위해 만든 냉전 시대 최강의 코드 브레이커 — Harvest의 잃어버린 역사
1962년부터 14년간 NSA의 핵심 암호 해독 프로세서로 가동된 IBM Harvest는 당시 어떤 컴퓨터보다 최대 200배 빠른 스트리밍 머신이었습니다. IBM 7030 Stretch에 전용 코프로세서를 결합한 이 시스템은 파이프라인 처리, 세계 최초의 자동 테이프 라이브러리 Tractor, 전용 언어 Alpha 등 수십 년 앞선 설계를 담고 있었습니다.
- 주제
본문
냉전이 절정이던 시기, 세상에 존재가 알려지지 않은 특수 목적 컴퓨터가 있었습니다. IBM이 NSA를 위해 설계·제작한 Harvest(공식 명칭 IBM 7950)는 1962년 쿠바 미사일 위기부터 베트남 전쟁, 1975년 헬싱키 협정을 지나 1976년까지 14년간 NSA의 주력 암호 처리기로 가동되며, 당시 지구상 어떤 컴퓨터보다 최대 200배 빠르게 작업을 수행했습니다. 기밀 해제 문서와 당대 매뉴얼을 토대로 복원된 이 이야기는 국가 안보 수요가 민간 컴퓨팅의 한계를 어떻게 밀어 넘었는지 보여주는 사례입니다.
스트리밍 코프로세서로서의 Harvest
Harvest의 프런트엔드는 IBM의 트랜지스터 메인프레임 IBM 7030, 즉 Stretch였습니다. Stretch는 8비트 바이트 개념을 처음 도입한 기계로, 과학 연산용 부동소수점 처리에 강했지만 NSA가 필요로 한 것은 알파벳 문자 단위의 정수 데이터 처리였습니다. 이를 위해 IBM은 Stretch 위에 전용 스트리밍 코프로세서를 얹는 방식을 택했는데, 기사는 이를 오늘날 CPU에 붙는 GPU 같은 가속기의 1960년대 판본에 비유합니다. Harvest는 메모리에서 P와 Q라는 두 데이터 스트림을 가져와 병렬로 연산한 뒤 R이라는 세 번째 스트림으로 결과를 돌려보냈고, 각 스트림은 1~8비트 폭을 가질 수 있었습니다. 메모리는 비트 단위 주소 지정이 가능해 바이트 경계를 무시하고 5비트만 읽는 식의 접근도 가능했습니다. 연산은 비트 단위 논리 연산을 담당하는 로직 유닛과, P·Q 데이터를 조합해 메모리 주소를 만들어 카운터를 올리거나 값을 꺼내는 테이블 룩업 유닛이 처리했으며, 후자는 당대 암호기의 로터 휠처럼 값을 치환하는 역할을 했습니다. 데이터는 오버랩되는 파이프라인 단계로 흘러 한 쌍의 바이트를 비교하는 동안 다음 쌍을 페치했습니다. 시스템 전체로는 0.3마이크로초당 1바이트를 스트리밍했고 주소 지정 가능 메모리는 약 800KB였으며, 자기 코어 메모리 뱅크 여섯 개는 냉각을 위해 오일에 잠겨 있었습니다. 한 번 시작된 Harvest의 '명령' 하나가 테이프 페치까지 포함해 사람의 개입 없이 몇 시간씩 이어지기도 했습니다.
세계 최초의 자동 테이프 라이브러리, Tractor
이 처리량을 먹여 살리기 위해 IBM은 세계 최초의 자동화 테이프 라이브러리 Tractor(IBM 7955)를 만들었습니다. 붐박스처럼 생긴 카세트 하나는 6~7kg, 550m 테이프에 약 120MB를 담았고, 유닛 하나가 최대 160개 카세트를 수용했습니다. 1962년 가동 당시 세 유닛의 온라인 용량은 총 44GB로, 1965년에 발표된 IBM 2314 디스크 시스템(8대 드라이브 합계 233MB)의 190배가 넘었습니다. 서보 구동 로봇 팔이 랙에서 카세트를 꺼내 드라이브에 장착했고 테이프는 초당 6m로 헤드를 지났으며, 다음 테이프를 읽기까지 약 18초가 걸렸습니다. 1962년 당시 '이용 가능한 데이터'가 운영자가 손으로 릴을 꺼내 감아주는 수준이던 것을 생각하면, 상용 세계에 대응물이 없는 시스템이었습니다.
전용 언어 Alpha와 만든 사람들
IBM과 NSA가 공동으로 만든 Alpha(Advanced Language for Programming Harvest)는 Harvest의 데이터플로 엔진을 프로그래밍하기 위한 언어였습니다. 암호 해독에 특화되어 'scab'(실재하지만 미지의 문자, '?'로 표기)과 'pad'(널·공백 문자)라는 개념을 도입했는데, 이는 Multics와 Unix의 와일드카드보다 몇 년 앞선 것이었습니다. 문자열을 cord로, cord를 rope으로 묶는 계층적 표현과 NaN을 연상시키는 미지의 값 전파 규칙도 갖추고 있었습니다. 개발에는 2006년 튜링상 수상자 Frances Allen, 1999년 튜링상 수상자이자 System/360의 핵심 설계자 Fred Brooks Jr., 그리고 폰 노이만과 함께 IAS 컴퓨터를 만들었던 James Pomerene이 참여했습니다. Allen은 NSA의 존재 자체가 비밀이던 시절이라 자신이 'Bureau of Ships'라는 예산상 코드명의 해군 프로젝트를 하는 줄 알았다고 회고했습니다. 실전 기록으로는 35억 문자에서 7,000개 표적 단어를 4시간 안에 검색한 사례와, 'Moretown'이라는 코드명으로 16년치 1,100만 건의 가로챈 메시지를 8,000개 검색어와 대조해 약 10시간 만에 처리한 작업이 전해집니다. 다만 복잡성 탓에 NSA 내부에서조차 '아름답지만 작동하지 않는다'는 조롱을 받기도 했습니다.
퇴역과 유산
1971년 Harvest는 주당 115시간 가동이라는 최고 이용률을 기록했지만, 일반 데이터 처리는 신형 범용기로 넘어가고 있었습니다. 1976년 2월 27일, Tractor의 맞춤 기계 부품이 마모됐는데 제조사가 이미 문을 닫아 수리가 불가능해지면서 최종 종료됐습니다. 후속은 범용 슈퍼컴퓨터 Cray-1이었습니다. 기밀이라 후계 계보를 남기지는 못했지만, Tractor의 자동 테이프 라이브러리는 20년 뒤 엔터프라이즈 데이터 센터의 로봇 스토리지 사일로로, 파이프라인 아키텍처는 1980년대 데이터플로 컴퓨팅으로, 패턴 매칭 로직은 오늘날의 패킷 인스펙션 침입 탐지와 프로그래머블 네트워크 스위치로 이어졌다고 기사는 평가합니다.
Lobsters 반응
- @schmudde — Harvest 이야기는 언제든 환영이라며, 자신의 저서 'Microcomputers for the Masses'의 저비용 컴퓨팅 분석에 넣고 싶었다고 말합니다. 소비자 제품인 IBM Selectric 타자기가 Stretch/Harvest와 연계되어 사실상 미국 납세자의 보조금을 받은 셈이라는 주장인데, Stretch가 NSA와 원자력위원회의 비용 분담으로 개발됐고 세계에서 가장 빠른 컴퓨터에 맞는 고속 타자기 터미널이 필요했다는 근거를 듭니다.
원문: IEEE Spectrum / 번역·요약: Trawling