This project aims to implement elliptic curve cryptograhy on an fpga. This means writing code to add and multiply arbitrary long numbers. Then the finite field arithmetic has to be implemented. We also need Euclid’s algorithm, this will be accomplished by using The Binary Euclid developed by Stein in 1968. Afterwards we can do the crypto stuff.
The algorithms themselves are very basic, since this is just a beginner’s course.
- [X] Addition
- [X] Multiplication
- [ ] Modulo
- [ ] Finite field arithmetic
- [ ] Binary Euclid
- [ ] Crypto
. ├── build.sh ├── build.tcl ├── README.org ├── src/ ├── start.sh ├── test/ ├── waveconfig/ └── work/
This is the structure of the project, stolen from the vhdl-riscv project. To create the project run the following:
git clone [email protected]:elliptic-fpga/fpga-curves.git
cd fpga-curves
./build.sh
./start.sh
If new files are added to the project it needs to be rebuild. Delete the old one and rerun te build script.
cd fpga-curves
rm -rf work/
./build.sh