A vectorial Boolean function is a function
\begin{equation} F:(\mathbb{F}_{2})^{n}\rightarrow(\mathbb{F}_{2})^{m},\nonumber \\ \end{equation}with \(m,n\in\mathbb{N}\).
We can represent a vectorial Boolean function as a vector of Boolean functions:
The function \(F:(\mathbb{F}_{2})^{3}\rightarrow(\mathbb{F}_{2})^{2},\) given by \((x,y,z)\mapsto(xy+y,y+z)\) is a vectorial Boolean function.
We notice that every component of a vectorial Boolean function is a Boolean function, so each component can be represented in its absolute normal form.
Let
\begin{equation} F:(\mathbb{F}_{2})^{n}\rightarrow(\mathbb{F}_{2})^{m},n,m\in\mathbb{N}\nonumber \\ \end{equation}be a vectorial Boolean function. Then \(F=\left[\begin{matrix}F_{1}(x_{1},...,x_{n})\\ \vdots\\ F_{m}(x_{1},...,x_{n})\end{matrix}\right],\) with
\begin{equation} F_{i}=\sum_{S\subset\{1,...,n\}}a_{S}^{(i)}x_{S}^{(i)},\nonumber \\ \end{equation}where \(a_{S}^{(i)}\in\mathbb{F}_{2}\) and \(x_{S}^{(i)}=\prod_{j\in S}x_{j}\) for every \(j\in\{1,...,m\}\).
Since the size of the set of all functions from a set \(A\) to a set \(B\) i.e. \(\mathfrak{F}=\{f:B\rightarrow B\}\) is \(|\mathfrak{F}|=|B|^{|A|}\), then the number of all vectorial Boolean functions from \((\mathbb{F}_{2})^{n}\) to \((\mathbb{F}_{2})^{m}\) is \((2^{m})^{2^{n}}=2^{m2^{n}}\). We observe that the same number comes from counting all vectors of length \(m\) with components which are Boolean functions in \(x_{1},...,x_{n}\).
A special case of Boolean functions arises when \(m=n\), i.e. the domain and the codomain of the function coincide:
Some of these could be permutations (i.e. bijections). Since a vectorial Boolean function is a function between two finite sets, then it is a invertible if and only if it is injective or surjective.
Let \(n\in\mathbb{N}\). If \(F:(\mathbb{F}_{2})^{n}\rightarrow(\mathbb{F}_{2})^{n}\) is a permutation, then
\begin{equation} \deg(F_{i})\leq n-1,\,\forall i\in\{1,...,n\}.\nonumber \\ \end{equation}