1

In $GF(2)$, any function from an n-dimensional vector to a number is equal to a polynomial function of n variables. (See proof below.)

Question: Is this true for other $GF$, especially $GF(2^8)$? Is there a constructive alogrithm for this?

If so: Does this show that finding the inverse of any invertible function on $GF$ vectors is equivalent to solving a system of nonlinear equations?


Proof: Polynomial funcs are a subset but have same cardinality, since $2^{2^n} = 2^{\sum{nCj}}$.

Constructive Proof: Represent any function as decision tree. In $GF(2)$, "if x then y else z" equals $xy + xz + z$. Recursively replace each branch of decision tree with that expression.

  • If our field has elements a,b,c,d,e I think you can write delta_e(x) as (x-a)(x-b)(x-c)(x-d) timse the inverse of (e-a)(e-b)(e-c)(e-d) then you can define any function from a linear combination of deltas. –  Feb 11 '13 at 14:48
  • If you have a function on GF(2^8) surely you can just fit a degree 2^8 polynomial to it? –  Feb 11 '13 at 14:49

1 Answers1

1

I am assuming that the question is about whether any function $F:GF(2^n)^k\to GF(2^n)$ can be represented as a polynomial $G(x_1,x_2,\cdots, x_k)$ in $k$ variables and with coefficients in $GF(2^n)$. The answer is well known to be affirmative. We can be more precise and say that the degree of the polynomial is at most $2^n-1$ in any one of the variables.

The proof is based on the following

Lemma. Let $a\in GF(2^n)$ be any element. Then there is a polynomial $f_a(x)\in GF(2^n)[x]$ of degree $2^n-1$ such that $f_a(a)=1$ and $f_a(y)=0$ for all $y\in GF(2^n), y\neq a$.

Proof (of Lemma). Let $$ g_a(x)=\prod_{y\in GF(2^n),y\neq a} (x-y). $$ Then $$ f_a(x)=\frac1{g_a(a)} g_a(x) $$ works as prescribed. Q.E.D.

[Edit: In fact here $g_a(a)$ is the product of non-zero elements of the field. This is easily seen to be $=1$ in the case of $GF(2^n)$ and $=-1$ for finite fields of odd characteristic.]

Let us then turn our attention to the main problem. Let $\vec{a}=(a_1,a_2,\ldots,a_k)$ be any vector from $GF(2^n)^k$. Then the polynomial $$ F_{\vec{a}}(x_1,x_2,\ldots,x_k)=f_{a_1}(x_1) f_{a_2}(x_2)\cdots f_{a_k}(x_k) $$ has the value $1$, when $\vec{x}=(x_1,x_2,\ldots,x_k)=\vec{a}$, but $F(\vec{x})=0$ whenever $\vec{x}$ is any other vector in $GF(2^n)^k$.

Therefore we can constructively answer the question by stating that the polynomial $$ G(x_1,x_2,\ldots,x_k)=\sum_{\vec{a}\in GF(2^n)} F(\vec{a})\cdot F_{\vec{a}}(x_1,x_2,\ldots,x_k) $$ satisfies the equation $G(\vec{a})=F(\vec{a})$ for all $\vec{a}\in GF(2^n)^k$. Furthermore, $G$ is a polynomial of the prescribed type.

It is nice to be able to sum over all the points in your universe.

Jyrki Lahtonen
  • 140,891
  • But I'm fairly sure that essentially the same question has been asked and answered here earlier. I don't have the time to look for it now. – Jyrki Lahtonen Feb 11 '13 at 15:06
  • 1
    I think this idea was also explored by Delsarte, Goethals, and MacWilliams in a paper (in Information and Control in the late 1960s or early 1970s?) on generalized Reed-Muller codes. – Dilip Sarwate Feb 11 '13 at 15:07
  • Wow, excellent! Two questions: 1) What is proof that $1/g_a(a)$ is always defined? 2) Other than perhaps my question 1, this proof would seem to apply to all $GF(n)$, not just $GF(2^n)$ – user61838 Feb 11 '13 at 16:06
  • @user61838: 1) Here $$g_a(a)=\prod_{y\neq a}(a-y)$$ is obviously a non-zero element of $GF(2^n)$, so it is invertible. Therefore $1/g_a(a)$ exists. 2) Yes, the same argument works for all the finite fields. – Jyrki Lahtonen Feb 11 '13 at 16:53
  • @JyrkiLahtonen - I'm still confused. Isn't $\prod_{y\neq a}(a-y)$ a polynomial of degree $2^n-1$? Why do you say it is a constant? – user61838 Feb 11 '13 at 16:58
  • @user61838: It is a constant: $a$ is an unknown constant (=the index), and $y$ is just a dummy variable - $x$ is the only non-constant in the definition of $f_a(x)$. – Jyrki Lahtonen Feb 11 '13 at 17:15
  • For example, if $n=2$, and we use $GF(4)={0,1,\alpha,\alpha+1=\alpha^2}$, then $$g_0(x)=(x-1)(x-\alpha)(x-\alpha^2)=x^3+1,$$ $$g_1(x)=x(x-\alpha)(x-\alpha^2)=x^3+x^2+x,$$ $$g_{\alpha}(x)=x(x-1)(x-\alpha^2)=x^3+\alpha x^2+\alpha^2 x,$$ and $$g_{\alpha^2}(x)=x(x-1)(x-\alpha)=x^3+\alpha^2 x^2+\alpha x.$$ All the $g_a(a)$ are non-zero constants in $GF(4)$. More precisely: $$g_0(0)=0^3+1=1,\quad g_1(1)=1+1+1=1,$$ $$g_\alpha(\alpha)=\alpha^3+\alpha^3+\alpha^3=\alpha^3=1,\quad g_{\alpha^2}(\alpha^2)=1+1+1=1.$$ Here actually $f_a(x)=g_a(x)$. Hmm, looks like $g_a(a)=1$ always! – Jyrki Lahtonen Feb 11 '13 at 17:36
  • 1
    For given $a$, the product $\prod_{y\neq a}(a-y)$ is the product of all the nonzero elements in the finite field $\mathbb F_q$. Now, if $q$ is odd, there are $q-3$ elements that we can pair up as $(\alpha, \alpha^{-1})$ and of course $+1, -1$, and so the product is $-1$. If $q$ is even, we get to pair up $q-2$ elements as $(\alpha, \alpha^{-1})$ leaving $1$ unpaired, and so the product is $1$ (as Jyrki said in an edit to his answer). – Dilip Sarwate Feb 11 '13 at 19:24