Skip to content

encryptogroup/cip-pir

main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 

CIP-PIR

CIP-PIR is an efficient implementation of multi-server private information retrieval.

Details of the underlying protocols can be found in the paper "GPU-accelerated PIR with Client-Independent Preprocessing for Large-Scale Applications" published at the 31st USENIX Security Symposium (USENIX Security'22) by:

Warning: This code is not meant to be used for a productive environment and is intended for testing and demonstrational purposes only.

Requirements


  • A Linux distribution of your choice (The UC compiler was tested with Ubuntu and Kali)
  • g++
  • make
  • CMake
  • OpenMP

For GPU acceleration, you additionally need the following:

Build

mkdir build && cd build
cmake ..
make

Execute

We explain how to run the code locally.

  1. Go through the file src/parameter.h, put in your configuration, and run
make

This configuration file also contains flags which enables the GPU version of the code, parallelisation via OpenMP, and the pipelining approach.

  1. Create the database with
./bin/makeDatabase

Because the "makeDatabase" method is not working consistently on all platforms, it has been partly disabled. To simulate the preprocessing, please run:

dd if=/dev/urandom bs=1024 count=1250048 >> ./bin/database/raw.db_preprocess.db

Thereby, bs equals the protocols block size and count = GROUPS * GROUPSIZEP2 with GROUPSIZEP2=1 << GROUP_SIZE from src/parameter.h

  1. Run the PIR servers with
./bin/server -i 0 
./bin/server -i 1

where i specifies the server id. You may run ./bin/server -h to see a list of further parameters.

  1. Run the PIR client with
./bin/client

You may run ./bin/client -hto see a list of further parameters. You should also specify the server IP addresses and ports via the party.addServer() method in src/application/client.cpp

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published