arnaucube
93bf45c299
fix bbjj api: return err when hash fails while sign/verify
1 year 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…
1 year ago
Ilya
068065257f
fix comments
1 year ago
Ilya
f4e4eed9d5
move DecompressSig to bjj helpers
1 year ago
Ilya
85b692c937
add test for poseidon hash writer; rename methods
1 year 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 )
3 years ago
Oleksandr Brezhniev
f597e20569
Fix Poseidon Hash check for inputs being in Finite Field ( #42 )
3 years ago
Oleksandr Brezhniev
64e757cc4a
Better keccac256 ( #41 )
* Switch to keccac256 implementation from golang.org/x/crypto instead of go-ethereum
3 years ago
Mikhail Wall
9c2ca9ca7c
made optimizaitions for consts init ( #40 )
3 years ago
Oleksandr Brezhniev
c544ba0f3c
Extend Poseidon to 16 inputs ( #39 )
3 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
3 years ago
Mikhail Wall
933c28a8d7
implemented optimized poseidon ( #38 )
* implemented optimized poseidon
* added comment to poseidon hash function
* deleted poseidonslow
3 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
4 years ago
arnaucube
2318fd7044
Update and add test for PackSignY & UnpackSignY
- Update PackSignY & UnpackSignY interface and description
- Add test for UnpackSignY & PackPoint
4 years ago
Eduard S
a0722b9e8f
Merge pull request #34 from iden3/feature/exp-comppoint-signy
Abstract & expose CompressedPointToSignAndY
4 years ago
arnaucube
71dbddb5f1
Abstract & expose CompressedPointToSignAndY
4 years ago
Eduard S
0a5c6acba3
Merge pull request #33 from iden3/feature/pkcomp-scanvalue
Add scanner/valuer interface to babyjub.PublicKeyComp
4 years ago
arnaucube
a366175021
Add scanner/valuer interface to babyjub.PublicKeyComp
4 years ago
Eduard S
a2015adb2f
Merge pull request #32 from iden3/feature/upgrade-linters
Upgrade linters
4 years ago
arnaucube
6d75396b4b
Upgrade linters
4 years ago
Eduard S
821a601d20
Merge pull request #31 from iden3/feature/update-bbjjeddsa
Update BabyJubJub EdDSA to last circomlib version
4 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
4 years ago
arnau
94e92e88fb
Merge pull request #30 from iden3/feature/signaturecomp-scanner
Add scanner/valuer interface to babyjub.SignatureComp
4 years ago
Arnau B
5ef832f175
Add scanner/valuer interface to babyjub.SignatureComp
4 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
```
4 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
```
4 years ago