ขั้นที่ 3 จาก 4
ทางแก้
คณิตศาสตร์ใหม่เบื้องหลังอัลกอริทึมหลังยุคควอนตัม ตระกูลที่ได้รับการกำหนดเป็นมาตรฐาน และทำไมระบบวันนี้จึงใช้แบบเก่าและใหม่ร่วมกัน
เขียนโดย Bhumipat Nunthaboct
ทางแก้: ปัญหาที่ยากสำหรับคอมพิวเตอร์ทั้งสองแบบ
การเข้ารหัสลับหลังยุคควอนตัมทำงานบนคอมพิวเตอร์ทั่วไป โดยเปลี่ยนจากการแยกตัวประกอบและลอการิทึมไม่ต่อเนื่อง ไปใช้ปัญหาที่ยังไม่มีอัลกอริทึมควอนตัมที่แก้ได้อย่างมีประสิทธิภาพ
หาจุดที่ใกล้ที่สุด
ระบบแบบแลตทิซซ่อนความลับไว้หลังสัญญาณรบกวน ในสองมิติ การหาจุดแลตทิซที่ใกล้เป้าหมายที่สุดนั้นง่าย แต่ ML-KEM-768 ทำงานใน 768 มิติ ซึ่งยังไม่มีอัลกอริทึมดั้งเดิมหรือควอนตัมที่ทำได้อย่างมีประสิทธิภาพ
Module lattice
เร็ว ขนาดปานกลาง เป็นตัวเลือกหลัก
- ML-KEMFIPS 203· แลกเปลี่ยนกุญแจ
- ML-DSAFIPS 204· ลายเซ็น
อิงฟังก์ชันแฮช
ความปลอดภัยขึ้นกับฟังก์ชันแฮชเท่านั้น อนุรักษนิยม แต่ลายเซ็นใหญ่
- SLH-DSAFIPS 205· ลายเซ็น
- LMS / XMSSSP 800-208· ลายเซ็น
NTRU lattice
ลายเซ็นเล็ก แต่ implement ยากกว่า (ใช้ทศนิยมลอยตัว)
- FN-DSAFIPS 206· ลายเซ็นอยู่ระหว่างพัฒนา
รหัสแก้ไขข้อผิดพลาด
KEM สำรองที่ใช้คณิตศาสตร์ต่างจาก ML-KEM
- HQCFIPS 207· แลกเปลี่ยนกุญแจอยู่ระหว่างพัฒนา
PQC ไม่ใช่ "การเข้ารหัสควอนตัม" ไม่ต้องใช้ฮาร์ดแวร์ควอนตัมหรือสายสื่อสารพิเศษ การแจกจ่ายกุญแจควอนตัม (QKD) เป็นอีกเรื่องหนึ่ง
แบบผสม: กันไว้สองชั้น
ระบบที่ใช้งานวันนี้รันการแลกเปลี่ยนกุญแจแบบดั้งเดิมและแบบหลังยุคควอนตัมพร้อมกัน แล้วรวมผลเข้าด้วยกัน ผู้โจมตีต้องทำลายได้ทั้งคู่
- 1Client ส่ง key share สองชุดClientHello มีกุญแจสาธารณะ X25519 (32 ไบต์) และกุญแจ encapsulation ของ ML-KEM-768 (1,184 ไบต์)
- 2Server ตอบกลับServer ส่งกุญแจ X25519 ของตัวเอง (32 ไบต์) และ ciphertext ของ ML-KEM (1,088 ไบต์) ที่ห่อความลับใหม่ไว้ให้ client
- 3ได้ความลับร่วมสองชุดทั้งสองฝั่งมีความลับ X25519 ชุดเดียวกัน และความลับ ML-KEM ชุดเดียวกัน โดยความลับไม่เคยถูกส่งผ่านเครือข่ายเลย
- 4รวมเป็นกุญแจเซสชันนำความลับสองชุดมาต่อกัน (ML-KEM ก่อน) แล้วป้อนเข้า key schedule ของ TLS เพื่อสร้างกุญแจเซสชัน
- 5เจอผู้โจมตีควอนตัมคอมพิวเตอร์ควอนตัมอาจทำลายส่วน X25519 ได้ แต่ทำลาย ML-KEM ไม่ได้ กุญแจที่รวมกันจึงยังเป็นความลับ
ถ้า ML-KEM มีจุดอ่อนที่ยังไม่มีใครพบ X25519 ยังป้องกันผู้โจมตีในปัจจุบันได้
เมื่อคอมพิวเตอร์ควอนตัมมาถึง ML-KEM ยังคงปลอดภัย
X25519MLKEM768 เปิดใช้โดยค่าเริ่มต้นใน Chrome, Edge และ Firefox รุ่นปัจจุบัน และ Cloudflare เลือกใช้ให้อัตโนมัติ
การเชื่อมต่อของคุณใช้หรือยัง →เจาะลึกเชิงเทคนิค
ML-KEM สร้างบน Module-LWE: เมื่อรู้เมทริกซ์สาธารณะ A และ b = A·s + e โดย s เป็นความลับขนาดเล็กและ e เป็นค่าคลาดเคลื่อนขนาดเล็ก ให้หา s ML-KEM-768 ใช้เมทริกซ์ 3×3 ของพหุนามดีกรี 256 ที่สัมประสิทธิ์เป็น mod q = 3329
การแปลงแบบ Fujisaki–Okamoto ทำให้ KEM ปลอดภัยจากการโจมตีแบบเลือก ciphertext: ขั้นตอน decapsulation จะเข้ารหัสซ้ำแล้วเปรียบเทียบ และปฏิเสธ ciphertext ที่ถูกแก้ไขแบบไม่บอกผู้โจมตี
ใน TLS 1.3 X25519MLKEM768 เป็น NamedGroup เดียว (0x11EC) key share ของ client คือกุญแจ encapsulation ของ ML-KEM-768 (1,184 ไบต์) ตามด้วยกุญแจสาธารณะ X25519 (32 ไบต์) ส่วน server ตอบด้วย ciphertext (1,088 ไบต์) และ share ของ X25519 ความลับที่ได้คือความลับของ ML-KEM ต่อด้วยความลับของ X25519