110
Implementation (Group 6) Monika (A0066244H) Damien Forest (A0066246A) Rattanak Chhung (A0066240N) Yann-Loup Phan Van Song (A0066238B) 1 CS5322 - Groupe 6 A Privacy-Preserving Index for Range Queries

A Privacy-Preserving Index for Range Queries

  • Upload
    eyad

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

A Privacy-Preserving Index for Range Queries. Implementation (Group 6) Monika (A0066244H) Damien Forest (A0066246A) Rattanak Chhung (A0066240N) Yann -Loup Phan Van Song (A0066238B). Introduction. What we will present in this presentation Query-Optimal- Bucketization Algorithm - PowerPoint PPT Presentation

Citation preview

Page 1: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

1

Implementation (Group 6) Monika (A0066244H)Damien Forest (A0066246A)Rattanak Chhung (A0066240N)Yann-Loup Phan Van Song (A0066238B)

A Privacy-Preserving Index for Range Queries

Page 2: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

2

Introduction•What we will present in this presentation

▫Query-Optimal-Bucketization Algorithm▫Attack 2 x 1D (cutting partitions)▫Two attributes with Hilbert curve

•What we have also done:▫Controlled-Diffusion Algorithm▫Remake Experiments

Page 3: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

3

Query-Optimal-Bucketization1 attribute

Page 4: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

4

value freq0 11 42 03 34 25 16 67 18 09 1

Dataset of plain values

Inputs

find the bucketization that reduces the number of total false positives

Our goal:

For all the sub-problems with max 2 buckets compute H[k][2] = (BC(1, i) + BC(i + 1,K))

Store optimal-partition-point ibest in OPP[k][2]Do the same for more than 2 buckets:

H[k][l] = (H[i][l - 1] + BC(i + 1, k))Store optimal-partition-point ibest in OPP[k][l]Reconstrcut the buckets by taking:btemp = new Bucket(V[OPP[j - 1][M - 1 - i]], V[j - 1])

Principle:

BC (i , j)=∑i=1

j

f t .(vj−vi+1)

Page 5: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

5

BC table

1 0 0 0 0 0 0 0

10 4 0 0 0 0 0 0

15 8 0 0 0 0 0 0

32 21 3 0 0 0 0 0

50 36 10 2 0 0 0 0

66 50 18 6 1 0 0 0

119 96 48 27 14 6 0 0

144 119 65 40 24 14 1 0

190 162 98 66 45 32 6 1

j

ittij fvvjiBC )1(),(

BC=

Page 6: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

6

value freq0 11 42 03 34 25 16 67 18 09 1

Dataset of plain values

Inputs

Intermediary results

Bucket Bucketization cost

[0-4] (4+1).(10)[5-9] (4+1).9

First Step: M=2MinCost = 95

Page 7: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

7

value freq0 11 42 03 34 25 16 67 18 09 1

Dataset of plain values

Inputs

Outputs

[ 0 - 2] [ 3 - 5 ] [ 6 - 6 ] [ 7 - 9 ]

5

6 6

2

Buckets Bucketization cost

[ 0 - 2 ] 3.5[ 3 - 5 ] 3.6[ 6 - 6 ] 1.6 [ 7 - 9 ] 3.2

Last Step: M=4MinCost = 45

Note: Depending on what we want we can include or not the values that have 0 frequency

Page 8: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

8

0.15 0.20 0.25 0.30 0.35 0.400

10

20

30

40

50

60

70

MinCost on our DataSet

value freq0 11 42 03 34 25 16 67 18 09 1

Dataset of plain values

Inputs

Link with privacy

MinCost strictly decreasing with M but might increase the likeliness of an attack (Cf.[1] Damiani et al.)-> Tradeoff Performance-Privacy

Page 9: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

9

Attacks

Page 10: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

10

value freq(1 ; 4) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

Dataset of plain values

Partition attribute 1

Partition attribute 2

Encrypted table

Inputs

Page 11: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

11

value freq(1 ; 4) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

Context

To match the indexes and the buckets

Our goal:

How ?Working with cardinalities

Page 12: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

12

value freq(1 ; 4) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

Algorithm

Based on propagation, this is the Sudoku algorithm:

- First, identify some indexes- While some new indexes are identified

Do propagation

Trigger (first attack):Done by BAA and BAA2. Their goal is to identify one or several indexes to launch the propagation

Propagation (loop):The identification of an index decreases the cardinalities in couples and helps to identify new indexes…

Page 13: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

13

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - BAA

B11 = [

BAA :

Page 14: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

14

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - BAA

B11 = [

BAA :

Page 15: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

15

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - BAA

BAA :

B11 = [

73 ,

Page 16: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

16

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - BAA

BAA :

B11 = [

73 , 15 ]

Page 17: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

17

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - BAA

B11 = [

73 , 15 ] B12 = [

73 , 15 ] B13 = [

79 , 30 ] B14 = [

79 , 30 ]

B21 = [

20 , 45 ] B22 = [

9 , 74 ] B23 = [B24 = [

9 , 74 ] 20 , 45 ]

BAA :

BAA2 :

No identified index …

Page 18: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

18

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

B11 = [

73 , 15 ] B12 = [

73 , 15 ] B13 = [

79 , 30 ] B14 = [

79 , 30 ]

B21 = [

20 , 45 ] B22 = [

9 , 74 ] B23 = [B24 = [

9 , 74 ] 20 , 45 ]

BAA :

BAA2 :

No identified index …

First attack - BAA2

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

Page 19: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

19

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

First attack - BAA2

Page 20: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

20

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

First attack - BAA2

Page 21: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

21

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

First attack - BAA2

Page 22: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

22

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

First attack - BAA2

Page 23: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

23

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

First attack - BAA2

Page 24: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

24

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

|B11;B23| =

0

First attack - BAA2

Page 25: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

25

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

|B11;B23| =

0|B11;B24| =

First attack - BAA2

Page 26: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

26

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

|B11;B23| =

0|B11;B24| =

1

First attack - BAA2

Page 27: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

27

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

|B11;B23| =

0|B11;B24| =

1

45 , 20 , 74 , 9

First attack - BAA2

Page 28: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

28

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30

45 , 20 , 74 , 9

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

|B11;B23| =

0|B11;B24| =

1

45 , 20 , 74 , 9

First attack - BAA2

Page 29: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

29

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

|B11;B21| =

1

73 , 79 , 30 ]

45 , 20 , 74 , 9 ]

|B11;B22| =

0

value freq

(73 ; 45)

1

(73 ; 20)

1

(15 ; 9) 2(79 ; 45)

1

(79 ; 74)

1

(79 ; 20)

1

(30 ; 74)

2

(30 ; 9) 1

|B11;B23| =

0|B11;B24| =

1

45 , 20 , 74 , 9 ]

|B12;B21| = |B12;B22| = |B12;B23| = |B12;B24| = |B13;B21| = |B13;B22| = |B13;B23| = |B13;B24| = |B14;B21| = |B14;B22| = |B14;B23| = |B14;B24| =

15 , 30 ]73 , 79 , 30 ]73 , 15 , 79 , 30 ]

45 , 20 , 74 , 9 ]45 , 20 , 74 , 9 ]

No identified index …

0 0 2 0 1 0 1 1 0 2 1 0

First attack - BAA2

Page 30: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

30

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

First attack - intersection

BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

73 , 79 , 30 ]

45 , 20 , 74 , 9 ]

45 , 20 , 74 , 9 ]

15 , 30 ]73 , 79 , 30 ]73 , 15 , 79 , 30 ]

45 , 20 , 74 , 9 ]45 , 20 , 74 , 9 ]

No identified index …

B11 = [

73 , 15 ] B12 = [

73 , 15 ] B13 = [

79 , 30 ] B14 = [

79 , 30 ]

B21 = [

20 , 45 ] B22 = [

9 , 74 ] B23 = [B24 = [

9 , 74 ] 20 , 45 ]

BAA :

No identified index …

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

Page 31: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

31

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = [B12 = [B13 = [B14 = [B21 = [B22 = [B23 = [B24 = [

73 , 79 , 30 ]

45 , 20 , 74 , 9 ]

45 , 20 , 74 , 9 ]

15 , 30 ]73 , 79 , 30 ]73 , 15 , 79 , 30 ]

45 , 20 , 74 , 9 ]45 , 20 , 74 , 9 ]

No identified index …

B11 = [

73 , 15 ] B12 = [

73 , 15 ] B13 = [

79 , 30 ] B14 = [

79 , 30 ]

B21 = [

20 , 45 ] B22 = [

9 , 74 ] B23 = [B24 = [

9 , 74 ] 20 , 45 ]

BAA :

No identified index …

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - intersection

Page 32: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

32

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = 73 B12 = 15B13 = [ 79,

30 ]B14 = [ 79, 30 ]B21 = [ 20, 45 ]B22 = [ 9, 74 ]B23 = [ 9, 74 ]B24 = [ 20, 45 ]

BAA &

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

First attack - intersection

Page 33: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

33

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]BAA2 :

B11 = 73 B12 = 15B13 = [ 79,

30 ]B14 = [ 79, 30 ]B21 = [ 20, 45 ]B22 = [ 9, 74 ]B23 = [ 9, 74 ]B24 = [ 20, 45 ]

BAA &

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

First attack - intersection

Page 34: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

34

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Creation of couples of indexes

B11 = 73 B12 = 15

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [

Page 35: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

35

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),

B11 = 73 B12 = 15

Creation of couples of indexes

Page 36: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

36

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),

B11 = 73 B12 = 15

Creation of couples of indexes

(20;1)])

Page 37: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

37

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [ (45;1), (20;1)])(15 ; [

B11 = 73 B12 = 15

Creation of couples of indexes

Page 38: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

38

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [ (45;1), (20;1)])(15 ; [ (9;2)])

B11 = 73 B12 = 15

Creation of couples of indexes

Page 39: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

39

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(73;1),(79;1)])(9 ; [(15;2),(30;1)])(74 ; [(79;1),(30;2)])(20 ; [(79;1),(73;1)])

B11 = 73 B12 = 15

Creation of couples of indexes

Page 40: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

40

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Remove known indexes from sets

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(73;1),(79;1)])(9 ; [(15;2),(30;1)])(74 ; [(79;1),(30;2)])(20 ; [(79;1),(73;1)])

B11 = 73 B12 = 15

Page 41: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

41

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])(20 ; [(79;1)])

B11 = 73 B12 = 15

Remove known indexes from sets

Page 42: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

42

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Propagation 1 - look for new indexes

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Page 43: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

43

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Propagation 1 - look for new indexes

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Page 44: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

44

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Propagation 1 - look for new indexes

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Page 45: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

45

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 1 - look for new indexes

Same cardinality: no way to distinguish them !

Page 46: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

46

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 1 - look for new indexes

Page 47: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

47

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

Propagation 1 - identify the new index

B11 = 73 B12 = 15

(20 ; [(79;1)])

Page 48: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

48

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = [ 9, 74 ]B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 1 - identify the new index

Page 49: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

49

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = 9B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 1 - identify the new index

Page 50: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

50

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Propagation 1 - add the new index to the list

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = 9B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : 73, 15

New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

9

B11 = 73 B12 = 15

(20 ; [(79;1)])

Page 51: A Privacy-Preserving Index for Range Queries

51

CS5322 - Groupe 6

value freq(1 ; 2) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Propagation 1 - remove deprecated data

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 9, 74 ]

B23 = 9B24 = [ 20, 45 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

New identified indexes : New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2),(9;1)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

973, 15

B11 = 73 B12 = 15

(20 ; [(79;1)])

Page 52: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

52

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

New identified indexes : New identified indexes :

(73 ; [(45;1),(20;1)])(15 ; [(9;2)])(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

973, 15

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 1 - remove deprecated data

Page 53: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

53

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

New identified indexes : New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

9

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 2 - look for new indexes

Page 54: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

54

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

New identified indexes : New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

9

B11 = 73 B12 = 15

(20 ; [(79;1)])

Propagation 2 - look for new indexes

Page 55: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

55

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes : New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

9

B11 = 73 B12 = 15

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

(20 ; [(79;1)])

Propagation 2 - identify the new index

Page 56: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

56

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B13 = [ 79, 30 ]B14 = [ 79, 30 ]

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes : New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

9

B11 = 73 B12 = 15

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

(20 ; [(79;1)])

Propagation 2 - identify the new index

Page 57: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

57

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79, 30 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes : New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

9

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

(20 ; [(79;1)])

Propagation 2 - identify the new index

Page 58: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

58

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79, 30 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

930

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

(20 ; [(79;1)])

Propagation 2 - add the new index to the list

Page 59: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

59

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79, 30 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1),(30;2)])

930

Ind1 Ind2

79 4579 7430 7430 9

79 2030 74

(20 ; [(79;1)])

Propagation 2 - remove deprecated data

Page 60: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

60

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])(9 ; [(30;1)])(74 ; [(79;1)])

930

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 2 - remove deprecated data

Page 61: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

61

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - look for new indexes

Page 62: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

62

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - look for new indexes

Page 63: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

63

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - identify the new index

Page 64: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

64

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = [ 74 ]

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - identify the new index

Page 65: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

65

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - identify the new index

Page 66: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

66

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30 74

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - add the new index to the list

Page 67: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

67

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(14 ; 5)

1

B13 B14[ 7 ; 11 ]

[ 12 ; 15 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(74;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30 74

Ind1 Ind2

79 4579 7430 74

79 2030 74

(20 ; [(79;1)])

Propagation 3 - remove deprecated data

Page 68: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

68

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])(30 ; [(74;2)])

(45 ; [(79;1)])

(74 ; [(79;1)])

30 74

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 3 - remove deprecated data

Page 69: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

69

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])

74

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 4 - look for new indexes

Page 70: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

70

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])

74

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 4 - look for new indexes

Page 71: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

71

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])

74

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 4 - identify the new index

Page 72: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

72

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = [ 79 ]B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])

74

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 4 - identify the new index

Page 73: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

73

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])

74

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 4 - identify the new index

Page 74: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

74

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])

74 79

Ind1 Ind2

79 4579 74

79 20(20 ; [(79;1)])

Propagation 4 - add the new index to the list

Page 75: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

75

value freq

(7 ; 2) 1(7 ; 11)

1

(9 ; 4) 1

B13[ 7 ; 11 ]

B21 B22 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [(79;1)])

(74 ; [(79;1)])(20 ; [(79;1)])

74 79

Ind1 Ind2

79 4579 74

79 20

Propagation 4 - remove deprecated data

Page 76: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

76

value freq

(7 ; 2) 1(7 ; 11)

1

B13[ 7 ; 11 ]

B21 B24[ 0 ; 3 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [ ])

(74 ; [(79;1)])(20 ; [ ])

74 79

Ind1 Ind2

79 45

79 20

Propagation 4 - remove deprecated data

Page 77: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

77

value freq

(7 ; 2) 1(7 ; 11)

1

B13[ 7 ; 11 ]

B21 B24[ 0 ; 3 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [ ])

(20 ; [ ])

79

Ind1 Ind2

79 45

79 20

Propagation 5 - look for new indexes

Page 78: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

78

value freq

(7 ; 2) 1(7 ; 11)

1

B13[ 7 ; 11 ]

B21 B24[ 0 ; 3 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [ ])

(20 ; [ ])

79

Ind1 Ind2

79 45

79 20

Propagation 5 - look for new indexes

No way! Impossible to identify them

Page 79: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

79

value freq

(7 ; 2) 1(7 ; 11)

1

B13[ 7 ; 11 ]

B21 B24[ 0 ; 3 ] [ 10 ;

15 ]

B11 = 73 B12 = 15

B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20, 45 ]

New identified indexes :

New identified indexes :

(79 ; [(45;1),(20;1)])

(45 ; [ ])

(20 ; [ ])

Propagation 5 - STOP

79

Ind1 Ind2

79 45

79 20

No other index: we have to stop!

Page 80: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

80

value freq(1 ; 4) 1

(1 ; 11)

1

(4 ; 8) 1(5 ; 9) 1(7 ; 2) 1

(7 ; 11)

1

(9 ; 4) 1(12 ;

4)1

(13 ; 7)

1

(14 ; 5)

1

B11 B12 B13 B14[ 0 ; 2 ] [ 3 ; 6 ] [ 7 ;

11 ][ 12 ; 15 ]

B21 B22 B23 B24[ 0 ; 3 ] [ 4 ; 5 ] [ 6 ; 9 ] [ 10 ;

15 ]

Ind1 Ind273 4515 979 4579 7430 7430 915 979 2030 7473 20

Results

B11 = 73 B12 = 15B13 = 79B14 = 30

B21 = [ 20, 45 ]B22 = 74

B23 = 9B24 = [ 20,

45 ]

Page 81: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

81

Two attributes

Page 82: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

82

Hilbert curve

col1

col2

0 12 3

3

2

1

0

Hilbert value

Col1 value

Col2 value

0 0 01 1 02 1 13 0 14 0 25 0 36 1 37 1 28 2 29 2 310 3 311 3 212 3 113 2 114 2 015 3 0

NN ²

Page 83: A Privacy-Preserving Index for Range Queries

83

Hilbert curve

col1

col2

0 12 3

3

2

1

0

CS5322 - Groupe 6

Id Col1

Col2

HV

1 0 0 02 1 1 33 1 1 34 1 1 35 1 1 36 0 2 47 1 2 78 1 2 79 1 2 710 2 3 911 3 3 1012 2 1 1313 2 1 13

Page 84: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

84

Two dimensions -> One dimension

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1

0 0

4

1

0 0

3

0

1 1

0 0

2

0 0

Hibert value

Freq

uenc

y

M = 5

B1 B3 B4 B5B2

Page 85: A Privacy-Preserving Index for Range Queries

85

Hilbert curve

col1

col2

0 12 3

3

2

1

0

CS5322 - Groupe 6

Id Col1

Col2

HV B

1 0 0 0 B12 1 1 33 1 1 34 1 1 35 1 1 36 0 2 4 B27 1 2 7 B38 1 2 79 1 2 710 2 3 9 B411 3 3 1012 2 1 13 B513 2 1 13

B3

B2 B4

B1 B5

Page 86: A Privacy-Preserving Index for Range Queries

86

Hilbert curve

col1

col2

0 12 3

3

2

1

0

CS5322 - Groupe 6

Id Col1

Col2

HV B

1 0 0 0 B12 1 1 33 1 1 34 1 1 35 1 1 36 0 2 4 B27 1 2 7 B38 1 2 79 1 2 710 2 3 9 B411 3 3 1012 2 1 13 B513 2 1 13

B2 B4

B1 B5

Range query on [1-1] for col1

… WHERE Col1 = 1

B3

Page 87: A Privacy-Preserving Index for Range Queries

87

Hilbert curve

col1

col2

0 12 3

3

2

1

0

CS5322 - Groupe 6

Id Col1

Col2

HV B

1 0 0 0 B12 1 1 33 1 1 34 1 1 35 1 1 36 0 2 4 B27 1 2 7 B38 1 2 79 1 2 7

10 2 3 9 B411 3 3 1012 2 1 13 B513 2 1 13

B3

B2 B4

B1 B5

Range query on [1-2] for col2

… WHERE Col2 in [1-2]

Page 88: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

88

Hilbert curve

Range query?

col1

col2

Page 89: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

89

Conclusion•What we did:

▫(Model)▫Implementation QOB and CD▫Remake Experiment▫Attacks▫Two attributes for QOB

•What we could have done more:▫Comparison 2 x QOB-1D, 1 x QOB-2D and

another multi-attributes partition (e.g. Mondrian)

▫Analyze of attacks in function of privacy indicators

Page 90: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

90

Thank you. Any questions?

Page 91: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

91

[1] E. Damiani, S. D. C. Vimercati, S. Jajodia, S. Paraboschi, and P. Samarati. Balancing Condentiality and Eciency in Untrusted RelationalDBMSs. In CCS '03: Proceedings of the 10th ACM conference on Computer and communications security, pages 93-102, New York, NY, USA, 2003. ACM.

[3] H. Hacgıümüs, B. Iyer, C. Li, and S. Mehrotra. Executin SQL over Encrypted Date in the Database-Service-Provider Model. In IGMOD '02: Proceedings of the 2002 ACM SIGMOD international conference on Management of data, pages 216-227, New York, NY, USA, 2002. ACM.

[5] B. Hore, S. Mehrotra, and G. Tsudik. A Privacy Preserving Index for Range Queries. In VLDB '04: Proceedings of the Thirtieth International conference on Very large data bases, pages 720-731. VLDB Endowment, 2004.

[2] Eclipse. http://www.eclipse.org/.

[4] Hilbert curves in more (or fewer) than two dimensions. http://www.tiac.net/sw/2008/10/Hilbert/.

[6] Hilbert Space-Filling Curves. http://people.csail.mit.edu/jaer/Geometry/HSFC.

[7] JUnit. http://www.junit.org/ .

[8] Project Locker. https://www.projectlocker.com/.

[9] Subclise. http://subclipse.tigris.org/.

[10] Gaussian distribution. http://en.wikipedia.org/wiki/Gaussian_distribution.

[11] Sudoku.http://en.wikipedia.org/wiki/Sudoku.

[12] Variance - Discrete case. http://en.wikipedia.org/wiki/Variance#Discrete_case.

References

Page 92: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

92

Page 93: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

93

Annexes

Page 94: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

94

Controlled-Diffusion

Page 95: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

95

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB1 CB2

CB3 CB4

Page 96: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

96

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB1 CB21;

CB3 CB4

Page 97: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

97

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12;

CB21;

CB3 CB4

Page 98: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

98

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12; 3;

CB21;

CB3 CB4

Page 99: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

99

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12; 3;

CB21; 4;

CB3 CB4

Page 100: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

100

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12; 3;

CB21; 4;

CB3

5; 6; 8

CB4

7; 9;

Page 101: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

101

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12; 3;

10; 13;

CB21; 4;

CB3

5; 6; 811; 12;

CB4

7; 9;

Page 102: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

102

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12; 3;

10; 13.

CB21; 4;

14; 16.

CB3

5; 6; 811; 12.

CB4

7; 9;

15.

Page 103: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

103

Controlled-DiffusionId Val. OB1 02 03 14 15 26 27 48 49 4

10 511 612 613 614 715 916 9

CB12; 3;

10; 13.

CB21; 4;

14; 16.

CB3

5; 6; 811; 12.

CB4

7; 9;

15.

Range query: [3,5]

Page 104: A Privacy-Preserving Index for Range Queries

CS5322 - Groupe 6

104

« Remake » experiments

Page 105: A Privacy-Preserving Index for Range Queries

105

CS5322 - Groupe 6

DataFigure 7: Uniform distrib. Figure 8: Normal distrib.

-756 -289 -124 40 204 368 532 696 860 1024118813670

20

40

60

80

100

120

140

160

0 66 1321982643303964625285946607267928589249900

20

40

60

80

100

120

140

160

]999,0[U

500μ 5.333,83² σ510# tuples

²,N

Page 106: A Privacy-Preserving Index for Range Queries

106

CS5322 - Groupe 6

Ratio of precisionFigure 9: Uniform distrib. Figure 10: Normal distrib.

KM

M

CPOP

,AQPAQP

100 150 200 250 300 350 4000

2

4

6

8

10

12

k=2 k=4 k=6 k=8 k=10

Number of Buckets

AQP(

Opt

Part

)/AQ

P(Co

mpP

art)

100 150 200 250 300 350 4000

2

4

6

8

10

12

k=2 k=4 k=6 k=8 k=10

Number of Buckets

AQP(

Opt

Part

)/AQ

P(Co

mpP

art)

Page 107: A Privacy-Preserving Index for Range Queries

107

CS5322 - Groupe 6

Ratio of average standard deviationFigure 11: Uniform distrib. Figure 12: Normal distrib.

M

KM

OPbuckets

CPbuckets

buckets

buckets

)σ(mean

)σ(mean,

100 150 200 250 300 350 4000

20

40

60

80

100

120

140

160

180

k=2 k=4 k=6 k=8 k=10

Number of Buckets

σ(Co

mpP

art)

/σ(O

ptPa

rt)

100 150 200 250 300 350 4000

50

100

150

200

250

300

350

400

450

k=2 k=4 k=6 k=8 k=10

Number of Buckets

σ(Co

mpP

art)

/σ(O

ptPa

rt)

Page 108: A Privacy-Preserving Index for Range Queries

108

CS5322 - Groupe 6

Ratio of average entropyFigure 13: Uniform distrib. Figure 14: Normal distrib.

100 150 200 250 300 350 4000

0.5

1

1.5

2

2.5

3

3.5

k=2 k=4 k=6 k=8 k=10

Number of Buckets

H(C

ompP

art)

/H(O

ptPa

rt)

100 150 200 250 300 350 4000

0.5

1

1.5

2

2.5

k=2 k=4 k=6 k=8 k=10

Number of Buckets

H(C

ompP

art)

/H(O

ptPa

rt)

M

KM

OPbuckets

CPbuckets

buckets

buckets

)H(mean

)H(mean,

Page 109: A Privacy-Preserving Index for Range Queries

109

CS5322 - Groupe 6

Trade-off (precision vs std. dev.)Figure 15: Uniform distrib. Figure 16: Normal distrib.

0 0.2 0.4 0.6 0.8 1 1.20

50

100

150

200

250

300

OPk=2k=4k=6k=8k=10

Precision

Stan

dard

Dev

iati

on

0 0.2 0.4 0.6 0.8 1 1.20

50

100

150

200

250

300

OPk=2k=4k=6k=8k=10

Precision

Stan

dard

Dev

iati

on

Page 110: A Privacy-Preserving Index for Range Queries

110

CS5322 - Groupe 6

Trade-off (precision vs entropy)Figure 17: Uniform distrib. Figure 18: Normal distrib.

0 0.2 0.4 0.6 0.8 1 1.20

1

2

3

4

5

6

7

OPk=2k=4k=6k=8k=10

Precision

Entr

opy

0 0.2 0.4 0.6 0.8 1 1.20

1

2

3

4

5

6

7

OPk=2k=4k=6k=8k=10

Precision

Entr

opy