Boomerang attacks were first introduced by Wagner and allow an adversary to concatenate two high probability differential trails to attack a cipher. This is especially useful if there is a lack of long differentials with sufficient probabilities. The adversary can therefore decompose the encryption function F in two subciphers f and g such that F = f \circ g. Then the adversary can search for high probability trails \Delta \rightarrow \Delta^* with probability p for f and \nabla \rightarrow \nabla^* with probability q for g. The differential trails can then be combined in a chosen plaintext/adaptive chosen ciphertext attack to mount a boomerang distinguisher and then a key recovery attack based on this distinguisher to recover the secret key.
![]() | |||
A boomerang distinguisher |
The basic attack works as follows:
- The adversary chooses a random plaintext X_1 and calculates X_2 = X_1 \oplus \Delta.
- The adversary requests the ciphertexts for X_1 and X_2 from an encryption oracle which are Y_1 = F(X_1) and Y_2 = F(X_2)
- Calculate ciphertexts Y_3 = Y_1 \oplus \nabla and Y_4 = Y_2 \oplus \nabla.
- Request the decryptions of Y_3 and Y_4 to obtain X_3 = F^{-1}(Y_3) and X_4 = F^{-1}(Y_4).
- If the difference between X_3 and X_4 is the same as between X_1 and X_2, namely \Delta we obtain a correct quartett (X_1, X_2, X_3, X_4).
Calculating a correct quartet requires an attacker to consider both plaintext pairs (X_1, X_2) and (X_3, X_4) and results in a total probability of (pq)^2.
For an attack to succeed, for the probability of the boomerang distinguisher it must hold that (pq) > 2^{n/2}. For N plaintext pairs, an adversary expects about N\cdot(pq)^2 correct quartets in an attack, while there are only N\cdot2^{-n} (where n is the blocksize) correct quartets for an ideal primitive.
No comments:
Post a Comment