Code
Lattice-based signature and Identity-Based Encryption are well-known cryptographic schemes, and having both efficient and provable secure schemes in the standard model is still a challenging task in light of the current NIST post-quantum competition. We address this problem in this paper by mixing standard IBE scheme, \`a la ABB (EUROCRYPT 2010) on Ring-SIS/LWE assumptions with the efficient trapdoor of Peikert and Micciancio (EUROCRYPT 2012) and we provide an efficient implementation. Our IBE scheme is more efficient than the IBE scheme of Ducas, Lyubashevsky and Prest based on NTRU assumption and is based on more standard assumptions. Although our signature scheme is not as efficient as recent lattice-based schemes based on Fiat-Shamir with Aborts, it is provably secure in the standard model and its efficiency is a few milliseconds.
Install / Use
/learn @lbibe/CodeREADME
Required:
1- Linux (test on Ubuntu 16.04) 2- Install gcc (g++) that supports -std=c++14 1- Install gmp and mpfr 2- Install nfllib 3- Edit the makefile (the first two lines) to have: NFLLIB_HOME: the directory where you have installed nfllib LIBS_HOME : the directory where you have installed gmp and mpfr
To compile:
- No optimization: make -Ibuild
- Optimized: make -Ibuild build
- Run test : make -Ibuild run
Test scenario (the default is the IBE encryption with 80 security):
- The default parameters are in the params.hpp file
- The test scenario is in the main.cpp file
