For your purposes, the elements of $GF(256)$ are polynomials in $x$ of degree $\le 7$ with coefficients in $GF(2)$. $GF(2)$ is just $\{0,1\}$ with binary addition and multiplication, but there are no carries: 1+1=0 in $GF(2)$.
So for example, $x^4 + x^3 + 1$, $x^7 + x^2 + x$, $x^5 + x^3 + 1$, are all elements of $GF(256)$. There are 256 elements in all (hence the name $GF(256)$).
Addition of 2 polynomials in $GF(256)$ is straightforward. For example:
$(x^4 + x^3 + 1) + (x^3 + x^2 + 1) = x^4 + x^2$. This is just normal addition of polynomials, but the coefficients of the calculations take place in $GF(2)$. So when I added the 2 $x^3$ terms together, the coefficient became 1+1=0 (so the $x^3$ term disappeared altogether). As bit sequences this would be: 11001 + 1101 = 10100. This is straightforward to implement in most programming languages: It's just an XOR of the bit sequences.
To multiply 2 polynomials in $GF(256)$, first you multiply the polynomials just like ordinary polynomials but again, remembering that the calculations take place in $GF(2)$. Then divide the result by $x^8+x^4+x^3+x^2+1$ and take the remainder. Unlike addition, this is less straightforward to implement from scratch. (You can't use the usual multiplication operator in your programming language to do the multiplication, because ordinary multiplication has carries, but $GF(2)$ does not.)
See the example here which is a slightly different polynomial (they use $x^8+x^4+x^3+x+1$ instead of $x^8+x^4+x^3+x^2+1$), but it's the same process. There is also a description of a multiplication algorithm there (you'll have to change it slightly for your polynomial).
A (base-$g$) discrete logarithm of a finite field $\Bbb{F}_q$, is a function
$$
\log_g:\Bbb{F}_q^*\to\Bbb{Z}_{q-1}
$$
defined via the equivalence $g^j=x\Leftrightarrow \log_g(x)=j$. For this to be well-defined it is imperative that $g$ is a primitive element, i.e. a generator of $\Bbb{F}_q^*$, and that the domain of $\log_g$ is the
residue class ring of integer modulo $q-1$, as $g^{q-1}=g^0=1$.
It immediately follows that the discrete logarithm satisfies the familiar rules
$$
\begin{aligned}
\log_g(x\cdot y)&=\log_g(x)+\log_g(y),\\
\log_g(x^n)&=n\cdot\log_g(x)
\end{aligned}
$$
for all elements $x,y\in \Bbb{F}_q^*$ and all integers $n$. The arithmetic
on the r.h.s. is that of the ring $\Bbb{Z}_{q-1}$.
It is known that when $q=8$, a zero $\alpha$ of $x^3+x+1$ generates $\Bbb{F}_8^*$. This is proven by the following calculation, where we repeatedly
use the fact that we are working in characteristic two, and that we have the
relation $\alpha^3=\alpha+1$.
$$
\eqalign{
\alpha^0&=&&=1,\\
\alpha^1&=&&=\alpha,\\
\alpha^2&=&&=\alpha^2,\\
\alpha^3&=&&=1+\alpha,\\
\alpha^4&=&\alpha\cdot\alpha^3=\alpha(1+\alpha)&=\alpha+\alpha^2,\\
\alpha^5&=&\alpha\cdot\alpha^4=\alpha(\alpha+\alpha^2)=\alpha^2+\alpha^3=\alpha^2+(1+\alpha)&=1+\alpha+\alpha^2,\\
\alpha^6&=&\alpha\cdot\alpha^5=\alpha(1+\alpha+\alpha^2)=\alpha+\alpha^2+\alpha^3=
\alpha+\alpha^2+(1+\alpha)&=1+\alpha^2,\\
\alpha^7&=&\alpha\cdot\alpha^6=\alpha(1+\alpha^2)=\alpha+\alpha^3=\alpha+(1+\alpha)&=1.
}$$
We see from the end results in the last column that all the non-zero
quadratic polynomials evaluated at $\alpha$ appear. This is yet another confirmation of the fact that $\alpha$ is a primitive element.
The discrete logarithm is used to replace the cumbersome multiplication (and raising
to an integer power) of the field with more familiar integer arithmetic. Exactly like the old-timers used logarithm tables to replace the error-prone multiplication with the easier addition.
For example
$$
(1+\alpha)(1+\alpha+\alpha^2)=\alpha^3\cdot\alpha^5=\alpha^8=\alpha^7\cdot\alpha=\alpha.
$$
Note that both the base-$\alpha$ discrete logarithms and its inverse mapping are needed. I generate such a table as a part of the program initialization, whenever I carry out extensive computer-aided calculations involving a finite field. The above table gives the discrete logarithm when read from right to left, and the inverse mapping (that we actually produced above) when read from left to right.
Similarly with $q=16$ we use $\gamma$, a zero of $x^4+x+1$. This time the table looks like
$$
\begin{aligned}
\gamma^0&=&1\\
\gamma^1&=&\gamma\\
\gamma^2&=&\gamma^2\\
\gamma^3&=&\gamma^3\\
\gamma^4&=&\gamma+1\\
\gamma^5&=\gamma(\gamma+1)=&\gamma^2+\gamma\\
\gamma^6&=\gamma(\gamma^2+\gamma)=&\gamma^3+\gamma^2\\
\gamma^7&=\gamma^4+\gamma^3=&\gamma^3+\gamma+1\\
\gamma^8&=(\gamma^4)^2=&\gamma^2+1\\
\gamma^9&=\gamma(\gamma^2+1)=&\gamma^3+\gamma\\
\gamma^{10}&=\gamma^4+\gamma^2=&\gamma^2+\gamma+1\\
\gamma^{11}&=&\gamma^3+\gamma^2+\gamma\\
\gamma^{12}&=\gamma^4+\gamma^3+\gamma^2=&\gamma^3+\gamma^2+\gamma+1\\
\gamma^{13}&=\gamma^4+\gamma^3+\gamma^2+\gamma=&\gamma^3+\gamma^2+1\\
\gamma^{14}&=\gamma^4+\gamma^3+\gamma=&\gamma^3+1\\
(\gamma^{15}&=\gamma^4+\gamma=&1)
\end{aligned}
$$
Thus for example
$$
(\gamma^3+1)(\gamma^2+1)=\gamma^{14}\cdot\gamma^8=\gamma^{22}=\gamma^7=\gamma^3+\gamma+1.
$$
As another example of the use of this table I want to discuss the problem of factorizing $x^4+x+1$ over $\Bbb{F}_4$. To that end we need to first identify a copy of $\Bbb{F}_4$ as a subfield of $\Bbb{F}_{16}$. We just saw that $\gamma$ is of order fifteen. Therefore $\gamma^5=\gamma^2+\gamma$ and $\gamma^{10}=\gamma^2+\gamma+1$ are third roots of unity. It is then trivial to check that we have a homomorphism of fields $\sigma:\Bbb{F}_4\to\Bbb{F}_{16}$ given by $\sigma(\beta)=\gamma^5$. Note that composing this (from either end) by the Frobenius automorphism gives an alternative embedding $\beta\mapsto \gamma^{10}$.
Basic Galois theory tells us that
$$
x^4+x+1=(x-\gamma)(x-\gamma^2)(x-\gamma^4)(x-\gamma^8)
$$
as we get the other roots by repeatedly applying the Frobenius automorphism $F:x\mapsto x^2$. Here we see that the factor
$$
(x-\gamma)(x-\gamma^4)=x^2+x(\gamma+\gamma^4)+\gamma^5=x^2+x+\gamma^5
$$
is stable under the automorphism $F^2$, and thus (as we also see directly!) has its
coefficients in the subfield $\sigma(\Bbb{F}_4)$. The same holds for the remaining factor
$$
(x-\gamma^2)(x-\gamma^8)=x^2+x(\gamma^2+\gamma^8)+\gamma^{10}=x^2+x+\gamma^{10}.
$$
Pulling back the effect of $\sigma$ we get the desired factorization
$$
x^4+x+1=(x^2+x+\beta)(x^2+x+\beta+1)
$$
in $\Bbb{F}_4[x]$.
Here is a local version of similar tables for $\Bbb{F}_{256}$
Best Answer
For any given $n$, there is at most one field with $n$ elements: only one, if $n$ is a power of a prime number ($2, 3, 2^2, 5, 7, 2^3, 3^2, 11, 13, \ldots$) and none otherwise ($6, 10, 12, 14\ldots$). This field with $n$ elements is written as $\Bbb F_n$ or as $GF(n)$.
Suppose we want to construct $\Bbb F_n$ where $n=p^k$. When $k=1$, this is easy-peasy: take the $n$ elements to be the integers $0, 1, 2\ldots p-1$, and the addition and multiplication are done modulo $n$.
When $k>1$ it is more interesting. One possible construction goes like this:
The elements of $\Bbb F_{p^k}$ are the polynomials $$a_{k-1}x^{k-1} + a_{k-2}x^{k-2} + \ldots + a_1x+a_0$$ where the coefficients $a_i$ are elements of $\Bbb F_p$. That is, the coefficients are just integers in $\{0, 1, \ldots p-1\}$, but with the understanding that the addition and multiplication will be done modulo $p$. Note that there are $p^k$ of these polynomials in total.
Addition of polynomials is done exactly as usual: combine like terms, but remember that the the coefficients are added modulo $p$ because they are elements of $\Bbb F_p$.
Multiplication is more interesting:
a. Pick an irreducible polynomial $P$ of degree $k$. “Irreducible” means that it does not factor into a product of smaller polynomials. How to actually locate an irreducible polynomial is an interesting question; here we will mostly ignore it.
b. To multiply two elements, multiply them normally, remembering that the coefficients are in $\Bbb F_p$. Divide the product by $P$ and keep the remainder. Since $P$ has degree $k$, the remainder must have degree at most $k-1$, and this is your answer.
Now we will see an example: we will construct $\Bbb F_{2^2}$. Here $k=2$ and $p=2$. The elements will be polynomials of degree at most 1, with coefficients in $\Bbb F_2$. There are four elements: $0x+0, 0x+1, 1x+0, $ and $1x+1$. As usual we will write these as $0, 1, x, x+1$. This will not be misleading.
Addition is straightforward: combine like terms, remembering that $1+1=0$ because the coefficients are in $\Bbb F_2$:
$$\begin{array}{c|cccc} + & 0 & 1 & x & x+1 \\ \hline 0 & 0 & 1 & x & x+1 \\ 1 & 1 & 0 & x+1 & x \\ x & x & x+1 & 0 & 1 \\ x+1 & x+1 & x & 1 & 0 \end{array} $$
The multiplication as always is more interesting. We need to find an irreducible polynomial $P$. It so happens that $P=x^2+x+1$ is the only one that works. (If you didn't know this, you could find out easily: a reducible polynomial of degree 2 factors into two linear factors. So the reducible polynomials are $x^2, x·(x+1) = x^2+x$, and $(x+1)^2 = x^2+2x+1 = x^2+1$. That leaves only $x^2+x+1$.)
To multiply two polynomials, we multiply them normally, then divide by $x^2+x+1$ and keep the remainder. For example, what is $(x+1)(x+1)$? It's $x^2+2x+1 = x^2 + 1$. There is a theorem from elementary algebra (the “division theorem”) that we can find a unique quotient $Q$ and remainder $R$, with the degree of $R$ less than 2, such that $PQ+R = x^2+1$. In this case, $Q=1, R=x$ works. (You should check this.) Since $R=x$ this is our answer: $(x+1)(x+1) = x$.
Let's try $x·x = x^2$. We want $PQ+R = x^2$, and it happens that $Q=1, R=x+1$ works. So $x·x = x+1$.
I strongly recommend that you calculate the multiplication table yourself. But here it is if you want to check:
$$\begin{array}{c|cccc} · & 0 & 1 & x & x+1 \\ \hline 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 1 & x & x+1 \\ x & 0 & x & x+1 & 1 \\ x+1 & 0 & x+1 & 1 & x \end{array} $$
To calculate the unique field $\Bbb F_{2^3}$ of order 8, you let the elements be the 8 second-degree polynomials $0, 1, x, \ldots, x^2+x, x^2+x+1$ and instead of reducing by $x^2+x+1$, you reduce by $x^3+x+1$. (Not by $x^3+x^2+x+1$, because that factors as $(x^2+1)(x+1)$.) To calculate the unique field $\Bbb F_{3^2}$ of order 27, you start with the 27 third-degree polynomials with coefficients in $\{0,1,2\}$, and you reduce by $x^3+2x+1$ (I think).
The special notation $\Bbb F_p[x]$ means the ring of all polynomials with coefficients from $\Bbb F_p$. $\langle P \rangle$ means the ring of all multiples of polynomial $P$. (A ring is a set with an addition, subtraction, and multiplication defined.)
When we write $\Bbb F_p[x] / \langle P\rangle$ we are constructing a thing called a “quotient” structure. This is a generalization of the process that turns the ordinary integers $\Bbb Z$ into the modular-arithmetic integers we have been calling $\Bbb F_p$. To construct $\Bbb F_p$, we start with $\Bbb Z$ and then agree that two elements of $\Bbb Z$ will be considered equivalent if they differ by a multiple of $p$.
To get $\Bbb F_p[x] / \langle P \rangle$ we start with $\Bbb F_p[x]$, and then agree that elements of $\Bbb F_p[x]$ will be considered equivalent if they differ by a multiple of $P$. The division theorem guarantees that of all the equivalent polynomials in a class, exactly one of them will have degree less than that of $P$, and that is the one we choose as a representative of its class and write into the multiplication table. This is what we are doing when we “divide by $P$ and keep the remainder”.
A particularly important example of this construction is $\Bbb R[x] / \langle x^2 + 1\rangle$. That is, we take the set of polynomials with real coefficients, but we consider two polynomials equivalent if they differ by a multiple of $x^2 + 1$. By the division theorem, each polynomial is then equivalent to some first-degree polynomial $ax+b$.
Let's multiply $$(ax+b)(cx+d).$$ As usual we obtain $$acx^2 + (ad+bc)x + bd.$$ From this we can subtract $ac(x^2 + 1)$ to obtain the equivalent first-degree polynomial $$(ad+bc) x + (bd-ac).$$
Now recall that in the complex numbers, $(b+ai)(d + ci) = (bd-ac) + (ad+bc)i$. We have just constructed the complex numbers,with the polynomial $x$ playing the role of $i$.