18

This is not a question targeted at a specific crypto implementation, but a question out of curiosity. What's the reason for calling the stream ciphers ChaCha/Salsa?

I couldn't find any information about this on the Internet. Are those names somehow related to their internal structure, or just to make them stand out from all the other ciphers out there? For example, AES used to be called the Rijndael Cipher (derived from the names of its creators), before NIST standardized it.

DannyNiu
  • 10,640
  • 2
  • 27
  • 64
Aravind A
  • 1,090
  • 13
  • 22

2 Answers2

11

idle speculation, my personal favourite! i always thought it was after the dance...

Salsa dance - see the video (Video demonstrating salsa dancing fundamentals) and jump to ~1min05sec in, the section titled: "side-side-quarter-turns", if you'd prefer to remain seated...

and from (https://en.wikipedia.org/wiki/Salsa20), The Salsa quarter-round function. Four parallel copies make a round.

enter image description here

brynk
  • 318
  • 2
  • 8
7

When I was writing a paper for a cryptosystem which uses salsa20 as a CSPRNG I read some papers related to it, starting from those published by the designer of Salsa20 (2005) and Chacha20 (2008), Daniel J. Bernstein. I have to tell you I didn't ask this interesting question before. Because of you I revisited my citations and I realised Daniel didn't explain where these names came from.

The only thing he says in the salsa20 presentation (http://www.gwizfl.org/email/cr.yp.to/snuffle/design.pdf) is the original name he used was Snuffle (that sound produced with the nose like the dogs when there's something to smell or when the nose is with some irritation).

Perhaps there's some relation between Snuffle and some dance like Salsa or Chacha. I also think that combining the Snuffle sound confusion and some complicated dance we have a very good confusing mix that can provide us a good confusion/diffusion, finally Salsa20 is a stream cipher based on a hash function, so that makes much sense.

Maf
  • 271
  • 2
  • 10