I have read a lot about Galois Fields (GF). They are also presented in The The Design of Rijndael: AES - The Advanced Encryption Standard on pages 13 and 14.
In computer memory, the polynomials in $F[x]|_l$ with $F$ a finite field can be stored efficiently by storing the $l$ coefficients as a string.
Example 2.1.6. The polynomial in GF$(2)|_8$ $$x^6+x^4+x^2+x+1$$ corresponds to the bit string $01010111$.
In their paper Differential propagation analysis of Keccak, they also use the notation $\mathbb{Z}_2^b$ :
In general, for a function $f$ with domain $\mathbb{Z}_2^b$, we define the weight of a differential $(u′, v')$ as $$w(u' \xrightarrow{f} v') = b - \log_2 |\{u: f(u) \oplus f(u \oplus u') = v'\}| $$
While I do understand the meaning of this notation (a binary input of length $n$), I also know that we can use finite fields to model such numbers. Hence my question: Is there a difference between $\mathbb{Z}_2^b$, $\text{GF}(2^b)$ and $\text{GF}(2)^b$