Tìm hiểu siêu máy tính bí mật của NSA, đi trước thời đại hàng thập kỷ

Minh Nguyệt
Minh Nguyệt
Phản hồi: 0

Minh Nguyệt

Intern Writer
Trong thế giới công nghệ, có những cỗ máy ra đời trong bí mật, làm nên những điều phi thường và rồi lặng lẽ biến mất, để lại di sản mà mãi sau này chúng ta mới nhận ra. IBM Harvest là một câu chuyện như thế, một siêu máy tính được thiết kế riêng cho Cơ quan An ninh Quốc gia Mỹ (NSA) vào những năm 1960, không chỉ là một công cụ phá mã mà còn là một tầm nhìn đi trước thời đại hàng thập kỷ.

Harvest, hay tên chính thức là IBM 7950, được IBM thiết kế và chế tạo cho NSA, với mục tiêu xử lý lượng dữ liệu khổng lồ theo thời gian thực. Nó giống như một phiên bản tiền thân của những hệ thống ngày nay quản lý các luồng video liên tục hay hệ thống an ninh phức tạp. Điều đặc biệt là Harvest được xây dựng như một "phần bổ trợ" chuyên biệt, gắn liền với một máy tính đa năng khác, tương tự như cách các chip đồ họa (GPU) hiện đại hỗ trợ CPU xử lý các tác vụ nặng về game hay AI.

Để vận hành cỗ máy mạnh mẽ này, Harvest cần một dòng dữ liệu không ngừng nghỉ. Điều này dẫn đến một thành tựu tiên phong khác: thư viện băng từ tự động đầu tiên trên thế giới, có khả năng robot tự động lấy bất kỳ cuộn băng từ nào trong số hàng trăm cuộn băng lớn từ các giá đỡ của máy.
1789125849602.png
Với khả năng xử lý và lưu trữ chưa từng có, các nhà thiết kế của IBM đã phải suy nghĩ lại cách hệ thống xử lý thông tin. Họ đã tạo ra một ngôn ngữ lập trình tùy chỉnh tên là Alpha, giúp các chuyên gia phá mã mô tả chính xác các vấn đề mật mã, giống như cách các nhà khoa học thời đó sử dụng ngôn ngữ Fortran đang nổi lên để mô tả các phương trình và thuật toán xử lý dữ liệu.

Câu chuyện về Harvest, được ghép nối từ các tài liệu đã giải mật và các hướng dẫn kỹ thuật đương thời, mở ra một góc nhìn mới mẻ về lịch sử máy tính. Nó cũng là một minh chứng cho thấy nhu cầu an ninh quốc gia, đặc biệt trong Chiến tranh Lạnh, đã thúc đẩy công nghệ máy tính vượt xa những gì máy tính dân sự, không mật có thể đạt được. Harvest sở hữu kiến trúc thuật toán, mã hóa, bộ nhớ và phần cứng có tầm nhìn xa, đôi khi đi trước thời đại hàng thập kỷ. Tuy nhiên, cỗ máy này chỉ được chế tạo một lần, cho một mục đích duy nhất, và sau đó lặng lẽ nghỉ hưu.

Trái tim của Harvest chính là siêu máy tính IBM 7030, hay còn gọi là Stretch, một máy tính mainframe dùng bóng bán dẫn ra đời năm 1960 của IBM. Stretch được giao cho 8 hoặc 9 khách hàng, chủ yếu là các phòng thí nghiệm nghiên cứu khoa học, từ năm 1961 đến 1963. Được thiết kế và thử nghiệm trong nửa sau thập niên 1950, Stretch đã giới thiệu khái niệm 8-bit byte tiêu chuẩn ngày nay. Trong ba năm hoạt động đầu tiên, Stretch là máy tính nhanh nhất thế giới không thuộc diện mật, dù nó không đạt được mục tiêu đầy tham vọng của IBM là nhanh gấp 100 lần so với người tiền nhiệm IBM 704.

Vào thời điểm đó, các máy tính phân tích mật mã hiện có của NSA, vốn là những cỗ máy xử lý theo lô lớn yêu cầu người vận hành phải tự tay sắp xếp từng lượt chạy băng, đang gặp khó khăn trong việc theo kịp khối lượng lớn tin nhắn bị chặn từ khắp nơi trên thế giới. Cơ quan này cần một cỗ máy có thể xử lý dòng dữ liệu đến liên tục, tự động, suốt ngày đêm. Yêu cầu đó đã định hình sâu sắc thiết kế của Harvest.

Sau hai đề xuất không thành công, năm 1958, IBM cuối cùng đã giành được hợp đồng: một cỗ máy dựa trên Stretch, được bổ sung bởi một bộ đồng xử lý tùy chỉnh, cùng với một hệ thống lưu trữ dựa trên băng từ mang tính cách mạng, được gọi là Tractor.

Điểm mạnh của Stretch là tính toán dấu phẩy động cho các phép tính khoa học, chủ yếu dành cho các phòng thí nghiệm nghiên cứu tiên phong như thiết kế vũ khí hạt nhân và dự báo thời tiết. Ngược lại, bộ đồng xử lý tùy chỉnh được xây dựng trên Stretch sẽ giúp các nhà phân tích của NSA sàng lọc các ký tự chữ và số, tức là dữ liệu số nguyên.

Bộ đồng xử lý của Harvest không phải là một hệ thống đa năng. Nó là một máy tính luồng (streaming computer). Thay vì thực hiện một chuỗi dài các lệnh, nó tuân theo một chuỗi các bước cố định và áp dụng chuỗi đó cho mọi cặp ký tự khi chúng đi qua. Harvest chia sẻ bộ nhớ với bộ xử lý Stretch chính và hoạt động theo từng đợt. Khi Stretch chuyển sang chế độ luồng, Harvest sẽ lấy hai luồng dữ liệu, P và Q, từ bộ nhớ, xử lý chúng song song và trả về kết quả dưới dạng luồng thứ ba, gọi là R.

Stretch và Harvest là một trong những máy tính lớn đầu tiên được xây dựng hoàn toàn từ các bóng bán dẫn đóng gói trong các bảng mạch và đặt trong các khung lớn, kích thước như tủ lạnh. Một tài liệu kỹ thuật năm 1962 về Stretch mô tả CPU của máy được chia thành các phần chức năng: đơn vị lệnh, đơn vị nhìn trước, đơn vị số học (song song và nối tiếp) và đơn vị bus bộ nhớ. Harvest thừa hưởng thiết kế mạch cơ bản của Stretch nhưng sau đó bổ sung một điều độc đáo: các đơn vị luồng của nó xử lý dữ liệu theo các giai đoạn chồng chéo được gọi là pipeline. Điều này có nghĩa là trong khi một cặp byte dữ liệu đang được so sánh, cặp tiếp theo đã được lấy từ bộ nhớ.

Bộ đồng xử lý của Harvest hoạt động bằng cách lấy hai luồng dữ liệu, P và Q, từ bộ nhớ hệ thống, thực hiện các phép toán trên chúng, sau đó ghi kết quả vào bộ nhớ dưới dạng luồng R. Mỗi luồng có thể rộng từ 1 đến 8 bit. Bộ nhớ của Harvest có thể định địa chỉ theo bit, nghĩa là các ranh giới từ có thể bị bỏ qua hoàn toàn. Ví dụ, nó có thể lấy chỉ 5 bit thay vì phải lấy cả một byte. Các luồng P, Q và R bao gồm các quy định linh hoạt cho việc lặp và định địa chỉ dữ liệu theo các mẫu phức tạp, cho phép lấy lặp lại các chuỗi ngắn từ bộ nhớ.

Dữ liệu từ P và Q được đưa vào hai đơn vị chức năng. Đơn vị logic đơn giản hơn, thực hiện các phép toán bitwise cơ bản, giống như bất kỳ lập trình viên nào ngày nay cũng sẽ nhận ra, và ghi kết quả trở lại bộ nhớ. Đơn vị phức tạp hơn là đơn vị tra cứu bảng. Nó kết hợp dữ liệu đến từ P và Q để tạo thành một địa chỉ trong bộ nhớ, sau đó có thể được sử dụng để tăng bộ đếm lên một, đặt một bit cụ thể hoặc truy xuất một giá trị đã lưu trữ. Đơn vị sau này hoạt động, trên thực tế, giống như bánh xe rotor bên trong một máy mã hóa/giải mã mật mã thời đó, loại máy thay thế điện tử một giá trị bằng một giá trị khác theo cách nối dây của máy mật mã.

Sự phức tạp của Harvest đã khiến một số người ở NSA bối rối. Theo cuốn "Body of Secrets" (2001) của James Bamford, các quan chức trong các chuyến tham quan thường chỉ vào cỗ máy và chế giễu: "Nó đẹp đấy, nhưng nó không hoạt động."

Tuy nhiên, không phải ai ở cơ quan này cũng bị nản lòng bởi thiết bị đồ sộ đó. Một trong số ít ví dụ được ghi lại về Harvest đang hoạt động, do Bamford kể lại, mô tả cỗ máy tìm kiếm 3,5 tỷ ký tự văn bản để tìm bất kỳ trong số 7.000 thuật ngữ mục tiêu, chỉ trong chưa đầy 4 giờ.

Trong các nhận xét không mật từ năm 1972, nhà phân tích Robert Looney của NSA đã đề cập đến một công việc mà Harvest đã xử lý, mặc dù ông không nêu rõ mục tiêu cuối cùng hay nỗ lực phá mã đằng sau nó. Công việc có tên mã "Moretown", liên quan đến việc sàng lọc 11 triệu tin nhắn trải dài 16 năm lưu lượng bị chặn so với danh sách khoảng 8.000 thuật ngữ tìm kiếm, tất cả chỉ trong khoảng 10 giờ.

Harvest, như một hệ thống thống nhất, tức là Stretch cộng với bộ xử lý luồng tùy chỉnh của IBM, có thể truyền 1 byte mỗi 0,3 micro giây và tự hào có khoảng 800 kilobyte bộ nhớ có thể định địa chỉ.

Frances Allen, một thành viên danh dự của IBM, người đã nhận Giải thưởng A.M. Turing năm 2006, là một trong những nhà phát triển đã làm việc trên cả Stretch và Harvest. Bà nhớ lại trong một lịch sử truyền miệng năm 2001: "Đó là một máy tính khá tuyệt vời. Ví dụ, một lệnh có thể thực hiện sắp xếp và phân tích thống kê dữ liệu đang truyền qua nó... Mọi thứ chúng tôi làm vào thời điểm đó đều là tiên tiến nhất. Không có nghi ngờ gì về điều đó."

Allen kể rằng khi bà bắt đầu làm việc trên Harvest, NSA ở Fort Meade, Maryland, hầu như không được biết đến bên ngoài các giới tình báo mật. Vì vậy, ban đầu bà cho rằng mình đang làm việc cho một dự án hải quân không xác định. "Chúng tôi nghĩ mình đang làm việc cho Cục Tàu thủy, vì đó là tên mã của NSA trong ngân sách!" Allen, người qua đời năm 2020, nhớ lại.

Những nhà thiết kế và phát triển chủ chốt khác của Harvest sau này đã trở thành những nhân vật có ảnh hưởng trong lịch sử máy tính. Frederick Brooks Jr., người nhận Giải thưởng Turing năm 1999 và là người đóng góp chính cho phần cứng và phần mềm của IBM System/360, cũng đã giúp phát triển Harvest. Và James Pomerene, trước khi tham gia Harvest với tư cách kỹ sư trưởng, đã từng giúp xây dựng máy tính IAS tiên phong cùng với John von Neumann.

Hệ thống băng từ Tractor (IBM 7955) được IBM chế tạo để gắn vào cùng một máy Stretch đã lưu trữ Harvest, bởi vì không có công nghệ lưu trữ dữ liệu nào hiện có có thể theo kịp thông lượng đáng kinh ngạc của máy tính. Stretch xử lý việc sắp xếp băng từ thư viện đến các ổ đĩa, sử dụng bộ xử lý băng cassette tự động của Tractor. Stretch cũng điều phối việc đọc dữ liệu từ Tractor và ghi kết quả trở lại từ Harvest. Harvest, đến lượt mình, thực hiện tất cả các phép tính thực tế trên bộ nhớ chính dùng chung của hệ thống.

Vào đầu những năm 1960, và ngay cả sau khi Tractor và Harvest được lắp đặt, lưu trữ dữ liệu bằng ổ cứng vẫn còn sơ khai. Đối với các công việc phá mã có quy mô mà Harvest đảm nhận, lưu trữ đĩa sẽ không thực tế về cả chi phí và không gian sàn. Vì vậy, Tractor phải dựa trên lưu trữ băng từ.

Mỗi cuộn băng được niêm phong bên trong một hộp được chế tạo giống như một chiếc boombox, với hai cuộn băng được bọc kín dưới một cửa sổ, có tay cầm, và nặng khoảng 6 đến 7 kg, tương đương một quả bóng bowling. Hãy hình dung một băng cassette Tractor như một phiên bản tiền thân lớn hơn của băng cassette âm thanh, sẽ ra đời một thập kỷ sau đó, và chứa khoảng 120 megabyte dữ liệu trên một cuộn băng dài 550 mét. Mỗi đơn vị lưu trữ chứa tới 160 băng cassette này.

Khi Harvest ra mắt vào năm 1962, nó có ba đơn vị băng cassette tự động, mỗi đơn vị phục vụ hai ổ đĩa. Vì vậy, tổng dung lượng lưu trữ trực tuyến trên ba đơn vị Tractor lên tới con số đáng kinh ngạc 44 gigabyte. Con số này lớn hơn 190 lần so với dung lượng của hệ thống lưu trữ đĩa IBM 2314, được công bố vào năm 1965, chỉ chứa 233 megabyte trên toàn bộ tám ổ đĩa của nó.

Tractor phải chạy liên tục, hoán đổi băng cassette vào và ra, 24 giờ một ngày, bảy ngày một tuần. Tốc độ xử lý băng của hệ thống được điều chỉnh để theo kịp nhu cầu dữ liệu của Harvest. Cơ chế robot tùy chỉnh để lấy băng cassette là một cánh tay điều khiển servo di chuyển qua các giá lưu trữ của hệ thống. Nó lấy một băng cassette từ khe của nó và đưa đến bộ xử lý hoặc nhận một băng cassette từ một trong các bộ xử lý và trả lại kho lưu trữ.

Chạy với tốc độ 6 mét mỗi giây, các cuộn băng của Tractor lướt qua các đầu đọc/ghi nhanh hơn mắt thường có thể theo dõi. Phần mềm chạy trên Stretch xử lý việc di chuyển băng cassette cũng như đọc và ghi. Để một trong các ổ đĩa của Tractor chuyển từ hoàn thành xử lý một cuộn băng sang đọc cuộn băng tiếp theo mất khoảng 18 giây, giả sử nó đã được lấy và sẵn sàng để gắn. Việc robot lấy một băng cassette từ đơn vị lưu trữ và chuẩn bị nó để đọc không yêu cầu bất kỳ sự can thiệp hay đầu vào nào của con người.

Ngoài Tractor, hệ thống còn có các ổ đĩa băng từ cuộn sang cuộn tiêu chuẩn gắn vào Stretch. Các kỹ thuật viên của Harvest thường sử dụng các ổ đĩa thông thường để nhập và xuất dữ liệu đến và từ các hệ thống khác; không có cách thực tế nào khác để đưa các tập dữ liệu lớn vào hoặc ra khỏi Harvest. Tractor cũng có thể lưu trữ các tệp vĩnh viễn và truy xuất chúng trực tiếp từ thư viện băng từ của nó khi một công việc yêu cầu. Nói cách khác, các thư viện băng cassette đáng kể của Tractor hoạt động vừa là nơi lưu trữ dữ liệu vĩnh viễn vừa là nơi chứa dữ liệu tạm thời để Harvest xử lý.

Không có hệ thống nào trong thế giới máy tính thương mại năm 1962 có thể sánh được với hàng gigabyte dữ liệu có thể truy cập đồng thời của Tractor. Tại hầu hết các trung tâm máy tính vào thời điểm đó, dữ liệu "có sẵn" có nghĩa là các giá băng vật lý đứng đâu đó gần các ổ đĩa của nó, chỉ có thể truy cập nhanh chóng khi một người vận hành có thể tự tay lấy một cuộn băng và luồn nó vào máy, từng cái một, trong suốt một ca làm việc.

Ngôn ngữ Alpha, được tạo ra bởi IBM và NSA, chỉ tồn tại để lập trình công cụ luồng dữ liệu (dataflow) của Harvest cho công việc phá mã. Theo một lịch sử đã giải mật của Lầu Năm Góc về các máy tính của NSA, Alpha là viết tắt của "Advanced Language for Programming Harvest" (Ngôn ngữ nâng cao để lập trình Harvest).

Alpha cho phép lập trình viên định nghĩa bảng chữ cái mà dữ liệu phá mã sẽ được xử lý. Ngôn ngữ này cũng bao gồm hai ký tự bất thường không có tương đương trong máy tính thông thường cho đến nhiều năm sau, khi Multics và Unix giới thiệu các ký tự đại diện (wildcard characters). Một "scab" (được biểu thị trên bàn phím nhập liệu của Harvest, một máy đánh chữ IBM Selectric được tái sử dụng, bằng dấu "?") đại diện cho một ký tự có thật nhưng không xác định. Và một "pad" (được biểu thị bằng một khoảng trắng) là một giá trị rỗng hoặc ký tự đệm. Các ký tự này cung cấp sự linh hoạt trong việc biểu diễn cho các công việc phá mã, nơi các ký tự không xác định hoặc không chắc chắn là phổ biến.

Các quy tắc chi phối hoạt động của Alpha trên các chuỗi đã dự đoán các quy tắc hiện đại khác, như "not a number" (NaN), một định danh mô tả một giá trị không xác định trong một tập dữ liệu có thể lan truyền qua các phép tính, thay vì làm hỏng chúng một cách âm thầm. Các chuỗi trong Alpha cũng có thể được tổng hợp thành "cords" (dây), và "cords" thành "ropes" (dây thừng), mang lại cho các nhà mật mã học một từ vựng phân cấp để mô tả các tin nhắn bị chặn phức tạp.

Frances Allen đã viết một báo cáo kỹ thuật cuối cùng về phần mềm Harvest của mình khi phần việc của bà kết thúc, và ngay lập tức mất quyền truy cập vào nó. Bà nhớ lại vào năm 2001: "Tôi đã dành phần lớn mùa hè cho việc đó. Và nó chỉ biến mất vào Fort Meade ở đâu đó."

Đến năm 1971, theo nhà phân tích Looney của NSA, cỗ máy đang hoạt động với công suất cao nhất từ trước đến nay, 115 giờ sản xuất mỗi tuần, tức là hơn hai phần ba thời gian. Tuy nhiên, số lượng công việc mà nó xử lý đã giảm kể từ năm 1967. Looney lưu ý rằng công việc xử lý dữ liệu thông thường, đến năm 1972, đang chuyển sang các máy đa năng mới hơn, để Harvest tập trung vào các công việc chuyên biệt, rất lớn mà không hệ thống nào khác có thể xử lý.

Vào lễ kỷ niệm 10 năm hoạt động, Looney kết luận rằng Harvest là một cỗ máy "được hình thành vào những năm 50, ra đời vào những năm 60, và không thể thay thế vào những năm 70."

Ông đã sai ở phần cuối.

Vào ngày 27 tháng 2 năm 1976, các kỹ thuật viên đã tắt Harvest lần cuối cùng. Một bộ phận cơ khí tùy chỉnh trong thư viện băng từ Tractor đã bị mòn, và nhà sản xuất bộ phận đó không còn kinh doanh nữa. Đến lúc đó, Harvest đã chạy liên tục gần một thập kỷ rưỡi, qua những thời điểm căng thẳng nhất trong lịch sử hủy diệt lẫn nhau và vào thời đại hòa hoãn, xử lý các tin nhắn bị chặn với tốc độ mà không một cỗ máy dân sự nào có thể sánh kịp. Khi nghỉ hưu, Harvest đã tồn tại lâu hơn nhiều thế hệ máy tính thương mại.

Một người nào đó tại NSA đã quyết định kỷ niệm cỗ máy bằng một bức điện tín giả, được viết dưới tên Harvest vào ngày cuối cùng của máy (và hiện được lưu giữ trong kho lưu trữ của cơ quan). Bức điện tín viết: "Tôi bắt đầu hoạt động tại NSA. Mặc dù không được biết đến rộng rãi, tôi có lẽ là hệ thống máy tính lớn nhất, nhanh nhất và tiên tiến nhất về mặt kỹ thuật trên thế giới. Và bây giờ, mười bốn năm sau, đã đến lúc nghỉ hưu. Chi phí bảo trì và vận hành của tôi đã bị vượt qua bởi các thiết bị hiện đại hơn và các công nghệ mới hơn."

NSA cuối cùng đã thay thế Harvest bằng siêu máy tính Cray-1 nổi tiếng. Cray-1 được chế tạo từ các mạch tích hợp nhanh hơn, chặt chẽ hơn, có thể vượt trội hơn các bóng bán dẫn cũ kỹ của Harvest ở hầu hết mọi tác vụ, bao gồm cả xử lý văn bản. Mặc dù Cray được thiết kế chủ yếu cho tính toán số và khoa học, nó đã được bán trong nhiều lĩnh vực, điều này cuối cùng đã giúp siêu máy tính này chiến thắng khi phần cứng xử lý văn bản tùy chỉnh của Harvest không còn đáng để duy trì cho chỉ một khách hàng.

Sự bí mật bao trùm Harvest có nghĩa là nó không thể có một dòng dõi kế thừa trực tiếp. Nhưng những ý tưởng mà nó tiên phong đã không biến mất, chúng tái xuất hiện, hết lần này đến lần khác, trong những năm sau đó.

Thư viện băng từ tự động của Tractor là tiền thân của các kho lưu trữ robot sẽ trở thành tiêu chuẩn trong các trung tâm dữ liệu doanh nghiệp khoảng 20 năm sau. Kiến trúc pipeline của Harvest đã báo trước phong trào tính toán luồng dữ liệu (dataflow computing) của những năm 1980. Logic phát hiện mẫu liên tục của các đơn vị khớp của nó tìm thấy tiếng vang trực tiếp trong các bộ phát hiện xâm nhập kiểm tra gói phần cứng hiện đại và các bộ chuyển mạch mạng có thể lập trình ngày nay định tuyến lưu lượng truy cập qua internet với tốc độ dây.

Harvest không tạo ra một triều đại. Nhưng, vào thời của nó, nó đã kiên định chỉ ra tương lai, theo nhiều hướng cùng một lúc.
 
Back
Top