On the security of public key protocols
A method for obtaining digital signatures and public-key cryptosystems