I discussed this again with my colleagues and maybe its just not so sure 
what the correct way to do is?

Is it actually clear what the "correct" ordering of finite field elements 
is? The canonical ordering is 0, 1, a^1, a^2, ..., - but then this 
representation and ordering depends on the representation of the actual 
instance, so which polynomial is picked. If instead the elements are 
ordered after the representing polynomial is chosen, we get 0, 1, a, a+1, 
... - but for example list(GF(2^3)) is differently ordered, depending on 
the chosen implementation. pari and ntl results in 0, 1, a, a+1, ... while 
givaro gives 0, a, a+1, ..., 1.

Regarding this, it might be ok to work with the output of 
`sorted(GF(...))`, as its done currently. Nevertheless, there remains the 
problem with different polynomials for representing the finite field and 
thus the resulting S-box might be different. Here is an example of what I 
mean:

sage: F1 = GF(2^3, name='a', modulus=PolynomialRing(GF(2), 'a')('a^3 + a + 
1'))
....: F2 = GF(2^3, name='a', modulus=PolynomialRing(GF(2), 'a')('a^3 + a^2 
+ 1'))
....: R1 = PolynomialRing(F1, 'x')
....: R2 = PolynomialRing(F2, 'x')
....: inv1 = R1.gen()**(2**3-2)
....: inv2 = R2.gen()**(2**3-2)
....: S1 = SBox([inv1(v) for v in sorted(F1)])
....: S2 = SBox([inv2(v) for v in sorted(F2)])
....: S1, S2
(0, 1, 5, 6, 7, 2, 3, 4),
(0, 1, 6, 4, 3, 7, 2, 5)

OK, so not so sure if this all makes sense in the context of the above 
question, but this behaviour should at least be mentioned in the docs, I 
think.
Regarding the above discussed point, I still think that the current 
behaviour is 'wrong' in the way that one would expect a different result.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to