ขั้นที่ 4 จาก 4
ต้นทุน และจะเริ่มอย่างไร
กุญแจและลายเซ็นหลังยุคควอนตัมใหญ่กว่าเดิม สิ่งนี้มีผลอย่างไรในทางปฏิบัติ และองค์กรควรเริ่มจากตรงไหน
เขียนโดย Bhumipat Nunthaboct
ต้นทุน: ข้อมูลใหญ่ขึ้น
กุญแจและลายเซ็นหลังยุคควอนตัมใหญ่กว่ามาก การแลกเปลี่ยนกุญแจรับไหว แต่สายใบรับรองซึ่งมีลายเซ็นและกุญแจหลายชุดคือส่วนที่ย้ายยากกว่า
- 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
ผลในทางปฏิบัติ
- 1วันนี้: ECDSAhandshake ทั่วไปมีกุญแจสาธารณะราว 2 ชุดและลายเซ็น 5 ชุด (ใบรับรอง, Certificate Transparency และตัว handshake) ถ้าใช้ ECDSA P-256 รวมราว 448 ไบต์
- 2เปลี่ยนทั้งหมดเป็น ML-DSA-44กุญแจ 2 ชุดและลายเซ็น 5 ชุดแบบเดียวกันด้วย ML-DSA-44 รวมเป็น 14,724 ไบต์ มากกว่าเดิมราว 33 เท่า
- 3ทำไมจึงสำคัญการเชื่อมต่อ TCP ใหม่มักส่งได้ราว 10 แพ็กเก็ต (~14.6 KB) ก่อนต้องรอการตอบกลับ ข้อมูลยืนยันตัวตนขนาดนี้รวมกับส่วนอื่นของ handshake อาจทำให้ต้องรอเพิ่มอีกหนึ่งรอบ
- 4ทางออกแนวทางอย่าง Merkle Tree Certificates ลดจำนวนลายเซ็นที่เบราว์เซอร์ต้องรับ นี่คือเหตุที่ใบรับรองหลังยุคควอนตัมไปช้ากว่าการแลกเปลี่ยนกุญแจ
TLS handshake
ClientHello ใหญ่เกินหนึ่งแพ็กเก็ต เครือข่ายส่วนใหญ่รับได้ แต่ middlebox รุ่นเก่าบางตัวที่คาดว่า ClientHello จะเล็กเกิดปัญหาตอนเบราว์เซอร์เริ่มเปิดใช้
ใบรับรอง
สายใบรับรองที่ใช้กุญแจและลายเซ็น ML-DSA เพิ่มข้อมูลหลายกิโลไบต์ในทุก handshake นี่คือเหตุที่ใบรับรองหลังยุคควอนตัมไปช้ากว่าการแลกเปลี่ยนกุญแจ
อุปกรณ์ทรัพยากรจำกัด
สมาร์ตการ์ด IoT และการอัปเดตเฟิร์มแวร์ได้รับผลจากขนาดและหน่วยความจำมากที่สุด
เริ่มจากตรงไหน
- 1ทำบัญชีว่าใช้การเข้ารหัสแบบกุญแจสาธารณะที่ไหนบ้าง: TLS, VPN, SSH, code signing, PKI, HSM
- 2จัดลำดับความสำคัญให้ข้อมูลที่ต้องเป็นความลับหลายปี และระบบที่มีอายุการใช้งานยาว
- 3เปิดใช้การแลกเปลี่ยนกุญแจแบบผสมในจุดที่ระบบรองรับ (TLS 1.3, OpenSSH รุ่นใหม่)
- 4สอบถามผู้ขายถึงแผนและกำหนดการด้าน post-quantum
- 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 เอง ขนาดลายเซ็นจึงทวีคูณ