Claude giải mã bí ẩn 25 năm về nguồn gốc các đường cong ECDSA của NIST
Một nhân viên Anthropic đã hỏi mô hình nghiên cứu nội bộ Claude về cách các hạt giống (seed) của đường cong ECDSA được tạo ra, và chỉ trong chưa đầy 30 phút, AI này đã tìm ra lời giải cho bí ẩn tồn tại suốt 25 năm trong giới mật mã học. Kết quả cho thấy các seed không hề đến từ hàm băm bí ẩn nào, mà chỉ là đầu ra của bộ sinh số ngẫu nhiên lrand48 trong thư viện C, khởi tạo bằng dấu thời gian Unix.

Claude giải mã bí ẩn 25 năm về nguồn gốc các đường cong ECDSA của NIST
Một câu hỏi tưởng chừng không có lời giải trong giới mật mã học suốt 25 năm qua vừa được hé lộ — không phải bởi một chuyên gia con người, mà bởi Claude, mô hình AI của Anthropic. Bí ẩn xoay quanh cách Cơ quan An ninh Quốc gia Mỹ (NSA) tạo ra các tham số "seed" cho những đường cong elliptic được chuẩn hóa trong ECDSA, tiêu chuẩn mật mã được sử dụng rộng rãi nhất hiện nay.
Câu trả lời hóa ra lại đơn giản đến bất ngờ: đó chỉ là dấu thời gian Unix đưa qua một bộ sinh số ngẫu nhiên yếu có từ thập niên 1990, chứ không phải bất kỳ thuật toán bí mật hay cửa hậu nào.
ECDSA và nỗi hoài nghi kéo dài hàng thập kỷ
ECDSA (Elliptic Curve Digital Signature Algorithm) là chuẩn mật mã đường cong elliptic được dùng phổ biến nhất, được NIST chấp nhận vào năm 2000 trong tiêu chuẩn chữ ký số FIPS 186-2. Tiêu chuẩn này liệt kê một loạt đường cong với kích thước và mức bảo mật khác nhau.
Điều khiến cộng đồng mật mã học băn khoăn suốt nhiều năm nằm ở tham số seed đi kèm mỗi đường cong. Giá trị băm của seed được dùng để xác định hệ số b của đường cong, nhưng chính seed lại được NSA cung cấp mà không kèm bất kỳ lời giải thích nào. Chẳng hạn, seed của đường cong NIST P-256 là C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 — không ai biết nó từ đâu mà ra.
Năm 2015, hai nhà nghiên cứu Neal Koblitz và Alfred Menezes đã công bố bài viết nổi tiếng có tên "A Riddle Wrapped in an Enigma", tổng hợp lịch sử và những lo ngại xung quanh các giá trị seed. Nghi vấn lớn nhất là: liệu NSA có cố tình chọn seed để tạo ra đường cong chứa cửa hậu hay điểm yếu có chủ đích hay không? Một cuộc điều tra nghiệp dư cùng giải thưởng cho ai tìm ra nguồn gốc seed đã được phát động, nhưng bế tắc trong nhiều năm.
Manh mối hấp dẫn nhất đến từ chính Jerry Solinas, cựu nhân viên lâu năm của NSA, người từng chia sẻ rằng ông tin các seed được tạo bằng cách băm một cụm từ mang tính đùa cợt — đại loại như "Give Bob and Jerry a raise" hay "Bob and Jerry rule". Nhưng Solinas qua đời năm 2023, và các đồng nghiệp cùng thời cũng không còn nhớ chi tiết. Manh mối tưởng chừng đã đi vào ngõ cụt.
Sơ đồ minh họa quá trình tìm ra nguồn gốc các seed đường cong ECDSA
Claude phá giải bí ẩn trong chưa đầy 30 phút
Nhiều nhân viên Anthropic từng thử truy tìm các seed dựa trên manh mối về "cụm từ đùa cợt" nhưng đều thất bại — hóa ra manh mối đó là sai.
Vào tháng 10 năm 2026, một nhân viên tò mò đã hỏi mô hình nghiên cứu nội bộ xem liệu nó có thể tìm ra cách các seed được tạo ra hay không, mà không gợi ý bất kỳ manh mối nào. Trong chưa đầy nửa giờ, Claude đã tìm ra nguồn gốc của cả năm seed đường cong nguyên tố: P-192, P-224, P-256, P-384 và P-521.
Phát hiện gây bất ngờ: các seed không hề là kết quả của bất kỳ hàm băm nào. Chúng đơn thuần là đầu ra của lrand48 — bộ sinh số ngẫu nhiên trong thư viện C — được khởi tạo bằng dấu thời gian Unix.
Cách hoạt động rất đơn giản: thuật toán lấy mẫu byte từ bộ sinh số ngẫu nhiên (RNG) đã khởi tạo bằng dấu thời gian Unix (t), lặp lại n lần. Mỗi lần rút ra 20 byte làm seed ứng viên. Với đường cong P-256, seed được chuẩn hóa tương ứng với ứng viên thứ 1842.
Điều này có ý nghĩa gì với bảo mật?
Cần khẳng định rõ: đây không phải một lỗ hổng mật mã, một cuộc tấn công mới, hay điểm yếu của các đường cong ECDSA. Ngược lại, phát hiện này khiến giới chuyên gia tin tưởng hơn rằng các đường cong đã được chọn mà không hề chứa cửa hậu hay yếu điểm có chủ đích.
"Các seed được tạo ra theo một cách rất đơn giản: một bộ sinh số giả ngẫu nhiên phổ biến khởi tạo từ đồng hồ hệ thống, và giờ đây bất kỳ ai cũng có thể tái tạo lại. Điều đó để lại rất ít khoảng trống cho sự phá hoại, và chúng ta có thể yên tâm rằng các tham số này là an toàn."
Trong nhiều năm, các giá trị seed được trình cho NIST mà không kèm lời giải thích, khiến người ta tự hỏi liệu chúng có được chọn để cài cửa hậu hay không. Việc phát hiện ra chúng chỉ là đầu ra của một RNG dựa trên đồng hồ — thứ tất cả mọi người đều tái tạo được — khiến kịch bản phá hoại trở nên khó xảy ra hơn nhiều.
Minh họa kỹ thuật về cách Claude phân tích các seed
Claude đã tìm ra như thế nào?
Các tìm kiếm theo cụm từ đồn đoán trước đó đều thất bại. Claude chọn một hướng tiếp cận hoàn toàn khác: dự đoán cách phần mềm tạo đường cong phải hoạt động như thế nào.
Claude phỏng đoán phần mềm dùng một bộ sinh số giả ngẫu nhiên (PRNG) đi kèm các thư viện C thập niên 1990. Những PRNG cũ này yếu đến mức có thể nhận diện được đầu ra của chúng — và việc nhận diện sẽ tiết lộ PRNG nào đã được dùng, thậm chí giúp khôi phục trạng thái khởi tạo ban đầu.
Claude viết một bộ quét trượt dọc từng seed đã công bố, từng bit một, kiểm tra xem các khối liền kề có phải là đầu ra liên tiếp của một bộ sinh thời thập niên 1990 hay không. Quá trình quét bao gồm 34 tổ hợp giữa bộ sinh và các lát cắt đầu ra.
Sau đó Claude nhận thấy một dấu hiệu đặc trưng ở các bit cao nhất của một số seed: chúng đều bằng 0. Viết dưới dạng năm từ 32-bit, có bốn trong số mười seed có bit cao nhất bằng 0 ở cả 20 từ. Xác suất điều này xảy ra ngẫu nhiên chỉ là 1/5810 — một dấu hiệu không thể nhầm lẫn của bộ sinh đồng dư tuyến tính lrand48, vốn chỉ trả về 31 bit cao của trạng thái 48 bit.
Để khôi phục trạng thái, Claude lấy từ đầu tiên, thử tất cả 2¹⁷ giá trị của 17 bit ẩn, rồi kiểm tra xem bốn từ tiếp theo có khớp không. Cách này thành công với cả bốn seed đang xét.
Với các seed đường cong nguyên tố, chúng đến từ cùng bộ sinh lrand48 nhưng giữ ít bit hơn mỗi đầu ra. Claude phải khôi phục trạng thái nội bộ của PRNG từ những bit đó — hóa ra đây là một bài toán lattice kinh điển, giải bằng thuật toán rút gọn cơ sở Lenstra–Lenstra–Lovász (LLL). Vì không biết seed hiển thị bit nào, Claude chạy bộ giải trên mọi cửa sổ.
Kết quả: năm seed đường cong nguyên tố của NIST cộng thêm năm seed từ chuẩn ANSI X9.62 đều có cùng một mẫu lrand48() >> 23. Mỗi trạng thái 48-bit khôi phục được tái tạo lại toàn bộ 160 bit seed của nó — điều không thể xảy ra nếu chỉ là trùng hợp ngẫu nhiên.
Bộ sinh đồng dư tuyến tính này chạy ngược dễ như chạy xuôi, nên với mỗi seed, Claude lùi trạng thái cho đến khi nó về dạng được khởi tạo bởi srand48. Với cả mười seed đường cong nguyên tố, mọi giá trị khởi tạo srand48 đều là dấu thời gian Unix tương ứng với các ngày từ tháng 5 năm 1997 đến tháng 4 năm 1998. Bốn giá trị khởi tạo của đường cong nhị phân đọc ra tháng 2 năm 1984, nhưng khi nhân đôi dấu thời gian thì khớp với ngày 17 tháng 4 năm 1998 — có thể chương trình đã chia đôi giá trị đồng hồ.
Minh họa quá trình khôi phục trạng thái PRNG bằng thuật toán LLL
Claude còn tìm ra cả các điểm cơ sở (base point)
Chưa dừng lại ở đó. Mỗi đường cong còn đi kèm một điểm cơ sở G — điểm cố định mà mọi khóa công khai ECDSA đều là bội số của nó. Seed không xác định được G, nên câu hỏi tiếp theo là: các điểm cơ sở này được tạo ra như thế nào?
Trong lúc kiểm tra seed, Claude cũng tìm ra nguồn gốc của một số điểm cơ sở. Điểm cơ sở của sáu đường cong được tạo vào tháng 5 năm 1997 (gồm P-192 và năm đường cong ví dụ ANSI X9.62: prime192v2, prime192v3, prime239v1 đến v3) đến từ bộ sinh số ngẫu nhiên trong FreeLIP, gói số học số nguyên lớn của Arjen Lenstra. Các phiên bản đầu của thư viện NTL do Victor Shoup phát triển cũng dùng chung đoạn mã này.
Công thức rất đơn giản:
- Khởi tạo bộ sinh bằng một số nguyên nhỏ.
- Bỏ qua bảy đầu ra đầu tiên.
- Tạo các tọa độ x ứng viên từ đầu ra 26-bit, giảm theo modulo p.
- Lặp lại bước 3 cho đến khi x nằm trên đường cong.
Claude tìm ra các giá trị seed của bộ sinh là 20000 cho P-192, 20420, 20507 và 20509 cho prime239v1 đến v3, và 20512, 20517 cho prime192v2 và v3. Theo những gì được biết, chưa từng có điểm cơ sở NIST nào được giải thích trước đây.
Những câu hỏi còn bỏ ngỏ
Không phải mọi thứ đều đã sáng tỏ. Có một số điểm còn chưa có lời giải:
- Không phải mọi seed ứng viên đều tạo được đường cong khả dụng và một số đường cong tiềm năng đã bị bỏ qua. Với P-256, seed được công bố là ứng viên 1842, nhưng ứng viên 876 cùng lượt chạy cũng cho một đường cong bậc nguyên tố cùng kích thước. P-224 bỏ qua ba đường cong như vậy, và hai lượt chạy của ANSI X9.62 bỏ qua thêm bảy đường cong nữa. Không ai biết tiêu chí lựa chọn là gì.
- Một seed vẫn chưa thể khôi phục: seed nhị phân thứ năm, B-163, không khớp với bất kỳ phương án nào Claude đã thử.
- Không rõ điểm cơ sở của P-224, P-256, P-384 và P-521 được tạo ra như thế nào, cũng như các đường cong nhị phân của NIST.
Dù vậy, vì số ứng viên bị bỏ qua rất ít, nhóm nghiên cứu không tin rằng có khả năng các đường cong yếu đã được chọn một cách có chủ đích — bởi lẽ điều đó ngụ ý rằng đường cong yếu là phổ biến và dễ tìm thấy.
Giải thưởng và đội ngũ thực hiện
Phần thưởng 36.864 USD cho việc tìm ra các seed sẽ được quyên tặng cho Internet Security Research Group.
Công trình này được thực hiện tại Anthropic bởi John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini và Steve Weis. Nhóm cũng gửi lời tri ân tới cố nhà nghiên cứu Jerry Solinas — người từng bị gán mác "nhân vật phản diện NSA" một cách hài hước — và cảm ơn Filippo Valsorda vì đã tổ chức Giải thưởng Tìm kiếm Seed Đường cong Elliptic NIST.
Toàn bộ mã nguồn tái tạo các seed và các điểm cơ sở được công bố mở theo giấy phép CC0 1.0 Universal, cho phép bất kỳ ai kiểm chứng lại phát hiện này.
Ý nghĩa đối với cộng đồng công nghệ Việt Nam
Với các lập trình viên và kỹ sư bảo mật tại Việt Nam, câu chuyện này mang đến hai bài học đáng chú ý.
Thứ nhất, nó nhấn mạnh tầm quan trọng của tính minh bạch trong các tiêu chuẩn mật mã. Việc một tham số bí ẩn tồn tại suốt 25 năm đã gieo rắc hoài nghi trên toàn ngành — và sự hoài nghi đó chỉ được giải tỏa khi có người tái tạo được nguồn gốc của nó.
Thứ hai, đây là minh chứng rõ ràng cho sức mạnh của AI trong nghiên cứu khoa học cơ bản. Một bài toán từng khiến các chuyên gia hàng đầu bế tắc suốt nhiều thập kỷ đã được giải quyết trong vòng chưa đầy 30 phút nhờ khả năng suy luận linh hoạt và kiểm chứng chéo của mô hình AI.
"Các độc giả nên xem đây như một chương kết thú vị, khép lại nhiều năm đồn đoán. Không có hành động nào cần thực hiện hay điều gì phải làm khác đi. Hầu hết các nhà nghiên cứu vốn đã tin tưởng các đường cong này."
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026
Công nghệ
Google ra mắt EnvHarness: Khung huấn luyện giúp AI tự tiến hóa trong môi trường động
16 tháng 10, 2026