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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend