libmceliece is based on the official Classic McEliece software, which was written by Tung Chou. See the following papers for the major algorithms used for speed inside that software:
Daniel J. Bernstein, Tung Chou, Peter Schwabe. "McBits: fast constant-time code-based cryptography." CHES 2013. https://tungchou.github.io/papers/mcbits.pdf
Tung Chou. "McBits revisited." CHES 2017. https://tungchou.github.io/papers/mcbits_revisited.pdf
The official Classic McEliece software includes
avx implementations; libmceliece includes only
The following components of libmceliece are from Daniel J. Bernstein:
Small changes for namespacing, portability, etc.
Software to compute control bits (also used in the official software). See the following paper: Daniel J. Bernstein. "Verified fast formulas for control bits for permutation networks." 2020. https://cr.yp.to/papers.html#controlbits
crypto_sort/int32. See https://sorting.cr.yp.to.
Infrastructure to build a library with automatic run-time selection of implementations based on the run-time CPU and a database of benchmarks. This infrastructure was introduced in
lib25519, with some extensions and adaptations in libmceliece.
Various software for tests and benchmarks. This is based on public-domain code in the SUPERCOP benchmarking framework.
crypto_xof/shake256 software currently includes two
SHAKE256 implementations. The
tweet implementation is based on
by Daniel J. Bernstein, Peter Schwabe, and Gilles Van Assche. The
unrollround implementation is from Daniel J. Bernstein.
Version: This is version 2023.02.18 of the "People" web page.