นี่ ก สรุปสถานการณ์:
ไตรมาสที่ 1 เหตุผลหลักที่ระบบแลกเปลี่ยนคีย์บางระบบไม่สามารถใช้กับคีย์แบบสแตติกได้คือ การโจมตีแบบไซเฟอร์เท็กซ์ที่เลือก. ธีมทั่วไปคือไคลเอ็นต์ที่เป็นอันตรายส่งข้อความแลกเปลี่ยนคีย์ที่มีการจัดการไปยังเซิร์ฟเวอร์ ซึ่งทำให้ไคลเอนต์สามารถดึงข้อมูลบางส่วนเกี่ยวกับคีย์ลับแบบคงที่ของเซิร์ฟเวอร์ด้วยการสืบค้นแต่ละครั้ง
บางทีตัวอย่างที่รู้จักกันดีที่สุดคือการโจมตีด้วยเส้นโค้งที่ไม่ถูกต้อง (ใช้งานไม่ถูกต้อง) ECDH: ที่นี่ ผู้โจมตีส่งจุดเป็นคีย์สาธารณะของเขาซึ่งไม่ได้อยู่บนเส้นโค้งที่ถูกต้อง และผลลัพธ์ของการแลกเปลี่ยนคีย์ปลอมจะทำให้ข้อมูลรั่วไหล เกี่ยวกับคีย์ลับ (เช่น โมดูโลตกค้าง นายกเล็ก) ขณะนี้ใน ECDH ปัญหานี้แก้ไขได้โดย ตรวจสอบคีย์สาธารณะ ก่อนที่จะประมวลผลในการแลกเปลี่ยนคีย์ (เช่น ตรวจสอบว่าจุดที่กำหนดอยู่บนเส้นโค้งที่ต้องการ) ดังนั้นในปัจจุบันจึงถือว่าเป็นข้อผิดพลาดในการใช้งานหากมีช่องโหว่นี้อยู่ในไลบรารีการเข้ารหัส
น่าเสียดายที่การรั่วไหลของข้อมูลที่อาจเกิดขึ้นในลักษณะเดียวกันนี้มีอยู่ในกระบวนทัศน์เกือบทั้งหมดที่ใช้ในการสร้างการแลกเปลี่ยนคีย์หลังควอนตัม ดูตัวอย่าง ที่นี่ หรือ ที่นี่ หรือ ที่นี่ (§2.4) และน่าเสียดายยิ่งกว่านั้น โดยทั่วไปแล้วการหลีกเลี่ยงปัญหานี้ ไม่ ง่ายพอๆ กับ ECDH ตัวอย่างเช่น เราสามารถแสดงความแตกต่างของคีย์ SIDH ที่ถูกดัดแปลงจากคีย์ที่สร้างขึ้นโดยสุจริตได้ ยากพอๆ กับการทำลายแผนการ (และฉันคิดว่าข้อโต้แย้งที่คล้ายกันจะใช้ได้กับโครงสร้างขัดแตะและโค้ด แต่ฉันไม่ค่อยคุ้นเคยกับสิ่งเหล่านั้น)
วิธีแก้ปัญหาที่ใช้โดยระบบแลกเปลี่ยนคีย์หลังควอนตัมกระแสหลักคือ Fujisaki–Okamoto แปลงร่าง (หรือรูปแบบใดรูปแบบหนึ่ง) โดยพื้นฐานแล้ว สิ่งแรกที่ลูกค้าส่งโดยใช้เนื้อหาหลักที่เจรจาใหม่คือ การเข้ารหัสรหัสลับของพวกเขา ที่ใช้สำหรับการแลกเปลี่ยนคีย์ จากนั้นเซิร์ฟเวอร์จะคำนวณคีย์สาธารณะใหม่ที่เกี่ยวข้องกับคีย์ลับนั้น และจะยกเลิกการเชื่อมต่อทันทีหากพับลิกคีย์ที่ได้ไม่เท่ากับคีย์ที่ได้รับจากไคลเอ็นต์ก่อนหน้านี้ดังนั้น พฤติกรรมจากมุมมองของลูกค้าที่ไม่ซื่อสัตย์จะเหมือนกันในทุกกรณี—การเชื่อมต่อขาดหาย—ดังนั้นจึงไม่สามารถแยกข้อมูลใด ๆ ได้ เห็นได้ชัดว่า แม้ว่าสิ่งนี้จะทำให้เซิร์ฟเวอร์สามารถใช้คู่คีย์แบบคงที่ได้ แต่ไคลเอ็นต์ยังคงต้องสร้างคู่คีย์ชั่วคราวใหม่ทุกครั้ง เนื่องจากเซิร์ฟเวอร์จะเรียนรู้ความลับ
กล่าวอีกนัยหนึ่ง ดั้งเดิมที่ได้รับจากการแปลง FO นั้นเป็น CCA-secure เคม.
โดยสรุป คำตอบสำหรับคำถามของคุณคือ: สามารถใช้คีย์ซ้ำได้หากไม่สามารถโจมตีด้วยข้อความเข้ารหัสที่เลือกได้ ไม่ว่าจะโดยการใช้การแปลงที่คล้าย FO หรือโดยการให้เหตุผลอย่างอื่นว่าระบบไม่อ่อนแอ
ไตรมาสที่ 2 CSIDH คล้ายกับ ECDH ตรงที่ สามารถ แยกแยะคีย์สาธารณะที่ถูกต้องและไม่ถูกต้องได้อย่างมีประสิทธิภาพ (และค่อนข้างน่าขบขัน กระบวนการตรวจสอบเกือบจะเหมือนกันสำหรับ ECDH และ CSIDH) ดังนั้น คีย์สาธารณะที่ถูกปรับแต่งจึงไม่ใช่ปัญหา และเราสามารถใช้การดำเนินการกลุ่มแบบทางเดียว CSIDH "วานิลลา" กับคีย์แบบคงที่ได้
ในทางตรงกันข้าม รูปแบบการแลกเปลี่ยนคีย์อื่น ๆ ทั้งหมดที่คุณระบุไว้ได้รวมรูปแบบการแปลง FO บางส่วนเพื่อให้ได้ความปลอดภัย CCA ซึ่งหมายความว่า หนึ่ง ปาร์ตี้สามารถใช้คู่คีย์คงที่ได้ แต่อีกคู่หนึ่งไม่สามารถทำได้ โดยทั่วไป สมมติฐานเริ่มต้นสำหรับระบบเข้ารหัสใดๆ ควรเป็นว่าการโจมตีแบบไซเฟอร์เท็กซ์ที่เลือกนั้นเป็นปัญหา เว้นแต่จะไม่ได้รับการยกเว้น