Monthly Archives: April 2010

Advanced Encryption Standard – Rijndael


AES is an encryption standard consisting of block ciphers. The popular flavors are 128bit, 192bit and 256 bit. Its pretty much secure but its security is under debate as more and more computing power is available to masses. Still some way or the other you will for sure come across AES, mostly for educational purposes. for more information about its security you can visit:

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Procedure:

I initially thought of explaining this by example but found it to be a cumbersome task to perform a round of AES just for an example.

AES is a block Cipher, so that means there is going to be a round function involved in it. Also from block ciphers we infer that there is going to be a key schedule, because without having both of them, the purpose of diffusion and substitution dies.And for reference,  Substitution tries to ensure that each output bit is dependant on each bit of the input and each bit of the key in a complex (non-linear) algebraic relationship; this is called confusion. The permutation rearranges the substituted bits within the block so that subsequent substitutions will operate on different input bits; this is called diffusion. By the way Confusion and diffusion are two fundamental properties of a cipher as identified by Mr. claude Shanon, defined largely in his Paper on Communication theory of Communication Systems.

S-Box:

An s-box is a substitution box that is used to replace the original text/state by its equivalent entry in the S-box. An S-box is made by taking inverse of a vector input using the Affine transform, but this is not that important to remember. You just need to know that you have to replace the orignal state byte by byte with entries in the s-box. An S-box looks like this:

x,y| 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 
10 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 
20 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 
30 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 
40 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 
50 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 
60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 
70 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 
80 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 
90 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db 
a0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 
b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 
c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a 
d0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e 
e0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df 
f0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 

Rcon:

An Rcon Box is like an S-box, but it is generated using the power of 2 over a finite field.

 

AES has the following steps in its round function, the round function is executed 10 times:

  1. Sub bytes
  2. Shift rows
  3. Mix columns
  4. Add round key

The first round however has an additional Add round key step before sub bytes. Like wise in the last Round function we do not perform mix columns step.

i’ll complete this article in future may be.

 

Tagged , ,