RSA is an algorithm for public-key cryptography that is based on the presumed difficulty of factoring large integers. A user of RSA creates and then publishes the product of two large prime numbers, along with an auxiliary value, as their public key. The prime factors must be kept secret. Anyone can use the public key to encrypt a message, but with currently published methods, if the public key is large enough, only someone with knowledge of the prime factors can feasibly decode the message. Wrote a program in JAVA to implement the RSA algorithm.