Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆

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,...

Full description

Bibliographic Details
Main Author: Ono, Rick R.
Other Authors: Athalye, Anish
Format: Thesis
Published: Massachusetts Institute of Technology 2024
Online Access:https://hdl.handle.net/1721.1/157189
_version_ 1824458327846813696
author Ono, Rick R.
author2 Athalye, Anish
author_facet Athalye, Anish
Ono, Rick R.
author_sort Ono, Rick R.
collection MIT
description 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.
first_indexed 2025-02-19T04:24:08Z
format Thesis
id mit-1721.1/157189
institution Massachusetts Institute of Technology
last_indexed 2025-02-19T04:24:08Z
publishDate 2024
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/1571892024-10-10T03:15:11Z Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆ Ono, Rick R. Athalye, Anish Zeldovich, Nickolai Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science 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. M.Eng. 2024-10-09T18:27:11Z 2024-10-09T18:27:11Z 2024-09 2024-10-07T14:34:36.025Z Thesis https://hdl.handle.net/1721.1/157189 Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) Copyright retained by author(s) https://creativecommons.org/licenses/by-nc-nd/4.0/ application/pdf Massachusetts Institute of Technology
spellingShingle Ono, Rick R.
Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
title Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
title_full Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
title_fullStr Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
title_full_unstemmed Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
title_short Verifying Correctness of the Number Theoretic Transform and Fast Number Theoretic Transform in F⋆
title_sort verifying correctness of the number theoretic transform and fast number theoretic transform in f⋆
url https://hdl.handle.net/1721.1/157189
work_keys_str_mv AT onorickr verifyingcorrectnessofthenumbertheoretictransformandfastnumbertheoretictransforminf