#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.

Reply via email to