Vous êtes sur la page 1sur 10

Ryan Kightlinger May 2, 2005 Number Theory RSA Encryption Algorithm

In todays world of cryptography, the most widely known public key cryptographic system is RSA. This system was initially developed in 1977 by three research scientists, Ron Rivest, Adi Shamir, and Len Adleman, working at the Massachusetts Institute of Technology (MIT). The initials of their surnames compose the letters of RSA. In 1983 their algorithm was patented by MIT, acquiring U.S. Patent number 4405829. The RSA system marked one of the first great advances in the history of public key cryptography and is still used commonly till this day. A public key cryptographic system is a form of modern cryptography, which eliminates the use of a previously agreed upon shared secret key, allowing users to communicate securely with one another. Perhaps the most useful feature of public key cryptography is its use for authentication. In utilizing the public key system a user is able to generate two unique keys, one private and the other public. The private key is used for authentication purposes, encrypting the original message that the encoder would like to send, while the public key is used to decrypt the received message. In order for authenticity to work the public key must be released to the general public, allowing anyone to easily obtain the key. Once a user obtains the public key and receives the encoded message (encrypted via the senders private key), they will have the ability to successfully decipher the text. Since the public key can only be used to decrypt messages encoded by the senders original private key, the authenticity of the sender is insured. An example of this authenticity process is shown in Figure 1.1.

Figure 1.1 The Authentication Process using Public Key Cryptography.

In addition to verifying the identity of the sender, the public key cryptographic system may also be used to send secure messages back to the original sender. This is accomplished using the senders public key, which has the ability to encrypt message on its own. Once a message is encoded by the public key, it will then be readable only to the original sender, who uses his private key to decipher the text. This insures that the message will remain confidential between the two parties (sender and receiver). An example of using this technique to encrypt and send data is shown in Figure 1.2.

Figure 1.2 Using the public key to encrypt messages.

The RSA System was designed to improve upon the early cryptographic process by creating its own unique algorithm to handle encryption. As previously mentioned, this algorithm was created by Ron Rivest, Adi Shamir, and Len Adleman of MIT. Dr. Ron Rivest received his Bachelors Degree in Mathematics from Yale University in 1969, while obtaining his Doctorate Degree in Computer Science from Stanford University in 1974. He is most famously known for his work in the RSA algorithm, along with his creation of the symmetric key encryption algorithms (RC2, RC4, RC5, and RC6). Dr. Rivest is currently working as a senior Professor of Computer Science in the Department of Electrical Engineering and Computer Science at MIT. Dr. Adi Shamir received his Bachelors Degree in Mathematics from Tel-Aviv University in 1973, and received his MSc and PhD Degrees in Computer Science from the Weizmann Institute of Israel in 1975 and 1977, respectively. During the latter half of the 1970s Dr. Shamir participated in research at the facilities of MIT, where he took part in inventing the RSA

algorithm. Apart from the RSA algorithm, Dr. Shamir is well known for breaking the MerkleHellman cryptosystem and for his creation of the Shamir secret sharing scheme (cryptography). Presently, Dr. Shamir is a faculty member of the Weizmann Institute in the Department of Mathematics and Computer Science. Dr. Len Adleman received his Bachelors Degree in Mathematics in 1968 and his Doctorate Degree in Computer Science in 1976 from the University of California, Berkeley. In addition to his involvement in designing the RSA algorithm, Dr. Adleman is widely known for creating the initial field of DNA Computing at the University of Southern California (USC). At the present time Dr. Adleman is working as a Professor of Computer Science and Molecular Biology at USC. In 2002 Dr. Rivest, Dr. Shamir, and Dr. Adleman received the ACM Turing Award, awarded on behalf of the Association of Computing Machinery in recognition of their discovery of the RSA encryption algorithm. (This award is commonly referred to as the Nobel Prize of Computer Science.) The RSA system is based upon utilizing the prime factorization of numbers to generate a secure encryption algorithm. This system uses a form of modular exponentiation to modulo the product of two unique prime numbers. An encrypting key is then generated, consisting of a modulus (n = pq), where p and q are two very large prime numbers, and an exponent e that is relatively prime to (p-1)(q-1). In order to produce a valid key, two large prime numbers must be found. This system is illustrated in detail on the proceeding pages.

How the RSA system works: Step 1: Introduction to the system with the Symbol Table. To use the RSA system a user must first provide two public quantities, which are generally referred to as n and e. The letter n represents a modulus for reduction and the letter e represents an encryption exponent. A message m must then be encrypted and sent to the user, who has previously posted the values of n and e. The m refers to a specific number that lies within the interval 2 m n-1. (m may be created in a variety of different ways.) In order to encrypt a message m, you must first define an appropriate symbol table, which will be used to convert characters, such as the alphabetical letters, into a corresponding integer value. An example is shown below.

EXAMPLE: By restricting the plain text to the following characters: A, B, C, , X, Y, Z, and space, you can simply assign values to the symbols, as the following symbol table shows.

Symbol A B C D E F G H I J K L M N O P Q R S T

Value 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 6

U V W X Y Z Space

20 21 22 23 24 25 26

With the plain text message: M = TEST becomes M = 19041819

- We have now successfully prepared M for encryption in the RSA system.

Step 2: The Formulas. - The next step is to compute: M E mod(n) and send it. - The party who receives the previous equation and who has posted n and e decrypts the equation by raising this value to a secretly held number called the decryption exponent, d, and reducing mod(n).

Question: How are e, d, and n created?

1.) We will first look at the modulus (n), which is a special composite number. n is the product of two very large primes p and q, that have the same magnitude, but are not equal. We need to utilize the Euler phi () function of n. (n) = (p-1) (q-1)

2.) The next step is for the preparer to pick the encryption exponent e that will be made public. e should be a very large prime number, where (n) and e are relatively prime.

3.) Once e is selected, the preparer is able to solve for d. The equation is as follows: ed 1 mod ( (n) )

- This can be solved using the Extended Euclidean Algorithm or the EulerFermat theorem. - Ensure that chosen value of e also yields a very large value for d.

The following equation shows why the decryption process yields the original message M: ( M E )^(d) M mod(n)

EXAMPLE: - We pick [p = 17] and [q = 13] - Therefore: n = 17 * 13 n = 221 - Next we select a value for e: e = 5 - Now: (pq) = (17 * 13) = (17) * (13) = 16 * 12 = 192 *Remember: n = pq , (p) = (p-1), and (q) = (q-1)

- We now need to find d, such that: ed 5d 1 mod( (n) ) 1 mod( 192 ) 192 | 5(d) 1 => d = 77

From these numbers the keys are composed:


the public key is the pair (e,n). the private key is the pair (d,n). 8

- We have now received all our respective values and are ready to encrypt a message.

Step 3: The Encryption Process. For our message we will select: M = Q - using our above symbol table, M = 16

To encrypt M, we form: M E mod(n)


16 5 mod( 221 ) = X = 152

221 | 152 - 16 5

The encrypted message is now: 152

Step 4: The Decryption Process. To decrypt the message we use the following formula: X d mod(n)
152 77 mod( 221 ) = Y = 16

221 | 16 - 152 77

The original message was 16. Using our symbol table we find out that M = Q.

Works Cited

Hershey, John E. Cryptography Demystified. New York: McGraw Hill, 2003. 184-191. "RSA - Learn all about RSA" Lockergnome LLC. 2005. 19 Apr. 2005 <http://encyclopedia.lockergnome.com/s/b/RSA>. "RSA" Wikipedia. 2005. 19 Apr. 2005 <http://en.wikipedia.org/wiki/RSA>. Sotomayor, Borja. "Public key cryptography" Globus Documentation Project. 2004. 26 Apr. 2005 <http://gdp.globus.org/gt3-tutorial/multiplehtml/ch10s03.html>.

10

Vous aimerez peut-être aussi