Skip to content

NetBender/functional-encryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

functional-encryption

A Functional Encryption Scheme for Inner Products

Usage

This implementation, made for educational purposes, allows you to edit the size of the inputs in order to see how the complexity changes.

In the functional-enc.h file, you'll find many definitions that you can use to see how the scheme behaves. The main ones are:

  • VECTORS: number of the message vectors that will be generated;
  • VECTORS_LENGTH: length of the vectors (x and y);
  • X_MSG_LENGTH: size of each message in vector X (in bits);
  • Y_MSG_LENGTH: size of each message in vector Y (in bits).

After every edit, you have to re-build the code in order to apply the changes.

Prerequisites

In order to be built, you computer needs:

  • GCC;
  • the GNU MP Bignum Library.

In a Debian-based environment, you can simply:

  • run $ sudo apt-get install build-essential to install GCC;

  • download the latest GMP'stable release from here, unpack it and run the following commands:

    • $ ./configure;
    • $ make;
    • $ make install.

How to build

Open a Terminal in the folder where you've downloaded the project and run

  • $ make to build;

  • $ ./test-functional-enc to run the code.

###Credits This implementation is based on the content of the paper "Simple Functional Encryption Schemes for Inner Products"(available here) by Michel Abdalla, Florian Bourse, Angelo De Caro, and David Pointcheval.

###License This open-source software is published under the GNU General Public License (GNU GPL) version 3. Please refer to the "LICENSE" file of this project for the full text.

About

A Functional Encryption Scheme for Inner Products

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published