mjosaarinen / hilabliss

Self-contained educational implementation of the BLISS-B Bimodal Lattice Signature Scheme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hilabliss

24-Sep-15 Markku-Juhani O. Saarinen m.saarinen@qub.ac.uk

Centre for Secure Information Technologies (CSIT) ECIT, Queen's University Belfast, UK

Introduction

This is my simple educational implementation of BLISS-B, the Bimodal Lattice Signature Scheme, based on BLISS originally published in Crypto '13: Léo Ducas, Alain Durmus, Tancrède Lepoint, Vadim Lyubashevsky: Lattice Signatures and Bimodal Gaussians

Extended version of this paper is available as IACR ePrint 2013/383. This code implements the BLISS-B variant by Léo Ducas, which is available as IACR ePrint 2014/874.

As such, this is pretty much state of the art in Lattice based signature schemes, apart from the couple of caveats I will tell you about.

Features

  • 100% written by me (albeit I admit peeking at reference code occasionally).
  • A self-contained implementation (only requires standard libmath!), portable, clean.
  • SHA3 for hashing and random oracle stuff.
  • Number Theoretic Transforms for negacyclic rings.
  • A binary-search Discrete Gaussian sampler, which only has 64 bits of precision however. See http://eprint.iacr.org/2015/953
  • A semi-secure PRNG called "notrand" for completeness, also using SHA3.
  • A test driver.
  • Not super fast.
  • Probably some weird bugs. This is the very v0.0 initial release.

Compiling and running

Assuming that you get the tarball open:

$ make
gcc -Wall -Ofast   -c ntt32.c -o ntt32.o
gcc -Wall -Ofast   -c bliss.c -o bliss.o
gcc -Wall -Ofast   -c bliss_param.c -o bliss_param.o
gcc -Wall -Ofast   -c sha3.c -o sha3.o
gcc -Wall -Ofast   -c main.c -o main.o
gcc -Wall -Ofast   -c distribution.c -o distribution.o
gcc -Wall -Ofast   -c notrandom.c -o notrandom.o
gcc  -o hila ntt32.o bliss.o bliss_param.o sha3.o main.o distribution.o notrandom.o -lm
$ ./hila 
CLASS 1 x 1000
CLASS 2 x 1000
CLASS 3 x 1000
CLASS 4 x 1000
$ yes "POST QUANTUM LATTICE RING-LWE SUCCESS"

You may omit the last line..

Have fun.

Cheers, -markku

ABSOLUTELY NO WARRANTY WHATSOEVER

About

Self-contained educational implementation of the BLISS-B Bimodal Lattice Signature Scheme

License:MIT License


Languages

Language:C 97.9%Language:Makefile 1.1%Language:C++ 1.0%