Coder Social home page Coder Social logo

tightprove's Introduction

tightPROVE

tightPROVE is a formal verification tool for the tight probing security of masked implementations.

tightPROVE was introduced in the following publication:

Tight Private Circuits: Achieving Probing Security with the Least Refreshing
By Sonia Belaïd, Dahmun Goudarzi, and Matthieu Rivain.
In the proceedings of ASIACRYPT 2018.

Content

This repository contains the code of tightPROVE implemented in SageMath:

  • tightPROVE.sage

and a few examples of input files:

  • example1.txt: the circuit corresponding to example 1 in the publication;
  • example2.txt: the circuit corresponding to example 2 in the publication;
  • example3.txt: the circuit corresponding to example 2 augmented with a refresh gadget;
  • aes.txt: the AES s-box circuit considered in the publication.

Usage

Using the tool requires having SageMath installed (v6.10 or higher). Then simply run the following command line:

sage tightPROVE.sage file.txt

where file.txt is the input circuit file.

Input syntax

The input circuit format is as follows. Each line represents an operation or refresh gadget with the syntax

  • xor i j for a Boolean addition gadget,
  • and i j for a Boolean multiplication gadget,
  • ref i for a refresh gadget,

where i and j are the indexes of the two operands, i.e., the output of operations from the i-th and j-th lines.

The inputs of the circuit are represented at the top of the file as

in 0
in 1
...

License

GPLv3

tightprove's People

Contributors

mrivain avatar

Stargazers

zhang jiahao avatar Alex  avatar John Samuel Ebenezer avatar Marc Ilunga avatar David avatar Aleksei Udovenko avatar Will Pankiewicz avatar Junwei Wang avatar

Watchers

James Cloos avatar Tancrède Lepoint avatar Pascal Paillier avatar Thomas Baignères 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.