/
README
76 lines (54 loc) · 2.98 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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.