Một lập trình viên vừa giải quyết được câu đố mã hóa có tuổi đời 20 năm

10:00 | 14/05/2019 | GP MẬT MÃ

Đầu tháng 4/1999, một "viên nang thời gian" đã được chuyển đến cho kiến trúc sư nổi tiếng Frank Gehry với chỉ dẫn nhằm tích hợp nó vào các bản thiết kế của ông cho một toà nhà mà sau đó trở thành nơi “đóng đô” của Phòng thí nghiệm Khoa học máy tính và trí tuệ nhân tạo của MIT (viết tắt là CSAIL). “Viên nang thời gian” này là một viện bảo tàng về lịch sử sơ khai của máy tính, có chứa 50 món kỷ vật được đóng góp bởi những người như Bill Gates và Tim Berners-Lee.

“Viên nang thời gian” không thể được mở ra trong vòng 35 năm sau đó, trừ khi có ai đó giải được câu đố mã hóa kèm bên trong thiết kế của nó. Câu đố này được tạo ra bởi Ron Rivest, người được lấy tên đặt cho chữ “R” trong RSA - một trong những giao thức mã hóa quan trọng nhất từng được tạo ra. Ông cho rằng câu đố không phức tạp nhưng ước lượng phải mất gần 35 năm mới tính toán ra câu trả lời.

Ngày 15/4/2019, 20 năm sau khi Rivest công bố câu hỏi, một lập trình viên tự học người Bỉ có tên Bernard Fabrot đã giải được câu đố này. Chỉ dẫn ban đầu của câu đố nói rằng, lời giải phải được gửi đến giám đốc Phòng thí nghiệm Khoa học máy tính. Tuy nhiên, Fabrot ngạc nhiên khi biết rằng phòng thí nghiệm đó không còn tồn tại nữa, mà đã được nhập vào phòng thí nghiệm trí tuệ nhân tạo của MIT vào năm 2003 để tạo ra CSAIL. Fabrot nói rằng, giám đốc CSAIL là Daniela Rus thậm chí còn không biết đến sự tồn tại của câu đố khi anh nói với bà về lời giải.

Câu đố của Rivest xoay quanh việc tìm ra con số thu được từ việc thực hiện phép tính bình phương gần 80 nghìn tỷ lần. Ví dụ, nếu bắt đầu bằng việc tính bình phương của 2 thì sẽ được 4, sau đó bình phương của 4 để được 16, và lặp lại quá trình này 80 nghìn tỷ lần nữa. Sau đó, lấy kết quả thu được và chạy một phương trình toán học sử dụng con số đó và một con số được cho trước trong hướng dẫn giải đố. Phương trình này sẽ cho ra một con số mới có thể được phiên dịch ra thành một cụm từ mang ý nghĩa chúc mừng (Rivest và Fabrot từ chối tiết lộ cụm từ này chính xác là gì và sẽ công bố nó khi mở “viên nang thời gian” vào ngày 15/5/2019 tới đây.

Câu đố này là đòi hỏi phải thực hiện một chuỗi các phép tính liên tục, có nghĩa là không thể tìm ra câu trả lời nhanh hơn bằng cách sử dụng tính toán song song, mà cần thực hiện quá trình tính bình phương một cách tuần tự, tức phép tính trước phải có kết quả mới tiếp tục thực hiện phép tính tiếp theo. Do đó, sử dụng siêu máy tính hoặc thêm nhiều máy tính cũng không giải quyết được câu đố. Dựa trên định luật Moore và quãng thời gian cần thiết để chạy phép tính bình phương vào năm 1999, Rivest ước tính rằng để tính toán ra được câu trả lời phải mất xấp xỉ 35 năm.

Tác giả câu đố Ron Rivest

Fabrot cho biết, anh vô tình thấy câu đố này vào năm 2015. Dù Rivest ban đầu tung ra mã của câu hỏi bằng ngôn ngữ Java, nhwung Fabrot nhận ra rằng nó có thể được giải nhanh hơn nếu dùng đến GNU Multiple Precision Arithmetic Library - một phần mềm miễn phí viết bằng ngôn ngữ C chuyên dùng vào việc thực hiện các phép tính số học chính xác. Do đó, Fabrot đã dành riêng một trong số nhiều nhân CPU trên máy tính của anh để chạy phép tính bình phương nhằm giải câu đố. Anh cho biết, máy tính thực hiện phép tính 24/7, trừ những khi anh đi du lịch hoặc bị mất điện. Fabrot nói rằng trong nhiều năm, trừ những người bạn rất thân thì anh không nói với ai về việc đang giải câu đố. Anh cho rằng nếu nói cho người khác thì họ có thể dùng một CPU mạnh mẽ hơn để vượt mặt. Ba năm rưỡi sau, Fabrot cuối cùng cũng hoàn tất hơn 80 nghìn tỷ phép tính bình phương và thu được lời giải cho câu đó.

Dù Fabrot không biết, nhưng có một nhóm các nhà khoa học máy tính và chuyên gia mã hóa cũng đang thực hiện một dự án có tên là Cryptophage, trong đó sử dụng phần cứng chuyên dụng được thiết kế dành riêng cho việc giải mã câu đố MIT đó. Được dẫn đầu bởi cựu kỹ sư Intel có tên Simon Peffers, nhóm Cryptophage lúc này đang nghiên cứu các chức năng trì hoãn có thể kiểm chứng để làm cơ chế bảo mật cho các blockchain như Ethereum. Các chức năng trì hoãn có thể kiểm chứng là một dạng hiện đại hơn của phương thức mã hóa trì hoãn thời gian sơ khai của Rivest và lời giải của chúng chỉ có thể thu được thông qua các phép tính tuần tự nhau. Trong quá trình nghiên cứu, Peffers cho biết, nhóm đã gặp câu đố của Rivest và nhận định rằng đây có vẻ là một ví dụ tốt cho việc thử nghiệm nghiên cứu của họ.

Vào giữa tháng 3/2019, nhóm bắt đầu chạy một thuật toán thiết kế bởi Erdinc Ozturk, một nhà nghiên cứu tại Đại học Sabanci, được tối ưu để giảm khoảng trì hoãn giữa các phép tính bình phương. Thuật toán này được triển khai trên một “mảng cổng lập trình được dạng trường” (FPGA), một con chip đa chức năng được lập trình để chạy một thuật toán cụ thể duy nhất, khiến nó hiệu quả hơn một CPU đại trà thông thường. Sử dụng thuật toán của Ozturk, FPGA này chạy nhanh gấp 10 lần so với một CPU thương mại cao cấp chạy phần mềm chưa được tối ưu hóa.

Nhờ vào khả năng tính toán hiệu quả của con chip, nhóm Cryptophage tính được rằng họ sẽ có lời giải chính xác cho câu đố của MIT vào tối ngày 10/5/2019, chỉ 2 tháng sau khi bắt đầu quá trình tính toán. Tuy nhiên, khi họ liên hệ với MIT để thông báo rằng sắp có kết quả, Rivest thông báo cho họ biết Fabrot đã tìm ra lời giải trước họ.

Rivest cho hay, thật là một sự trùng hợp đáng kinh ngạc khi không có ai liên hệ với ông suốt nhiều năm, tới khi cả hai người giải được đã xuất hiện vào cùng một ngày để thông báo rằng đã giải được bài toán của ông. Rivest nhanh chóng thừa nhận rằng, ông đã đánh giá quá cao độ khó của câu đố mình đặt ra. Đưa ra một dự đoán trong lĩnh vực công nghệ với những cải tiến và phát triển không ngừng là điều rất khó nếu xét trên cả một quãng thời gian dài. Rivest cho biết, ông không thể đoán định được những đột phá công nghệ như chip FPGA - một thứ vào thời đó chưa phức tạp và phổ biến rộng rãi như ngày nay.

Dù nhóm Cryptophage không phải là người đầu tiên giải được câu đố, Peffers cho biết họ vẫn sẽ đến dự buổi lễ mở “viên nang thời gian” vào ngày 15/5. Chỉ những người thiết kế ra “viên nang” biết được toàn bộ nội dung của nó, dù nó chứa trong đó những đóng góp từ Tim Berners-Lee, nhà phát minh ra World Wide Web; Bob Metcalfe, người phát minh ra Ethernet và Bill Gates, người đã đóng góp phiên bản nguyên thủy của Altair BASIC, sản phẩm đầu tiên của Microsoft. Fabrot cho biết, anh rất hào hứng để được thấy một bản sao nguyên bản của một trong những trò chơi PC đầu tiên có tên Zork, vốn được lưu trữ trong “viên nang thời gian”.

T.U

Tin cùng chuyên mục

Tin mới