Answered step by step
Verified Expert Solution
Question
1 Approved Answer
i want to implement a storage application that hides client access patterns from a remote server - otherwise known as an ORAM. The specific variant
i want to implement a storage application that hides client access patterns from a remote server otherwise known as an ORAM. The specific variant of ORAM to implement is Path ORAM first mentioned in Emil Stefanov, Marten Van Dijk, Elaine Shi, TH Hubert Chan, Christopher Fletcher, Ling Ren,Xiangyao Yu and Srinivas Devadas. Path oram: An extremely simple oblivious ram protocol. J ACM, apr which mean to implement the nonrecursive Path ORAM variant.
Programming functionality
i want to implement a client and server.
Definitions:
id an integer
data a string with characters
Requirements:
Server is initialized to support datablocks
The client can store data associated with an ID on the server by calling: self.storedataserver id data
Given a name, a client can retrieve associated data by calling by calling: self.retrievedataserver id data the client should return None if the data does not exist.
Client can delete data associated with an ID from server by calling:
self.deletedataserver id data
The client has access to storage used mainly for the stash data is stored on the server
Note that the server is the owner of the data storage, and should implement the methods described in Emil Stefanov, Marten Van Dijk, Elaine Shi, TH Hubert Chan, Christopher Fletcher, Ling Ren,
Xiangyao Yu and Srinivas Devadas. Path oram: An extremely simple oblivious ram protocol. J ACM, apr
to interact directly with said data storage in an oblivious manner.
The above API was written so that you wouldn't need to deal with network communication between the client and server and to emphasize what functionality is expected of you to implement. The server should store the tree structure, and there is no defined API for it
Programming security
The server should be oblivious to data content and the clients access patterns. This should be accomplished by use of end to end encryption and PATH ORAM.
The server should be unable to trick the client into accepting corrupt or outdated data data integrity
This should be accomplished by use of authentication.
You may use this library for encryption and verification.
The code in python and to explain the architecture built and how it satisfies the above requirements. Additionally, include the following
performance benchmarks:
Throughput number of requestssec vs N DB size
Latency time to complete a request vs throughput
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started