Fie acesta experimentul pentru mai multe COA-securitate:
$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 \in [1,t]$
$k\leftarrow Gen(1^n)$
$b \leftarrow \{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)$
dacă $b' = b$ returnează 1 altfel returnează 0
Dacă $PrivK_{\mathcal{A},\Pi}^{mult}(n) = 1$ $\mathcal{A}$ învinge. Pentru ca un criptosistem să aibă această securitate, nu ar trebui să existe un adversar care să câștige acel experiment mai bine decât $1/2 + negl(n)$, Unde $negl(n)$ este o funcție neglijabilă.
Acum vreau să construiesc un criptosistem care să aibă această securitate, dar nu KPA- sau CPA- sau CCA-securitate. Ideea mea:
- $Gen(1^n)$: creează o cheie uniformă aleatorie $k \leftarrow \{0,1\}^n$
- $Enc_k(m)$: Creați un număr aleator uniform $r \leftarrow \{0,1\}^n$ și creează $c = m \oplus PRG(k \oplus r) $. Ieșire $(c,r)$
- $Dec_k((c,r))$: Crea $m = c \oplus PRG(k \oplus r)$ și ieșire $m$
Să presupunem că PRG este un generator pseudo-aleatoriu securizat, atunci acest criptosistem ar trebui să fie securizat multiplu COA (sau mult-EAV-IND-securizat de la Manualul lui Katz & Lindell (ediția a 2-a))
Este corect sau am trecut cu vederea ceva?