Difference between a secure PRG and semantically secure encryption I am taking cryptography course in Coursera from Stanford University. I have following question

I have a question why append 0 in G(k) i.e., G'(k) = G(k) || 0 is
considered as not secure PRG as 0 in message is copied with out
encryption. Whereas in semantically secure E'(k,m) = 0 || E(k,m) i.e.,
prepend 0 is considered as semantically secure. Here why appending 0
does not break semantically secure [sic]?
I consider the SU Cryptography course on Coursera really good, up to certain level is very comprehensive. You should discuss these topics on the Coursera forum, IMHO you will be guided more precisely.

You have two questions here and you should know the DEFINITIONS of the secure PRNG and semantically secure encryption. Security of the message differs between two with what needs to be secure. For PRNG it's the output, for encryption it's the plaintext message.


  I have a question why append 0 in G(k) i.e., G'(k) = G(k) || 0 is
  considered as not secure PRG as 0 in message is copied with out
  encryption.


The expression ( G'(k) = G(k) || 0 ) effectively means you're appending zeros to the generated message. It means you can predict there will be 0 at the end of the (otherwise random) message. It is pretty unsecure PRNG.


  Whereas in semantically secure E'(k,m) = 0 || E(k,m) i.e.,
  prepend 0 is considered as semantically secure. Here why appending 0
  does not break semantically secure?


Even you have prepend anything to the ciphertext, it still doesn't reveal anything about the plaintext message.