Finite fields and their applications