I've read a few papers recently that used a notion of security called "indistinguishability from random bits/strings" under chosen plaintext attack, also called IND\$-CPA. See e.g. http://pdf.aminer.org/000/217/279/nonce_based_symmetric_encryption.pdf. The authenticated encryption mode "OCB" is also proved using this notion. This is different from notions I am more familiar with, such as Left-Or-Right (LOR) or Real-Or-Random (ROR), which are generally called IND-CPA. These papers all claim that "it is easy to verify that the IND\$-notion of security implies the IND-notion, and by a tight reduction", but neglect to provide the proof for this implication. So can anyone provide this proof?
Here is the classic LOR definition for IND-CPA, from http://www.cs.ucdavis.edu/~rogaway/papers/sym-enc.pdf, also explained more fully here: http://cseweb.ucsd.edu/~mihir/cse107/w-se.pdf.
A symmetric encryption scheme $\mathcal{S}$ is a set of three algorithms, $\{\mathcal{K}, \mathcal{E}, \mathcal{D}\}$. The randomized key generation algorithm, $\mathcal{K}$, selects a key K uniformly at random from the Key-Space, which is defined by the security parameter $k$ -- Key-Space = $\{0, 1\}^k$. The encryption algorithm $\mathcal{E}$ takes the key K and a plaintext M and outputs either a ciphertext C or the symbol $\bot$ (to indicate the plaintext was not in the domain of $\mathcal{S}$). At this stage I am not restricting what sort of algorithm $\mathcal{E}$ has to be -- it can be randomized (like CBC mode), or stateful (like CTR mode), or deterministic and stateless (like ECB mode, although it's easy to show that any encryption algorithm that is not stateful or randomized is trivially insecure). The decryption algorithm $\mathcal{D}$ is deterministic and stateless, and takes the key K and a ciphertext C and outputs either a plaintext M or the symbol $\bot$ (to indicate the submitted ciphertext was not in the domain of $\mathcal{S}$). $\mathcal{D}$ is the inverse of $\mathcal{E}$, such that $D_K(E_K(M)) = M$ for all M in the domain of $\mathcal{S}$ and all keys in the Key-Space.
The IND-CPA Game
This notion of security can be defined in terms of a game between an Adversary $\mathcal{A}$ and a Challenger who is implementing the encryption scheme $\mathcal{S}$. The Challenger grants $\mathcal{A}$ access to a Left-Or-Right encryption 'oracle' $E_K(\mathcal{LR}(\cdot, \cdot, b))$, which takes queries of the form $(M_0, M_1)$ and returns either $E_K(M_b)$ or the symbol $\bot$ if $|M_0| \neq |M_1|$ (i.e. if the messages were not of the same length).
Here are the steps of the game:
The Challenger picks a security parameter $k$ and uses $\mathcal{K}$ to choose a key K from the Key-Space defined by that security parameter. The Challenger then sends the parameter $k$ to $\mathcal{A}$. If the security parameter is fixed and public then the Challenger does not need to select it or send it to $\mathcal{A}$.
The Challenger selects a value $b$ uniformly at random from the set $\{0, 1\}$ (by, for example, flipping a fair coin). This bit defines how the encryption oracle will behave for the rest of the game -- either it will be a 'Left Oracle' (if $b = 0$), or a 'Right Oracle' (if $b = 1$). The Challenger grants $\mathcal{A}$ access to the now defined oracle, but does not tell $\mathcal{A}$ the value of $b$ (whether the oracle is a Left Oracle or a Right Oracle is a secret).
$\mathcal{A}$ submits queries to the oracle of the form $(M_0, M_1)$, and receives replies that are either the encryption of the left message, $M_0$, or the right message, $M_1$, depending on $b$. $\mathcal{A}$ is allowed to make up to $q_e$ such queries, with a total message-length at most $\mu$ bits, and can adaptively select queries depending on earlier answers (this is an 'adaptive' chosen plaintext attack).
After making all the queries it wants to and/or can, $\mathcal{A}$ outputs a bit, $b'$, which is its best guess as to the value of $b$. If $b' = b$ then $\mathcal{A}$ wins the game, but if $b' \neq b$ then $\mathcal{A}$ loses.
The Advantage of any Adversary $\mathcal{A}$ playing this game is defined as the probability that $\mathcal{A}$ wins minus the probability that $\mathcal{A}$ loses.
$Adv^{lor-cpa}_{\mathcal{S}, \mathcal{A}} = P(\mathcal{A} \textit{ wins}) - P(\mathcal{A} \textit{ loses})$
Typically in security proofs, we attempt to prove an upper bound for the advantage of any adversary making at most $q_e$ queries, totaling at most $\mu$ bits, with a maximum running time of $t$ (the running time of the algorithm that $\mathcal{A}$ uses to devise queries and then decide what guess to make), and for a given security parameter $k$. If the proven upper bound is 'small' for 'reasonable' values for $k, t, q_e$ and $\mu$ then the encryption scheme $\mathcal{S}$ is considered 'provably secure'.
The IND\$-CPA Game
This notion of security is similarly defined in terms of a game between $\mathcal{A}$ and the Challenger implementing $\mathcal{S}$. There is one key difference:
The Challenger again randomly picks $b$, but this time instead of defining either a Left Oracle or a Right Oracle, this bit $b$ determines whether the Challenger will implement a 'Real' Oracle or a 'Fake' Oracle. The Real Oracle takes queries of the form $M$ and returns $E_K(M)$ (i.e. the queries do not come in pairs of equal length messages). The Fake Oracle takes queries of the form $M$ and returns a string selected independently and uniformly at random from the set $\{0, 1\}^{|M|+s}$, where $|M|$ is the length of the query $M$ and $s$ is the 'stretch' of $\mathcal{E}$ (the amount the encryption algorithm expands the ciphertext associated with $M$, e.g. how CBC pads messages that are not divisible by the block-size of the cipher).
The Adversary $\mathcal{A}$ is thus not trying to distinguish between the encryption of $M_0$ and $M_1$, but rather it is trying to distinguish the encryption of $M$ from a random string of the same length. As before, the Advantage of an Adversary is defined as the probability that it correctly guesses the bit $b$ minus the probability that it makes a wrong guess. And as before, if the max Advantage over all ($k, t, q_e, \mu$)-limited Adversaries is sufficiently small for reasonable values for those parameters, then the encryption scheme is 'provably secure'.