เป็นการทดลองสำหรับการรักษาความปลอดภัย COA หลายรายการ:
$PrivK_{\mathcal{A},\Pi}^{mult}(n)$:
$(m_0^1 , ... , m_0^t,m_1^1 , ... , m_1^t) \leftarrow \mathcal{A}(1^n), |m_0^i|=|m_1^i| \forall i \ใน [1,t]$
$k\leftarrow Gen(1^n)$
$b \ลูกศรซ้าย \{0,1\}$
$C = (c_b^1 , ... , c_b^t) \leftarrow (Enc_k(m_b^1) , ... , Enc_k(m_b^t))$
$b' \leftarrow \mathcal{A}(C)$
ถ้า $b' = b$ กลับ 1 อื่นกลับ 0
ถ้า $PrivK_{\mathcal{A},\Pi}^{mult}(n) = 1$ $\คณิตศาสตร์แคล{A}$ ชนะ เพื่อให้ระบบเข้ารหัสมีการรักษาความปลอดภัยนั้น ไม่ควรมีศัตรูที่ชนะการทดสอบนั้นได้ดีกว่า $1/2 + เนเกิล(n)$, ที่ไหน $negl(n)$ เป็นฟังก์ชันเล็กน้อย
ตอนนี้ฉันต้องการสร้างระบบเข้ารหัสที่มีการรักษาความปลอดภัยนี้ แต่ไม่มีความปลอดภัย KPA- หรือ CPA- หรือ CCA ความคิดของฉัน:
- $Gen(1^n)$: สร้างคีย์สุ่มแบบเดียวกัน $k \leftarrow \{0,1\}^n$
- $Enc_k(ม)$: สร้างตัวเลขสุ่มแบบเดียวกัน $r \leftarrow \{0,1\}^n$ และสร้าง $c = m \oplus PRG(k \oบวก r) $. เอาต์พุต $(ค,ร)$
- $Dec_k((ค,ร))$: สร้าง $m = c \oplus PRG(k \oบวก r)$ และเอาต์พุต $m$
สมมติว่า PRG เป็นตัวสร้างการสุ่มหลอกที่ปลอดภัย ดังนั้นระบบเข้ารหัสนี้ควรเป็น COA ที่ปลอดภัยหลายรายการ (หรือหลาย EAV-IND-secure จาก ตำราของ Katz & Lindell (พิมพ์ครั้งที่ 2))
ถูกต้องหรือฉันมองข้ามบางสิ่งไป?