Giter VIP home page Giter VIP logo

ledacrypt's Introduction

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.

ledacrypt's People

Contributors

bob10918 avatar alexrow 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.