boolean searchable symmetric encryption with …...•from matryoshka filters (new bloom filter data...

104
Boolean Searchable Symmetric Encryption with Worst-Case Sub-Linear Complexity Seny Kamara Tarik Moataz

Upload: others

Post on 26-Aug-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Boolean Searchable Symmetric Encryption with Worst-Case Sub-Linear Complexity

Seny Kamara Tarik Moataz

Page 2: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

2

Bob

Page 3: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

2

Bob

Page 4: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

2

Bob

I can’t search!

Page 5: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Many Approaches

• Stream ciphers [SWP00]

• Bucketing [HILM02]

• Structured and searchable encryption (STE/SSE) [CGKO06,CK10]

• Oblivious RAM (ORAM) [GO96]

• Functional encryption (e.g., PEKS) [BCOP06]

• Multi-party computation (MPC)

• Property-preserving encryption (PPE) [AKSX04,BBO06,BCLO09]

• Fully-homomorphic encryption [G09]

3

Page 6: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Efficiency

Security Expressiveness

4

Page 7: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Expressiveness

Efficiency

OXT

Blind Seer BOXT

Searchable Symmetric Encryption

5

RR Naïve RH Naive

Boolean

SNF

Page 8: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Expressiveness

Efficiency

OXT

Blind Seer BOXT

Searchable Symmetric Encryption

5

RR Naïve RH Naive This Work

Boolean

SNF

Page 9: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Related Work

• OXT [CJJKRS’13]

• Sub-linear for conjunctive queries

• Linear for disjunctive

• Linear for (arbitrary) Boolean queries

• Non-interactive

• Blind Seer [PKVKMCGKB’14]

• Sub-linear for arbitrary Boolean queries

• Interactive

• Logarithmic multiplicative overhead over the result set

6

Page 10: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Related Work

• OXT [CJJKRS’13]

• Sub-linear for conjunctive queries

• Linear for disjunctive

• Linear for (arbitrary) Boolean queries

• Non-interactive

• Blind Seer [PKVKMCGKB’14]

• Sub-linear for arbitrary Boolean queries

• Interactive

• Logarithmic multiplicative overhead over the result set

6

Page 11: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Related Work

• OXT [CJJKRS’13]

• Sub-linear for conjunctive queries

• Linear for disjunctive

• Linear for (arbitrary) Boolean queries

• Non-interactive

• Blind Seer [PKVKMCGKB’14]

• Sub-linear for arbitrary Boolean queries

• Interactive

• Logarithmic multiplicative overhead over the result set

6

Page 12: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Black-Box Constructions

• IEX: “purely” disjunctive SSE • from any single-keyword SSE

7

Page 13: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Black-Box Constructions

• IEX: “purely” disjunctive SSE • from any single-keyword SSE

• BIEX: Boolean SSE • from IEX

7

Page 14: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Black-Box Constructions

• IEX: “purely” disjunctive SSE • from any single-keyword SSE

• BIEX: Boolean SSE • from IEX

• DIEX: dynamic disjunctive SSE • from any dynamic single-keyword SSE

• Forward Secure

7

Page 15: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Concrete Constructions

• IEX-2Lev • from 2Lev [CJJJKRS14]

8

Page 16: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Concrete Constructions

• IEX-2Lev • from 2Lev [CJJJKRS14]

• BIEX-2Lev • from IEX-2Lev

8

Page 17: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Concrete Constructions

• IEX-2Lev • from 2Lev [CJJJKRS14]

• BIEX-2Lev • from IEX-2Lev

• ZMF: new single-keyword SSE • from Matryoshka filters (new Bloom filter data structure)

• Linear search complexity but very compact

8

Page 18: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Concrete Constructions

• IEX-2Lev • from 2Lev [CJJJKRS14]

• BIEX-2Lev • from IEX-2Lev

• ZMF: new single-keyword SSE • from Matryoshka filters (new Bloom filter data structure)

• Linear search complexity but very compact

• IEX-ZMF • from ZMF

8

Page 19: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Data Structures

9

Page 20: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Data Structures

• Dictionaries map labels to values

• Get: DX[w3] returns id2

9

w1

w2

w3

id1

id3

id2

Dictionary DX

Page 21: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Data Structures

• Dictionaries map labels to values

• Get: DX[w3] returns id2

• Multi-maps map labels to tuples

• Get: MM[w3] returns (id2 , id4)

9

w1

w2

w3

id1

id3

id2

Dictionary DX

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

Page 22: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

10

w1

l2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

Setup 1k, , w2

Page 23: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

10

w1

l2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM w2

w1

id3

id3

Encrypted Multi-map EMM

w3

w1

id2

id4

w3 id4

w1 id1

Setup 1k, , w2

Page 24: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

11

Token , w1

Page 25: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

11

Token , w1 w1

Page 26: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

12

Get , w1

w2

w1

id3

id3

Encrypted Multi-map EMM

w3

w1

id2

id4

w3 id4

w1 id1

Page 27: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

12

Get , w1 id3 id4 id1

Response-hiding

w2

w1

id3

id3

Encrypted Multi-map EMM

w3

w1

id2

id4

w3 id4

w1 id1

Page 28: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

13

Encrypted Multi-Map

Page 29: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

13

Encrypted Multi-Map

Encrypted Inverted

Index

Page 30: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Background: Encrypted Data Structures [CK’10]

13

Single Keyword SSE

[SWP’00], [Goh’03], [CGKO’06], [CK10], [KPR’12], [KP’13], [CJJKRS’13], [CJJJKRS’14],

[Bost’16] …

Encrypted Multi-Map

Encrypted Inverted

Index

Page 31: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Adaptive Security

14

Page 32: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Adaptive Security

14

Real

Multi-map MM

Page 33: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Adaptive Security

14

Real

Multi-map MM

Encrypted Multi-map EMM

Page 34: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Adaptive Security

14

Real

Multi-map MM

Encrypted Multi-map EMM

wi

wi

Page 35: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Adaptive Security

14

Real

Multiple Time

Multi-map MM

Encrypted Multi-map EMM

wi

wi

Page 36: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Multi-map MM

Adaptive Security

14

Real Ideal

Multiple Time

Setup Leakage ℒ𝑆

Multi-map MM

Encrypted Multi-map EMM

wi

wi

Page 37: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Multi-map MM

Adaptive Security

14

Real Ideal

Multiple Time

Setup Leakage ℒ𝑆

Multi-map MM

Encrypted Multi-map EMM

wi

Encrypted Multi-map EMM Encrypted Multi-map EMM

wi

Page 38: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Multi-map MM

Adaptive Security

14

Real Ideal

Multiple Time

Setup Leakage ℒ𝑆

Query Leakage ℒ𝑄

Multi-map MM

Encrypted Multi-map EMM

wi wi

Encrypted Multi-map EMM Encrypted Multi-map EMM

wi

Page 39: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Multi-map MM

Adaptive Security

14

Real Ideal

Multiple Time

Setup Leakage ℒ𝑆

Query Leakage ℒ𝑄

Multi-map MM

Encrypted Multi-map EMM

wi wi

Encrypted Multi-map EMM Encrypted Multi-map EMM

wi wi wi

Page 40: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Multi-map MM

Adaptive Security

14

Real Ideal

Multiple Time

Setup Leakage ℒ𝑆

Query Leakage ℒ𝑄

Real ≈ Ideal

Multi-map MM

Encrypted Multi-map EMM

wi wi

Encrypted Multi-map EMM Encrypted Multi-map EMM

wi wi wi

Page 41: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview

• Multi-maps (indexes) can be viewed as collection of sets

15

Page 42: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview

• Multi-maps (indexes) can be viewed as collection of sets

• Disjunctive keyword queries can be viewed as set unions on those sets

15

Page 43: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview

• Multi-maps (indexes) can be viewed as collection of sets

• Disjunctive keyword queries can be viewed as set unions on those sets

• Naïve set union includes items with multiplicity (redundancy) • Implies sub-optimal communication complexity or heavy leakage

15

Page 44: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview

• Multi-maps (indexes) can be viewed as collection of sets

• Disjunctive keyword queries can be viewed as set unions on those sets

• Naïve set union includes items with multiplicity (redundancy) • Implies sub-optimal communication complexity or heavy leakage

• Inclusion/exclusion-based unions remove redundancy • Implies optimal communication complexity and less leakage

15

Page 45: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview

• Multi-maps (indexes) can be viewed as collection of sets

• Disjunctive keyword queries can be viewed as set unions on those sets

• Naïve set union includes items with multiplicity (redundancy) • Implies sub-optimal communication complexity or heavy leakage

• Inclusion/exclusion-based unions remove redundancy • Implies optimal communication complexity and less leakage

• New (plaintext) set structure with I/E-based union operations

15

Page 46: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview

• Multi-maps (indexes) can be viewed as collection of sets

• Disjunctive keyword queries can be viewed as set unions on those sets

• Naïve set union includes items with multiplicity (redundancy) • Implies sub-optimal communication complexity or heavy leakage

• Inclusion/exclusion-based unions remove redundancy • Implies optimal communication complexity and less leakage

• New (plaintext) set structure with I/E-based union operations

• Encrypted structure that supports I/E-based unions

15

Page 47: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Multi-Maps as Sets

16

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

Page 48: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Multi-Maps as Sets

16

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

id1

id3

Id4

Page 49: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Multi-Maps as Sets

16

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

id1

id3

Id4

id3

Page 50: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Multi-Maps as Sets

16

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

id1

id3

Id2

Id4

id3

Id4

Page 51: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Disjunctive Search as Set Union

17

Q = w1 w2 ∨ w3 ∨

Page 52: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Disjunctive Search as Set Union

17

id1 id3

Id2

Id4

Q = w1 w2 ∨ w3 ∨

Page 53: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Inclusion/Exclusion-based Union

18

id1 id3

Id2

Id4

Page 54: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Inclusion/Exclusion-based Union

18

id1 id3

Id2

Id4

Id2

Id4

id1 id3

Id4

id3

Page 55: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Inclusion/Exclusion-based Union

18

id1 id3

Id2

Id4

Id2

Id4

id3

Page 56: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Inclusion/Exclusion-based Union

18

id1 id3

Id2

Id4

Id2

Id4

Page 57: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Inclusion/Exclusion-based Union

18

id1 id3

Id2

Id4

Id2

Id4

𝑤𝑖

𝑛

𝑖=1

= (−1)𝑖+1 # 𝑀𝑀 𝑤𝑗1 ∩⋯∩𝑀𝑀 𝑤𝑗𝑖1≤𝑗1<⋯<𝑗𝑖≤𝑛

𝑛

𝑖=1

#Lookup

Page 58: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Set Structure with I/E-based Unions

19

id1 id3

Id2

Id4

Page 59: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Set Structure with I/E-based Unions

19

id1 id3

Id2

Id4

id1 id3

id4

id3

Id2

Id4

Pre-processing

Page 60: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Set Structure with I/E-based Unions

20

id1 id3

id4

id3

Id2

Id4

Page 61: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Set Structure with I/E-based Unions

20

id1 id3

id4

id3

Id2

Id4

w1

w2

w3

id1 id3 id4

id3

id2 id4

Global Multi-map MM

Page 62: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Set Structure with I/E-based Unions

20

id1 id3

id4

id3

Id2

Id4

w1

w2

w3

id1 id3 id4

id3

id2 id4

Global Multi-map MM

Page 63: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Overview: Set Structure with I/E-based Unions

20

id1 id3

id4

id3

Id2

Id4

w1

w2

w3

id1 id3 id4

id3

id2 id4

Global Multi-map MM

w1 ⋀ w2

w1 ⋀ w3

id3

id4

Local Multi-map MM1

w2 ⋀ w1 id3

Local Multi-map MM2

w3 ⋀ w1 id4

Local Multi-map MM3

Page 64: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Setup

21

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

SetupIEX 1k,

Page 65: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Setup

21

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

SetupIEX 1k,

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w2 ⋀ w1 E(id3; w2)

Encrypted local Multi-map EMM1

w3 ⋀ w1 E(id3; w3)

Encrypted local Multi-map EMM2

,

Page 66: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Setup

22

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

SetupIEX 1k, ,

Page 67: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Setup

22

w1

w2

w3

id1 id3 id4

id3

id2 id4

Multi-map MM

SetupIEX 1k, ,

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

1

2

3

Encrypted Dictionary EDX

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w2 ⋀ w1 E(id3; w2)

Encrypted local Multi-map EMM1

w3 ⋀ w1 E(id3; w3)

Encrypted local Multi-map EMM2

Page 68: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Token

23

TokenIEX , w1 w3 ∨

Page 69: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Token

23

TokenIEX , w1 w3 ∨ w1

Global sub-token

Page 70: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Token

23

TokenIEX , w1 w3 ∨ w1 w3

Global sub-token

Global sub-token

Page 71: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Token

23

TokenIEX , w1 w3 ∨ w1 w3 1

Global sub-token

Global sub-token

dictionary sub-token

Page 72: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Token

23

TokenIEX , w1 w3 ∨ w1 w3 1 w1 ⋀ w3

Global sub-token

Global sub-token

dictionary sub-token

Local sub-token

Page 73: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Get

24

GetIEX , w1 w3 1 w1 ⋀ w3

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

1

2

3

Encrypted Dictionary EDX

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w2 ⋀ w1 E(id3; w2)

Encrypted local Multi-map EMM1

w3 ⋀ w1 E(id3; w3)

Encrypted local Multi-map EMM2

Page 74: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Get

25

Get , w1

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

Page 75: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Get

25

Get , E(id3; w1) E(id4; w1) E(id3; w1) w1

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

Page 76: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Get

25

Get , E(id3; w1) E(id4; w1) E(id3; w1)

Get ,

w1

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

w3

Page 77: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Get

25

Get , E(id3; w1) E(id4; w1) E(id3; w1)

Get , E(id2; w3) E(id4; w3)

w1

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

w2 E(id3; w1)

Encrypted Global Multi-map EMM

w1 E(id3; l2)

w3 E(id2; w3)

w1 E(id4; w1)

w3 E(id4; w3)

w1 E(id1; w1)

w3

Page 78: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

26

Get , 1

1

2

3

Encrypted Dictionary EDX

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w2 ⋀ w1 E(id3; w2)

Encrypted local Multi-map EMM1

w3 ⋀ w1 E(id3; w3)

Encrypted local Multi-map EMM2

Page 79: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

26

Get , 1

1

2

3

Encrypted Dictionary EDX

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w2 ⋀ w1 E(id3; w2)

Encrypted local Multi-map EMM1

w3 ⋀ w1 E(id3; w3)

Encrypted local Multi-map EMM2

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

Page 80: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

27

Get , w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3 w1 ⋀ w3

Page 81: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

27

Get , E(id4; w1) w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3 w1 ⋀ w3

Page 82: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

27

Get , E(id4; w1) w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3 w1 ⋀ w3

E(id3; w1) E(id4; w1) E(id3; w1)

E(id2; w3) E(id4; w3)

Page 83: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

27

Get , E(id4; w1) w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3 w1 ⋀ w3

E(id3; w1) E(id4; w1) E(id3; w1)

E(id2; w3) E(id4; w3)

Page 84: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Lookup

27

Get , E(id4; w1)

Result sent to the client

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3 w1 ⋀ w3

E(id3; w1) E(id4; w1) E(id3; w1)

E(id2; w3) E(id4; w3)

E(id3; w1) E(id3; w1)

E(id2; w3) E(id4; w3)

Page 85: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Leakage

• Black-box setup leakage • Setup leakage of global EMM

• Setup leakage of EDX

• Black-box query leakage for disjunction • Query leakage of global EMM

• Query leakage of EDX

28

Page 86: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Leakage

• Black-box setup leakage • Setup leakage of global EMM

• Setup leakage of EDX

• Black-box query leakage for disjunction • Query leakage of global EMM

• Query leakage of EDX

• Concrete setup leakage • Size of global MM

• Total size of local MM

• Concrete query leakage • Search and access pattern of global MM

• Search pattern of accessed local MMs

• Access pattern of accessed local MMs

• Tags of accessed local MMs

• Setup leakage of local MMs

• Search and access pattern of DX

28

Page 87: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Leakage

• Black-box setup leakage • Setup leakage of global EMM

• Setup leakage of EDX

• Black-box query leakage for disjunction • Query leakage of global EMM

• Query leakage of EDX

• Concrete setup leakage • Size of global MM

• Total size of local MM

• Concrete query leakage • Search and access pattern of global MM

• Search pattern of accessed local MMs

• Access pattern of accessed local MMs

• Tags of accessed local MMs

• Setup leakage of local MMs

• Search and access pattern of DX

28

Less leakage than OXT

Page 88: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Asymptotics

• Communication complexity is optimal

29

Page 89: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Asymptotics

• Communication complexity is optimal

• Worst-case search complexity (q keywords) • Sub-linear in where

29

Page 90: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

IEX: Asymptotics

• Communication complexity is optimal

• Worst-case search complexity (q keywords) • Sub-linear in where

• Storage

29

Page 91: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Can we make IEX more compact? • Problem is local EMMs are too large

30

Page 92: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Can we make IEX more compact? • Problem is local EMMs are too large

• Use Z-IDX [Goh03] as local EMM? • Linear search complexity is OK

• Very compact (based on Bloom filters)

• Not adaptively-secure!

30

Page 93: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Can we make IEX more compact? • Problem is local EMMs are too large

• Use Z-IDX [Goh03] as local EMM? • Linear search complexity is OK

• Very compact (based on Bloom filters)

• Not adaptively-secure!

• Z-IDX can be made adaptively-secure • But token size too large (far from optimal)

30

Page 94: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Matryoshka filters • New nested Bloom filters with variable size and fixed hash functions

31

Page 95: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Matryoshka filters • New nested Bloom filters with variable size and fixed hash functions

• Encrypted Matryoshka filters • Based on online ciphers

• Adaptively-secure

• Compact structure

• Optimal token size

• Linear search complexity

31

Page 96: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Matryoshka filters • New nested Bloom filters with variable size and fixed hash functions

• Encrypted Matryoshka filters • Based on online ciphers

• Adaptively-secure

• Compact structure

• Optimal token size

• Linear search complexity

31

Page 97: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Improving IEX Storage Overhead

• Matryoshka filters • New nested Bloom filters with variable size and fixed hash functions

• Encrypted Matryoshka filters • Based on online ciphers

• Adaptively-secure

• Compact structure

• Optimal token size

• Linear search complexity

31

Page 98: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Evaluation (up to 61M keyword/id pairs)

32

Page 99: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Evaluation (up to 61M keyword/id pairs)

32 OXT 200 ms

Page 100: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Evaluation (up to 61M keyword/id pairs)

32 OXT 200 ms

10×

Page 101: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Clusion

• Encrypted search library • Open source under GPLv3 • Java

33

Page 102: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Clusion

• Encrypted search library • Open source under GPLv3 • Java

• Currently implements • SSE: 2Lev & ZMF • Dynamic SSE: forward-secure 2Lev (new) • Disjuntive SSE: IEX-2Lev & IEX-ZMF • Boolean SSE: BIEX-2Lev & BIEX-ZMF

33

Page 103: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Clusion

• Encrypted search library • Open source under GPLv3 • Java

• Currently implements • SSE: 2Lev & ZMF • Dynamic SSE: forward-secure 2Lev (new) • Disjuntive SSE: IEX-2Lev & IEX-ZMF • Boolean SSE: BIEX-2Lev & BIEX-ZMF

• In progress • Dynamic SSE: forse-1, forse-2 • Graph encryption: LGX

33

Page 104: Boolean Searchable Symmetric Encryption with …...•from Matryoshka filters (new Bloom filter data structure) •Linear search complexity but very compact 8 Concrete Constructions

Thank you!

34

https://github.com/encryptedsystems/Clusion