I think I have some sense of what Perfect Security means, and even Semantic Security, but I am struggling with randomness, so I'm going to ask a question about CSPRG's (Cryptographically Secure PRG's) by going through the first two.
The basic idea that leads to the notion of Perfect Security, as I understand it, is that given a ciphertext $c$, and a message $m$, there are a certain number of keys that might turn $m$ into $c$. If someone shows me $c,$ and tells me that keys are chosen uniformly in some space, then a message $m$ that has many keys that will encrypt it into $c$ is far more likely to be the original than a message $m'$ that has few keys that will turn it into $c$. In this way, some probabilistic information might be leaked about the nature of the original message. Perfect secrecy rules out this leak by saying that given a $c$, the number of keys must always be the same regardless of $m$.
One time "Semantic Security" codifies this as a game. I give you $m$ and $m'$, you give me $c$, and I try to guess whether it's more likely that you encrypted $m$ or $m'$. If lots of keys would change $m$ into $c$, but only few would change it into $m'$, then I have an advantage in my guess of which one you encrypted.
So now let's suppose we have a function $G$ that takes a seed and gives me a key, and I want to use this as a stream cypher, calculating $c = G(s) \oplus m$. Let's play the semantic security game with $m$, $m'$. Once given $c$, the attacker now knows that the key was either $m \oplus c$ or $m' \oplus c$. So the question the attacker will ask himself is:
Are there more seeds $s$, such that $G(s) = m \oplus c$? Or, $G(s) = m' \oplus c$?
If they can answer this question, then they might be able to get an advantage. The question I want to answer now is: what characteristics does $G$ have to have so that the attacker can not get an advantage?
Well, suppose it was $m$ that was encrypted, but the attacker doesn't yet know this. Then:
$$s = G^{-1}(m \oplus c)$$
At the same time, the attacker is going to be inspecting $G^{-1}(m' \oplus c)$ to see if it's possible that this could be a seed. Since the key space is the message space is the ciphertext space, and all are much larger than the seed space, $m' \oplus c$ is going to range over things that are not mapped to by $G$. So there are choices of $m'$, even a lot of choices, for which $G^{-1}(m' \oplus c) = \emptyset$. Therefore, we can not hope to find, as we did in the case of perfect security, that the number of seeds is invariant as we change the message.
The only other option I can see is that we must hope that there is no effective means of inverting the function $G$. If there is, then we're lost, as the attacker has an effective way of finding out whether they have a seed or not; and for a lot of choices of $m'$ s/he won't. That will give the attacker a very large advantage.
So, my question is how we relate this requirement for the lack of an effective inverse, into the usual definition of a Cryptographically Secure PRG? And indeed, what is the definition of a CSPRG? Dan Boneh describes it as a kind of "computational indistiguishability" of two measures (the uniform measure on the key space and the push forward of the uniform measure on the seed space). And he claims that by Yao it's equivalent to a notion of "unpredictability". Could someone hash these three different things together for me? Finally, in this question, D.W. mentions an "asymptotic" (and not very good) definition of a PRG vs. a "concrete security" definition. Could he, or someone, clarify what these are?
And also, does anyone have the reference to Yao?