OKlibrary  0.2.1.6
Rijndael.hpp File Reference

Plans for cryptological tools regarding the Rijndael cipher. More...

Go to the source code of this file.


Detailed Description

Plans for cryptological tools regarding the Rijndael cipher.

Todo:
Expand docus
  • Add basic overview of AES/Rijndael.
  • Add additional terminology and refine current terminology
Todo:
Migrate the mupad-code.
  • What is to be achieved here? A movement of the relevant AES code from OKlib/ComputerAlgebra/Mupad/TestenFormelGenAES.mup to a seperate mupad AES implementation in ComputerAlgebra/Cryptology/ with docus and demos attached?
Todo:
Terminology (DONE Moved to ComputerAlgebra/Cryptology/docus/Rijndael.hpp)
  • A bit could be called
    • an element in GF(2)
    • an element in the "bit field".
  • An 8-bit element, representing a polynomial over GF(2) or an element in GF(2^8) can be called
    • an element in GF(2^8)
    • an element in the "byte field".
    • an element in the "rijndael byte field"
  • The most significant bit represents the highest order term in the polynomial, and values are usually written in hexadecimal notation, so, for example, A2 is 10100010. Some clarification may be needed on the implementation details for the specific GF(2^8) field.
  • A 4-byte element formed by taking a column of GF(2^8) elements in the Rijndael block might be called
    • a 4-byte column
    • an element in the 4-Byte PID (Principal Ideal Domain)
    • an element in the QR (Quotient Ring)
    as this is not actually a field (some elements don't have an inverse as the modulus x^4 + 1 isn't irreducible over GF(2^8)).
  • Which of these is most appropriate? It seems "Quotient Ring" but further reading is necessary and perhaps a more elegant and more specific name can be found. Again, the most significant byte of the 4-bytes represents the coefficient of the highest order term in the polynomial.

Definition in file Rijndael.hpp.