🤖 AI Summary
Motivated by the urgent need for high-security, large-scale randomness extraction in cryptography and related fields, this paper proposes and implements an efficient Python-based randomness extractor library. Methodologically: (i) we design novel two-source, seeded, and deterministic extractor constructions whose theoretical parameters surpass those of existing schemes; (ii) we introduce the first number-theoretic transform (NTT)-based convolution implementation, eliminating floating-point rounding errors inherent in FFT-based approaches and thereby enhancing cryptographic robustness; (iii) the library supports automatic parameter computation and efficient processing of inputs up to 2⁴⁰ bits. Experimental evaluation demonstrates stable operation and throughput exceeding one trillion bits per second—significantly outperforming mainstream tools. The project is open-sourced, accompanied by comprehensive documentation, reproducible examples, and benchmark datasets.
📝 Abstract
We present Cryptomite, a Python library of randomness extractor implementations. The library offers a range of two-source, seeded and deterministic randomness extractors, together with parameter calculation modules, making it easy to use and suitable for a variety of applications. We also present theoretical results, including new extractor constructions and improvements to existing extractor parameters. The extractor implementations are efficient in practice and tolerate input sizes of up to $2^{40}>10^{12}$ bits. Contrary to alternatives using the fast Fourier transform, we implement convolutions efficiently using the number-theoretic transform to avoid rounding errors, making them well suited to cryptography. The algorithms and parameter calculation are described in detail, including illustrative code examples and performance benchmarking.