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 ref, vec, sse, and
avx implementations; libmceliece includes only vec and avx.
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. 
The underlying crypto_xof/shake256 software currently includes two
SHAKE256 implementations. The tweet implementation is based on
https://twitter.com/tweetfips202
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.