# Higher-order differential cryptanalysis

In cryptography, higher-order differential cryptanalysis is a generalization of differential cryptanalysis, an attack used against block ciphers. While in standard differential cryptanalysis the difference between only two texts is used, higher-order differential cryptanalysis studies the propagation of a set of differences between a larger set of texts. Xuejia Lai, in 1994, laid the groundwork by showing that differentials are a special case of the more general case of higher order derivates.[1] Lars Knudsen, in the same year, was able to show how the concept of higher order derivatives can be used to mount attacks on block ciphers.[2] These attacks can be superior to standard differential cryptanalysis. Higher-order differential cryptanalysis has notably been used to break the KN-Cipher, a cipher which had previously been proved to be immune against standard differential cryptanalysis.[3]

## Higher-order derivatives

A block cipher which maps $n$-bit strings to $n$-bit strings can, for a fixed key, be thought of as a function $f:\mathbb{F}^n_2\to\mathbb{F}^n_2$. In standard differential cryptanalysis, one is interested in finding a pair of an input difference $\alpha$ and an output difference $\beta$ such that two input texts with difference $\alpha$ are likely to result in output texts with a difference $\beta$ i.e., that $f(m\oplus\alpha)\oplus f(m) = \beta$ is true for many $m\in\mathbb{F}^n_2$. Note that the difference used here is the XOR which is the usual case, though other definitions of difference are possible.

This motivates defining the derivative of a function $f:\mathbb{F}^n_2\to\mathbb{F}^n_2$ at a point $\alpha$ as[1]

$\Delta_\alpha f(x) := f(x\oplus\alpha)\oplus f(x)$.

Using this definition, the $i$-th derivative at $(\alpha_1,\alpha_2,\dots,\alpha_i)$ can recursively be defined as[1]

$\Delta^{(i)}_{\alpha_1,\alpha_2,\dots,\alpha_i} f(x) := \Delta_{\alpha_i}\left(\Delta^{i-1}_{\alpha_1,\alpha_2,\dots,\alpha_{i-1}}f(x)\right)$.

Thus for example $\Delta^{(2)}_{\alpha_1,\alpha_2} f(x) = f(x)\oplus f(x\oplus\alpha_1)\oplus f(x\oplus\alpha_2)\oplus f(x\oplus\alpha_1\oplus\alpha_2)$.

Higher order derivatives as defined here have many properties in common with ordinary derivative such as the sum rule and the product rule. Importantly also, taking the derivative reduces the algebraic degree of the function.

## Higher-order differential attacks

To implement an attack using higher order derivatives, knowledge about the probability distribution of the derivative of the cipher is needed. Calculating or estimating this distribution is generally a hard problem but if the cipher in question is known to have a low algebraic degree, the fact that derivatives reduce this degree can be used. For example, if a cipher (or the S-box function under analysis) is known to only have an algebraic degree of 8, any 9-th order derivative must be 0.

Therefore, it is important for any cipher or S-box function in specific to have a maximal (or close to maximal) degree to defy this attack.

Cube attacks have been considered a variant of higher-order differential attacks.[4]

## Limitations of Higher-order differential attacks

Works for small or low algebraic degree S-boxes or small S-boxes. In addition to AND and XOR operations.