Skip to content

Conversation

@tarcieri
Copy link
Member

@tarcieri tarcieri commented Apr 11, 2023

Calculated in sage as follows:

sage: p = 0xfffffffffffffffffffffffffffffffeffffffffffffffff
sage: multiplicative_generator = GF(p).primitive_element()
sage: p_minus_1_bin = (p - 1).binary()
sage: s = len(p_minus_1_bin) - len(p_minus_1_bin.rstrip('0')) # count trailing zeros in binary
sage: t = (p - 1) >> s
sage: root_of_unity = pow(multiplicative_generator,t,p)
sage: delta = pow(multiplicative_generator, 2^s, p)
sage: multiplicative_generator
11
sage: p_minus_1_bin
'111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111110'
sage: s
1
sage: hex(t)
'0x7fffffffffffffffffffffffffffffff7fffffffffffffff'
sage: hex(root_of_unity)
'0xfffffffffffffffffffffffffffffffefffffffffffffffe'
sage: delta
121

Calculated in `sage` as follows:

sage: p = 0xfffffffffffffffffffffffffffffffeffffffffffffffff
sage: multiplicative_generator = GF(p).primitive_element()
sage: p_minus_1_bin = (p - 1).binary()
sage: s = len(p_minus_1_bin) - len(p_minus_1_bin.rstrip('0')) # count trailing zeros in binary
sage: t = (p - 1) >> s
sage: root_of_unity = pow(multiplicative_generator,t,p)
sage: delta = pow(multiplicative_generator, 2^s, p)
sage: multiplicative_generator
11
sage: p_minus_1_bin
'111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111110'
sage: s
1
sage: hex(t)
'0x7fffffffffffffffffffffffffffffff7fffffffffffffff'
sage: hex(root_of_unity)
'0xfffffffffffffffffffffffffffffffefffffffffffffffe'
sage: delta
121
@tarcieri tarcieri merged commit 62610a8 into master Apr 11, 2023
@tarcieri tarcieri deleted the p192/field-constants branch April 11, 2023 15:27
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

Successfully merging this pull request may close these issues.

2 participants