Skip to content
/ ORAM Public
forked from MajoRoth/ORAM

Oram based server implementation

Notifications You must be signed in to change notification settings

cwycwy299/ORAM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORAM

oram python implementation

implementation of server and client communicating via socket under:

  • End to end encryption.
  • ORAM protocol - to prevent statistical inference.
  • Hash authentication - to validate the reliability of data

oram protocol based on the article Path ORAM.

Files

  • Run server.py on the server. call Server.run() to run the server.
  • With Client in client.py, You can write and read in the __name__ == "__main__" section, or write your own code and call to Client.read() and Client.write()
  • In benchmarks.py you can find the code used to calculate the benchmarks appended.
  • In clientAgent.py you can find the class ClientAgent, which responsible for all of the communication with the server, hashing, data authentication, and of course the ORAM module. As a user, you don't have any interaction with this file, unless you want to understand the code.
  • block.py and bucket.py stands for the main data structures of the ORAM algorithm, for a bigger size of data in each block, you may need to change settings.RECEIVE_BYTES.
  • settings.py contains all of the constants and data we supply to the program. change all from here.

Run

Just write $python3 server.py on the server, and $python3 client.py on the client.

More information about the design can be found in DESIGN.pdf

About

Oram based server implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%