15
$\begingroup$

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.

$\endgroup$
  • 6
    $\begingroup$ I think he just used names of Cuban/Latin dances. Not only is there Salsa and ChaCha, but also Rumba. $\endgroup$ – Swashbuckler Mar 9 at 2:17
  • 2
    $\begingroup$ Probably a metaphor for the energetic, orderly, eye-popping movement of the stream ciphers. More imaginative than NSA's "Speck" block cipher, which contains a hint because of the Proto-Indo-European root *spek- "to observe." $\endgroup$ – Patriot Mar 9 at 11:06
  • $\begingroup$ @Swashbuckler Yes that's highly probable! The creator might be referencing to the confusion and diffusion offered by the algorithm ! $\endgroup$ – Vivekanand V Mar 10 at 3:50
7
$\begingroup$

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.

| improve this answer | |
$\endgroup$
  • 2
    $\begingroup$ Here you are the other salsa20 paper with more technical details: citeseerx.ist.psu.edu/viewdoc/… and finally the Chacha20 paper - cr.yp.to/chacha/chacha-20080120.pdf $\endgroup$ – Maf Mar 9 at 10:49
  • 1
    $\begingroup$ Thankyou for sharing your knowledge, with me! I really appreciate your idea of using Salsa20 as a CSPRNG, the other cipher ChaCha20 has been used by BSD type operating systems for Pseudo random number generator in their arc4random() family of system functions :) $\endgroup$ – Vivekanand V Mar 18 at 9:24
  • $\begingroup$ @VivekanandV You're welcome. I appreciate so much the idea of sharing knowledge. Thanks for telling mew this about BSD being using Chacha20, that's sound pretty good. $\endgroup$ – Maf Mar 30 at 10:45
9
$\begingroup$

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

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Thankyou, for providing more information and knowledge! I would like to mark your answer as well as the previous answer by Moisés Ferreira as the answer to my question, but unfortunately , I can only mark one! , But I've upvoted your answer for sharing valuable insight ! :) $\endgroup$ – Vivekanand V Mar 18 at 9:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.