
where θ
F
(x, y) is the value of the indicator func-
tion at (x, y), defined as θ
F
: V
n
× V
m
→ {0, 1}:
θ
F
(x, y) =
1 if y = F(x)
0 if y 6= F(x)
(9)
mat_ZZ charfunct(const mat_GF2& T, int n, int m)
This function has as arguments the Truth Table,
the number of inputs and the number of outputs
of a vector Boolean function and it calculates its
Characteristic Function.
2. The
Walsh Spectrum
of F that can be represented
by a matrix whose rows are characterized by u ∈
V
n
and whose columns are characterized by v ∈
V
m
in lexicographic order, denoted by WS(F) ∈
M
2
n
×2
m
(R). It holds that
ˆ
θ
F
(u, v) = WS(F)(u, v).
void Walsh(NTL::mat_ZZ& X, VBF& a)
inline NTL::mat_ZZ Walsh(VBF& a)
3. The
Linear Profile
of F that can be represented
by a matrix whose rows are characterized by
u ∈ V
n
and whose columns are characterized
by v ∈ V
m
in lexicographic order, denoted by
LP(F) ∈ M
2
n
×2
m
(R). It holds that LP(F)(u, v) =
1
2
n+m
|WS(F)(u, v)|
2
.
void LAT(NTL::mat_ZZ& X, VBF& a)
inline NTL::mat_ZZ LAT(VBF& a)
4. The
Differential Profile
that can be represented
by a matrix whose rows are characterized by u ∈
V
n
and whose columns are characterized by v ∈
V
m
in lexicographic order, denoted by DP(F) ∈
M
2
n
×2
m
(R). This matrix results from the applica-
tion of the Walsh Transform to the Linear Profile.
void DAT(NTL::mat_ZZ& X, VBF& a)
inline NTL::mat_ZZ DAT(VBF& a)
5. The
Autocorrelation Spectrum
whose rows are
indexed by u ∈ V
n
and whose columns are in-
dexed by v ∈ V
m
in lexicographic order, de-
noted by R(F) ∈ M
2
n
×2
m
(R). This matrix re-
sults from the application of the Walsh Transform
to the Linear Profile. It holds that R(F)(u, v) =
1
DP(F)(0,0)
(DP(F)(u, 0) − DP(F)(u, v)).
void AC(NTL::mat_RR& X, VBF& a)
inline NTL::mat_RR AC(VBF& a)
Some functions have been implemented in the
VBF class to compute one matrix from the knowledge
of others such as:
mat_GF2 rev(const mat_GF2& X, int n, int m)
This function has as arguments the ANF Table, the
number of inputs and the number of outputs of a vec-
tor Boolean function and it computes its Truth Table.
mat_GF2 truthtable(const mat_ZZ& C, int n, int m)
This function has as arguments the Characteristic
Function, the number of inputs and the number of out-
puts of a vector Boolean function and it computes its
Truth Table.
mat_ZZ invwt(const mat_ZZ& X, int n, int m)
This function has as arguments the Walsh Spectrum,
the number of inputs and the number of outputs of
a vector Boolean function and it computes its Char-
acteristic Function. It corresponds with the inverse
Walsh Transform.
4.2 Cryptographic Criteria
Let F ∈ F
n,m
be a Vector Boolean Function, the
following cryptographic criteria can be obtained by
means of the VBF class:
1.
Nonlinearity
defined as the minimum among the
nonlinearities of all nonzero linear combinations
of the coordinate functions of F and can be ob-
tained from the Walsh Spectrum the following
way:
N L (F) = min
v6=0∈V
m
N L (v· F)
= 2
n−1
−
1
2
∗
max (WS(F)(u, v))
(10)
void nl(NTL::RR& x, VBF& a)
inline NTL::RR nl(VBF& a)
2.
Linearity distance
defined as the minimum among
the linearity distances of all nonzero linear com-
binations of the coordinate functions of F and can
be obtained from the Differential Profile the fol-
lowing way:
L D (F) = min
v6=0∈V
m
L D (v· F) (11)
void ld(NTL::RR& x, VBF& a)
inline NTL::RR ld(VBF& a)
3.
Balancedness
, considering that F ∈ F
n,m
is bal-
anced (or to have balanced output) if each pos-
sible output m-tuple occurs with equal probability
1
2
m
, that is, its output is uniformly distributed in
V
m
. This criterion can be obtained from the Walsh
Spectrum the following way:
ˆ
θ
F
(0, v) = 0, ∀v 6= 0 ∈ V
m
(12)
void Bal(int& bal, VBF& a)
inline int Bal(VBF& a)
4.
Correlation Immunity
, so that F ∈ F
n,m
is an
(n, m, t)-CI function if and only if every nonzero
linear combination f(x) =
∑
m
i=1
v
i
f
i
(x) of coor-
dinate functions of F is an (n, 1, t)-CI function,
where x ∈ V
n
, v
i
∈ GF(2) i = 1, . . . , m and not all
A C++ CLASS FOR ANALYSING VECTOR BOOLEAN FUNCTIONS FROM A CRYPTOGRAPHIC PERSPECTIVE
515