searching on testing encrypted data
play

Searching on/Testing Encrypted Data Lecture 23 Searchable - PowerPoint PPT Presentation

Searching on/Testing Encrypted Data Lecture 23 Searchable Encryption Searchable Encryption A test key T w that allows one to test if Dec SK (C) = w Searchable Encryption A test key T w that allows one to test if Dec SK (C) = w No other


  1. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1

  2. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ )

  3. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported

  4. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported e.g. P that checks for equality (a=w?) (i.e., PEKS), or for range (a ∈ [r,s]?) or membership in a list (a ∈ S?)

  5. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported e.g. P that checks for equality (a=w?) (i.e., PEKS), or for range (a ∈ [r,s]?) or membership in a list (a ∈ S?) Trivial solution, when the predicate family is small

  6. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported e.g. P that checks for equality (a=w?) (i.e., PEKS), or for range (a ∈ [r,s]?) or membership in a list (a ∈ S?) Trivial solution, when the predicate family is small (PK,SK)={(PK P ,SK P ) | P in the predicate family}. Ciphertext has Enc PKp (P(a)) for each P.

  7. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported e.g. P that checks for equality (a=w?) (i.e., PEKS), or for range (a ∈ [r,s]?) or membership in a list (a ∈ S?) Trivial solution, when the predicate family is small (PK,SK)={(PK P ,SK P ) | P in the predicate family}. Ciphertext has Enc PKp (P(a)) for each P. Can support functions instead of predicates

  8. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported e.g. P that checks for equality (a=w?) (i.e., PEKS), or for range (a ∈ [r,s]?) or membership in a list (a ∈ S?) Trivial solution, when the predicate family is small (PK,SK)={(PK P ,SK P ) | P in the predicate family}. Ciphertext has Enc PKp (P(a)) for each P. Can support functions instead of predicates e.g. Can attach a message to be revealed if Test positive

  9. T P is the key Predicate Encryption to test for property P Test for properties of encrypted attributes For C ← Enc PK (a), we require that boolean Test Tp (C)=1 iff P(a)=1 Or Test Tp (C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂ ) P from a certain predicate family will be supported e.g. P that checks for equality (a=w?) (i.e., PEKS), or for range (a ∈ [r,s]?) or membership in a list (a ∈ S?) Trivial solution, when the predicate family is small (PK,SK)={(PK P ,SK P ) | P in the predicate family}. Ciphertext has Enc PKp (P(a)) for each P. Can support functions instead of predicates e.g. Can attach a message to be revealed if Test positive Can use IBE to shorten keys. Ciphertext still too long.

  10. Predicate Encryption

  11. Predicate Encryption Comparison predicates (given Enc(a), for a ∈ [1,n], check if a ≥ q)

  12. Predicate Encryption Comparison predicates (given Enc(a), for a ∈ [1,n], check if a ≥ q) Can use a “set-hiding” broadcast encryption for intervals

  13. Predicate Encryption Comparison predicates (given Enc(a), for a ∈ [1,n], check if a ≥ q) Can use a “set-hiding” broadcast encryption for intervals Will see in next lecture

  14. Predicate Encryption Comparison predicates (given Enc(a), for a ∈ [1,n], check if a ≥ q) Can use a “set-hiding” broadcast encryption for intervals Will see in next lecture Idea: create ciphertexts that can be decrypted by keys in a range. To encrypt a, encrypt a random message addressed to the range [a,n]. Test key is the key for index q.

  15. Predicate Encryption Comparison predicates (given Enc(a), for a ∈ [1,n], check if a ≥ q) Can use a “set-hiding” broadcast encryption for intervals Will see in next lecture Idea: create ciphertexts that can be decrypted by keys in a range. To encrypt a, encrypt a random message addressed to the range [a,n]. Test key is the key for index q. Extends to range checking

  16. Conjunctive Predicates

  17. Conjunctive Predicates Predicates of the form ( ϕ 1 (a 1 ) AND .... AND ϕ n (a m ))

  18. Conjunctive Predicates Predicates of the form ( ϕ 1 (a 1 ) AND .... AND ϕ n (a m )) Should not reveal which clauses were not satisfied, if any

  19. Conjunctive Predicates Predicates of the form ( ϕ 1 (a 1 ) AND .... AND ϕ n (a m )) Should not reveal which clauses were not satisfied, if any e.g. in [BW07] ϕ i can be equality check (a=w?), comparison (a ≥ q?), range check (a ∈ [r,s]?) or membership in a list (a ∈ S?)

  20. Conjunctive Predicates Predicates of the form ( ϕ 1 (a 1 ) AND .... AND ϕ n (a m )) Should not reveal which clauses were not satisfied, if any e.g. in [BW07] ϕ i can be equality check (a=w?), comparison (a ≥ q?), range check (a ∈ [r,s]?) or membership in a list (a ∈ S?) Tool: Hidden Vector matching, in which each ϕ i is an equality check or a don’ t care

  21. Conjunctive Predicates Predicates of the form ( ϕ 1 (a 1 ) AND .... AND ϕ n (a m )) Should not reveal which clauses were not satisfied, if any e.g. in [BW07] ϕ i can be equality check (a=w?), comparison (a ≥ q?), range check (a ∈ [r,s]?) or membership in a list (a ∈ S?) Tool: Hidden Vector matching, in which each ϕ i is an equality check or a don’ t care e.g. Using hidden vector matching to implement a conjunctive comparison predicate: for all i, a i ≥ r i

  22. Conjunctive Predicates Predicates of the form ( ϕ 1 (a 1 ) AND .... AND ϕ n (a m )) Should not reveal which clauses were not satisfied, if any e.g. in [BW07] ϕ i can be equality check (a=w?), comparison (a ≥ q?), range check (a ∈ [r,s]?) or membership in a list (a ∈ S?) Tool: Hidden Vector matching, in which each ϕ i is an equality check or a don’ t care e.g. Using hidden vector matching to implement a conjunctive comparison predicate: for all i, a i ≥ r i Check if binary [X aij ] defined as X aij = 1 iff j ≤ a i , matches with [T rij ] defined as T rij = 1 if j ≤ r i , and * otherwise

  23. Conjunctive Predicates

  24. Conjunctive Predicates Using hidden vector matching for set membership: a ∈ S ⊆ [1,n]?

  25. Conjunctive Predicates Using hidden vector matching for set membership: a ∈ S ⊆ [1,n]? Set membership is a disjunction of equalities: can be represented as (the negation of) a conjunction of inequalities

  26. Conjunctive Predicates Using hidden vector matching for set membership: a ∈ S ⊆ [1,n]? Set membership is a disjunction of equalities: can be represented as (the negation of) a conjunction of inequalities Check if binary vector X a defined as X ai = 1 iff a=i, matches with T S defined as T Si = 0 if i ∉ S, and * otherwise

  27. Conjunctive Predicates Using hidden vector matching for set membership: a ∈ S ⊆ [1,n]? Set membership is a disjunction of equalities: can be represented as (the negation of) a conjunction of inequalities Check if binary vector X a defined as X ai = 1 iff a=i, matches with T S defined as T Si = 0 if i ∉ S, and * otherwise Key and ciphertext proportional to size of universe [1,n]

  28. Conjunctive Predicates Using hidden vector matching for set membership: a ∈ S ⊆ [1,n]? Set membership is a disjunction of equalities: can be represented as (the negation of) a conjunction of inequalities Check if binary vector X a defined as X ai = 1 iff a=i, matches with T S defined as T Si = 0 if i ∉ S, and * otherwise Key and ciphertext proportional to size of universe [1,n] Can extend to conjunction with other predicates

  29. Conjunctive Predicates Using hidden vector matching for set membership: a ∈ S ⊆ [1,n]? Set membership is a disjunction of equalities: can be represented as (the negation of) a conjunction of inequalities Check if binary vector X a defined as X ai = 1 iff a=i, matches with T S defined as T Si = 0 if i ∉ S, and * otherwise Key and ciphertext proportional to size of universe [1,n] Can extend to conjunction with other predicates More efficient set membership?

  30. Bloom Filters

  31. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x)

  32. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x) A subset S is represented by H(S) = ⋁ x ∈ S h(x) (i.e., bit-wise OR)

  33. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x) A subset S is represented by H(S) = ⋁ x ∈ S h(x) (i.e., bit-wise OR) Given H(S), to check if x ∈ S, for each coordinate i s.t h(x) i = 1, check that H(S) i = 1

  34. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x) A subset S is represented by H(S) = ⋁ x ∈ S h(x) (i.e., bit-wise OR) Given H(S), to check if x ∈ S, for each coordinate i s.t h(x) i = 1, check that H(S) i = 1 No false negatives

  35. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x) A subset S is represented by H(S) = ⋁ x ∈ S h(x) (i.e., bit-wise OR) Given H(S), to check if x ∈ S, for each coordinate i s.t h(x) i = 1, check that H(S) i = 1 No false negatives False positive if all i s.t. h(x) i = 1 are covered by h(x’) for a set of other values x’

  36. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x) A subset S is represented by H(S) = ⋁ x ∈ S h(x) (i.e., bit-wise OR) Given H(S), to check if x ∈ S, for each coordinate i s.t h(x) i = 1, check that H(S) i = 1 No false negatives False positive if all i s.t. h(x) i = 1 are covered by h(x’) for a set of other values x’ If h is a random function with outputs of weight d, can bound the false positive rate in terms of n, d and |S|

  37. Bloom Filters Elements x in the universe mapped to n-bit binary vectors h(x) A subset S is represented by H(S) = ⋁ x ∈ S h(x) (i.e., bit-wise OR) Given H(S), to check if x ∈ S, for each coordinate i s.t h(x) i = 1, check that H(S) i = 1 No false negatives False positive if all i s.t. h(x) i = 1 are covered by h(x’) for a set of other values x’ If h is a random function with outputs of weight d, can bound the false positive rate in terms of n, d and |S| Or h a CRHF with range being indices of a “cover free set system”

  38. Set-Membership Predicate with Bloom Filters

  39. Set-Membership Predicate with Bloom Filters To check a ∈ S ⊆ U, where the universe U can be large

  40. Set-Membership Predicate with Bloom Filters To check a ∈ S ⊆ U, where the universe U can be large Checking if a ∈ S amounts to checking if the vector h(a) is covered by H(S)

  41. Set-Membership Predicate with Bloom Filters To check a ∈ S ⊆ U, where the universe U can be large Checking if a ∈ S amounts to checking if the vector h(a) is covered by H(S) Implemented using hidden vector matching

  42. Set-Membership Predicate with Bloom Filters To check a ∈ S ⊆ U, where the universe U can be large Checking if a ∈ S amounts to checking if the vector h(a) is covered by H(S) Implemented using hidden vector matching S encrypted: T a defined as: T ai = 1 if h(a) i = 1, else *

  43. Set-Membership Predicate with Bloom Filters To check a ∈ S ⊆ U, where the universe U can be large Checking if a ∈ S amounts to checking if the vector h(a) is covered by H(S) Implemented using hidden vector matching S encrypted: T a defined as: T ai = 1 if h(a) i = 1, else * a encrypted: T S defined as: T Si = 0 if H(S)=0, else *

  44. Inner-product Predicate

  45. Inner-product Predicate Attribute a is a vector. Predicate P v is also specified by a vector v: P v (a) = 1 iff <v,a> = 0

  46. Inner-product Predicate Attribute a is a vector. Predicate P v is also specified by a vector v: P v (a) = 1 iff <v,a> = 0 Or function P v : P v (a,m)=m iff <v,a>=0, else ⊥

  47. Inner-product Predicate Attribute a is a vector. Predicate P v is also specified by a vector v: P v (a) = 1 iff <v,a> = 0 Or function P v : P v (a,m)=m iff <v,a>=0, else ⊥ General enough to capture several applications

  48. Inner-product Predicate Attribute a is a vector. Predicate P v is also specified by a vector v: P v (a) = 1 iff <v,a> = 0 Or function P v : P v (a,m)=m iff <v,a>=0, else ⊥ General enough to capture several applications e.g. Anonymous IBE from Inner-Product PE (with attached messages) over attributes in Z N x Z N

  49. Inner-product Predicate Attribute a is a vector. Predicate P v is also specified by a vector v: P v (a) = 1 iff <v,a> = 0 Or function P v : P v (a,m)=m iff <v,a>=0, else ⊥ General enough to capture several applications e.g. Anonymous IBE from Inner-Product PE (with attached messages) over attributes in Z N x Z N For encrypting to identity id use attribute a id = (1,id). SK id is the test key for predicate with v id = (-id,1). Anonymity: attribute remains hidden if no matching SK given

  50. Inner-product Predicate

  51. Inner-product Predicate Can be used to get Hidden Vector matching predicate

  52. Inner-product Predicate Can be used to get Hidden Vector matching predicate Map a given pattern vector of length m to a vector v in ( Z N ) 2m by mapping * to (0,0) and a to (1,a).

  53. Inner-product Predicate Can be used to get Hidden Vector matching predicate Map a given pattern vector of length m to a vector v in ( Z N ) 2m by mapping * to (0,0) and a to (1,a). Map the hidden attribute vector u to a vector a by mapping each co-ordinate u i to ( -r i .u i , r i ), for random r i

  54. Inner-product Predicate Can be used to get Hidden Vector matching predicate Map a given pattern vector of length m to a vector v in ( Z N ) 2m by mapping * to (0,0) and a to (1,a). Map the hidden attribute vector u to a vector a by mapping each co-ordinate u i to ( -r i .u i , r i ), for random r i If pattern matches u, then <v,a>=0

  55. Inner-product Predicate Can be used to get Hidden Vector matching predicate Map a given pattern vector of length m to a vector v in ( Z N ) 2m by mapping * to (0,0) and a to (1,a). Map the hidden attribute vector u to a vector a by mapping each co-ordinate u i to ( -r i .u i , r i ), for random r i If pattern matches u, then <v,a>=0 Random r i to avoid cancelations while summing, so that if pattern does not match, w.h.p <v,a> ≠ 0

  56. Inner-product Predicate Can be used to get Hidden Vector matching predicate Map a given pattern vector of length m to a vector v in ( Z N ) 2m by mapping * to (0,0) and a to (1,a). Map the hidden attribute vector u to a vector a by mapping each co-ordinate u i to ( -r i .u i , r i ), for random r i If pattern matches u, then <v,a>=0 Random r i to avoid cancelations while summing, so that if pattern does not match, w.h.p <v,a> ≠ 0 Can support * in both the pattern and the hidden vector

  57. Inner-product Predicate

  58. Inner-product Predicate Other predicates implied:

  59. Inner-product Predicate Other predicates implied: Polynomials: P v can be a polynomial (represented as a vector of co-efficients) and attribute a the value (represented as the vector <1,a,a 2 ,...,a d >) at which P v is evaluated, or vice versa

Recommend


More recommend