outsourced storage proofs of retrievability
play

Outsourced Storage & Proofs of Retrievability Hovav Shacham, UC - PowerPoint PPT Presentation

Outsourced Storage & Proofs of Retrievability Hovav Shacham, UC San Diego Brent Waters, SRI International The Setting Client stores (long) file with server - Wants to be sure its actually there Motivation: online backup; SaaS


  1. Outsourced Storage & Proofs of Retrievability Hovav Shacham, UC San Diego Brent Waters, SRI International

  2. The Setting • Client stores (long) file with server - Wants to be sure it’s actually there • Motivation: online backup; SaaS • Long-term reliable storage is expensive

  3. Example Protocols ( h = h ( M )) ( M ) V P M ? = h ( · ) h Kotla,Alvisi, Dahlin, Usenix 2007: ( M ) ( M ) V P c h ( c � M ) ? h ( c � M ) = ·

  4. How do we evaluate protocols of this sort?

  5. Systems Criteria • Efficiency: - Storage overhead - Computation (including # block reads) - Communication • Unlimited use • Stateless verifiers • Who can verify? File owner? anyone?

  6. Crypto criterion • Only an adversary storing the file can pass the verification test • Possible to extract M from any prover P' via black-box access • (Cf. ZK proof-of-knowledge) • Insight due to Naor, Rothblum, FOCS 2005 and Juels, Kaliski, CCS 2007

  7. Security Model — I • Keygen: output secret key sk • Store ( sk, file M ): output tag t , encoded file M* • Proof-of-storage protocol: � � { 0, 1 } ← V ( sk, t ) � P ( t, M ∗ ) • Public verifiability: - Keygen outputs keypair ( pk , sk ) - Verifier algorithm takes only pk

  8. Security Model — II • Challenger generates sk • Adversary makes queries: - “store M i ” ⇒ get t i , M i * - “protocol on t i ” ⇒ interact w/ V ( sk , t i ). • Finally, adversary outputs: - challenge tag t from among { t i } - description of cheating prover P' for t

  9. Security Model — III • Security guarantee: ∃ extractor algorithm Extr st. when �� � V ( sk, t ) � P � � = 1 ≥ � we have Extr ( sk, t, P � ) = M except with negligible probability

  10. Probabilistic Sampling • Want to check 80 blocks at random, not entire file • Pr[ detect 1-in-10 6 erasure ]: < 0.01% • Pr[ detect 50% erasure ]: 1 - (1/2) 80 • So: encode M ⇒ M * st. any 1/2 of blocks suffice to recover M : erasure code • Due to Naor, Rothblum, FOCS 2005

  11. The Simple Solution • Store: - erasure encode M ⇒ M * - for each block m i of M *, store authenticator σ i = MAC k ( i , m i ) • Proof of storage: { ( m i , σ i ) } n � � ( k ) V P i = 1 I ⊆ [ 1, n ] ( | I | = 80 ) { ( m i , σ i ) } i ∈ I ? = MAC k ( i, m i ) σ i

  12. Lower communication using homomorphic authenticators

  13. Improved Solution (Try #1) • Downside to simple solution: response is 80 blocks, 80 authenticators • Let’s send Σ m i instead! { ( m i , σ i ) } n � � ( k ) V P i = 1 I ⊆ [ 1, n ] ( | I | = 80 ) � � σ = i ∈ I σ i µ = i ∈ I m i

  14. Improved Solution (Try #1) • Downside to simple solution: response is 80 blocks, 80 authenticators • Let’s send Σ m i instead! { ( m i , σ i ) } n � � ( k ) V P i = 1 I ⊆ [ 1, n ] ( | I | = 80 ) � � σ = i ∈ I σ i µ = i ∈ I m i ???

  15. Homomorphic Authenticators • Problem: have linear combination of messages m i • Need to authenticate via some function of { σ i } • Ateniese et al., CCS 2007: RSA-based homomorphic authenticators; authenticates � i σ ν i � i ν i m i i

  16. Our Contributions 1. Efficient homomorphic authenticators based on PRFs and on bilinear groups 2. A full proof for (improved) simple protocol, against arbitrary adversaries

  17. PRF Authenticator • PRF f : {0,1}* → K ; m i ∈ K ; K: GF(2 80 ) or Z p • Keygen: PRF key k ; α ∈ K • Authenticate: σ i ← f k ( i ) + α · m i • Aggregate: � � σ ← ν i σ i µ ← ν i m i • Verify: ? � = ν i f k ( i ) + αµ σ

  18. BLS Authenticator • Bilinear map e : G 1 × G 2 → G T , 〈 u 〉 = G 1 . • Keygen: sk: x ∈ Z p ; pk: v = g 2 x ∈ G 2 . H ( i ) u m i � x • Authenticate: � σ i ← • Aggregate: � � σ ν i σ ← µ ← ν i m i i • Verify: � � ? � H ( i ) ν i , v e ( σ, g ) = e u µ ·

  19. Improved Solution (Try #2) { ( m i , σ i ) } n � � ( k, α ) V P i = 1 I ⊆ [ 1, n ] ( | I | = 80 ) ν i ← K i ∈ I Q = { ( i, ν i ) } � µ ← ν i m i ( i,ν i ) ∈ Q � σ ← ν i σ i µ, σ ( i,ν i ) ∈ Q ? � = ν i f k ( i ) + α µ σ ( i,ν i ) ∈ Q

  20. Communication & storage • PRF solution: 80-bit µ , 80-bit σ • BLS solution: 160-bit µ , 160-bit σ • But: 100% storage overhead • Storage/communication tradeoff: - split each block into s sectors - one authenticator per block: - response: (1+ s ) × 80 bits [or × 160 bits] - storage overhead: 1/ s

  21. The proof of security

  22. Security Proof Outline 1. “Straitening”: whenever (µ, σ ) verify correctly, µ was computed as Σν i m i 2. “Extraction”: can extract 1/2 of blocks from prover P' that outputs µ= Σν i m i on ε -fraction of queries, ⊥ otherwise 3. “Decoding”: recover M from any 1/2 of M * blocks

  23. Attack on Improved Solution Try #1 • Attacker picks index i * • For i ≠ i*, sets a i ← ±1, stores m' ← m i + a i m i * • for query I st. i * ∉ I , compute µ � = � � � m � i = ( m i + a i m i ∗ ) = µ + m i ∗ a i i ∈ I i ∈ I i ∈ I • this is correct if #(+1) = #(-1) in Σ a i : � 80 � 1 � � � Pr 0 = i ∈ I a i 2 80 ≈ 8.89 · = 40

  24. Attack (cont.) Attacker knows dim ( n -1) subspace:  1 0 ± 1  · · ·   1 ± 1       ± 1       1 ± 1   0 1 ± 1 · · · But he doesn’t know any single block!

  25. Conclusion • Homomorphic authenticators from PRFs, BLS • “Improved Solution, Try #2”: - compact response (& query in r.o. model) - secure against arbitrary adversarial behavior • Security requires proof — some okay-looking schemes are insecure http://cs.ucsd.edu/~hovav/papers/sw08.html

Recommend


More recommend