Beranda Proton

Enkripsi > Glosarium > ChaCha20

Apa itu ChaCha20?

ChaCha20 membantu melindungi data saat mengirim pesan, menyimpan file, atau berselancar secara pribadi menggunakan aplikasi atau layanan.

Ini adalah algoritma enkripsi modern yang dirancang untuk menjaga kerahasiaan informasi sekaligus tetap cepat dan efisien di berbagai macam perangkat.

Pelajari cara kerja ChaCha20, mengapa itu penting dalam kriptografi modern, dan perbandingannya dengan AES.

Apa itu ChaCha20?

ChaCha20 adalah cipher kunci simetris 256-bit berkecepatan tinggi, ringan, dan sangat aman yang digunakan untuk mengenkripsi dan mendekripsi data. Ini dirancang oleh Daniel J. Bernstein sebagai penyempurnaan dari cipher sebelumnya yang disebut Salsa20. Tujuannya adalah untuk menciptakan sesuatu yang efisien sekaligus aman, terutama dalam perangkat lunak.

Cara kerja ChaCha20

ChaCha20 mengenkripsi data dengan menghasilkan stream bita acak semu yang aman dan menggabungkan stream tersebut dengan pesan asli. Hasilnya adalah output terenkripsi yang terlihat acak bagi siapa pun tanpa kunci rahasia.

Karena menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi data, ChaCha20 jauh lebih cepat daripada RSA, algoritma asimetris yang menggunakan kunci publik dan kunci pribadi. RSA berguna untuk pertukaran kunci dan tanda tangan, tetapi ChaCha20 lebih baik untuk mengenkripsi lalu lintas internet dalam volume besar.

Secara garis besar, ChaCha20 menerima tiga input: kunci rahasia, nonce (angka yang digunakan sekali — nilai unik yang digunakan untuk setiap enkripsi), dan counter (untuk membantu menghasilkan blok output yang berbeda). Nilai-nilai ini digunakan untuk menginisialisasi status internal, yang kemudian dicampur secara berulang untuk menghasilkan stream bita acak semu aman yang dikenal sebagai keystream.

Proses pencampuran tersebut mengandalkan tiga operasi sederhana — penjumlahan, XOR, dan rotasi bit — yang diterapkan selama 20 putaran untuk mengacak data secara menyeluruh. Keystream yang dihasilkan kemudian digabungkan dengan teks biasa untuk menghasilkan ciphertext — data yang terenkripsi.

Mengapa ChaCha20 penting

ChaCha20 memecahkan masalah praktis dalam keamanan modern: cara mendapatkan enkripsi kuat yang efisien sekaligus andal di berbagai perangkat. Ini sangat cepat dalam perangkat lunak, bagus untuk ponsel, perangkat kecil, dan CPU lama, serta didasarkan pada operasi sederhana yang dapat dilakukan komputer dengan baik (tambah, XOR, rotasi).

Fitur-fitur ini membuatnya menarik dalam sistem seperti TLS, VPN(jendela baru), SSH, dan aplikasi perpesanan. Sebagai contoh, ChaCha20 digunakan oleh protokol VPN(jendela baru) WireGuard®(jendela baru) untuk menyediakan enkripsi yang cepat dan aman dengan performa kuat bahkan pada perangkat yang tidak memiliki perangkat keras AES khusus.

ChaCha20 vs AES

Berikut perbandingan ChaCha20 dengan AES:

ChaCha20 vs AES

Aspek

ChaCha20

AES

Jenis cipher

Cipher stream

Cipher blok

Operasi dasar

Penjumlahan/XOR/rotasi pada word 32-bit

Substitusi-permutasi pada blok 128-bit

Ukuran kunci standar

256-bit

128, 192, 256-bit

Performa pada CPU tanpa perangkat keras khusus

Biasanya sangat cepat

Sering kali lebih lambat daripada ChaCha20

Performa pada CPU dengan akselerasi perangkat keras

Biasanya kalah dari AES dengan ekstensi kripto AES-NI / ARM

Sering kali sangat cepat

Mode terautentikasi standar

ChaCha20-Poly1305

AES-GCM

Kasus penggunaan umum

TLS pada seluler/tersemat, kripto khusus perangkat lunak, WireGuard®

TLS, enkripsi disk, sistem enterprise, enkripsi berbasis perangkat keras

Paling cocok

Portabilitas, kecepatan perangkat lunak yang konsisten, implementasi perangkat lunak yang lebih aman

Kecepatan maksimum pada perangkat keras modern, kepatuhan/dukungan yang luas

Enkripsi AES adalah standar yang sudah lama mapan dan sangat cepat pada prosesor dengan dukungan perangkat keras AES bawaan. Karena itu, performanya sangat baik di banyak desktop, server, dan chip seluler yang lebih baru. Namun, tanpa dukungan perangkat keras AES, AES khusus perangkat lunak bisa lebih lambat dan terkadang lebih sulit untuk diimplementasikan dengan aman. Sebaliknya, ChaCha20 dirancang agar sangat cepat dalam perangkat lunak biasa karena menggunakan operasi sederhana seperti penjumlahan, XOR, dan rotasi, yang bekerja secara efisien pada hampir semua prosesor.

Jika aplikasi menawarkan AES dan ChaCha20, biasanya tidak perlu memilih salah satu secara manual, karena sebagian besar aplikasi modern memilih opsi yang lebih baik secara otomatis berdasarkan perangkat dan prosesor. Secara umum, AES memiliki performa terbaik pada perangkat yang lebih baru dengan dukungan AES bawaan, sedangkan ChaCha20 merupakan pilihan yang lebih kuat pada perangkat yang enkripsinya terutama diproses dalam perangkat lunak, seperti beberapa ponsel, perangkat keras berdaya rendah, atau CPU lama.

Apakah ChaCha20 aman?

ChaCha20 dianggap aman menurut standar modern jika diimplementasikan dengan benar dan digunakan dengan nonce unik untuk setiap enkripsi.

Enkripsi yang kuat

ChaCha20 menggunakan 20 putaran operasi tambah-rotasi-XOR dan dianggap tahan terhadap serangan praktis yang diketahui.

Keamanan perangkat lunak yang baik

Desainnya yang sederhana membuatnya efisien dalam perangkat lunak dan dapat mengurangi beberapa risiko side-channel yang terlihat pada implementasi AES tertentu.

Diterapkan secara luas

ChaCha20 didukung oleh peramban utama dan digunakan dalam koneksi HTTPS/TLS modern, SSH, dan WireGuard®.

Biasanya dipasangkan dengan Poly1305

Ini sering digunakan sebagai ChaCha20-Poly1305, yang melindungi kerahasiaan sekaligus integritas pesan. ChaCha20-Poly1305 adalah salah satu opsi enkripsi simetris utama yang digunakan dalam TLS 1.3.

Proton VPN dan ChaCha20

Dengan protokol WireGuard®(jendela baru) Proton VPN, ChaCha20-Poly1305 membantu mengamankan terowongan VPN sehingga lalu lintas internet tetap pribadi tanpa mengorbankan kecepatan, baik saat berselancar secara pribadi, melakukan streaming konten, atau menggunakan WiFi publik saat bepergian.

Pelajari lebih lanjut tentang enkripsi