Skip to main content
Log in

A survey on fast correlation attacks

  • Published:
Cryptography and Communications Aims and scope Submit manuscript

Abstract

Fast correlation attacks, pioneered by Meier and Staffelbach in 1988, constitute an important class of attacks on stream ciphers. They exploit a correlation between the keystream and the output of a linear feedback shift register (LFSR) within the cipher. Several factors affect the feasibility of such an attack, e.g., the amount of available keystream and the number of taps in the LFSR. Notably, for a fixed number of taps, the length of the LFSR does not affect the complexity of the attack. When the register does not have a sufficiently small number of taps, however, the attacker will try to find parity check equations of low weight, at which point the length of the register does matter. In this paper, we go through the significant contributions to this field of cryptanalysis, reiterating the various algorithms that have been developed for finding parity check equations and performing the online stage on received keystream. We also suggest some new generalizations of Meier-Staffelbach’s original formulations.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  1. Bahl, L., Cocke, J., Jelinek, F., Raviv, J.: Optimal decoding of linear codes for minimizing symbol error rate. IEEE Trans. Inf. Theory 20(2), 284–287 (1974)

    Article  MathSciNet  MATH  Google Scholar 

  2. Berrou, C., Glavieux, A.: Near optimum error correcting and decoding: turbo-codes. IEEE Trans. Commun. 4(10), 1261–1271 (1996)

    Article  Google Scholar 

  3. Berrou, C., Glavieux, A., Thitimajshima, P.: Near Shannon limit error-correcting coding and decoding. In: Proc., IEEE Int. Conf. on Communications, ICC’93, pp. 1064–1070 (1993)

  4. Blum, A., Kalai, A., Wasserman, H.: Noise-tolerant learning, the parity problem, and the statistical query model. In: Yao, F.F., Luks, E.M. (eds.) STOC, pp. 435–440. ACM (2000)

  5. Blum, A., Kalai, A., Wasserman, H.: Noise-tolerant learning, the parity problem, and the statistical query model. J. ACM 50(4), 506–519 (2003)

    Article  MathSciNet  Google Scholar 

  6. Canteaut, A., Filiol, E. (2002) On the influence of the filtering function on the performance of fast correlation attacks on filter generators. In: Symposium on Information Theory, pp. 299–306

  7. Canteaut, A., Trabbia, M.: Improved fast correlation attacks using parity-check equations of weight 4 and 5. In: Preneel, B. (ed.) Advances in Cryptology—EUROCRYPT 2000. Lecture Notes in Computer Science, vol. 1807, pp. 573–588. Springer-Verlag (2000)

  8. Chepyzhov, V., Johansson, T., Smeets, B.: A simple algorithm for fast correlation attacks on stream ciphers. In: Schneier, B. (ed.) Fast Software Encryption 2000. Lecture Notes in Computer Science, vol. 1978, pp. 181–195. Springer-Verlag (2000)

  9. Chepyzhov, V., Smeets, B.: On a fast correlation attack on certain stream ciphers. In: Davies, D.W. (ed.) Advances in Cryptology—EUROCRYPT’91. Lecture Notes in Computer Science, vol. 547, pp. 176–185. Springer-Verlag (1991)

  10. Chose, P., Joux, A., Mitton, M.: Fast correlation attacks: An algorithmic point of view. Lect. Notes Comput. Sci. 2332, 209–221 (2002)

    Article  MathSciNet  Google Scholar 

  11. Coppersmith, D.: Fast evaluation of logarithms in fields of characteristic two. IEEE Trans. Inf. Theory 30(4), 587–594 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  12. Fossorier, M.P.C., Mihaljevic, M.J., Imai, H.: Reduced complexity iterative decoding of low-density parity check codes based on belief propagation. IEEE Trans. Commun. 47, 673–680 (1999)

    Article  Google Scholar 

  13. Fossorier, M.P.C., Mihaljević, M.J., Imai, H.: Modeling block decoding approaches for the fast correlation attack. IEEE Trans. Inf. Theory 53(12), 4728–4737 (2007)

    Article  Google Scholar 

  14. Fossorier, M.P.C., Mihaljević, M.J. Imai, H., Cui, Y., Matsuura, K.: An algorithm for solving the LPN problem and its application to security evaluation of the HB protocols for RFID authentication. In: Barua, R., Lange, T. (eds.) Progress in Cryptology—INDOCRYPT 2005. Lecture Notes in Computer Science, vol. 4329, pp. 48–62. Springer-Verlag (2006)

  15. Gallager, R.G.: Low-density parity-check codes. IEEE Trans. Inf. Theory 8(1), 21–28 (1962)

    Article  MathSciNet  MATH  Google Scholar 

  16. Gallager, R.G.: Low-Density Parity-Check Codes. PhD thesis, MIT Press, Cambridge (1963)

  17. Gilbert, E.N., MacWilliams, F.J., Sloane, N.J.A.: Codes which detect deception. Bell Syst. Tech. J. 53(3), 405–424 (1974)

    MathSciNet  MATH  Google Scholar 

  18. Goldreich, O., Rubinfeld, R., Sudan, M.: Learning polynomials with queries: the highly noisy case. In: 36th Annual Symposium on Foundation of Computer Science, pp. 294–303 (1995)

  19. Golić, J.Dj.: Computation of low-weight parity-check polynomials. Electron. Lett. 32(21), 1981–1982 (1996)

    Article  Google Scholar 

  20. Golić, J.Dj.: Iterative optimum symbol-by-symbol decoding and fast correlation attacks. IEEE Trans. Inf. Theory 47(7), 3040–3049 (2001)

    Article  MATH  Google Scholar 

  21. Hartmann, C.R.P., Rudolph, L.D.: An optimum symbol-by-symbol decoding rule for linear codes. IEEE Trans. Inf. Theory 22(5):514–517 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  22. Johansson, T., Jönsson, F.: Fast correlation attacks based on turbo code techniques. In: Wiener, M.J. (ed.) Advances in Cryptology—CRYPTO’99. Lecture Notes in Computer Science, vol. 1666, pp. 181–197. Springer-Verlag (1999)

  23. Johansson, T., Jönsson, F.: Improved fast correlation attacks on stream ciphers via convolutional codes. In: Stern, J. (ed.) Advances in Cryptology—EUROCRYPT’99. Lecture Notes in Computer Science, vol. 1592, pp. 347–362. Springer-Verlag (1999)

  24. Johansson, T., Jönsson, F.: Fast correlation attacks through reconstruction of linear polynomials. In: Bellare, M. (ed.) Advances in Cryptology—CRYPTO 2000. Lecture Notes in Computer Science, vol. 1880, pp. 300–315. Springer-Verlag (2000)

  25. Jönsson, F.: Some results on fast correlation attacks. PhD thesis, Lund University, Department of Information Technology, P.O. Box 118, SE–221 00, Lund, Sweden (2002)

  26. Levieil, É., Fouque, P.-A.: An improved LPN algorithm. In: De Prisco, R., Yung, M. (eds.) SCN. Lecture Notes in Computer Science, vol. 4116, pp. 348–359. Springer-Verlag (2006)

  27. Meier, W.: Fast correlation attacks: methods and countermeasures. In: Joux, A. (eds.) Fast Software Encryption 2011. Lecture Notes in Computer Science, pp. 55–67. Springer-Verlag (2011)

  28. Meier, W., Staffelbach, O.: Fast correlation attacks on certain stream ciphers. J. Cryptol. 1(3), 159–176 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  29. Mihaljević, M.J., Fossorier, M., Imai, H.: A low-complexity and high-performance algorithm for the fast correlation attack. In: Schneier, B. (ed.) Fast Software Encryption 2000. Lecture Notes in Computer Science, vol. 1978, pp. 196–212. Springer-Verlag (2000)

  30. Mihaljević, M.J., Fossorier, M., Imai, H.: On decoding techniques for cryptanalysis of certain encryption algorithms. IEICE Trans. Fundam. Electron. Commun. Comput. Sci. E84-A, 919–930 (2001)

    Google Scholar 

  31. Mihaljević, M.J., Fossorier, M., Imai, H.: Fast correlation attack algorithm with list decoding and an application. In: Fast Software Encryption 2001. Lecture Notes in Computer Science, vol. 2355, pp. 196–210. Springer-Verlag (2002)

  32. Mihaljević, M.J., Golić, J.D.: A fast iterative algorithm for a shift register initial state reconstruction given the noisy output sequence. In: Seberry, J., Pieprzyk, J. (eds.) Advances in Cryptology—AUSCRYPT’90. Lecture Notes in Computer Science, vol. 453, pp. 165–175. Springer-Verlag (1990)

  33. Molland, H., Mathiassen, J., Helleseth, T.: Improved fast correlation attack using low rate codes. In: Paterson, K. (ed.) Cryptography and Coding—9th IMA Conference. Lecture Notes in Computer Science, vol. 2898, pp. 67–81. Springer Berlin/Heidelberg (2003)

  34. Noorkami, M., Fekri, F.: A fast correlation attack via unequal error correcting ldpc codes. In: Okamoto, T. (ed.) Topics in Cryptology—CT-RSA 2004. Lecture Notes in Computer Science, vol. 2964, pp. 54–66 (2004)

  35. Penzhorn, W.T.: Correlation attacks on stream ciphers: computing low weight parity checks based on error correction codes. In: Gollman, D. (ed.) Fast Software Encryption’96. Lecture Notes in Computer Science, vol. 1039, pp. 159–172. Springer-Verlag (1996)

  36. Penzhorn, W.T., Kühn, G.J.: Computation of low-weight parity checks for correlation attacks on stream ciphers. In: Boyd, C. (ed.) Cryptography and Coding—5th IMA Conference. Lecture Notes in Computer Science, vol. 1025, pp. 74–83. Springer-Verlag (1995)

  37. Siegenthaler, T.: Correlation Attacks on Certain Stream Ciphers with Nonlinear Generators. Presented at IEEE Int. Symp. Inform. Theory, Saint Jovite, Canada, 26–29 Sept. (1983)

  38. Siegenthaler, T.: Decrypting a class of stream ciphers using ciphertext only. IEEE Trans. Comput. 34, 81–85 (1985)

    Article  Google Scholar 

  39. Wagner, D.: A generalized birthday problem. In: Yung, M. (ed.) Advances in Cryptology—CRYPTO 2002. Lecture Notes in Computer Science, vol. 2442, pp. 288–303. Springer-Verlag (2002)

  40. Zhang, B., Feng, D.: Multi-pass fast correlation attack on stream ciphers. In: Biham, E., Youssef, A.M. (eds.) Selected Areas in Cryptography—SAC 2006. Lecture Notes in Computer Science, vol. 4356, pp. 234–248. Springer-Verlag (2007)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Johansson.

Appendix: The BCJR algorithm

Appendix: The BCJR algorithm

The BCJR algorithm is a MAP decoding algorithm that was introduced in [1] in 1974. It can be applied to any linear block or convolutional code. The complexity is about three times that of the Viterbi algorithm.

In MAP decoding, the decoder computes a posteriori log-likelihood values. Such a value is basically a measure of the reliability of a binary random variable: Every information bit \(\hat u_l\) has one such log-likelihood value \({\rm LLR}(\hat u_l)\). Consider a mapping of the binary informations symbols \(f:U \rightarrow \hat U\), where \(u \mapsto \hat u\). More specifically, 1 ↦ + 1 and 0 ↦ − 1. The information symbol probability can be written as

$$ \mathbf{Pr}\left[\hat u_l = +1 | \mathbf{r}\right] = \frac{p\left(\hat u_l = +1, {\boldsymbol{r}}\right)}{\mathbf{Pr}\left[\mathbf{r}\right]} = \frac{\sum_{\ensuremath{\boldsymbol{u}}\in \mathbf{U}^+}p\left(\ensuremath{\boldsymbol{r}}| \ensuremath{\boldsymbol{v}}\right)\mathbf{Pr}\left[{\boldsymbol{u}}\right]} {\sum_{\ensuremath{\boldsymbol{u}}}p\left(\ensuremath{\boldsymbol{r}}|\ensuremath{\boldsymbol{v}}\right)\mathbf{Pr}\left[{\boldsymbol{u}}\right]}, $$

where \(\mathbf{U}^+ = \left\{ {{\boldsymbol{u}}} : {\hat u_l = +1} \right\}\) and \(p\left({\boldsymbol{r}}|{\boldsymbol{v}}\right)\) is the probability distribution function of \({\boldsymbol{r}}\) given \({\boldsymbol{v}}\). Similarly, by rewriting \(\mathbf{Pr}\left[\hat u_l = +1 | \mathbf{r}\right]\), the log-likelihood values can be formulated as

$$ {\rm LLR}(\hat u_l) = \ln \left(\frac{\mathbf{Pr}\left[\hat u_l = +1 | \mathbf{r}\right]}{\mathbf{Pr}\left[\hat u_l = -1 | \mathbf{r}\right]}\right) = \ln\left(\frac{\sum_{\ensuremath{\boldsymbol{u}}\in \mathbf{U}^+}p\left(\ensuremath{\boldsymbol{r}}|\ensuremath{\boldsymbol{v}}\right)\mathbf{Pr}\left[{\boldsymbol{u}}\right]}{\sum_{{{\boldsymbol{u}}}\in \mathbf{U}^-}p\left({{\boldsymbol{r}}}|{{\boldsymbol{v}}}\right)\mathbf{Pr}\left[{\boldsymbol{u}}\right]}\right), $$

where \(\mathbf{U}^+ = \left\{ {{\boldsymbol{u}}} : {\hat u_l = -1} \right\}\). Since this implies listing all possible information blocks \({\boldsymbol{u}}\), computation quickly becomes infeasible with increasing block size. However, exploiting the regular structure of the trellis, it is possible to further rewrite \({\rm LLR}(\hat u_l)\). It can be seen that \(p\left(\hat u_l = +1, {\boldsymbol{r}}\right) = \sum_{\left(s,s^{\prime}\right)\in\Sigma^+} p(s_l=s, s_{l+1}=s^{\prime},{\boldsymbol{r}})\), where Σ  +  is the set of all state pairs \(\left(s,s^{\prime}\right)\) that correspond to input \(\hat u_l = +1\) at time l, and \(p\left(\hat u_l = +1, {\boldsymbol{r}}\right)\) respectively. Consequently,

$$ {\rm LLR}(\hat u_l) = \ln\left(\frac{\sum_{\left(s,s^{\prime}\right)\in\Sigma^+} p(s_l=s, s_{l+1}=s^{\prime},{\boldsymbol{r}})}{\sum_{\left(s,s^{\prime}\right)\in\Sigma^-} p(s_l=s, s_{l+1}=s^{\prime},{\boldsymbol{r}})}\right). $$

Since the sets Σ  +  and Σ − are considerably smaller than U  +  and U −, one only needs to consider 2ν state pairs instead of \(2^{|{\boldsymbol{u}}|-1}\) information blocks at each time instance. Here ν is the length of the memory of the code. Note that Σ  +  ∪ Σ − is the set of all possible transitions from s l to s l + 1.

It is possible to compute the value \(p\left(s^{\prime},s,{\boldsymbol{r}}\right)\) recursively. By rewriting \(p\left(s^{\prime},s,{\boldsymbol{r}}\right)\) as \(p\left(s^{\prime},s,{\boldsymbol{r}}_{t<l}{\boldsymbol{r}}_l,{\boldsymbol{r}}_{t>l}\right)\), where \({\boldsymbol{r}}_{t<l}\) is a subsequence of the received sequence at all time indices before l and \({\boldsymbol{r}}_{t>l}\) at all time indices after l, and by using Bayes’ rule, one finds that

$$ \begin{array}{rll} p\left(s^{\prime},s,{\boldsymbol{r}}\right) &=& p\left({\boldsymbol{r}}_{t>l}|s^{\prime},s,{\boldsymbol{r}}_{t<l}{\boldsymbol{r}}_l\right)p\left(s^{\prime},s,{\boldsymbol{r}}_{t<l}{\boldsymbol{r}}_l\right)\\ &=& p\left({\boldsymbol{r}}_{t>l}|s^{\prime},s,{\boldsymbol{r}}_{t<l}{\boldsymbol{r}}_l\right)p\left(s,{\boldsymbol{r}}_l | s^{\prime},{\boldsymbol{r}}_{t<l}\right)p\left(s^{\prime},{\boldsymbol{r}}_{t<l}\right) \end{array} $$

Now, it is known that the probability of a received branch at time instance l is statistically independent of previous and future received branches. Thus,

$$ p\left(s^{\prime},s,{\boldsymbol{r}}\right) = p\left({\boldsymbol{r}}_{t>l}|s\right)p\left(s,{\boldsymbol{r}}_l|s\right)p\left(s^{\prime},{\boldsymbol{r}}_{t<l}\right). $$

In the BCJR algorithm, the three functions in the product are calculated separately. Define

$$ \begin{array}{rll} \alpha_l(s^{\prime}) &\stackrel{\mbox{\textnormal{\tiny def}}}{=}& p\left(s^{\prime},{\boldsymbol{r}}_{t<l}\right), \\ \gamma_l(s^{\prime},s) &\stackrel{\mbox{\textnormal{\tiny def}}}{=}& p\left(s,{\boldsymbol{r}}_l|s^{\prime}\right), \\ \beta_{l+1}(s) &\stackrel{\mbox{\textnormal{\tiny def}}}{=}& p\left({\boldsymbol{r}}_{t>l}|s\right). \end{array} $$
(24)

Then, (24) can be recursively defined. Let σ l be set of all possible states at time instance l. Finally, rewrite \(\alpha_{l+1}(s^{\prime})\) from previous values using Bayes’ rule and statistical independence:

$$ \alpha_{l+1}(s^{\prime}) = \sum\limits_{s^{\prime} \in \sigma_l}p\left(s^{\prime},s,{\boldsymbol{r}}_{t<l+1}\right) = \sum\limits_{s^{\prime} \in \sigma_l}\underbrace{p\left(s,{\boldsymbol{r}}_{l}|s^{\prime}\right)}_{\gamma_l(s^{\prime},s)}\underbrace{p\left(s^{\prime},{\boldsymbol{r}}_{t<l}\right)}_{\alpha_l(s^{\prime})}. $$

Likewise, \(\beta_{l}(s^{\prime})\) can be written as

$$ \beta_l(s) = \sum\limits_{s \in \sigma_l}p\left(s,{\boldsymbol{r}}_{t>l-1}|s^{\prime}\right) = \sum\limits_{s \in \sigma_l}\underbrace{p\left(s,{\boldsymbol{r}}_{l}|s^{\prime}\right)}_{\gamma_l(s^{\prime},s)}\underbrace{p\left({\boldsymbol{r}}_{t>l-1}|s\right)}_{\beta_l(s)}. $$

It remains to find an expression for \(\gamma_l(s^{\prime},s)\). Bayes’ rule and independence directly gives that

$$ \gamma_l(s^{\prime},s) = p\left(s,{\boldsymbol{r}}_l|s^{\prime}\right) = p\left(s,{\boldsymbol{r}}_l|s^{\prime}\right) = \mathbf{Pr}\left[s|s^{\prime}\right]p\left({\boldsymbol{r}}_l|s^{\prime},s\right) = \mathbf{Pr}\left[\hat u_l\right]p\left({\boldsymbol{r}}_l|{\boldsymbol{v}}_l\right). $$

So if the state transition from s prime to s is not valid, \(\mathbf{Pr}\left[s|s^{\prime}\right]\), and thus \(\gamma_l(s^{\prime},s)\), is zero. In the model considered, a binary symmetric channel with crossover probability p is used. Let the code \(\mathcal{C}\) be a mapping from g:{0,1} →{0,1}n. Then,

$$ p\left({\boldsymbol{r}}_l|{\boldsymbol{v}}_l\right) = \prod\limits_{0 \leq j < n} \mathbf{Pr}\left[r_{l,j}=v_{l,j}\right] = p_{l,j}^{|{\boldsymbol{r}}_l-{\boldsymbol{v}}_l|}(1-p_{l,j})^{n-|{\boldsymbol{r}}_l-{\boldsymbol{v}}_l|}, $$

where p l,j is the crossover probability of the jth codeword symbol corresponding to the lth information symbol.

figure g

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ågren, M., Löndahl, C., Hell, M. et al. A survey on fast correlation attacks. Cryptogr. Commun. 4, 173–202 (2012). https://doi.org/10.1007/s12095-012-0062-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12095-012-0062-x

Keywords

Mathematics Subject Classification (2010)

Navigation