0.0.1 • Published 11 months ago

@crema-labs/ecdsa-p384-circom v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

ecdsa-p384-circom

This repository provides implementations of Elliptic Curve Digital Signature Algorithm (ECDSA) operations for the P-384 curve using Circom. These implementations are designed for use in zero-knowledge proofs and other cryptographic applications.

Note: These circuits not audited and not yet recommended for production use.

Setup

$ git clone https://github.com/crema-labs/ecdsa-p384-circom
$ cd ecdsa-p384-circom
$ yarn

Project Structure

In this repository, we are using Circomkit to test some example circuits using Mocha. The circuits and the statements that they prove are as follows:

Circuits

  1. ecdsa.circom: Implements the ECDSA signature verification and private key to public key conversion for the P-384 curve.
  2. p384.circom: Implements the basic operations for the P-384 curve.

Testing

You can use the following commands to test the circuits:

# test everything
yarn test

# test a specific circuit
yarn test -g <template-name>

Benchmarks

All tests were performed on a MacBook Pro M1 2020 with 8GB RAM. | Operation | Constraints | Time (ms) | | ------------------------------ | ----------- | --------- | | ECDSA Signature Verification | 4,429,227 | 4,21,394 | | ECDSA Point Addition (Unequal) | 4,352 | 850 | | ECDSA Point Addition (Equal) | 6,000 | 573 | | ECDSA Scalar Multiplication | 3,977,848 | 4,20,964 |

Credits

This project was made possible thanks to the support of ZK Email and OpenPassport for the grant.

Acknowledgments

This project builds upon the excellent work of the circom-ecdsa-p256 by PSE and circom-ecdsa by 0xPARC. We are grateful for their contributions to implementation of ECDSA in Circom, which formed the foundation for our work.

Contribution

Feel free to contribute to this repository by creating issues or pull requests. We are open to any suggestions or improvements.