Salsa20 je proudová šifra navrhla eSTREAM projektu ze strany Daniel Bernstein . Je postaven na pseudonáhodné funkci založené na 32bitovém přidávání, exkluzivním přidávání ( XOR ) a bitově rotovaných operacích, které transformují 256bitový klíč, pseudonáhodný počet 64 bitů a 64bitový stream pozice do 512bitového výstupního datového bloku. To umožňuje uživateli umístit se kdekoli ve výstupním proudu. Jeho výkon je na moderních mikroprocesorech s architekturou x86 8 až 14 cyklů za bit a je přiměřený i v hardwarovém režimu . Tento proces není patentován a Bernstein napsal mnoho implementací pro veřejnou doménu, optimalizovaných pro běžné architektury.
Šifrovací metoda a rodina ChaCha , která má podobné funkce, ale střídavě odlišné funkce, představila společnost Bernstein v roce 2008 a zlepšuje její výkon. Jedná se o standard navržený včerven 2016na IETF pro TLS podle RFC7905.
Interní fungování šifrování, založené na binárních operacích a rotacích na 16 slovech o 32 bitech, se vyhýbá možnostem dočasného útoku v softwarových implementacích.
Salsa20 provádí 20 kroků směšování svých vstupních dat; nicméně redukované verze existují pod názvy Salsa20 / 8 a Salsa20 / 12 s použitím 8 a 12 počátečních fází. Tyto varianty byly zavedeny, aby doplnily původní nabídku Salsa20, která již funguje dobře, aby byla konkurenceschopnější pro testy na zkušebním stavu projektu eSTREAM.
V roce 2005 Paul Crowley odhalil rozdílný útok dešifrování při obchodování na Salsa20 / 5 a získal cenu 1 000 $ za „Nejzajímavější kryptoanalýzu Salsa20“. V roce 2006 Fischer, Meier, Berbain, Biasse a Robshaw vykázali útok v operacích na Salsa20 / 6.
Salsa20 byl vybrán ve fázi 2 pro další studium (Fáze 2 Focus) pro softwarovou část (profil 1) a ve fázi 2 pro hardwarovou část (profil 2) projektu eSTREAM.
Na konci roku 2006 nebyla na platformách Salsa20, Salsa20 / 12 nebo Salsa20 / 8 dosud rozpoznána žádná kryptoanalýza.
Šifrovací rodina Chacha je odvozena od Salsy 20. Zlepšuje tahové doručování tím, že poskytuje podobný nebo mírně lepší výkon. V roce 2008 byly vydány různé testy sady testovacích stolů eSTREAM, které se týkaly Chacha8, Chacha12 a Chacha20. Bylo navrženo pod názvem ChaCha20-Poly1305 pro IETF včerven 2016 prostřednictvím RFC7539 pak zastaral RFC8439 publikovaným v června 2018.