I've been writing a series on Galois Fields / Finite Fields from a computer programmer's perspective. It's essentially the guide that I wanted when I first learned the subject. I imagine it as a guide that could gently onboard anyone that is interested in the subject.
I don't assume too much mathematical background beyond high-school level algebra. However, in some applications (for example: Reed-Solomon), familiarity with Linear Algebra is required.
All code is written in a Literate Programming style. Code is written as reference implementations and I try hard to make implementations understandable.
Currently I've completed the following sections:
01: Group Theory
02: Field Theory
03: Implementing GF(p)
04: Polynomial Arithmetic
05: Polynomial Fields GF(p^k)
06: Implementing GF(p^k)
07: Implementing Binary Fields GF(2^k)
08: Cyclic Redundancy Check (CRC)
09: Linear Algebra over Fields
Future sections are planned:
Reed-Solomon Erasure Coding
AES (Rijndael) Encryption
Rabin Fingerprinting
Extended Euclidean Algorithm
Log and Invlog Tables
Elliptic Curves
Bit-matrix Representations of GF(2^k)
Cauchy Reed-Solomon XOR Codes
Fast Multiplication with FFTs
Vectorization Implementation Techniques
I hope this series is helpful to people out there. Happy to answer any questions and would love to incorporate feedback.