#19508: Implementing RijndaelGF
-------------------------------------+-------------------------------------
Reporter: tgagne | Owner:
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-6.10
Component: cryptography | Resolution:
Keywords: cryptography, | Merged in:
aes, rijndaelgf | Reviewers: Martin Albrecht
Authors: Thomas Gagne | Work issues:
Report Upstream: N/A | Commit:
Branch: u/tgagne | 6bd7bee090dfcdea54ca6350dae1ec4bcb2d144d
/rijndael-gf | Stopgaps:
Dependencies: |
-------------------------------------+-------------------------------------
Changes (by malb):
* status: needs_review => needs_work
* reviewer: => Martin Albrecht
Comment:
1. BES and Rijndael-GF
> This approach to implementing Rijndael-GF bears some similarity to the
multivariate quadratic (MQ) systems utilized in :mod:`SR
<sage.crypto.mq.sr>`, in that the MQ systems also seek to describe the AES
cipher as a system of algebraic equations. Despite this initial similarity
though, Rijndael-GF and :mod:`SR <sage.crypto.mq.sr>` are quite different,
as this implementation operates over `(\GF{2^8})^{n_t}` and seeks to
provide a fully generalized algebraic representation of both the whole AES
cipher as well as its individual components, while :mod:`SR
<sage.crypto.mq.sr>` operates on `(\GF{2})^{4 n_t}` and `(\GF{2})^{8 n_t}`
and is instead a family of parameterizable variants of the AES suitable as
a framework for comparing different cryptanalytic techniques that can be
brought to bear on the AES.
This isn’t quite right. `mq.SR()` has two modes. `gf2=True` and
`gf2=False`. The latter implements BES which also operates over
`\GF{2^8}`.
2. At some point we should revisit where everything lives. The `mq` module
was initially intended to hold all kinds of “algebraic cryptanalysis”
code, but that never really got that far, partly because that sort of
cryptanalysis didn’t produce any tangible results against block ciphers,
really. In any case, Rijndael-GF seems similar to BES in being aimed at
such strategies so either they should both live under `mq` or perhaps
neither?
3. This is some extensive documentation, well done!
4. Functions like `hex_to_GF` which don’t use `self` at all, should be
declared `@staticobject`. Actually, I’m not sure that function should live
in Rijndael-GF at all, as it’s more general. Maybe a `string_to_field` or
`field_io` module should be added?
--
Ticket URL: <http://trac.sagemath.org/ticket/19508#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.