The Story of ECDSA
Elliptic Curve Digital Signature Algorithm
จุดกำเนิด ECC
คณิตศาสตร์เรื่องเส้นโค้ง Elliptic Curve ถูกค้นพบมานานแล้ว แต่ถูกนำมาประยุกต์ใช้ในการเข้ารหัสลับ (Cryptography) ในปี 1985 โดย Neal Koblitz และ Victor S. Miller (แยกกันคิดค้น)
จากนั้นจึงถูกพัฒนาต่อเป็นระบบลายเซ็นดิจิทัล ECDSA ในปี 1992
โจทย์ของ Satoshi Nakamoto
ตอนที่ Satoshi Nakamoto สร้าง Bitcoin เขาต้องการระบบที่ "ปลอดภัยขั้นสุด แต่ต้องใช้พื้นที่น้อยที่สุด" เพื่อไม่ให้ฐานข้อมูล Blockchain มีขนาดใหญ่เกินไป
ในยุศนั้นระบบ RSA เป็นที่นิยมมาก แต่กุญแจมีขนาดยาวถึง 3072-bit ซาโตชิ จึงตัดสินใจเลือกใช้ ECDSA บนเส้นโค้ง secp256k1 (สมการ y² = x³ + 7) เพราะมันให้ความปลอดภัยเทียบเท่า RSA แต่ใช้ขนาดกุญแจเพียงแค่ 256-bit เท่านั้น!
บั๊กของโลกความเป็นจริง (Real Field)
คณิตศาสตร์บนกระดาษนั้นสมบูรณ์แบบ แต่เมื่อนำมาเขียนโปรแกรมคอมพิวเตอร์กลับเกิดปัญหาใหญ่!
เพราะจุดบนเส้นโค้งแบบดั้งเดิม (Real Field) จะเกิดค่า "ทศนิยมไม่รู้จบ" คอมพิวเตอร์ไม่สามารถเก็บค่าอนันต์ได้ จึงต้อง "ปัดเศษ" (Rounding Error)
ซึ่งในโลกของวิทยาการเข้ารหัสลับ ทศนิยมเพี้ยนเพียง 0.0000001 ลายเซ็นก็พังทลายทันที
ทางออก: สนามจำกัด (Finite Field)
นักคณิตศาสตร์แก้ปัญหานี้โดยการครอบสมการด้วย การหารเอาเศษ (Modulo) ด้วยเลขจำนวนเฉพาะ (Prime Number) ขนาดยักษ์
ผลลัพธ์คือ เส้นโค้งที่เคยต่อเนื่อง ถูกทุบจนแตกกลายเป็น "เม็ดทราย" (Scatter Plot) ที่กระจัดกระจายอยู่ในตารางสี่เหลี่ยม และทุกจุดจะกลายเป็น "เลขจำนวนเต็มเสมอ" (ไม่มีทศนิยมอีกต่อไป) ทำให้คอมพิวเตอร์คำนวณได้แม่นยำ 100% แถมยังป้องกันการเดาสุ่มสกัด (Brute-force) ได้อย่างสมบูรณ์แบบ!
ตัวอย่าง: ในโลกของนาฬิกาที่มี 12 ชั่วโมง
• หากตอนนี้คือ 10 โมง อีก 5 ชั่วโมงข้างหน้าจะเป็น 3 โมง (ไม่ใช่ 15 โมง)
• เพราะตัวเลขจะ "วนกลับ" มาเริ่มต้นใหม่เสมอเมื่อสุดขอบสนามที่เลข 12
ด้วยวิธีนี้ ไม่ว่าเราจะบวกหรือคูณตัวเลขให้ใหญ่แค่ไหน ผลลัพธ์จะ "วนกลับมาเป็นเลขจำนวนเต็ม" อยู่ในตารางที่กำหนดเสมอ ไม่มีทศนิยมมาให้ปวดหัว ทำให้คอมพิวเตอร์คำนวณได้อย่างแม่นยำและปลอดภัย 100%!