Anthropic 用 Claude 破解 NIST ECDSA 标准中神秘常数的来源
密码学圈悬赏多年的谜题被 Claude 解开了:NIST 标准里的常数竟然只是用时间戳播种的随机数,过程推理很精彩。
NIST FIPS 186-2 标准中的 ECDSA 曲线常数多年来无人知晓来源,Go 语言 Crypto 包维护者 Filippo Valsorda 悬赏 12,288 美元征集答案。这些常数由 NSA 研究员 Jerry Solinas 生成,但原始代码和种子语句已遗失。Anthropic 用 Claude 分析后发现,常数来自 1997 年 5 月至 1998 年 4 月间以 Unix 时间戳作为种子的 lrand48 伪随机数生成器。Claude 还发现 NIST 只使用了 lrand48 输出的前 8 位。Anthropic 将奖金捐给 Internet Security Research Group,总奖金翻三倍至 36,864 美元。
Claude พบที่มาของค่าคงที่ในกระบวนการเข้ารหัส ECDSA พบเป็น PRNG ที่ตั้งค่าเริ่มต้นด้วยเวลา Body กระบวนการเข้ารหัสแบบ ECDSA เป็นกระบวนการเข้ารหัสที่ได้รับความนิยมอย่างสูงในช่วงหลัง โดยมาตรฐานถูกกำหนดโดย NIST ตามมาตรฐาน FIPS 186-2 แต่ปัญหาหนึ่งคือค่าคงที่ต่างๆ ในมาตรฐานนี้กลับไม่มีที่มาที่ไปว่ากำหนดจากอะไร ล่าสุด Anthropic ใช้ Claude หาที่มาของค่าคงที่เหล่านี้ได้แล้ว โดยพบว่าเป็นแค่เวลาที่ใส่ฟังก์ชันสุ่มเสมือน (pseudorandom number generator) ในช่วงหลัง Filippo Valsorda ผู้ดูแลแพ็กเกจ Crypto ในภาษา Go ประกาศรางวัล 12,288 ดอลลาร์ (12Ki$) สำหรับผู้ที่สามารถหาต้นกำเนิดของค่าคงที่ในมาตรฐานเหล่านี้ได้ ค่าคงที่เหล่านี้สร้างโดย Jerry Solinas นักวิจัยความปลอดภัยจาก NSA โดยเขาเคยเล่าว่าน่าจะแฮชมาจากประโยคภาษาอังกฤษสักอย่าง แต่ทำโค้ดและประโยคต้นทางหายไปแล้ว และ Jerry เสียชีวิตไปเมื่อปี 2023 Anthropic ให้ Claude ช่วยหาที่มาของค่าคงที่เหล่านี้ และพบว่ามันเป็นผลจากการรันฟังก์ชัน lrand48 โดยใช้ Unix timestamp ค่าถูกสร้างด้วยฟังก์ชันเดียวกันในช่วงเดือนพฤษภาคม 1997 จนถึงเมษายน 1998 Claude สังเกตพบว่าค่า seed ในมาตรฐานแบ่งเป็นชุด (word) 32 บิต จำนวน 5 ชุด และเมื่อดูค่า seed ของทุก curve พบว่ามี 4 ค่าจาก binary curve ที่ทุก word ขึ้นต้นด้วย 0 ทั้งหมด ทำให้น่าเชื่อได้ว่ากระบวนการสร้างค่านี้สุ่มไม่สมบูรณ์ และพฤติกรรมตรงกับ lrand48 ที่ให้ค่าเพียง 31 บิตทำให้บิตแรกกลายเป็น 0 จากนั้นก็หาค่า seed เริ่มต้นของ lrand48 ได้สำเร็จ จากนั้นจึงหาค่าเริ่มต้นของ prime curve และพบว่า NIST ใช้เพียง 8 บิตแรกของ lrand48 เท่านั้น Anthropic ขอมอบรางวัล 12,288 ดอลลาร์ให้ Internet Security Research Group ผู้ให้บริการ Let's Encrypt ทำให้ได้รางวัลจาก Valsorda สามเท่าตัวเป็น 36,864 ดอลลาร์ ที่มา - Anthropic lew Sat, 17/10/2026 - 19:58