DOC PREVIEW
CMU ISM 95702 - Lecture 11: RSA

This preview shows page 1-2-24-25 out of 25 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Slide 1Slide 2Slide 3The Cast of CharactersSlide 5Slide 6Slide 7Toy Example: Key Selection(1)Toy Example: Key Selection(2)Toy Example: Key Selection(3)Toy Example: Key Selection(4)Toy Example: Publish The Public KeyToy Example: Message encoding phaseToy Example: Message decoding phaseAn Example - Secure VotingGoals Of Secure VotingFirst AttemptSecond AttemptHow do we do RSA in Java?RSA In Java(1)RSA In Java(2)RSA In Java(3)RSA In Java(4)RSA In Java(5)RSA In Java(6)95-702 Distributed Systems 195-702 Distributed SystemsLecture 11: RSA95-702 Distributed Systems 2 Plan for today:•Introduce RSA and a toy example using small numbers. This is from Introduction to Algorithms by Cormen, Leiserson and Rivest •Describe an interesting cryptographic protocol and its limitations. This is from Applied Cryptography by Bruce Schneier.•Show how RSA cryptography can be done in Java. See the Java Cryptograhy API.95-702 Distributed Systems 3Privacy: to send encrypted messages over an insecure channel.Authentication: To digitally sign messages.RSA was not the first public key approach.Public key cryptography was first introduced by Diffie and Hellman in 1976.RSA was developed by Rivest, Shamir, and Aldeman in 1977.It’s probably safe to call public key cryptographyrevolutionary.Purpose of RSA95-702 Distributed Systems 4The Cast of Characters•Eve - tries to view messages she should not be viewing.•Mallory - tries to manipulate messages and be disruptive .•Bob and Alice - try to communicate over insecure channels.95-702 Distributed Systems 51. Select at random two large prime numbers p and q. These numbers would normally be about 500 digits in length.2. Compute n by the equation n = p X q.3. Compute (n) = (p –1) X (q –1)4. Select a small odd integer e that is relatively prime to (n) The RSA Key Generation (1)95-702 Distributed Systems 65. Compute d as the multiplicative inverse of e modulo (n). A theorem in number theory asserts that d exists and is uniquely defined.6. Publish the pair P = (e,n) as the RSA public key.7. Keep secret the pair S = (d,n) as the RSA secret key.The RSA Key Generation (2)95-702 Distributed Systems 78. To encrypt a message M compute C = Me (mod n)9. To decrypt a message C compute M = Cd (mod n)RSA Encryption and Decryption95-702 Distributed Systems 8Toy Example: Key Selection(1)1. Select at random two large prime numbers p and q. These numbers would normally be about 500 digits in length. p = 3 q = 112. Compute n by the equation n = p X q. n = 333. Compute (n) = (p –1) X (q –1) (n) = (2) X (10) = 2095-702 Distributed Systems 9Toy Example: Key Selection(2) 4. Select a small odd integer e that is relatively prime to (n)p = 3 q = 11 n = 33 (n) = 20 e = 395-702 Distributed Systems 10Toy Example: Key Selection(3)5. Compute d as the multiplicative inverse of e, modulo (n). A theorem in number theory assertsthat d exists and is uniquely defined (since e and (n)are relatively prime).We need a d so that ed mod  = 1Let’s try 1.3 X 1 mod 20 = 3 mod 20 = 3. Nope. p = 3 q = 11 n = 33 (n) = 20 e = 395-702 Distributed Systems 11Toy Example: Key Selection(4) We need a d so that ed mod  = 1Let’s try 2.3 X 2 mod 20 = 6 mod 20 = 6. Nope. Let’s try 7.3 X 7 mod 20 = 21 mod 20 = 1. We found it!This approach is too slow. A fast approach exists.p = 3 q = 11 n = 33 (n) = 20 e = 395-702 Distributed Systems 12Toy Example: Publish The Public Key6. Publish the pair P = (e,n) as the RSA public key.“Hey everyone, my key pair is 3 and 33”7. Keep secret the pair S = (d,n) as the RSA secret key.“I’m not telling anyone about 7 and 33!!”p = 3 q = 11 n = 33 (n) = 20 e = 3 d = 795-702 Distributed Systems 13Toy Example: Message encoding phase e = 3 n = 33 Bob’s public keys are Alice wants to send the letter ‘d’ to Bob.Suppose that we have a public code where‘a’ = 0 ‘b’ = 1 ‘c’ = 2 ‘d’ = 3 and so on…Alice’s software knows that 8. To encrypt a message M compute C = Me (mod n)= 33 mod 33 = 27 mod 33 = 2795-702 Distributed Systems 14Toy Example: Message decoding phase d = 7 n = 33 Bob’s private keys are Bob receives a 27 from Alice:9. To decrypt a message C compute M = Cd (mod n)= 277 mod 33 = 10460353203 mod 33 = 3 (which is ‘d’)95-702 Distributed Systems 15An Example - Secure VotingWe want to think about: Business Requirements Cryptographic protocols Threat models95-702 Distributed Systems 16Goals Of Secure Voting•Only Authorized Voters Can Vote•No one can vote more than once•No one can determine for whom anyone else voted•No one can duplicate anyone else’s vote•No one can change anyone else’s vote without being discovered•Every voter can make sure that his vote has been taken into account in the final tabulation.95-702 Distributed Systems 17First Attempt•Each voter encrypts his vote with the public key of a Central Tabulating Facility (CTF)•Each voter send his vote in to the CTF•The CTF decrypts the votes, tabulates them, and makes the results public•What are some problems with this protocol?95-702 Distributed Systems 18Second Attempt•Each voter signs his vote with his private key•Each voter encrypts his signed vote with the CTF’s public key•Each voter send his vote to the CTF•The CTF decrypts the votes, checks the signature, tabulates the votes and makes the results public•What are some problems with this protocol?How do we do RSA in Java?95-702 Distributed Systems 19RSA In Java(1)•How do I create RSA keys? Use the Biginteger class and do your own calculations or Use Java’s keytool: keytool -genkey -alias mjm -keyalg RSA -keystore mjmkeystore 95-702 Distributed Systems 20RSA In Java(2)•How do I read the RSA keys from a keystore? String keyFileName = "coolkeys"; String alias = "mjm"; char[] passWord = "sesame".toCharArray(); FileInputStream fis = new FileInputStream(keyFileName); KeyStore keyStore = KeyStore.getInstance("JKS"); System.out.println("Load key store with file name and password"); keyStore.load(fis, passWord); 95-702 Distributed Systems 21RSA In Java(3)•How do I decrypt encrypted data with the private key? RSAPrivateKey RSAKey = (RSAPrivateKey)keyStore.getKey(alias,passWord); Cipher


View Full Document

CMU ISM 95702 - Lecture 11: RSA

Documents in this Course
Homework

Homework

12 pages

Lecture

Lecture

25 pages

Lecture

Lecture

21 pages

Lecture

Lecture

24 pages

Exam

Exam

11 pages

Homework

Homework

16 pages

Homework

Homework

38 pages

lecture

lecture

38 pages

review

review

7 pages

lecture

lecture

18 pages

review

review

8 pages

Chapter2

Chapter2

32 pages

Lecture 4

Lecture 4

47 pages

Lecture

Lecture

22 pages

Naming

Naming

26 pages

lecture

lecture

34 pages

lecture

lecture

42 pages

lecture

lecture

112 pages

Lecture

Lecture

33 pages

Axis

Axis

43 pages

lecture

lecture

32 pages

review

review

17 pages

Lecture

Lecture

53 pages

Lecture

Lecture

80 pages

Lab

Lab

14 pages

Load more
Download Lecture 11: RSA
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 11: RSA and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 11: RSA 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?