The thing that helped me to understand what is a "public key" was to parallel it with a door lock:
The door lock is public in the sense that anyone can try to unlock it and the door key is the private in the sense that generally, only certain user or people should use it.
Virtualwise, what is the essential difference between say the most advanced (3D-virtual-reality) door-lock to the simplest (virtual) public key?
Is the difference primarily in quantity (the amount of information to try to brute force) or is it primarily in quality (the types of problems to try to solve)?