Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: BW6-761 emulated pairing #846

Merged
merged 41 commits into from
Oct 17, 2023
Merged
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
90617dc
feat: add bw6 fields
yelhousni Jul 7, 2023
cf4cf20
perf(bw6/pairing): hinted inverse and division in E6
yelhousni Jul 7, 2023
4e30aee
feat: add bw6 final exp
yelhousni Jul 7, 2023
63131b7
fix: bw6 field emulation
yelhousni Jul 10, 2023
9da80b9
test(emulated/bw6): sparse mul in Fp6
yelhousni Jul 10, 2023
a27a7fa
feat: add naive bw6 miller loop
yelhousni Jul 10, 2023
9047136
Merge branch 'master' into feat/bw6761-pairing
yelhousni Oct 2, 2023
547d5f8
refactor: clean comments
yelhousni Oct 3, 2023
81499cb
fix: use M-twist (014) for emulated BW6 pairing
yelhousni Oct 3, 2023
3ea1a49
perf(emulated/bw6): first loop in binary
yelhousni Oct 3, 2023
a266590
perf: naive emulated bw6 pairing working
yelhousni Oct 4, 2023
c2ba96f
perf(emulated/bw6): isolate last iterations in Miller loops
yelhousni Oct 4, 2023
84a83a9
perf(emulated/bw6): add line by line multiplication
yelhousni Oct 4, 2023
118edc3
perf(emulated/bw6): init second Miller loop by the first one
yelhousni Oct 4, 2023
da202f3
perf(emulated/bw6): new development of the optimal ate pairing
yelhousni Oct 4, 2023
337c79c
perf(emulated/bw6): use Mul istead of MulMod in tower
yelhousni Oct 4, 2023
94af6c8
perf(emulated/bw6): manually reduce Fp12 elements
yelhousni Oct 5, 2023
9d8302c
perf(emulated/bw6): more use of Karabina cycloSquare
yelhousni Oct 5, 2023
77d305e
Merge branch 'feat/bw6761-pairing' of github.com:consensys/gnark into…
yelhousni Oct 5, 2023
849d204
refactor: address PR review
yelhousni Oct 5, 2023
996c82f
refactor: consolidate emulated bw6-761 pairing with other curves
yelhousni Oct 5, 2023
70715c0
refactor: consolidate bw6-761 tower + fix GT exp tests
yelhousni Oct 5, 2023
8e95140
refactor(bw6 pairing): use MillerLoopOptAte in gnark-crypto for test
yelhousni Oct 6, 2023
7fc5925
feat(emulated bw6 pairing): optimal tate version working
yelhousni Oct 6, 2023
f66b21a
perf(bw6/optimal tate): mul lines 2-by-2
yelhousni Oct 6, 2023
a9b4c1c
refactor: keep one version + multi-pairing
yelhousni Oct 6, 2023
cb6133e
perf(bw6/optimal tate): optimize multi-miller loop
yelhousni Oct 6, 2023
4507e7c
style: clean and document the code
yelhousni Oct 7, 2023
85c5887
fix: ineffectual assignment to err
yelhousni Oct 7, 2023
1c8b9e0
perf(bw6): optimize final exponentiation
yelhousni Oct 10, 2023
95e0f54
test(bw6): recude multi-pairing size in tests
yelhousni Oct 10, 2023
85ca631
fix: remove outdated test
yelhousni Oct 10, 2023
6c84f3d
perf(bw6): use more efficient addchains
yelhousni Oct 11, 2023
bc201ea
fix(bw6): fix Expt test
yelhousni Oct 11, 2023
4027ddd
perf(bw6): manually reducing E12 at some places yields better perf
yelhousni Oct 11, 2023
2cddf28
chore: avoid dereferencing into existing Elements
ivokub Oct 11, 2023
f4d077c
refactor(bw6): remove some unnecessary computations
yelhousni Oct 11, 2023
cb9ff67
perf(bw6): lines-by-acc mul gives better results than line-by-line mul
yelhousni Oct 11, 2023
e9ff5ac
fix: test final exp without gnark-crypto hack
yelhousni Oct 12, 2023
6c478d5
Merge branch 'master' into feat/bw6761-pairing
yelhousni Oct 17, 2023
d183679
chore: update gnark-crypto to latest
yelhousni Oct 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions std/algebra/emulated/fields_bw6761/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Package fields_bw6761 implements the fields arithmetic of the Fp6 tower
// used to compute the pairing over the BW6-761 curve.
//
// 𝔽p³[u] = 𝔽p/u³+4
// 𝔽p⁶[v] = 𝔽p²/v²-u
package fields_bw6761
Loading
Loading