Tin AITin tức

Claude tìm nguồn gốc ECDSA: dấu vết từ đồng hồ

Mình vừa đọc thông báo của Anthropic về việc Claude tìm nguồn gốc ECDSA trong chưa đầy nửa giờ, và đây là chuyện anh em nên biết. ECDSA là chuẩn chữ ký số được dùng rộng rãi, và người ta từng nghi các tham số có cửa hậu vì NSA cung cấp mà không giải thích nguồn gốc. Hãng nói người dùng không cần thay đổi cách làm sau phát hiện này.

Nếu anh em không làm mảng mật mã thì cứ yên tâm, không phải đổi gì. Anh em làm bảo mật thì đáng đọc thêm, vì hãng nói kết quả này khiến nghi ngờ về cửa hậu trong seed bớt thuyết phục.

Claude tìm nguồn gốc ECDSA từ đồng hồ

Theo thông báo của hãng, mấy cái seed tìm được hoá ra đều ra từ lrand48, một bộ sinh số giả ngẫu nhiên có sẵn trong thư viện C thời đó. Anh em cứ hiểu seed là giá trị xác định một phần thông số đường cong.

Vòng elip trong suốt nằm cạnh những hạt đồng rải trên mặt bàn tối màu.

Chương trình khởi tạo bộ sinh số bằng timestamp (giờ trên đồng hồ máy, ghi thành một con số), rồi mỗi lượt lấy 20 byte làm một seed ứng viên. Lượt đầu lấy nhóm byte đầu tiên, lượt kế tiếp lấy nhóm kế tiếp.

P-256 là một trong các đường cong chuẩn mà ECDSA dùng để tạo chữ ký số. Với đường cong này, seed đã công bố xuất hiện ở lượt 1.842.

Điểm mình thấy đáng đọc là Claude đổi hướng tìm kiếm, thay vì tiếp tục đoán câu đùa từng xuất hiện trong lời kể cũ về cách tạo ra các seed. Nó đoán phần mềm hồi đó dùng một bộ sinh số cũ của thư viện C, vì loại này yếu đến mức nhìn đầu ra là nhận ra được. Rồi nó dò dấu vết của bộ sinh số trên các seed đã công bố.

Anh em có thể đọc code tái tạo trong thông báo của hãng. Theo hãng, việc tái tạo được seed từ bộ sinh số khởi tạo bằng thời điểm khiến khả năng người tạo chuẩn cố ý cài điểm yếu trở nên ít thuyết phục hơn.

Log chạy thử chưa xác nhận đầu ra

Log ghi mình gửi prompt qua Claude Code, bằng gói thuê bao.

Cây cầu cơ khí còn thiếu một nhịp trước khi nối tới bệ đá bên kia.

Mình yêu cầu Claude Sonnet viết code Python mô phỏng bộ sinh số, in các giá trị đầu rồi giải thích vì sao có thể dò seed từ thời điểm. Mình không đưa file hay công cụ gì kèm theo, nên model chỉ viết code chứ không chạy được.

Theo log, Claude Sonnet trả lời sau 20,7 giây tính từ yêu cầu đó. Câu trả lời của Claude Sonnet dài 328 chữ, gồm code mô phỏng và phần giải thích, nhưng kết quả in ra chỉ là minh họa có dấu chấm lửng.

Model bảo người đọc tự chạy code để lấy các giá trị chính xác. Anh em đừng chép số minh họa. Phần trả lời đó chưa chứng minh được code chạy đúng, vì log không có kết quả chạy thật, chỗ kết quả vẫn để trống.

Lần yêu cầu nhỏ này chưa tái hiện việc tìm seed trong nghiên cứu. Mình cũng không lấy thời gian trả lời của lần này để so trực tiếp với thời gian hãng công bố, vì việc viết đoạn mô phỏng khác với lần tìm kiếm ấy.

Người bình luận còn tranh luận về cách chọn seed

Trong phần thảo luận, mình thấy jamienk ấn tượng với sự kiên trì của model khi tiếp tục tìm kiếm ở những chỗ dễ bị bỏ qua, thay vì bỏ sót khả năng nào đó. Đó là cảm nhận của người bình luận, anh em nên đọc đúng như vậy.

Người bình luận fidotron phân biệt cách tạo seed với cách chọn seed. Theo ý kiến của người này, việc tái tạo được seed chưa trả lời được vì sao người ta chọn ứng viên cuối cùng, nhất là khi các ứng viên bị loại chưa rõ.

Bạn slowin thì lo rằng người dùng công khai có thể bị chặn khi yêu cầu model làm nghiên cứu tương tự, trong khi hãng có thể tự làm việc đó. Mình chưa có bằng chứng kiểm tra nhận định về việc bị chặn.

Hãng vẫn còn những câu chưa trả lời

Theo thông báo, nhóm nghiên cứu thấy có ứng viên tạo được đường cong phù hợp nhưng vẫn bị bỏ qua, nên nguồn gốc seed chưa giải thích hết quá trình lựa chọn. Họ chưa biết người tạo chuẩn đã dùng thêm tiêu chí nào. Việc bỏ qua cũng có thể là hệ quả ngoài ý muốn.

Hãng cũng bó tay với một seed thuộc nhóm đường cong nhị phân và nguồn gốc một số điểm cơ sở, tức điểm cố định dùng để tạo các khóa công khai. Vì còn mấy chỗ chưa rõ này, mình sẽ không vội kết luận chuyện có điểm yếu hay không.

Hãng nói lần tìm kiếm thành công dùng một model nghiên cứu nội bộ, nhưng thông báo không cung cấp tên bản công khai tương ứng để anh em chọn rồi lặp lại. Anh em có thể đọc code tái tạo mà hãng đã công bố.

Khi nhờ model kiểm chứng kiểu này, anh em đòi nó đưa code kèm kết quả chạy thật. Anh em tự chạy lại code mà hãng đã công bố để đối chiếu seed. Mình chưa coi một lời giải thích nghe hợp lý là kết quả đã được xác nhận, nhất là khi model còn để trống phần mà anh em cần chạy để kiểm tra.

Nguồn tham khảo

  1. ecdsa-curve-origins · anthropic.com · Công bố chính thức · đọc ngày
  2. Claude reveals ECDSA curve origins (thảo luận trên Hacker News) · Hacker News · Tin tức · đọc ngày
  3. Lần mình chạy thử ngày 21/10/2026: Claude reveals ECDSA curve origins · quanbi.dev · Mình tự thử · đọc ngày

Bài này thế nào?

Chia sẻ

XFacebook

Ảnh đại diện của chủ trang quanbi.dev

Về mình

Quân Bi · Người viết

Xem thêm →

Bình luận (0)

Chưa có bình luận nào. Bạn mở hàng nhé.

Viết bình luận