Week 7 Update 7.1

During Week 7 I continued implementing several poseidon hash libraries in Rust. Until now I have kept my repositories private, but I am now making them public. I am working on two repositories listed below:

The repository for Poseidon benchmarks is for gathering several Poseidon implementations and run benchmarks on them. Right know I have three working implementations working together with bench functions: (1) https://github.com/arnaucube/poseidon-ark, (2) https://github.com/dusk-network/Poseidon252, (3) https://github.com/CryptoExperts/poseidon. The last implementation from CrytoExperts is a C implementation of the Poseidon permutation. My plan to run this C code is to make a sponge function in Rust and call the C subrutine within the Rust program.

A Rust Poseidon implementation is not new in the sense that there are other implementations in Rust. However, the idea behind my own implementation is to make it fully parameterizable, that is, a user would be able to select a field size, number of rounds, width of the sponge, etc. This will also be used in the benchmarks that are planned later. Is also important to note that this Rust implementation is based on arkworks.

By next week, I expect to finish with my Rust implementation of Poseidon and start designing the benchmarks that I will need to make.