Files
2026-05-27 23:03:00 +08:00

33 lines
1.1 KiB
Python

#!/usr/bin/env sage
from sage.all import *
n = 0xB640000002A3A6F1D603AB4FF58EC74449F2934B18EA8BEEE56EE19CD69ECF25
p = 0xB640000002A3A6F1D603AB4FF58EC74521F2934B1A7AEEDBE56F9B27E351457D
# n = 65000549695646603732796438742359905742570406053903786389881062969044166799969
# p = 65000549695646603732796438742359905742825358107623003571877145026864184071783
# p_inv = pow(p, n - 2, n)
# a = matrix(ZZ, 4, 4, [
# [n, 0, 0, 0],
# [0, p, -1, 0],
# [0, 0, p, -1],
# [0, 0, 0, n],
# [n - 1, p_inv, 0, 0],
# [n - 2, p_inv, p_inv ** 2 % n, 0],
# [n - 3, p_inv, p_inv ** 2 % n, p_inv ** 3 % n]
# ])
# print(a.BKZ())
x = 0x600000000058F98A
t = 6*x*x+1
r = p+1-t
# x = 6518589491078791937
v = [[x + 1, x, x, -2 * x],[2 * x + 1, -x, -(x + 1), -x],[2 * x, 2 * x + 1, 2 * x + 1, 2 * x + 1],[x - 1, 4 * x + 2, -(2 * x - 1), x - 1]]
mv = matrix(ZZ, 4,4,v)
print(mv.det())
print()
print(-3*r)
for l in v:
print("bigFromBase10(\"{}\"),bigFromBase10(\"{}\"),bigFromBase10(\"{}\"),bigFromBase10(\"{}\")".format(l[0],l[1],l[2],l[3]))
# a = [v * (p ** i) % n for i, v in enumerate(l)]
# print(sum(a) % n)
print(2*x*x+3*x+1, 12*x*x*x+8*x*x+x, 6*x*x*x+4*x*x+x, -2*x*x-x)