1. Martin Albrecht
  2. gghlite-flint

Overview

HTTPS SSH

An Implementation of GGHLite

Build Status

Prerequisits

We rely on

  • FLINT for pretty much everything
  • DGS for sampling from discrete Gausisans over the Integers

We ship these libraries as submodules.

Installation

You can either clone this repository or download a release tarball. The latter includes a configure script.

If you cloned this directory:

git clone --recursive https://bitbucket.org/malb/gghlite-flint
cd gghlite-flint
mkdir dgs/m4
autoreconf -i
export CFLAGS="-O3"
./configure
make -j2

If you download the release tarball:

export CFLAGS="-O3"
./configure
make -j2

Usage

GGH Params

Prints parameter choices to stdout.

GGH Instance

Instantiates a GGHLite instance

NIKE

A non-interactive key exchange (but we skip running the hash function in the end). For example, calling

./applications/nike -l 80 -N 7

will run 7-partite NIKE with security level λ=80.

Subdirectories

  • applications NIKE, parameter estimation, benchmarks
  • dgs discrete Gaussians over the integers
  • dgsl discrete Gaussians over arbitrary regular lattices and ideal lattices modulo $x^{2^k}+1$
  • flint a current snapshot of the FLINT library
  • gghlite the actual GGHLite implementation
  • oz efficient functions for computing in $\mathbb{Z}[x]/(x^{2^k}+1)$ and $\mathbb{Z}_q[x]/(x^{2^k}+1)$
  • tests correctness tests

Documentation

Doxygen documentation is available here.

Bugs

This code has bugs, help us fix them.

Build Status