-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathREADME
More file actions
115 lines (87 loc) · 4.54 KB
/
README
File metadata and controls
115 lines (87 loc) · 4.54 KB
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
The submission for CROSS contains the following:
• Reference_Implementation
A reference implementation of the asymmetric signature CROSS as a C11
library.
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
Reference_Implementation/include/api.h,
The implementation may either use libkeccak, if installed and available
in system-wide searched paths (e.g., /usr/local/include for the
headerfiles and /usr/local/lib for the static library), or employ
the provided fallback implementation for systems where libkeccak is not
available.
If the library is not compiled via the supplied Cmake flow, defining
SHA_3_LIBKECCAK during compilation enables compilation of the codebase
against an available libkeccak installation.
• Optimized_Implementation
An AVX2 optimized implementation of the asymmetric signature CROSS.
The library is organized in the same fashion as the reference one.
The implementation may either use libkeccak, if installed and available
in system-wide searched paths (e.g., /usr/local/include for the
headerfiles and /usr/local/lib for the static library), or employ
the provided fallback implementation for systems where libkeccak is not
available.
If the library is not compiled via the supplied Cmake flow, defining
SHA_3_LIBKECCAK during compilation enables compilation of the codebase
against an available libkeccak installation.
• Additional_Implementations
This directory provides Cmake based building facilites to generate
executable files either performing a benchmark of CROSS, performing unit testing
of the underlying arithmetics or generating the Known Answer Test files in the
KAT folder. Furthermore, we provide the Sage scripts employed to estimate
the cost of attacking the instances of RSDP and RSDPG employed in CROSS.
To build the benchmarking binaries, we advise to build-off tree following this
procedure:
1 - Enter Additional_Implementations/Benchmarking
2 - create a "build" directory and enter it
3 - type cmake ../ to generate the makefiles
4 - type make to compile the codebase
By default, the optimized implementation will be compiled (note that it provides
compatibility fallbacks if AVX2 ISA extensions are not available).
To select the reference implementation for building, add -DREFERENCE=1 to the
command in step 3, i.e., run
cmake ../ -DREFERENCE=1
The KAT_Generation directory is organized in the same fashion as the
Benchmarking one.
The same compilation procedure enacted for the benchmarking binary will generate
all the executable files needed to re-generate the Known Answer Tests files.
Specifically,
1 - Enter Additional_Implementations/KAT_Generation
2 - create a "build" directory and enter it
3 - type cmake ../ to generate the makefiles
4 - type make to compile the codebase
By default, the optimized implementation will be compiled.
To select the optimized implementation for building, add -DREFERENCE=1 to the
command in step 3.
A set of binaries, one for each category-optimization corner-underlying problem
triple will be generated in the bin subdirectory of the build directory.
Running each one of these binaries generates the KATs for the triple.
To alleviate the effort of generating all KATs, a commodity script
which generates them all KATs is provided : gen_all_kat.sh
To use it, after following the aforementioned compilation procedure, change one
directory up from build with
cd ..
and run
./gen_all_kat.sh
All KAT files will be generated in the KAT top-level-directory.
• KAT
The directory contains a set of requests/responses to the Known Answer Tests,
obtainable with the code present in Additional_Implementations/KAT_Generation.
The SHA-2-512 digests of all the files are provided in the sha_2_512_sum_KAT_files
file, and can be verified as:
sha512sum -c sha_512_sum_KATs
• Supporting_Documentation
The PDF document constituting the CROSS specification, a security guide
which details the security analyses resulting in the CROSS design, and a
changelog document reporting the differences between the first and second
round submission of CROSS.
• 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 SHAKE: 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.