Code Monkey home page Code Monkey logo

mploc's Introduction

MPloC: Privacy-Preserving IP Verification using Logic Locking and Secure Multiparty Computation

Overview

Combine logic locking with secure multiparty computation for privacy-preserving intellectual property verification. Transform Verilog (2005) code (i.e., locked netlists) into "Bristol Fashion" MPC Circuits and run them using MP-SPDZ.

How to cite this work

The SoK outlining this framework will appear in 2023 IEEE 29th International Symposium on On-Line Testing and Robust System Design (IOLTS) (the preprint can be accessed here) and here. You can cite this article as follows:

@INPROCEEDINGS{IOLTS:Mouris23mploc,
  author    = "Dimitris Mouris and
               Charles Gouert and
               Nektarios Georgios Tsoutsos",
  booktitle =  "2023 IEEE 29th International Symposium on On-Line Testing 
                and Robust System Design (IOLTS)",
  title     =  "{MP$\ell\circ$C: Privacy-Preserving IP Verification using
                Logic Locking and Secure Multiparty Computation}",
  year      =  "2023",
  volume    =  "",
  number    =  "",
  pages     =  "1-7",
  doi       =  ""
}

Install

Prerequisites

sudo apt-get install automake build-essential clang cmake git libboost-dev \
    libboost-thread-dev libntl-dev libsodium-dev libssl-dev libtool m4 python3 \
    texinfo yasm yosys

Clone this repository:

git clone --recurse-submodules [email protected]:jimouris/mploc.git

Build MP-SPDZ

cd MP-SPDZ
make setup
make Programs/Circuits
make -j8 all
cd ..

Run

Generate Bristol Circuit

Create the EDIF files with Yosys:

$ yosys
yosys> read_verilog Programs/Verilog/4_bit_adder.v
yosys> synth
yosys> abc -g XOR,AND
yosys> write_edif Programs/EDIF/4_bit_adder.edif
yosys> exit

Convert the edif file to a Bristol fashion circuit:

python src/edif2bristol.py --edif Programs/EDIF/4_bit_adder.edif --out Programs/Circuits/4_bit_adder.txt

Prepare the Player Data

From the MP-SPDZ directory run:

mkdir -p Player-Data
echo 4 > Player-Data/Input-P0-0
echo 2 0 > Player-Data/Input-P1-0
./MP-SPDZ/compile.py 4_bit_adder
./MP-SPDZ/Scripts/semi.sh 4_bit_adder

Trustworthy Computing Group

mploc's People

Contributors

jimouris avatar cgouert avatar

Stargazers

Enoch avatar

Watchers

 avatar  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.