Cryptography 2014 Lecture 5 Some number theory. One-way functions, trapdoors.

Transcription

Cryptography 2014 Lecture 5 Some number theory. One-way functions, trapdoors.
Cryptography 2014
Lecture 5
Some number theory.
Modular arithmetic.
Extended Euclidean algorithm.
Modular exponentiation.
Fermat’s little theorem.
One-way functions, trapdoors.
RSA encryption.
November 19, 2014
1 / 39
CBC
CBC where attacker can predict the IV is not CPA-secure !!
Suppose given c ← ECBC (k, m) can predict IV for next message
!"#$%&
*&∈&9&
41&←&5&"#($!!%&'$!*⨁"#()&6&
'()%&
<8?(=4;&/0&
*←+!
,-./0⨁/01&2&&&,1&3&,-&
4&←&5&"#$!!%&'$!"#()!6&&&78&
4&←&5&"#$!!%&'$!+(⨁"#)!6&
7:;<:;&-&
=>&4516&.&41516&
AdvCPA [A, E ] = Pr [EXP(0) = 1] − Pr [EXP(1) = 1]
November 19, 2014
2 / 39
Intro Number Theory
Number Theory to construct:
Key exchange protocols
Digital signatures
Public-key encryption
November 19, 2014
3 / 39
Notation
From here on:
N denotes a positive integer.
p denote a prime.
Notation:
ZN = {0, 1, 2, . . . , N − 1}
Can do addition and multiplication modulo N in this set.
For math people ZN denotes a ring!
November 19, 2014
4 / 39
Modular arithmetic
Examples
Let N = 12
9 + 8 = 5 in Z12
5 × 7 = 11 in Z12
5 − 7 = 10 in Z12
Arithmetic in ZN works as you expect, e.g. x · (y + z) = x · y + x · z in ZN
November 19, 2014
5 / 39
Congruences, equality in ZN
Congruences
For a, b ∈ Z and N ∈ N, all the following have the same meaning (and defines the last
two):
a mod N = b mod N.
a = b + k · N for some k ∈ Z.
a ≡ b (mod N).
a = b ∈ ZN
Arithmetic in ZN
Fix N > 0. We define addition +N , subtraction −N and multiplication ·N in ZN by
a +N b
=
a −N b
=
(a + b) mod N
(a − b) mod N
a ·N b
=
(a · b) mod N
November 19, 2014
6 / 39
Greatest Common Divisor
Greatest Common Divisor
For integers x, y : gcd(x, y) is the greatest common divisor of x, y .
In simple words: the largest integer that divides both x and y .
Example: gcd(12, 18) = 6
Fact
For all integers x, y there exist integers a, b such that
a · x + b · y = gcd(x, y )
a,b can be found efficiently using the extended Euclidean algorithm.
Example:
2 × 12 − 1 × 18 = 6
If gcd(x, y ) = 1 we say that x and y are relatively prime.
Example: gcd(3, 5) = 1.
November 19, 2014
7 / 39
Greatest Common Divisor (gcd)
gcd can be calculated using the Euclidean algorithm
The Euclidean Algorithm (GCD)
Input: Integers a, b with a ≥ b ≥ 0
Output: The greatest common divisor of a and b
if b divides a
return b
else return GCD (b, [a mod b])
November 19, 2014
8 / 39
Modular inversion
Over the rationals, inverse of 2 is 1/2. What about ZN ?
Definition
The inverse of x in ZN is an element in ZN such that:
x · y = 1 in Zn
y is denoted x
−1
.
Example
Let N be an odd integer. The inverse of 2 in ZN is
Why? 2 N+1
= N + 1 = 1 in ZN
2
N+1 2
November 19, 2014
9 / 39
Modular inversion
Which elements have an inverse in ZN ?
Lemma
x in ZN has an inverse if and only if gcd(x, N) = 1
Proof Preview: ∃a, b : a · x + b · N = 1 ⇒ a · x = 1 ⇒ x = a−1 ∈ ZN
November 19, 2014
10 / 39
More notation
Definition
Z∗N = (set of invertible elements in Z) =
= {x ∈ ZN : gcd(x, N) = 1}
Examples:
1
For prime p, Z∗p = Zp r {0} = {1, 2, . . . , p − 1}
2
Why? gcd(p, 0) = 0 6= 1 and |Z∗p | = p − 1
3
Z∗12 = {1, 5, 7, 11}
For x in Z∗N , can find x −1 , using extended Euclidean algorithm.
November 19, 2014
11 / 39
More notation
Definition
Z∗N = (set of invertible elements in Z) =
= {x ∈ ZN : gcd(x, N) = 1}
Examples:
1
For prime p, Z∗p = Zp r {0} = {1, 2, . . . , p − 1}
2
Why? gcd(p, 0) = 0 6= 1 and |Z∗p | = p − 1
3
Z∗12 = {1, 5, 7, 11}
For x in Z∗N , can find x −1 , using extended Euclidean algorithm.
Example
Let us find 1/17 ∈ Z43
17 · x = 1( mod 43)
We can do that using the extended Euclidean Algorithm (example on the board!)
November 19, 2014
11 / 39
More notation
Definition
Z∗N = (set of invertible elements in Z) =
= {x ∈ ZN : gcd(x, N) = 1}
Examples:
1
For prime p, Z∗p = Zp r {0} = {1, 2, . . . , p − 1}
2
Why? gcd(p, 0) = 0 6= 1 and |Z∗p | = p − 1
3
Z∗12 = {1, 5, 7, 11}
For x in Z∗N , can find x −1 , using extended Euclidean algorithm.
Solving modular linear equations
Solve: a · x + b = 0 in ZN
⇒ Solution: x = −b · a−1 in ZN
Find a−1 in ZN using extended Euclidean algorithm. Run time: O(log2 N)
November 19, 2014
11 / 39
Extended Euclidean Algorithm
If we know a, b we can find X and Y such that X · a + Y · b = d
Extended Euclidean Algorithm
Input: Integers a, b with a ≥ b > 0
Output: (d, X , Y ) with d = gcd(a, b) and X · a + Y · b = d
If b divides a
return (b, 0, 1)
else
Compute integers q, r with a = qb + r and 0 ≥ r < b
(d, X , Y ) := eGCD(b, r ) /* note that Xb +Yr=d */
return (d, Y, X-Yq)
November 19, 2014
12 / 39
Review
N denotes an n-bit positive integer. p denotes a prime.
ZN = {0, 1, . . . , N − 1}
(ZN )∗ = (set of invertible elements in ZN ) =
= {x ∈ ZN : gcd(x, N) = 1}
November 19, 2014
13 / 39
Fermat’s theorem (1640)
Theorem
Let p be a prime:
∀x ∈ Z∗p : x p−1 = 1 in Zp
Proven by Euler about 100 years later
Example:
p = 5.
34 = 81 = 1 in Z5
So ...
x ∈ Z∗p ⇒ x · x p−2 = 1 ⇒ x −1 = x p−2 in Zp
Another way to compute inverses, but less efficient that Euclid. works only for modulo p
primes It takes O(log3 p)
November 19, 2014
14 / 39
Application: generating random primes
Suppose we want to generate a large random prime
say, prime p of length 1024 bits (i.e. p ≈ 21024 )
Algorithm
Step 1: Choose a random integer p ∈ [21024 , 21025 − 1]
Step 2: Test if 2p−1 = 1 in Zp
If so, output p and stop. If not go to step 1.
Simple algorithm (not the best). Pr [p not prime] < 2−60
With a few hundred iterations you find a prime.
November 19, 2014
15 / 39
The structure of (Zp )∗
Theorem - Euler
(Zp )∗ is a cyclic group, that is
∃g ∈ (Zp )∗ such that {1, g , g 2 , g 3 , . . . , g p−2 } = (Zp )∗
g is called a generator of (Zp )∗ .
g p−1 = 1 so we stop in g p−2
Example:
p = 7, {1, 3, 32 , 33 , 34 , 35 } = {1, 3, 2, 6, 4, 5} = (Z7 )∗
Not every element is a generator: {1, 2, 22 , 23 , 24 , 25 } = {1, 2, 4}
November 19, 2014
16 / 39
Order
For g ∈ (Zp )∗ the set {1, g , g 2 , g 3 , · · · } is called
the group generated by g , denoted < g >
Definition
The order of g ∈ (Zp )∗ is the size of < g >
ordp (g ) = | < g > | = smallest a > 0 s.t. g a = 1 in Zp
Example: ord7 (2) = 3, ord7 (1) = 1
Theorem - Lagrange
∀g ∈ (Zp )∗ : ordp (g ) divides p − 1
November 19, 2014
17 / 39
Euler’s generalisation of Fermat (1736)
Definition
For an integer N define φ(N) = |(ZN )∗ | (Euler’s φ function)
Examples
φ(12) = |{1, 5, 7, 11}| = 4 : φ(p) = p − 1
Why?
Z∗p = Zp r {0} = {1, 2, . . . , p − 1}
For N = p · q : φ(N) = N − p − q + 1 = (p − 1)(q − 1)
Why?
- N is the size of ZN .
- Remove all elements not relatively prime to N (divisible by p, divisible by q)
Theorem (Euler):
∀x ∈ (ZN )∗ :
x φ(N) = 1 in ZN ⇒ Applies to composites not only primes (like Fermat’s)!
Example: 5φ(12) = 54 = 625 = 1 in Z12
Generalisation of Fermat’s theorem ⇒ Basis of the RSA cryptosystem.
November 19, 2014
18 / 39
Arithmetic
Given: two n-bit integers
Addition and subtraction: linear time O(n)
Multiplication: naively O(n2 ) (In reality about O(n · logn))
Division with remainder: O(n2 )
November 19, 2014
19 / 39
Exponentiation
Finite cyclic group G (for example G = (Zp )∗ )
Goal: Given g in G and x compute g x We can use the square root algorithm!
Example:
Suppose: x = 53 = (110101)2 = 32 + 16 + 4 + 1
Then g 53 = g 32+16+4+1 = g 32 · g 16 · g 4 · g 1
!"!"!#"!"!$"!"!%"!"!&'"!"!(#""""""""""""""""!)("
Required: Only 9 multiplications.
November 19, 2014
20 / 39
The repeated squaring algorithm
Input: g in G and x > 0 : Output g x
write x = (xn , xn−1 . . . x2 x1 x0 )2
Algorithm
for i = 0 to n do:
if (x[i] == 1) : z ← z · y
y ← y 2 output z
Number of iterations: log 2 x
November 19, 2014
21 / 39
Running times
Given n-bit integer N
Addition and subtraction in ZN : linear time T+ = O(n)
Modular multiplication in ZN : naively Tx = O(n2 )
Modular exponentiation in ZN (g x )
O ( log x) ·TX ≤ O (log x) · n2 ≤ O(n3 )
| {z }
iterations
November 19, 2014
22 / 39
Public key encryption
Bob: generates (PK , SK ) and gives PK to Alice.
Alice
m
!"
Bob
c
c
$%"
#"
m
&%"
Non-interactive applications: (e.g. Email)
Bob sends email to Alice encrypted using pkalice
Note: Bob needs pkalice (public key management)
November 19, 2014
23 / 39
Public key encryption
A public-key encryption system is a triple of algorithms (G , E , D)
Definition
G(): randomised algorithm outputs a key pair (pk, sk).
E(pk, m) : randomised algorithm that takes m ∈ M and outputs c ∈ C .
D(sk, c) : deterministic algorithm that takes c ∈ C and outputs m ∈ M or ⊥
Consistency: ∀(pk, sk) output G :
∀m ∈ M :
D(sk, E (pk, m)) = m
November 19, 2014
24 / 39
Security: eavesdropping
For b = 0, 1 define experiments EXP(0) and EXP(1) as:
'&
!"#$%&
+,-./-0←1+0!
,-&
()*%&(&
23&.&24&&∈&5&6&&&&7237&8&7247&
9&←&:+,-.&"#0&
';&∈&<3.4=&
:>?+'0&
Definition:
E = (G , E , D) is semantically secure (IND-CPA) if for all efficient A:
AdvS S[A, E ] = Pr [EXP(0) = 1] − Pr [EXP(1) = 1] < negligible
November 19, 2014
25 / 39
Chosen Ciphertext Security: definition
E (G , E , D) public-key encryption over (M, C ). For b = 0, 1 define EXP(b)
'()*&"
!"
+,-./-0←1+0!
,-"
#$%&"#"
,,-!.#$/&!0)""""""<>"∈"'""
7>"←"?+-.!"10"
"#$%%&'(&)""""74"."75""∈"8"9"""":74:";":75:"
<"←"=+,-.!*+0"
,,-!.#$/&!2)""""""<>"∈"'""9""""""1!3!"!
""
7>"←"?+-.!"10"
!2"∈"34.56"
Definition
E is CCA secure (a.k.a. IND-CCA) if for all efficient A:
AdvCCA [A, E ] = Pr [EXP(0) = 1] − Pr [EXP(1) = 1] is negligible.
November 19, 2014
26 / 39
One-way functions
One-way function
A one-way function f : X → Y has the properties that
it is computationally “easy” to compute (evaluate) f (x) for any x ∈ X .
it is computationally “difficult” to invert f , i.e. given y ∈ Y , to find an x ∈ X such
that f (x) = y .
Of course, this is vague and needs to be more precisely defined, but the idea is to use
such an f as an encryption function.
November 19, 2014
27 / 39
Trapdoor functions (TDF)
Definition
A trapdoor function X → Y is a triple of efficient algorithms (G , F , F −1 )
G () : randomised algorithm outputs a key pair (pk, sk)
F (pk, ·) : deterministic algorithm that defines a function X → Y
F −1 (sk, ·) : defines a function Y → X that inverts F (pk, ·)
More precisely: ∀(pk, sk) output by G
∀x ∈ X : F −1 sk, F (pk, x) = x
Secure TDFs
(G , F , F −1 ) is secure if F (pk, ·) is a “one-way” function:
can be evaluated, but cannot be inverted without sk.
→ Evaluate (compute) the function in the forward direction is very easy.
→ No one can evaluate the function in the reverse direction unless they have the
trapdoor (sk).
November 19, 2014
28 / 39
Trapdoor functions
In simple words...
A secure trapdoor function is a one-way function f with the further property that if you
know some secret extra information, inverting “f” becomes “easy”.
Refined idea:
For encryption, we use a trapdoor one-way function for which only the receiver knows
the secret (trapdoor).
November 19, 2014
29 / 39
Public and private keys
Public and private keys
A key is now a pair (pk, sk) ∈ K × K, consisting of a public key pk and a private key sk.
We want the following:
A family {Epk }pk∈K of encryption functions, so that each choice of pk gives a
one-way function Epk : M → C.
A family {Dsk }sk∈K of decryption functions Dsk : C → M, such that
for each sk there is a sk such that Dsk (Epk (x)) = x for all x ∈ M.
It is easy for a user to generate a (pk, sk) pair, but computing sk from sk in infeasible
(so, sk is the trapdoor).
November 19, 2014
30 / 39
Review: arithmetic mod composites
Let N = p · q where p, q are prime
ZN = {0, 1, 2, . . . , N − 1},
(ZN )∗ = { invertible elements in ZN }
Facts:
x ∈ ZN is invertible ⇔ gcd(x, N) = 1
Number of elements in (ZN )∗ is φ(N) = (p − 1)(q − 1) = N − p − q + 1
By choosing
a random element in Zn it is very likely to be in (ZN )∗ (that is invertible).
Euler’s Theorem:
∀x ∈ (ZN )∗ :
x φ(N) = 1
November 19, 2014
31 / 39
The RSA trapdoor permutation
First published: Scientific American, Aug. 1977.
Very widely used:
SSL/TLS: certificates and key-exchange
Secure e-mail and file systems
. . . many others
RSA: Rivest, Shamir and Adleman (Turing Award 2003).
November 19, 2014
32 / 39
The RSA trapdoor permutation
The RSA trapdoor permutation
G() : choose random primes p, q ≈ 1024 bits. Set N = pq.
Choose integers e, d such that e · d = 1(modφ(N))
(This means that e and d are relatively prime to φ(N), modulo inverses.)
output pk = (N, e), sk = (N, d)
—————————————————————————F (pk, x) : Z∗N → Z∗N RSA(x) = xe in Zn
—————————————————————————F −1 (sk, y ) = y d :
y d = RSA(x)d = x ed = x kφ(n)+1 = (x φ(N) )k · x = x
November 19, 2014
33 / 39
The RSA assumption
RSA assumption: RSA is one-way permutation
RSA assumption
For all efficient algorithms A:
Pr A(N, e, y ) = y 1/e < negligible
R
R
where p, q ← n-bit primes, N ← pq, y ← Z∗N
November 19, 2014
34 / 39
Textbook RSA is insecure
Textbook RSA encryption:
public key: (N, e)
Encrypt: c ← me (in ZN )
secret key: (N, d)
Decrypt:c d → m
Insecure crypto system!!
It is a deterministic encryption!
Is not semantically secure and many attacks exist!
⇒ The RSA trapdoor permutation is not an encryption scheme!
November 19, 2014
35 / 39
RSA example
Key setup
Alice chooses p = 7 and q = 11; hence N = 77 and Φ(N) = 60.
Alice then chooses e = 37 and computes d = 13 (extended Euclid on inputs 60 and 37,
at the same time checking gcd (60, 37) = 1).
The public key is thus (77, 37).
Encryption
Bob wants to send m = 8 to Alice. He computes (in Z77 ) C = 837 = 57.
Decryption
Alice, on receiving C , computes 5713 = 8 and has recovered m.
November 19, 2014
36 / 39
RSA attack
CLIENT HELLO
&,-.'/$
)"))0'-12"3$2$
!"#$
%&'()"&$
SERVER HELLO (e,N)
c=RSA(k)
!"#$
*"&+"&$
!"
Suppose k is 64 bits: k ∈ {0, . . . , 264 } Eve sees: k e in ZN
If k = k1 · k2 where k1 , k2 < 234 (prob. ≈ 20%) then c/ke1 = ke2 in ZN
C , N, e : known to the Attacker.
Meet-in-the-middle attack!
Attack Steps
Step 1: Build table: c/1e , c/2e , c/3e , . . . , c/234 e. time: 234
Step 2: For k2 = 0, . . . , 234 test if k2e is in table. time:234
Output matching (k1 , k2 ). Total attack time ≈ 240
November 19, 2014
37 / 39
Things to remember
Things to remember
Which elements have an inverse in ZN ?
How can I find the inverse?
What does the Fermat’s theorem say?
What does Euler’s theorem say?
What is IND-CCA?
How does RSA work?
Why RSA textbook is not secure?
Attacks against RSA!
Optional and Recommended Reading
A Computational Introduction to Number Theory and Algebra
V. Shoup, 2008 (V1), Chapter 1-4, 11, 12
Available at http://shoup.net/ntb/ntb-v2.pdf
November 19, 2014
38 / 39
References:
Crypto Course Stanford, Dan Boneh
“Cryptography and Network Security: Principles and practice” (Chapters 4.1-4.3,
8.1-8.3, 9.1-9.2)
“Introduction to Modern Cryptography”, Lindell and Katz (Chapter 7.1.1-7.1.4, 7.2,
10.1, 10.2, 10.4, B.1.2)
November 19, 2014
39 / 39