A Python implementation on "MPC-in-the-head".
The protocol has the following dependencies.
Setup on a fresh Ubuntu instance:
$ sudo apt update
$ sudo apt install python3-pip
$ sudo apt install libgmp-dev libmpfr-dev libmpc-dev
$ pip3 install gmpy2 pycryptodomex (numpy matplotlib pycryptodome psutil)
Test files are either Bristol format files or PWS files.
Bristol Format
Bristol files were found from 'Bristol Fashion' MPC Circuits. Files must be modified so that the second line has the total number of input wires and a 1 for every occurance of input wire. See circuits/adder64_mod.txt for an example.
PWS File
circuits/matmult.py file gained from PWS Prover Workseet.
Run TurboIKOS
$ python3 "python file" circuits/"circuit file"
eg.
$ python3 TurboIKOS.py circuits/matmult_16.pws
Run \tilde{TurboIKOS}
$ python3 tilde_TurboIKOS.py circuits/matmult_16.pws