Merge branch 'add/secp_hash_to_curve' of https://github.com/vb7401/halo2-secp into add/secp_hash_to_curve

This commit is contained in:
Vivek Bhupatiraju 2022-11-24 06:46:36 -05:00
commit 0b53e926c7
1 changed files with 2 additions and 24 deletions

View File

@ -1,25 +1,3 @@
# halo2_curves
# secpq_curves
A PSE library that implements original traits from `zkcrypto`
* [`zkcrypto/ff`](https://github.com/zkcrypto/ff)
* [`zkcrypto/group`](https://github.com/zkcrypto/group)
* [`zkcrypto/pairing`](https://github.com/zkcrypto/pairing)
and plus
`FieldExt`, `CurveExt` [traits](https://github.com/zcash/pasta_curves/tree/main/src/arithmetic) that are used in `halo2` library.
This implementation is mostly ported from [matterlabs/pairing](https://github.com/matter-labs/pairing/tree/master/src/bn256) and [zkcrypto/bls12-381](https://github.com/zkcrypto/bls12_381).
## Bench
None Assembly
```
$ cargo test --profile bench test_field -- --nocapture
```
Assembly
```
$ cargo test --profile bench test_field --features asm -- --nocapture
```
A merging of https://github.com/privacy-scaling-explorations/halo2curves and https://github.com/zcash/pasta_curves to implement the Secp/Secq cycle of curves. There is also a poorly documented SAGE script that walks through how certain constants were picked, like the isogeny map for Secq for its Simplied SWU mappings. This code was necessary for hash_to_curve for both Secp and Secq, as random points are necessary in the IPA param generation.