Salsa20 itu apa sih?

Salsa20 dan saudara terdekatnya, ChaCha, adalah penyandian aliran yang dikembangkan oleh Daniel J. Bernstein. Salsa20, sandi aslinya, didesain pada tahun 2005, lalu dikumpulkan ke eSTREAM oleh Bernstein. ChaCha adalah perubahan dari Salsa20 yang dipublikasikan pada tahun 2008. Ia menggunakan fungsi ronde baru yang meningkatkan penghamburan dan meningkatkan kinerja pada beberapa arsitektur.

Kedua penyandian tersebut dibangun dari fungsi acak semu berdasarkan operasi tambah-putar-XOR (ARX). Tugas utamanya adalah pemetaan sebuah kunci 256 bit, sebuah nonce 64 bit, dan sebuah pencacah 64 bit ke blok aliran kunci 512 bit (ada pula versi Salsa yang menggunakan kunci 128 bit). Hal ini memberikan Salsa20 dan Chaca keuntungan, yaitu pengguna dapat langsung menuju ke lokasi tertentu dalam aliran kunci dalam waktu tetap (konstan). Salsa20 menawarkan kecepatan 4–14 siklus per bita dalam perangkat lunak pada prosesor x86 dan kinerja perangkat keras yang cukup. Sandi ini tidak dipatenkan, bahkan Bernstein telah menulis beberapa implementasi dalam domain publik yang dioptimalkan untuk arsitektur pada umumnya.