Fill This Form To Receive Instant Help
Homework answers / question archive / Encrypted File System Your goal for this project idea is to develop a file system that allows users to store data on an untrusted file server such as Pastebin
Your file system should support many users and allow users to share files with one another. For each file, it should be possible to control the set of users who can read, and who can write, to that file.
At a minimum, your file system should meet the following requirements: Users can create, delete, read, write, rename files.
The file system should support directories, much like the Unix file system.
Users should be able to set permissions on files and directories, which also requires that your file system be able to name users.
File names (and directory names) should be treated as confidential.
Users should not be able to modify files or directories without being detected unless they are authorized.
If the server is not malicious, unauthorized users should not be able to corrupt the file system.
The file server should not be able to read file content, file names, or directory names.
The server should not be able to take data from one file and supply it in response to a client reading a different file.
A malicious file server should not be able to create or delete files or directories without being detected.
The result of this project should be a functional file system implementation that meets the above requirements. You can implement your prototype in any language you want, such as Python or C++ or Go. You can decide how the file system client and server should be run. One reasonable design would be to have the file system client provide a minimal shell environment that allows users to perform the operations described in the above requirements.
As a challenge, you may want to think about providing freshness guarantees: that is, that a client should always see the latest version of a file, or at least that a client should never see an older version of a file after it sees a newer one. The SUNDR file system (PDF) may provide some inspiration for this, although it is a rather complicated system. You can choose to implement some limited freshness guarantees, unlike SUNDR's ideal fork consistency.
Already member? Sign In