Salsa20

Salsa20是一種流加密算法 ， 由丹尼爾 · J · 伯恩斯坦提交到 。 它建立在基於add - rotate - xor （ ARX ） 操作的僞隨機函數之上 — — 32位模加 、 異或 （ XOR ） 和循環移位操作 。 Salsa20映射一個256位密鑰 、 一個64位nonce以及一個64位流位置到一個512位的輸出 （ 也存在一個128位密鑰的版本 ） 。 這使Salsa20具有了不同尋常的優勢 ， 用戶可以在恆定時間內尋求輸出流中的任何位置 。 它可以在現代x86處理器中提供約每4 – 14次循環週期一字節的速度 ， 並具有合理的硬件性能 。 它沒有註冊專利 ， 並且Bernstein還撰寫了幾篇對常見架構優化的公有領域實現 。 一個相關的密碼算法ChaCha ， 具有類似的特點 ， 但有不同的循環移位函數 ， 已在2008年由伯恩斯坦發佈 。