จำได้ว่าฝ่ายตรงข้ามในเกมความปลอดภัย IND-CPA ได้รับ "oracle ซ้าย-ขวา":
$$\mathsf{LR}(m_0,m_1) := \mathsf{Enc}_{pk}(m_b)$$
ที่ไหน $b\in\{0,1\}$ เป็นความลับที่ฝ่ายตรงข้ามต้องพยายามกู้คืน
สมมติว่ามีฝ่ายตรงข้ามที่พบว่าข้อความเข้ารหัสทั้งสองถูกเข้ารหัสจากข้อความธรรมดาเดียวกัน
ในข้างต้นคุณจะเห็นว่ามีเพียง หนึ่ง ข้อความเข้ารหัสแม้ว่า --- $\mathsf{LR}(m_0,m_1)$ คืนค่า เดี่ยว ไซเฟอร์เท็กซ์ $\mathsf{Enc}_{pk}(m_b)$. หมายความว่าฉันไม่แน่ใจ 100% เกี่ยวกับสิ่งที่คุณตั้งใจจะถาม หากเราแก้ไขคำถามของคุณเป็น:
สมมติว่ามีศัตรู $\คณิตศาสตร์แคล{A}$ ใครให้สองไซเฟอร์เท็กซ์โดยพลการ $c, c'$ เข้ารหัสภายใต้คีย์สาธารณะเดียวกันสามารถระบุได้ว่าเข้ารหัสสิ่งเดียวกันหรือไม่ --- ความหมายสามารถตอบคำถามได้
$$\mathsf{ธ.ค}_{sk}(c)\stackrel{?}{=}\mathsf{ธ.ค}_{sk}(c')$$
ฝ่ายตรงข้ามนี้สามารถทำลายความปลอดภัยของ IND-CPA ได้หรือไม่
คำตอบคือ ใช่.
การโจมตีนั้นง่าย --- สำหรับความแตกต่าง $m_0, m_1, m_2$สอบถาม $c\gets \mathsf{LR}(m_0, m_1)$, $c'\gets \mathsf{LR}(m_2, m_1)$. หากฝ่ายตรงข้ามตัดสินว่า $c, c'$ เข้ารหัสข้อความเดียวกัน จากนั้นทั้งสอง $\mathsf{LR}$ ข้อความค้นหาเข้ารหัส $m_1$, เช่น. $b = 1$. มิฉะนั้น, $b = 0$.
นี่เป็นรากฐานของผลลัพธ์ที่ค่อนข้างพื้นฐานในการเข้ารหัสคีย์สาธารณะ
การเข้ารหัสคีย์สาธารณะที่กำหนดไม่ได้
ฉันคิดว่าการอ้างอิงสำหรับสิ่งนี้คือ Goldwasser-Micali 1982 แต่ไม่ว่าจะมีรายละเอียดอย่างไร มันเป็นหนึ่งในผลลัพธ์ "แรกเริ่ม" ในการเข้ารหัสเชิงทฤษฎี
เพื่อพิสูจน์สิ่งนี้ สิ่งที่คุณต้องทำคือสังเกตว่าถ้า $\mathsf{LR}$ เป็นตัวกำหนดสร้างศัตรู $\คณิตศาสตร์แคล{A}$ ที่เรากล่าวถึงก่อนหน้านี้ค่อนข้างง่าย (ฉันจะให้คุณคิดวิธีการ)
จากนั้นเราสามารถติดตั้งการโจมตีที่เรากล่าวถึงก่อนหน้านี้