Seny Kamara Tarik Moataz Bob 2 Bob 2 I cant search! Bob 2 - - PowerPoint PPT Presentation

seny kamara tarik moataz bob 2 bob 2 i can t search bob 2
SMART_READER_LITE
LIVE PREVIEW

Seny Kamara Tarik Moataz Bob 2 Bob 2 I cant search! Bob 2 - - PowerPoint PPT Presentation

Boolean Searchable Symmetric Encryption with Worst-Case Sub-Linear Complexity Seny Kamara Tarik Moataz Bob 2 Bob 2 I cant search! Bob 2 Many Approaches Stream ciphers [SWP00] Bucketing [HILM02] Structured and searchable


slide-1
SLIDE 1

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

Seny Kamara Tarik Moataz

slide-2
SLIDE 2

2

Bob

slide-3
SLIDE 3

2

Bob

slide-4
SLIDE 4

2

Bob

I can’t search!

slide-5
SLIDE 5

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

slide-6
SLIDE 6

Efficiency Security Expressiveness

4

slide-7
SLIDE 7

Expressiveness Efficiency OXT Blind Seer BOXT

Searchable Symmetric Encryption

5

RR Naïve RH Naive

Boolean SNF

slide-8
SLIDE 8

Expressiveness Efficiency OXT Blind Seer BOXT

Searchable Symmetric Encryption

5

RR Naïve RH Naive This Work

Boolean SNF

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

Black-Box Constructions

  • IE

IEX: “purely” disjunctive SSE

  • from any single-keyword SSE

7

slide-13
SLIDE 13

Black-Box Constructions

  • IE

IEX: “purely” disjunctive SSE

  • from any single-keyword SSE
  • BIE

BIEX: Boolean SSE

  • from IEX

7

slide-14
SLIDE 14

Black-Box Constructions

  • IE

IEX: “purely” disjunctive SSE

  • from any single-keyword SSE
  • BIE

BIEX: Boolean SSE

  • from IEX
  • DIE

IEX: dynamic disjunctive SSE

  • from any dynamic single-keyword SSE
  • Forward Secure

7

slide-15
SLIDE 15

Concrete Constructions

  • IE

IEX-2Lev

  • from 2Lev [CJJJKRS14]

8

slide-16
SLIDE 16

Concrete Constructions

  • IE

IEX-2Lev

  • from 2Lev [CJJJKRS14]
  • BIE

BIEX-2Lev

  • from IEX-2Lev

8

slide-17
SLIDE 17

Concrete Constructions

  • IE

IEX-2Lev

  • from 2Lev [CJJJKRS14]
  • BIE

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

slide-18
SLIDE 18

Concrete Constructions

  • IE

IEX-2Lev

  • from 2Lev [CJJJKRS14]
  • BIE

BIEX-2Lev

  • from IEX-2Lev
  • ZMF: new single-keyword SSE
  • from Matryoshka filters (new Bloom filter data structure)
  • Linear search complexity but very compact
  • IE

IEX-ZMF

  • from ZMF

8

slide-19
SLIDE 19

Background: Data Structures

9

slide-20
SLIDE 20

Background: Data Structures

  • Dictionaries map labels to values
  • Get: DX[w3] returns id

id2

9

w1 w2 w3

id1 id3 id2 Dictionary DX

slide-21
SLIDE 21

Background: Data Structures

  • Dictionaries map labels to values
  • Get: DX[w3] returns id

id2

  • Multi-maps map labels to tuples
  • Get: MM[w

[w3] returns (id (id2 , , id id4)

9

w1 w2 w3

id1 id3 id2 Dictionary DX

w1 w2 w3

id1 id3 id4 id3 id2 id4 Multi-map MM

slide-22
SLIDE 22

Background: Encrypted Data Structures [CK’10]

10

w1 l2 w3 id1 id3 id4 id3 id2 id4

Multi-map MM

Setup 1k, ,

w2

slide-23
SLIDE 23

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

slide-24
SLIDE 24

Background: Encrypted Data Structures [CK’10]

11

Token , w1

slide-25
SLIDE 25

Background: Encrypted Data Structures [CK’10]

11

Token , w1 w1

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

Background: Encrypted Data Structures [CK’10]

13

Encrypted Multi-Map

slide-29
SLIDE 29

Background: Encrypted Data Structures [CK’10]

13

Encrypted Multi-Map Encrypted Inverted Index

slide-30
SLIDE 30

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

slide-31
SLIDE 31

Adaptive Security

14

slide-32
SLIDE 32

Adaptive Security

14

Real

Multi-map MM

slide-33
SLIDE 33

Adaptive Security

14

Real

Multi-map MM Encrypted Multi-map EMM

slide-34
SLIDE 34

Adaptive Security

14

Real

Multi-map MM Encrypted Multi-map EMM

wi wi

slide-35
SLIDE 35

Adaptive Security

14

Real

Multiple Time

Multi-map MM Encrypted Multi-map EMM

wi wi

slide-36
SLIDE 36

Multi-map MM

Adaptive Security

14

Real Ideal

Multiple Time Setup Leakage ℒ𝑇

Multi-map MM Encrypted Multi-map EMM

wi wi

slide-37
SLIDE 37

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

slide-38
SLIDE 38

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

slide-39
SLIDE 39

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

slide-40
SLIDE 40

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

slide-41
SLIDE 41

Overview

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

15

slide-42
SLIDE 42

Overview

  • Multi-maps (indexes) can be viewed as collection of sets
  • Disjunctive keyword queries can be viewed as set unions on those sets

15

slide-43
SLIDE 43

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

slide-44
SLIDE 44

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

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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

slide-47
SLIDE 47

Overview: Multi-Maps as Sets

16

w1 w2 w3

id1 id3 id4 id3 id2 id4 Multi-map MM

slide-48
SLIDE 48

Overview: Multi-Maps as Sets

16

w1 w2 w3

id1 id3 id4 id3 id2 id4 Multi-map MM id1 id3 Id4

slide-49
SLIDE 49

Overview: Multi-Maps as Sets

16

w1 w2 w3

id1 id3 id4 id3 id2 id4 Multi-map MM id1 id3 Id4 id3

slide-50
SLIDE 50

Overview: Multi-Maps as Sets

16

w1 w2 w3

id1 id3 id4 id3 id2 id4 Multi-map MM id1 id3 Id2 Id4 id3 Id4

slide-51
SLIDE 51

Overview: Disjunctive Search as Set Union

17

Q = w1

w2

w3

slide-52
SLIDE 52

Overview: Disjunctive Search as Set Union

17

id1 id3 Id2

Id4

Q = w1

w2

w3

slide-53
SLIDE 53

Overview: Inclusion/Exclusion-based Union

18

id1 id3 Id2

Id4

slide-54
SLIDE 54

Overview: Inclusion/Exclusion-based Union

18

id1 id3 Id2

Id4

Id2

Id4

id1 id3

Id4

id3

slide-55
SLIDE 55

Overview: Inclusion/Exclusion-based Union

18

id1 id3 Id2

Id4

Id2

Id4

id3

slide-56
SLIDE 56

Overview: Inclusion/Exclusion-based Union

18

id1 id3 Id2

Id4

Id2

Id4

slide-57
SLIDE 57

Overview: Inclusion/Exclusion-based Union

18

id1 id3 Id2

Id4

Id2

Id4

𝑥𝑗

𝑜 𝑗=1

= (−1)𝑗+1 # 𝑁𝑁 𝑥

𝑘1 ∩ ⋯ ∩ 𝑁𝑁 𝑥 𝑘𝑗 1≤𝑘1<⋯<𝑘𝑗≤𝑜 𝑜 𝑗=1

#Lookup

slide-58
SLIDE 58

Overview: Set Structure with I/E-based Unions

19

id1 id3

Id2 Id4

slide-59
SLIDE 59

Overview: Set Structure with I/E-based Unions

19

id1 id3

Id2 Id4

id1 id3 id4 id3

Id2 Id4

Pre-processing

slide-60
SLIDE 60

Overview: Set Structure with I/E-based Unions

20

id1 id3 id4 id3

Id2 Id4

slide-61
SLIDE 61

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

slide-62
SLIDE 62

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

slide-63
SLIDE 63

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

slide-64
SLIDE 64

IEX: Setup

21

w1 w2 w3 id1 id3 id4 id3 id2 id4

Multi-map MM

SetupIEX 1k,

slide-65
SLIDE 65

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

,

slide-66
SLIDE 66

IEX: Setup

22

w1 w2 w3 id1 id3 id4 id3 id2 id4

Multi-map MM

SetupIEX 1k,

,

slide-67
SLIDE 67

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

slide-68
SLIDE 68

IEX: Token

23

TokenIEX

, w1

w3

slide-69
SLIDE 69

IEX: Token

23

TokenIEX

, w1

w3

w1

Global sub-token

slide-70
SLIDE 70

IEX: Token

23

TokenIEX

, w1

w3

w1 w3

Global sub-token Global sub-token

slide-71
SLIDE 71

IEX: Token

23

TokenIEX

, w1

w3

w1 w3 1

Global sub-token Global sub-token dictionary sub-token

slide-72
SLIDE 72

IEX: Token

23

TokenIEX

, w1

w3

w1 w3 1 w1 ⋀ w3

Global sub-token Global sub-token dictionary sub-token Local sub-token

slide-73
SLIDE 73

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

slide-74
SLIDE 74

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)

slide-75
SLIDE 75

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)

slide-76
SLIDE 76

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

slide-77
SLIDE 77

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

slide-78
SLIDE 78

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

slide-79
SLIDE 79

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

slide-80
SLIDE 80

IEX: Lookup

27

Get

,

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w1 ⋀ w3

slide-81
SLIDE 81

IEX: Lookup

27

Get

,

E(id4; w1)

w1 ⋀ w2 E(id3; w1)

Encrypted local Multi-map EMM1

E(id4; w1) w1 ⋀ w3

w1 ⋀ w3

slide-82
SLIDE 82

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)

slide-83
SLIDE 83

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)

slide-84
SLIDE 84

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)

slide-85
SLIDE 85

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

slide-86
SLIDE 86

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

slide-87
SLIDE 87

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

slide-88
SLIDE 88

IEX: Asymptotics

  • Communication complexity is optimal

29

slide-89
SLIDE 89

IEX: Asymptotics

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

29

slide-90
SLIDE 90

IEX: Asymptotics

  • Communication complexity is optimal
  • Worst-case search complexity (q keywords)
  • Sub-linear in where
  • Storage

29

slide-91
SLIDE 91

Improving IEX Storage Overhead

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

30

slide-92
SLIDE 92

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

slide-93
SLIDE 93

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

slide-94
SLIDE 94

Improving IEX Storage Overhead

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

31

slide-95
SLIDE 95

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

slide-96
SLIDE 96

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

slide-97
SLIDE 97

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

slide-98
SLIDE 98

Evaluation (up to 61M keyword/id pairs)

32

slide-99
SLIDE 99

Evaluation (up to 61M keyword/id pairs)

32

OXT 200 ms

slide-100
SLIDE 100

Evaluation (up to 61M keyword/id pairs)

32

OXT 200 ms

10×

slide-101
SLIDE 101

Clusion

  • Encrypted search library
  • Open source under GPLv3
  • Java

33

slide-102
SLIDE 102

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

slide-103
SLIDE 103

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

slide-104
SLIDE 104

Thank you!

34

https://github.com/encryptedsystems/Clusion