# Galois Field and the Advanced Encryption Standard

I got a taste of some interesting mathematics stuff while i was preparing for my internals last weekend.Network Security has Advanced Encryption part of my syllabus and to the greatest of comedies finite field arithmetic was not taught as it was not part of the syllabus.

Now  Field in an modern algebra is an algebraic structure in which addition,multiplication is supported with the rules of a ring i.e addition and multiplication should be commutative.Every element except zero has multiplicative inverse in the set.Division is also possible inside the field to some extent.Examples of field are complex numbers,rational numbers etc.

But above mentioned are basically infinte fields  but in cryptography we are mainly concerned with finite fields.It is refered to as Galois Field now for every prime number p there exists a finite field with p^n elements where p is the charecteristic of the field.Now any arithmentic operation is performed modulo p.So the simplest of finite field is 2^1 which contains the elements 0,1.

This gives the Cayle’s table for 2^1 finite field with the addition and multiplication operations.

``` + | 0 1        · | 0 1
--+----        --+----
0 | 0 1        0 | 0 0
1 | 1 0        1 | 0 1```

Now why cant we use p as a non prime number this is because if p is non prime there cant be a  multiplicative inverse as the gcd(anynumber,p) may not be equal to one that is they may not be relatively prime to each other.In modulor arithmetic inverse of a number mod p exists if they are relatively prime hence its only a ring if p is not prime.

In AES we use the 2^8 GF which can be represented in polynomial or binary form as like 1100000 representing the polynomials whose power should be less than 8 and coefficients 0 or 1.So if we ad to polynomials in galois field if we get 2 as coefficient we take mod 2 and the sum is 0.

It was interesting studying such refereshing maths probably it would be great to know things or resources that can be interesting for a computer professional.

1. Ananth
2. venkatesh