Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing Poly1305 using fiat-crypto #198

Closed
brycx opened this issue Apr 28, 2021 · 0 comments · Fixed by #260
Closed

Implementing Poly1305 using fiat-crypto #198

brycx opened this issue Apr 28, 2021 · 0 comments · Fixed by #260
Labels
improvement General improvements to code investigation Investigation task
Milestone

Comments

@brycx
Copy link
Member

brycx commented Apr 28, 2021

As part of an investigation into implementing support for ECC in Orion, the fiat-crypto (https://github.com/mit-plv/fiat-crypto) has been used as a source for formally verified arithmetic operations. This greatly increases confidence in the correctness of the implementation, while also reducing the amount of work needed to maintain and audit implementations utilizing fiat-crypto.

The draft PR #197 showcases these benefits well IMO. fiat-crypto also offers Rust generated code for Poly1305: https://github.com/mit-plv/fiat-crypto/blob/master/fiat-rust/src/poly1305_64.rs

I think it would be worth to explore replacing the current Poly1305 implementation with one that leverages the formally verified code generated by fiat-crypto, for the exact same reasons mentioned above.

@brycx brycx added improvement General improvements to code investigation Investigation task labels Apr 28, 2021
@brycx brycx mentioned this issue Dec 18, 2021
4 tasks
@brycx brycx added this to the v0.17.1 milestone Dec 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement General improvements to code investigation Investigation task
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant