Multilinear maps from lattices
Constructions, attacks, and applications
Yilei Chen (Visa Research)
1
Multilinear maps from lattices Constructions, attacks, and - - PowerPoint PPT Presentation
Multilinear maps from lattices Constructions, attacks, and applications Yilei Chen (Visa Research) Crypto Innovation School Shanghai 2019 1 What are multilinear maps? 2 3 Cool. So what are the multilinear maps in cryptography? 4
1
2
3
4
5
> Discrete-log problem [ Diffie, Hellman 76 ]
6
> Discrete-log problem [ Diffie, Hellman 76 ]
> Bilinear maps from Weil pairing over elliptic curve groups [ Miller 86 ] How to compute Weil pairing [ Sakai, Ohgishi, Kasahara 00 ] Identity-based key-exchange [ Joux 00 ] Three-party non-interactive key exchange [ Boneh, Franklin 02 ] Identity-base key exchange
7
> Multilinear maps: motivated in [ Boneh, Silverberg 03 ] with the potential applications
> Discrete-log problem [ Diffie, Hellman 76 ]
> Bilinear maps from Weil pairing over elliptic curve groups [ Miller 86 ] How to compute Weil pairing [ Sakai, Ohgishi, Kasahara 00 ] Identity-based key-exchange [ Joux 00 ] Three-party non-interactive key exchange [ Boneh, Franklin 02 ] Identity-base key exchange
8
9
“If an n-multilinear map is computable, it is reasonable to expect it to come from geometry, as is the case for Weil and Tate pairings when n = 2.” – Boneh, Silverberg, 2003
10
“If an n-multilinear map is computable, it is reasonable to expect it to come from geometry, as is the case for Weil and Tate pairings when n = 2.” – Boneh, Silverberg, 2003 *New: Trilinear maps from abelian varieties [ Huang 2018 ], requires further investigation.
11
Garg, Gentry, Halevi [ GGH 13 ] propose a candidate by modifying the NTRU-based FHE
12
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ]
Garg, Gentry, Halevi [ GGH 13 ] propose a candidate by modifying the NTRU-based FHE
13
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ]
Garg, Gentry, Halevi [ GGH 13 ] propose a candidate by modifying the NTRU-based FHE
Coron, Lepoint, Tibouchi [ CLT 13 ]: modifying the FHE based on approximate gcd Gentry, Gorbunov, Halevi [ GGH 15 ]: from non-standard use of the GSW FHE
14
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ]
Lockable obfuscation
(Compute-then-Compare obf.)
Private constrained PRFs Multiparty key agreement
15
Multilinear maps: applications and security
Witness encryption Deniable encryption Broadcast encryption
16
Multilinear maps: applications and security [Garg, Gentry, Halevi, Raykova, Sahai, Waters 13]
17
Defined by [ Barak, Goldreich, Impagliazzo, Rudich, Sahai, Vadhan, Yang 01 ]
a d v
18
Defined by [ Barak, Goldreich, Impagliazzo, Rudich, Sahai, Vadhan, Yang 01 ]
Candidate constructions: [Garg, Gentry, Halevi, Raykova, Sahai, Waters 13], [Barak, Garg, Kalai, Paneth, Sahai 14], [Brakerski, Rothblum 14], [ Zimmerman 15], [Applebaum, Brakerski 15], [Ananth, Jain 15], [Bitansky, Vaikuntanathan ‘15], [Gentry, Gorbunov, Halevi 15], [Lin 16], … Cryptanalyses: [Cheon, Han, Lee, Ryu, Stehle 15], [Coron et al. 15], [Hu, Jia 16], [Miles, Sahai, Zhandry 16], [Chen, Gentry, Halevi 17], [Coron, Lee, Lepoint, Tibouchi 17], [Chen, Vaikuntanathan, Wee 18], ...
Lockable obfuscation
(Compute-then-Compare obf.)
Private constrained PRFs Multiparty key agreement
19
Multilinear maps: applications and security
Witness encryption Deniable encryption Broadcast encryption
Lockable obfuscation
(Compute-then-Compare obf.)
Private constrained PRFs Multiparty key agreement
20
Multilinear maps: applications and security
Witness encryption
Reduction from LWE; Candidates exists; Broken
21
22
mod q
E x Y =
Uniform Small Unspecified
Recall Learning with Errors [ Regev 05 ]
%×' (m > n log q)
Secret Public matrix noise/error
23
%×' (m > n log q)
mod q
x
=
Uniform Small Unspecified
Recall Learning with Errors [ Regev 05 ]
Secret Public matrix noise/error
24
mod q
x
=
Uniform Small Unspecified
Secret Public matrix noise/error
Entries of S from the error distribution As hard as normal LWE [ Applebaum, Cash, Peikert, Sahai 09 ] Recall Learning with Errors [ Regev 05 ]
25
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ] > (Ring)LWE analogy:
26
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ] > (Ring)LWE analogy:
27
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ] > (Ring)LWE analogy:
28
> Multilinear maps: motivated in [ Boneh, Silverberg 2003 ] > (Ring)LWE analogy:
(also appear as “cascaded LWE” in [ Koppula-Waters 16], [ Alamati-Peikert 16])
29
[ Ajtai 99 ], [ Alwen, Peikert 09 ], [ Micciancio, Peikert 12 ]
The trapdoor for can be used to solve SIS and LWE.
30
[ Ajtai 99 ], [ Alwen, Peikert 09 ], [ Micciancio, Peikert 12 ]
Y
Y
Given an image , find a short vector D s.t.
The trapdoor for can be used to solve SIS and LWE.
31
32
Gadget =
1, b, … bk-1 … … 1, b, … bk-1
1, b, … bk-1
The kernel-lattice of G has an easily computable short basis. Solving SIS for the public matrix G is easy.
35
36
37
Simulated:
38
> GGH15: (also appear as “cascaded LWE” in [ Koppula-Waters 16], [ Alamati-Peikert 16])
> (Ring)LWE analogy:
39
> GGH15: (also appear as “cascaded LWE” in [ Koppula-Waters 16], [ Alamati-Peikert 16])
> (Ring)LWE analogy:
40
> GGH15: (also appear as “cascaded LWE” in [ Koppula-Waters 16], [ Alamati-Peikert 16])
> (Ring)LWE analogy:
41
42
> GGH15: (also appear as “cascaded LWE” in [ Koppula-Waters 16], [ Alamati-Peikert 16])
> (Ring)LWE analogy:
43
> GGH15: (also appear as “cascaded LWE” in [ Koppula-Waters 16], [ Alamati-Peikert 16])
small functionality > (Ring)LWE analogy:
44
Eval(0110) = A0D1,0D2,1D3,1D4,0
45
S1,1 S1,0
+
E1,1
+
E1,0
Eval(0110) = A0D1,0D2,1D3,1D4,0 = (s1,0A1+E1,0)D2,1D3,1D4,0
46
+ “small” Eval(0110) = A0D1,0D2,1D3,1D4,0 = (s1,0A1+E1,0)D2,1D3,1D4,0 = s1,0A1D2,1D3,1D4,0 + “small”
S1,1 S1,0
47
S2,1 S2,0 S1,1 S1,0
+ “small” +
E2,1
+
E2,0
Eval(0110) = A0D1,0D2,1D3,1D4,0 = (s1,0A1+E1,0)D2,1D3,1D4,0 = s1,0A1D2,1D3,1D4,0 + “small” = s1,0(s2,1A2+E2,1)D3,1D4,0 + “small”
48
S2,1 S2,0 S1,1 S1,0
“still small”
Eval(0110) = A0D1,0D2,1D3,1D4,0 = (s1,0A1+E1,0)D2,1D3,1D4,0 = s1,0A1D2,1D3,1D4,0 + “small” = s1,0(s2,1A2+E2,1)D3,1D4,0 + “small” = s1,0s2,1A2D3,1D4,0 + “still small” +
Eval(0110) = A0D1,0D2,1D3,1D4,0 = (s1,0A1+E1,0)D2,1D3,1D4,0 = s1,0A1D2,1D3,1D4,0 + “small” = s1,0(s2,1A2+E2,1)D3,1D4,0 + “small” = s1,0s2,1A2D3,1D4,0 + “still small” = s1,0s2,1s3,1A3D4,0 + “still smallish” = s1,0s2,1s3,1s4,0A4 + “small”
49
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
+
“still small”
50
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
+ “small”
E v a l u a t e
51
52
53
A2
A1 A2
A1 A1
A1
A0 A0
54
A2
A1 A2
A1 A1
A1
Claim: this construction hides all the structures in the S matrices.
A0 A0
55
56
A2
A1 A2
A1 A1
A1
Claim: this construction hides all the structures in the S matrices.
A0 A0
57
A1
A1 A1
A1
Permutation LWE
A0 A0
58
A1
A1 A1
A1
Turn off the trapdoor using GPV
A0 A0
59
A0
Permutation LWE
A0 A1 A1
60
A0
A0
Turn off the trapdoor using GPV
A1 A1
61
62
63
64
65
Lockable obfuscation
(Compute-then-Compare obf.)
Private constrained PRFs [ Canetti, Chen 17 ] Multiparty key agreement
66
Witness encryption
[ Chen, Vaikuntanathan, Wee 18 ]
Deniable encryption Broadcast encryption
Reduction from LWE; Candidates exists; Broken
67
68
69
a d v
PRF A truly random function
With oracle access to either left or right
70
Privately modified key a d v either the original key
71
Reminiscent of obfuscation ...
H i d e t h e p r
r a m i n t h e c
s t r a i n t
73
Obfuscation
74
1-key PCPRF => Reusable Garbled Circuits
D e c r y p t a n d e v a l
Construction: from normal encryption Sym and PCPRF F Enc(m;r): ct = EncSym.K(m;r); tag = F[K](ct) FSK[Sym.K, F.K, C]: constrained key for the “decryption and eval” functionality C(DecSym.K( . )) Eval: compute F[C(DecSym.K( . ))](ct), and compare with tag
77
78
79
80
mod q
[ Banerjee, Peikert, Rosen ’12 ] Subset-product & rounding
Key: Eval:
are LWE secrets from low-norm distributions
81
q
82
Main observation: After rounding, can inject noises without changing functionality whp.
Uniform Small Unspecified A is public, Si,xi are secret mod q
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
[ Banerjee, Peikert, Rosen 12 ] Proof of pseudorandomness
83
Uniform Small Unspecified A is public, Si,xi are secret mod q
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
[ Banerjee, Peikert, Rosen 12 ] Proof of pseudorandomness
84
Uniform Small Unspecified A is public, Si,xi are secret mod q
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
[ Banerjee, Peikert, Rosen 12 ] Proof of pseudorandomness
85
Uniform Small Unspecified A is public, Si,xi are secret mod q
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
[ Banerjee, Peikert, Rosen 12 ] Proof of pseudorandomness
86
Uniform Small Unspecified A is public, Si,xi are secret mod q
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
[ Banerjee, Peikert, Rosen 12 ] Proof of pseudorandomness
87
Uniform Small Unspecified A is public, Si,xi are secret mod q
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
[ Banerjee, Peikert, Rosen 12 ] Proof of pseudorandomness
88
mod q
[ Banerjee, Peikert, Rosen ’12 ] Subset-product & rounding
Key: Eval:
89
mod q
[ Banerjee, Peikert, Rosen ’12 ] Subset-product & rounding
Key: Eval:
90
mod q
Key: Eval: What we need in addition to build a Private Constrained PRF: + Embed structures in the secret terms to perform functionality (Barrington’s theorem) + A proper public mode of the function (GGH15 encoding)
91
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
+ “small”
E v a l u a t e
92
93
Barrington 1986: log-depth boolean circuits can be recognized by subset products of permutation matrices of width 5. Example: how to represent an AND gate 1 Input wire 1 Input wire 1 Input wire 2 Input wire 2
94
Barrington 1986: log-depth boolean circuits can be recognized by subset products of permutation matrices of width 5. Example: how to represent an AND gate 0 and 0 1 Input wire 1 Input wire 1 Input wire 2 Input wire 2
95
Barrington 1986: log-depth boolean circuits can be recognized by subset products of permutation matrices of width 5. Example: how to represent an AND gate 0 and 1 1 Input wire 1 Input wire 1 Input wire 2 Input wire 2
96
Barrington 1986: log-depth boolean circuits can be recognized by subset products of permutation matrices of width 5. Example: how to represent an AND gate 1 and 0 1 Input wire 1 Input wire 1 Input wire 2 Input wire 2
97
Barrington 1986: log-depth boolean circuits can be recognized by subset products of permutation matrices of width 5. Example: how to represent an AND gate 1 and 1 PQP-1Q-1 = C ≠ I 1 Input wire 1 Input wire 1 Input wire 2 Input wire 2
98
Representation of the constraint predicate: branching program
99
We set the secrets like: Representation of secrets (to be encoded by GGH15): Bi,b⊗si,b e.g. I ⊗ s =
S S S S S S S S S S S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0 S S S S S
100
101
PCPRFs for Branching programs from GGH15 Master public key: A0 … AL (L = #steps in BP) Master secret key: trapdoors of A1 … AL, s1,0 , s1,1, ..., sL,0, sL,1 Constrained key gen: let Si,b:=Bi,b⊗si,b, sample GGH15 encodings for Si,b Eval: F(x) = { A0 ∏Di,x_z(i) }2 , then pick the first row
Constrained key:
A’0
102
PCPRFs for Branching programs from GGH15 Master public key: A0 … AL (L = #steps in BP) Master secret key: trapdoors of A1 … AL, s1,0 , s1,1, ..., sL,0, sL,1 Constrained key gen: let Si,b:=Bi,b⊗si,b, sample GGH15 encodings for Si,b Eval: F(x) = { A0 ∏Di,x_z(i) }2 , then pick the first row
103
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
Real
{ I⊗(s1,1s2,1s3,1s4,1 )A4 }2 Example: C(x)=0 iff x1=x2=1 query x=11
A0
PCPRFs for Branching programs from GGH15
104
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
Simulator Real
A0
{ I⊗(s1,1s2,1s3,1s4,1 )A4 }2 { Uniform }2
A0
Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15
105
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
A0 A1 A2 A3 A4
Real
Eval(11) = { I⊗(s1,1s2,1s3,1s4,1 )A4 }2 Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15
106
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
re-express Eval(11) = { I⊗(s1,1s2,1s3,1s4,1 )A4 }2 ≈s { (Q⊗(s1,1s2,1s3,1))((Q-1⊗s4,1)A4+E4,1 ) }2
A3 A4
A0 A1 A2
Y4,1= (Q-1⊗s4,1)A4+E4,1 Y4,0= (I⊗s4,0)A4+E4,0 Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15
107
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
Perm-LWE Eval(11) = { I⊗(s1,1s2,1s3,1s4,1 )A4 }2 ≈s { (Q⊗(s1,1s2,1s3,1))U4,1 }2
U4,1 U4,0 Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15 A3 A4 A0 A1 A2
108
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
Eval(11) = { I⊗(s1,1s2,1s3,1s4,1 )A4 }2 ≈s { (Q⊗(s1,1s2,1s3,1))((Q-1⊗s4,1)A4+E4,1 ) }2 ≈c { (Q⊗(s1,1s2,1s3,1))A3D4,1 }2
GPV Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15 A3 A4 A0 A1 A2
109
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
re-express Eval(11) = { I⊗(s1,1s2,1s3,1s4,1 )A4 }2 ≈s { (Q⊗(s1,1s2,1s3,1))((Q-1⊗s4,1)A4+E4,1 ) }2 ≈c { (Q⊗(s1,1s2,1s3,1))A3D4,1 }2 ≈s { (QP⊗(s1,1s2,1))((P-1⊗s3,1)A3+E3,1 )D4,1 }2
A3 A4
Y3,1= (P-1⊗s3,1)A3+E3,1 Y3,0= (I⊗s3,0)A3+E3,0 Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15 A0 A1 A2
110
Uniform Small Unspecified
si,xi are secret, Ai , Di,xi are public
Eval(11) = { I⊗(s1,1s2,1s3,1s4,1 )A4 }2 ≈s { (Q⊗(s1,1s2,1s3,1))((Q-1⊗s4,1)A4+E4,1 ) }2 ≈c { (Q⊗(s1,1s2,1s3,1))A3D4,1 }2 ≈s { (QP⊗(s1,1s2,1))((P-1⊗s3,1)A3+E3,1 )D4,1 }2 ≈c { (QP⊗(s1,1s2,1))A2D3,1D4,1 }2 ≈c … ≈c { C-1A0∏Dz(x),x_z(x)}2
A0
A1 A2 A3 A4
Example: C(x)=0 iff x1=x2=1 query x=11 PCPRFs for Branching programs from GGH15
111
A’0
112
[BPR12] -- the first lattice-based PRF [BLMR13] -- key homomorphic *[BP14] -- better key homomorphic, embed a tree *[BFPPS15] -- [BP14] is puncturable *[BV15] -- embed a circuit, constrained for P *[BKM17] -- puncture privately, built from [BV15] [CC17] -- constrained privately for NC1, influenced by GGH15 mmaps *[BTVW17] -- constrained privately for all P, built from [BV15] *[PS18] -- constrained and program privately for all P, built from [BV15] [CVW18] -- constrained privately for BP, influenced by GGH15 mmaps * uses gadget matrix G, adapted from the lattices-based FHE, ABE, PE
Lockable obfuscation
(Compute-then-Compare obf.)
Private constrained PRFs
113
Multilinear maps: applications with reductions from LWE
Traitor tracing *Hash functions for Fiat-Shamir (exercise)
114
S4,1 S4,0 S3,1 S3,0 S2,1 S2,0 S1,1 S1,0
+ “small”
E v a l u a t e
115
116
WitnessEnc( x, m ) -> CT, x = instance, m = message Decryption( CT, w ), w = witness Functionality: if x = SAT -----> can use the witness to decrypt the msg. Security: if x = UNSAT -------> msg is hidden. WitnessEnc( x = “GapSVP is in BQP”, msg = 100 Bitcoins)
> Current status of witness encryption: there are several candidates (more-or-less based on multilinear maps); none of them are based on established cryptographic assumptions.
> [Garg et al. 13] candidate witness encryption based on GGH13. > Broken by [Hu, Jia 16] > [Gentry, Lewko, Waters 14 ] from multilinear subgroup decision assumption (which is open)
Do we have secure Witness encryption?
117
118
[ Gentry, Lewko, Waters 14 ] witness encryption from “mmaps subgroup decision assumption”
119
S S
Example: encoding a point function C(x) = 0 iff x = 100 [ Gentry, Lewko, Waters 14 ] gives a simple encoding of CNF.
S S
S S S S S S S S S S S
In general: Any CNF => diagonal matrix read-once branching programs
120
S’
…
S’
CNF slots msg
A strawman implementation of GLW14 in GGH15 [ Gentry, Lewko, Waters 14 ] gives a simple encoding of CNF.
121
122
Anything
S11
Anything
Sh1
123
Anything
S11
Anything
Sh1
124
We don’t know how to build a witness encryption or iO from this type of BP :(
Anything
S11
Anything
Sh1
125
We don’t know how to build a witness encryption or iO from this type of BP :( We can simplify the private constrained PRF, Lockable obfuscation :) E.g. Instantiate the private puncturable PRF from [Boneh, Lewi, Wu 17] described under the multilinear subgroup decision assumption:
126
s
S11
We don’t know how to build a witness encryption or iO from this type of BP :( We can simplify the private constrained PRF, Lockable obfuscation :) E.g. Instantiate the private puncturable PRF from [Boneh, Lewi, Wu 17] described under the multilinear subgroup decision assumption:
s
Sh1
The “always random” slot The “puncturable” slot
127
S S S S
S S S S S S S S S S
128
Semantic security:
“A” matrices: using trapdoors; not using trapdoors
Ah(1)
S
129
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Ah(2) Yh-1(1) Yh-1(2)
Ah-1(1) Ah-1(2)
Ah(1)
S
130
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Ah(2) Yh-1(1) Yh-1(2)
Ah-1(1) Ah-1(2)
Observation: Yh-1(1) is not random The problem: How to close the trapdoor of Ah-1 ?
131
132
Ah(1)
S
133
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Ah(2) Yh-1(1) Yh-1(2)
Ah-1(1) Ah-1(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back
S
134
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Yh-1(1) Yh-1(2)
Ah-1(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back
Ah(1) Ah(2) Ah-1(1)
S
135
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Y1(1) Y1(2)
A0(2)
A1(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back
A0(1) A1(1)
S
136
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Y1(1) Y1(2)
A0(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back Problem: Now how to deal with the upper matrices?
A1(2) A1(1) A0(1)
Y1(1) A1(1) A0(1)
S
137
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Y1(2)
A0(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back Problem: Now how to deal with the upper matrices? Solution: In the real construction, give out A0(1) + A0(2).
A1(2)
138
For any Z, for a uniformly random A, D is the preimage of Z+E.
139
For any Z, for a uniformly random A, D is the preimage of Z+E. If A & Z+ E is hidden,
You cannot see A & Z+E
140
For any Z, for a uniformly random A, D is the preimage of Z+E. If A & Z+ E is hidden, then D is indistinguishable from random Gaussian.
You cannot see A & Z+E
Y1(1) A1(1) A0(1)
S
141
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Y1(2)
A0(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back Problem: Now how to deal with the upper matrices? Solution: In the real construction, give out A0(1) + A0(2), + Lemma 2
A1(2)
Y1(1) A1(1) A0(1)
S
142
For possibly low-rank secret matrices: helpful to separate the matrices into (1) and (2)
Y1(2)
A0(2)
Use Lemma 1 + use S as public matrix: can close the lower trapdoor all the way back Problem: Now how to deal with the upper matrices? Solution: In the real construction, give out A0(1) + A0(2), + Lemma 2
A1(2)
S
143
Y1(1) Y1(2)
A0(2)
A1(2) A0(1) A1(1)
First use the lower level random matrices to come left (need new lemma 1)
First use the lower level random matrices to come left (need new lemma 1) Then use the upper level “hidden A at the left” to go right (need new lemma 2)
144
Y1(1) A1(1) A0(1)
S
Y1(2)
A0(2)
A1(2)
Lockable obfuscation
(Compute-then-Compare obf.)
Private constrained PRFs [ Canetti, Chen 17 ] Multiparty key agreement
145
Witness encryption
[ Chen, Vaikuntanathan, Wee 18 ]
Deniable encryption Broadcast encryption
Reduction from LWE; Candidates exists; Broken
146
147