This repository contains a formalization of the constant time prime field inversion algorithm from https://gcd.cr.yp.to/papers.html#safegcd in the Coq Proof Assistant. The files in src
corresponds roughly to the sections in the paper describing the algorithm (e.g. AppendixF.v
formalizes the theorems from Appendix F in https://gcd.cr.yp.to/papers.html#safegcd).
The folder src/Comp1
contains an implementation of the computer proof of theorem F.22 in the paper. Use make test-ocaml1
to run it; it should take about 8 hours to terminate.
The folder src/Comp2
contains different implementations of the computational proof of theorem G.4 in the paper. The OCaml implementation is extracted directly from Coq. The binaries for these can be made with make c
and make ocaml
. The binaries take an integer as input and outputs the corresponding table entry from figure G.5 in https://gcd.cr.yp.to/papers.html#safegcd.
To compile all proofs you need to have Coq installed (version 8.12 or higher) and run make
from the root folder.
On linux you also need to install csdp
sudo apt-get install coinor-csdp