Josh Benaloh Brian LaMacchia Winter 2011. January 6, 2011Practical Aspects of Modern Cryptography Cryptography is... Protecting Privacy of Data Authentication.

Slides:



Advertisements
Similar presentations
CS 483 – SD SECTION BY DR. DANIYAL ALGHAZZAWI (4) Information Security.
Advertisements

22C:19 Discrete Structures Integers and Modular Arithmetic
22C:19 Discrete Math Integers and Modular Arithmetic Fall 2010 Sukumar Ghosh.
Notation Intro. Number Theory Online Cryptography Course Dan Boneh
7. Asymmetric encryption-
Great Theoretical Ideas in Computer Science.
Session 4 Asymmetric ciphers.
CNS2010handout 8 :: introduction to number theory1 computer and network security matt barrie.
and Factoring Integers (I)
The RSA Cryptosystem and Factoring Integers (II) Rong-Jaye Chen.
Cryptography Lecture 11: Oct 12. Cryptography AliceBob Cryptography is the study of methods for sending and receiving secret messages. adversary Goal:
CS470, A.SelcukPublic Key Cryptography1 CS 470 Introduction to Applied Cryptography Instructor: Ali Aydin Selcuk.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
Cryptography1 CPSC 3730 Cryptography Chapter 9 Public Key Cryptography and RSA.
CSE 321 Discrete Structures Winter 2008 Lecture 8 Number Theory: Modular Arithmetic.
Introduction to Modern Cryptography Lecture 7 1.RSA Public Key CryptoSystem 2.One way Trapdoor Functions.
Theory I Algorithm Design and Analysis (9 – Randomized algorithms) Prof. Dr. Th. Ottmann.
ELECTRONIC PAYMENT SYSTEMSFALL 2001COPYRIGHT © 2001 MICHAEL I. SHAMOS Electronic Payment Systems Lecture 6 Epayment Security II.
Lecture 6: Public Key Cryptography
1 CIS 5371 Cryptography 8. Asymmetric encryption-.
Andreas Steffen, , 4-PublicKey.pptx 1 Internet Security 1 (IntSi1) Prof. Dr. Andreas Steffen Institute for Internet Technologies and Applications.
The RSA Algorithm Rocky K. C. Chang, March
Prime Numbers Prime numbers only have divisors of 1 and self
9/2/2015Discrete Structures1 Let us get into… Number Theory.
Introduction to Modular Arithmetic and Public Key Cryptography.
Cryptography Lecture 8 Stefan Dziembowski
FINITE FIELDS 7/30 陳柏誠.
CPSC 3730 Cryptography and Network Security
Information Security and Management 4. Finite Fields 8
RSA and its Mathematics Behind
Great Theoretical Ideas in Computer Science.
RSA Ramki Thurimella.
10/1/2015 9:38:06 AM1AIIS. OUTLINE Introduction Goals In Cryptography Secrete Key Cryptography Public Key Cryptograpgy Digital Signatures 2 10/1/2015.
Cryptography Dec 29. This Lecture In this last lecture for number theory, we will see probably the most important application of number theory in computer.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
Introduction to Algorithms Second Edition by Cormen, Leiserson, Rivest & Stein Chapter 31.
Modular Arithmetic with Applications to Cryptography Lecture 47 Section 10.4 Wed, Apr 13, 2005.
Private-Key Cryptography  traditional private/secret/single key cryptography uses one key  shared by both sender and receiver  if this key is disclosed.
Public Key Cryptography. symmetric key crypto requires sender, receiver know shared secret key Q: how to agree on key in first place (particularly if.
MA/CSSE 473 Day 10 Primality testing summary Data Encryption RSA.
Chapter 3 (B) – Key Management; Other Public Key Cryptosystems.
RSA and its Mathematics Behind July Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA.
22C:19 Discrete Structures Integers and Modular Arithmetic Fall 2014 Sukumar Ghosh.
Scott CH Huang COM 5336 Cryptography Lecture 6 Public Key Cryptography & RSA Scott CH Huang COM 5336 Cryptography Lecture 6.
Information Security Lab. Dept. of Computer Engineering 87/121 PART I Symmetric Ciphers CHAPTER 4 Finite Fields 4.1 Groups, Rings, and Fields 4.2 Modular.
Lecture 6.1: Misc. Topics: Number Theory CS 250, Discrete Structures, Fall 2011 Nitesh Saxena.
Public Key Algorithms Lesson Introduction ●Modular arithmetic ●RSA ●Diffie-Hellman.
CS Modular Division and RSA1 RSA Public Key Encryption To do RSA we need fast Modular Exponentiation and Primality generation which we have shown.
Cryptography and Network Security Chapter 4. Introduction  will now introduce finite fields  of increasing importance in cryptography AES, Elliptic.
Ch1 - Algorithms with numbers Basic arithmetic Basic arithmetic Addition Addition Multiplication Multiplication Division Division Modular arithmetic Modular.
Week 4 - Wednesday.  What did we talk about last time?  Finished DES  AES.
Lecture 3.1: Public Key Cryptography I CS 436/636/736 Spring 2015 Nitesh Saxena.
Lecture 9 Overview. Digital Signature Properties CS 450/650 Lecture 9: Digital Signatures 2 Unforgeable: Only the signer can produce his/her signature.
Great Theoretical Ideas in Computer Science.
Introduction to Elliptic Curve Cryptography CSCI 5857: Encoding and Encryption.
1 The RSA Algorithm Rocky K. C. Chang February 23, 2007.
Practical Aspects of Modern Cryptography Josh Benaloh & Brian LaMacchia.
Practical Aspects of Modern Cryptography
CS 2210:0001Discrete Structures Modular Arithmetic and Cryptography
Number Theory (Chapter 7)
Practical Aspects of Modern Cryptography
Practical Aspects of Modern Cryptography
Practical Aspects of Modern Cryptography
Practical Aspects of Modern Cryptography
Practical Aspects of Modern Cryptography
Cryptography Lecture 16.
Presentation transcript:

Josh Benaloh Brian LaMacchia Winter 2011

January 6, 2011Practical Aspects of Modern Cryptography Cryptography is... Protecting Privacy of Data Authentication of Identities Preservation of Integrity … basically any protocols designed to operate in an environment absent of universal trust. 2

January 6, 2011Practical Aspects of Modern Cryptography Characters 3

January 6, 2011Practical Aspects of Modern Cryptography Characters Alice 4

January 6, 2011Practical Aspects of Modern Cryptography Characters Bob 5

January 6, 2011Practical Aspects of Modern Cryptography Basic Communication Alice talking to Bob 6

January 6, 2011Practical Aspects of Modern Cryptography Another Character Eve 7

January 6, 2011Practical Aspects of Modern Cryptography Basic Communication Problem Eve listening to Alice talking to Bob 8

January 6, 2011Practical Aspects of Modern Cryptography Two-Party Environments Alice Bob 9

January 6, 2011Practical Aspects of Modern Cryptography Remote Coin Flipping Alice and Bob decide to make a decision by flipping a coin. Alice and Bob are not in the same place. 10

January 6, 2011Practical Aspects of Modern Cryptography Ground Rule Protocol must be asynchronous. We cannot assume simultaneous actions. Players must take turns. 11

January 6, 2011Practical Aspects of Modern Cryptography Is Remote Coin Flipping Possible? 12

January 6, 2011Practical Aspects of Modern Cryptography Is Remote Coin Flipping Possible? Two-part answer: 13

January 6, 2011Practical Aspects of Modern Cryptography Is Remote Coin Flipping Possible? Two-part answer: NO – I will sketch a formal proof. 14

January 6, 2011Practical Aspects of Modern Cryptography Is Remote Coin Flipping Possible? Two-part answer: NO – I will sketch a formal proof. YES – I will provide an effective protocol. 15

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: 16

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B B A BA A B BAB B B BA BA BB A AB 17

January 6, 2011Practical Aspects of Modern Cryptography Pruning the Tree A B A B A BB A 18

January 6, 2011Practical Aspects of Modern Cryptography Pruning the Tree A B A   B   A: B: 19

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B B A BA A B BAB B B BA BA BB A AB 20

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B B A BA A BB B BA BA BB A AB 21

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B B A BA A BB B BA BA BBB 22

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B A BA A BB B BA BA BBB 23

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B A BA A B BA BA BBB 24

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B A BA A B A BA BBB 25

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B A BA A B A BA B 26

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: B A A B A BA B 27

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: BA B A BA B 28

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: BAB BA B 29

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: BABB 30

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A: B: A: B: A 31

January 6, 2011Practical Aspects of Modern Cryptography A Protocol Flow Tree A 32

January 6, 2011Practical Aspects of Modern Cryptography Completing the Pruning When the pruning is complete one will end up with either 33

January 6, 2011Practical Aspects of Modern Cryptography Completing the Pruning When the pruning is complete one will end up with either a winner before the protocol has begun, or 34

January 6, 2011Practical Aspects of Modern Cryptography Completing the Pruning When the pruning is complete one will end up with either a winner before the protocol has begun, or a useless infinite game. 35

January 6, 2011Practical Aspects of Modern Cryptography Conclusion of Part I Remote coin flipping is utterly impossible!!! 36

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin 37

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS 38

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … 39

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … … 40

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … … … 41

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … … … … 42

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … … … … Even 43

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … … … … 4n + 1: 4n - 1: 44

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin The INTEGERS … … … … Type +1: Type - 1: 45

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Fact 1 Multiplying two (odd) integers of the same type always yields a product of Type +1. (4p+1)(4q+1) = 16pq+4p+4q+1 = 4(4pq+p+q)+1 (4p–1)(4q–1) = 16pq–4p–4q+1 = 4(4pq–p–q)+1 46

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Fact 2 There is no known method (other than factoring) to distinguish a product of two “Type +1” integers from a product of two “Type –1” integers. 47

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Fact 3 Factoring large integers is believed to be much harder than multiplying large integers. 48

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin 49

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin AliceBob 50

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Bob 51

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Bob 52

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob 53

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Bob N 54

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. Bob 55

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. 56

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Bob b 57

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. 58

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. 59

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. 60

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Alice Bob P,QP,Q 61

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. 62

January 6, 2011Practical Aspects of Modern Cryptography Let’s Play The INTEGERS … … … … Type +1: Type - 1: 63

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Alice Randomly select a bit b  {  1} and two large integers P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. 64

January 6, 2011Practical Aspects of Modern Cryptography How to Remotely Flip a Coin Bob After receiving N from Alice, guess the value of b and send this guess to Alice. Bob wins if and only if he correctly guesses the value of b. Alice Randomly select a bit b  {  1} and two large primes P and Q – both of type b. Compute N = PQ. Send N to Bob. After receiving b from Bob, reveal P and Q. 65

January 6, 2011Practical Aspects of Modern Cryptography Checking Primality Basic result from group theory – If p is a prime, then for integers a such that 0 < a < p, then a p - 1 mod p = 1. This is almost never true when p is composite. 66

January 6, 2011Practical Aspects of Modern Cryptography How are the Answers Reconciled? 67

January 6, 2011Practical Aspects of Modern Cryptography The impossibility proof assumed unlimited computational ability. How are the Answers Reconciled? 68

January 6, 2011Practical Aspects of Modern Cryptography The impossibility proof assumed unlimited computational ability. The protocol is not 50/50 – Bob has a small advantage. How are the Answers Reconciled? 69

January 6, 2011Practical Aspects of Modern Cryptography Applications of Remote Flipping Remote Card Playing Internet Gambling Various “Fair” Agreement Protocols 70

January 6, 2011Practical Aspects of Modern Cryptography Bit Commitment We have implemented remote coin flipping via bit commitment. Commitment protocols can also be used for Sealed bidding Undisclosed contracts Authenticated predictions 71

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions We have implemented bit commitment via one-way functions. One-way functions can be used for Authentication Data integrity Strong “randomness” 72

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions 73

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Two basic classes of one-way functions 74

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Two basic classes of one-way functions Mathematical 75

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Two basic classes of one-way functions Mathematical Multiplication: Z=X  Y 76

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Two basic classes of one-way functions Mathematical Multiplication: Z=X  Y Modular Exponentiation: Z = Y X mod N 77

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Two basic classes of one-way functions Mathematical Multiplication: Z=X×Y Modular Exponentiation: Z = Y X mod N Ugly 78

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N 79

January 6, 2011Practical Aspects of Modern Cryptography Modular Arithmetic 80

Modular Arithmetic Z mod N is the integer remainder when Z is divided by N. January 6, 2011Practical Aspects of Modern Cryptography81

Modular Arithmetic Z mod N is the integer remainder when Z is divided by N. The Division Theorem For all integers Z and N>0, there exist unique integers Q and R such that Z = Q  N + R and 0  R  N. January 6, 2011Practical Aspects of Modern Cryptography82

Modular Arithmetic Z mod N is the integer remainder when Z is divided by N. The Division Theorem For all integers Z and N>0, there exist unique integers Q and R such that Z = Q  N + R and 0  R  N. By definition, this unique R = Z mod N. January 6, 2011Practical Aspects of Modern Cryptography83

January 6, 2011Practical Aspects of Modern Cryptography Modular Arithmetic To compute (A+B) mod N, compute (A+B) and take the result mod N. 84

January 6, 2011Practical Aspects of Modern Cryptography Modular Arithmetic To compute (A+B) mod N, compute (A+B) and take the result mod N. To compute (A-B) mod N, compute (A-B) and take the result mod N. 85

January 6, 2011Practical Aspects of Modern Cryptography Modular Arithmetic To compute (A+B) mod N, compute (A+B) and take the result mod N. To compute (A-B) mod N, compute (A-B) and take the result mod N. To compute (A×B) mod N, compute (A×B) and take the result mod N. 86

January 6, 2011Practical Aspects of Modern Cryptography Modular Arithmetic To compute (A+B) mod N, compute (A+B) and take the result mod N. To compute (A-B) mod N, compute (A-B) and take the result mod N. To compute (A×B) mod N, compute (A×B) and take the result mod N. To compute (A÷B) mod N, … 87

January 6, 2011Practical Aspects of Modern Cryptography Modular Division 88

January 6, 2011Practical Aspects of Modern Cryptography Modular Division What is the value of (1÷2) mod 7? We need a solution to 2x mod 7 = 1. 89

January 6, 2011Practical Aspects of Modern Cryptography Modular Division What is the value of (1÷2) mod 7? We need a solution to 2x mod 7 = 1. Try x = 4. 90

January 6, 2011Practical Aspects of Modern Cryptography Modular Division What is the value of (1÷2) mod 7? We need a solution to 2x mod 7 = 1. Try x = 4. What is the value of (7÷5) mod 11? We need a solution to 5x mod 11 = 7. 91

January 6, 2011Practical Aspects of Modern Cryptography Modular Division What is the value of (1÷2) mod 7? We need a solution to 2x mod 7 = 1. Try x = 4. What is the value of (7÷5) mod 11? We need a solution to 5x mod 11 = 7. Try x = 8. 92

January 6, 2011Practical Aspects of Modern Cryptography Modular Division 93

January 6, 2011Practical Aspects of Modern Cryptography Modular Division Is modular division always well-defined? 94

January 6, 2011Practical Aspects of Modern Cryptography Modular Division Is modular division always well-defined? (1÷3) mod 6 = ? 95

January 6, 2011Practical Aspects of Modern Cryptography Modular Division Is modular division always well-defined? (1÷3) mod 6 = ? 3x mod 6 = 1 has no solution! 96

January 6, 2011Practical Aspects of Modern Cryptography Modular Division Is modular division always well-defined? (1÷3) mod 6 = ? 3x mod 6 = 1 has no solution! Fact (A÷B) mod N always has a solution when gcd(B,N) = 1. 97

January 6, 2011Practical Aspects of Modern Cryptography Modular Division Fact 1 (A÷B) mod N always has a solution when gcd(B,N) = 1. 98

January 6, 2011Practical Aspects of Modern Cryptography Modular Division Fact 1 (A÷B) mod N always has a solution when gcd(B,N) = 1. Fact 2 (A÷B) mod N never has a solution when gcd(A,B) = 1 and gcd(B,N) ≠ 1. 99

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors 100

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) 101

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) since any common factor of A and B is also a factor of A – B and since any common factor of B and A – B is also a factor of A. 102

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) gcd(21,12) = gcd(12,9) = gcd(9,3) = gcd(3,6) = gcd(6,3) = gcd(3,3) = gcd(3,0) = 3 103

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) 104

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) gcd(A, B) = gcd(B, A – kB) for any integer k. 105

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) gcd(A, B) = gcd(B, A – kB) for any integer k. gcd(A, B) = gcd(B, A mod B) 106

January 6, 2011Practical Aspects of Modern Cryptography Greatest Common Divisors gcd(A, B) = gcd(B, A – B) gcd(A, B) = gcd(B, A – kB) for any integer k. gcd(A, B) = gcd(B, A mod B) gcd(21,12) = gcd(12,9) = gcd(9,3) = gcd(3,0) = 3 107

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm Given integers A and B, find integers X and Y such that AX + BY = gcd(A,B). 108

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm Given integers A and B, find integers X and Y such that AX + BY = gcd(A,B). When gcd(A,B) = 1, solve AX mod B = 1, by finding X and Y such that AX + BY = gcd(A,B) =

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm Given integers A and B, find integers X and Y such that AX + BY = gcd(A,B). When gcd(A,B) = 1, solve AX mod B = 1, by finding X and Y such that AX + BY = gcd(A,B) = 1. Compute (C÷A) mod B as C×(1÷A) mod B. 110

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm gcd(35, 8) = gcd(8, 35 mod 8) = gcd(8, 3) = gcd(3, 8 mod 3) = gcd(3, 2) = gcd(2, 3 mod 2) = gcd(2, 1) = gcd(1, 2 mod 1) = gcd(1, 0) = 1 111

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 35 = 8 

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 35 = 8  = 3 

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 35 = 8  = 3  = 2 

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 35 = 8  = 3  = 2  = 1 

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 35 = 8  = 35 – 8  4 8 = 3  = 8 – 3  2 3 = 2  = 3 – 2  1 2 = 1 

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 3 = 35 – 8  4 2 = 8 – 3  2 1 = 3 – 2  1 117

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 3 = 35 – 8  4 2 = 8 – 3  2 1 = 3 – 2  1 = (35 – 8  4) – (8 – 3  2)  1 118

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 3 = 35 – 8  4 2 = 8 – 3  2 1 = 3 – 2  1 = (35 – 8  4) – (8 – 3  2)  1 = (35 – 8  4) – (8 – (35 – 8  4)  2)  1 119

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 3 = 35 – 8  4 2 = 8 – 3  2 1 = 3 – 2  1 = (35 – 8  4) – (8 – 3  2)  1 = (35 – 8  4) – (8 – (35 – 8  4)  2)  1 = 35  3 – 8 

January 6, 2011Practical Aspects of Modern Cryptography Extended Euclidean Algorithm 121

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N 122

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N When Z is unknown, it can be efficiently computed. 123

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N When X is unknown, the problem is known as the discrete logarithm and is generally believed to be hard to solve. 124

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N When Y is unknown, the problem is known as discrete root finding and is generally believed to be hard to solve

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N … unless the factorization of N is known. 126

January 6, 2011Practical Aspects of Modern Cryptography The Fundamental Equation Z=Y X mod N The problem is not well-studied for the case when N is unknown. 127

January 6, 2011Practical Aspects of Modern Cryptography Implementation Z=Y X mod N 128

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N 129

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Compute Y X and then reduce mod N. 130

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Compute Y X and then reduce mod N. If X, Y, and N each are 2,048-bit integers, Y X consists of ~ bits. 131

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Compute Y X and then reduce mod N. If X, Y, and N each are 2,048-bit integers, Y X consists of ~ bits. Since there are roughly particles in the universe, storage is a problem. 132

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N 133

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Repeatedly multiplying by Y (followed each time by a reduction modulo N) X times solves the storage problem. 134

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Repeatedly multiplying by Y (followed each time by a reduction modulo N) X times solves the storage problem. However, we would need to perform ~ bit multiplications per second to complete the computation before the sun burns out. 135

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N 136

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Multiplication by Repeated Doubling 137

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Multiplication by Repeated Doubling To compute X × Y, 138

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Multiplication by Repeated Doubling To compute X × Y, compute Y, 2Y, 4Y, 8Y, 16Y,… 139

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Multiplication by Repeated Doubling To compute X × Y, compute Y, 2Y, 4Y, 8Y, 16Y,… and sum up those values dictated by the binary representation of X. 140

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Multiplication by Repeated Doubling To compute X × Y, compute Y, 2Y, 4Y, 8Y, 16Y,… and sum up those values dictated by the binary representation of X. Example: 26Y = 2Y + 8Y + 16Y. 141

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N 142

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Exponentiation by Repeated Squaring 143

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Exponentiation by Repeated Squaring To compute Y X, 144

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Exponentiation by Repeated Squaring To compute Y X, compute Y, Y 2, Y 4, Y 8, Y 16, … 145

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Exponentiation by Repeated Squaring To compute Y X, compute Y, Y 2, Y 4, Y 8, Y 16, … and multiply those values dictated by the binary representation of X. 146

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N Exponentiation by Repeated Squaring To compute Y X, compute Y, Y 2, Y 4, Y 8, Y 16, … and multiply those values dictated by the binary representation of X. Example: Y 26 = Y 2 × Y 8 × Y

January 6, 2011Practical Aspects of Modern Cryptography How to compute Y X mod N We can now perform a 2,048-bit modular exponentiation using ~3,072 2,048-bit modular multiplications. 2,048 squarings: y, y 2, y 4, …, y ~1024 “ordinary” multiplications 148

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Operations Addition and Subtraction Multiplication Division and Remainder (Mod N) Exponentiation 149

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition + 150

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition + 151

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition + 152

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition + 153

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition + 154

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition + 155

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Addition In general, adding two large integers – each consisting of n small blocks – requires O(n) small-integer additions. Large-integer subtraction is similar. 156

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication  157

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication  158

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication  159

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication  160

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication  161

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication  162

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Multiplication In general, multiplying two large integers – each consisting of n small blocks – requires O(n 2 ) small-integer multiplications and O(n) large-integer additions. 163

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Squaring  164

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Squaring  165

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Squaring  166

January 6, 2011Practical Aspects of Modern Cryptography Large-Integer Squaring Careful bookkeeping can save nearly half of the small-integer multiplications (and nearly half of the time). 167

January 6, 2011Practical Aspects of Modern Cryptography Recall computing Y X mod N About 2/3 of the multiplications required to compute Y X are actually squarings. Overall, efficient squaring can save about 1/3 of the small multiplications required for modular exponentiation. 168

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 169

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD Given 4 coefficients A, B, C, and D, 170

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD Given 4 coefficients A, B, C, and D, we need to compute 3 values: 171

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD Given 4 coefficients A, B, C, and D, we need to compute 3 values: AC, AD+BC, and BD. 172

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD Given 4 coefficients A, B, C, and D, we need to compute 3 values: AC, AD+BC, and BD. 173

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD Given 4 coefficients A, B, C, and D, we need to compute 3 values: AC, AD+BC, and BD. 174

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD Given 4 coefficients A, B, C, and D, we need to compute 3 values: AC, AD+BC, and BD. 175

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 176

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 177

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 178

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 179

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 180

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 181

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition 182

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD 183

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 184

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 185

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 186

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 187

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 188

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 189

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 190

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 191

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 192

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (Ax+B)(Cx+D) = ACx 2 + (AD+BC)x + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 193

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication This can be done on integers as well as on polynomials, but it’s not as nice on integers because of carries. The larger the integers, the larger the benefit. 194

January 6, 2011Practical Aspects of Modern Cryptography Karatsuba Multiplication (A  2 k +B)(C  2 k +D) = AC  2 2k + (AD+BC)  2 k + BD 4 multiplications, 1 addition (A+B)(C+D) = AC + AD + BC + BD (A+B)(C+D) – AC – BD = AD + BC 3 multiplications, 2 additions, 2 subtractions 195

January 6, 2011Practical Aspects of Modern Cryptography Chinese Remaindering If X = A mod P, X = B mod Q, and gcd(P,Q) = 1, then X mod P·Q can be computed as X = A·Q·(Q -1 mod P) + B·P·(P -1 mod Q). 196

January 6, 2011Practical Aspects of Modern Cryptography Chinese Remaindering If N = PQ, then a computation mod N can be accomplished by performing the same computation mod P and again mod Q and then using Chinese Remaindering to derive the answer to the mod N computation. 197

January 6, 2011Practical Aspects of Modern Cryptography Chinese Remaindering Since modular exponentiation of n-bit integers requires O(n 3 ) time, performing two modular exponentiations on half size values requires only about one quarter of the time of a single n-bit modular exponentiation. 198

January 6, 2011Practical Aspects of Modern Cryptography Modular Reduction Generally, computing (A  B) mod N requires much more than twice the time to compute A  B. 199

January 6, 2011Practical Aspects of Modern Cryptography Modular Reduction Generally, computing (A  B) mod N requires much more than twice the time to compute A  B. Large-integer division is … 200

January 6, 2011Practical Aspects of Modern Cryptography Modular Reduction Generally, computing (A  B) mod N requires much more than twice the time to compute A  B. Large-integer division is … slow … 201

January 6, 2011Practical Aspects of Modern Cryptography Modular Reduction Generally, computing (A  B) mod N requires much more than twice the time to compute A  B. Large-integer division is … slow … cumbersome 202

January 6, 2011Practical Aspects of Modern Cryptography Modular Reduction Generally, computing (A  B) mod N requires much more than twice the time to compute A  B. Large-integer division is … slow … cumbersome … disgusting 203

January 6, 2011Practical Aspects of Modern Cryptography Modular Reduction Generally, computing (A  B) mod N requires much more than twice the time to compute A  B. Large-integer division is … slow … cumbersome … disgusting … wretched 204

January 6, 2011Practical Aspects of Modern Cryptography The Montgomery Method The Montgomery Method performs a domain transform to a domain in which the modular reduction operation can be achieved by multiplication and simple truncation. Since a single modular exponentiation requires many modular multiplications and reductions, transforming the arguments is well justified. 205

January 6, 2011Practical Aspects of Modern Cryptography Montgomery Multiplication Let A, B, and M be n-block integers represented in base x with 0  M  x n. Let R = x n. GCD(R,M) = 1. The Montgomery Product of A and B modulo M is the integer ABR –1 mod M. Let M = –M –1 mod R and S = ABM mod R. Fact: (AB+SM)/R  ABR –1 (mod M). 206

January 6, 2011Practical Aspects of Modern Cryptography Using the Montgomery Product The Montgomery Product ABR –1 mod M can be computed in the time required for two ordinary large-integer multiplications. Montgomery transform: A  AR mod M. The Montgomery product of (AR mod M) and (BR mod M) is (ABR mod M). 207

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Z=Y X mod N 208

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions Informally, F : X  Y is a one-way if Given x, y = F(x) is easily computable. Given y, it is difficult to find any x for which y = F(x). 209

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions The family of functions F Y,N (X) = Y X mod N is believed to be one-way for most N and Y. 210

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions The family of functions F Y,N (X) = Y X mod N is believed to be one-way for most N and Y. No one has ever proven a function to be one-way, and doing so would, at a minimum, yield as a consequence that P  NP. 211

January 6, 2011Practical Aspects of Modern Cryptography One-Way Functions When viewed as a two-argument function, the (candidate) one-way function F N (Y,X) = Y X mod N also satisfies a useful additional property which has been termed quasi-commutivity: F(F(Y,X 1 ),X 2 ) = F(F(Y,X 2 ),X 1 ) since Y X 1 X 2 = Y X 2 X

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange AliceBob 213

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange Alice Randomly select a large integer a and send A = Y a mod N. Bob Randomly select a large integer b and send B = Y b mod N. 214

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange Alice Bob A B 215

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange Alice Randomly select a large integer a and send A = Y a mod N. Bob Randomly select a large integer b and send B = Y b mod N. 216

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange Alice Randomly select a large integer a and send A = Y a mod N. Compute the key K = B a mod N. Bob Randomly select a large integer b and send B = Y b mod N. Compute the key K = A b mod N. 217

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange Alice Randomly select a large integer a and send A = Y a mod N. Compute the key K = B a mod N. Bob Randomly select a large integer b and send B = Y b mod N. Compute the key K = A b mod N. B a = Y ba = Y ab = A b 218

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange 219

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange What does Eve see? 220

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange What does Eve see? Y, Y a, Y b 221

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange What does Eve see? Y, Y a, Y b … but the exchanged key is Y ab. 222

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange What does Eve see? Y, Y a, Y b … but the exchanged key is Y ab. Belief: Given Y, Y a, Y b it is difficult to compute Y ab. 223

January 6, 2011Practical Aspects of Modern Cryptography Diffie-Hellman Key Exchange What does Eve see? Y, Y a, Y b … but the exchanged key is Y ab. Belief: Given Y, Y a, Y b it is difficult to compute Y ab. Contrast with discrete logarithm assumption: Given Y, Y a it is difficult to compute a. 224

January 6, 2011Practical Aspects of Modern Cryptography More on Quasi-Commutivity Quasi-commutivity has additional applications. decentralized digital signatures membership testing digital time-stamping 225

January 6, 2011Practical Aspects of Modern Cryptography One-Way Trap-Door Functions Z=Y X mod N 226

January 6, 2011Practical Aspects of Modern Cryptography One-Way Trap-Door Functions Z=Y X mod N Recall that this equation is solvable for Y if the factorization of N is known, but is believed to be hard otherwise. 227

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem AliceAnyone 228

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem Alice Select two large random primes P & Q. Anyone 229

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem Alice Select two large random primes P & Q. Publish the product N=PQ. Anyone 230

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem Alice Select two large random primes P & Q. Publish the product N=PQ. Anyone To send message Y to Alice, compute Z=Y X mod N. 231

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem Alice Select two large random primes P & Q. Publish the product N=PQ. Anyone To send message Y to Alice, compute Z=Y X mod N. Send Z and X to Alice. 232

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem Alice Select two large random primes P & Q. Publish the product N=PQ. Use knowledge of P & Q to compute Y. Anyone To send message Y to Alice, compute Z=Y X mod N. Send Z and X to Alice. 233

January 6, 2011Practical Aspects of Modern Cryptography RSA Public-Key Cryptosystem In practice, the exponent X is almost always fixed to be X = =

January 6, 2011Practical Aspects of Modern Cryptography Some RSA Details When N=PQ is the product of distinct primes, Y X mod N = Y whenever X mod (P-1)(Q-1) = 1 and 0  Y  N. 235

January 6, 2011Practical Aspects of Modern Cryptography Some RSA Details When N=PQ is the product of distinct primes, Y X mod N = Y whenever X mod (P-1)(Q-1) = 1 and 0  Y  N. Alice can easily select integers E and D such that E  D mod (P-1)(Q-1) =

January 6, 2011Practical Aspects of Modern Cryptography Some RSA Details Encryption: E(Y) = Y E mod N. Decryption: D(Y) = Y D mod N. D(E(Y)) = (Y E mod N) D mod N = Y ED mod N = Y 237

January 6, 2011Practical Aspects of Modern Cryptography RSA Signatures 238

January 6, 2011Practical Aspects of Modern Cryptography RSA Signatures An additional property 239

January 6, 2011Practical Aspects of Modern Cryptography RSA Signatures An additional property D(E(Y)) = Y ED mod N = Y 240

January 6, 2011Practical Aspects of Modern Cryptography RSA Signatures An additional property D(E(Y)) = Y ED mod N = Y E(D(Y)) = Y DE mod N = Y 241

January 6, 2011Practical Aspects of Modern Cryptography RSA Signatures An additional property D(E(Y)) = Y ED mod N = Y E(D(Y)) = Y DE mod N = Y Only Alice (knowing the factorization of N) knows D. Hence only Alice can compute D(Y) = Y D mod N. 242

January 6, 2011Practical Aspects of Modern Cryptography RSA Signatures An additional property D(E(Y)) = Y ED mod N = Y E(D(Y)) = Y DE mod N = Y Only Alice (knowing the factorization of N) knows D. Hence only Alice can compute D(Y) = Y D mod N. This D(Y) serves as Alice’s signature on Y. 243

January 6, 2011Practical Aspects of Modern Cryptography Public Key Directory 244

January 6, 2011Practical Aspects of Modern Cryptography Public Key Directory (Recall that E is commonly fixed to be E=65537.) 245

January 6, 2011Practical Aspects of Modern Cryptography Certificate Authority “Alice’s public modulus is N A = …” -- signed CA. 246

January 6, 2011Practical Aspects of Modern Cryptography Trust Chains Alice certifies Bob’s key. Bob certifies Carol’s key. If I trust Alice should I accept Carol’s key? 247

January 6, 2011Practical Aspects of Modern Cryptography Authentication 248

January 6, 2011Practical Aspects of Modern Cryptography Authentication How can I use RSA to authenticate someone’s identity? 249

January 6, 2011Practical Aspects of Modern Cryptography Authentication How can I use RSA to authenticate someone’s identity? If Alice’s public key E A, just pick a random message m and send E A (m). 250

January 6, 2011Practical Aspects of Modern Cryptography Authentication How can I use RSA to authenticate someone’s identity? If Alice’s public key E A, just pick a random message m and send E A (m). If m comes back, I must be talking to Alice. 251

January 6, 2011Practical Aspects of Modern Cryptography Authentication Should Alice be happy with this method of authentication? 252

January 6, 2011Practical Aspects of Modern Cryptography Authentication Should Alice be happy with this method of authentication? Bob sends Alice the authentication string y = “I owe Bob $1,000,000 - signed Alice.” 253

January 6, 2011Practical Aspects of Modern Cryptography Authentication Should Alice be happy with this method of authentication? Bob sends Alice the authentication string y = “I owe Bob $1,000,000 - signed Alice.” Alice dutifully authenticates herself by decrypting (putting her signature on) y. 254

January 6, 2011Practical Aspects of Modern Cryptography Authentication What if Alice only returns authentication queries when the decryption has a certain format? 255

January 6, 2011Practical Aspects of Modern Cryptography RSA Cautions Is it reasonable to sign/decrypt something given to you by someone else? Note that RSA is multiplicative. Can this property be used/abused? 256

January 6, 2011Practical Aspects of Modern Cryptography RSA Cautions D(Y 1 )  D(Y 2 ) = D(Y 1  Y 2 ) Thus, if I’ve decrypted (or signed) Y 1 and Y 2, I’ve also decrypted (or signed) Y 1  Y

January 6, 2011Practical Aspects of Modern Cryptography The Hastad Attack Given E 1 (x) = x 3 mod n 1 E 2 (x) = x 3 mod n 2 E 3 (x) = x 3 mod n 3 one can easily compute x. 258

January 6, 2011Practical Aspects of Modern Cryptography The Bleichenbacher Attack PKCS#1 Message Format: XX XX... XX 00 YY YY... YY random non-zero bytes message 259

January 6, 2011Practical Aspects of Modern Cryptography “Man-in-the-Middle” Attacks 260

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side 261

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side RSA can be used to encrypt any data. 262

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side RSA can be used to encrypt any data. Public-key (asymmetric) cryptography is very inefficient when compared to traditional private-key (symmetric) cryptography. 263

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side 264

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side For efficiency, one generally uses RSA (or another public-key algorithm) to transmit a private (symmetric) key. 265

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side For efficiency, one generally uses RSA (or another public-key algorithm) to transmit a private (symmetric) key. The private session key is used to encrypt any subsequent data. 266

January 6, 2011Practical Aspects of Modern Cryptography The Practical Side For efficiency, one generally uses RSA (or another public-key algorithm) to transmit a private (symmetric) key. The private session key is used to encrypt any subsequent data. Digital signatures are only used to sign a digest of the message. 267