In mathematics, the correlation immunity of a Boolean function is a measure of the degree to which its outputs are uncorrelated with some subset of its inputs. Specifically, a Boolean function is said to be correlation-immune of order m if every subset of m or fewer variables in
x1,x2,\ldots,xn
f(x1,x2,\ldots,xn)
A function
n → F | |
f:F | |
2 |
k
n
X0\ldotsXn-1
Z=f(X0,\ldots,Xn-1)
(X | |
i1 |
\ldots
X | |
ik |
)
0\leqi1<\ldots<ik<n
When used in a stream cipher as a combining function for linear feedback shift registers, a Boolean function with low-order correlation-immunity is more susceptible to a correlation attack than a function with correlation immunity of high order.
Siegenthaler showed that the correlation immunity m of a Boolean function of algebraic degree d of n variables satisfies m + d ≤ n; for a given set of input variables, this means that a high algebraic degree will restrict the maximum possible correlation immunity. Furthermore, if the function is balanced then m + d ≤ n - 1.[1]