Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
Name
ono-rrono-meng-eecs-2024-thesis.pdf
Description
Thesis PDF
Size
529.79 KB
Format
Adobe PDF
Checksum (MD5)
d63515b2dca075d786cf4aa9df496952
Author(s)
Ono, Rick R.
Advisor(s)
Athalye, Anish
Zeldovich, Nickolai
Date Issued
September 2024
Publisher
Massachusetts Institute of Technology
Abstract
As engineers continue to develop more sophisticated algorithms to optimize cryptographic algorithms, their often simple mathematical specifications become convoluted in the algorithms, from which a class of correctness bugs arise. Because cryptographic algorithms often secure sensitive information, their correctness, and in turn their security is a top priority. The Number Theoretic Transform (NTT) is an algorithm that enables efficient polynomial multiplication and has recently gained importance in post-quantum cryptography. This thesis presents a proof of correctness of the NTT in F⋆ , a proof-oriented programming language that extracts to OCaml, and shows that we can use the NTT to perform polynomial multiplications. We provide an implementation of the Cooley-Tukey fast NTT algorithm and a proof that it matches the original NTT specification. This thesis also presents a representation of polynomials in the F⋆ subset Low*, which extracts to performant C code.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
Copyright retained by author(s)
Persistent DSpace Link