Paper 2024/457
Studying Lattice-Based Zero-Knowlege Proofs: A Tutorial and an Implementation of Lantern
Abstract
Lattice-based cryptography has emerged as a promising new candidate to build cryptographic primitives. It offers resilience against quantum attacks, enables fully homomorphic encryption, and relies on robust theoretical foundations. Zero-knowledge proofs (ZKPs) are an essential primitive for various privacy-preserving applications. For example, anonymous credentials, group signatures, and verifiable oblivious pseudorandom functions all require ZKPs. Currently, the majority of ZKP systems are based on elliptic curves, which are susceptible to attacks from quantum computers. This project presents the first implementation of Lantern, a state-of-the-art lattice-based ZKP system that can create compact proofs, which are a few dozen kilobytes large, for basic statements. We thoroughly explain the theory behind the scheme and give a full implementation in a Jupyter Notebook using SageMath to make Lantern more accessible to researchers. Our interactive implementation allows users to fully understand the scheme and its building blocks, providing a valuable resource to understand both ZKPs and lattice cryptography. Albeit not optimized for performance, this implementation allows us to construct a Module-LWE secret proof in 35s on a consumer laptop. Through our contributions, we aim to advance the understanding and practical utilization of lattice-based ZKP systems, particularly emphasizing accessibility for the broader research community.
Metadata
- Available format(s)
- Category
- Implementation
- Publication info
- Preprint.
- Keywords
- zero-knowledgeimplementationsagepythonlatticerange proof
- Contact author(s)
-
lena heimberger @ tugraz at
flugstein @ proton me - History
- 2024-03-22: approved
- 2024-03-18: received
- See all versions
- Short URL
- https://ia.cr/2024/457
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2024/457, author = {Lena Heimberger and Florian Lugstein and Christian Rechberger}, title = {Studying Lattice-Based Zero-Knowlege Proofs: A Tutorial and an Implementation of Lantern}, howpublished = {Cryptology {ePrint} Archive, Paper 2024/457}, year = {2024}, url = {https://eprint.iacr.org/2024/457} }