Paper 2007/472

New Features of Latin Dances: Analysis of Salsa, ChaCha, and Rumba

Jean-Philippe Aumasson, Simon Fischer, Shahram Khazaei, Willi Meier, and Christian Rechberger


The stream cipher Salsa20 was introduced by Bernstein in 2005 as a candidate in the eSTREAM project, accompanied by the reduced versions Salsa20/8 and Salsa20/12. ChaCha is a variant of Salsa20 aiming at bringing better diffusion for similar performance. Variants of Salsa20 with up to 7 rounds (instead of 20) have been broken by differential cryptanalysis, while ChaCha has not been analyzed yet. We introduce a novel method for differential cryptanalysis of Salsa20 and ChaCha, inspired by correlation attacks and related to the notion of neutral bits. This is the first application of neutral bits in stream cipher cryptanalysis. It allows us to break the 256-bit version of Salsa20/8, to bring faster attacks on the 7-round variant, and to break 6- and 7-round ChaCha. In a second part, we analyze the compression function Rumba, built as the XOR of four Salsa20 instances and returning a 512-bit output. We find collision and preimage attacks for two simplified variants, then we discuss differential attacks on the original version, and exploit a high-probability differential to reduce complexity of collision search from 2^256 to 2^79 for 3-round Rumba. To prove the correctness of our approach we provide examples of collisions and near-collisions on simplified versions.

Note: In this update, we include results for the official version of ChaCha.

Available format(s)
Publication info
Published elsewhere. This is the extended version of an FSE 2008 paper.
Secret-key CryptographyCryptanalysisStream CiphereSTREAMSalsa20
Contact author(s)
mail @ simonfischer ch
2008-03-14: last of 2 revisions
2007-12-19: received
See all versions
Short URL
Creative Commons Attribution


      author = {Jean-Philippe Aumasson and Simon Fischer and Shahram Khazaei and Willi Meier and Christian Rechberger},
      title = {New Features of Latin Dances: Analysis of Salsa, ChaCha, and Rumba},
      howpublished = {Cryptology ePrint Archive, Paper 2007/472},
      year = {2007},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.