Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168727
Image: ubuntu2004
F.<y> = GF(2, name='y')[] K.<x> = GF(2**8, name='x', modulus=y^8 + y^4 + y^3 + y + 1) bin_digits = lambda h: [((int(str(h), 16))//(2^i)) % 2 for i in range(3, -1, -1)] bin_poly = lambda n : sum([b * x^(3-i) for i,b in enumerate(bin_digits(n))]) b1 = 2 b2 = 'd' s = x^4 * bin_poly(b1) + bin_poly(b2) p = (1/s).polynomial().coeffs() p.reverse() b = [0]*(8 - len(p)) + p b.reverse() c = [1,1,0,0,0,1,1,0] d = [int((b[i] + b[(i + 4) % 8] + b[(i + 5) % 8] + b[(i + 6) % 8] + b[(i + 7) % 8] + c[i]).n()) % 2 for i in range(8)] d.reverse() s1 = sum([d[i] * 2^(3-i) for i in range(4)]) s2 = sum([d[i+4] * 2^(3-i) for i in range(4)]) print hex(s1), hex(s2)