Never design your own crypto…how to design a PRG

As a new learner of cryptography I have learnt from online tutorials and lectures not to design your own crypto.

What I am trying to understand is the fundamental to designing PRGs to a given context or scenario.

My question specifically is how does one design a PRG for a random compression function for example? I looked at a previous example post (PRG Theory Design) and was trying to design a PRG for their random compression function: $$f:\{0,1\}^{2n} \rightarrow \{0,1\}^n$$ but didn't get how to. I got something like $$G: \{0,1\}^n \rightarrow \{0,1\}^{n/2} * 2$$ but please forgive me I am new to it all. I am simply interested in designing PRGs as I know I can never develop my own crypto. I just like finding problems on this forum and trying to solve it.

Any help, more than happy

• Other similar recent question crypto.stackexchange.com/questions/64508/… – Richie Frame Dec 4 '18 at 2:01
• "how does one design a PRG for a random compression function for example?" What do you even mean by that? – Maeher Dec 4 '18 at 7:35
• The "don't design your own crypto" cult is ridiculous. Of course you should design your own if you are interested in it. Stay with it, and later you'll come back to your own designs and see how easy they were to break. The correct rule is to not trust you own algorithms to be secure, as they surely won't be. – WDS Dec 5 '18 at 8:36