OKlibrary  0.2.1.6
Rijndael.hpp File Reference

The docus for computer algebra system implementations of the Rijndael block cipher. More...

Go to the source code of this file.


Detailed Description

The docus for computer algebra system implementations of the Rijndael block cipher.

Terminology

  • A bit may 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 which represents the polynomial x^7 + x^5 + x.
  • 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)) but since this is only used for multiplication by a constant, the constant can be carefully chosen such that it does have an inverse.
  • A block in Rijndael is set of input data supplied as plaintext to the algorithm. This can be of size 128 to 256 bit (in increments of 32) and is, in general, modelled as a (4xn) matrix of bytes (hence the requirement for block size to be in increments of 32 bits).

Definition in file Rijndael.hpp.