Coder Social home page Coder Social logo

degree-2-homomorphic-paillier's Introduction

Degree-2-Homomorphic-Paillier

The main idea of this repo is to boost paillier encryption function to support degree-2 homomorphic encryption.(somewhat full homomorphic even though it's only 2-d XD)

Prequisite

  • GNU MP Library, download and install instruction can be found on its official website.

Build and test

  1. Simply copy the code to your cmomputer (preferred Debian-based), this program has not been tested on other platforms.
  2. Run binary file or compile from source file.
gcc test.c paillier.c paillier_mh.c -o test -lgmp
./test

Files included

.
├── include
│   ├── paillier.h
│   └── paillier_mh.h
├── README.md
├── src
│   ├── paillier.c
│   ├── paillier_mh.c
│   ├── test
│   └── test.c
└── test

Reference

Catalano, D., & Fiore. (2015). Using linearly-homomorphic encryption to evaluate degree-2 functions on encrypted data. Proceedings of the ACM Conference on Computer and Communications Security, 2015, 1518-1529. #Avaliable Online#

The linerly-homomorphic encryption cryptosystem we chose is Pallier Cryptosystem. As an addictive homomorphic cryptosystem, when given public key and Enc(m1), Enc(m2), it is possible (in PPT) to calculate Enc(m1+m1). The listed paper presents a method to convert 1-d (linear) homomorphic encryption to 2-d homomorphic encryption. That is to say, we intend to calculate Enc(m1*m2) without any prior knowledage about m1 and m2. A more concrete formal representation is shown below:

Enc(m1*m2-b1*b2) = Enc((m1-b1)*(m2-b2))*Enc(b1)^(m2-b2) * Enc(b2)^(m1-b1)

Paillier functions including encryption and decryption function are from paillier-libraries-benchmarks repository.

degree-2-homomorphic-paillier's People

Contributors

jamie-cui 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.