This directory contains our implementation of Kyber. Both the reference code and the AVX2 optimized code are in the directories ref/ and avx2/, respectively.
Also available is a highly portable cmake based build system that permits building the same sources into a summary library as well as all the same tests.
For fastest build performance, use of Ninja is recommended.
All tests can be run by invoking the (your-favourite-build-tool-command-here)
mkdir build-ninja && cd build-ninja && cmake -DBUILD_SHARED_LIBS=ON -GNinja .. && ninja && ninja test
the whole Kyber software family gets built in a highly portable as well as an avx2-optimized version, tested and delivered in a shared library.
For example, by running
./avx2/./avx2/test_speed512-90s_avx2 in the newly created 'build-ninja' folder, performance testing of
Kyber512-90s in the optimized AVX2 variant is executed.
The resultant library might also be installed using the
Note: Testing on Windows has only been done using MSVS 2015 (cl version 19) and