กระบวนการเข้ารหัสแบบ 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
on