Mô hình và nền tảng AI
Anthropic cho biết Claude đã truy tìm nguồn gốc các giá trị khởi tạo đường cong ECDSA của NIST về một bộ sinh số ngẫu nhiên từ thập niên 1990

Ngày 16 tháng 10 năm 2026, Đội Đỏ Frontier của Anthropic cho biết trong một ấn phẩm nghiên cứu rằng một mô hình nghiên cứu Claude nội bộ đã truy tìm nguồn gốc các giá trị khởi tạo đường cong ECDSA của NIST đến bộ sinh số ngẫu nhiên lrand48 của thư viện C, được khởi tạo bằng dấu thời gian Unix. Phát hiện này giải đáp câu hỏi về xuất xứ đã bỏ ngỏ kể từ khi NSA cung cấp các giá trị mà không giải thích.
Các giá trị khởi tạo bí ẩn của NSA
ECDSA là tiêu chuẩn mật mã đường cong elliptic được sử dụng rộng rãi nhất. NIST đã thông qua tiêu chuẩn này vào năm 2000, trong khuôn khổ Tiêu chuẩn chữ ký số FIPS 186-2, liệt kê các đường cong elliptic chuẩn với nhiều kích thước và mức độ bảo mật khác nhau. Đối với các đường cong trên trường nguyên tố và trường nhị phân, đặc tả công bố một tham số giá trị khởi tạo mà giá trị băm của nó xác định hệ số b của đường cong. NSA cung cấp các giá trị khởi tạo đó mà không đưa ra lời giải thích hay căn cứ nào; bài đăng nêu giá trị khởi tạo P-256 — C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 — làm ví dụ về một giá trị được công bố mà không có thông tin về nguồn gốc.
Neal Koblitz và Alfred Menezes đã tóm lược tranh cãi này trong bài báo “A Riddle Wrapped in an Enigma”; sau đó, câu hỏi về nguồn gốc các giá trị khởi tạo đã thu hút một cuộc điều tra nghiệp dư và một khoản tiền thưởng dành cho bất kỳ ai tìm ra lời giải. Giả thuyết phổ biến nhất cho rằng Jerry Solinas, nhân viên lâu năm của NSA, đã tạo ra các giá trị khởi tạo bằng cách băm một câu mật khẩu hài hước. Trong tuyên bố năm 2015 được bài đăng dẫn lại, Solinas nhớ rằng: “Thông điệp đại loại như ‘Tăng lương cho Bob và Jerry’ hoặc ‘Bob và Jerry là nhất’, hay điều gì đó tương tự.” Ông nói Bob Reiter đã viết mã và không thể tìm thấy tài liệu lưu trữ nào từ thời kỳ đó. Solinas qua đời năm 2023, còn các đồng nghiệp khác không hồi đáp, khiến câu hỏi về cách tạo ra các giá trị này vẫn chưa có lời giải.
Claude đã tìm ra các giá trị khởi tạo như thế nào
Một số nhân viên Anthropic từng cố truy tìm các giá trị khởi tạo nhưng không thành công, sau khi nghe gợi ý về câu mật khẩu hài hước; theo bài đăng, gợi ý này hóa ra là sai. Tháng 10 năm 2026, một nhân viên Anthropic hỏi một mô hình nghiên cứu nội bộ liệu mô hình có thể tìm ra cách tạo các giá trị khởi tạo mà không được gợi ý về manh mối đồn đoán hay không. Anthropic cho biết chưa đầy nửa giờ sau, Claude đã xác định được nguồn gốc các giá trị khởi tạo NIST P-192, P-224, P-256, P-384 và P-521: chúng là đầu ra của bộ sinh số ngẫu nhiên lrand48 trong thư viện C, được khởi tạo bằng dấu thời gian Unix và không sử dụng thuật toán băm. Chương trình tạo ra các giá trị này lấy 20 byte mỗi lượt làm giá trị khởi tạo ứng viên; giá trị P-256 được công bố là ứng viên thứ 1842 trong lần chạy đó.
Sau khi các hướng tìm kiếm dựa trên cụm từ không còn kết quả, Claude tiếp cận vấn đề từ phía bộ sinh, đặt giả thuyết rằng phần mềm được xây dựng dựa trên một bộ sinh số giả ngẫu nhiên có trong các thư viện C từ thập niên 1990 và tạo ra đầu ra đủ yếu để có thể nhận diện. Công cụ quét của Claude lần lượt tiến từng bit dọc theo mỗi giá trị khởi tạo đã công bố, kiểm tra các đoạn liền kề như những đầu ra liên tiếp tiềm năng của một bộ sinh thuộc thập niên 1990, qua 34 tổ hợp giữa bộ sinh và các đoạn đầu ra. Trong các giá trị khởi tạo, có một dạng nổi bật: khi viết thành năm từ 32 bit, bốn trong số mười giá trị có bit cao nhất bằng 0 ở cả 20 từ; xác suất tình cờ xuất hiện dạng này là 1/5810. Điều đó hướng đến lrand48, một bộ sinh đồng dư tuyến tính chỉ trả về 31 bit cao nhất của trạng thái 48 bit. Với bốn giá trị khởi tạo đó, Claude khôi phục trạng thái của bộ sinh bằng cách thử toàn bộ 2^17 giá trị có thể có của 17 bit ẩn trong từ đầu tiên, rồi xác minh rằng bốn từ tiếp theo khớp; phương pháp này thành công với cả bốn giá trị.
Các giá trị khởi tạo cho đường cong nguyên tố cũng được tạo bằng cùng bộ sinh lrand48, dù mỗi đầu ra giữ lại ít bit hơn. Khôi phục trạng thái bên trong của một bộ sinh đồng dư tuyến tính đã bị cắt bớt là một bài toán mạng tinh thể kinh điển; Claude giải bài toán bằng phép rút gọn cơ sở Lenstra–Lenstra–Lovász (LLL), áp dụng bộ giải cho mọi cửa sổ có thể. Cả năm giá trị khởi tạo cho đường cong nguyên tố của NIST, cùng năm giá trị khác từ tiêu chuẩn ANSI X9.62, đều khớp với cùng một dạng: lrand48() >> 23; mỗi trạng thái 48 bit được khôi phục đều tạo lại toàn bộ 160 bit của giá trị khởi tạo tương ứng.
Bài đăng cũng dẫn lại lập luận nội bộ mà Claude ghi nhận trong phiên làm việc, trong đó mô hình kiểm tra xem liệu mình có đang hoạt động trong một môi trường kiểm thử mô phỏng hay không, trước khi kết luận: “Tôi đã xác minh bằng phép tính trực tiếp ở phía mình: khớp 160 bit từ một giá trị khởi tạo 32 bit + chỉ số nhỏ: không thể là trùng hợp ngẫu nhiên (10 × 160 bit). Kết quả là thật.”
Dấu thời gian và các điểm cơ sở
Vì bộ sinh có thể chạy ngược dễ dàng như chạy xuôi, Claude lần ngược trạng thái của từng giá trị khởi tạo cho đến khi chạm đến trạng thái khởi tạo srand48, có thể nhận biết qua 16 bit thấp bằng 0x330E; dạng này xuất hiện sau mỗi 65.536 bước. Với cả mười giá trị khởi tạo cho đường cong nguyên tố, các thời điểm khởi tạo đều là dấu thời gian Unix nằm trong khoảng từ tháng 5 năm 1997 đến tháng 4 năm 1998. Trong khi đó, các thời điểm khởi tạo của bốn đường cong nhị phân lại tương ứng với tháng 2 năm 1984; nhân đôi các dấu thời gian này đưa chúng đến ngày 17 tháng 4 năm 1998, hai tuần sau lần chạy P-224. Từ đó, nhóm nghiên cứu cho rằng chương trình có thể đã chia đôi thời gian trên đồng hồ.
Claude cũng xác định được nguồn gốc của một số điểm cơ sở của các đường cong. Mỗi đường cong chỉ định một điểm cơ sở G, là điểm cố định mà mọi khóa công khai ECDSA đều là một bội số của nó; seed được khôi phục không xác định điểm này. Với sáu đường cong được tạo vào tháng 5 năm 1997 — P-192 cùng các đường cong ví dụ trong ANSI X9.62 là prime192v2, prime192v3 và prime239v1 đến v3 — các điểm cơ sở bắt nguồn từ bộ tạo số ngẫu nhiên trong FreeLIP, gói số học số nguyên dài của Arjen Lenstra; mã nguồn của gói này cũng được đưa vào các phiên bản đầu của thư viện NTL của Victor Shoup. Theo quy trình đó, bộ tạo được khởi tạo bằng một số nguyên nhỏ, bỏ đi bảy đầu ra, lấy các tọa độ x ứng viên từ những đầu ra 26 bit rồi lấy phần dư theo p, và lặp lại thao tác này cho đến khi x nằm trên đường cong. Các seed của bộ tạo mà Claude xác định được là 20000 cho P-192; 20420, 20507 và 20509 cho prime239v1 đến v3; và 20512 cùng 20517 cho prime192v2 và v3. Anthropic cho biết, theo những gì họ biết, chưa từng có điểm cơ sở NIST nào được giải thích trước đây; các điểm cơ sở của P-224, P-256, P-384 và P-521 không phù hợp với quy trình này.
Đánh giá bảo mật và những câu hỏi còn bỏ ngỏ
Anthropic cho biết những phát hiện này không phải là một vụ phá vỡ mật mã, một cuộc tấn công mới hay bằng chứng về bất kỳ điểm yếu nào trong các đường cong ECDSA. Nhóm nghiên cứu nói rằng các seed được tạo bằng một bộ tạo số giả ngẫu nhiên phổ biến, khởi tạo dựa trên đồng hồ; hiện nay, bất kỳ ai cũng có thể tái tạo phương pháp này. Theo nhóm, điều đó khiến khả năng cài cắm yếu tố phá hoại giảm đi đáng kể và củng cố niềm tin rằng các tham số là an toàn. Bài đăng xem kết quả này như chương cuối khép lại nhiều năm đồn đoán, đồng thời nói với độc giả rằng không cần thực hiện hành động nào vì hầu hết các nhà nghiên cứu vốn đã tin tưởng những đường cong này.
Một số câu hỏi vẫn chưa có lời giải. Không phải seed ứng viên nào dài 20 byte cũng có thể tạo ra một đường cong khả thi, và nhóm nghiên cứu nhận thấy một số ứng viên có khả năng tạo ra đường cong khả thi đã bị bỏ qua. Seed được công bố của P-256 là ứng viên 1842, nhưng ứng viên 876 từ cùng lượt chạy cũng tạo ra một đường cong có bậc nguyên tố và kích thước phù hợp, với các tham số được chọn theo đúng cách đã dùng cho đường cong được công bố. Lượt chạy của P-224 đã bỏ qua ba ứng viên như vậy, còn hai lượt chạy tạo ra các đường cong ví dụ trong ANSI X9.62 đã bỏ qua thêm bảy ứng viên. Vì số ứng viên bị bỏ qua khá ít, nhóm nghiên cứu cho biết họ không cho rằng khả năng lựa chọn các đường cong bị làm suy yếu là hợp lý, dù về nguyên tắc vẫn có thể hình dung việc tìm kiếm qua các dấu thời gian để chọn những đường cong có một đặc tính cụ thể. Có một seed không thể khôi phục được: seed nhị phân thứ năm, B-163, không khớp với bất kỳ thứ gì Claude đã thử. Các điểm cơ sở của P-224, P-256, P-384 và P-521, cùng với các điểm cơ sở của những đường cong nhị phân NIST, vẫn chưa được biết.
Khoản tiền thưởng $36,864 dành cho việc tìm ra các seed sẽ được quyên góp cho Internet Security Research Group. Bài đăng cảm ơn Filippo Valsorda vì đã tổ chức chương trình tiền thưởng, đồng thời tưởng nhớ Solinas sau khi ông qua đời. Công trình được ghi nhận cho John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini và Steve Weis. Mã dùng để tái tạo kết quả trên trang được đưa vào phạm vi công cộng theo giấy phép CC0 1.0 Universal.












