Notes on Primality Testing And Public Key Cryptography Part 1: Randomized Algorithms Miller-Rabin and Solovay-Strassen Tests (original) (raw)

Ever since written communication was used, people have been interested in trying to conceal the content of their messages from their adversaries. This has led to the development of techniques of secret communication, a science known as cryptography. The basic situation is that one party, A, say Albert, wants to send a message to another party, J, say Julia. However, there is a danger that some ill-intentioned third party, Machiavelli, may intercept the message and learn things that he is not supposed to know about and as a result, do evil things. The original message, understandable to all parties, is known as the plain text. To protect the content of the message, Albert encrypts his message. When Julia receives the encrypted message, she must decrypt it in order to be able to read it. Both Albert and Julia share some information that Machiavelli does not have, a key. Without a key, Machiavelli, is incapable of decrypting the message and thus, to do harm. There are many schemes for generating keys to encrypt and decrypt messages. We are going to describe a method involving public and private keys known as the RSA Cryptosystem, named after its inventors, Ronald Rivest, Adi Shamir, and Leonard Adleman (1978), based on ideas by Diffie and Hellman (1976). We highly recommend reading the orginal paper by Rivest, Shamir, and Adleman [19]. It is beautifully written and easy to follow. A very clear, but concise exposition can also be found in Koblitz [10]. An encyclopedic coverage of cryptography can be found in Menezes, van Oorschot, and Vanstone's Handbook [14].