ความปลอดภัยของ CCA ดูเหมือนจะสุดโต่งเสมอสำหรับผู้ที่เพิ่งเรียนรู้เกี่ยวกับมัน สมมติฐานดูเหมือนไร้สาระ ทำไมเราถึงให้พลังแก่ผู้โจมตีมากขนาดนี้? เหตุใดเราจึงปล่อยให้ผู้โจมตีถอดรหัสเกือบทุกอย่างที่ต้องการ และเรียนรู้ผลลัพธ์ทั้งหมดของการถอดรหัส
ในโลกแห่งความเป็นจริง เมื่อไหร่ที่เราจะทำหน้าที่เป็นเพียงออราเคิลถอดรหัสให้กับผู้โจมตี?
ฉันต้องการกระตุ้นความปลอดภัยของ CCA ด้วยสองวิธีที่แตกต่างกัน:
(1) ถ้าฉันจดข้อความลับไว้ในซองจดหมาย และคุณไม่เคยแตะต้องซองนั้นเลย คุณจะไม่สามารถบอกได้ว่ามีอะไรอยู่ในซองของฉัน
เกิดอะไรขึ้นถ้าฉันยังตกลงที่จะเปิดใด ๆ อื่นๆ ซองจดหมายในโลก -- นั่นจะช่วยให้คุณรู้ว่ามีอะไรอยู่ข้างในซองจดหมายพิเศษนี้?
ไม่แน่นอน
เหตุใดการถอดรหัสสิ่งที่อยู่ภายใน ciphertext #1 จึงบอกคุณเกี่ยวกับสิ่งที่อยู่ภายใน ciphertext #2
ฉันไม่ต้องการซื้อกล่องซองจดหมายที่มีคุณสมบัตินั้น และฉันก็ไม่ต้องการใช้รูปแบบการเข้ารหัสกับคุณสมบัตินั้น
(2)
คุณคงมีข้อกังขาเกี่ยวกับความปลอดภัยของ CPA เหมือนกัน: ในโลกแห่งความเป็นจริง เราจะปล่อยให้มีผู้โจมตีเมื่อใด เลือกอย่างสมบูรณ์ สิ่งที่เราเข้ารหัส?
นั่นเป็นคำถามที่ถูกต้อง แต่สมมติว่าเรามีข้อกำหนดด้านความปลอดภัยที่ไม่อนุญาตให้ผู้โจมตีมีอิทธิพลต่อการเลือกข้อความธรรมดา เลย.
จากนั้น ทุกครั้งที่เราเข้ารหัสในโลกแห่งความจริง เราต้องแน่ใจอย่างยิ่งว่าข้อความธรรมดามี อิทธิพลเป็นศูนย์ จากผู้โจมตีใดๆ -- นั่นเป็นวิธีเดียวที่เราจะมั่นใจได้ว่าคำจำกัดความความปลอดภัยสมมุติฐานนี้จะนำไปใช้กับสถานการณ์ของเราได้
เนื่องจากไม่เป็นไปตามความเป็นจริง คำจำกัดความด้านความปลอดภัยของเราจึงต้องอนุญาตให้ผู้โจมตีมีอย่างน้อย บาง มีอิทธิพลต่อข้อความธรรมดาที่ถูกเข้ารหัส
แต่มันไม่ได้ทำให้เป็นประโยชน์ คำนิยาม เพื่อให้ผู้โจมตีมีอิทธิพลบางส่วนที่กำหนดไว้อย่างแปลกประหลาดเหนือการเลือกข้อความธรรมดา
ระดับของอิทธิพลในโลกแห่งความเป็นจริงนั้นขึ้นอยู่กับแอปพลิเคชันเฉพาะเป็นอย่างมาก และเราไม่ต้องการคำจำกัดความด้านความปลอดภัยที่แตกต่างกันนับล้านสำหรับสถานการณ์แอปพลิเคชันที่แตกต่างกันนับล้าน
สิ่งที่ง่ายที่สุดที่จะทำคือข้อกำหนดด้านความปลอดภัยของ CPA ทำ: เราอาจตั้งเป้าหมายที่จะป้องกันผู้โจมตีด้วยเช่นกัน เลือกอย่างสมบูรณ์ ข้อความธรรมดาใดที่เข้ารหัส!
แม้ว่าการควบคุมของฝ่ายตรงข้ามอย่างเต็มรูปแบบเหนือข้อความธรรมดาจะไม่สะท้อนถึง เดี่ยว สถานการณ์ที่เหมือนจริง เป็นเรื่องทั่วไปเพียงพอที่จะนำไปใช้ได้ดีกับทุกสถานการณ์ที่ผู้โจมตีมีอยู่ บาง มีอิทธิพลต่อการเลือกข้อความธรรมดา
สถานการณ์ที่คล้ายกันนี้เกี่ยวข้องกับการถอดรหัส
คุณนึกภาพเว็บเซิร์ฟเวอร์ที่ยอมรับข้อความเข้ารหัสจากโลกภายนอก ถอดรหัสข้อความเข้ารหัสเหล่านั้น แล้วทำบางสิ่งตามผลลัพธ์ของการถอดรหัส (เช่น หากผลลัพธ์ของการถอดรหัสคือสิ่งนี้ ให้ทำสิ่งนี้ ไม่เช่นนั้นให้ทำอย่างนั้น)
หากฟังดูเป็นธรรมชาติ คำจำกัดความด้านความปลอดภัยของคุณจะต้องทำให้ผู้โจมตีสามารถเรียนรู้ได้ บางสิ่งบางอย่าง เกี่ยวกับผลลัพธ์ของการถอดรหัสบนข้อความไซเฟอร์ที่สร้างขึ้นโดยฝ่ายตรงข้าม (คำจำกัดความของ CPA ไม่ได้ครอบคลุมถึงสถานการณ์นี้)
ดังนั้นผู้โจมตีควรได้รับข้อมูลเท่าใด
ในโลกแห่งความเป็นจริง คำตอบสำหรับคำถามนี้ขึ้นอยู่กับแอปพลิเคชันนั้นเป็นอย่างมาก
หากเราต้องการข้อกำหนดด้านความปลอดภัยสำหรับวัตถุประสงค์ทั่วไป ซึ่งนำไปใช้กับสถานการณ์จริงหลายๆ สถานการณ์ ดังนั้นข้อกำหนดด้านความปลอดภัยนั้นควรให้อำนาจแก่ผู้โจมตีมากที่สุดเท่าที่จะเป็นไปได้
ในกรณีนี้ ควรปล่อยให้ผู้โจมตีสามารถถอดรหัสได้ตามต้องการอย่างอิสระ และเรียนรู้ผลลัพธ์ทั้งหมดของการถอดรหัส (ยกเว้นวิธีที่ทำให้เกมความปลอดภัยดูไม่สำคัญ)
การรักษาความปลอดภัย CCA ไม่ได้มีไว้เพื่อสะท้อนถึงสถานการณ์จริงเพียงสถานการณ์เดียว ซึ่งเราเปิดเผยออราเคิลการถอดรหัสเต็มรูปแบบแก่ผู้โจมตี
ค่อนข้างจะหมายถึงทั่วไปพอที่จะ ใดๆ สถานการณ์ที่ผู้โจมตีเรียนรู้ บางสิ่งบางอย่าง เกี่ยวกับผลลัพธ์ของการถอดรหัส ciphertexts ที่สร้างขึ้นโดยฝ่ายตรงข้าม