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

GF(2^128) operations #847

Open
sjsonucool opened this issue Jul 13, 2024 · 1 comment
Open

GF(2^128) operations #847

sjsonucool opened this issue Jul 13, 2024 · 1 comment

Comments

@sjsonucool
Copy link

I just began using Rust programming language, so I apologize in advance in case my queries are too simple or not clearly specified. I need to use operations over extension field GF(2^128) to implement Lagrange interpolation. I see that ark_ff has models for Quadratic Extension fields and I was wondering if I can get some examples on how to initialize GF(2^128) and call the operations performing add, multiply and inverse over this extension field? I would appreciate any help/inputs towards resolving the issue.

@burdges
Copy link
Contributor

burdges commented Jul 15, 2024

Afaik, binary fields need many custom optimizations, both in the field itself and in the algorithms that use them. See https://github.com/AndersTrier/reed-solomon-simd or Binus [DP] SNARK, which both depend upon the exact tower of extensions fields used.

As one simple example, an FFT might've preparation phase for scalar scalar multiplications using log tables, which then even breaks applying arkworks-like traits to binary fields. It's possible later optimizations make that trick irrelevant, but overall this sound messy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants