250 likes | 466 Views
Introduction to Codes, Ciphers, and Cryptography. Michael A. Karls Ball State University. Introduction. Throughout history, people have had the need to send messages to other people in secret ! Methods have been developed to disguise and break secret messages. Definitions and Terminology.
E N D
Introduction to Codes, Ciphers, and Cryptography Michael A. Karls Ball State University
Introduction • Throughout history, people have had the need to send messages to other people in secret! • Methods have been developed to disguise and break secret messages.
Definitions and Terminology • A code is a form of secret communication in which a word or phrase is replaced with a word, number, or symbol. • For example, here is a simple code for an army. • “Attack at dawn” Jupiter. • “The coast is clear” Tippy-toe. • Each commander and soldier would have a copy of the codes in some sort of codebook.
Definitions and Terminology (cont.) • A cipher is a form of secret communication in which letters are replaced with a letter, number, or symbol. • One example of a cipher, attributed to Julius Caesar (1st Century B.C.), is outlined in the table below. • Basically, the cipher alphabet is the plain alphabet shifted n spaces left. • For example, if we take n = 14, we get: • Plaintext: “attack at dawn” • Ciphertext: “OHHOQY OH ROKB” • Send ciphertext as OHH OQY OHR OKB. • Recipient would need to know how message was created.
Definitions and Terminology (cont.) • Cryptography is the science of concealing the meaning of a message. • It is also used to mean the science of anything connected with ciphers—an alternative to cryptology, which is the science of secret writing. • To encrypt a message, one conceals the meaning of the message via a code or cipher. • Similar definitions hold for encode and encipher. • To decrypt a message, one turns an ecrypted message back into the original message. • Similar definitions hold for decode and decipher.
Notes on Ciphers • For any cipher there is an algorithm, which is a general encrypting method, and a key which specifies the exact details of the algorithm. • For the Caesar cipher, • Algorithm—shift the alphabet. • Key—how many places to shift! • Thus, there are 26 keys for this cipher.
Notes on Ciphers (cont.) • The key must remain secure! • If the key is found, the code will be broken. • If the algorithm is known, the code can still be secure! • For a code or cipher, the greater the number of keys, the greater the security!
Notes on Ciphers (cont.) • The Caesar cipher is an example of a substitution cipher. • This cipher is symmetric because sender and receiver must both know (have) the key.
Ciphers via Modular Arithmetic • Using modular arithmetic, we can make ciphers! • For any non-negative integers a and n, we define a mod n to be the remainder when a is divided by n. • For example, 18 mod 5 = 3, since 18 = 3 x5 + 3 4 mod 7 = 4, since 4 = 0 x 7 + 4 28 mod 26 = 2, since 28 = 1 x 26 + 2 26 mod 13 = 0, since 26 = 2 x 13 + 0
Ciphers via Modular Arithmetic (cont.) • We can add and multiply numbers mod n too! • For example, here is how to find (27+15) mod 26 and (27 x 15) mod 26. • 27+15 = 42 and 42 mod 26 = 16, so (27+15) mod 26 = 16 or 27 mod 26 = 1 and 15 mod 26 = 15, so (27+15) mod 26 = (1+15) mod 26 = 16 mod 26 = 16 • 27 x 15 = 405 and 405 mod 26 = 15, so (27 x 15) mod 26 = 15 or (27 x 15) mod 26 = (1 x 15) mod 26 = 15 mod 26 = 15
Ciphers via Modular Arithmetic (cont.) • To find (a+b) mod n: • Add a to b, then find the resulting sum mod n, • Or find a mod n, find b mod n, and add the results mod n. • Multiplication works in a similar fashion! • Now we are ready to make an additive cipher!
Ciphers via Modular Arithmetic (cont.) • First, assign 1, 2, …, 26 mod 26 to a, b, …, z. • Next, choose a fixed integer m between 0 and 25. • To get the ciphertext y from plaintext x, add m mod 26, i.e., y = (x+m) mod 26. • As an example, here is additive cipher alphabet for m=14. • Notice that this is just the Caesar cipher we saw before!
The RSA Encryption Scheme • In 1977, MIT mathematicians Rivest, Shamir, and Adleman announced their invention of a public key cryptography scheme. • In order to understand this scheme, commonly known as RSA, we need some definitions!
Definition of Divisor • Let a and b be integers, with b 0. We say that b divides a or b is a divisor of a if a = bc for some integer c. • Notation: b|a • Example 1: 3|24 since 24 = 3 x 8. Divisors of 12 are: -12, -6, -4, -3, -2, -1, 1, 2, 3, 4, 6, 12
Definition of Greatest Common Divisor (GCD) • Let a and b be integers, not both zero. The greatest common divisor (GCD) of a and b is the largest integer that divides both a and b. • Notation: (a,b) • Example 2: • Divisors of 6: -6, -3, -2, -1, 1, 2, 3, 6 • Divisors of 8: -8, -4, -2, -1, 1, 2, 4, 8 • Thus, (6,8) = 2 • Since the divisors of 7 are -7, -1, 1, 7, (7,8) = 1.
Definition of Relatively Prime • Two integers whose GCD is 1 are said to be relatively prime. • Example 3: Since (7,8) = 1, 7 and 8 are relatively prime.
Definition of Prime Number • A positive integer p is said to be prime if p>1 and the only positive divisors of p are 1 and p. • Example 4: 2, 3, and 7 are prime. 6, 8, 10, 100 are not prime (composite).
Step 1: Alice chooses two huge prime numbers p and q. Note: Alice keeps p and q secret! Example 5: p = 47 and q = 59. RSA Scheme (with Alice and Bob!)
Step 2: Alice computes N = p x q. Then she computes k = (p-1)(q-1). Finally, she chooses an integer e such that 1<e<N and (e,k) =1. Example 5 (cont.): N = 47 x 59 = 2773. k = 46 x 58 = 2668. e = 17. Choice of e is o.k, since 1<17<2773 and (17,2668)= 1. RSA Scheme (with Alice and Bob!) (cont.)
Step 3: Alice computes d = e-1 mod k. Alice publishes her public key: N, e. Alice keeps secret her private key: p, q, d, k. Example 5 (cont.): d = 17-1 mod 2668 = 157. Alice’s public key: N = 2773; e = 17. Alice’s private key: p = 47; q = 59; d = 157; k = 2668. RSA Scheme (with Alice and Bob!) (cont.)
Step 4: Suppose Bob wants to send a message to Alice. To do so, he looks up Alice’s public key, converts the message into numbers M<N. Example 5 (cont.): Plaintext is HELLO HELLO HE LL O_ Assign 00space; 01A; 02B, … , 26Z (or use ASCII). RSA Scheme (with Alice and Bob!) (cont.)
Step 4 (cont.): Next, for each plaintext number M, Bob computes: C = Me mod N (1) to get ciphertext number C. Example 5 (cont.): 080517 mod 2773 = 542. 121217 mod 2773 = 2345. 150017 mod 2773 = 2417. Encrypted message is 0542 2345 2417. RSA Scheme (with Alice and Bob!) (cont.)
Step 5: Bob emails Alice the encrypted message. To decrypt, Alice uses her private key and computes: M = Cd mod N (2) Example 5 (cont.): 0542157 mod 2773 = 805. 2345157 mod 2773 = 1212. 2417157 mod 2773 = 1500. Decrypted message is HE LL O_. RSA Scheme (with Alice and Bob!) (cont.)
References • The Code Book by Simon Singh