Computer security in the real world
A method for obtaining digital signatures and public-key cryptosystems