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

searching on testing encrypted data
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Searching on/Testing Encrypted Data

Lecture 23

slide-2
SLIDE 2

Searchable Encryption

slide-3
SLIDE 3

Searchable Encryption

A test key Tw that allows one to test if DecSK(C) = w

slide-4
SLIDE 4

Searchable Encryption

A test key Tw that allows one to test if DecSK(C) = w No other information about the message should be leaked

slide-5
SLIDE 5

Searchable Encryption

A test key Tw that allows one to test if DecSK(C) = w No other information about the message should be leaked w from a small dictionary of “keywords”

slide-6
SLIDE 6

Searchable Encryption

A test key Tw that allows one to test if DecSK(C) = w No other information about the message should be leaked w from a small dictionary of “keywords” Public-Key Encryption with Keyword Search (PEKS)

slide-7
SLIDE 7

Searchable Encryption

A test key Tw that allows one to test if DecSK(C) = w No other information about the message should be leaked w from a small dictionary of “keywords” Public-Key Encryption with Keyword Search (PEKS) e.g. Application: delegating e-mail filtering

slide-8
SLIDE 8

Searchable Encryption

A test key Tw that allows one to test if DecSK(C) = w No other information about the message should be leaked w from a small dictionary of “keywords” Public-Key Encryption with Keyword Search (PEKS) e.g. Application: delegating e-mail filtering Sender attaches a list of (searchably) encrypted keywords to the (normally encrypted) mail. Receiver hands the mail-server test keys for keywords of its choice. Mail-server filters mails by checking for keywords and can forward them appropriately.

slide-9
SLIDE 9

Searchable Encryption

slide-10
SLIDE 10

Searchable Encryption

Components: (PK,SK)←KeyGen, Tw←TestKeyGen(SK,w), EncPK(w), DecSK(C) and TestTw(C)

slide-11
SLIDE 11

Searchable Encryption

Components: (PK,SK)←KeyGen, Tw←TestKeyGen(SK,w), EncPK(w), DecSK(C) and TestTw(C) Correctness: For all (possibly adversarially chosen) words w, for C←EncPK(w), we have DecSK(C) = w and TestTw(C)=1. For any other (adversarially chosen) word w’, TestTw’(C)=0.

slide-12
SLIDE 12

Searchable Encryption

Components: (PK,SK)←KeyGen, Tw←TestKeyGen(SK,w), EncPK(w), DecSK(C) and TestTw(C) Correctness: For all (possibly adversarially chosen) words w, for C←EncPK(w), we have DecSK(C) = w and TestTw(C)=1. For any other (adversarially chosen) word w’, TestTw’(C)=0. May require perfect or statistical correctness. Or, should hold w.h.p against computationally bounded environments choosing w, w’ (after seeing PK, and for w’, possibly after seeing C, Tw also).

slide-13
SLIDE 13

Searchable Encryption

Components: (PK,SK)←KeyGen, Tw←TestKeyGen(SK,w), EncPK(w), DecSK(C) and TestTw(C) Correctness: For all (possibly adversarially chosen) words w, for C←EncPK(w), we have DecSK(C) = w and TestTw(C)=1. For any other (adversarially chosen) word w’, TestTw’(C)=0. May require perfect or statistical correctness. Or, should hold w.h.p against computationally bounded environments choosing w, w’ (after seeing PK, and for w’, possibly after seeing C, Tw also). Secrecy: CPA or CCA security against adversary with oracle access to TestKeyGen(SK, . ), as long as adversary doesn’ t query w0,w1

slide-14
SLIDE 14

Trivial Solution: using PKE

slide-15
SLIDE 15

Trivial Solution: using PKE

If the dictionary is small, (PK,SK) = { (PKw,SKw) | w in dictionary}

slide-16
SLIDE 16

Trivial Solution: using PKE

If the dictionary is small, (PK,SK) = { (PKw,SKw) | w in dictionary} To encrypt a keyword (or, in fact, a list of keywords), EncPK(w)= <EncPK1(0), ..., EncPKw(1), ..., EncPKn(0)>

slide-17
SLIDE 17

Trivial Solution: using PKE

If the dictionary is small, (PK,SK) = { (PKw,SKw) | w in dictionary} To encrypt a keyword (or, in fact, a list of keywords), EncPK(w)= <EncPK1(0), ..., EncPKw(1), ..., EncPKn(0)> TestKeyGen(SK,w) = SKw

slide-18
SLIDE 18

Trivial Solution: using PKE

If the dictionary is small, (PK,SK) = { (PKw,SKw) | w in dictionary} To encrypt a keyword (or, in fact, a list of keywords), EncPK(w)= <EncPK1(0), ..., EncPKw(1), ..., EncPKn(0)> TestKeyGen(SK,w) = SKw Keys and ciphertexts proportional to the dictionary size

slide-19
SLIDE 19

Trivial Solution: using IBE

slide-20
SLIDE 20

Derive (PKw,SKw) as keys in an IBE scheme for identity w

Trivial Solution: using IBE

slide-21
SLIDE 21

Derive (PKw,SKw) as keys in an IBE scheme for identity w (PK,SK) = (MPK,MSK) (master keys) for the IBE

Trivial Solution: using IBE

slide-22
SLIDE 22

Derive (PKw,SKw) as keys in an IBE scheme for identity w (PK,SK) = (MPK,MSK) (master keys) for the IBE To encrypt a keyword (or, in fact, a list of keywords), EncPK(w)= <IBEncPK(0;id=0), ..., IBEncPK(1;id=w), ..., IBEncPK(0;id=n)>

Trivial Solution: using IBE

slide-23
SLIDE 23

Derive (PKw,SKw) as keys in an IBE scheme for identity w (PK,SK) = (MPK,MSK) (master keys) for the IBE To encrypt a keyword (or, in fact, a list of keywords), EncPK(w)= <IBEncPK(0;id=0), ..., IBEncPK(1;id=w), ..., IBEncPK(0;id=n)> TestKeyGen(SK,w) = SKw, the secret-key for id=w

Trivial Solution: using IBE

slide-24
SLIDE 24

Derive (PKw,SKw) as keys in an IBE scheme for identity w (PK,SK) = (MPK,MSK) (master keys) for the IBE To encrypt a keyword (or, in fact, a list of keywords), EncPK(w)= <IBEncPK(0;id=0), ..., IBEncPK(1;id=w), ..., IBEncPK(0;id=n)> TestKeyGen(SK,w) = SKw, the secret-key for id=w Compact keys, but ciphertext is still long

Trivial Solution: using IBE

slide-25
SLIDE 25

PEKS from Anonymous IBE

slide-26
SLIDE 26

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w)

slide-27
SLIDE 27

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w) Secure?

slide-28
SLIDE 28

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w) Secure? IBE ciphertexts may reveal id (can have the id in the clear)

slide-29
SLIDE 29

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w) Secure? IBE ciphertexts may reveal id (can have the id in the clear) Anonymous IBE

slide-30
SLIDE 30

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w) Secure? IBE ciphertexts may reveal id (can have the id in the clear) Anonymous IBE Ciphertext does not reveal id used, unless has key for that id

slide-31
SLIDE 31

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w) Secure? IBE ciphertexts may reveal id (can have the id in the clear) Anonymous IBE Ciphertext does not reveal id used, unless has key for that id

  • cf. Anonymous (or key-private) encryption: ciphertext does not

reveal the PK used for encryption (unless SK known)

slide-32
SLIDE 32

PEKS from Anonymous IBE

Suppose, to encrypt a keyword EncPK(w)= IBEncPK(1;id=w) Secure? IBE ciphertexts may reveal id (can have the id in the clear) Anonymous IBE Ciphertext does not reveal id used, unless has key for that id

  • cf. Anonymous (or key-private) encryption: ciphertext does not

reveal the PK used for encryption (unless SK known) Consistency issue: IBE makes no guarantees about what the output is when decrypted using a wrong id’ s key (except that it reveals nothing about the correct plaintext)

slide-33
SLIDE 33

PEKS from Anonymous IBE

slide-34
SLIDE 34

PEKS from Anonymous IBE

Consistency issue: IBE makes no guarantees about what the output is when decrypted using a wrong id’ s key (except that it reveals nothing about the correct plaintext)

slide-35
SLIDE 35

PEKS from Anonymous IBE

Consistency issue: IBE makes no guarantees about what the output is when decrypted using a wrong id’ s key (except that it reveals nothing about the correct plaintext) To encrypt a keyword, EncPK(w)= (IBEncPK(r;id=w),r) for a random message r (|r|=k)

slide-36
SLIDE 36

PEKS from Anonymous IBE

Consistency issue: IBE makes no guarantees about what the output is when decrypted using a wrong id’ s key (except that it reveals nothing about the correct plaintext) To encrypt a keyword, EncPK(w)= (IBEncPK(r;id=w),r) for a random message r (|r|=k) If decrypting IBEncPK(r;id=w), for a random r, using a wrong id’ s key gives r with significant probability, then breaks IBE security

slide-37
SLIDE 37

PEKS from Anonymous IBE

Consistency issue: IBE makes no guarantees about what the output is when decrypted using a wrong id’ s key (except that it reveals nothing about the correct plaintext) To encrypt a keyword, EncPK(w)= (IBEncPK(r;id=w),r) for a random message r (|r|=k) If decrypting IBEncPK(r;id=w), for a random r, using a wrong id’ s key gives r with significant probability, then breaks IBE security Breaking IBE’ s security: give out r0,r1; decrypt challenge using the wrong id’ s key; probability of getting r0 when encryption is of r1 is 2-k, but is significant when it is of r0

slide-38
SLIDE 38

PEKS from Anonymous IBE

Consistency issue: IBE makes no guarantees about what the output is when decrypted using a wrong id’ s key (except that it reveals nothing about the correct plaintext) To encrypt a keyword, EncPK(w)= (IBEncPK(r;id=w),r) for a random message r (|r|=k) If decrypting IBEncPK(r;id=w), for a random r, using a wrong id’ s key gives r with significant probability, then breaks IBE security Breaking IBE’ s security: give out r0,r1; decrypt challenge using the wrong id’ s key; probability of getting r0 when encryption is of r1 is 2-k, but is significant when it is of r0 Or add such “decryption recognition” directly to Anonymous IBE

slide-39
SLIDE 39

Predicate Encryption

slide-40
SLIDE 40

Predicate Encryption

Test for properties of encrypted attributes

slide-41
SLIDE 41

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1

slide-42
SLIDE 42

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1

TP is the key to test for property P

slide-43
SLIDE 43

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(C) = P(a), for a function P (e.g. P(a,m)=m if P’(a)=1, else ⟂)

TP is the key to test for property P

slide-44
SLIDE 44

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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

TP is the key to test for property P

slide-45
SLIDE 45

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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?)

TP is the key to test for property P

slide-46
SLIDE 46

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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

TP is the key to test for property P

slide-47
SLIDE 47

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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)={(PKP,SKP) | P in the predicate family}. Ciphertext has EncPKp(P(a)) for each P.

TP is the key to test for property P

slide-48
SLIDE 48

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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)={(PKP,SKP) | P in the predicate family}. Ciphertext has EncPKp(P(a)) for each P. Can support functions instead of predicates

TP is the key to test for property P

slide-49
SLIDE 49

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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)={(PKP,SKP) | P in the predicate family}. Ciphertext has EncPKp(P(a)) for each P. Can support functions instead of predicates e.g. Can attach a message to be revealed if Test positive

TP is the key to test for property P

slide-50
SLIDE 50

Predicate Encryption

Test for properties of encrypted attributes For C←EncPK(a), we require that boolean TestTp(C)=1 iff P(a)=1 Or TestTp(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)={(PKP,SKP) | P in the predicate family}. Ciphertext has EncPKp(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.

TP is the key to test for property P

slide-51
SLIDE 51

Predicate Encryption

slide-52
SLIDE 52

Predicate Encryption

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

slide-53
SLIDE 53

Predicate Encryption

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

slide-54
SLIDE 54

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

slide-55
SLIDE 55

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.

slide-56
SLIDE 56

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

slide-57
SLIDE 57

Conjunctive Predicates

slide-58
SLIDE 58

Conjunctive Predicates

Predicates of the form (ϕ1(a1) AND .... AND ϕn(am))

slide-59
SLIDE 59

Conjunctive Predicates

Predicates of the form (ϕ1(a1) AND .... AND ϕn(am)) Should not reveal which clauses were not satisfied, if any

slide-60
SLIDE 60

Conjunctive Predicates

Predicates of the form (ϕ1(a1) AND .... AND ϕn(am)) 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?)

slide-61
SLIDE 61

Conjunctive Predicates

Predicates of the form (ϕ1(a1) AND .... AND ϕn(am)) 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

slide-62
SLIDE 62

Conjunctive Predicates

Predicates of the form (ϕ1(a1) AND .... AND ϕn(am)) 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, ai ≥ ri

slide-63
SLIDE 63

Conjunctive Predicates

Predicates of the form (ϕ1(a1) AND .... AND ϕn(am)) 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, ai ≥ ri Check if binary [Xaij] defined as Xaij = 1 iff j ≤ ai, matches with [Trij] defined as Trij= 1 if j ≤ ri, and * otherwise

slide-64
SLIDE 64

Conjunctive Predicates

slide-65
SLIDE 65

Conjunctive Predicates

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

slide-66
SLIDE 66

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

slide-67
SLIDE 67

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 Xa defined as Xai = 1 iff a=i, matches with TS defined as TSi= 0 if i∉S, and * otherwise

slide-68
SLIDE 68

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 Xa defined as Xai = 1 iff a=i, matches with TS defined as TSi= 0 if i∉S, and * otherwise Key and ciphertext proportional to size of universe [1,n]

slide-69
SLIDE 69

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 Xa defined as Xai = 1 iff a=i, matches with TS defined as TSi= 0 if i∉S, and * otherwise Key and ciphertext proportional to size of universe [1,n] Can extend to conjunction with other predicates

slide-70
SLIDE 70

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 Xa defined as Xai = 1 iff a=i, matches with TS defined as TSi= 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?

slide-71
SLIDE 71

Bloom Filters

slide-72
SLIDE 72

Bloom Filters

Elements x in the universe mapped to n-bit binary vectors h(x)

slide-73
SLIDE 73

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)

slide-74
SLIDE 74

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

slide-75
SLIDE 75

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

slide-76
SLIDE 76

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

  • f other values x’
slide-77
SLIDE 77

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

  • f 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|

slide-78
SLIDE 78

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

  • f 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”

slide-79
SLIDE 79

Set-Membership Predicate with Bloom Filters

slide-80
SLIDE 80

Set-Membership Predicate with Bloom Filters

To check a ∈ S ⊆ U, where the universe U can be large

slide-81
SLIDE 81

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)

slide-82
SLIDE 82

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

slide-83
SLIDE 83

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: Ta defined as: Tai = 1 if h(a)i = 1, else *

slide-84
SLIDE 84

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: Ta defined as: Tai = 1 if h(a)i = 1, else * a encrypted: TS defined as: TSi= 0 if H(S)=0, else *

slide-85
SLIDE 85

Inner-product Predicate

slide-86
SLIDE 86

Inner-product Predicate

Attribute a is a vector. Predicate Pv is also specified by a vector v: Pv(a) = 1 iff <v,a> = 0

slide-87
SLIDE 87

Inner-product Predicate

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

slide-88
SLIDE 88

Inner-product Predicate

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

slide-89
SLIDE 89

Inner-product Predicate

Attribute a is a vector. Predicate Pv is also specified by a vector v: Pv(a) = 1 iff <v,a> = 0 Or function Pv : Pv(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 ZN x ZN

slide-90
SLIDE 90

Inner-product Predicate

Attribute a is a vector. Predicate Pv is also specified by a vector v: Pv(a) = 1 iff <v,a> = 0 Or function Pv : Pv(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 ZN x ZN For encrypting to identity id use attribute aid = (1,id). SKid is the test key for predicate with vid = (-id,1). Anonymity: attribute remains hidden if no matching SK given

slide-91
SLIDE 91

Inner-product Predicate

slide-92
SLIDE 92

Inner-product Predicate

Can be used to get Hidden Vector matching predicate

slide-93
SLIDE 93

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 (ZN)2m by mapping * to (0,0) and a to (1,a).

slide-94
SLIDE 94

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 (ZN)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 ui to ( -ri.ui , ri ), for random ri

slide-95
SLIDE 95

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 (ZN)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 ui to ( -ri.ui , ri ), for random ri If pattern matches u, then <v,a>=0

slide-96
SLIDE 96

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 (ZN)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 ui to ( -ri.ui , ri ), for random ri If pattern matches u, then <v,a>=0 Random ri to avoid cancelations while summing, so that if pattern does not match, w.h.p <v,a>≠0

slide-97
SLIDE 97

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 (ZN)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 ui to ( -ri.ui , ri ), for random ri If pattern matches u, then <v,a>=0 Random ri 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

slide-98
SLIDE 98

Inner-product Predicate

slide-99
SLIDE 99

Inner-product Predicate

Other predicates implied:

slide-100
SLIDE 100

Inner-product Predicate

Other predicates implied: Polynomials: Pv can be a polynomial (represented as a vector

  • f co-efficients) and attribute a the value (represented as the

vector <1,a,a2,...,ad>) at which Pv is evaluated, or vice versa

slide-101
SLIDE 101

Inner-product Predicate

Other predicates implied: Polynomials: Pv can be a polynomial (represented as a vector

  • f co-efficients) and attribute a the value (represented as the

vector <1,a,a2,...,ad>) at which Pv is evaluated, or vice versa Disjunction (a1=v1) OR (a2=v2): polynomial (a1-v1) (a2-v2)

slide-102
SLIDE 102

Inner-product Predicate

Other predicates implied: Polynomials: Pv can be a polynomial (represented as a vector

  • f co-efficients) and attribute a the value (represented as the

vector <1,a,a2,...,ad>) at which Pv is evaluated, or vice versa Disjunction (a1=v1) OR (a2=v2): polynomial (a1-v1) (a2-v2) Conjunction (a1=v1) AND (a2=v2): r1(a1-v1) + r2(a2-v2)

slide-103
SLIDE 103

Inner-product Predicate

Other predicates implied: Polynomials: Pv can be a polynomial (represented as a vector

  • f co-efficients) and attribute a the value (represented as the

vector <1,a,a2,...,ad>) at which Pv is evaluated, or vice versa Disjunction (a1=v1) OR (a2=v2): polynomial (a1-v1) (a2-v2) Conjunction (a1=v1) AND (a2=v2): r1(a1-v1) + r2(a2-v2) Exact threshold: for A, V ⊆ [1,n], PV

,t(A) = 1 iff |A⋂V|=t

slide-104
SLIDE 104

Inner-product Predicate

Other predicates implied: Polynomials: Pv can be a polynomial (represented as a vector

  • f co-efficients) and attribute a the value (represented as the

vector <1,a,a2,...,ad>) at which Pv is evaluated, or vice versa Disjunction (a1=v1) OR (a2=v2): polynomial (a1-v1) (a2-v2) Conjunction (a1=v1) AND (a2=v2): r1(a1-v1) + r2(a2-v2) Exact threshold: for A, V ⊆ [1,n], PV

,t(A) = 1 iff |A⋂V|=t

Map V to v as v0=1 and for i=1 to n, vi = 1 iff i∈V . Map A to a vector a where a0 = -t, for i=1 to n, ai = 1 iff i∈A.

slide-105
SLIDE 105

Predicate/Functional Encryption

slide-106
SLIDE 106

Predicate/Functional Encryption

Constructions using bilinear pairings known [KSW08,LOSTW10,OT10]

slide-107
SLIDE 107

Predicate/Functional Encryption

Constructions using bilinear pairings known [KSW08,LOSTW10,OT10] Supports inner product predicates (and more)

slide-108
SLIDE 108

Predicate/Functional Encryption

Constructions using bilinear pairings known [KSW08,LOSTW10,OT10] Supports inner product predicates (and more) Can base security on Decision Linear assumption

slide-109
SLIDE 109

Predicate/Functional Encryption

Constructions using bilinear pairings known [KSW08,LOSTW10,OT10] Supports inner product predicates (and more) Can base security on Decision Linear assumption Can get CCA security

slide-110
SLIDE 110

Today

slide-111
SLIDE 111

Today

Searching on Encrypted Data

slide-112
SLIDE 112

Today

Searching on Encrypted Data To check if encrypted keyword matches a given keyword

slide-113
SLIDE 113

Today

Searching on Encrypted Data To check if encrypted keyword matches a given keyword From anonymous IBE

slide-114
SLIDE 114

Today

Searching on Encrypted Data To check if encrypted keyword matches a given keyword From anonymous IBE Predicate/Functional encryption

slide-115
SLIDE 115

Today

Searching on Encrypted Data To check if encrypted keyword matches a given keyword From anonymous IBE Predicate/Functional encryption To check if encrypted attributes satisfy a given predicate

slide-116
SLIDE 116

Today

Searching on Encrypted Data To check if encrypted keyword matches a given keyword From anonymous IBE Predicate/Functional encryption To check if encrypted attributes satisfy a given predicate Hidden vector matching, inner-product predicate, ...