Skip to content

LEDAcrypt/LEDAcrypt

Repository files navigation

The submission for LEDAcrypt contains the following:

• Reference_Implementation

A reference implementation of the LEDAcrypt KEM, KEM with long-term keys (KEM-LT)
and PKC. 
The reference implementation library does not provide a main() function, and is 
intended to be compiled and linked to a binary. 
The required NIST API is present in KEM/include/api.h, KEM-LT/include/api.h, 
PKC/include/api.h.
The included makefile creates a statically linkable library for the chosen 
security level and value of the N0 parameters.
The available security levels match NIST categories, it is thus possible to 
compile the library, e.g., for category 1 and N0=2 as:

SL=1 N0=2 make

The implementation assumes that libkeccak is installed and available in 
system-wide searched paths (e.g. /usr/local/include for the headerfiles and
/usr/local/lib for the static library)

• Optimized_Implementation

An AVX2 optimized implementation of the LEDAcrypt KEM, KEM with long-term 
keys (KEM-LT) and PKC. 
The library is organized in the same fashion as the reference one.
The implementation assumes that libkeccak is installed and available in 
system-wide searched paths (e.g. /usr/local/include for the headerfiles and
/usr/local/lib for the static library)


• Additional_Implementations

This directory contains boilerplate code to allow an implementor to generate
a new set of KAT inputs and outputs for each cryptosystem (KAT_generation-KEM,
KAT_generation-KEM-LT , KAT_generation-PKC directory), and 
a small boilerplate performing synthetic performance benchmarks of the
primitives (either Benchmarking_<primitive> for the reference implementation
or Benchmarking_Opt_<primitive> for the optimized implementation).

In all cases, the makefile will generate a binary for each combination of
security category and number of circulant blocks N0 simply running

make

The KAT generation directories also contain a script which allows the 
generation of fresh KATs for all the (security category, N0) pairs, 
named katgen.sh. Running the script with no parameters from the KAT generation 
directories will call all the compiled binaries and generate the KATs.

The implementation assumes that libkeccak is installed and available in 
system-wide searched paths (e.g. /usr/local/include for the headerfiles and
/usr/local/lib for the static library)

• KAT

A set of responses to the Known Answer Tests, as obtained with the code present
in Additional_Implementations/KAT_generation

• Supporting_Documentation

The PDF document describing the LEDAcrypt cryptosystem in detail.

• LICENSE.txt

The file containing the public domain license condition for the portion of the 
codebase which was authored by the submitter and implementors.

The code which was not directly authored by the submitters and implementors
is the one relative to AES and SHA3: the included implementations were released
by the respective authors under public domain, and the submitters and 
implementors hereby re-license the present copy under public domain.

• README

This file.

About

Codebase and Known Answer Tests for the LEDAcrypt ciphersuite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages