Is every primitive element of a finite field of characteristic $2$, a generator of the multiplicative group?

Not necessarily. For instance $f(x)=x^4+x^3+x^2+x+1$ is irreducible over $\Bbb F_2$, so a solution $\alpha$ of $f(x)=0$ generates $\Bbb F_{16}$. But $\alpha$ has multiplicative order $5$ and does not generate $\Bbb F_{16}^\times$.


Yes. Every primitive element of a finite field $K$ is a generator of the multiplicative group $K^*$.

THIS IS BY DEFINITION

  • In general field theory an element $\alpha\in L$, $L$ an extension field of $K$, is called primitive, if $L=K(\alpha)$. In other words, all we need is that $L$ is the smallest extension field of $K$ that also contains the element $\alpha$.
  • But, in the context of finite fields, a different convention has been adopted. An element $g$ of a finite field $K$ is called primitive if it is a generator of the multiplicative group $K^*$. In the context of finite fields an element does not gain the attribute primitive simply by generating $K$ as an extension of the prime field.
  • You don't have to take my word alone for this. The bible of finite fields, Lidl & Niederreiter also uses this convention, see their definition 2.9. from page 51

A generator of the cyclic group $\Bbb{F}_q^*$ is called a primitive element of $\Bbb{F}_q$.

I have tried to explain this difference in the tag wiki.

I believe (my impressions only) the difference in conventions comes from the following sources:

  1. The finite field community usage is generalizing the notion of a primitive root modulo a prime $p$. A coset $\overline{a}$ of an integer $a$ modulo $p$ is a primitive root modulo $p$ if and only if it is a generator of the multiplicative group $\Bbb{Z}_p^*$. In that setting only requiring $\overline{a}$ to generate the field extension is utterly non-interesting because we never leave the prime field.
  2. In coding theoretical settings the finite field usage is the most useful one. Comes up much more frequently (here you may take my word for it). For example, we often view elements of a code as functions from a cyclic subgroup of the multiplicative group of the underlying field, and do things like discrete Fourier analysis on the subgroup. As often long codes are preferred, a natural thing is to go to the maximal cyclic subgroup, hence a primitive generator is required.