forked from mjosaarinen/hila5
-
Notifications
You must be signed in to change notification settings - Fork 0
HILA5 KEM. Reference and Optimized Implementations + NIST PQC Submission Documents
License
hannahdaviscrypto/hila5
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.
About
HILA5 KEM. Reference and Optimized Implementations + NIST PQC Submission Documents
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 81.4%
- Assembly 17.6%
- Makefile 1.0%