Title: Practical Aspects of Modern Cryptography
1Practical Aspects of Modern Cryptography
- Josh Benaloh
- Brian LaMacchia
- John Manferdelli
2Cryptography is ...
- Protecting Privacy of Data
- Authentication of Identities
- Preservation of Integrity
- basically any protocols designed to operate in
an environment absent of universal trust.
3Characters
Alice
4Characters
Bob
5Basic Communication
Alice talking to Bob
6Another Character
Eve
7Basic Communication Problem
Eve listening to Alice talking to Bob
8Two-Party Environments
Alice Bob
9Remote Coin Flipping
- Alice and Bob decide to make a decision by
flipping a coin. - Alice and Bob are not in the same place.
10Ground Rule
- Protocol must be asynchronous.
- We cannot assume simultaneous actions.
- Players must take turns.
11Is Remote Coin Flipping Possible?
12Is Remote Coin Flipping Possible?
13Is Remote Coin Flipping Possible?
- Two-part answer
- NO I will sketch a formal proof.
14Is Remote Coin Flipping Possible?
- Two-part answer
- NO I will sketch a formal proof.
- YES I will provide an effective protocol.
15A Protocol Flow Tree
A
B
A
B
16A Protocol Flow Tree
A
B
B
B
B
A
B
A
A
A
B
B
B
B
A
B
A
B
B
A
B
B
A
B
A
17Pruning the Tree
A
A
A
A
B
B
B
B
18Pruning the Tree
A
A
A
?
?
B
B
?
B
?
19A Protocol Flow Tree
A
B
B
B
B
A
B
A
A
A
B
B
B
B
A
B
A
B
B
A
B
B
A
B
A
20A Protocol Flow Tree
A
B
B
B
B
A
B
A
A
A
B
B
B
B
B
A
B
A
B
A
B
A
21A Protocol Flow Tree
A
B
B
B
B
A
B
A
A
A
B
B
B
B
B
B
A
B
A
B
22A Protocol Flow Tree
A
B
B
B
A
B
A
B
A
A
B
B
B
B
B
A
B
A
B
23A Protocol Flow Tree
A
B
B
B
A
B
A
A
B
A
A
B
B
B
B
A
B
24A Protocol Flow Tree
A
B
B
B
A
B
A
A
A
B
A
A
B
B
B
B
25A Protocol Flow Tree
A
B
B
B
A
B
A
A
A
B
A
B
A
B
26A Protocol Flow Tree
A
B
B
B
A
A
A
B
A
B
A
B
27A Protocol Flow Tree
A
B
A
B
B
A
B
A
B
A
B
28A Protocol Flow Tree
A
B
A
B
B
B
A
B
A
B
29A Protocol Flow Tree
A
B
A
B
B
B
A
B
30A Protocol Flow Tree
A
A
B
A
B
31A Protocol Flow Tree
A
32Completing the Pruning
- When the pruning is complete one will end up with
either
33Completing the Pruning
- When the pruning is complete one will end up with
either - a winner before the protocol has begun, or
34Completing 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.
35Conclusion of Part I
- Remote coin flipping is utterly impossible!!!
36How to Remotely Flip a Coin
37How to Remotely Flip a Coin
38How to Remotely Flip a Coin
39How to Remotely Flip a Coin
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 -
40How to Remotely Flip a Coin
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 - 2 6 10 14
18 -
41How to Remotely Flip a Coin
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 - 2 6 10 14
18 - 3 7 11
15 19
42How to Remotely Flip a Coin
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 - 2 6 10 14
18 - 3 7 11
15 19
Even
43How to Remotely Flip a Coin
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 - 2 6 10 14
18 - 3 7 11
15 19
4n 1
4n - 1
44How to Remotely Flip a Coin
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 - 2 6 10 14
18 - 3 7 11
15 19
Type 1
Type -1
45How to Remotely Flip a Coin
- Fact 1
- Multiplying two (odd) integers of the same type
always yields a product of Type 1. - (4p1)(4q1) 16pq4p4q1 4(4pqpq)1
- (4p1)(4q1) 16pq4p4q1 4(4pqpq)1
46How 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.
47How to Remotely Flip a Coin
- Fact 3
- Factoring large integers is believed to be much
harder than multiplying large integers.
48How to Remotely Flip a Coin
49How to Remotely Flip a Coin
50How to Remotely Flip a Coin
- Alice
- Randomly select a bit b??1 and two large
integers P and Q both of type b.
51How 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.
52How 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.
53How to Remotely Flip a Coin
Alice Bob
N
54How 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.
55How 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
- After receiving N from Alice, guess the value of
b and send this guess to Alice.
56How to Remotely Flip a Coin
Alice Bob
b
57How 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
- After receiving N from Alice, guess the value of
b and send this guess to Alice.
58How 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.
Bob wins if and only if he correctly guesses the
value of b.
59How 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.
- After receiving b from Bob, reveal P and Q.
Bob wins if and only if he correctly guesses the
value of b.
60How to Remotely Flip a Coin
Alice Bob
P,Q
61How 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.
- After receiving b from Bob, reveal P and Q.
Bob wins if and only if he correctly guesses the
value of b.
62Lets Play
- The INTEGERS
- 0 4 8 12
16 - 1 5 9 13
17 - 2 6 10 14
18 - 3 7 11
15 19
Type 1
Type -1
63How 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.
- After receiving b from Bob, reveal P and Q.
Bob wins if and only if he correctly guesses the
value of b.
64How 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 primes
P and Q both of type b. - Compute N PQ.
- Send N to Bob.
- After receiving b from Bob, reveal P and Q.
Bob wins if and only if he correctly guesses the
value of b.
65Checking Primality
- Basic result from group theory
- If p is a prime, then for integers a such that 0
lt a lt p, then a p - 1 mod p 1. - This is almost never true when p is composite.
66How are the Answers Reconciled?
67How are the Answers Reconciled?
- The impossibility proof assumed unlimited
computational ability.
68How are the Answers Reconciled?
- The impossibility proof assumed unlimited
computational ability. - The protocol is not 50/50 Bob has a small
advantage.
69Applications of Remote Flipping
- Remote Card Playing
- Internet Gambling
- Various Fair Agreement Protocols
70Bit Commitment
- We have implemented remote coin flipping via bit
commitment. - Commitment protocols can also be used for
- Sealed bidding
- Undisclosed contracts
- Authenticated predictions
71One-Way Functions
- We have implemented bit commitment via one-way
functions. - One-way functions can be used for
- Authentication
- Data integrity
- Strong randomness
72One-Way Functions
73One-Way Functions
- Two basic classes of one-way functions
74One-Way Functions
- Two basic classes of one-way functions
- Mathematical
75One-Way Functions
- Two basic classes of one-way functions
- Mathematical
- Multiplication ZXY
76One-Way Functions
- Two basic classes of one-way functions
- Mathematical
- Multiplication ZXY
- Modular Exponentiation Z YX mod N
77One-Way Functions
- Two basic classes of one-way functions
- Mathematical
- Multiplication ZXY
- Modular Exponentiation Z YX mod N
- Ugly
78The Fundamental Equation
79The Fundamental Equation
- ZYX mod N
- When Z is unknown, it can be efficiently computed.
80The Fundamental Equation
- ZYX mod N
- When X is unknown, the problem is known as the
discrete logarithm and is generally believed to
be hard to solve.
81The Fundamental Equation
- ZYX mod N
- When Y is unknown, the problem is known as
discrete root finding and is generally believed
to be hard to solve...
82The Fundamental Equation
- ZYX mod N
- unless the factorization of N is known.
83The Fundamental Equation
- ZYX mod N
- The problem is not well-studied for the case when
N is unknown.
84Implementation
85How to compute YX mod N
86How to compute YX mod N
- Compute YX and then reduce mod N.
87How to compute YX mod N
- Compute YX and then reduce mod N.
- If X, Y, and N each are 1,000-bit integers, YX
consists of 21010 bits.
88How to compute YX mod N
- Compute YX and then reduce mod N.
- If X, Y, and N each are 1,000-bit integers, YX
consists of 21010 bits. - Since there are roughly 2250 particles in the
universe, storage is a problem.
89How to compute YX mod N
90How to compute YX mod N
- Repeatedly multiplying by Y (followed each time
by a reduction modulo N) X times solves the
storage problem.
91How to compute YX 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 2900 32-bit
multiplications per second to complete the
computation before the sun burns out.
92How to compute YX mod N
93How to compute YX mod N
- Multiplication by Repeated Doubling
94How to compute YX mod N
- Multiplication by Repeated Doubling
- To compute X Y,
-
95How to compute YX mod N
- Multiplication by Repeated Doubling
- To compute X Y,
- compute Y, 2Y, 4Y, 8Y, 16Y,
-
96How to compute YX 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.
97How to compute YX 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.
98How to compute YX mod N
99How to compute YX mod N
- Exponentiation by Repeated Squaring
100How to compute YX mod N
- Exponentiation by Repeated Squaring
- To compute YX,
-
101How to compute YX mod N
- Exponentiation by Repeated Squaring
- To compute YX,
- compute Y, Y2, Y4, Y8, Y16,
-
102How to compute YX mod N
- Exponentiation by Repeated Squaring
- To compute YX,
- compute Y, Y2, Y4, Y8, Y16,
- and multiply those values dictated by the
binary representation of X.
103How to compute YX mod N
- Exponentiation by Repeated Squaring
- To compute YX,
- compute Y, Y2, Y4, Y8, Y16,
- and multiply those values dictated by the
binary representation of X. - Example Y26 Y2 Y8 Y16.
104How to compute YX mod N
- We can now perform a 1,000-bit modular
exponentiation using 1,500 1,000-bit modular
multiplications. - 1,000 squarings y, y2, y4, , y21000
- 500 ordinary multiplications
105Sliding Window Method
- One way to speed up modular exponentiation is by
precomputation of many small products. - For instance, if you have y, y2, y3, , y15
computed in advance, you can multiply by (for
example) y13 without having to multiply
individually by y, y4, and y8.
106Large-Integer Operations
- Addition and Subtraction
- Multiplication
- Division and Remainder (Mod N)
- Exponentiation
107Large-Integer Addition
108Large-Integer Addition
109Large-Integer Addition
110Large-Integer Addition
111Large-Integer Addition
112Large-Integer Addition
113Large-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.
114Large-Integer Multiplication
?
115Large-Integer Multiplication
?
116Large-Integer Multiplication
?
117Large-Integer Multiplication
?
118Large-Integer Multiplication
?
119Large-Integer Multiplication
?
120Large-Integer Multiplication
- In general, multiplying two large integers each
consisting of n small blocks requires O(n2)
small-integer multiplications and O(n)
large-integer additions.
121Large-Integer Squaring
?
122Large-Integer Squaring
?
123Large-Integer Squaring
?
124Large-Integer Squaring
- Careful bookkeeping can save nearly half of the
small-integer multiplications (and nearly half of
the time).
125Recall computing YX mod N
- About 2/3 of the multiplications required to
compute YX are actually squarings. - Overall, efficient squaring can save about 1/3 of
the small multiplications required for modular
exponentiation.
126Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
127Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
128Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
129Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
130Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
131Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
132Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
133Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
134Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
135Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
136Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
137Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
138Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
139Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
140Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
141Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
142Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
143Karatsuba Multiplication
- (AxB)(CxD) ACx2 (ADBC)x BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
144Karatsuba Multiplication
- This can be done on integers as well as on
polynomials, but its not as nice on integers
because of carries. - The larger the integers, the larger the benefit.
145Karatsuba Multiplication
- (A2kB)(C2kD)
- AC22k (ADBC)2k BD
- 4 multiplications, 1 addition
- (AB)(CD) AC AD BC BD
- (AB)(CD) AC BD AD BC
- 3 multiplications, 2 additions, 2 subtractions
146Chinese Remaindering
- If X A mod P and XB mod Q then (as long as P
and Q have no common factors) X can be derived
as - X AQ(Q-1 mod P) BP(P-1 mod Q).
147Chinese 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.
148Chinese Remaindering
- Since modular exponentiation of n-bit integers
requires O(n3) time, performing two modular
exponentiations on half size values requires only
about one quarter of the time of a single n-bit
modular exponentiation.
149Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is slow and cumbersome.
150Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is disgusting.
151Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is slow and cumbersome.
152Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is dreadful.
153Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is slow and cumbersome.
154Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is wretched.
155Modular Reduction
- Generally, computing (AB) mod N requires much
more than twice the time to compute AB. - Division is slow and cumbersome.
156The 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.
157Montgomery 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 ABR1 mod M. - Let M? M1 mod R and S ABM? mod R.
- Fact (ABSM)/R ? ABR1 (mod M).
158Using the Montgomery Product
- The Montgomery Product ABR1 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).
159One-Way Functions
160One-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).
161One-Way Functions
- The family of functions
- FY,N(X) YX mod N
- is believed to be one-way for most N and Y.
162One-Way Functions
- The family of functions
- FY,N(X) YX 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.
163One-Way Functions
- When viewed as a two-argument function, the
(candidate) one-way function - FN(Y,X) YX mod N
- also satisfies a useful additional property which
has been termed quasi-commutivity - F(F(Y,X1),X2) F(F(Y,X2),X1)
- since YX1X2 YX2X1.
164Diffie-Hellman Key Exchange
165Diffie-Hellman Key Exchange
- Alice
- Randomly select a large integer a and send A
Ya mod N.
- Bob
- Randomly select a large integer b and send B
Yb mod N.
166Diffie-Hellman Key Exchange
Alice Bob
A
B
167Diffie-Hellman Key Exchange
- Alice
- Randomly select a large integer a and send A
Ya mod N.
- Bob
- Randomly select a large integer b and send B
Yb mod N.
168Diffie-Hellman Key Exchange
- Alice
- Randomly select a large integer a and send A
Ya mod N. - Compute the key K Ba mod N.
- Bob
- Randomly select a large integer b and send B
Yb mod N. - Compute the key K Ab mod N.
169Diffie-Hellman Key Exchange
- Alice
- Randomly select a large integer a and send A
Ya mod N. - Compute the key K Ba mod N.
- Bob
- Randomly select a large integer b and send B
Yb mod N. - Compute the key K Ab mod N.
Ba Yba Yab Ab
170Diffie-Hellman Key Exchange
171Diffie-Hellman Key Exchange
172Diffie-Hellman Key Exchange
- What does Eve see?
- Y, Ya , Yb
173Diffie-Hellman Key Exchange
- What does Eve see?
- Y, Ya , Yb
- but the exchanged key is Yab.
174Diffie-Hellman Key Exchange
- What does Eve see?
- Y, Ya , Yb
- but the exchanged key is Yab.
- Belief Given Y, Ya , Yb it is difficult to
compute Yab .
175Diffie-Hellman Key Exchange
- What does Eve see?
- Y, Ya , Yb
- but the exchanged key is Yab.
- Belief Given Y, Ya , Yb it is difficult to
compute Yab . - Contrast with discrete logarithm assumption
Given Y, Ya it is difficult to compute a .
176More on Quasi-Commutivity
- Quasi-commutivity has additional applications.
- decentralized digital signatures
- membership testing
- digital time-stamping
177One-Way Trap-Door Functions
178One-Way Trap-Door Functions
- ZYX mod N
- Recall that this equation is solvable for Y if
the factorization of N is known, but is believed
to be hard otherwise.
179RSA Public-Key Cryptosystem
180RSA Public-Key Cryptosystem
- Alice
- Select two large random primes P Q.
181RSA Public-Key Cryptosystem
- Alice
- Select two large random primes P Q.
- Publish the product NPQ.
182RSA Public-Key Cryptosystem
- Alice
- Select two large random primes P Q.
- Publish the product NPQ.
- Anyone
- To send message Y to Alice, compute ZYX mod N.
183RSA Public-Key Cryptosystem
- Alice
- Select two large random primes P Q.
- Publish the product NPQ.
- Anyone
- To send message Y to Alice, compute ZYX mod
N. - Send Z and X to Alice.
184RSA Public-Key Cryptosystem
- Alice
- Select two large random primes P Q.
- Publish the product NPQ.
- Use knowledge of P Q to compute Y.
- Anyone
- To send message Y to Alice, compute ZYX mod
N. - Send Z and X to Alice.
185RSA Public-Key Cryptosystem
- In practice, the exponent X is almost always
fixed to be X 65537 216 1.
186Some RSA Details
- When NPQ is the product of distinct primes,
- YX mod N Y
- whenever
- X mod (P-1)(Q-1) 1 and 0 ?Y?N.
187Some RSA Details
- When NPQ is the product of distinct primes,
- YX 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 ED mod (P-1)(Q-1) 1.
188Some RSA Details
- Encryption E(Y) YE mod N.
- Decryption D(Y) YD mod N.
- D(E(Y))
- (YE mod N)D mod N
- YED mod N
- Y
189RSA Signatures
190RSA Signatures
191RSA Signatures
- An additional property
- D(E(Y)) YED mod N Y
192RSA Signatures
- An additional property
- D(E(Y)) YED mod N Y
- E(D(Y)) YDE mod N Y
193RSA Signatures
- An additional property
- D(E(Y)) YED mod N Y
- E(D(Y)) YDE mod N Y
- Only Alice (knowing the factorization of N) knows
D. Hence only Alice can compute D(Y) YD mod N.
194RSA Signatures
- An additional property
- D(E(Y)) YED mod N Y
- E(D(Y)) YDE mod N Y
- Only Alice (knowing the factorization of N) knows
D. Hence only Alice can compute D(Y) YD mod N. - This D(Y) serves as Alices signature on Y.
195Public Key Directory
196Public Key Directory
(Recall that E is commonly fixed to be
E65537.)
197Certificate Authority
Alices public modulus is NA
331490324840 -- signed CA.
198Trust Chains
- Alice certifies Bobs key.
- Bob certifies Carols key.
- If I trust Alice should I accept Carols key?
199Authentication
200Authentication
- How can I use RSA to authenticate someones
identity?
201Authentication
- How can I use RSA to authenticate someones
identity? - If Alices public key EA, just pick a random
message m and send EA(m).
202Authentication
- How can I use RSA to authenticate someones
identity? - If Alices public key EA, just pick a random
message m and send EA(m). - If m comes back, I must be talking to Alice.
203Authentication
- 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.
204Authentication
- What if Alice only returns authentication queries
when the decryption has a certain format?
205RSA 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?
206RSA Cautions
- D(Y1) D(Y2) D(Y1 Y2)
- Thus, if Ive decrypted (or signed) Y1 and Y2,
Ive also decrypted (or signed) Y1 Y2.
207The Hastad Attack
- Given
- E1(x) x3 mod n1
- E2(x) x3 mod n2
- E3(x) x3 mod n3
- one can easily compute x.
208The Bleichenbacher Attack
- PKCS1 Message Format
- 00 01 XX XX ... XX 00 YY YY ... YY
random non-zero bytes
message
209Man-in-the-Middle Attacks
210The Practical Side
211The Practical Side
- RSA can be used to encrypt any data.
212The 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.
213The Practical Side
214The Practical Side
- For efficiency, one generally uses RSA (or
another public-key algorithm) to transmit a
private (symmetric) key.
215The 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.
216The 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.