Finite Fields: Theory, Applications and Algorithms