{{{ #!htmlcomment This page is maintained automatically by a script. Don't modify this page by hand, your changes will just be overwritten the next time the script runs. Talk to your Friendly Neighborhood Repository Maintainer if you need to change something here. }}} {{{ #!html
This reference model was written to help debug Verilog code, it mimics how an FPGA would do elliptic curve point scalar multiplication for ECDH using curves P-256 and P-384. Note, that the model may do weird (from CPU point of view, of course) things at times. Another important thing is that while FPGA modules are actually written to operate in constant-time manner, this model itself doesn't take any active measures to keep run-time constant. Do NOT use it in production as-is!
The model is split into 4 layers:
Modular multiplier and invertor use complex algorithms and are thus further split into "helper" sub-routines.
This model uses tips and tricks from the following sources:
}}} [[RepositoryIndex(format=table,glob=user/shatov/ecdh_fpga_model)]] || Clone `https://git.cryptech.is/user/shatov/ecdh_fpga_model.git` ||