Meet qFALL đź‘‹

qFALL is a project for prototyping lattice-based cryptography that aims to improve the implementation workflow of lattice-based cryptography. To this end, it provides a theory-affine, high-level interface for mathematics and common algorithms in lattice-based constructions with representative runtime performance. qFALL enables researchers to rapidly assemble minimal working prototypes that are easily auditable, modifiable, and allow users to assess algorithmic trade-offs early in the development cycle. Furthermore, qFALL supports an incremental optimization workflow, allowing users to replace bottlenecks with optimized modules to evolve the codebase toward a fully optimized implementation.

📦 Structure of qFALL

This project is structured into three dedicated Rust crates, each serving a distinct purpose.

Crate Links Core Function Example Content
qFALL-math githubcrates.iodocs.rs Mathematical Foundation Arbitrary-precision arithmetic for integers, quotient rings, polynomial rings, and matrices over these rings.
qFALL-tools githubcrates.iodocs.rs Cryptographic Building Blocks High-level primitives like gadget trapdoors, short basis generation, and fundamental primitives such as PSFs.
qFALL-schemes githubcrates.iodocs.rs Cryptographic Constructions Prototypes of lattice-based constructions like signatures and public-key encryption schemes.
  • To start working with qFALL, we recommend following our tutorial.
  • For a detailed breakdown of the architecture, design principles, and performance benchmarks, please read our Static Badge.

🎯 Intention Behind qFALL

qFALL is designed to tackle the following fundamental problems arising in prototype implementation:

  • Gap between Theory and Practice: As lattice-based cryptography evolves, the gap between theoretical pseudocode and optimized implementation widens. qFALL bridges this by offering theory-affine interfaces and abstraction levels that are native to theoretical researchers while preserving efficiency utilizing FLINT – ensuring prototypes remain comprehensible, auditable, and extensible.
  • Performance and Safety: Achieving practical execution speeds traditionally requires low-level languages that necessitate manual memory management, increasing code complexity and the risk of memory leaks. qFALL eliminates this risk by leveraging Rust’s compiler to guarantee a memory safety, removing the need for manual allocation while maintaining high efficiency.
  • Accessibility and Tooling: Large-scale libraries often suffer from steep learning curves and fragmented tooling. qFALL mitigates this through an intuitive modular structure, self-descriptive naming, and extensive documentation accompanied by a hands-on tutorial. Furthermore, it leverages the Rust ecosystem to standardize and simplify benchmarking and profiling of algorithms.
  • Sustainable Prototyping: Researchers usually face strict time constraints, leading to monolithic, “write-once” code. qFALL enables the rapid assembly of comprehensible, auditable, and extensible prototypes that serve as reusable resources to the community.
  • Incremental Optimization Workflow: Moving from a minimal working prototype to an optimized implementation often requires starting over. qFALL enables a seamless evolution: developers can use Rust’s profiling tools to pinpoint bottlenecks, then leverage the modular architecture to swap in optimized algorithms step-by-step – maintaining a verifiable, working prototype throughout the process.

📣 Latest News

qFALL Goes Live: First Official Release

January 21, 2026

The qFALL library suite is now officially available on crates.io! This marks our first major release, making cargo integration and...

Paper on qFALL Released: Bridging the Theory-to-Practice Gap

January 20, 2026

We are happy to announce the release of our paper “qFALL – Rapid Prototyping of Lattice-based Cryptography” on IACR ePrint...

Read all news Subscribe via RSS-Feed

🤝 Contribute

qFALL is an open-source project built by researchers for researchers. We encourage anyone to contribute, e.g., by adding missing features, optimizing algorithms, or reporting/resolving bugs. Your contributions help the community to build better prototypes, faster. For further details, please refer to our Contribution Guidelines.

📜 License license

This library is distributed under the Mozilla Public License Version 2.0. Permissions of this weak copyleft license are conditioned on making the source code of licensed files and modifications of those files available under the same license (or in certain cases, under one of the GNU licenses). Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work may be distributed under different terms and without source code for files added to the larger work.