Jump to content

Salsa20

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Ciphergoth (talk | contribs) at 11:04, 28 November 2006 (use references, add reference for new attack). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Salsa20 is a stream cipher submitted to eSTREAM by Daniel Bernstein. It is built on a pseudorandom function based on 32-bit addition, bitwise addition (XOR) and rotation operations, which maps a 256-bit key, a 64-bit nonce, and a 64-bit stream position to a 512-bit output; this gives Salsa20 the unusual advantage that the user can efficiently seek to any position in the output stream. It offers speeds of around 8-14 cycles/byte in software on modern x86 processors, and reasonable hardware performance. It is not patented, and Bernstein has written several public domain implementations optimized for common architectures [1].

Internally, the cipher uses bitwise addition (exclusive OR), 32-bit addition mod 232, and constant-distance rotation operations on an internal state of 16 32-bit words. This choice of operations avoids the possibility of timing attacks in software implementations.

Salsa20 performs 20 rounds of mixing on its input; however, reduced round variants Salsa20/8 and Salsa20/12 using 8 and 12 rounds respectively have also been introduced. These variants were introduced to complement the original Salsa20, not to replace it, and perform even better in the eSTREAM benchmarks than the already competitive Salsa20.

As of 2006, no cryptanalytic attacks against Salsa20, Salsa20/12, or Salsa20/8 have been recognised. In 2005, Paul Crowley reported a -operation attack on Salsa20/5 using differential cryptanalysis [1] and won Bernstein's US$1000 prize for "most interesting Salsa20 cryptanalysis". In 2006, Fischer, Meier, Berbain, Biasse, and Robshaw reported a -operation attack on Salsa20/6.[2]


Salsa20 has been selected as Phase 2 Focus design for Profile 1 (software) and as a Phase 2 design for Profile 2 (hardware) by the eSTREAM project [2].

References

  1. ^ Paul Crowley, Truncated differential cryptanalysis of five rounds of Salsa20
  2. ^ Simon Fischer, Willi Meier, Côme Berbain, Jean-Francois Biasse, Matt Robshaw, Non-Randomness in eSTREAM Candidates Salsa20 and TSC-4, Indocrypt 2006