What is public key cryptography and how does it relate to Bitcoin?