Presentation is loading. Please wait.

Presentation is loading. Please wait.

How to Update Documents Verifiably in Searchable Symmetric Encryption Kaoru Kurosawa and Yasuhiro Ohtaki Ibaraki University, Japan.

Similar presentations


Presentation on theme: "How to Update Documents Verifiably in Searchable Symmetric Encryption Kaoru Kurosawa and Yasuhiro Ohtaki Ibaraki University, Japan."— Presentation transcript:

1 How to Update Documents Verifiably in Searchable Symmetric Encryption Kaoru Kurosawa and Yasuhiro Ohtaki Ibaraki University, Japan

2 Outline (1) Introduction (2) Our (previous) verifiable SSE scheme (3) Extend it to a dynamic SSE scheme (but not yet fully verifiable) (4) Verifiable dynamic SSE scheme (5) Summary

3 A Searchable Symmetric Encryption (SSE) scheme Consists of a store phase and a search phase Suppose that we have 5 documents and 3 keywords. keywordDocuments AustinD 1, D 3, D 5 BostonD 2, D 4 WashingtonD 1, D 2, D 4

4 In the store phase, A client stores encrypted files (or documents) and an index I (in a encrypted form) on a server. Client Server E(D 1 ), ⋯, E(D 5 ), I

5 In the search phase, the client sends an encrypted keyword to the server. Client Server E(Austin)

6 The server somehow returns the encrypted files E(D 1 ), E(D 3 ), E(D 5 ) which contain the keyword. Client Server E(D 1 ), E(D 3 ), E(D 5 )

7 So the client can retrieve the encrypted files which contain a specific keyword, keeping the keyword and document secret to the server. Client Server E(D 1 ), E(D 3 ), E(D 5 ) E(Austin) E(D 1 ), ⋯, E(D 5 ), I

8 By Passive Attack A malicious server breaks the privacy. She tries to find the keyword and the documents. Client Server E(D 1 ), E(D 3 ), E(D 5 ) Malicious E(Austin)

9 The security against passive attacks has been studied by several researchers. Curtmola, Garay, Kamara and Ostrovsky showed a rigorous definition of security against passive attacks. They also gave a scheme which satisfies their definition.

10 By Active Attack A malicious server breaks the reliability. She tries to forge/delete some files or replace E(D 1 ) with another (valid) E(D 2 ). Client Server E(D 1 ), E(D 3 ), E(D 5 ) E(D 2 ) Malicious E(Austin)

11 The security against active attacks has been studied by Kurosawa et al. (2011) They showed a definition of security against active attacks. They proposed a verifiable SSE scheme – the client can detect any cheating behavior of malicious server. – UC-secure

12 Dynamic SSE scheme Kamara et al. showed a dynamic SSE scheme. – the client can add and delete documents. – secure against adaptive chosen keyword attacks. Subsequently, they showed a parallel and dynamic SSE scheme. However, these dynamic schemes are not verifiable.

13 Our contribution VerifiabilityDynamism Curtmola et al.XX Kurosawa et al.OX Kamara et al.XO This paperOO Comparison with Previous Works

14 Outline (1)Introduction (2)Our (previous) verifiable SSE scheme (3)Extend it to a dynamic SSE scheme (but not yet fully verifiable) (4)Verifiable dynamic SSE scheme (5)Summary

15 Contents of the encrypted index labeldocument IDAuthenticator t(Austin)(1, 3, 5)tag Austin =MAC( t(Austin), (C 1, C 3, C 5 ) ) t(Boston)(2, 4)tag Boston =MAC( t(Boston), (C 2, C 4 ) ) t(Washington)(1, 2, 4)tag Washington =MAC( t(Washington), (C 1, C 2, C 4 ) ) t() : some trapdoor function MAC() : some Message Authentication Code keywordDocuments AustinD 1, D 3, D 5 BostonD 2, D 4 WashingtonD 1, D 2, D 4

16 In the search phase, The server receives t(keyword) and output C(keyword) tag keyword C(Austin) = { C 1, C 3, C 5 } tag Austin Search t(Austin) C= { C 1, ⋯, C N }, I and send them to the client.

17 Verify algorithm Accept iff MAC(t(Austin), C 1, C 3, C 5 ) = tag* C 1, C 3, C 5, tag* Accept / Reject Verify K t(Austin) C 1, C 3, C 5 tag* t(Austin)

18 Outline (1)Introduction (2)Our (previous) verifiable SSE scheme (3)Extend it to a dynamic SSE scheme (but not yet fully verifiable) (4)Verifiable dynamic SSE scheme (5)Summary

19 Extending the previous scheme When we consider extending our previous scheme to a dynamic scheme, we noticed that the scheme cannot modify documents efficiently.

20 Suppose the client wants to modify C 1 to C′ 1 The client must store C′ 1 and two updated authenticators to the server. If C 1 includes more keywords, then the client must update more authenticators. labeldocument IDAuthenticator t(Austin)(1, 3, 5)tag Austin =MAC( t(Austin), (C 1, C 3, C 5 ) ) t(Boston)(2, 4)tag Boston =MAC( t(Boston), (C 2, C 4 ) ) t(Washington)(1, 2, 4)tag Washington =MAC( t(Washington), (C 1, C 2, C 4 ) )

21 To update efficiently Authenticate (t(Austin), (1, 3, 5)) and each (i, C i ) separately. labeldoc IDAuthenticator for index t(Austin)(1, 3, 5) tag Austin =MAC( t(Austin), (1, 3, 5) ) t(Boston)(2, 4)tag Boston =MAC( t(Boston), (2, 4) ) t(Washington)(1, 2, 4) tag Washington =MAC( t(Washington), (1, 2, 4) ) Authenticator for Document 1 MAC(1, C 1 ) 2MAC(2, C 2 ) 3MAC(3, C 3 ) 4MAC(4, C 4 ) ……

22 To update C 1 to C′ 1 the client has only to store just one authenticator on (1, C′ 1 ) no matter how many keywords are included in C 1. Authenticator for Document 1 MAC(1, C' 1 ) 2MAC(2, C 2 ) 3MAC(3, C 3 ) 4MAC(4, C 4 ) …… labeldoc IDAuthenticator for index t(Austin)(1, 3, 5) tag Austin =MAC( t(Austin), (1, 3, 5) ) t(Boston)(2, 4)tag Boston =MAC( t(Boston), (2, 4) ) t(Washington)(1, 2, 4) tag Washington =MAC( t(Washington), (1, 2, 4) )

23 Deletion and Addition To delete a document C 2 the client runs update with a special symbol C′ 2 = delete. To add a new document D 6 which includes Austin, the client updates the authenticator tag Austin = MAC( t(Austin), (1, 3, 5) ) to tag' Austin = MAC( t(Austin), (1, 3, 5, 6) ).

24 However, This scheme is vulnerable against replay attack. A malicious server may return old (1, C 1, MAC(1,C 1 ) ) instead of the latest ( 1, C’ 1, MAC(1,C’ 1 ) ). Client Server tag Austin, (1, C' 1, x' 1 ), (3, C 3, x 3 ), (5, C 5, x 5 ) Malicious (1, C 1, x 1 )

25 So the problem is How to timestamp on the current/updated (i, C i ) How to timestamp on the current/updated ( label Austin, (1, 3, 5))

26 We solved this problem by using an authentication scheme which posses the timestamp functionality. – Merkle hash tree – Authenticated skip list – RSA accumulator

27 These schemes Allows one to hash a set of inputs E= { x 1,x 2,..., x n } into one short accumulation value Acc(E). Infeasible to find a set E' such that Acc(E) = Acc(E'), E≠E'. Able to construct a "witness"  j that a given input x j was incorporated into Acc(E).

28 RSA accumulator Let f be a function randomly chosen from a two-universal function family F = {f a : {0,1}   {0,1} }. For any y {0,1}, we can compute a prime x {0,1}  such that f(x)=y by sampling O(  ) times with overwhelming probability.

29 RSA accumulator Let p=2p'+1 and q=2q'+1 be two large primes such that p' and q' are also primes and |pq|>3. Let N=pq. Let QR N ={a | x 2 mod N for some x Z * N }. Then QR N is a cyclic group of size (p-1)(q-1)/4. Let g be a generator of QR N.

30 RSA accumulator For a set E={y 1, y 2,..., y n } with y i {0,1}  RSA accumulator works as follows: – For each y i, Alice chooses a prime x i {0,1}  randomly. Let prime(y i ) denote such a prime x i. x i = prime(y i ) – Alice computes accumulated value of set E as Acc(E) = g mod N and sends Acc(E) to Bob. x 1 x 2 … x n

31 RSA accumulator Later, Alice proves that y j E to Bob as follows : – She computes π j = g mod N x j = prime(y i ) and sends π j and x j to Bob – Bob verifies that Acc(E) = π j mod N x 1 x 2 … x j-1 x j+1 … x n xjxj

32 To time stamp in our scheme We apply the RSA accumulator to the sets E c = { (i, C i ) | i=1, …, n} E I = { (label i, j, [index i ] j ) | i=1,…,m, j=1,…,n} and compute their accumulated values A C = Acc( E C ) A I = Acc( E I ) [x] j : j-th bit of x

33 Update and Verification The client updates A C each time when he modifies or deletes a document. He also updates A I each time when he adds a document. In the search phase, the client checks whether the server returned the valid latest ciphertexts, based on A C and A I.

34 Outline (1)Introduction (2)Our (previous) verifiable SSE schemes (3)Extend it to a dynamic SSE scheme (but not yet fully verifiable) (4)Verifiable dynamic SSE scheme (5)Summary

35 Key generation The client first generates set of keys and keeps them secret. KeKe K 0, K 1 key of SKE keys of PRF KeyGen K

36 Store phase: File encryption D1D1 D2D2 D3D3 D4D4 D5D5 C1C1 C2C2 C3C3 C4C4 C5C5 EEEEE KeKe The client first encrypts each document.

37 Store phase: Index encryption Washington Baltimore Austin 12345 110101 201010 311010 The plain index is an 5x3 binary matrix where e i,j =1 if keyword i is contained in D j, 0 otherwise D1D1 D2D2 D3D3 D4D4 D5D5

38 Store phase: Index encryption index Austin PRF label Austin 12345 110101 201010 311010 Austin Baltimore Washington 10101 pad Austin first 5 bits first 128 bits K0K0 K1K1

39 Store phase: Index encryption label Austin label Baltimore label Washington 12345 110101 201010 311010 Austin Baltimore Washington K0K0 K1K1 index Austin index Baltimore index Washington

40 Store phase: Compute A C x 1 = prime( H(1, H(C 1 )) ) x 2 = prime( H(2, H(C 2 )) ) x 3 = prime( H(3, H(C 3 )) ) x 4 = prime( H(4, H(C 4 )) ) x 5 = prime( H(5, H(C 5 )) ) The client map each document status into a prime number and computes A C A C = g mod N x 1 x 2 x 3 x 4 x 5 H() : collision-resistant hash function

41 12345 101110 Store phase: Compute A I The client also maps each element of the encrypted index to a prime number. p 1,1 = prime( H(label Austin, 1, 0)) p 1,2 = prime( H(label Austin, 2, 1)) p 1,3 = prime( H(label Austin, 3, 1)) p 1,4 = prime( H(label Austin, 4, 1)) p 1,5 = prime( H(label Austin, 5, 0)) Document ID index Austin

42 Store phase: Compute A I Do same for all encrypted index element. p 1,1 = prime( H(label Austin, 1, 1)) p 1,2 = prime(H(label Austin, 1, 2, 0)) p 1,3 = prime(H(label Austin, 1, 3, 1)) p 1,4 = prime(H(label Austin, 1, 4, 0)) p 1,5 = prime(H(label Austin, 1, 5, 1)) p 2,1 = prime( H(label Baltimore, 1, 0)) p 2,2 = prime( H(label Baltimore, 2, 0)) p 2,3 = prime(H(label Baltimore, 1, 3, 1)) p 2,4 = prime(H(label Baltimore, 1, 4, 0)) p 2,5 = prime(H(label Baltimore, 1, 5, 1)) p 3,1 = prime( H(label Washington, 1, 1)) p 3,2 = prime( H(label Washington, 2, 0)) p 3,3 = prime( H(label Washington, 3, 1)) p 3,4 = prime( H(label Washington, 4, 0)) p 3,5 = prime( H(label Washington, 5, 0)) 12345 101110 210011 310100

43 Store phase: Compute A I The client computes A I A I = g mod N p 1,1 p 1,2...p 1,5 p 2,1...p 2,5 p 3,1...p 3,5 The client keeps n(=5), A I and A c.

44 Store phase: Store data C= I= (label Austin, index Austin ) (label Baltimore, index Baltimore ) (label Wasington, index Washington ) (1, C 1 ) (2, C 2 ) (3, C 3 ) (4, C 4 ) (5, C 5 ) Client Server

45 Search phase: Keyword encryption PRF label Austin Austin pad Austin first 5 bits first 128 bits K0K0 K1K1 Search Keyword The client computes the label and pad for the keyword. Server

46 Search phase: Find C(Austin) index Austin PAD Austin label Austin (label Austin, index Austin ) (label Baltimore, index Baltimore ) (label Wasington, index Washington ) C(Austin) = (1, C 1 ), (3, C 3 ), (5, C 5 ) 12345 10101 index Austin (1, C 1 ) (2, C 2 ) (3, C 3 ) (4, C 4 ) (5, C 5 )

47 Search phase: Compute  C index Austin  C = g mod N x 2 x 4 PAD Austin label Austin 12345 10101 index Austin (1, C 1 ) (2, C 2 ) (3, C 3 ) (4, C 4 ) (5, C 5 ) x 2 = prime(H(2, H(C 2 ))) x 4 = prime(H(4, H(C 4 ))) (label Austin, index Austin ) (label Baltimore, index Baltimore ) (label Wasington, index Washington )

48 PRF prime(y) y prime selector PRF prime(y) y prime selector How can the server compute prime() locally? prime(y) should be a prime number chosen randomly by the client. In our scheme, we use PRF with a key K a chosen randomly by the client. KaKa client server

49 Search phase : Compute   PAD Austin label Austin   =g mod N p 2,1...p 2,5 p 3,1...p 3,5 p 2,1 = prime( H(label Baltimore, 1, 0)) p 2,2 = prime( H(label Baltimore, 2, 0)) p 2,3 = prime(H(label Baltimore, 1, 3, 1)) p 2,4 = prime(H(label Baltimore, 1, 4, 0)) p 2,5 = prime(H(label Baltimore, 1, 5, 1)) p 3,1 = prime( H(label Washington, 1, 1)) p 3,2 = prime( H(label Washington, 2, 0)) p 3,3 = prime( H(label Washington, 3, 1)) p 3,4 = prime( H(label Washington, 4, 1)) p 3,5 = prime( H(label Washington, 5, 0)) (label Austin, index Austin ) (label Baltimore, index Baltimore ) (label Wasington, index Washington )

50 Search phase : Sending the results Client Server PAD Austin label Austin (1, C 1 ), (3, C 3 ), (5, C 5 ),  C,  I The server send the encrypted documents and two witnesses to the client.

51 Search phase: Verify (1/4) AIAI ACAC label Austin (1, C 1,), (3, C 3 ), (5, C 5 ), π C, π I PAD Austin 12345 10101 index Austin 01110 The client first reconstructs the encrypted index from the encrypted documents.

52 Search phase: Verify (2/4) AIAI p 1,1 = prime(H(label Austin, 1, 0)) p 1,2 = prime(H(label Austin, 2, 1)) p 1,3 = prime(H(label Austin, 3, 1)) p 1,4 = prime(H(label Austin, 4, 1)) p 1,5 = prime(H(label Austin, 5, 0)) ACAC label Austin (1, C 1,), (3, C 3 ), (5, C 5 ), π C, π I PAD Austin index Austin 01110 Then he can compute the primes for the index elements related to the keyword.

53 Search phase: Verify (3/4) AIAI A I =  I mod N p 1,1...p 1,5 p 1,1 = prime(H(label Austin, 1, 1)) p 1,2 = prime(H(label Austin, 2, 0)) p 1,3 = prime(H(label Austin, 3, 1)) p 1,4 = prime(H(label Austin, 4, 0)) p 1,5 = prime(H(label Austin, 5, 1)) ACAC label Austin (1, C 1,), (3, C 3 ), (5, C 5 ), π C, π I PAD Austin index Austin 01110

54 Search phase: Verify (4/4) x 1 =prime(H(1, H(C 1 ))) x 3 =prime(H(3, H(C 3 ))) x 5 =prime(H(5, H(C 5 ))) (1, C 1,), (3, C 3 ), (5, C 5 ), π C, π I A C = π C mod N x1x3x5x1x3x5 AIAI ACAC label Austin PAD Austin

55 Search phase : Decrypt If all the checks succeed, then the client decrypts and outputs the documents. otherwise outputs reject. (1, C 1,), (3, C 3 ), (5, C 5 ), π C, π I D1D1 D3D3 D5D5 E -1 KeKe

56 How to modify C 2 to C′ 2 (1/5) Client Server the client sends (2, C' 2 ) to the server. (2, C' 2 )

57 How to modify C 2 to C′ 2 (2/5) Server the server computes π C. π C = g mod N x1x3x4x5x1x3x4x5 x 1 = prime(H(1, H(C 1 ))) x 3 = prime(H(3, H(C 3 ))) x 4 = prime(H(4, H(C 4 ))) x 5 = prime(H(5, H(C 5 ))) Client (2, C' 2 )

58 How to modify C 2 to C′ 2 (3/5) Server (2, C' 2 ) the server returns π C and H(C 2 ) and then updates (2, C 2 ) to (2, C′ 2 ). π C, H(C 2 ) Client π C = g mod N x1x3x4x5x1x3x4x5

59 How to modify C 2 to C′ 2 (4/5) Server the client verifies the latest C 2 the server had Client π C mod N x2x2 x 2 = prime(H(2, H(C 2 ))) (2, C' 2 ) π C, H(C 2 ) ACAC

60 How to modify C 2 to C′ 2 (5/5) Server and then updates A c to A' C Client A' C = π C mod N = g mod N x' 2 (2, C' 2 ) π C, H(C 2 ) A' C x' 2 = prime(H(2, H(C' 2 ))) x 1 x' 2 x 3 x 4 x 5

61 How to delete C 2 Server Do the modify with C' 2 = delete. Client A' C = π C mod N x' 2 (2, delete) π C, H(C 2 ) A' C x' 2 = prime(H(2, H(delete)))

62 To add a new document D 6 (1/5) C 6 = E Ke (D 6 ) 12345 6 1101011 2010101 3110100 Washington Baltimore Austin x6x6 A' C A' C = A C mod N x 6 = prime(H(6, H(C 6 ))) index The client encrypts the document and assign a new prime x 6 and updates A C to A' C.

63 To add a new document D 6 (2/5) 12345 6 1101011 2010101 3110100 Washington Baltimore Austin 6 0 1 0 index PRF K1K1 6th bit PAD Austin The client also encrypts the index elements related to the new document.

64 To add a new document D 6 (3/5) 12345 6 1101011 2010101 3110100 Washington Baltimore Austin p 1,6 = prime(H( label Austin, 6, 0)) p 2,6 = prime(H( label Baltimore, 6, 1)) p 3,6 = prime(H( label Washington, 6, 0)) A I ' = A I mod N p 1,6 p 2,6 p 3,6 6 0 1 0 index PRF K1K1 6th bit PAD Austin The client updates A I to A' I update n=5 to n=6

65 To add a new document D 6 (4/5) 6 0 1 0 Server Client (6, C 6 ) 12345 1 01110 2 10011 3 10100 index Finally the client sends the encrypted document and the corresponding index.

66 12345 6 1 01110 0 2 10011 1 3 10100 0 To add a new document D 6 (5/5) 6 0 1 0 Server Client (6, C 6 ) index The server stores the encrypted document and append the index as the 6 th -column.

67 Security The proposed scheme is UC-secure against non-adaptive adversaries. Assumptions – the strong RSA assumption – SKE is CPA-secure – PRF is a pseudo-random function – H is a collision-resistant hash function Please refer to the paper for the details.

68 Efficiency searchmodifydeleteadd communication overhead n+O( )O( ) m computation cost of the Server O(nm)O(n) O(m) computation cost of the Client O(n) O(  ) O(1)O(m)  security parameter n : number of Documents m : number of Keywords

69 Summary Proposed a Verifiable Dynamic SSE scheme Construction based on RSA Accumulator UC-Secure

70 Thank you


Download ppt "How to Update Documents Verifiably in Searchable Symmetric Encryption Kaoru Kurosawa and Yasuhiro Ohtaki Ibaraki University, Japan."

Similar presentations


Ads by Google