Interpolation attack

From Wikipedia, the free encyclopedia

In cryptography, an interpolation attack is a type of cryptanalytic attack against block ciphers.

After the two attacks, differential cryptanalysis and linear cryptanalysis, were presented on block ciphers, some new block ciphers were introduced, which were proven secure against differential and linear attacks. Among these there were some iterated block ciphers such as the KN-Cipher and the SHARK cipher. However, Thomas Jakobsen and Lars Knudsen showed in the late 1990s that these ciphers were easy to break by introducing a new attack called the interpolation attack.

In the attack, an algebraic function is used to represent an S-box. This may be a simple quadratic, or a polynomial or rational function over a Galois field. Its coefficients can be determined by standard Lagrange interpolation techniques, using known plaintexts as data points. Alternatively, chosen plaintexts can be used to simplify the equations and optimize the attack.

In its simplest version an interpolation attack expresses the ciphertext as a polynomial of the plaintext. If the polynomial has a relative low number of unknown coefficients, then with a collection of plaintext/ciphertext (p/c) pairs, the polynomial can be reconstructed. With the polynomial reconstructed the attacker then has a representation of the encryption, without exact knowledge of the secret key.

The interpolation attack can also be used to recover the secret key.

It is easiest to describe the method with an example.

Let an iterated cipher be given by

where is the plaintext, the output of the round, the secret round key (derived from the secret key by some key schedule), and for a -round iterated cipher, is the ciphertext.

Consider the 2-round cipher. Let denote the message, and denote the ciphertext.

Then the output of round 1 becomes

and the output of round 2 becomes

Expressing the ciphertext as a polynomial of the plaintext yields

where the 's are key dependent constants.

Using as many plaintext/ciphertext pairs as the number of unknown coefficients in the polynomial , then we can construct the polynomial. This can for example be done by Lagrange Interpolation (see Lagrange polynomial). When the unknown coefficients have been determined, then we have a representation of the encryption, without knowledge of the secret key .

Existence

Considering an -bit block cipher, then there are possible plaintexts, and therefore distinct pairs. Let there be unknown coefficients in . Since we require as many pairs as the number of unknown coefficients in the polynomial, then an interpolation attack exist only if .

Time complexity

Assume that the time to construct the polynomial using pairs are small, in comparison to the time to encrypt the required plaintexts. Let there be unknown coefficients in . Then the time complexity for this attack is , requiring known distinct pairs.

Interpolation attack by Meet-In-The-Middle

Often this method is more efficient. Here is how it is done.

Given an round iterated cipher with block length , let be the output of the cipher after rounds with . We will express the value of as a polynomial of the plaintext , and as a polynomial of the ciphertext . Let be the expression of via , and let be the expression of via . The polynomial is obtain by computing forward using the iterated formula of the cipher until round , and the polynomial is obtain by computing backwards from the iterated formula of the cipher starting from round until round .

So it should hold that

and if both and are polynomials with a low number of coefficients, then we can solve the equation for the unknown coefficients.

Time complexity

Assume that can be expressed by coefficients, and can be expressed by coefficients. Then we would need known distinct pairs to solve the equation by setting it up as a matrix equation. However, this matrix equation is solvable up to a multiplication and an addition. So to make sure that we get a unique and non-zero solution, we set the coefficient corresponding to the highest degree to one, and the constant term to zero. Therefore, known distinct pairs are required. So the time complexity for this attack is , requiring known distinct pairs.

By the Meet-In-The-Middle approach the total number of coefficients is usually smaller than using the normal method. This makes the method more efficient, since less pairs are required.

Key-recovery

Real world application

References

Related Articles

Wikiwand AI