arnaucube
93bf45c299
fix bbjj api: return err when hash fails while sign/verify
8 months ago
Ilya
3fb23d780c
Merge pull request #55 from iden3/feature/PID-676-support-golang-interfaces
PID-676: support hash interface for poseidon; support golang crypto interfaces…
11 months ago
Ilya
068065257f
fix comments
11 months ago
Ilya
f4e4eed9d5
move DecompressSig to bjj helpers
11 months ago
Ilya
85b692c937
add test for poseidon hash writer; rename methods
11 months ago
Ilya
6ff38d47db
add frame size to poseidon hasher
1 year ago
Ilya
b015806983
support hash interface for poseidon; support golang crypto interfaces for bjj
1 year ago
Oleksandr Brezhniev
bd5255dea7
Switch to Apache 2.0 / MIT licenses ( #54 )
* Switch to Apache 2.0 / MIT licenses
1 year ago
Oleksandr Brezhniev
e5cf066b8b
Poseidon Sponge Hash with different frame sizes ( #52 )
* Poseidon Sponge Hash with different frame sizes
* Update deps. Bump go version
* Update & fix linter.
* Refactor a bit.
* Reduce gc pressure
1 year ago
cool-developer
edc36bfa52
Merge pull request #49 from iden3/feature/neptune
Neptune Hash Implementation
2 years ago
Cool Developer
3c0a3adbbe
remove the original hash function
2 years ago
Cool Developer
5ee5396d03
remove the bench
2 years ago
Cool Developer
49541f2ead
fix the lint issues
2 years ago
Cool Developer
46665875c7
add the neptuen hash
2 years ago
cool-developer
d3e4218fe3
Merge pull request #46 from iden3/feature/golden
Golden poseidon hash implementation
2 years ago
cool-developer
5848bf2918
Update element.go
2 years ago
cool-developer
38240a6451
Remove unnecessary lines
2 years ago
cool-developer
0d6b33924a
Update element_ops_amd64.s
2 years ago
cool-developer
52375f5e15
Update element_ops_amd64.s
2 years ago
Cool Developer
47b41d8ffc
update the input params of hash
2 years ago
Cool Developer
1a046cf574
fix lint issues
2 years ago
Cool Developer
f0c462811a
update the input params of hash
2 years ago
Cool Developer
26bfd1051a
add the unit-test
2 years ago
Cool Developer
885e7c382e
init commit for the golden poseidon
2 years ago
Oleksandr Brezhniev
f4972de131
Poseidon Sponge Hash implemented ( #45 )
* Poseidon Sponge Hash implemented
* Linter fixes and GHA go versions updated
2 years ago
Oleksandr Brezhniev
d53d6303be
Added benchmark of Poseidon for 8 inputs
2 years ago
a_bennassar
b85be5b7f7
Add poseidon benchmark with 16 elements ( #44 )
Add poseidon benchmark with 16 elements
2 years ago
Oleksandr Brezhniev
69354ae29c
Faster ff arithmetics (regenerated code with the newest goff) ( #43 )
2 years ago
Oleksandr Brezhniev
f597e20569
Fix Poseidon Hash check for inputs being in Finite Field ( #42 )
2 years ago
Oleksandr Brezhniev
64e757cc4a
Better keccac256 ( #41 )
* Switch to keccac256 implementation from golang.org/x/crypto instead of go-ethereum
2 years ago
Mikhail Wall
9c2ca9ca7c
made optimizaitions for consts init ( #40 )
2 years ago
Oleksandr Brezhniev
c544ba0f3c
Extend Poseidon to 16 inputs ( #39 )
2 years ago
Oleksandr Brezhniev
ef9f86210a
Extend Poseidon to 16 inputs ( #37 )
* Extend poseidon to 16 inputs. Better initialization of Poseidon constants
* Update deps
* Fix linter warnings
* Test vectors for poseidon with 14 inputs
2 years ago
Mikhail Wall
933c28a8d7
implemented optimized poseidon ( #38 )
* implemented optimized poseidon
* added comment to poseidon hash function
* deleted poseidonslow
2 years ago
Eduard S
8f85683b2c
Merge pull request #36 from iden3/feature/poseidon-update-reference-impl
Update Poseidon last changes of the reference impl
3 years ago
arnaucube
590573a0af
Update Poseidon last changes of the reference impl
Update Poseidon to last changes of the reference implementation from
26ddaa91db
Compatible with update at circomlib
(cf853c1cc9
)
3 years ago
Eduard S
58e589b6eb
Merge pull request #35 from iden3/feature/comp-point-test
Update and add test for PackSignY & UnpackSignY
3 years ago
arnaucube
2318fd7044
Update and add test for PackSignY & UnpackSignY
- Update PackSignY & UnpackSignY interface and description
- Add test for UnpackSignY & PackPoint
3 years ago
Eduard S
a0722b9e8f
Merge pull request #34 from iden3/feature/exp-comppoint-signy
Abstract & expose CompressedPointToSignAndY
3 years ago
arnaucube
71dbddb5f1
Abstract & expose CompressedPointToSignAndY
3 years ago
Eduard S
0a5c6acba3
Merge pull request #33 from iden3/feature/pkcomp-scanvalue
Add scanner/valuer interface to babyjub.PublicKeyComp
3 years ago
arnaucube
a366175021
Add scanner/valuer interface to babyjub.PublicKeyComp
3 years ago
Eduard S
a2015adb2f
Merge pull request #32 from iden3/feature/upgrade-linters
Upgrade linters
3 years ago
arnaucube
6d75396b4b
Upgrade linters
3 years ago
Eduard S
821a601d20
Merge pull request #31 from iden3/feature/update-bbjjeddsa
Update BabyJubJub EdDSA to last circomlib version
3 years ago
arnaucube
5dd19b46dd
Update BabyJubJub EdDSA to last circomlib version
- Update BabyJubJub EdDSA signature to last circomlib version (Poseidon
usage)
- Remove panic on hash error inside verification, to avoid panic due
field overflow of BabyJubJub signature verification
3 years ago
arnau
94e92e88fb
Merge pull request #30 from iden3/feature/signaturecomp-scanner
Add scanner/valuer interface to babyjub.SignatureComp
3 years ago
Arnau B
5ef832f175
Add scanner/valuer interface to babyjub.SignatureComp
3 years ago
arnau
59d8c7a4ca
Merge pull request #29 from iden3/feature/babyjubjub-optimization
- Add `add-2008-bbjlp` for point addition
- Add `goff` to BabyJubJub point addition
```
Benchmarks (On a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with 32 GB of RAM):
- Old (commit: e04ca5764a
):
BenchmarkBabyjub/AddConst-8 1000000 1072 ns/op
BenchmarkBabyjub/AddRnd-8 93417 12943 ns/op
BenchmarkBabyjub/MulRnd-8 252 4797810 ns/op
BenchmarkBabyjub/Compress-8 7291580 166 ns/op
BenchmarkBabyjub/InCurve-8 611137 1999 ns/op
BenchmarkBabyjub/InSubGroup-8 615792 2021 ns/op
BenchmarkBabyjubEddsa/SignMimc7-8 126 9358542 ns/op
BenchmarkBabyjubEddsa/VerifyMimc7-8 124 9484005 ns/op
BenchmarkBabyjubEddsa/SignPoseidon-8 126 9486484 ns/op
BenchmarkBabyjubEddsa/VerifyPoseidon-8 126 9622807 ns/op
- With new point addition algorithm (commit: aab1a681dd4b00cab49f39f9e30d6f28034589c1):
BenchmarkBabyjub/AddConst-8 1356836 881 ns/op
BenchmarkBabyjub/AddRnd-8 274112 4220 ns/op
BenchmarkBabyjub/MulRnd-8 492 2474412 ns/op
BenchmarkBabyjub/Compress-8 6964855 197 ns/op
BenchmarkBabyjub/InCurve-8 608169 2008 ns/op
BenchmarkBabyjub/InSubGroup-8 618772 1954 ns/op
BenchmarkBabyjubEddsa/SignMimc7-8 238 4962397 ns/op
BenchmarkBabyjubEddsa/VerifyMimc7-8 235 5234883 ns/op
BenchmarkBabyjubEddsa/SignPoseidon-8 240 5028720 ns/op
BenchmarkBabyjubEddsa/VerifyPoseidon-8 243 5226654 ns/op
Point Addition: ~3x
Point scalar Mul: ~1.9x
Signature (poseidon): ~1.88x
Verification (poseidon): ~1.84x
- With new point addition algorithm & goff (current commit):
BenchmarkBabyjub/AddConst-8 3000531 400 ns/op
BenchmarkBabyjub/AddRnd-8 2770335 428 ns/op
BenchmarkBabyjub/MulRnd-8 6636 175522 ns/op
BenchmarkBabyjub/Compress-8 7358768 180 ns/op
BenchmarkBabyjub/InCurve-8 539193 1950 ns/op
BenchmarkBabyjub/InSubGroup-8 601402 1958 ns/op
BenchmarkBabyjubEddsa/SignMimc7-8 2940 409487 ns/op
BenchmarkBabyjubEddsa/VerifyMimc7-8 2908 414407 ns/op
BenchmarkBabyjubEddsa/SignPoseidon-8 2395 493165 ns/op
BenchmarkBabyjubEddsa/VerifyPoseidon-8 2491 494849 ns/op
Point Addition: ~9.86x
Point scalar Mul: ~14x
Signature (poseidon): ~10.2x
Verification (poseidon): ~10.56x
---
Total improvement (from old to current):
Point Addition: ~30.24x
Point scalar Mul: ~27.33x
Signature (poseidon): ~19.24x
Verification (poseidon): ~19.44x
```
3 years ago
arnaucube
91767c7b61
Add goff to BabyJubJub point addition
```
Benchmarks (On a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with 32 GB of RAM):
- Old (commit: e04ca5764a
):
BenchmarkBabyjub/AddConst-8 1000000 1072 ns/op
BenchmarkBabyjub/AddRnd-8 93417 12943 ns/op
BenchmarkBabyjub/MulRnd-8 252 4797810 ns/op
BenchmarkBabyjub/Compress-8 7291580 166 ns/op
BenchmarkBabyjub/InCurve-8 611137 1999 ns/op
BenchmarkBabyjub/InSubGroup-8 615792 2021 ns/op
BenchmarkBabyjubEddsa/SignMimc7-8 126 9358542 ns/op
BenchmarkBabyjubEddsa/VerifyMimc7-8 124 9484005 ns/op
BenchmarkBabyjubEddsa/SignPoseidon-8 126 9486484 ns/op
BenchmarkBabyjubEddsa/VerifyPoseidon-8 126 9622807 ns/op
- With new point addition algorithm (commit: aab1a681dd4b00cab49f39f9e30d6f28034589c1):
BenchmarkBabyjub/AddConst-8 1356836 881 ns/op
BenchmarkBabyjub/AddRnd-8 274112 4220 ns/op
BenchmarkBabyjub/MulRnd-8 492 2474412 ns/op
BenchmarkBabyjub/Compress-8 6964855 197 ns/op
BenchmarkBabyjub/InCurve-8 608169 2008 ns/op
BenchmarkBabyjub/InSubGroup-8 618772 1954 ns/op
BenchmarkBabyjubEddsa/SignMimc7-8 238 4962397 ns/op
BenchmarkBabyjubEddsa/VerifyMimc7-8 235 5234883 ns/op
BenchmarkBabyjubEddsa/SignPoseidon-8 240 5028720 ns/op
BenchmarkBabyjubEddsa/VerifyPoseidon-8 243 5226654 ns/op
Point Addition: ~3x
Point scalar Mul: ~1.9x
Signature (poseidon): ~1.88x
Verification (poseidon): ~1.84x
- With new point addition algorithm & goff (current commit):
BenchmarkBabyjub/AddConst-8 3000531 400 ns/op
BenchmarkBabyjub/AddRnd-8 2770335 428 ns/op
BenchmarkBabyjub/MulRnd-8 6636 175522 ns/op
BenchmarkBabyjub/Compress-8 7358768 180 ns/op
BenchmarkBabyjub/InCurve-8 539193 1950 ns/op
BenchmarkBabyjub/InSubGroup-8 601402 1958 ns/op
BenchmarkBabyjubEddsa/SignMimc7-8 2940 409487 ns/op
BenchmarkBabyjubEddsa/VerifyMimc7-8 2908 414407 ns/op
BenchmarkBabyjubEddsa/SignPoseidon-8 2395 493165 ns/op
BenchmarkBabyjubEddsa/VerifyPoseidon-8 2491 494849 ns/op
Point Addition: ~9.86x
Point scalar Mul: ~14x
Signature (poseidon): ~10.2x
Verification (poseidon): ~10.56x
---
Total improvement (from old to current):
Point Addition: ~30.24x
Point scalar Mul: ~27.33x
Signature (poseidon): ~19.24x
Verification (poseidon): ~19.44x
```
3 years ago