A Method for Obtaining Digital Signatures and Public-key Cryptosystems

Adi Shamir, Leonard M. Adleman, and Ronald L. Rivest