Rivest, Ronald L., Adi Shamir, and Leonard Adleman. "A Method of Obtaining Digital Signatures and Public-Key Cryptosystems." Communications of the ACM 21, no. 2 (1978): 120-126.