คำถามที่ค้างคาอยู่หลังจากบุคคลเพียงคนเดียวที่อาจตอบได้เสียชีวิตลงในปี 2023 กลับมีคำตอบที่แสนธรรมดา นั่นคือตัวสร้างตัวเลขสุ่มจากยุค 1990 ที่ตั้งค่าเริ่มต้นด้วยนาฬิกา ผู้เขียนระบุว่าคำตอบนั้นทำให้พวกเขายิ่งมั่นใจมากขึ้นว่าเส้นโค้งถูกเลือกมาอย่างซื่อสัตย์ ไม่ใช่น้อยลง
บทสรุปสำหรับผู้บริหาร
- ECDSA ถูกนำมาใช้โดย NIST ในปี 2000 ในฐานะส่วนหนึ่งของมาตรฐานลายมือชื่อดิจิทัล FIPS 186-2 ข้อกำหนดได้เผยแพร่พารามิเตอร์ "seed" ซึ่งค่าแฮชของมันถูกใช้เพื่อนิยามสัมประสิทธิ์ b ของเส้นโค้ง โดย NSA เป็นผู้ส่งมอบค่า Seed เหล่านี้โดยไม่มีคำอธิบายหรือเหตุผลประกอบใดๆ
- ในเดือนตุลาคม 2026 พนักงานของ Anthropic คนหนึ่งได้ถามโมเดลวิจัยภายในให้ลองหาว่าค่า Seed เหล่านั้นถูกสร้างขึ้นมาอย่างไร โดยไม่ได้ชี้เป้าใบ้ให้ ในเวลาไม่ถึงครึ่งชั่วโมง Claude พบว่าไม่มีค่า Seed ตัวใดเป็นผลลัพธ์จากการแฮชเลย พวกมันคือผลลัพธ์ของ lrand48 ซึ่งเป็นตัวสร้างตัวเลขสุ่มเทียมทั่วไปที่ตั้งค่าเริ่มต้นจากนาฬิกา
- ข้อค้นพบนี้ไม่ใช่การเจาะทำลายระบบรหัสลับ การโจมตีรูปแบบใหม่ หรือจุดอ่อนในเส้นโค้ง ECDSA ผู้เขียนระบุว่าสิ่งนี้ทำให้พวกเขายิ่งมั่นใจมากขึ้นว่าเส้นโค้งถูกเลือกมาโดยไม่มีช่องโหว่ลับ (backdoors) หรือจุดอ่อนที่จงใจใส่ไว้
- นอกจากนี้ Claude ยังอธิบายที่มาของจุดฐานของเส้นโค้งหกเส้นจากเดือนพฤษภาคม 1997 ว่ามาจากตัวสร้างตัวเลขสุ่มใน FreeLIP ซึ่งเป็นแพ็กเกจเลขคณิตจำนวนเต็มขนาดยาวของ Arjen Lenstra เท่าที่ผู้เขียนทราบ ยังไม่เคยมีจุดฐานใดของ NIST ที่ได้รับการอธิบายมาก่อน
- คำถามที่ยังคงเปิดกว้างได้แก่ จุดฐานของ P-224, P-256, P-384 และ P-521 ถูกเลือกมาอย่างไร และมีเกณฑ์ใดหรือไม่ที่อยู่เบื้องหลังการข้ามเส้นโค้งตัวเลือกบางเส้นไป
สัมประสิทธิ์ที่ดูเหมือนมีที่มาและค่า Seed ที่ไม่มีใครอธิบายได้ #
ECDSA ถูกนำมาใช้โดย NIST ในปี 2000 ในฐานะส่วนหนึ่งของมาตรฐานลายมือชื่อดิจิทัล FIPS 186-2 ข้อกำหนดสำหรับเส้นโค้งของมาตรฐานนี้มีพารามิเตอร์ "seed" ซึ่งค่าแฮชของมันถูกใช้เพื่อนิยามสัมประสิทธิ์ b ของเส้นโค้ง บนหน้ากระดาษ นั่นคือการออกแบบที่สร้างความอุ่นใจ ข้อโต้แย้งก็คือ หากสัมประสิทธิ์ออกมาจากค่าแฮชของค่า Seed ที่เผยแพร่ต่อสาธารณะ ย่อมไม่มีใครสามารถปรับแต่งเส้นโค้งด้วยมือได้
แต่ข้อโต้แย้งนั้นจะดีได้ก็ต่อเมื่อตัวค่า Seed เองโปร่งใสด้วย ค่า Seed เหล่านี้ถูกจัดเตรียมโดย NSA โดยไม่มีคำอธิบายหรือเหตุผลประกอบใดๆ และช่องว่างตรงนั้นก็คือปัญหาทั้งหมด ฟังก์ชันแฮชเป็นประตูทางเดียว มันพิสูจน์ได้ว่าสัมประสิทธิ์ตามมาจากค่า Seed จริง แต่ไม่ได้บอกอะไรเลยว่าค่า Seed มาจากไหน ตลอดหลายปีที่ผ่านมา ค่า Seed เหล่านี้จึงวางอยู่ในมาตรฐานในฐานะค่าคงที่ที่ไร้คำอธิบาย
เคยมีเรื่องเล่าที่มาช่วยเติมเต็มช่องว่างนั้น เรื่องเล่าฉบับที่เป็นที่รู้จักมากที่สุดระบุว่า Jerry Solinas พนักงานเก่าแก่ของ NSA ได้สร้างค่า Seed เหล่านั้นขึ้นมาจากค่าแฮชของวลีรหัสผ่านขำขัน (humorous passphrase) ซึ่งแหล่งข้อมูลระบุในเวลาต่อมาว่าเรื่องนี้ไม่เป็นความจริง เรื่องเล่าทำนองนั้นมักจะได้รับความเชื่อถือเพราะมีความจำเพาะเจาะจงและมีเสน่ห์นิดๆ อีกทั้งไม่มีใครสามารถโต้แย้งได้ แต่มันไม่เพียงพอที่จะใช้เป็นหลักฐาน ผลในทางปฏิบัติคือไม่มีใครสามารถตรวจสอบข้อกล่าวอ้างนั้นได้ และการค้นหาวลีดังกล่าวที่สร้างขึ้นจากข่าวลือก็คว้าน้ำเหลวมาโดยตลอด
คนที่ควรไปถามที่สุดก็คือ Solinas แต่ Jerry เสียชีวิตลงในปี 2023 และเพื่อนร่วมงานคนอื่นๆ ในยุคนั้นก็ไม่ได้ตอบกลับ นั่นทำให้คำถามที่ว่าค่า Seed เหล่านี้มีที่มาอย่างไรตั้งแต่แรกยังคงเปิดกว้างอยู่
ผมมองว่านี่คือวิธีที่ถูกต้องในการมองสถานการณ์นี้: คำถามเรื่องที่มาของพารามิเตอร์ที่ต้องพึ่งพาความทรงจำของคนเพียงไม่กี่คน เป็นโครงสร้างที่เปราะบางเกินไปสำหรับมาตรฐานที่เป็นรากฐานของลายมือชื่อดิจิทัล สิ่งที่น่าสนใจเกี่ยวกับเหตุการณ์ที่เกิดขึ้นถัดมาก็คือ มันไม่จำเป็นต้องพึ่งพาความทรงจำเหล่านั้นเลย คำตอบวางรออยู่แล้วในค่า Seed ที่เผยแพร่ต่อสาธารณะ รอเพียงใครสักคนมาทดสอบสมมติฐานที่ถูกต้องเท่านั้น
สามสิบนาที ไม่มีคำใบ้ และผลลัพธ์ที่ไม่ใช่ค่าแฮช #
ในเดือนตุลาคม 2026 พนักงานผู้ช่างสงสัยคนหนึ่งของ Anthropic ได้ถามโมเดลวิจัยภายในว่าจะสามารถหาคำตอบได้หรือไม่ว่าค่า Seed เหล่านั้นถูกสร้างขึ้นมาอย่างไร โดยไม่ได้ชี้เป้าใบ้ให้ ถ้อยคำที่ใช้ตรงนี้มีความสำคัญ โมเดลไม่ได้ถูกบอกให้มองหาอะไรเป็นพิเศษ และไม่ได้รับคำตอบไปเพื่อช่วยยืนยัน
ในเวลาไม่ถึงครึ่งชั่วโมง Claude ก็ค้นพบต้นกำเนิดของค่า Seed ของ NIST P-192, P-224, P-256, P-384 และ P-521 ผลลัพธ์นั้นตรงไปตรงมา: ไม่มีค่า Seed ตัวใดเป็นผลลัพธ์ของอัลกอริทึมแฮชใดๆ เลย พวกมันคือผลลัพธ์ของตัวสร้างตัวเลขสุ่ม lrand48 ในไลบรารีภาษา C
ดังนั้น เรื่องเล่าวลีรหัสผ่านจึงไม่มีวันถูกค้นพบได้ เพราะไม่เคยมีวลีรหัสผ่านให้ค้นหาตั้งแต่แรก ค่า Seed เหล่านี้ถูกสร้างขึ้นโดยตัวสร้างตัวเลขสุ่มเทียมทั่วไปที่ตั้งค่าเริ่มต้นจากนาฬิกา มันเป็นคำอธิบายที่ไร้ความหวือหวา และนั่นคือเสน่ห์ของมันอย่างแท้จริง: มันไม่ต้องการความลับ ไม่ต้องการความรู้พิเศษ และไม่ทิ้งค่าคงที่ที่ไร้คำอธิบายไว้เบื้องหลัง
กลไกของมันอธิบายได้ง่ายมาก การวนซ้ำ (iteration) แต่ละรอบของอัลกอริทึมจะดึงข้อมูล 20 ไบต์ออกมาจากตัวสร้างเพื่อใช้เป็นค่า Seed ตัวเลือก จำนวนรอบของการวนซ้ำคือรายละเอียดที่น่าสนใจ เพราะมันแสดงให้เห็นว่ากระบวนการนี้คือการค้นหา ไม่ใช่การสุ่มหยิบขึ้นมาเพียงครั้งเดียว ตัวอย่างเช่น P-256 ต้องใช้การวนซ้ำถึง 1842 รอบกว่าจะได้ค่า Seed ที่นำมาใช้เป็นมาตรฐานออกมา ใครก็ตามที่รันโปรแกรมนี้ได้ปล่อยให้มันปั่นหาค่าตัวเลือกไปเรื่อยๆ จนกว่าจะได้ค่าที่สร้างเส้นโค้งซึ่งตรงตามข้อกำหนดของพวกเขา
คณะผู้เขียนระมัดระวังอย่างมากว่าสิ่งนี้หมายถึงอะไรและไม่ได้หมายถึงอะไร และการวางกรอบของพวกเขาก็ควรค่าแก่การกล่าวซ้ำ นี่ไม่ใช่การเจาะทำลายระบบรหัสลับ การโจมตีรูปแบบใหม่ หรือจุดอ่อนในเส้นโค้ง ECDSA ไม่จำเป็นต้องมีการดำเนินการแก้ไขใดๆ พวกเขาก้าวไปอีกขั้นด้วยการระบุว่า สิ่งนี้ทำให้พวกเขายิ่งมั่นใจมากขึ้นว่าเส้นโค้งถูกเลือกมาโดยไม่มีช่องโหว่ลับหรือจุดอ่อนที่จงใจใส่ไว้ นั่นคือข้อสรุปที่เขียนไว้อย่างระมัดระวัง และควรคงไว้เช่นนั้น แหล่งข้อมูลวางกรอบเรื่องนี้ว่าเป็นความมั่นใจของผู้เขียน ซึ่งเป็นคนละเรื่องกับการพิสูจน์ความบริสุทธิ์ของเส้นโค้งทางคณิตศาสตร์ สิ่งที่ข้อค้นพบนี้มอบให้คือคำอธิบายที่แสนธรรมดาและตรวจสอบได้ เพื่อเข้ามาแทนที่เรื่องเล่าที่ไม่สามารถพิสูจน์ได้
ตัวสแกนค้นพบรอยนิ้วมือของตัวสร้างจากยุค 1990 ได้อย่างไร #
วิธีการที่ใช้สมควรได้รับความสนใจ เพราะมันคือส่วนที่คนอื่นสามารถนำไปใช้ซ้ำได้
Claude เดาว่าซอฟต์แวร์ที่ใช้สร้างเส้นโค้งน่าจะใช้ตัวสร้างตัวเลขสุ่มเทียม (PRNG) ที่มาพร้อมกับไลบรารีภาษา C ในยุค 1990 แหล่งข้อมูลปฏิบัติต่อสิ่งนี้ในฐานะการคาดเดา และมันก็เป็นการคาดเดาที่ยอดเยี่ยม มันช่วยบีบการค้นหาที่ไร้ขอบเขตให้แคบลงเหลือเพียงรายการตัวเลือกสั้นๆ จากยุคสมัยเดียว
จากนั้น Claude จึงเขียนตัวสแกนขึ้นมา ตัวสแกนนี้เลื่อนไปตามค่า Seed ที่เผยแพร่แต่ละตัวทีละหนึ่งบิต และทดสอบว่ากลุ่มข้อมูลที่อยู่ติดกันเป็นผลลัพธ์ที่ต่อเนื่องกันของตัวสร้างจากยุค 1990 หรือไม่ การสแกนครอบคลุมการจับคู่ระหว่างตัวสร้างและการตัดแบ่งผลลัพธ์รวม 34 รูปแบบ จุดที่ตรวจพบปรากฏขึ้นเป็นรูปแบบในบิตส่วนบน (top bits) ซึ่งเป็นรูปแบบที่จะเกิดขึ้นโดยบังเอิญด้วยความน่าจะเป็นเพียง 1/5810 เท่านั้น
รูปแบบดังกล่าวคือลายเซ็นของตัวสร้างแบบสมภาคเชิงเส้น (linear congruential generator) ที่ชื่อว่า lrand48 ซึ่งจะส่งคืนเฉพาะบิตส่วนบน 31 บิตจากสถานะภายในขนาด 48 บิต ตรงจุดนี้เองที่การออกแบบของตัวสร้างทิ้งร่องรอยไว้ เนื่องจาก lrand48 ซ่อนบิตไว้ 17 บิตจากสถานะ 48 บิตในทุกครั้งที่ถูกเรียก ผลลัพธ์ที่ได้จึงมีความสม่ำเสมอในรูปแบบที่สายอักขระสุ่มแท้ๆ จะไม่แสดงออกมา และตัวสแกนที่สร้างขึ้นมาเพื่อมองหาความสม่ำเสมอนั้นก็สามารถตรวจพบมันได้
ในการกู้คืนสถานะภายใน Claude นำเวิร์ดแรกมาและลองแทนค่าทั้ง 2^17 ค่าที่เป็นไปได้ของบิตที่ถูกซ่อนไว้ 17 บิต นั่นเป็นการค้นหาขนาดเล็ก และใช้ต้นทุนต่ำมากเพราะตัวสร้างมีความเรียบง่าย สถานะตัวเลือกแต่ละตัวสามารถนำไปตรวจสอบเทียบกับกลุ่มข้อมูลถัดไปของค่า Seed ได้ทันที และสถานะที่ถูกต้องก็ทำให้ลำดับข้อมูลทั้งหมดเรียงตัวตรงกันอย่างสมบูรณ์
ค่า Seed ของเส้นโค้งจำนวนเฉพาะ (prime-curve seeds) นั้นยากกว่า แต่ก็เพียงเล็กน้อยเท่านั้น พวกมันมาจากตัวสร้าง lrand48 ตัวเดียวกัน แต่เก็บบิตของผลลัพธ์แต่ละครั้งไว้น้อยกว่า จำนวนบิตที่มองเห็นได้น้อยลงหมายถึงจุดยึดสำหรับการคาดเดาที่น้อยลง ดังนั้นกลเม็ดการสุ่มลองทุกค่า (brute-force) จึงไม่สามารถนำมาใช้ได้อย่างหมดจดเหมือนเดิม คำตอบของแหล่งข้อมูลคือ การกู้คืนสถานะของตัวสร้างแบบสมภาคเชิงเส้นที่ถูกตัดทอนบิตออก เป็นปัญหาแลตทิซตามตำราเรียน (textbook lattice problem) ซึ่งแก้ได้ด้วยอัลกอริทึมการลดรูปฐาน Lenstra-Lenstra-Lovasz (LLL) โมเดลสามารถจดจำโครงสร้างปัญหานั้นได้ และนำเครื่องมือมาตรฐานมาประยุกต์ใช้โดยไม่ต้องพึ่งพาเทคนิคแปลกใหม่อะไรเลย
ค่า Seed ของเส้นโค้งจำนวนเฉพาะของ NIST ทั้งห้าตัว บวกกับอีกห้าตัวจากมาตรฐาน ANSI X9.62 ล้วนมีรูปแบบเดียวกันทั้งหมด นั่นคือ lrand48() >> 23 การที่ค่า Seed สิบตัวใช้กฎการสกัดบิตแบบเดียวกันทั้งหมด เป็นหลักฐานที่หนักแน่นว่ามีกระบวนการเดียวกันอยู่เบื้องหลังพวกมัน
จากนั้นก็มาถึงการตรวจสอบที่แยกความบังเอิญที่ดูเข้าเค้าออกจากความจริง สถานะขนาด 48 บิตที่กู้คืนมาได้แต่ละตัว สามารถสร้างบิตทั้ง 160 บิตของค่า Seed ของมันขึ้นมาใหม่ได้ครบทุกบิต ซึ่งเป็นสิ่งที่ไม่สามารถเกิดขึ้นได้โดยบังเอิญ การตรงกันเพียงบางส่วนอาจเป็นเรื่องบังเอิญได้ แต่การสร้างบิตทุกบิตขึ้นมาใหม่ได้ตรงกันทั้งหมดเป็นสิ่งที่หาข้ออ้างมาปัดตกได้ยากกว่ามาก และนั่นคือเหตุผลที่สามารถระบุผลลัพธ์นี้ได้อย่างตรงไปตรงมา
การหมุนตัวสร้างย้อนกลับเพื่ออ่านเวลาจากนาฬิกา #
การกู้คืนสถานะบอกคุณได้ว่าค่า Seed ถูกสร้างขึ้นมาอย่างไร แต่ยังไม่ได้บอกว่าถูกสร้างขึ้นเมื่อใด เพื่อหาคำตอบนั้น Claude จึงใช้คุณสมบัติข้อหนึ่งของตัวสร้าง นั่นคือ มันสามารถหมุนย้อนกลับได้ง่ายดายพอๆ กับการหมุนไปข้างหน้า สำหรับค่า Seed แต่ละตัว Claude ได้ถอยสถานะย้อนกลับไปทีละก้าวจนกระทั่งไปถึงรูปแบบที่การตั้งค่าเริ่มต้นด้วยฟังก์ชัน srand48 จะสร้างขึ้นมา ซึ่งมีบิตส่วนล่าง 16 บิตเท่ากับ 0x330E
รูปแบบดังกล่าวคือรอยนิ้วมือเฉพาะตัวในตัวเอง หากสถานะที่กู้คืนมาได้สามารถหมุนย้อนกลับไปสู่จุดที่มีบิตส่วนล่าง 16 บิตเป็น 0x330E ได้ ก็แสดงว่าตัวสร้างถูกเริ่มต้นทำงานตามวิธีมาตรฐาน จากค่า Seed ตั้งต้นที่ส่งเข้าไปยัง srand48 และค่า Seed ตั้งต้นในกรณีนี้ก็คือเวลา ค่า Seed ของเส้นโค้งเหล่านี้ถูกสร้างขึ้นโดยใช้ PRNG ที่อ่อนแอซึ่งตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp
กระบวนการคิดภายในของ Claude ในขณะนั้นได้บันทึกวินาทีแห่งการค้นพบไว้ว่า: บิตส่วนบนทั้งหมดเป็นศูนย์อย่างชัดเจน รวม 20 บิต โดยมีโอกาสเกิดขึ้นโดยบังเอิญเพียง 1e-6 มันเป็นรายละเอียดเล็กๆ แต่แสดงให้เห็นว่าการใช้เหตุผลทำงานอยู่บนตัวเลขตามที่ปรากฏออกมาจริงๆ ไม่ใช่การแต่งเรื่องขึ้นมาประกอบในภายหลัง
ทว่าวันที่ที่ได้ออกมาไม่ได้เรียบร้อยสวยงามไปเสียทั้งหมด การตั้งค่าเริ่มต้นของเส้นโค้งฐานสอง (binary-curve) ทั้งสี่เส้นอ่านค่าได้เป็นเดือนกุมภาพันธ์ 1984 ซึ่งไม่ใช่วันที่ที่ใครจะคาดคิดสำหรับตัวสร้างที่ใช้งานอยู่ในช่วงปลายทศวรรษ 1990 แต่เมื่อนำเวลาประทับมาคูณสอง การตั้งค่าเริ่มต้นของเส้นโค้งฐานสองกลับไปตรงกับวันที่ 17 เมษายน 1998 ซึ่งเป็นเวลาสองสัปดาห์หลังจากการรันสร้างเส้นโค้ง P-224 แหล่งข้อมูลสรุปว่าโปรแกรมอาจจะหารครึ่งค่าเวลาจากนาฬิกา ข้อสรุปนี้เขียนไว้อย่างระมัดระวัง และควรเป็นเช่นนั้น เพราะมันเป็นคำอธิบายที่เสนอขึ้นเพื่อตอบว่าเหตุใดค่าดิบจึงอ่านได้เป็นปี 1984 และการคูณสองที่ตกลงตรงเวลาสองสัปดาห์หลังจากการรันอีกรอบหนึ่งพอดี ก็เป็นจุดที่ชวนให้คล้อยตาม แม้จะไม่ใช่การยืนยันโค้ดภายในของโปรแกรมโดยตรงก็ตาม
ผมพบว่านี่คือส่วนที่น่าเชื่อถือที่สุดของเรื่องราวทั้งหมด ด้วยเหตุผลที่ไม่เกี่ยวกับวิทยาการรหัสลับเลย เรื่องเล่าที่ถูกปั้นแต่งขึ้นย่อมให้วันที่ที่ดูเรียบร้อยไร้ที่ติ แต่ผลลัพธ์นี้กลับให้วันที่ที่ดูแปลกประหลาดออกมาก่อน ตามด้วยการปรับแก้ที่ทำให้เส้นโค้งฐานสองเข้าไปเรียงอยู่ในลำดับเวลาที่สอดคล้องกับการรัน P-224 อย่างลงตัว ข้อมูลที่ดูยุ่งเหยิงแต่กลับคลี่คลายลงได้ภายใต้สมมติฐานง่ายๆ คือหน้าตาของหลักฐานแหล่งกำเนิดที่แท้จริง
จุดฐานเองก็มีสูตรการสร้างเช่นกัน #
ค่า Seed เป็นตัวนิยามเส้นโค้ง ส่วนจุดฐาน (base points) เป็นอีกเรื่องหนึ่งที่แยกออกไป และแหล่งข้อมูลก็จัดการกับพวกมันแยกต่างหาก
จุดฐานของเส้นโค้งหกเส้นที่สร้างขึ้นในเดือนพฤษภาคม 1997 (ได้แก่ P-192 และเส้นโค้งตัวอย่าง ANSI X9.62 ห้าเส้น คือ prime192v2, prime192v3 และ prime239v1 ถึง v3) มาจากตัวสร้างตัวเลขสุ่มใน FreeLIP ซึ่งเป็นแพ็กเกจเลขคณิตจำนวนเต็มขนาดยาวของ Arjen Lenstra โดยไลบรารี NTL ของ Victor Shoup ในรุ่นแรกๆ ก็ได้รวมโค้ดชุดเดียวกันนี้มาด้วย ข้อเท็จจริงประการที่สองนี้มีความสำคัญต่อการตรวจสอบ เพราะตัวสร้างนี้มีอยู่จริงในฐานะโค้ดที่เผยแพร่ต่อสาธารณะซึ่งคนอื่นสามารถเข้าไปอ่านได้ ไม่ใช่เครื่องมือส่วนตัวที่ปิดลับ
สูตรการสร้างนั้นสั้นมาก ตั้งค่าเริ่มต้นตัวสร้างด้วยจำนวนเต็มขนาดเล็ก ทิ้งผลลัพธ์เจ็ดตัวแรกไป สร้างพิกัดแกน x ตัวเลือกจากผลลัพธ์ขนาด 26 บิตที่ทอนค่าด้วย mod p แล้วทำซ้ำการสร้างค่าตัวเลือกนั้นไปเรื่อยๆ จนกว่าพิกัด x จะตกอยู่บนเส้นโค้ง
Claude ค้นพบค่า Seed ตั้งต้นของตัวสร้างเหล่านั้น ได้แก่ 20000 สำหรับ P-192, ค่า 20420, 20507 และ 20509 สำหรับ prime239v1 ถึง v3 และค่า 20512 กับ 20517 สำหรับ prime192v2 และ v3 ตัวเลขเหล่านี้คือจำนวนเต็มขนาดเล็กแบบที่คนทั่วไปพิมพ์ใส่เข้าไปในโปรแกรม ซึ่งตรงกับสิ่งที่ขั้นตอนแรกของสูตรการสร้างระบุไว้อย่างพอดิบพอดี
คณะผู้เขียนได้กล่าวอ้างประเด็นหนึ่งไว้ตรงนี้อย่างถ่อมตัวและน่าหยิบยกใจความสำคัญมาอ้างถึง นั่นคือ เท่าที่พวกเขาทราบ ยังไม่เคยมีจุดฐานใดของ NIST ที่ได้รับการอธิบายมาก่อน ถ้อยคำแบ่งรับแบ่งสู้นั้นเป็นของพวกเขาเอง และเหมาะสมอย่างยิ่ง พวกเขาไม่ได้อ้างว่าได้สำรวจเอกสารทุกฉบับที่เคยเขียนขึ้นบนโลก แต่ระบุเพียงขอบเขตความรู้ของตนเองเท่านั้น
จากนั้นสูตรการสร้างนี้ก็หยุดทำงาน จุดฐานของ P-224, P-256, P-384 และ P-521 ไม่เข้ากับสูตรนี้ และผู้เขียนก็ไม่สามารถอธิบายได้ว่าพวกมันถูกเลือกมาอย่างไร บทความที่พยายามกลบเกลื่อนจุดนี้คงจะดูเรียบร้อยกว่า แต่ผู้เขียนก็เลือกที่จะใส่ไว้ตามตรง คำอธิบายนี้ครอบคลุมเส้นโค้งหกเส้นจากเดือนพฤษภาคม 1997 และทิ้งจุดฐานของเส้นโค้งจำนวนเฉพาะของ NIST อีกสี่เส้นไว้โดยยังไม่มีคำอธิบาย
ค่าตัวเลือกที่ถูกมองข้ามไป #
ข้อค้นพบสุดท้ายคือข้อที่มีแนวโน้มจะจุดชนวนการถกเถียงได้มากที่สุด ดังนั้นจึงควรอ่านอย่างละเอียดแม่นยำ
สำหรับ P-256 ค่า Seed ที่เผยแพร่คือค่าตัวเลือกลำดับที่ 1842 แต่ทว่าค่าตัวเลือกลำดับที่ 876 ของการรันรอบเดียวกัน ก็ให้เส้นโค้งอันดับจำนวนเฉพาะ (prime-order curve) ที่มีขนาดถูกต้อง พร้อมพารามิเตอร์ที่ถูกเลือกด้วยวิธีเดียวกันกับบนเส้นโค้งที่เผยแพร่ทุกประการ กล่าวอีกนัยหนึ่งคือ กระบวนการนี้ได้ข้ามเส้นโค้งที่เมื่อดูตามเนื้อผ้าแล้วน่าจะใช้ได้ไป
และนี่ไม่ใช่เหตุการณ์ที่เกิดขึ้นเพียงครั้งเดียว การรันของ P-224 ได้ข้ามเส้นโค้งลักษณะดังกล่าวไปสามเส้น และการรันสองรอบที่อยู่เบื้องหลังเส้นโค้งตัวอย่างของ ANSI X9.62 ก็ได้ข้ามไปอีกเจ็ดเส้น
คณะผู้เขียนกล่าวอย่างตรงไปตรงมาเกี่ยวกับสิ่งที่พวกเขาไม่รู้ พวกเขาไม่รู้ว่ามีเกณฑ์ใดที่อาจถูกนำมาใช้ในการข้ามเส้นโค้งเหล่านั้น หรือมันเป็นเพียงผลพลอยได้ที่ไม่ได้ตั้งใจ (unintentional artifact) กันแน่ นั่นคือข้อจำกัดที่ระบุไว้อย่างชัดเจน และการแบ่งรับแบ่งสู้ในคำว่า "ผลพลอยได้ที่ไม่ได้ตั้งใจ" ก็คือจุดยืนที่ซื่อสัตย์ เพราะข้อมูลแสดงให้เห็นว่ามีการข้ามค่าตัวเลือกไปจริง แต่ไม่ได้แสดงให้เห็นว่าทำไม
จากนั้นพวกเขาจึงเสนอข้อวินิจฉัย เนื่องจากจำนวนของค่าตัวเลือกที่ถูกข้ามไปนั้นมีขนาดเล็ก พวกเขาจึงไม่เชื่อว่ามีความเป็นไปได้ที่เส้นโค้งที่ถูกทำให้มีจุดอ่อนจะถูกคัดเลือกมา นั่นคือการใช้เหตุผลแบบระมัดระวังเกี่ยวกับความเป็นไปได้ และวางอยู่บนพื้นฐานของการนับจำนวน หากกระบวนการหนึ่งข้ามค่าตัวเลือกไปเพียงไม่กี่ตัวโดยรวม ย่อมมีพื้นที่ว่างน้อยมากที่จะใช้ค้นหาจุดอ่อน
ยังมีข้อพึงระวังอีกหนึ่งข้อ ซึ่งแหล่งข้อมูลระบุไว้ในฐานะความเป็นไปได้ ไม่ใช่ข้อค้นพบ นั่นคือ ในทางหลักการแล้วยังคงพอเป็นไปได้ว่าเส้นโค้งเหล่านี้อาจถูกเลือกให้มีคุณสมบัติเฉพาะบางอย่าง ด้วยการค้นหาผ่านช่วงเวลาประทับที่จะส่งให้ตัวสร้างตัวเลขสุ่ม นี่คือการคาดการณ์ และถูกติดป้ายกำกับไว้เช่นนั้นชัดเจน จึงไม่ควรอ่านสิ่งนี้ว่าเป็นหลักฐานยืนยันเรื่องใดๆ และไม่ควรแอบตัดทิ้งไปเงียบๆ เช่นกัน รายงานที่ยุติธรรมย่อมวางความเป็นไปได้นี้ไว้บนโต๊ะในฐานะเส้นทางที่ยังไม่ได้ถูกตัดออก ในขณะที่ระบุควบคู่กันไปว่าคณะผู้เขียนมองว่าเรื่องเส้นโค้งที่ถูกทำให้มีจุดอ่อนนั้นไม่น่าเป็นไปได้
สิ่งที่ผลลัพธ์นี้เปลี่ยนแปลง และสิ่งที่ยังคงเปิดกว้างอยู่ #
เริ่มต้นจากสิ่งที่มันไม่ได้เปลี่ยน เส้นโค้งเหล่านี้ไม่ได้ถูกเจาะทำลาย แหล่งข้อมูลระบุไว้เช่นนั้นถึงสองครั้งด้วยถ้อยคำที่ต่างกัน และไม่จำเป็นต้องมีการดำเนินการแก้ไขใดๆ ใครก็ตามที่อ่านเรื่องนี้แล้วมองว่าเป็นเหตุผลที่จะต้องรื้อถอน P-256 ออกไป แสดงว่าอ่านผิดประเด็น
สิ่งที่มันเปลี่ยนคือสถานะของความคลางแคลงใจที่มีมาอย่างยาวนาน ตราบใดที่ค่า Seed ยังไร้คำอธิบาย วลีที่ว่า "จัดเตรียมโดย NSA โดยไม่มีคำอธิบาย" ก็ยังคงเป็นเครื่องหมายคำถามที่แขวนอยู่เหนือมาตรฐานเสมอมา บัดนี้เครื่องหมายคำถามนั้นมีคำตอบที่เป็นรูปธรรมแล้ว ค่า Seed ไม่ใช่ค่าแฮชอันลึกลับซับซ้อนของวลีลับ แต่มันคือผลลัพธ์จาก lrand48 ของโปรแกรมที่ตั้งค่าเริ่มต้นด้วยนาฬิกา ซึ่งสามารถสร้างบิตทุกบิตของค่า Seed แต่ละตัวขึ้นมาใหม่ได้จากสถานะที่กู้คืนมา คำอธิบายที่ใครก็ตามที่มีค่า Seed ซึ่งเผยแพร่ต่อสาธารณะสามารถนำไปทดสอบด้วยตนเองได้ ย่อมชนะข่าวลือที่ไม่มีใครตรวจสอบได้เสมอ
มีประเด็นสำคัญในเรื่องนี้สำหรับผู้ก่อตั้งและวิศวกรที่สร้างระบบอยู่บนมาตรฐานวิทยาการรหัสลับ ข้อกล่าวอ้างเรื่องที่มาของพารามิเตอร์นั้นพูดง่ายแต่ตรวจสอบยาก ทว่าการตรวจสอบที่อธิบายไว้ในที่นี้ใช้เวลาไม่ถึงครึ่งชั่วโมงเมื่อตั้งคำถามได้ถูกจุด ตัวสแกน การค้นหาขนาด 2^17 และการลดรูปแลตทิซ ล้วนเป็นวิธีการมาตรฐานทั้งสิ้น สิ่งที่ขาดหายไปนานหลายปีมีเพียงใครสักคนที่ยอมลงมือทำงานที่ไม่หวือหวาในการนำวิธีเหล่านั้นมาลองทดสอบกับตัวเลขที่เผยแพร่อยู่
ในขณะเดียวกัน ผมก็จะระมัดระวังไม่โฆษณาวิธีการนี้เกินจริง แหล่งข้อมูลรายงานผลลัพธ์ของทีมวิจัยทีมหนึ่งบนชุดค่า Seed ที่จำเพาะเจาะจง มันไม่ได้อ้างว่าแนวทางเดียวกันนี้จะสามารถไขปริศนาค่าคงที่ที่ไร้คำอธิบายทุกตัวในทุกมาตรฐานได้ และผมก็จะไม่อ้างเช่นนั้นแทนพวกเขา สิ่งที่งานชิ้นนี้แสดงให้เห็นนั้นแคบกว่า และในความเห็นของผม มีประโยชน์มากกว่า นั่นคือ เมื่อต้นกำเนิดของพารามิเตอร์เป็นปริศนา โมเดลที่ทำงานอย่างละเอียดรอบคอบพร้อมการคาดเดาที่สมเหตุสมผลเกี่ยวกับเครื่องมือในยุคสมัยนั้น สามารถทดสอบการคาดเดานั้นได้อย่างรวดเร็วและแสดงวิธีทำให้เห็นได้
งานที่ยังไม่เสร็จสิ้นมีความชัดเจนพอที่จะตั้งเป็นวาระการวิจัยต่อไปได้ จุดฐานสี่จุด ได้แก่จุดฐานของ P-224, P-256, P-384 และ P-521 ยังคงไม่มีคำอธิบาย ค่าตัวเลือกที่ถูกข้ามไป เช่น ลำดับที่ 876 เมื่อเทียบกับลำดับที่ 1842 ที่ถูกเผยแพร่สำหรับ P-256 ยังขาดเกณฑ์ที่ระบุไว้ชัดเจน และยังไม่มีใครรู้ว่าการข้ามไปนั้นเป็นความตั้งใจหรือเป็นเพียงผลพลอยได้ คำตอบเหล่านั้นจะยังคงหลงเหลืออยู่ในซอร์สโค้ดเก่าๆ ในความทรงจำของเพื่อนร่วมงานที่ยังมีชีวิตอยู่ หรือในการตามล่ารูปแบบลักษณะเดียวกับที่ไขปริศนาค่า Seed ได้หรือไม่ คือคำถามที่ยังคงเปิดกว้างอยู่ ค่า Seed ใช้เวลาครึ่งชั่วโมง ส่วนจุดฐานทั้งสี่ได้ต้านทานแนวทางนี้มาแล้วหนึ่งครั้ง
คำถามที่พบบ่อย #
การค้นพบนี้ทำให้เส้นโค้ง NIST ECDSA อย่าง P-256 หรือ P-384 ถูกเจาะทำลายหรือไม่?
ไม่ การค้นพบว่าค่า Seed ของเส้นโค้งถูกสร้างขึ้นโดย lrand48 แทนที่จะเป็นค่าแฮชของวลีรหัสผ่าน ไม่ได้ทำให้เกิดการเจาะทำลายระบบรหัสลับ การโจมตีรูปแบบใหม่ หรือจุดอ่อนทางคณิตศาสตร์ใดๆ ในเส้นโค้ง ECDSA และไม่จำเป็นต้องดำเนินการแก้ไขหรือย้ายระบบใดๆ อันเนื่องมาจากข้อค้นพบนี้
ค่า Seed ของเส้นโค้งจำนวนเฉพาะของ NIST ถูกสร้างขึ้นมาอย่างไรกันแน่?
ค่า Seed ขนาด 160 บิตแต่ละตัวถูกสร้างขึ้นจากการเรียกตัวสร้างแบบสมภาคเชิงเส้น lrand48 ของไลบรารีมาตรฐานภาษา C (โดยเฉพาะอย่างยิ่งคือ lrand48() >> 23 สำหรับเส้นโค้งจำนวนเฉพาะของ NIST ทั้งห้าเส้น และเส้นโค้ง ANSI X9.62 อีกห้าเส้น) ซึ่งตั้งค่าเริ่มต้นผ่าน srand48 ด้วยเวลา Unix timestamp การกู้คืนสถานะภายในขนาด 48 บิตผ่านการลดรูปแลตทิซแบบ Lenstra-Lenstra-Lovasz (LLL) สามารถสร้างบิตทั้ง 160 บิตของค่า Seed ที่เผยแพร่แต่ละตัวขึ้นมาใหม่ได้ครบถ้วน
สิ่งใดในพารามิเตอร์เส้นโค้งเชิงวงรีของ NIST ที่ยังคงไม่มีคำอธิบาย?
แม้ว่าจุดฐานของ P-192 และเส้นโค้ง ANSI X9.62 ทั้งห้าเส้นจะสามารถสืบย้อนกลับไปถึงตัวสร้างตัวเลขสุ่มในแพ็กเกจ FreeLIP ของ Arjen Lenstra ที่ตั้งค่าเริ่มต้นด้วยจำนวนเต็มขนาดเล็กได้แล้ว แต่จุดฐานของ P-224, P-256, P-384 และ P-521 กลับไม่ตรงตามสูตรดังกล่าว และเกณฑ์ที่ใช้ในการข้ามเส้นโค้งตัวเลือกอันดับจำนวนเฉพาะที่พบก่อนหน้า (เช่น ค่าตัวเลือกลำดับที่ 876 ก่อนหน้าลำดับที่ 1842 ใน P-256) ก็ยังคงไม่เป็นที่ทราบแน่ชัด
References #
- Anthropic Frontier Red Team, (2026). Claude reveals ECDSA curve origins ⧉. Anthropic.
- National Institute of Standards and Technology, (2000). FIPS PUB 186-2: Digital Signature Standard (DSS) ⧉. NIST.
- Victor Shoup, (2024). NTL: A Library for doing Number Theory ⧉. libntl.org.
ทบทวนล่าสุด .
เผยแพร่บทความนี้ซ้ำ
คัดลอกรูปแบบสำหรับ Medium
# ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau > Originally published at [https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/](https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/) ค่า Seed ที่เผยแพร่พร้อมกับเส้นโค้ง NIST P-192, P-224, P-256, P-384 และ P-521 ไม่เคยเป็นผลลัพธ์จากการแฮช แต่มาจากตัวสร้าง lrand48 ของไลบรารีภาษา C ที่ตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp โดย Claude ไขปริศนานี้... Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/
คัดลอกรูปแบบสำหรับ Mastodon
ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau ค่า Seed ที่เผยแพร่พร้อมกับเส้นโค้ง NIST P-192, P-224, P-256, P-384 และ P-521 ไม่เคยเป็นผลลัพธ์จากการแฮช แต่มาจากตัวสร้าง lrand48 ของไลบรารีภาษา C ที่ตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp โดย Claude ไขปริศนานี้... https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/
คัดลอกที่จัดรูปแบบสำหรับ LinkedIn
ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau ค่า Seed ที่เผยแพร่พร้อมกับเส้นโค้ง NIST P-192, P-224, P-256, P-384 และ P-521 ไม่เคยเป็นผลลัพธ์จากการแฮช แต่มาจากตัวสร้าง lrand48 ของไลบรารีภาษา C ที่ตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp โดย Claude ไขปริศนานี้. นี่คือประเด็นเชิงกลยุทธ์ที่สำคัญ: - สัมประสิทธิ์ที่ดูเหมือนมีที่มาและค่า Seed ที่ไม่มีใครอธิบายได้. ECDSA ถูกนำมาใช้โดย NIST ในปี 2000 ในฐานะส่วนหนึ่งของมาตรฐานลายมือชื่อดิจิทัล FIPS 186-2 ข้อกำหนดสำหรับเส้นโค้งของมาตรฐานนี้มีพารามิเตอร์ "seed" ซึ่งค่าแฮชของมันถูกใช้เพื่อนิยามสัมประสิทธิ์ b ของเส้นโค้ง บนหน้ากระดาษ… - สามสิบนาที ไม่มีคำใบ้ และผลลัพธ์ที่ไม่ใช่ค่าแฮช. ในเดือนตุลาคม 2026 พนักงานผู้ช่างสงสัยคนหนึ่งของ Anthropic ได้ถามโมเดลวิจัยภายในว่าจะสามารถหาคำตอบได้หรือไม่ว่าค่า Seed เหล่านั้นถูกสร้างขึ้นมาอย่างไร โดยไม่ได้ชี้เป้าใบ้ให้ ถ้อยคำที่ใช้ตรงนี้มีความสำคัญ… - ตัวสแกนค้นพบรอยนิ้วมือของตัวสร้างจากยุค 1990 ได้อย่างไร. วิธีการที่ใช้สมควรได้รับความสนใจ เพราะมันคือส่วนที่คนอื่นสามารถนำไปใช้ซ้ำได้. - การหมุนตัวสร้างย้อนกลับเพื่ออ่านเวลาจากนาฬิกา. การกู้คืนสถานะบอกคุณได้ว่าค่า Seed ถูกสร้างขึ้นมาอย่างไร แต่ยังไม่ได้บอกว่าถูกสร้างขึ้นเมื่อใด เพื่อหาคำตอบนั้น Claude จึงใช้คุณสมบัติข้อหนึ่งของตัวสร้าง นั่นคือ มันสามารถหมุนย้อนกลับได้ง่ายดายพอๆ… แนวทางขององค์กรของคุณในการรับมือกับความท้าทายที่ระบุไว้ในบทความนี้คืออะไร? → https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/ #ปริศนา #ค่าSeed #เบื้องหลัง #Nist #เส้นโค้ง Sebastien Rousseau | CC-BY-4.0
อ้างอิงบทความนี้
ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau
ค่า Seed ที่เผยแพร่พร้อมกับเส้นโค้ง NIST P-192, P-224, P-256, P-384 และ P-521 ไม่เคยเป็นผลลัพธ์จากการแฮช แต่มาจากตัวสร้าง lrand48 ของไลบรารีภาษา C ที่ตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp โดย Claude ไขปริศนานี้...
BibTeX
@online{rousseau2026ค,
author = {Rousseau, Sebastien},
title = {{ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau}},
year = {2026},
url = {https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/},
urldate = {2026}
}RIS
TY - GEN AU - Rousseau, Sebastien TI - ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau PY - 2026 UR - https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/ ER -
Vancouver
Rousseau S. ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau. sebastienrousseau.com. 2026 Oct 26. Available from: https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/
Chicago
Rousseau, Sebastien. "ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau." sebastienrousseau.com. October 26, 2026. https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/.
APA
Rousseau, S. (2026, October 26). ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/
เผยแพร่บทความนี้ซ้ำ
ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau
ค่า Seed ที่เผยแพร่พร้อมกับเส้นโค้ง NIST P-192, P-224, P-256, P-384 และ P-521 ไม่เคยเป็นผลลัพธ์จากการแฮช แต่มาจากตัวสร้าง lrand48 ของไลบรารีภาษา C ที่ตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp โดย Claude ไขปริศนานี้...
บทความนี้เผยแพร่ภายใต้สัญญาอนุญาต Creative Commons Attribution 4.0 International. การเผยแพร่ซ้ำต้องระบุที่มาเป็น URL ต้นฉบับ
ค่า Seed ปริศนาเบื้องหลังเส้นโค้งของ NIST ไม่เคยเป็นค่าแฮช และ Claude ค้นพบความจริงในเวลาไม่ถึงครึ่งชั่วโมง — Sebastien Rousseau ค่า Seed ที่เผยแพร่พร้อมกับเส้นโค้ง NIST P-192, P-224, P-256, P-384 และ P-521 ไม่เคยเป็นผลลัพธ์จากการแฮช แต่มาจากตัวสร้าง lrand48 ของไลบรารีภาษา C ที่ตั้งค่าเริ่มต้นด้วยเวลา Unix timestamp โดย Claude ไขปริศนานี้... Originally published at https://sebastienrousseau.com/th/2026-10-26-kha-seed-prisnabeueonghlangsenkhong-nist-maikheypenkhahaech-claude/ by Sebastien Rousseau. Licensed under CC-BY-4.0.
