My lecture notes state that P-OTP is IND-COA but not IND-CPA insecure. I understand IND-COA secure, assuming PRG is secure, as that is the whole point of a OTP, but why is it IND-CPA insecure? Surely, if the PRG is assumed to be secure, then the resulting ciphertext would be random, so whatever plaintext you feed into the oracle will reveal no information.
I ask this because PRF+OTP is IND-CPA secure and cannot figure out the difference.
$Enc_k(m)=m\oplus PRG(k)$
$Dec_k(c)=c\oplus PRG(k)$
and the IND-CPA adversary game:
- Pick two messages $m_0$ and $m_1$ arbitrarily.
- Send them to the challenger who chooses $b\in\{0,1\}$ uniformly at random and returns you $c_1=Enc_k(m_1)$.
- Output your guess for $b$ named $b'$. You "win" iff $b=b'$.
Edit: screenshots of the relevant slides