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

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

ต้นทุน และจะเริ่มอย่างไร

กุญแจและลายเซ็นหลังยุคควอนตัมใหญ่กว่าเดิม สิ่งนี้มีผลอย่างไรในทางปฏิบัติ และองค์กรควรเริ่มจากตรงไหน

เขียนโดย

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

ต้นทุน: ข้อมูลใหญ่ขึ้น

กุญแจและลายเซ็นหลังยุคควอนตัมใหญ่กว่ามาก การแลกเปลี่ยนกุญแจรับไหว แต่สายใบรับรองซึ่งมีลายเซ็นและกุญแจหลายชุดคือส่วนที่ย้ายยากกว่า

การแลกเปลี่ยนกุญแจ: ไบต์ที่ส่งต่อ TLS handshakeแบบดั้งเดิมหลังยุคควอนตัม
  • X2551964
  • X25519MLKEM7682,336

ส่วนของ client + ส่วนของ server, X25519MLKEM768: 1,216 + 1,120

ขนาดลายเซ็น (ไบต์)แบบดั้งเดิมหลังยุคควอนตัม
  • Ed2551964
  • ECDSA P-25664
  • RSA-2048256
  • ML-DSA-442,420
  • ML-DSA-653,309
  • SLH-DSA-128s7,856

รูปแบบดิบ ECDSA แสดงเป็น r‖s ไม่มี DER

ผลในทางปฏิบัติ

04,0008,00012,00016,000ECDSA P-256448 B2 × 64 + 5 × 64ML-DSA-4414,724 B2 × 1,312 + 5 × 2,420~14.6 KB: ข้อมูลรอบแรกของการเชื่อมต่อ TCP ใหม่Merkle Tree Certificates → fewer signatures
  1. 1วันนี้: ECDSAhandshake ทั่วไปมีกุญแจสาธารณะราว 2 ชุดและลายเซ็น 5 ชุด (ใบรับรอง, Certificate Transparency และตัว handshake) ถ้าใช้ ECDSA P-256 รวมราว 448 ไบต์
  2. 2เปลี่ยนทั้งหมดเป็น ML-DSA-44กุญแจ 2 ชุดและลายเซ็น 5 ชุดแบบเดียวกันด้วย ML-DSA-44 รวมเป็น 14,724 ไบต์ มากกว่าเดิมราว 33 เท่า
  3. 3ทำไมจึงสำคัญการเชื่อมต่อ TCP ใหม่มักส่งได้ราว 10 แพ็กเก็ต (~14.6 KB) ก่อนต้องรอการตอบกลับ ข้อมูลยืนยันตัวตนขนาดนี้รวมกับส่วนอื่นของ handshake อาจทำให้ต้องรอเพิ่มอีกหนึ่งรอบ
  4. 4ทางออกแนวทางอย่าง Merkle Tree Certificates ลดจำนวนลายเซ็นที่เบราว์เซอร์ต้องรับ นี่คือเหตุที่ใบรับรองหลังยุคควอนตัมไปช้ากว่าการแลกเปลี่ยนกุญแจ

TLS handshake

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

ใบรับรอง

สายใบรับรองที่ใช้กุญแจและลายเซ็น ML-DSA เพิ่มข้อมูลหลายกิโลไบต์ในทุก handshake นี่คือเหตุที่ใบรับรองหลังยุคควอนตัมไปช้ากว่าการแลกเปลี่ยนกุญแจ

อุปกรณ์ทรัพยากรจำกัด

สมาร์ตการ์ด IoT และการอัปเดตเฟิร์มแวร์ได้รับผลจากขนาดและหน่วยความจำมากที่สุด

เริ่มจากตรงไหน

  1. 1ทำบัญชีว่าใช้การเข้ารหัสแบบกุญแจสาธารณะที่ไหนบ้าง: TLS, VPN, SSH, code signing, PKI, HSM
  2. 2จัดลำดับความสำคัญให้ข้อมูลที่ต้องเป็นความลับหลายปี และระบบที่มีอายุการใช้งานยาว
  3. 3เปิดใช้การแลกเปลี่ยนกุญแจแบบผสมในจุดที่ระบบรองรับ (TLS 1.3, OpenSSH รุ่นใหม่)
  4. 4สอบถามผู้ขายถึงแผนและกำหนดการด้าน post-quantum
  5. 5สร้าง crypto agility: ทำให้เปลี่ยนอัลกอริทึมได้ง่าย เพื่อให้การเปลี่ยนครั้งต่อไปถูกลง
เจาะลึกเชิงเทคนิค

ขนาดเป็นไบต์ (FIPS 203/204/205): กุญแจ encapsulation ของ ML-KEM-768 1,184, ciphertext 1,088; กุญแจสาธารณะ ML-DSA-65 1,952, ลายเซ็น 3,309; กุญแจสาธารณะ SLH-DSA-SHA2-128s 32, ลายเซ็น 7,856 SLH-DSA มีกุญแจเล็กมากแต่ลายเซ็นใหญ่มาก ข้อแลกเปลี่ยนจึงต่างกันในแต่ละอัลกอริทึม

TLS handshake หนึ่งครั้งมักมีลายเซ็นและกุญแจสาธารณะหลายชุด: สายใบรับรอง, timestamp ของ Certificate Transparency และลายเซ็นของ handshake เอง ขนาดลายเซ็นจึงทวีคูณ