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$?
-
$\begingroup$ What's the source of this question? $\endgroup$– Maarten Bodewes ♦Commented Apr 22 at 10:39
-
1$\begingroup$ 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. $\endgroup$– Ranit DuttaCommented Apr 22 at 10:47
1 Answer
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
*}
-
1$\begingroup$ @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. $\endgroup$– kodluCommented Apr 23 at 0:01
-
1