The Goldilocks Field
The field of prime order:
p=264−232+1
has some nice properties for ZK proofs, notably STARKs.
The order of Fp∗ is p−1, which is equal to:
264−232=232⋅3⋅5⋅17⋅257⋅65537
This means that the field has a 232th root of unity, which is very
useful.
Fp∗ is generated by:
g=7
And taking g(p−1)/232 gives us our root of unity:
ω=0x185629dcda58878c
Extensions
x2+7 is an irreducible polynomial of degree 2 in Fp[x]
x3+3 is an irreducible polynomial of degree 3 in Fp[x]
We can use these to define GF(p2) and GF(p3),
respectively, giving us fields of size 128 and 192 bits.
Addendum
Shotouts to @mjos_crypto for finding a smaller root of unity:
ω=20033703337
(https://twitter.com/mjos_crypto/status/1565438293717786625)