Giter Club home page Giter Club logo

pir's Introduction

Enabling Practical Privacy-Preserving Lawful Interception in 5G Core with Lattice-Based Weakly Private Information Retrieval

This repository contains the code for SparseWPIR, a partition based Weakly-Private Information Retrieval scheme (WPIR) which supports both a classical Keyword PIR scheme (based on Sparse-MulPIR) and a WPIR scheme based on partition. This repository is part of my master thesis project at EPFL and Armasuisse CYD campus called "P3LI5: Enabling Practical Privacy-Preserving Lawful Interception in 5G Core with Lattice-Based Weakly Private Information Retrieval". Check P3LI5 for more reference on the project.

BRANCHES

THIS

This branch contains an implementation of SparseWPIR used for private Lawful Interception PoC in 5G Core. The code is used in deployment inside a Docker container and is part of the P3LI5 project: P3LI5

OTHER

  • vanilla contains an implementation of SparseWPIR "as-is", without the extra code needed for it to run inside P3LI5. It contains also a test-suite used for benchmarking/demostration of usage.
  • indexed_pir contains an implementation of the WPIR scheme for indexed database (so classical PIR setting). Contains a test-suite, and various experiment results.

RUNNING

run pir --help to see how to use the binary. DISCLAIMER: the binary relies on some configuration parameters and environment variables which are normally set automatically during Docker deployment. Please look at P3LI5 /lea and /icf and related DockerFile for more information.

DOCUMENTATION

./help.sh to spawn documentation on your browser.

ENVIRONMENT VARIABLES

Before running, set the following:

export PKG_CONFIG_PATH=<path_to>/pir/pkg-config/python3-embed.pc
export PYASN_DIR=<path_to>/pir/server
export PIR_LOG=<path_to>/pir/var/log/pir.log

GRPC

We already provide the Go bindings for GRPC. This is how they were generated (for reference):

Go

  • Install protoc:
$ go install google.golang.org/protobuf/cmd/[email protected]
$ go install google.golang.org/grpc/cmd/[email protected]
  • Update PATH:
$ export PATH="$PATH:$(go env GOPATH)/bin"
  • Run protoc:
protoc --go_out=./client --go_opt=paths=source_relative --go-grpc_out=./client --go-grpc_opt=paths=source_relative ./client/client.proto

rename the client/client folder into client/pb

BUILDING

  • Download Go v19.3.1 here:
wget -c -q https://golang.org/dl/go1.19.3.linux-amd64.tar.gz
  • Set export PKG_CONFIG_PATH=<path_to>/pir/pkg-config/python3-embed.pc/
  • go build inside /pir

pir's People

Contributors

intx4 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.