GithubHelp home page GithubHelp logo

marcoavesani / nfllib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from quarkslab/nfllib

0.0 1.0 0.0 269 KB

NTT-based Fast Lattice library

License: MIT License

CMake 1.97% C++ 67.73% Assembly 30.30%

nfllib's Introduction

NFLlib

An NTT-based Fast Lattice library

Goal

NFLlib is an efficient and open-source C++ library dedicated to ideal lattice cryptography. It is specialized in polynomial rings quotiented by a cyclotomic polynomial whose degree is a power of two. The library combines algorithmic optimizations (Chinese Remainder Theorem, optimized Number Theoretic Transform) together with programming optimization techniques (SSE and AVX2 specializations, C++ expression templates, etc.).

License

MIT

Install Steps

You need cmake, GMP and Mpfr, as well as a C++11 compiler to build NFLLib.

To build, test and install a production version of nfllib, run the following:

$> mkdir _build
$> cd _build
$> cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/nfllib
$> make
$> make test
$> make install

The following CMake options are relevant:

Option Description
-DCMAKE_INSTALL_PREFIX=<value> Where the library is installed
-DCMAKE_BUILD_TYPE=Release|Debug The basic compiler configuration
-DNFL_OPTIMIZED=ON Enable SSE/AVX-based optimization

SSE/AVX optimizations

To use SSE-based optimizations, compile the code with the flags -DNFL_OPTIMIZED=ON -DNTT_SSE.

To use AVX-based optimizations, compile the code with the flags -DNFL_OPTIMIZED=ON -DNTT_AVX2.

Getting started

In order to get the documentation you need Sphinx and the Alabaster theme. Installation procedures are described at (we recommend using pip for both installations) :

After getting both Sphinx and the Alabaster theme build the documentation and show it with:

$> sphinx-build . build
$> your_favorite_browser build/nfl.html

If you have issues building the documentation please contact the developper team.

Contributors

This library is an extension/evolution of the NTTTools module from XPIR done by members of CryptoExperts, INP ENSEEIHT, Quarkslab (in alphabetical order).

nfllib's People

Contributors

carlosaguilarmelchor avatar serge-sans-paille avatar serge-sans-paille-qb avatar fionser avatar aguinetqb avatar tlepoint avatar micciancio avatar kirija avatar

Watchers

James Cloos 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.