Trapdoor functions from the Computational Diffie-Hellman Assumption
Sanjam Garg1 Mohammad Hajiabadi1,2
1University of California, Berkeley 2University of Virginia
August 22, 2018
1 / 18
Trapdoor functions from the Computational Diffie-Hellman Assumption - - PowerPoint PPT Presentation
Trapdoor functions from the Computational Diffie-Hellman Assumption Sanjam Garg 1 Mohammad Hajiabadi 1 , 2 1 University of California, Berkeley 2 University of Virginia August 22, 2018 1 / 18 Classical Public-Key Crypto 2 / 18 Classical
1University of California, Berkeley 2University of Virginia
1 / 18
2 / 18
2 / 18
1k G pk sk m E pk r c c D sk m
3 / 18
1k G pk sk m E pk r c c D sk m
c
3 / 18
1k G pk sk m E pk r c c D sk m
c
1k G ik tk x F ik y y F −1 tk x
3 / 18
1k G pk sk m E pk r c c D sk m
c
1k G ik tk x F ik y y F −1 tk x
?
3 / 18
◮ No randomness used in the evaluation algorithm of TDF.
4 / 18
◮ No randomness used in the evaluation algorithm of TDF.
◮ TDF implies the existence of PKE. [Yao’82, GM’82].
4 / 18
◮ No randomness used in the evaluation algorithm of TDF.
◮ TDF implies the existence of PKE. [Yao’82, GM’82]. ◮ TDF impossible from PKE w.r.t. black-box techniques
4 / 18
5 / 18
5 / 18
5 / 18
◮ Application: black-box constructions of CCA-secure PKE
5 / 18
◮ Application: black-box constructions of CCA-secure PKE
◮ Consistency check: require some kind of proof (e.g., NIZK).
5 / 18
◮ Factoring ◮ DDH and LWE [PW08]
6 / 18
◮ Factoring ◮ DDH and LWE [PW08]
6 / 18
◮ Factoring ◮ DDH and LWE [PW08]
6 / 18
7 / 18
◮ Hard to compute gxy from (g, gx, gy), where x, y ← Zp.
7 / 18
◮ Hard to compute gxy from (g, gx, gy), where x, y ← Zp.
◮ (g, gx, gy, gxy) c
7 / 18
8 / 18
◮ CDH is a weaker assumption.
◮ There are groups in which CDH is conjectured to be hard but
DDH is easy (e.g., Z∗
p, groups with pairings).
8 / 18
9 / 18
9 / 18
10 / 18
1k G pk = gα sk = α m E pk r c = (gr, pkr · m) c D sk = α m r?
10 / 18
1k G pk = gα sk = α m E pk r c = (gr, pkr · m) c D sk = α m r?
◮ Recovering r: solving the Discrete Log!
10 / 18
11 / 18
◮ ik = gM where M ∈ Zn×n p
11 / 18
◮ ik = gM where M ∈ Zn×n p
x ∈ {0, 1}n F gM y = gMxT y F −1 tk = M−1 (gx1, . . . , gxn)
11 / 18
◮ ik = gM where M ∈ Zn×n p
x ∈ {0, 1}n F gM y = gMxT y F −1 tk = M−1 (gx1, . . . , gxn)
◮ Can solve discrete-log as x1 . . . xn ∈ {0, 1}!
11 / 18
◮ ik = gM where M ∈ Zn×n p
x ∈ {0, 1}n F gM y = gMxT y F −1 tk = M−1 (gx1, . . . , gxn)
◮ Can solve discrete-log as x1 . . . xn ∈ {0, 1}!
◮ Matrix pseudorandomness [NR97]: DDH implies gM c
11 / 18
◮ ik = gM where M ∈ Zn×n p
x ∈ {0, 1}n F gM y = gMxT y F −1 tk = M−1 (gx1, . . . , gxn)
◮ Can solve discrete-log as x1 . . . xn ∈ {0, 1}!
◮ Matrix pseudorandomness [NR97]: DDH implies gM c
◮ CDH is not known to imply rank indistinguishability.
11 / 18
1 Background
2 Our TDF Construction
3 Summary and Future Work
12 / 18
◮ Derandomizing a class of PKE
13 / 18
◮ Derandomizing a class of PKE
◮ TDFs from recyclable targeted key-encapsulation schemes
(Recyclable Targeted KEMs) [DG’17, BBS’03]
13 / 18
◮ Derandomizing a class of PKE
◮ TDFs from recyclable targeted key-encapsulation schemes
(Recyclable Targeted KEMs) [DG’17, BBS’03]
◮ Define Recyclable Targeted KEM ◮ CDH ⇒ Recyclable Targeted KEM (Not discussed. See
◮ Recyclable Targeted KEM ⇒ TDF
13 / 18
1k G pk sk
✚ ✚ ❩ ❩
m E pk r c e c D sk
✚ ✚ ❩ ❩
m e
14 / 18
15 / 18
◮ E(pk, (i, b); r) = (ct, e) ◮ D(sk, ct) = e if (pk, sk) ∈ K(1λ) and ski = b.
15 / 18
◮ E(pk, (i, b); r) = (ct, e) ◮ D(sk, ct) = e if (pk, sk) ∈ K(1λ) and ski = b. ◮ Security: (pk, sk, ct, e) c
$
$
15 / 18
◮ E(pk, (i, b); r) = (ct, e) ◮ D(sk, ct) = e if (pk, sk) ∈ K(1λ) and ski = b. ◮ Security: (pk, sk, ct, e) c
$
$
15 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0, then return (pk, D(sk, ct1)) 16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0, then return (pk, D(sk, ct1)) = (pk, E2(pk; r1)). ◮ if sk1 = 1, then return (pk, D(sk, ct′
1)) = (pk, E2(pk; r ′ 1)).
16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0, then return (pk, D(sk, ct1)) = (pk, E2(pk; r1)). ◮ if sk1 = 1, then return (pk, D(sk, ct′
1)) = (pk, E2(pk; r ′ 1)).
◮ F−1: Check for a match: E2(pk; r1)
1)
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0, then return (pk, D(sk, ct1)) = (pk, E2(pk; r1)). ◮ if sk1 = 1, then return (pk, D(sk, ct′
1)) = (pk, E2(pk; r ′ 1)).
◮ F−1: Check for a match: E2(pk; r1)
1)
16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0, then return (pk, D(sk, ct1)) = (pk, E2(pk; r1)). ◮ if sk1 = 1, then return (pk, D(sk, ct′
1)) = (pk, E2(pk; r ′ 1)).
◮ F−1: Check for a match: E2(pk; r1)
1)
◮ Not clear how to prove security!
16 / 18
E1 (i ∈ [n], b ∈ {0, 1}) r ct pk E2 r e sk D ct e if pk = G(sk) and ski = b
◮ tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0, then return (pk, D(sk, ct1)) = (pk, E2(pk; r1)). ◮ if sk1 = 1, then return (pk, D(sk, ct′
1)) = (pk, E2(pk; r ′ 1)).
◮ F−1: Check for a match: E2(pk; r1)
1)
◮ Not clear how to prove security!
◮ Fix: Put a random bit in the place you cannot apply D. 16 / 18
◮ Gen(1λ): tk =
r′
1
ct′
1
E1((i=1,b=1);r′
1)
◮ if sk1 = 0 then M1 :=
D(sk, ct1) b1
D(sk, ct′
1)
◮ F−1(tk, Y):
1 =
1)
◮ A Construction of TDFs from CDH.
◮ Extended forms of TDFs from CDH (e.g., lossy trapdoor
◮ Trapdoor Permutations from CDH/DDH?
18 / 18