ข้ามไปยังเนื้อหา
PQC Portal

ขั้นที่ 3 จาก 4

ทางแก้

คณิตศาสตร์ใหม่เบื้องหลังอัลกอริทึมหลังยุคควอนตัม ตระกูลที่ได้รับการกำหนดเป็นมาตรฐาน และทำไมระบบวันนี้จึงใช้แบบเก่าและใหม่ร่วมกัน

เขียนโดย

  1. ขั้นที่ 1: พื้นฐานควอนตัม
  2. ขั้นที่ 2: ภัยคุกคาม
  3. ขั้นที่ 3: ทางแก้
  4. ขั้นที่ 4: ต้นทุน และจะเริ่มอย่างไร

ทางแก้: ปัญหาที่ยากสำหรับคอมพิวเตอร์ทั้งสองแบบ

การเข้ารหัสลับหลังยุคควอนตัมทำงานบนคอมพิวเตอร์ทั่วไป โดยเปลี่ยนจากการแยกตัวประกอบและลอการิทึมไม่ต่อเนื่อง ไปใช้ปัญหาที่ยังไม่มีอัลกอริทึมควอนตัมที่แก้ได้อย่างมีประสิทธิภาพ

b₁b₂เป้าหมายจุดแลตทิซที่ใกล้ที่สุด?

หาจุดที่ใกล้ที่สุด

ระบบแบบแลตทิซซ่อนความลับไว้หลังสัญญาณรบกวน ในสองมิติ การหาจุดแลตทิซที่ใกล้เป้าหมายที่สุดนั้นง่าย แต่ 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) เป็นอีกเรื่องหนึ่ง

ดูตัวติดตามมาตรฐาน →

แบบผสม: กันไว้สองชั้น

ระบบที่ใช้งานวันนี้รันการแลกเปลี่ยนกุญแจแบบดั้งเดิมและแบบหลังยุคควอนตัมพร้อมกัน แล้วรวมผลเข้าด้วยกัน ผู้โจมตีต้องทำลายได้ทั้งคู่

ClientServerX25519 · 32 BML-KEM key · 1,184 BX25519 · 32 BML-KEM ciphertext · 1,088 Bss · X25519ss · ML-KEMss · X25519ss · ML-KEMกุญแจเซสชันML-KEM ‖ X25519ผู้โจมตีควอนตัม✓ ยังปลอดภัย
  1. 1Client ส่ง key share สองชุดClientHello มีกุญแจสาธารณะ X25519 (32 ไบต์) และกุญแจ encapsulation ของ ML-KEM-768 (1,184 ไบต์)
  2. 2Server ตอบกลับServer ส่งกุญแจ X25519 ของตัวเอง (32 ไบต์) และ ciphertext ของ ML-KEM (1,088 ไบต์) ที่ห่อความลับใหม่ไว้ให้ client
  3. 3ได้ความลับร่วมสองชุดทั้งสองฝั่งมีความลับ X25519 ชุดเดียวกัน และความลับ ML-KEM ชุดเดียวกัน โดยความลับไม่เคยถูกส่งผ่านเครือข่ายเลย
  4. 4รวมเป็นกุญแจเซสชันนำความลับสองชุดมาต่อกัน (ML-KEM ก่อน) แล้วป้อนเข้า key schedule ของ TLS เพื่อสร้างกุญแจเซสชัน
  5. 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