Skip to content
Flexibly construct and implement attacks on Learning Parity with Noise
Rust Python
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
src stabilize Sep 11, 2019
tests add much better docs Sep 11, 2019
.travis.yml stabilize Sep 11, 2019
Cargo.toml Better doc ``examples/`` Sep 11, 2019

Attacks on Learning Parity with Noise

This software package allows to construct attacks on LPN. The examples/ directory shows many examples of solving algorithms that solve various LPN instances using various (combinations of) reductions and solution-finding algorithms. It also contains some example programs that try to find covering codes (mainly StGen codes) that have desirable properties.


  1. Get Rust and Cargo set up. You may need the nightly version (as of September 2018).
  2. cargo run --release --example bkw

Source material

Thom Wiggers. Solving LPN using Large Covering Codes. Master's Thesis Radboud University, 2018.

See also


  • Blum, Kalai and Wasserman. Noise-tolerant learning, the parity problem, and the statistical query model. Computing, 2000, ACM, 2013.
  • Levieil and Fouque. An improved LPN algorithm. SCN 2006, Springer 2018.
  • Bogos, Tramer and Vaudenay. On solving LPN using BKW and variants – implementation and analysis. Cryptography and Communications, 2016.
  • Bogos and Vaudenay. Optimization of LPN solving algorithms. ASIACRYPT 2015, Springer, 2016.
  • Esser, Kübler and May. LPN Decoded. CRYPTO 2017, Springer, 2017.
  • Samardjiska and Gligoroski. Approaching Maximum Embedding Efficiency on Small Covers Using Staricase-Generator Codes. 2015 IEEE International Symposium on Information Theory, 2015.
You can’t perform that action at this time.