Pages

IP Address Tracker

IP
Arun Anoop M

Sunday, December 8, 2013

AES by Prof G.Samid (http://wesecure.net/)

AES is the official replacement of DES, highly-regarded, widely used symmetric cipher -- efficient in both hardware and software. 
AES is a block cipher with 128 bits blocks. It takes in several size keys: 128, 192, and 256 bits long. 128 bits is the common standard so far.

AES inherited a lot from DES. The block configuration, the encryption-decryption algorithmic reversibility, the concept of successive rounds, and extended round keys, and of course, the rich use of transposition and substitution. Yet, AES introduces new complexity schemes which are designed to increase its security compared to DES.

bird`s view: The 128 bits of the plaintext block are organized in a 4x4 matrix of 16 bytes (each byte has 8 bits). This matrix is called the `state matrix`. The fitting is column wise: the 128 bits of the plaintext first fill the first column in the state matrix, then the second, etc. AES operation is a succession of modifications to the contents of the state matrix from its input state to its output state.

AES features between 10 ro 14 rounds of state matrix modification. Each round is comprised of:
  • box substitution
  • shift row permutation
  • column substitution
  • key XORing 
  • The input state matrix is first XORed with 128bits key material, following by the 10 to 14 rounds. Each round also uses 128bits (16 bytes, 4 words) key material. The key material for each round is generated from the input 128bits key. This is done four words at a time in a complex XOR scheme.

    The per-round elements operate as follows:

    box substitution : each of the 16 bytes of the state matrix is substituted with another value according to a pre-written substitution box (S-box). The S-box is a particular arrangement of all possible 256 bytes in a 16x16 matrix. Each byte in the state matrix is interpreted as follows: the leftmost 4 bits define a row in the S-box, and the four rightmost bits define a column there. This way the contents of a state byte points to some other byte value. That value now substitutes for the value that pointed to it.
     
    shift row permutation: The four rows of the state matrix are now shifted as follows: the first row stays in tact, the second is shifted one byte to the left, where the leftmost byte is recycled to the rightmost position. The third row undergoes the same -- twice, and the 4th row shift byte-wise to the left 3 times.
     
    column substitution: In this operation the value of each byte is substituted by a byte that is a function of all the other bytes in the column. The substitution is based on Gallois 28polynomial operation. Accordingly each byte is interprete as an x8polynomial. The state matrix is being multiplied by a fixed matrix:
    2 3 1 1
    1 2 3 2
    1 1 2 3
    3 1 1 2
    This way the value of each byte in the output matrix depends on the values of all the other bytes in the column. The byte-wise multiplication (byte from the fixed matrix times byte from the state matrix) is conducted modulu:
  • x8+ x4+ x3+ x + 1 
    Key XORing: The state matrix is XORed with 128 bits of key material..

    No comments:

    Post a Comment