1.1k likes | 1.25k Views
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
E N D
A Privacy-Preserving Index for Range Queries Implementation (Group 6) Monika (A0066244H) Damien Forest (A0066246A) RattanakChhung (A0066240N) Yann-Loup Phan Van Song (A0066238B) CS5322 - Groupe 6
CS5322 - Groupe 6 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
CS5322 - Groupe 6 Query-Optimal-Bucketization 1 attribute
Inputs CS5322 - Groupe 6 Our goal: find the bucketizationthatreduces the number of total false positives Principle: For all the sub-problems with max 2 buckets compute H[k][2] = (BC(1, i) + BC(i + 1,K)) Store optimal-partition-point ibestin 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 ibestin OPP[k][l] Reconstrcut the buckets by taking: btemp = new Bucket(V[OPP[j - 1][M - 1 - i]], V[j - 1]) Dataset of plain values
CS5322 - Groupe 6 BC table BC=
Inputs CS5322 - Groupe 6 Intermediaryresults First Step: M=2 MinCost = 95 Dataset of plain values
Inputs CS5322 - Groupe 6 Outputs Last Step: M=4 MinCost = 45 Note: Depending on whatwewantwecaninclude or not the values that have 0 frequency Dataset of plain values
Inputs CS5322 - Groupe 6 Link with privacy MinCost strictly decreasing with M but might increase the likeliness of an attack (Cf.[1] Damiani et al.) -> Tradeoff Performance-Privacy Dataset of plain values
CS5322 - Groupe 6 Attacks
Inputs CS5322 - Groupe 6 Partition attribute 1 Partition attribute 2 Dataset of plain values Encrypted table
Context CS5322 - Groupe 6 Our goal: To match the indexes and the buckets How ? Workingwithcardinalities
Algorithm CS5322 - Groupe 6 Based on propagation, thisis the Sudokualgorithm: - First, identifysome indexes - Whilesome new indexes are identified Do propagation Propagation (loop): The identification of an index decreases the cardinalities in couples and helps to identify new indexes… Trigger (first attack): Done by BAA and BAA2. Their goal is to identify one or several indexes to launch the propagation
First attack - BAA CS5322 - Groupe 6 BAA : B11 = [
First attack - BAA CS5322 - Groupe 6 BAA : B11 = [
First attack - BAA CS5322 - Groupe 6 BAA : B11 = [ 73 ,
First attack - BAA CS5322 - Groupe 6 BAA : B11 = [ 73 , 15 ]
First attack - BAA CS5322 - Groupe 6 BAA : BAA2 : B11 = [ 73 , 15 ] B12 = [ 73 , 15 ] B13 = [ 79 , 30 ] B14 = [ 79 , 30 ] B21 = [ 20 , 45 ] B22 = [ 9 , 74 ] No identified index … B23 = [ 9 , 74 ] B24 = [ 20 , 45 ]
First attack - BAA2 CS5322 - Groupe 6 BAA : BAA2 : B11 = [ 73 , 15 ] B11 = [ B12 = [ 73 , 15 ] B12 = [ B13 = [ 79 , 30 ] B13 = [ B14 = [ 79 , 30 ] B14 = [ B21 = [ 20 , 45 ] B21 = [ B22 = [ 9 , 74 ] B22 = [ No identified index … B23 = [ 9 , 74 ] B23 = [ B24 = [ 20 , 45 ] B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = B11 = [ B12 = [ B13 = [ B14 = [ B21 = [ B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 B11 = [ B12 = [ B13 = [ B14 = [ B21 = [ B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 |B11;B23| = 0 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 |B11;B23| = 0 |B11;B24| = B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 |B11;B23| = 0 |B11;B24| = 1 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 |B11;B23| = 0 |B11;B24| = 1 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [ 45 , 20 , 74 , 9
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 |B11;B23| = 0 |B11;B24| = 1 B11 = [ 73 , 79 , 30 B12 = [ B13 = [ B14 = [ B21 = [ 45 , 20 , 74 , 9 B22 = [ B23 = [ B24 = [ 45 , 20 , 74 , 9
First attack - BAA2 CS5322 - Groupe 6 BAA2 : |B11;B21| = 1 |B11;B22| = 0 |B11;B23| = 0 |B11;B24| = 1 B11 = [ 73 , 79 , 30 ] |B12;B21| = 0 B12 = [ 15 , 30 ] |B12;B22| = 0 |B12;B23| = 2 B13 = [ 73 , 79 , 30 ] |B12;B24| = 0 B14 = [ 73 , 15 , 79 , 30 ] |B13;B21| = 1 |B13;B22| = 0 1 |B13;B23| = B21 = [ 45 , 20 , 74 , 9 ] 1 |B13;B24| = B22 = [ 45 , 20 , 74 , 9 ] 0 |B14;B21| = 2 |B14;B22| = B23 = [ 45 , 20 , 74 , 9 ] No identified index … |B14;B23| = 1 0 B24 = [ 45 , 20 , 74 , 9 ] |B14;B24| =
First attack - intersection CS5322 - Groupe 6 BAA : BAA2 : B11 = [ 73 , 15 ] B11 = [ 73 , 79 , 30 ] B12 = [ 73 , 15 ] B12 = [ 15 , 30 ] B13 = [ 79 , 30 ] B13 = [ 73 , 79 , 30 ] B14 = [ 79 , 30 ] B14 = [ 73 , 15 , 79 , 30 ] B21 = [ 20 , 45 ] B21 = [ 45 , 20 , 74 , 9 ] B22 = [ 9 , 74 ] B22 = [ 45 , 20 , 74 , 9 ] No identified index … B23 = [ 9 , 74 ] B23 = [ 45 , 20 , 74 , 9 ] No identified index … B24 = [ 20 , 45 ] B24 = [ 45 , 20 , 74 , 9 ]
First attack - intersection CS5322 - Groupe 6 BAA : BAA2 : B11 = [ 73 , 15 ] B11 = [ 73 , 79 , 30 ] B12 = [ 73 , 15 ] B12 = [ 15 , 30 ] B13 = [ 79 , 30 ] B13 = [ 73 , 79 , 30 ] B14 = [ 79 , 30 ] B14 = [ 73 , 15 , 79 , 30 ] B21 = [ 20 , 45 ] B21 = [ 45 , 20 , 74 , 9 ] B22 = [ 9 , 74 ] B22 = [ 45 , 20 , 74 , 9 ] No identified index … B23 = [ 9 , 74 ] B23 = [ 45 , 20 , 74 , 9 ] No identified index … B24 = [ 20 , 45 ] B24 = [ 45 , 20 , 74 , 9 ]
First attack - intersection CS5322 - Groupe 6 BAA & BAA2 : B11 = 73 B12 = 15 B13 = [ 79, 30 ] B14 = [ 79, 30 ] B21 = [ 20, 45 ] B22 = [ 9, 74 ] B23 = [ 9, 74 ] B24 = [ 20, 45 ]
First attack - intersection CS5322 - Groupe 6 BAA & BAA2 : B11 = 73 B12 = 15 B13 = [ 79, 30 ] B14 = [ 79, 30 ] B21 = [ 20, 45 ] B22 = [ 9, 74 ] B23 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Creation of couples of indexes CS5322 - Groupe 6 (73 ; [ B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Creation of couples of indexes CS5322 - Groupe 6 (73 ; [ (45;1), B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Creation of couples of indexes CS5322 - Groupe 6 (73 ; [ (45;1), (20;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Creation of couples of indexes CS5322 - Groupe 6 (73 ; [ (45;1), (20;1)]) (15 ; [ B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Creation of couples of indexes CS5322 - Groupe 6 (73 ; [ (45;1), (20;1)]) (15 ; [ (9;2)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Creation of couples of indexes CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(73;1),(79;1)]) (15 ; [(9;2)]) (9 ; [(15;2),(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1),(73;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Removeknown indexes from sets CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(73;1),(79;1)]) (15 ; [(9;2)]) (9 ; [(15;2),(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1),(73;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Removeknown indexes from sets CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - look for new indexes CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - look for new indexes CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - look for new indexes CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - look for new indexes CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) Samecardinality: no way to distinguishthem ! B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - look for new indexes CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - identify the new index CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - identify the new index CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = [ 9, 74 ] B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - identify the new index CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = 9 B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes :
Propagation 1 - add the new index to the list CS5322 - Groupe 6 (73 ; [(45;1),(20;1)]) (45 ; [(79;1)]) (15 ; [(9;2)]) (9 ; [(30;1)]) (79 ; [(45;1),(74;1),(20;1)]) (74 ; [(79;1),(30;2)]) (30 ; [(74;2),(9;1)]) (20 ; [(79;1)]) B11 = 73 B13 = [ 79, 30 ] B21 = [ 20, 45 ] B23 = 9 B12 = 15 B14 = [ 79, 30 ] B22 = [ 9, 74 ] B24 = [ 20, 45 ] New identified indexes : 73, 15 New identified indexes : 9