Symmetric dan Asymmetric Cryptography merupakan jenis algoritma kriptografi berdasarkan penggunaan kunci. Singkatnya, kriptografi symmetric menggunakan kunci yang sama untuk melakukan proses enkripsi dan dekripsi sedangkan kriptografi asymmetric menggunakan kunci yang berbeda untuk encrypt dan decrypt. Contoh algoritma symmetric adalah AES, DES, RC4 dll sedangkan asymmetric adalah RSA, Elgamal dll. Gambar dibawah ini merupakan proses enkripsi dan dekripsi algoritma symmetric dan asymmetric.
Pada algoritma asymmetric, terdapat dua buah kunci yaitu kunci publik untuk encrypt dan kunci private untuk decrypt. Ketika seseorang (misal Alice) akan mengirimkan pesan ke Bob, maka Alice akan mengenkripsi pesan tersebut menggunakan kunci publik Bob dan Bob akan membuka pesan yang diterimanya menggunakan kunci private. Hal tersebut merupakan kelebihan pada sistem asymmetric karena user cukup menyimpan secara rahasia kunci private miliknya, sedangkan kunci publik dapat disebarkan ke seluruh user yang ingin berkomunikasi dengannya tanpa perlu khawatir orang yang tidak berhak dapat membuka pesan menggunakan kunci publik yang telah disebar tersebut.
Pada sistem symmetric, kunci yang digunakan untuk encrypt dan decrypt adalah sama, sehingga user yang saling berkomunikasi menggunakan sistem symmetric harus saling berkirim kunci yang sama karena jika mereka tidak menggunakan kunci yang sama maka pesan tidak dapat terbuka di sisi penerima. Jika terdapat seseorang yang berada di tengah2 proses kirim terima kunci dan berhasil mendapatkan kunci tersebut maka maka semua pesan dapat terbuka. Berbeda dengan sistem asymmetric, user hanya perlu mengirimkan kunci publik supaya orang lain dapat berkomunikasi dengan dirinya. User tidak perlu takut penyerang dapat merekonstruksi private key dari kunci publik yang didapatkannya.
Kompleksitas pendistribusian kunci pada symmetric lebih tinggi dibandingkan dengan asymmetric. Setiap satu kunci pada symmetric digunakan oleh dua user atau satu grup untuk berkomunikasi. Saya ilustrasikan sebagai berikut, ketika user A akan berkomunikasi dengan user B mereka menggunakan kunci X dan ketika user A berkomunikasi dengan user C mereka akan menggunakan kunci Y. Maka ketika user B,C,D akan mengirimkan pesan ke user A, user A akan menggunakan 3 buah kunci yang berbeda untuk membuka pesan yang diterima. Berbeda dengan sistem asymmetric,user B,C,D cukup menggunakan kunci publik A untuk mengirimkan pesan dan A cukup menggunakan kunci private nya untuk membuka pesan tersebut.
Akan tetapi, sistem symmetric lebih cepat dalam komputasi dan ciphertext yang dihasilkan lebih sedikit sehingga tidak membebani bandwith pada saat proses pengiriman pesan. Biasanya symmetric dan asymmetric sering digunakan bersamaan pada suatu sistem. Sebagai contoh pada sistem video conference Agievic, asymmetric digunakan untuk pendistribusian kunci symmetric, kunci symmetric ini digunakan untuk untuk mengenkripsi komunikasi video conference.
Pada sistem symmetric, kunci yang digunakan untuk encrypt dan decrypt adalah sama, sehingga user yang saling berkomunikasi menggunakan sistem symmetric harus saling berkirim kunci yang sama karena jika mereka tidak menggunakan kunci yang sama maka pesan tidak dapat terbuka di sisi penerima. Jika terdapat seseorang yang berada di tengah2 proses kirim terima kunci dan berhasil mendapatkan kunci tersebut maka maka semua pesan dapat terbuka. Berbeda dengan sistem asymmetric, user hanya perlu mengirimkan kunci publik supaya orang lain dapat berkomunikasi dengan dirinya. User tidak perlu takut penyerang dapat merekonstruksi private key dari kunci publik yang didapatkannya.
Kompleksitas pendistribusian kunci pada symmetric lebih tinggi dibandingkan dengan asymmetric. Setiap satu kunci pada symmetric digunakan oleh dua user atau satu grup untuk berkomunikasi. Saya ilustrasikan sebagai berikut, ketika user A akan berkomunikasi dengan user B mereka menggunakan kunci X dan ketika user A berkomunikasi dengan user C mereka akan menggunakan kunci Y. Maka ketika user B,C,D akan mengirimkan pesan ke user A, user A akan menggunakan 3 buah kunci yang berbeda untuk membuka pesan yang diterima. Berbeda dengan sistem asymmetric,user B,C,D cukup menggunakan kunci publik A untuk mengirimkan pesan dan A cukup menggunakan kunci private nya untuk membuka pesan tersebut.
Akan tetapi, sistem symmetric lebih cepat dalam komputasi dan ciphertext yang dihasilkan lebih sedikit sehingga tidak membebani bandwith pada saat proses pengiriman pesan. Biasanya symmetric dan asymmetric sering digunakan bersamaan pada suatu sistem. Sebagai contoh pada sistem video conference Agievic, asymmetric digunakan untuk pendistribusian kunci symmetric, kunci symmetric ini digunakan untuk untuk mengenkripsi komunikasi video conference.