How to solve raising a polynomial to the power of a number mod something
I want to raise the polynomial vec1[0] to the power of a number mod x
(vec1[0])^Binv[0][0], however when I do that, I receive the following message:
unsupported operand type(s) for &: 'sage.rings.finite_rings.integer_mod.IntegerMod_gmp' and 'int'
When I change Binv[0][0] to be an integer, everything works fine, however, this is not what I want to achieve. Is there any workaround to this?
Z3 = Integers(2^(e*m)-1);
B = matrix(ZZ,2,2);
F11 = 50;
F12 = 24;
F21 = 7;
F22 = 88;
B[0,0] = 2^F11;
B[0,1] = 2^F12;
B[1,0] = 2^F21;
B[1,1] = 2^F22;
#print B[0][0]
B_mod = B.mod(2^(e*m)-1)
#print B_mod
Binv = matrix(Z3,2,2);
Binv = B_mod.inverse();
R = PolynomialRing(K,'X');
R.inject_variables();
#Find irreducible polynomial of degree 3
while True:
c = K.random_element();
d = K.random_element();
f = K.random_element();
IP3 = X^3 + c*X^2 + d*X + f;
if IP3.is_irreducible():
break;
RRR = R.quotient(IP3,'Y')
RRR.inject_variables()
vec1 = X^2 * x[0] + X * x[1] + x[2]
result1 = RRR(vec1[0])^Binv[0][0]
Could you please provide the code for constructing
vec1andBinv?Edited with the code. Sorry for my code being very messy
What is
K,x? Also, please format your code by selecting it and pressing the 'code' (101010) button.K is GF(2^48) and x is a vector of K elements