JSPM

@crema-labs/ecdsa-p384-circom

0.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q12741F
  • License MIT

ECDSA P384 implementation for circom

Package Exports

  • @crema-labs/ecdsa-p384-circom
  • @crema-labs/ecdsa-p384-circom/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@crema-labs/ecdsa-p384-circom) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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.