FF_exercise_77

119 days ago by jose.luis.ruiz@upc.edu

x=PolynomialRing(GF(2),'x').gen() F=GF(2**4, 'a', modulus=x^4+x+1) a=F.gen() 
       
def p(t): return t^13+t^12+t^6+t^5+t^4+t^2+t+1 
       
powers = [a^i for i in range(1,7)] print powers 
       
[a, a^2, a^3, a + 1, a^2 + a, a^3 + a^2]
[a, a^2, a^3, a + 1, a^2 + a, a^3 + a^2]
[p(t) for t in powers] 
       
[a^3 + a^2, a^3 + a^2 + a + 1, a^2 + 1, a^3 + a, a^2 + a + 1, a]
[a^3 + a^2, a^3 + a^2 + a + 1, a^2 + 1, a^3 + a, a^2 + a + 1, a]
result=map(p,powers) print result 
       
[a^3 + a^2, a^3 + a^2 + a + 1, a^2 + 1, a^3 + a, a^2 + a + 1, a]
[a^3 + a^2, a^3 + a^2 + a + 1, a^2 + 1, a^3 + a, a^2 + a + 1, a]
[discrete_log(b, a) for b in result] 
       
[6, 12, 8, 9, 10, 1]
[6, 12, 8, 9, 10, 1]