Dynamic Proofs of Retrievability via Oblivious RAM

Slides:



Advertisements
Similar presentations
Numbers Treasure Hunt Following each question, click on the answer. If correct, the next page will load with a graphic first – these can be used to check.
Advertisements

Symantec 2010 Windows 7 Migration EMEA Results. Methodology Applied Research performed survey 1,360 enterprises worldwide SMBs and enterprises Cross-industry.
Symantec 2010 Windows 7 Migration Global Results.
1 A B C
Simplifications of Context-Free Grammars
Variations of the Turing Machine
3rd Annual Plex/2E Worldwide Users Conference 13A Batch Processing in 2E Jeffrey A. Welsh, STAR BASE Consulting, Inc. September 20, 2007.
AP STUDY SESSION 2.
1
& dding ubtracting ractions.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
Processes and Operating Systems
STATISTICS HYPOTHESES TEST (I)
David Burdett May 11, 2004 Package Binding for WS CDL.
Introduction to Algorithms 6.046J/18.401J
CALENDAR.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt BlendsDigraphsShort.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt RhymesMapsMathInsects.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wants.
PUBLIC KEY CRYPTOSYSTEMS Symmetric Cryptosystems 6/05/2014 | pag. 2.
1 Advanced Tools for Account Searches and Portfolios Dawn Gamache Cindy Bylander.
1 Click here to End Presentation Software: Installation and Updates Internet Download CD release NACIS Updates.
The 5S numbers game..
Photo Slideshow Instructions (delete before presenting or this page will show when slideshow loops) 1.Set PowerPoint to work in Outline. View/Normal click.
PROOFS OF RETRIEVABILITY VIA HARDNESS AMPLIFICATION Yevgeniy Dodis, Salil Vadhan and Daniel Wichs.
Break Time Remaining 10:00.
The basics for simulations
Turing Machines.
Table 12.1: Cash Flows to a Cash and Carry Trading Strategy.
Red Tag Date 13/12/11 5S.
PP Test Review Sections 6-1 to 6-6
David Luebke 1 6/7/2014 ITCS 6114 Skip Lists Hashing.
Analysis of Algorithms CS 477/677
EIS Bridge Tool and Staging Tables September 1, 2009 Instructor: Way Poteat Slide: 1.
Bellwork Do the following problem on a ½ sheet of paper and turn in.
Operating Systems Operating Systems - Winter 2010 Chapter 3 – Input/Output Vrije Universiteit Amsterdam.
Exarte Bezoek aan de Mediacampus Bachelor in de grafische en digitale media April 2014.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
1..
Lilian Blot PART III: ITERATIONS Core Elements Autumn 2012 TPOP 1.
CONTROL VISION Set-up. Step 1 Step 2 Step 3 Step 5 Step 4.
Adding Up In Chunks.
SLP – Endless Possibilities What can SLP do for your school? Everything you need to know about SLP – past, present and future.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
Artificial Intelligence
By CA. Pankaj Deshpande B.Com, FCA, D.I.S.A. (ICA) 1.
1 Using Bayesian Network for combining classifiers Leonardo Nogueira Matos Departamento de Computação Universidade Federal de Sergipe.
: 3 00.
5 minutes.
Research Summary 08/2010 Dr. Andrej Mošat` Prof. A. Linninger, Laboratory for Product and Process Design, M/C 063 University of Illinois at Chicago 04.
1 hi at no doifpi me be go we of at be do go hi if me no of pi we Inorder Traversal Inorder traversal. n Visit the left subtree. n Visit the node. n Visit.
1 Let’s Recapitulate. 2 Regular Languages DFAs NFAs Regular Expressions Regular Grammars.
Types of selection structures
Speak Up for Safety Dr. Susan Strauss Harassment & Bullying Consultant November 9, 2012.
Essential Cell Biology
12 System of Linear Equations Case Study
Converting a Fraction to %
Clock will move after 1 minute
PSSA Preparation.
Physics for Scientists & Engineers, 3rd Edition
Select a time to count down from the clock above
Distributed Computing 9. Sorting - a lower bound on bit complexity Shmuel Zaks ©
1.step PMIT start + initial project data input Concept Concept.
1 Dr. Scott Schaefer Least Squares Curves, Rational Representations, Splines and Continuity.
1 Decidability continued…. 2 Theorem: For a recursively enumerable language it is undecidable to determine whether is finite Proof: We will reduce the.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
Presentation transcript:

Dynamic Proofs of Retrievability via Oblivious RAM David Cash Alptekin Kupcu Daniel Wichs Rutgers University Koc University Northeastern University

Outsourced Data Storage Remote Server Client Lots of data (music, photos, emails, documents, scientific dataset, ...) Stores it on remote server Accessible from many devices (desktop, laptop, phone, car, ...). Greater reliability. May be cheaper (economy of scale).

Outsourced Data Storage Remote Server Client Much recent crypto research Outsourced computation: FHE, functional encryption, verifiable computing etc. Private/verifiable data access: oblivious RAM, memory checking. This talk: “Is my data still there”?

Defending Against Deletion Malicious server may lose (some) data Due to an accidental failure On purpose to save storage/money But how do you stop someone from deleting something? You can’t, but you can audit them.

Defending Against Deletion Proofs of Retrievability (PoR) [Juels-Kaliski ‘07] An efficient audit protocol between client & server. A server that passes the audit must know all of the client data. Efficiency: client and server computation is polylog in size of data. Knowledge: formalized using an extractor (proof-of-knowledge [GMR85]). Related notions: Sub-linear authenticators [Naor-Rothblum ‘05] Proofs of data possession [Ateniese et al. ‘07]

Naïve Solutions to PoR Naïve Solution 1: Download all of the data and verify authenticity. Does not satisfy efficiency Naïve Solution 2: Download a few random blocks of data and verify their authenticity. Efficient, but won’t catch small deletions.

[ECC(M) with authentication] A Simple PoR Scheme [Juels-Kaliski ’07] Redundantly encode data to recover ½-fraction erasures. Authenticate each codeword symbol (MAC or Signature). Data M Encode verification key vk Server file = [ECC(M) with authentication]

[ECC(M) with authentication] A Simple PoR Scheme [Juels-Kaliski ’07] PoR Audit: Client verifies random subset of t positions in codeword. If server knows < 1 2 of positions: Pr[ pass audit ] < 1 2 𝑡 . If server knows ≥ 1 2 of positions, knows all data. (Actual analysis more complicated) verification key vk Server file = [ECC(M) with authentication]

[ECC(M) with authentication] A Simple PoR Scheme [Juels-Kaliski ’07] PoR Audit: Client verifies random subset of t positions in codeword. If server knows < 1 2 of positions: Pr[ pass audit ] < 1 2 𝑡 . If server knows ≥ 1 2 of positions, knows all data. (Actual analysis more complicated) Further optimize communication from t authentication tags to 1. [Shacham-Waters ’08, Dodis-Vadhan-W ’09]. Server file = [ECC(M) with authentication]

Main Challenge: Dynamic Updates Known schemes assume data is static once given to the server and never updated afterwards. Handling updates left as main open problem by Juels and Kaliski. This work: PoR for dynamic data. Efficient protocols to read/write individual locations of client data. Audit protocol ensures that server ‘knows’ the latest version of client’s data.

Dynamic PoRs A dynamic PoR consists of an Encode algorithm, and protocols Read, Write, Audit. server storage: S client data: M data M Encode client secret state: k

Dynamic PoRs Read state is updated client data: M input: i ... input: i output: M[i] state is updated client secret state: k server storage: S

Dynamic PoRs Write client data: M set M[i] := v input: i, v ... client secret state: k server storage: S

output: {accept, reject} Dynamic PoRs client data: M Audit ... output: {accept, reject} client secret state: k server storage: S

*polylog(|M|)poly(sec) Efficiency of Dynamic PoRs Server storage |S| = O(|M|). Small* client state |k| Small* server/client complexity of read/write/audit *polylog(|M|)poly(sec) client secret state: k server storage: S

Adversarial Server Adv Security Definition for Dynamic PoR SecurityGame(Adv, Extract, ε) Adv specifies initial client data M, gets Encode(M). Client keeps state k. Adv runs arbitrary sequence of Read/Write/Audit protocol executions. Adv moves to some configuration/state A. Might ‘lose’ information. Adversary wins the game if: Pr[ A passes Audit with client ] ≥ε. Extract( A, k ) ≠ M (M updated with writes from step 2). A “Write v to position i” “Read j” “Audit” … ... state: k Adversarial Server Adv Client

Adversarial Server Adv Security Definition for Dynamic PoR SecurityGame(Adv, Extract, ε) Adv specifies initial client data M, gets Encode(M). Client keeps state k. Adv runs arbitrary sequence of Read/Write/Audit protocol executions. Adv moves to some configuration/state A. Might ‘lose’ information. Adversary wins the game if: Pr[ A passes Audit with client ] ≥ε. Extract( A, k ) ≠ M (M updated with writes from step 2). A “Write v to position i” “Read j” “Audit” … ... state: k Adversarial Server Adv Client

Security Definition for Dynamic PoR SecurityGame(Adv, Extract, ε) Adv specifies initial client data M, gets Encode(M). Client keeps state k. Adv runs arbitrary sequence of Read/Write/Audit protocol executions. Adv moves to some configuration/state A. Might ‘lose’ information. Adversary wins the game if: Pr[ A passes Audit with client ] ≥ε. Extract( A, k ) ≠ M (M updated with writes from step 2). PoR is Secure if: ∃PPT Extract ∀ PPT Adv, 𝜀=1/𝑝𝑜𝑙𝑦 Pr[SecurityGame(Adv, Extract, ε) = ‘win’ ] = negligible

Outline Naïve solutions to dynamic PoR. Why they don’t work. Our Construction using Oblivious RAM. Analyze security (need new notion of Oblivious RAM).

S = [ECC(M) with authentication] Difficulty of making PoR Dynamic Start with [Juels-Kaliski] PoR. Server stores an ECC of data M. Updating 1 bit of M changes a constant fraction of codeword! Challenge: Redundancy is inherent in PoR. If server deletes few random locations, audit cannot detect. Redundant encoding with efficient updates? Data M Encode Server stores S = [ECC(M) with authentication]

Naïve Attempt 1: Local Encoding Locally encode ‘small’ blocks of data individually. ECC(m1), ECC(m2), ECC(m3) Encode Block-wise Data M = m1, m2, m3

Naïve Attempt 1: Local Encoding Locally encode ‘small’ blocks of data individually. Updating 1 bit of data only affects 1 codeword block. ECC(m1), ECC(m2), ECC(m3) Write complexity: |block size| Data M = m1, m2, m3

Can we do better? (polylog) Naïve Attempt 1: Local Encoding Locally encode ‘small’ blocks of data individually. Updating 1 bit of data only affects 1 codeword block. To lose data, server deletes single codeword block. Audit needs to check t symbols/block. ECC(m1), ECC(m2), ECC(m3) Write complexity: |block size| Audit complexity: t |M|/|block size| Total complexity: 𝑡|𝑀| Data M = m1, m2, m3

Tension: PoR Security vs. Locality Write operation changes few locations on server. Server can ‘delete’ exactly these locations. If Audit checks few random locations, unlikely to detect this. Does not rule out a ‘smarter’ audit. Likelier to check most recently updated data.

Naïve Attempt 2: Local Encode + Permute ECC(m1), ECC(m2), ECC(m3) Data M = m1, m2, m3 Encode Block-wise

Naïve Attempt 2: Local Encode + Permute Pseudorandomly permute locations of codeword symbols to hide relationship between them. Server cannot ‘selectively delete’ values in a single codeword block ECC(m1), ECC(m2), ECC(m3) Permute (PRP) Server-stored file Data M = m1, m2, m3 Encode Block-wise

Naïve Attempt 2: Local Encode + Permute Pseudorandomly permute locations of codeword symbols to hide relationship between them. Server cannot ‘selectively delete’ values in a single codeword block Read/write reveals locations inside codeword block. Server-stored file

Main Idea Store/access codeword symbols on server using oblivious RAM. Rough Intuition: Hide which locations are being accessed. Oblivious RAM ECC(m1), ECC(m2), ECC(m3) Data M = m1, m2, m3 Encode Block-wise

Tool: Oblivious RAM (ORAM) [Goldreich ‘87,Ostrovsky ’90] Allows a client to store data on a server and read/write to individual locations of the data while hiding the access pattern. Consists of Encode algorithm, and protocols Read, Write. Same syntax as dynamic PoR. data M Encode client secret state: k server storage: S

Tool: Oblivious RAM (ORAM) [Goldreich ‘87,Ostrovsky ’90] Allows a client to store data on a server and read/write to individual locations of the data while hiding the access pattern. Consists of Encode algorithm, and protocols Read, Write. Same syntax as dynamic PoR. Read ... input: i client secret state: k server storage: S output: M[i]

Tool: Oblivious RAM (ORAM) [Goldreich ‘87,Ostrovsky ’90] Security of ORAM: For any two values M1, M2 and two equal-size sequences of read/write operations: server cannot distinguish between ‘ORAM execution’ with (M1, S1) or (M2, S2). , S1 S2 write(adr2, v3) read(adr2, v1) read(adr2) write(adr1,v3) read(adr4) … read(adr1) write(adr2, v1) write(adr3, v2) read(adr4) write(adr4,v1) read(adr2) …

History of ORAMs [Goldreich ‘87] Introduced ORAMs, first non-trivial construction. [Ostrovsky ‘90] First efficient construction with polylog overhead. Client storage is polylog in data size. Client/Server amortized complexity per operation is polylog. Recent flurry of papers: ~10 since 2010 Improving concrete efficiency (log2 overhead), worst-case vs. amortized efficiency, 1 round etc. Can also achieve authenticity against active-adversary server. Generically using memory checking, often more efficiently.

Server stores memory state Dynamic PoR Construction: Encode ORAM Encode Server stores memory state Block-wise encode ECC(m1), ECC(m2), ECC(m3) Data M = m1, m2, m3

Will access most recently updated server storage Dynamic PoR Construction: Audit Check t random distinct codeword symbols. To read each symbol, execute ORAM read (if ORAM protocol fails, reject) ORAM Read for each symbol ... Will access most recently updated server storage

Dynamic PoR Construction: Read To read location i, find the codeword block that contains it. Use ORAM to read the entire codeword block. If ECC is systematic, can read just 1 symbol. Read symbol i ORAM Read ...

Dynamic PoR Construction: Write Use ORAM to read the entire codeword block. Decode, update position i, re-encode. Use ORAM to write back new codeword block. ORAM Read each symbol of Codeword block. ... ORAM Write each symbol of updated codeword block. ... Write to location i

Security Intuition Assume that A passes next audit with probability 1/poly. Extractor runs many different audits. If successful, fill in codeword symbols. A ORAM Read for each symbol ...

Security Intuition Assume that A passes next audit with probability 1/poly. Extractor runs many different audits. If successful, fill in codeword symbols. A ORAM Read for each symbol ...

*Can verify if Audit succeeds without client secret state. Security Intuition Assume that A passes next audit with probability 1/poly. Extractor runs many different audits. If successful, fill in codeword symbols. Total number of “filled in” locations will be large > 3/4 fraction. A ORAM => filled in locations are distributed randomly. Each codeword block > 1/2 symbols filled in. * ORAM Read for each symbol ... *Can verify if Audit succeeds without client secret state.

Security Intuition: Not Quite Right Assume that A passes next audit with probability 1/poly. Extractor runs many different audits. If successful, fill in codeword symbols. Total number of “filled in” locations will be large > 3/4 fraction. ORAM => filled in locations are distributed randomly. Each codeword block > 1/2 symbols filled in. Extractor rewinds client and server A after each audit. Cannot rely on ORAM security: Same client state used for many ORAM Reads.

Security Intuition: Not Quite Right There are ORAM schemes with which our PoR construction is insecure. A fails on all reads inside some random (unknown) block. Want: No correlation between next-read access patterns. Hope: most real ORAM schemes will work. A ORAM Read for each symbol ... fail

ORAM with Next-Read Pattern Hiding Security game: Phase 1: Client encodes data M, executes a sequence of Read/Write protocols chosen by the adversary playing the Server. Phase 2: Adversary chooses a sequence of location t-tuples: (i1,0, i2,0, ... it,0),…, (i1,n, i2,n, ... it,n) Either: b= 0: Client executes the t Reads in each tuple, is rewound. b= 1: Client first applies random permutation 𝜋 to all the locations. NPRH Security: Cannot distinguish b=0 from b=1.

Security Intuition A Extractor runs many different audits. If successful, fill in codeword symbols. Total number of “filled in” locations will be large > 3/4 fraction. A ORAM => filled in locations are distributed randomly. Each codeword block > 1/2 symbols filled in. ORAM Read for each symbol ...

Example: Ostrovsky’s ORAM is NRPH Server Storage level log N “levels” for N items Level i contains 2i buckets Each buckets contains t slots Each slot contains a ciphertext encrypting data or dummy. 1 2 3 4

Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage level PRF keys k1 1 k2 2 k3 3 4 k4

Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage Data item (i, M[i]) is stored at some level j in bucket Fkj(i) Invariant: level PRF keys k1 1 k2 2 = data k3 3 4 k4

Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage Read i: level PRF keys For each level j read entire bucket Fkj(i) until “find” (i, M[i]) Read random bucket after that. Put data on top, re-encrypt all. k1 1 k2 it’s here 2 = data k3 3 4 k4

Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage level Write i,v: PRF keys Read i. Encrypt (i,v) when putting data item on top. k1 1 k2 it’s here 2 k3 3 4 k4

Problem: Top bucket fills up. Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage level Problem: Top bucket fills up. PRF keys Shuffles: Every 2i operations move all values in top i levels to level i+1. Fresh keys. Needs to be oblivious (sorting networks) k1 1 i=1 k2 2 k3 3 4 k4

Problem: Top bucket fills up. Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage level Problem: Top bucket fills up. PRF keys Shuffles: Every 2i operations move all values in top i levels to level i+1. Fresh keys. Needs to be oblivious (sorting networks) k1 1 i=1 k2 2 k3 3 4 k4

Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage level ORAM Security: PRF keys At any point in time, reading location i accesses random buckets at each level. k1 1 Fkj(i) never called k2 2 it’s here k3 3 4 k4

Example: Ostrovsky’s ORAM is NRPH Server Storage Client Storage At any point in time, reading distinct locations i1,i2,i3,i4… accesses random/independent buckets at each level. NRPH Security: level PRF keys k1 1 k2 2 k3 3 4 k4

Other ORAM Schemes In the paper, we show NRPH security of a more efficient ORAM of [Goodrich-Mitzenmacher ‘11].

t = security param, N = size of client data Summary of Results First construction of “dynamic” proof of retrievability Resolve technical difficulty via Oblivious RAM Construction is asymptotically efficient Client Storage O(t) i.e. ORAM client state Server storage O(N + t) Read complexity 1 ORAM read Write complexity O(t) ORAM reads and writes Audit complexity O(t) ORAM reads t = security param, N = size of client data

Open Problems Is ORAM inherent in dynamic PoR? Is it possible to have dynamic PoR where client does not have any secret state? Are there other applications of NRPH security?

Thanks!