Ask Your Question

Revision history [back]

S is a field

sage: R.<x> = PolynomialRing(GF(2), 'x')
sage: S.<y> = QuotientRing(R, R.ideal(x^8+x^4+x^3+x+1))
sage: S.is_field()
True

hence

sage: S.ideal(1) == S.ideal(y) == S.ideal(y^4 + 1)
True

With your code S = GF(256) is a fieldfield and y its generator

sage: R.<x> = PolynomialRing(GF(2), 'x')
sage: S.<y> = QuotientRing(R, R.ideal(x^8+x^4+x^3+x+1))
sage: S.is_field()
True
sage: S.cardinality()
256
sage: y^8 + y^4 + y^3 + y + 1      # defining polynomial
0

henceIn particular

sage: S.ideal(1) == S.ideal(y) == S.ideal(y^4 + 1)
True

What you want to consider is a different object, namely GF(256)[y] you need to construct a polynomial ring over GF(256). The construction R.<x> in Sage does not build a polynomial ring but simply assign to x the generator of R.

With your code S = GF(256) is a field and y its generator

sage: R.<x> = PolynomialRing(GF(2), 'x')
sage: S.<y> = QuotientRing(R, R.ideal(x^8+x^4+x^3+x+1))
sage: S.is_field()
True
sage: S.cardinality()
256
sage: y^8 + y^4 + y^3 + y + 1      # defining polynomial
0

In particular

sage: S.ideal(1) == S.ideal(y) == S.ideal(y^4 + 1)
True

What you want to consider is a different object, namely GF(256)[y] , and for that you need to construct a polynomial ring over GF(256). The construction R.<x> in Sage does not build a polynomial ring but simply assign to x the generator of R.