ronkathon icon indicating copy to clipboard operation
ronkathon copied to clipboard

bounty: Edwards-curve Digital Signature Algorithm (EdDSA)

Open 0xJepsen opened this issue 9 months ago • 0 comments

Bounty description

Implement the Edwards-curve Digital Signature Algorithm (EdDSA) for ronkathon. EdDSA is a modern digital signature scheme, and this implementation should focus on the Edwards25519 curve variant.

Implementation requirements

  • [ ] Implement key generation for Ed25519 curve
    • Generate public / private key pairs
    • Ensure proper key formatting and encoding
  • [ ] Implement the EdDSA signing function, following the EdDSA specification for Ed25519
    • Implement proper message preprocessing
    • Generate valid signatures
  • [ ] Implement the EdDSA sig verification function
  • [ ] Implement proper error handling and input validation
  • [ ] Create comprehensive unit tests, including test vectors from the EdDSA specification;
    • Test various message lengths and edge cases

Bonus features

  • [ ] Add a benchmarking suite to test performance
  • [ ] Implement batch signature verification for improved efficiency

Resources

RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) Curve25519: new Diffie-Hellman speed records EdDSA for more curves The Ed25519 signature scheme

Criteria

Bounties will be rewarded based on the following criteria:

  1. Correctness and security: A thorough review of the implementation should convince our team that they are correct and secure, with all requirements met.
  2. Code clarity and quality: Succinct, easy-to-follow code with appropriate naming conventions. Utilize Rust’s type system for flexibility and security (e.g., compile-time checks where possible), and avoid external crates. Optimizations should be a lower priority than clarity, but can be included behind a feature flag as a bonus.
  3. Documentation quality: Provide comprehensive README’s, Cargo docs, and inline comments where code itself is not self-explanatory. Prioritize clarity and readability.

0xJepsen avatar May 23 '24 17:05 0xJepsen