Title: Practical Aspects of Modern Cryptography
1Practical Aspects of Modern Cryptography
- Josh Benaloh
- Brian LaMacchia
- John Manferdelli
2Public-Key History
- 1976 New Directions in Cryptography
- Whit Diffie and Marty Hellman
- One-Way functions
- Diffie-Hellman Key Exchange
- 1978 RSA paper
- Ron Rivest, Adi Shamir, and Len Adleman
- RSA Encryption System
- RSA Digital Signature Mechanism
3The Fundamental Equation
4Diffie-Hellman
- ZYX mod N
- When X is unknown, the problem is known as the
discrete logarithm and is generally believed to
be hard to solve.
5Diffie-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
6One-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.
7RSA 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.
8Some 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.
9Remaining RSA Basics
- Why is YX mod PQ Y whenever
- X mod (P-1)(Q-1) 1, 0 ?Y?PQ,
- and P and Q are distinct primes?
- How can Alice can select integers E and D such
that ED mod (P-1)(Q-1) 1?
10Fermats Little Theorem
- If p is prime,
- then x p-1 mod p 1 for all 0 lt x lt p.
- Equivalently
- If p is prime,
- then x p mod p x mod p for all integers x.
11Proof of Fermats Little Theorem
- The Binomial Theorem
- (x y) p x p ( )x p-1y ( )xy p-1
y p - where ( )
p 1
p p1
p i
p! i!(p i)!
12Proof of Fermats Little Theorem
- The Binomial Theorem
- (x y) p x p ( )x p-1y ( )xy p-1
y p - where ( )
- If p is prime, then ( ) mod p 0 for 0 lt i lt p.
p 1
p p1
p i
p! i!(p i)!
p i
13Proof of Fermats Little Theorem
- The Binomial Theorem
- (x y) p x p ( )x p-1y ( )xy p-1
y p - where ( )
- If p is prime, then ( ) mod p 0 for 0 lt i lt p.
- Thus, (x y) p mod p (x p y p) mod p.
p 1
p p1
p i
p! i!(p i)!
p i
14Proof of Fermats Little Theorem
15Proof of Fermats Little Theorem
16Proof of Fermats Little Theorem
17Proof of Fermats Little Theorem
- By induction on x
- Basis
- If x 0, then x p mod p 0 x mod p.
18Proof of Fermats Little Theorem
- By induction on x
- Basis
- If x 0, then x p mod p 0 x mod p.
- If x 1, then x p mod p 1 x mod p.
19Proof of Fermats Little Theorem
20Proof of Fermats Little Theorem
21Proof of Fermats Little Theorem
- Inductive Step
- Assume that x p mod p x mod p.
22Proof of Fermats Little Theorem
- Inductive Step
- Assume that x p mod p x mod p.
- Then (x 1) p mod p (x p 1p) mod p
23Proof of Fermats Little Theorem
- Inductive Step
- Assume that x p mod p x mod p.
- Then (x 1) p mod p (x p 1p) mod p
- (x 1) mod p.
24Proof of Fermats Little Theorem
- Inductive Step
- Assume that x p mod p x mod p.
- Then (x 1) p mod p (x p 1p) mod p
- (x 1) mod p.
- Hence, x p mod p x mod p for integers x 0.
25Proof of Fermats Little Theorem
- Inductive Step
- Assume that x p mod p x mod p.
- Then (x 1) p mod p (x p 1p) mod p
- (x 1) mod p.
- Hence, x p mod p x mod p for integers x 0.
- Also true for negative x, since (-x) p (-1) px
p.
26Proof of RSA
27Proof of RSA
28Proof of RSA
- We have shown
- YP mod P Y whenever 0 Y lt P
29Proof of RSA
- We have shown
- YP mod P Y whenever 0 Y lt P
- and P is prime!
30Proof of RSA
- We have shown
- YP mod P Y whenever 0 Y lt P
- and P is prime!
- You will show
31Proof of RSA
- We have shown
- YP mod P Y whenever 0 Y lt P
- and P is prime!
- You will show
- YK(P-1)(Q-1)1 mod PQ Y when 0 Y lt PQ
32Proof of RSA
- We have shown
- YP mod P Y whenever 0 Y lt P
- and P is prime!
- You will show
- YK(P-1)(Q-1)1 mod PQ Y when 0 Y lt PQ
- P and Q are distinct primes and K 0.
33Finding Primes
34Finding Primes
- Euclids proof of the infinity of primes
35Finding Primes
- Euclids proof of the infinity of primes
- Suppose that the set of all primes were finite.
36Finding Primes
- Euclids proof of the infinity of primes
- Suppose that the set of all primes were finite.
- Let N be the product of all of the primes.
37Finding Primes
- Euclids proof of the infinity of primes
- Suppose that the set of all primes were finite.
- Let N be the product of all of the primes.
- Consider N1.
38Finding Primes
- Euclids proof of the infinity of primes
- Suppose that the set of all primes were finite.
- Let N be the product of all of the primes.
- Consider N1.
- The prime factors of N1 are not among the finite
set of primes multiplied to form N.
39Finding Primes
- Euclids proof of the infinity of primes
- Suppose that the set of all primes were finite.
- Let N be the product of all of the primes.
- Consider N1.
- The prime factors of N1 are not among the finite
set of primes multiplied to form N. - This contradicts the assumption that the set of
all primes is finite.
40The Prime Number Theorem
41The Prime Number Theorem
- The number of primes less than N is approximately
N/(ln N).
42The Prime Number Theorem
- The number of primes less than N is approximately
N/(ln N). - Thus, approximately 1 out of every n randomly
selected n-bit integers will be prime.
43Testing Primality
- Recall Fermats Little Theorem
- If p is prime, then a(p-1) mod p 1 for all a in
the range 0 lt a lt p.
44The Miller-Rabin Primality Test
45The Miller-Rabin Primality Test
- To test an integer N for primality, write N1 as
N1 m2k where m is odd.
46The Miller-Rabin Primality Test
- To test an integer N for primality, write N1 as
N1 m2k where m is odd. - Repeat several (many) times
47The Miller-Rabin Primality Test
- To test an integer N for primality, write N1 as
N1 m2k where m is odd. - Repeat several (many) times
- Select a random a in 1 lt a lt N1
48The Miller-Rabin Primality Test
- To test an integer N for primality, write N1 as
N1 m2k where m is odd. - Repeat several (many) times
- Select a random a in 1 lt a lt N1
- Compute am, a2m, a4m, , a(N1)/2 all mod N.
49The Miller-Rabin Primality Test
- To test an integer N for primality, write N1 as
N1 m2k where m is odd. - Repeat several (many) times
- Select a random a in 1 lt a lt N1
- Compute am, a2m, a4m, , a(N1)/2 all mod N.
- If am 1 or if some a2im -1, then N is
probably prime continue.
50The Miller-Rabin Primality Test
- To test an integer N for primality, write N1 as
N1 m2k where m is odd. - Repeat several (many) times
- Select a random a in 1 lt a lt N1
- Compute am, a2m, a4m, , a(N1)/2 all mod N.
- If am 1 or if some a2im -1, then N is
probably prime continue. - Otherwise, N is composite stop.
51Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
52Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
53Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
54Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
55Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
56Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
57Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
2
Sieving out multiples of
58Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
3
Sieving out multiples of
59Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
3
Sieving out multiples of
60Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
3
Sieving out multiples of
61Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
3
Sieving out multiples of
62Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
3
Sieving out multiples of
63Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
5
Sieving out multiples of
64Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
5
Sieving out multiples of
65Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
5
Sieving out multiples of
66Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
5
Sieving out multiples of
67Sieving for Primes
- Pick a random starting point N.
N N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
5
Sieving out multiples of
Only a few good candidate primes will survive.
68Remaining RSA Basics
69Remaining RSA Basics
- Why is YX mod PQ Y whenever
- X mod (P-1)(Q-1) 1, 0 ?Y?PQ,
- and P and Q are distinct primes?
70Remaining RSA Basics
- Why is YX mod PQ Y whenever
- X mod (P-1)(Q-1) 1, 0 ?Y?PQ,
- and P and Q are distinct primes?
- How can Alice can select integers E and D such
that ED mod (P-1)(Q-1) 1?
71Modular Arithmetic
72Modular Arithmetic
- To compute (AB) mod N,
- compute (AB) and take the result mod N.
73Modular Arithmetic
- To compute (AB) mod N,
- compute (AB) and take the result mod N.
- To compute (A-B) mod N,
- compute (A-B) and take the result mod N.
74Modular Arithmetic
- To compute (AB) mod N,
- compute (AB) and take the result mod N.
- To compute (A-B) mod N,
- compute (A-B) and take the result mod N.
- To compute (AB) mod N,
- compute (AB) and take the result mod N.
75Modular Arithmetic
- To compute (AB) mod N,
- compute (AB) and take the result mod N.
- To compute (A-B) mod N,
- compute (A-B) and take the result mod N.
- To compute (AB) mod N,
- compute (AB) and take the result mod N.
- To compute (AB) mod N,
76Modular Division
77Modular Division
- What is the value of (12) mod 7?
- We need a solution to 2x mod 7 1.
78Modular Division
- What is the value of (12) mod 7?
- We need a solution to 2x mod 7 1.
- Try x 4.
79Modular Division
- What is the value of (12) mod 7?
- We need a solution to 2x mod 7 1.
- Try x 4.
- What is the value of (75) mod 11?
- We need a solution to 5x mod 11 7.
80Modular Division
- What is the value of (12) mod 7?
- We need a solution to 2x mod 7 1.
- Try x 4.
- What is the value of (75) mod 11?
- We need a solution to 5x mod 11 7.
- Try x 8.
81Modular Division
82Modular Division
- Is modular division always well-defined?
83Modular Division
- Is modular division always well-defined?
- (13) mod 6 ?
84Modular Division
- Is modular division always well-defined?
- (13) mod 6 ?
- 3x mod 6 1 has no solution!
85Modular Division
- Is modular division always well-defined?
- (13) mod 6 ?
- 3x mod 6 1 has no solution!
- Fact
- (AB) mod N always has a solution when gcd(B,N)
1.
86Modular Division
- Fact
- (AB) mod N always has a solution when gcd(B,N)
1.
87Modular Division
- Fact
- (AB) mod N always has a solution when gcd(B,N)
1. - There is no solution if gcd(A,B) 1 and
gcd(B,N) ? 1.
88Greatest Common Divisors
89Greatest Common Divisors
90Greatest Common Divisors
- gcd(A , B) gcd(B , A B)
- since any common factor of A and B is also a
factor of A B.
91Greatest Common Divisors
- gcd(A , B) gcd(B , A B)
- since any common factor of A and B is also a
factor of A B. - gcd(21,12) gcd(12,9) gcd(9,3)
- gcd(6,3) gcd(3,6) gcd(3,3)
- gcd(3,0) 3
92Greatest Common Divisors
93Greatest Common Divisors
- gcd(A , B) gcd(B , A B)
- gcd(A , B) gcd(B , A kB) for any integer k.
94Greatest 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)
95Greatest 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
96Extended Euclidean Algorithm
- Given integers A and B, find integers X and Y
such that AX BY gcd(A,B).
97Extended 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.
98Extended 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 (CA) mod B as C(1A) mod B.
99Extended 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
100Extended Euclidean Algorithm
101Extended Euclidean Algorithm
102Extended Euclidean Algorithm
- 35 8 ? 4 3
- 8 3 ? 2 2
- 3 2 ? 1 1
-
103Extended Euclidean Algorithm
- 35 8 ? 4 3
- 8 3 ? 2 2
- 3 2 ? 1 1
- 2 1 ? 2 0
104Extended Euclidean Algorithm
- 35 8 ? 4 3 3 35 8 ? 4
- 8 3 ? 2 2 2 8 3 ? 2
- 3 2 ? 1 1 1 3 2 ? 1
- 2 1 ? 2 0
105Extended Euclidean Algorithm
- 3 35 8 ? 4
- 2 8 3 ? 2
- 1 3 2 ? 1
106Extended Euclidean Algorithm
- 3 35 8 ? 4
- 2 8 3 ? 2
- 1 3 2 ? 1 (35 8 ? 4) (8 3 ? 2) ? 1
107Extended 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
108Extended 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 ? 13
109Extended Euclidean Algorithm
- Given A,B gt 0, set x11, x20, y10, y21, a1A,
b1B, i1. - Repeat while bigt0 i i 1
- qi ai-1 div bi-1 bi ai-1-qbi-1 ai
bi-1 - xi1xi-1-qixi yi1yi-1-qiyi.
- For all i Axi Byi ai. Final ai gcd(A,B).
110Digital Signatures
- Recall that with RSA,
- 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.
111The Digital Signature Algorithm
- In 1991, the National Institute of Standards and
Technology published a Digital Signature Standard
that was intended as an option free of
intellectual property constraints.
112The Digital Signature Algorithm
- DSA uses the following parameters
- Prime p anywhere from 512 to 1024 bits
- Prime q 160 bits such that q divides p-1
- Integer h in the range 1 lt h lt p-1
- Integer g h(p-1)/q mod p
- Secret integer x in the range 1 lt x lt q
- Integer y gx mod p
113The Digital Signature Algorithm
- To sign a 160-bit message M,
114The Digital Signature Algorithm
- To sign a 160-bit message M,
- Generate a random integer k with 0 lt k lt q,
115The Digital Signature Algorithm
- To sign a 160-bit message M,
- Generate a random integer k with 0 lt k lt q,
- Compute r (gk mod p) mod q,
116The Digital Signature Algorithm
- To sign a 160-bit message M,
- Generate a random integer k with 0 lt k lt q,
- Compute r (gk mod p) mod q,
- Compute s ((Mxr)/k) mod q.
117The Digital Signature Algorithm
- To sign a 160-bit message M,
- Generate a random integer k with 0 lt k lt q,
- Compute r (gk mod p) mod q,
- Compute s ((Mxr)/k) mod q.
- The pair (r,s) is the signature on M.
118The Digital Signature Algorithm
- A signature (r,s) on M is verified as follows
119The Digital Signature Algorithm
- A signature (r,s) on M is verified as follows
- Compute w 1/s mod q,
120The Digital Signature Algorithm
- A signature (r,s) on M is verified as follows
- Compute w 1/s mod q,
- Compute a wM mod q,
121The Digital Signature Algorithm
- A signature (r,s) on M is verified as follows
- Compute w 1/s mod q,
- Compute a wM mod q,
- Compute b wr mod q,
122The Digital Signature Algorithm
- A signature (r,s) on M is verified as follows
- Compute w 1/s mod q,
- Compute a wM mod q,
- Compute b wr mod q,
- Compute v (gayb mod p) mod q.
123The Digital Signature Algorithm
- A signature (r,s) on M is verified as follows
- Compute w 1/s mod q,
- Compute a wM mod q,
- Compute b wr mod q,
- Compute v (gayb mod p) mod q.
- Accept the signature only if v r.
124Elliptic Curve Cryptosystems
125Elliptic Curve Cryptosystems
126Elliptic Curve Cryptosystems
- An elliptic curve
- y2 x3 Ax B
127Elliptic Curves
128Elliptic Curves
129Elliptic Curves
y
x
130Elliptic Curves
y
x
131Elliptic Curves
y
x
132Elliptic Curves
y
x
133Elliptic Curves
y
x
134Elliptic Curves
y
x
135Elliptic Curves
y
x
136Elliptic Curves
y
x
137Elliptic Curves
y
x
138Elliptic Curves Intersecting Lines
y
x
y ax b
139Elliptic Curves Intersecting Lines
- Non-vertical Lines
- y2 x3 Ax B
- y ax b
- (ax b)2 x3 Ax B
- x3 A?x2 B?x C? 0
140Elliptic Curves Intersecting Lines
y
x
141Elliptic Curves Intersecting Lines
- Non-vertical Lines
- 1 intersection point (typical case)
- 2 intersection points (tangent case)
- 3 intersection points (typical case)
142Elliptic Curves Intersecting Lines
- Vertical Lines
- y2 x3 Ax B
- x c
- y2 c3 Ac B
- y2 C
143Elliptic Curves Intersecting Lines
- Vertical Lines
- 0 intersection point (typical case)
- 1 intersection points (tangent case)
- 2 intersection points (typical case)
144Elliptic Groups
y
x
y ax b
145Elliptic Groups
y
x
y ax b
146Elliptic Groups
y
x
y ax b
147Elliptic Groups
y
x
x c
148Elliptic Groups
- Add an artificial point I to handle the
vertical line case. - This point I also serves as the group identity
value.
149Elliptic Groups
y
x
x c
150Elliptic Groups
- (x1,y1) ? (x2,y2) (x3,y3)
- x3 ((y2y1)/(x2x1))2 x1 x2
- y3 -y1 ((y2y1)/(x2x1)) (x1x3)
- when x1 ? x2
151Elliptic Groups
- (x1,y1) ? (x2,y2) (x3,y3)
- x3 ((3x12A)/(2y1))2 2x1
- y3 -y1 ((3x12A)/(2y1)) (x1x3)
- when x1 x2 and y1 y2 ? 0
152Elliptic Groups
- (x1,y1) ? (x2,y2) I
- when x1 x2 but y1? y2 or y1 y2 0
- (x1,y1) ? I (x1,y1) I ? (x1,y1)
- I ? I I
153The Fundamental Equation
154The Fundamental Equation
155The Fundamental Equation
- ZYX in Ep(A,B)
- When Z is unknown, it can be efficiently computed
by repeated squaring.
156The Fundamental Equation
- ZYX in Ep(A,B)
- When X is unknown, this version of the discrete
logarithm is believed to be quite hard to solve.
157The Fundamental Equation
- ZYX in Ep(A,B)
- When Y is unknown, it can be efficiently computed
by sophisticated means.
158Diffie-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
159Diffie-Hellman Key Exchange
- Alice
- Randomly select a large integer a and send
A Ya in Ep. - Compute the key K Ba in Ep.
- Bob
- Randomly select a large integer b and send
B Yb in Ep. - Compute the key K Ab in Ep.
Ba Yba Yab Ab
160DSA on Elliptic Curves
161DSA on Elliptic Curves
- Almost identical to DSA over the integers.
162DSA on Elliptic Curves
- Almost identical to DSA over the integers.
- Replace operations mod p and q with operations in
Ep and Eq.
163Why use Elliptic Curves?
164Why use Elliptic Curves?
- The best currently known algorithm for EC
discrete logarithms would take about as long to
find a 160-bit EC discrete log as the best
currently known algorithm for integer discrete
logarithms would take to find a 1024-bit discrete
log. -
165Why use Elliptic Curves?
- The best currently known algorithm for EC
discrete logarithms would take about as long to
find a 160-bit EC discrete log as the best
currently known algorithm for integer discrete
logarithms would take to find a 1024-bit discrete
log. - 160-bit EC algorithms are somewhat faster and use
shorter keys than 1024-bit traditional
algorithms.
166Why not use Elliptic Curves?
167Why not use Elliptic Curves?
- EC discrete logarithms have been studied far less
than integer discrete logarithms. -
-
168Why not use Elliptic Curves?
- EC discrete logarithms have been studied far less
than integer discrete logarithms. - Results have shown that a fundamental break in
integer discrete logs would also yield a
fundamental break in EC discrete logs, although
the reverse may not be true. -
169Why not use Elliptic Curves?
- EC discrete logarithms have been studied far less
than integer discrete logarithms. - Results have shown that a fundamental break in
integer discrete logs would also yield a
fundamental break in EC discrete logs, although
the reverse may not be true. - Basic EC operations are more cumbersome than
integer operations, so EC is only faster if the
keys are much smaller.