forked from mjosaarinen/hila5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
90 lines (63 loc) · 2.84 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
77
78
79
80
81
82
83
84
85
86
87
88
89
README
This file, a description of every file in the distribution.
2017-11-24 Markku-Juhani O. Saarinen <[email protected]>
For more information, see https://mjos.fi/hila5
Supporting_Documentation/hila5spec.pdf
Specification of the HILA5 KEM and Public Key Encryption algorithm.
Organized per NIST's call for post-quantum proposals.
LICENSE
MIT License (which is very permissive). Applies to all code
in this distribution.
KAT/PQCkemKAT_1824.req
KAT/PQCkemKAT_1824.rsp
NIST Known Answer Test (KAT) data, automatically generated.
KAT/src/PQCgenKAT_kem.c
KAT/src/rng.h
KAT/src/rng.c
Code to generate KAT files (used by testing code) from NIST.
Slightly modified to eliminate some warnings.
Reference_Implementation/api.h
Reference_Implementation/hila5_endian.h
Reference_Implementation/hila5_sha3.h
Reference_Implementation/hila5_sha3_ref.c
Reference_Implementation/kem.c
Reference_Implementation/Makefile
Tiny C99 Reference implementation. This is optimized for brevity
and readability as it is used in specification -- it is therefore
really slow and should not be used for production.
Main functionality is provided by kem.c. A basic SHA3 and SHAKE
implementation is contained in hila5_sha3_ref.c. The reference
code is fully written by author and submitter.
For testing, you may try "make test", which will generate KEM
files and compare those with the real ones.
Optimized_Implementation/api.h
Optimized_Implementation/hila5_endian.h
Optimized_Implementation/hila5_sha3.h
Optimized_Implementation/hila5_sha3_opt.c
Optimized_Implementation/kem.c
Optimized_Implementation/Makefile
Optimized_Implementation/ms_ntt.c
Optimized_Implementation/ms_ntt_const.c
Optimized_Implementation/ms_priv.h
C99 Optimized implementation, which uses the proper NTT algorithms.
Here you may also do a "make test."
Main functionality is provided by kem.c. hila5_sha_opt.c provides
optimized version of the SHA-3 hash function and SHAKE XOF, with
parts adopted from Ronny Van Keer (Keccak team). The NTT sources
(ms_ntt*) have been adopted (= heavily hacked) from Microsoft's
free lattice library, released under MIT license.
Additional_Implementations/avx2/api.h
Additional_Implementations/avx2/hila5_endian.h
Additional_Implementations/avx2/hila5_sha3.h
Additional_Implementations/avx2/hila5_sha3_opt.c
Additional_Implementations/avx2/kem.c
Additional_Implementations/avx2/Makefile
Additional_Implementations/avx2/ms_ntt_const.c
Additional_Implementations/avx2/ms_ntt_misc.c
Additional_Implementations/avx2/ms_priv.h
Additional_Implementations/avx2/ms_x64_ntt.S
AVX2 Optimized Implementation. Very similar to the Optimized
Implementation; adopts vectorized AVX2 instruction set NTT code from
Microsoft Lattice Library. The assembler code from Microsoft uses
".intel_syntax noprefix" and is not position independent so you may
need -no-pie in addition to -march=native option.