#!/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)