Differential uniformity of vectorial Boolean function

What could we say about differential uniformity of (a vectorial Boolean function) $$F = f+g \pmod 2$$ (i.e. XOR) in terms of differential uniformity of $$f$$ and $$g$$?

• What's the source of this question? Commented Apr 22 at 10:39
• Actually it is of my personal interest. I have calculated some result regarding differential uniformity of some particular type of functions. From those I have some doubts regarding this question. Commented Apr 22 at 10:47

Not much can be said in general. For example take the APN function (defined over the field instead of the vector space, clearly this makes no difference to diff. uniformity) $$f:GF(2^n) \rightarrow GF(2^n),x\mapsto x^{2^n-2}$$ which is the AES "inverse" map for $$n=8,$$ and is APN (differentially $$2-$$uniform) when $$n$$ is odd. Define $$F(x)=f(x)+f(x+b)$$ for some nonzero $$b,$$ then you will obtain a horrible function with differential uniformity as large as $$2^{n}.$$

Magma Script and output from http://magma.maths.usyd.edu.au/calc/:

Note: a^^b means the element a occurs b times so for the new function differential uniformity is $$2^3=8,$$ the largest possible. The code

F:=GF(2);
n:=3;
K<w>:=ext<F|n>;
function f(x,n)
return K!x^(2^n-2);
end function;
"original f"; {* {* f(x+a,n)+f(x,n): x in K *}: a in K *};
function g(x,n,b)
return K!(f(x+b,n)+f(x,n));
end function;
b:=Random(K); "translated by f(x+b) and summed where b=",b;
{* {* g(x+a,n,b)+g(x,n,b): x in K *}: a in K *};


gives

original f
{*
{* 0^^8 *},
{* 1^^2, w^^2, w^2^^2, w^5^^2 *},
{* 1^^2, w^^2, w^4^^2, w^6^^2 *},
{* 1^^2, w^2^^2, w^3^^2, w^4^^2 *},
{* 1^^2, w^3^^2, w^5^^2, w^6^^2 *},
{* w^^2, w^2^^2, w^3^^2, w^6^^2 *},
{* w^^2, w^3^^2, w^4^^2, w^5^^2 *},
{* w^2^^2, w^4^^2, w^5^^2, w^6^^2 *}
*}
translated by f(x+b) and summed where b= w
{*
{* 0^^8 *}^^2,
{* 1^^8 *}^^2,
{* w^^8 *}^^2,
{* w^3^^8 *}^^2
*}

• @kelalaka It required line by line copy paste with { } which is quite a pain, so I kept the image for the output. If there is a trick to really processing a block at once, I don't know it. The quotes didn't work. They can run the code online if they wish. Commented Apr 23 at 0:01
• thanks, now I know Commented Apr 23 at 0:43