Find the elements of the extension field using primitive polynomial over $GF(4)$












2












$begingroup$


Let $p(z) = z^2 + z + 2$ be a primitive polynomial. I want to construct the elements of the extensional field $GF(4^2)= GF(16).$



Since $p(z)$ is primitive polynomial , it should generate the elements of the extension field.



Let $alpha$ be zero point then :





  • $alpha^2 + alpha + 2 rightarrow alpha^2 = -alpha-2 rightarrow alpha^2 = 3alpha + 2$.


Using $alpha$ :




  • $alpha^1 = alpha$


  • $alpha^2 = 3alpha+2$ and according to the book, $alpha^2 = alpha+2$ but $-1 mod 4 = 3$.


Since the base is $4$ how can it be that the correct value of $alpha^2 = alpha + 2$?



I have mostly solved problems where the base is a prime number and the same procedure i have used here.










share|cite|improve this question









$endgroup$








  • 1




    $begingroup$
    $GF(4)$ is not the same as $mathbb{Z}/(4)$; it's a degree $2$ extension of $mathbb{Z}/(2)$. So over $GF(4)$, $z^2+z+2=z^2+z$ is not even irreducible.
    $endgroup$
    – Eric Wofsey
    Jan 28 at 1:59










  • $begingroup$
    @EricWofsey I want the coefficients to be one of the these values ${0,1,2,3}$. I need this for BCH codes where the coefficients are not only binary.
    $endgroup$
    – Khan Saab
    Jan 28 at 2:06










  • $begingroup$
    Khan Saab, see my answer for an explanation as to how $p(z)$ becomes a primitive polynomial. When we interpret the coefficient $2$ as a zero of $x^2+x+1$ in the field $GF(4)$, then $z^2+z+2$ is irreducible and also primitive. You need to adjust your meaning of $2$ for all this to make sense. Starting from $1+1neq2$.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:52












  • $begingroup$
    Eric Wofsey did explain the relevant bits in his answer. I simply elaborated.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:30
















2












$begingroup$


Let $p(z) = z^2 + z + 2$ be a primitive polynomial. I want to construct the elements of the extensional field $GF(4^2)= GF(16).$



Since $p(z)$ is primitive polynomial , it should generate the elements of the extension field.



Let $alpha$ be zero point then :





  • $alpha^2 + alpha + 2 rightarrow alpha^2 = -alpha-2 rightarrow alpha^2 = 3alpha + 2$.


Using $alpha$ :




  • $alpha^1 = alpha$


  • $alpha^2 = 3alpha+2$ and according to the book, $alpha^2 = alpha+2$ but $-1 mod 4 = 3$.


Since the base is $4$ how can it be that the correct value of $alpha^2 = alpha + 2$?



I have mostly solved problems where the base is a prime number and the same procedure i have used here.










share|cite|improve this question









$endgroup$








  • 1




    $begingroup$
    $GF(4)$ is not the same as $mathbb{Z}/(4)$; it's a degree $2$ extension of $mathbb{Z}/(2)$. So over $GF(4)$, $z^2+z+2=z^2+z$ is not even irreducible.
    $endgroup$
    – Eric Wofsey
    Jan 28 at 1:59










  • $begingroup$
    @EricWofsey I want the coefficients to be one of the these values ${0,1,2,3}$. I need this for BCH codes where the coefficients are not only binary.
    $endgroup$
    – Khan Saab
    Jan 28 at 2:06










  • $begingroup$
    Khan Saab, see my answer for an explanation as to how $p(z)$ becomes a primitive polynomial. When we interpret the coefficient $2$ as a zero of $x^2+x+1$ in the field $GF(4)$, then $z^2+z+2$ is irreducible and also primitive. You need to adjust your meaning of $2$ for all this to make sense. Starting from $1+1neq2$.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:52












  • $begingroup$
    Eric Wofsey did explain the relevant bits in his answer. I simply elaborated.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:30














2












2








2





$begingroup$


Let $p(z) = z^2 + z + 2$ be a primitive polynomial. I want to construct the elements of the extensional field $GF(4^2)= GF(16).$



Since $p(z)$ is primitive polynomial , it should generate the elements of the extension field.



Let $alpha$ be zero point then :





  • $alpha^2 + alpha + 2 rightarrow alpha^2 = -alpha-2 rightarrow alpha^2 = 3alpha + 2$.


Using $alpha$ :




  • $alpha^1 = alpha$


  • $alpha^2 = 3alpha+2$ and according to the book, $alpha^2 = alpha+2$ but $-1 mod 4 = 3$.


Since the base is $4$ how can it be that the correct value of $alpha^2 = alpha + 2$?



I have mostly solved problems where the base is a prime number and the same procedure i have used here.










share|cite|improve this question









$endgroup$




Let $p(z) = z^2 + z + 2$ be a primitive polynomial. I want to construct the elements of the extensional field $GF(4^2)= GF(16).$



Since $p(z)$ is primitive polynomial , it should generate the elements of the extension field.



Let $alpha$ be zero point then :





  • $alpha^2 + alpha + 2 rightarrow alpha^2 = -alpha-2 rightarrow alpha^2 = 3alpha + 2$.


Using $alpha$ :




  • $alpha^1 = alpha$


  • $alpha^2 = 3alpha+2$ and according to the book, $alpha^2 = alpha+2$ but $-1 mod 4 = 3$.


Since the base is $4$ how can it be that the correct value of $alpha^2 = alpha + 2$?



I have mostly solved problems where the base is a prime number and the same procedure i have used here.







polynomials galois-theory finite-fields cryptography coding-theory






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Jan 28 at 1:52









Khan SaabKhan Saab

1979




1979








  • 1




    $begingroup$
    $GF(4)$ is not the same as $mathbb{Z}/(4)$; it's a degree $2$ extension of $mathbb{Z}/(2)$. So over $GF(4)$, $z^2+z+2=z^2+z$ is not even irreducible.
    $endgroup$
    – Eric Wofsey
    Jan 28 at 1:59










  • $begingroup$
    @EricWofsey I want the coefficients to be one of the these values ${0,1,2,3}$. I need this for BCH codes where the coefficients are not only binary.
    $endgroup$
    – Khan Saab
    Jan 28 at 2:06










  • $begingroup$
    Khan Saab, see my answer for an explanation as to how $p(z)$ becomes a primitive polynomial. When we interpret the coefficient $2$ as a zero of $x^2+x+1$ in the field $GF(4)$, then $z^2+z+2$ is irreducible and also primitive. You need to adjust your meaning of $2$ for all this to make sense. Starting from $1+1neq2$.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:52












  • $begingroup$
    Eric Wofsey did explain the relevant bits in his answer. I simply elaborated.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:30














  • 1




    $begingroup$
    $GF(4)$ is not the same as $mathbb{Z}/(4)$; it's a degree $2$ extension of $mathbb{Z}/(2)$. So over $GF(4)$, $z^2+z+2=z^2+z$ is not even irreducible.
    $endgroup$
    – Eric Wofsey
    Jan 28 at 1:59










  • $begingroup$
    @EricWofsey I want the coefficients to be one of the these values ${0,1,2,3}$. I need this for BCH codes where the coefficients are not only binary.
    $endgroup$
    – Khan Saab
    Jan 28 at 2:06










  • $begingroup$
    Khan Saab, see my answer for an explanation as to how $p(z)$ becomes a primitive polynomial. When we interpret the coefficient $2$ as a zero of $x^2+x+1$ in the field $GF(4)$, then $z^2+z+2$ is irreducible and also primitive. You need to adjust your meaning of $2$ for all this to make sense. Starting from $1+1neq2$.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:52












  • $begingroup$
    Eric Wofsey did explain the relevant bits in his answer. I simply elaborated.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:30








1




1




$begingroup$
$GF(4)$ is not the same as $mathbb{Z}/(4)$; it's a degree $2$ extension of $mathbb{Z}/(2)$. So over $GF(4)$, $z^2+z+2=z^2+z$ is not even irreducible.
$endgroup$
– Eric Wofsey
Jan 28 at 1:59




$begingroup$
$GF(4)$ is not the same as $mathbb{Z}/(4)$; it's a degree $2$ extension of $mathbb{Z}/(2)$. So over $GF(4)$, $z^2+z+2=z^2+z$ is not even irreducible.
$endgroup$
– Eric Wofsey
Jan 28 at 1:59












$begingroup$
@EricWofsey I want the coefficients to be one of the these values ${0,1,2,3}$. I need this for BCH codes where the coefficients are not only binary.
$endgroup$
– Khan Saab
Jan 28 at 2:06




$begingroup$
@EricWofsey I want the coefficients to be one of the these values ${0,1,2,3}$. I need this for BCH codes where the coefficients are not only binary.
$endgroup$
– Khan Saab
Jan 28 at 2:06












$begingroup$
Khan Saab, see my answer for an explanation as to how $p(z)$ becomes a primitive polynomial. When we interpret the coefficient $2$ as a zero of $x^2+x+1$ in the field $GF(4)$, then $z^2+z+2$ is irreducible and also primitive. You need to adjust your meaning of $2$ for all this to make sense. Starting from $1+1neq2$.
$endgroup$
– Jyrki Lahtonen
Jan 28 at 5:52






$begingroup$
Khan Saab, see my answer for an explanation as to how $p(z)$ becomes a primitive polynomial. When we interpret the coefficient $2$ as a zero of $x^2+x+1$ in the field $GF(4)$, then $z^2+z+2$ is irreducible and also primitive. You need to adjust your meaning of $2$ for all this to make sense. Starting from $1+1neq2$.
$endgroup$
– Jyrki Lahtonen
Jan 28 at 5:52














$begingroup$
Eric Wofsey did explain the relevant bits in his answer. I simply elaborated.
$endgroup$
– Jyrki Lahtonen
Jan 28 at 6:30




$begingroup$
Eric Wofsey did explain the relevant bits in his answer. I simply elaborated.
$endgroup$
– Jyrki Lahtonen
Jan 28 at 6:30










2 Answers
2






active

oldest

votes


















4












$begingroup$

You seem confused about what $GF(4)$ is: it's not $mathbb{Z}/(4)$ (which is not even a field). You can represent $GF(4)$ as an extension of $GF(2)=mathbb{Z}/(2)$ by an element $beta$ such that $beta^2=beta+1$. You can identify $GF(4)$ with the set ${0,1,2,3}$ by mapping $beta$ to $2$ and $beta+1$ to $3$, which appears to be what the book you refer to has in mind, but this does not mean you are working mod $4$ (the addition and multiplication operations are not ordinary mod $4$ addition and multiplication on ${0,1,2,3}$).



In particular, $1+1=0$ in $GF(4)$ and so $alpha+2$ and $-alpha-2$ are the same thing, and so you have $alpha^2=alpha+2$.






share|cite|improve this answer









$endgroup$













  • $begingroup$
    You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:51










  • $begingroup$
    And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:15





















4












$begingroup$

Here is an educated guess. You are confused by the difference between algebraic/arithmetic and computers representation of elements of $GF(4)$.



The field
$$GF(4)={0,1,beta,beta+1},$$
where the arithmetic comes from the rules $1+1=beta+beta=0$, $beta^2=beta+1$. The element $beta$ (it could be denoted by something else if you wish) has no integer naturally associated with it.



However, in computer implementations we (including code written by yours truly worth a couple hundred CPU hours) we write the elements of $GF(4)$ as string of two bits:
$$0=00_2,quad 1=01_2,quad beta=10_2,quad beta+1=11_2.$$
Do you see the idea? The element $b_0+b_1beta$ is represented as the bitstring $b_1b_0$. Similarly we represent elements of $GF(2^m)$ as strings of $m$ bits. A big advantage of this is that addition in the field $GF(2^m)$ then becomes bitwise XOR of those bitstrings. Most (all?) computer hardwares have a superfast built-in function for performing bitwise XOR of two registers. So that's one of the basic arithmetic operations handed to us on a silver platter. Too good to pass up! The programmer only needs to worry about implementing the multiplication of $GF(2^m)$.
For smallish values of $m$ there are efficient ways of doing that (Caveat: there are other ways
of implementing e.g. $GF(4^2)$ even more efficiently for devices really short of memory).




Anyway, having fixed an internal presentation of elements of $GF(2^m)$, programmers
occasionally refer to them as integers represented by the same string of bits.




Because the integer $2$ is $10_2$ in binary, such a programmer may choose to refer to
$beta$ as $2$ and $beta+1$ as $11_2=3$. But they know that this is safe only among people in the know. If you do this in a general math forum, you are bound to confuse people. If you are a student still learning about this, you are bound to become confused by program documentation unless you first study this difference between algebraic notation and data representation internal to a computer.



So you may think of $GF(4)$ as the set ${0,1,2,3}$, but then you must include rules like $1+1=0$, $2+2=0$, $3=2+1$ in the definition of your addition.
And, you also need to make rules like $2*2=3$, $2*3=1$ a part of your definition of multiplication. If you don't know this, you will be confused, and your questions will confuse others.



The above is all standard, but I claimed to have AN EDUCATED GUESS. Here it is.



If we present $beta=2$ internally, then the quadratic
$$
p(x)=x^2+x+beta "=" x^2+x+2
$$

is a primitive polynomial. It takes a bit of experience to see this at a glance.
But, see the last part of my linked answer (prepared with referrals like this in mind). You see that I explain there why $x^2+x+beta$ is the minimal polynomial (over $GF(4)$) of some of the zeros of the well known primitive polynomial $x^4+x+1$ (over $GF(2)$).



So if $alpha$ is a zero of $p(x)$ you can do the usual reduction business, and show that the elements $alpha^i, i=0,1,ldots,14$, are the non-zero elements of $GF(16)$,
and $alpha^{15}=1$:
$$
begin{aligned}
alpha^2&=alpha+beta,\
alpha^3&=alpha^2+betaalpha=(1+beta)alpha+beta,\
alpha^4&=(1+beta)alpha^2+betaalpha=(1+beta+beta)alpha+(1+beta)beta=alpha+1,\
end{aligned}
$$

et cetera. All those powers of $alpha$ can be written in the form $c_1alpha+c_0$
where $c_0,c_1$ are elements of $GF(4)$. Feel free to continue that list.
If we revert to the $0,1,2,3$ notation of elements of $GF(4)$, the above calculation presents $alpha^2$ as $alpha+2$, $alpha^3$ as $3alpha+2$ and
$alpha^4$ as $alpha+1$. The last point proving that $alpha$ is a zero of the primitive polynomial $x^4+x+1$ over $GF(2)$.






share|cite|improve this answer











$endgroup$













    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3090351%2ffind-the-elements-of-the-extension-field-using-primitive-polynomial-over-gf4%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    4












    $begingroup$

    You seem confused about what $GF(4)$ is: it's not $mathbb{Z}/(4)$ (which is not even a field). You can represent $GF(4)$ as an extension of $GF(2)=mathbb{Z}/(2)$ by an element $beta$ such that $beta^2=beta+1$. You can identify $GF(4)$ with the set ${0,1,2,3}$ by mapping $beta$ to $2$ and $beta+1$ to $3$, which appears to be what the book you refer to has in mind, but this does not mean you are working mod $4$ (the addition and multiplication operations are not ordinary mod $4$ addition and multiplication on ${0,1,2,3}$).



    In particular, $1+1=0$ in $GF(4)$ and so $alpha+2$ and $-alpha-2$ are the same thing, and so you have $alpha^2=alpha+2$.






    share|cite|improve this answer









    $endgroup$













    • $begingroup$
      You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 5:51










    • $begingroup$
      And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 6:15


















    4












    $begingroup$

    You seem confused about what $GF(4)$ is: it's not $mathbb{Z}/(4)$ (which is not even a field). You can represent $GF(4)$ as an extension of $GF(2)=mathbb{Z}/(2)$ by an element $beta$ such that $beta^2=beta+1$. You can identify $GF(4)$ with the set ${0,1,2,3}$ by mapping $beta$ to $2$ and $beta+1$ to $3$, which appears to be what the book you refer to has in mind, but this does not mean you are working mod $4$ (the addition and multiplication operations are not ordinary mod $4$ addition and multiplication on ${0,1,2,3}$).



    In particular, $1+1=0$ in $GF(4)$ and so $alpha+2$ and $-alpha-2$ are the same thing, and so you have $alpha^2=alpha+2$.






    share|cite|improve this answer









    $endgroup$













    • $begingroup$
      You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 5:51










    • $begingroup$
      And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 6:15
















    4












    4








    4





    $begingroup$

    You seem confused about what $GF(4)$ is: it's not $mathbb{Z}/(4)$ (which is not even a field). You can represent $GF(4)$ as an extension of $GF(2)=mathbb{Z}/(2)$ by an element $beta$ such that $beta^2=beta+1$. You can identify $GF(4)$ with the set ${0,1,2,3}$ by mapping $beta$ to $2$ and $beta+1$ to $3$, which appears to be what the book you refer to has in mind, but this does not mean you are working mod $4$ (the addition and multiplication operations are not ordinary mod $4$ addition and multiplication on ${0,1,2,3}$).



    In particular, $1+1=0$ in $GF(4)$ and so $alpha+2$ and $-alpha-2$ are the same thing, and so you have $alpha^2=alpha+2$.






    share|cite|improve this answer









    $endgroup$



    You seem confused about what $GF(4)$ is: it's not $mathbb{Z}/(4)$ (which is not even a field). You can represent $GF(4)$ as an extension of $GF(2)=mathbb{Z}/(2)$ by an element $beta$ such that $beta^2=beta+1$. You can identify $GF(4)$ with the set ${0,1,2,3}$ by mapping $beta$ to $2$ and $beta+1$ to $3$, which appears to be what the book you refer to has in mind, but this does not mean you are working mod $4$ (the addition and multiplication operations are not ordinary mod $4$ addition and multiplication on ${0,1,2,3}$).



    In particular, $1+1=0$ in $GF(4)$ and so $alpha+2$ and $-alpha-2$ are the same thing, and so you have $alpha^2=alpha+2$.







    share|cite|improve this answer












    share|cite|improve this answer



    share|cite|improve this answer










    answered Jan 28 at 2:45









    Eric WofseyEric Wofsey

    191k14216349




    191k14216349












    • $begingroup$
      You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 5:51










    • $begingroup$
      And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 6:15




















    • $begingroup$
      You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 5:51










    • $begingroup$
      And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
      $endgroup$
      – Jyrki Lahtonen
      Jan 28 at 6:15


















    $begingroup$
    You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:51




    $begingroup$
    You are correct about the confusion between $GF(4)$ and $Bbb{Z}/(4)$. Yet, I'm sure the OP got their primitive polynomial from some source. See my answer for an explanation.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 5:51












    $begingroup$
    And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:15






    $begingroup$
    And +1 for including the interpretation $beta=2$, $beta+1=3$. I missed that in my first reading.
    $endgroup$
    – Jyrki Lahtonen
    Jan 28 at 6:15













    4












    $begingroup$

    Here is an educated guess. You are confused by the difference between algebraic/arithmetic and computers representation of elements of $GF(4)$.



    The field
    $$GF(4)={0,1,beta,beta+1},$$
    where the arithmetic comes from the rules $1+1=beta+beta=0$, $beta^2=beta+1$. The element $beta$ (it could be denoted by something else if you wish) has no integer naturally associated with it.



    However, in computer implementations we (including code written by yours truly worth a couple hundred CPU hours) we write the elements of $GF(4)$ as string of two bits:
    $$0=00_2,quad 1=01_2,quad beta=10_2,quad beta+1=11_2.$$
    Do you see the idea? The element $b_0+b_1beta$ is represented as the bitstring $b_1b_0$. Similarly we represent elements of $GF(2^m)$ as strings of $m$ bits. A big advantage of this is that addition in the field $GF(2^m)$ then becomes bitwise XOR of those bitstrings. Most (all?) computer hardwares have a superfast built-in function for performing bitwise XOR of two registers. So that's one of the basic arithmetic operations handed to us on a silver platter. Too good to pass up! The programmer only needs to worry about implementing the multiplication of $GF(2^m)$.
    For smallish values of $m$ there are efficient ways of doing that (Caveat: there are other ways
    of implementing e.g. $GF(4^2)$ even more efficiently for devices really short of memory).




    Anyway, having fixed an internal presentation of elements of $GF(2^m)$, programmers
    occasionally refer to them as integers represented by the same string of bits.




    Because the integer $2$ is $10_2$ in binary, such a programmer may choose to refer to
    $beta$ as $2$ and $beta+1$ as $11_2=3$. But they know that this is safe only among people in the know. If you do this in a general math forum, you are bound to confuse people. If you are a student still learning about this, you are bound to become confused by program documentation unless you first study this difference between algebraic notation and data representation internal to a computer.



    So you may think of $GF(4)$ as the set ${0,1,2,3}$, but then you must include rules like $1+1=0$, $2+2=0$, $3=2+1$ in the definition of your addition.
    And, you also need to make rules like $2*2=3$, $2*3=1$ a part of your definition of multiplication. If you don't know this, you will be confused, and your questions will confuse others.



    The above is all standard, but I claimed to have AN EDUCATED GUESS. Here it is.



    If we present $beta=2$ internally, then the quadratic
    $$
    p(x)=x^2+x+beta "=" x^2+x+2
    $$

    is a primitive polynomial. It takes a bit of experience to see this at a glance.
    But, see the last part of my linked answer (prepared with referrals like this in mind). You see that I explain there why $x^2+x+beta$ is the minimal polynomial (over $GF(4)$) of some of the zeros of the well known primitive polynomial $x^4+x+1$ (over $GF(2)$).



    So if $alpha$ is a zero of $p(x)$ you can do the usual reduction business, and show that the elements $alpha^i, i=0,1,ldots,14$, are the non-zero elements of $GF(16)$,
    and $alpha^{15}=1$:
    $$
    begin{aligned}
    alpha^2&=alpha+beta,\
    alpha^3&=alpha^2+betaalpha=(1+beta)alpha+beta,\
    alpha^4&=(1+beta)alpha^2+betaalpha=(1+beta+beta)alpha+(1+beta)beta=alpha+1,\
    end{aligned}
    $$

    et cetera. All those powers of $alpha$ can be written in the form $c_1alpha+c_0$
    where $c_0,c_1$ are elements of $GF(4)$. Feel free to continue that list.
    If we revert to the $0,1,2,3$ notation of elements of $GF(4)$, the above calculation presents $alpha^2$ as $alpha+2$, $alpha^3$ as $3alpha+2$ and
    $alpha^4$ as $alpha+1$. The last point proving that $alpha$ is a zero of the primitive polynomial $x^4+x+1$ over $GF(2)$.






    share|cite|improve this answer











    $endgroup$


















      4












      $begingroup$

      Here is an educated guess. You are confused by the difference between algebraic/arithmetic and computers representation of elements of $GF(4)$.



      The field
      $$GF(4)={0,1,beta,beta+1},$$
      where the arithmetic comes from the rules $1+1=beta+beta=0$, $beta^2=beta+1$. The element $beta$ (it could be denoted by something else if you wish) has no integer naturally associated with it.



      However, in computer implementations we (including code written by yours truly worth a couple hundred CPU hours) we write the elements of $GF(4)$ as string of two bits:
      $$0=00_2,quad 1=01_2,quad beta=10_2,quad beta+1=11_2.$$
      Do you see the idea? The element $b_0+b_1beta$ is represented as the bitstring $b_1b_0$. Similarly we represent elements of $GF(2^m)$ as strings of $m$ bits. A big advantage of this is that addition in the field $GF(2^m)$ then becomes bitwise XOR of those bitstrings. Most (all?) computer hardwares have a superfast built-in function for performing bitwise XOR of two registers. So that's one of the basic arithmetic operations handed to us on a silver platter. Too good to pass up! The programmer only needs to worry about implementing the multiplication of $GF(2^m)$.
      For smallish values of $m$ there are efficient ways of doing that (Caveat: there are other ways
      of implementing e.g. $GF(4^2)$ even more efficiently for devices really short of memory).




      Anyway, having fixed an internal presentation of elements of $GF(2^m)$, programmers
      occasionally refer to them as integers represented by the same string of bits.




      Because the integer $2$ is $10_2$ in binary, such a programmer may choose to refer to
      $beta$ as $2$ and $beta+1$ as $11_2=3$. But they know that this is safe only among people in the know. If you do this in a general math forum, you are bound to confuse people. If you are a student still learning about this, you are bound to become confused by program documentation unless you first study this difference between algebraic notation and data representation internal to a computer.



      So you may think of $GF(4)$ as the set ${0,1,2,3}$, but then you must include rules like $1+1=0$, $2+2=0$, $3=2+1$ in the definition of your addition.
      And, you also need to make rules like $2*2=3$, $2*3=1$ a part of your definition of multiplication. If you don't know this, you will be confused, and your questions will confuse others.



      The above is all standard, but I claimed to have AN EDUCATED GUESS. Here it is.



      If we present $beta=2$ internally, then the quadratic
      $$
      p(x)=x^2+x+beta "=" x^2+x+2
      $$

      is a primitive polynomial. It takes a bit of experience to see this at a glance.
      But, see the last part of my linked answer (prepared with referrals like this in mind). You see that I explain there why $x^2+x+beta$ is the minimal polynomial (over $GF(4)$) of some of the zeros of the well known primitive polynomial $x^4+x+1$ (over $GF(2)$).



      So if $alpha$ is a zero of $p(x)$ you can do the usual reduction business, and show that the elements $alpha^i, i=0,1,ldots,14$, are the non-zero elements of $GF(16)$,
      and $alpha^{15}=1$:
      $$
      begin{aligned}
      alpha^2&=alpha+beta,\
      alpha^3&=alpha^2+betaalpha=(1+beta)alpha+beta,\
      alpha^4&=(1+beta)alpha^2+betaalpha=(1+beta+beta)alpha+(1+beta)beta=alpha+1,\
      end{aligned}
      $$

      et cetera. All those powers of $alpha$ can be written in the form $c_1alpha+c_0$
      where $c_0,c_1$ are elements of $GF(4)$. Feel free to continue that list.
      If we revert to the $0,1,2,3$ notation of elements of $GF(4)$, the above calculation presents $alpha^2$ as $alpha+2$, $alpha^3$ as $3alpha+2$ and
      $alpha^4$ as $alpha+1$. The last point proving that $alpha$ is a zero of the primitive polynomial $x^4+x+1$ over $GF(2)$.






      share|cite|improve this answer











      $endgroup$
















        4












        4








        4





        $begingroup$

        Here is an educated guess. You are confused by the difference between algebraic/arithmetic and computers representation of elements of $GF(4)$.



        The field
        $$GF(4)={0,1,beta,beta+1},$$
        where the arithmetic comes from the rules $1+1=beta+beta=0$, $beta^2=beta+1$. The element $beta$ (it could be denoted by something else if you wish) has no integer naturally associated with it.



        However, in computer implementations we (including code written by yours truly worth a couple hundred CPU hours) we write the elements of $GF(4)$ as string of two bits:
        $$0=00_2,quad 1=01_2,quad beta=10_2,quad beta+1=11_2.$$
        Do you see the idea? The element $b_0+b_1beta$ is represented as the bitstring $b_1b_0$. Similarly we represent elements of $GF(2^m)$ as strings of $m$ bits. A big advantage of this is that addition in the field $GF(2^m)$ then becomes bitwise XOR of those bitstrings. Most (all?) computer hardwares have a superfast built-in function for performing bitwise XOR of two registers. So that's one of the basic arithmetic operations handed to us on a silver platter. Too good to pass up! The programmer only needs to worry about implementing the multiplication of $GF(2^m)$.
        For smallish values of $m$ there are efficient ways of doing that (Caveat: there are other ways
        of implementing e.g. $GF(4^2)$ even more efficiently for devices really short of memory).




        Anyway, having fixed an internal presentation of elements of $GF(2^m)$, programmers
        occasionally refer to them as integers represented by the same string of bits.




        Because the integer $2$ is $10_2$ in binary, such a programmer may choose to refer to
        $beta$ as $2$ and $beta+1$ as $11_2=3$. But they know that this is safe only among people in the know. If you do this in a general math forum, you are bound to confuse people. If you are a student still learning about this, you are bound to become confused by program documentation unless you first study this difference between algebraic notation and data representation internal to a computer.



        So you may think of $GF(4)$ as the set ${0,1,2,3}$, but then you must include rules like $1+1=0$, $2+2=0$, $3=2+1$ in the definition of your addition.
        And, you also need to make rules like $2*2=3$, $2*3=1$ a part of your definition of multiplication. If you don't know this, you will be confused, and your questions will confuse others.



        The above is all standard, but I claimed to have AN EDUCATED GUESS. Here it is.



        If we present $beta=2$ internally, then the quadratic
        $$
        p(x)=x^2+x+beta "=" x^2+x+2
        $$

        is a primitive polynomial. It takes a bit of experience to see this at a glance.
        But, see the last part of my linked answer (prepared with referrals like this in mind). You see that I explain there why $x^2+x+beta$ is the minimal polynomial (over $GF(4)$) of some of the zeros of the well known primitive polynomial $x^4+x+1$ (over $GF(2)$).



        So if $alpha$ is a zero of $p(x)$ you can do the usual reduction business, and show that the elements $alpha^i, i=0,1,ldots,14$, are the non-zero elements of $GF(16)$,
        and $alpha^{15}=1$:
        $$
        begin{aligned}
        alpha^2&=alpha+beta,\
        alpha^3&=alpha^2+betaalpha=(1+beta)alpha+beta,\
        alpha^4&=(1+beta)alpha^2+betaalpha=(1+beta+beta)alpha+(1+beta)beta=alpha+1,\
        end{aligned}
        $$

        et cetera. All those powers of $alpha$ can be written in the form $c_1alpha+c_0$
        where $c_0,c_1$ are elements of $GF(4)$. Feel free to continue that list.
        If we revert to the $0,1,2,3$ notation of elements of $GF(4)$, the above calculation presents $alpha^2$ as $alpha+2$, $alpha^3$ as $3alpha+2$ and
        $alpha^4$ as $alpha+1$. The last point proving that $alpha$ is a zero of the primitive polynomial $x^4+x+1$ over $GF(2)$.






        share|cite|improve this answer











        $endgroup$



        Here is an educated guess. You are confused by the difference between algebraic/arithmetic and computers representation of elements of $GF(4)$.



        The field
        $$GF(4)={0,1,beta,beta+1},$$
        where the arithmetic comes from the rules $1+1=beta+beta=0$, $beta^2=beta+1$. The element $beta$ (it could be denoted by something else if you wish) has no integer naturally associated with it.



        However, in computer implementations we (including code written by yours truly worth a couple hundred CPU hours) we write the elements of $GF(4)$ as string of two bits:
        $$0=00_2,quad 1=01_2,quad beta=10_2,quad beta+1=11_2.$$
        Do you see the idea? The element $b_0+b_1beta$ is represented as the bitstring $b_1b_0$. Similarly we represent elements of $GF(2^m)$ as strings of $m$ bits. A big advantage of this is that addition in the field $GF(2^m)$ then becomes bitwise XOR of those bitstrings. Most (all?) computer hardwares have a superfast built-in function for performing bitwise XOR of two registers. So that's one of the basic arithmetic operations handed to us on a silver platter. Too good to pass up! The programmer only needs to worry about implementing the multiplication of $GF(2^m)$.
        For smallish values of $m$ there are efficient ways of doing that (Caveat: there are other ways
        of implementing e.g. $GF(4^2)$ even more efficiently for devices really short of memory).




        Anyway, having fixed an internal presentation of elements of $GF(2^m)$, programmers
        occasionally refer to them as integers represented by the same string of bits.




        Because the integer $2$ is $10_2$ in binary, such a programmer may choose to refer to
        $beta$ as $2$ and $beta+1$ as $11_2=3$. But they know that this is safe only among people in the know. If you do this in a general math forum, you are bound to confuse people. If you are a student still learning about this, you are bound to become confused by program documentation unless you first study this difference between algebraic notation and data representation internal to a computer.



        So you may think of $GF(4)$ as the set ${0,1,2,3}$, but then you must include rules like $1+1=0$, $2+2=0$, $3=2+1$ in the definition of your addition.
        And, you also need to make rules like $2*2=3$, $2*3=1$ a part of your definition of multiplication. If you don't know this, you will be confused, and your questions will confuse others.



        The above is all standard, but I claimed to have AN EDUCATED GUESS. Here it is.



        If we present $beta=2$ internally, then the quadratic
        $$
        p(x)=x^2+x+beta "=" x^2+x+2
        $$

        is a primitive polynomial. It takes a bit of experience to see this at a glance.
        But, see the last part of my linked answer (prepared with referrals like this in mind). You see that I explain there why $x^2+x+beta$ is the minimal polynomial (over $GF(4)$) of some of the zeros of the well known primitive polynomial $x^4+x+1$ (over $GF(2)$).



        So if $alpha$ is a zero of $p(x)$ you can do the usual reduction business, and show that the elements $alpha^i, i=0,1,ldots,14$, are the non-zero elements of $GF(16)$,
        and $alpha^{15}=1$:
        $$
        begin{aligned}
        alpha^2&=alpha+beta,\
        alpha^3&=alpha^2+betaalpha=(1+beta)alpha+beta,\
        alpha^4&=(1+beta)alpha^2+betaalpha=(1+beta+beta)alpha+(1+beta)beta=alpha+1,\
        end{aligned}
        $$

        et cetera. All those powers of $alpha$ can be written in the form $c_1alpha+c_0$
        where $c_0,c_1$ are elements of $GF(4)$. Feel free to continue that list.
        If we revert to the $0,1,2,3$ notation of elements of $GF(4)$, the above calculation presents $alpha^2$ as $alpha+2$, $alpha^3$ as $3alpha+2$ and
        $alpha^4$ as $alpha+1$. The last point proving that $alpha$ is a zero of the primitive polynomial $x^4+x+1$ over $GF(2)$.







        share|cite|improve this answer














        share|cite|improve this answer



        share|cite|improve this answer








        edited Jan 28 at 6:13

























        answered Jan 28 at 5:50









        Jyrki LahtonenJyrki Lahtonen

        110k13171387




        110k13171387






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematics Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3090351%2ffind-the-elements-of-the-extension-field-using-primitive-polynomial-over-gf4%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

            Npm cannot find a required file even through it is in the searched directory