Enkripsi adalah proses untuk menyandikan pesan dengan algoritma tertentu. Caranya dengan mengubah format file umum, seperti teks atau email, dan mengacaknya menjadi format yang tidak dapat dibaca berupa kode dan sandi.
Ini adalah algoritma yang sangat diperlukan untuk melindungi informasi dalam sistem komputer dan kerahasiaan data digital.
Enkripsi sendiri merupakan bagian dari kriptografi, sebuah teknik komunikasi aman yang memastikan bahwa hanya pengirim dan penerima pesan yang dapat melihat isi pesan tersebut. Dalam perkembangannya terdapat 3 jenis algoritma enkripsi.
Rivest Cipher 4 (RC4)
RC4 adalah jenis algoritma enkripsi simetri yang dirancang oleh Ron Rivest pada tahun 1987 untuk Keamanan Data RSA. Ini digunakan dalam skema enkripsi WiFi yang disebut WEP, dan dalam protokol TLS / SSL yang mengenkripsi komunikasi antara browser web dan server web. Bisa dikatakan bahwa RC4 adalah enkripsi simetri yang paling banyak digunakan di dunia.
Beberapa tahun setelah penemuannya, algoritme RC4 direkayasa ulang dan diterbitkan kepada publik.
Struktur data utama yang digunakan RC4 adalah array 256 byte yang disebut S. Array S memiliki permutasi: menyimpan 256 angka 0,1,…, 254, 255, dalam beberapa urutan acak.
Untuk membangun array S, RC4 menggunakan operasi swap. Setiap swap menukar konten dari dua sel di S satu sama lain. Untuk menginisialisasi array S, RC4 mengisinya dengan angka-angka tersebut dalam urutan yang semakin meningkat, dan kemudian menggunakan kunci rahasia untuk menentukan urutan swap yang mengacak S.
Setelah diinisialisasi, array S digunakan untuk menghasilkan aliran kunci. RC4 menghasilkan keystream byte-by-byte, dengan algoritma PRG yang sangat sederhana. Faktanya, algoritme tersebut sangat sederhana sehingga kami dapat menyertakan kode semu di sini, tanpa mengabaikan detail penting.
Terlepas dari kesederhanaannya, RC4 memiliki banyak penelitian di baliknya, dan itu dianggap sebagai sandi yang kuat selama 3 dekade. Ini dirancang khusus untuk implementasi yang mudah dalam perangkat lunak.
Dan karena kesederhanaannya, ini adalah enkripsi yang sangat cepat dengan kode yang sangat kecil. Semua ini menjadikannya pilihan yang menarik di banyak website dan aplikasi seperti SSL.
Namun, karena ini adalah jenis stream cipher, maka membutuhkan penggunaan yang hati-hati. Sama seperti stream cipher lainnya, kunci RC4 harus disesuaikan dengan IV yang berbeda dari setiap pesan untuk menghindari penggunaan ulang kunci.
Meskipun RC4 adalah sandi yang cukup kuat dalam hal isolasi, menggunakannya dengan tweak kunci yang tidak tepat menyebabkan masalah.
Hal ini pernah terjadi pada tahun 2001, ketika serangan bernama Fluhrer, Mantin dan Shamir mendemonstrasikan bagaimana penggunaan RC4 dalam standar WiFi WEP memiliki celah keamanan. Dan kerentanan kriptografi ini dieksploitasi menjadi alat cracking WEP yang beredar secara bebas di jagat maya.
Kerentanan ini tidak dapat dieksploitasi terhadap penggunaan RC4 dalam komunikasi web-browser-to-server yang dilindungi TLS. Namun kerentanan lain muncul pada tahun-tahun berikutnya, dan akhirnya penggunaan RC4 di TLS dilarang pada tahun 2015.
Data Encryption Standard (DES)
Cipher DES dirancang pada 1970-an oleh IBM, atas permintaan National Bureau of Standards (sekarang disebut National Institute of Standards and Technology – NIST), dan kemudian distandarisasi pada 1976.
DES adalah susunan sandi blok, dengan blok berukuran b = 64 bit, dan panjang kunci n = 56.
Meskipun jenis enkripsi DES dianggap tidak aman, perannya sangat penting dalam sejarah kriptografi dan beberapa aspek strukturnya akan digunakan kemudian hari di enkripsi jenis AES.
DES terdiri dari 16 putaran, yang mengacaukan inputnya dan menghasilkan output yang merupakan input ke putaran berikutnya. Input 64-bit ke Putaran 1 akan berupa teks biasa yang mengabaikan Permutasi Awal, dan tidak dipengaruhi oleh kunci rahasia. Sedangkan keluaran dari Putaran 16 adalah berupa teks sandi yang mengabaikan Permutasi Akhir.
Semua putaran identik dalam struktur internalnya. Satu-satunya perbedaan di antara mereka adalah bahwa setiap putaran menggunakan “round key” 48-bit yang berbeda. Semua kunci dibuat oleh round-key-generator yang memperluas kunci DES 56-bit menjadi 16 round key 48-bit yang terpisah.
Dekripsi DES menggunakan struktur yang hampir identik, tetapi sebaliknya dimana ciphertext dimasukkan di bagian bawah (ke Babak 16), dan “dihilangkan” ke atas, putaran demi putaran, sampai teks biasa muncul dari Putaran 1.
Perhatikan bahwa untuk mencapai ini, generator kunci pertama-tama harus melakukan tugasnya (dari atas ke bawah) dan menghasilkan semua 16 round key, dan kemudian round key dimasukkan ke dalam putaran masing-masing dalam urutan yang terbalik.
DES melibatkan banyak operasi “bit-twiddling”, yang mudah dimplementasikan di perangkat keras, tetapi membuat implementasi di perangkat lunak menjadi rumit dan lambat.
DES digunakan selama lebih dari 2 dekade. Pada 1990-an, serangan analitik-crypt yang serius terhadap enkripsi DES dipublikasikan, termasuk serangan brute-force pada kunci 56-bit yang didemonstrasikan menggunakan perangkat keras khusus.
NIST pun mengganti DES dengan AES pada tahun 2002, dan pada tahun 2005 secara resmi ditarik sebagai standar enkripsi keamanan.
Dalam perspektif sejarah ilmu pengetahuan, sandi DES merupakan tonggak penting dalam perkembangan kriptografi. Ini menandai pertama kalinya badan standar nasional secara resmi menerbitkan sandi, untuk penggunaan sipil.
Sebelumnya kriptografi dianggap sebagai “black hat”, yang dipraktikkan secara rahasia oleh mata-mata dan badan rahasia negara. Tapi begitu DES diterbitkan, kriptografi sipil mulai tumbuh secara signifikan, bahkan mulai muncul sebagai disiplin akademis.
Hal ini menghasilkan inovasi dan kemajuan di bidang enkripsi keamanan. DES menjadi tonggak awal perlindungan privasi masyarakat sipil.
Dalam hal perlindungan informasi pribadi, setiap perusahaan atau organisasi harus mempertimbangkan keseimbangan antara hak warga negara atas privasi, dan hak pemerintah untuk memanfaatkan komunikasi kejahatan yang bisa saja terhalang oleh kriptografi.
Andvanced Encryption Standard (AES)
Enkripsi AES pertama ditemukan pada tahun 1998 dengan sebutan “Rijndael”, singkatan dari dua nama penemunya yang merupakan kriptografer asal Belgia, Vincent Rijmen dan Joan Daemen.
Penemuan itu diserahkan ke NIST sebagai salah satu dari 15 proposal cipher baru untuk menggantikan DES. Antara 1997 dan 2001 NIST mengadakan proses seleksi publik yang ketat dan transparan untuk membuat jenis sandi baru, yang berakhir dengan pemilihan Rijndael sebagai Advanced Encryption Standard (AES) pada 2001.
AES adalah cipher blok yang dirancang dengan beberapa fleksibilitas yang melekat. Jenis enkripsi ini dapat menggunakan 3 kemungkinan ukuran blok b = 128, 192, atau 256 bit, dan dapat menggunakan 3 kemungkinan panjang kunci n = 128, 192, atau 256 bit.
AES memiliki varian terkecil dengan b = 128 dan n = 128. Panjang kunci n = 128 dianggap paling aman terhadap serangan brute force.

Mirip dengan DES, enkripsi AES juga terdiri dari beberapa putaran, masing-masing menerima “round key”. Dalam varian AES-128 yang umum ada 10 putaran. Varian yang lebih besar memiliki beberapa putaran tambahan.
Putarannya identik kecuali yang pertama dan terakhir. Sebelum putaran pertama akan ada “transformasi pra-putaran” ekstra yang juga menerima round key (K0 dalam diagram). Seperti di DES, AES memiliki komponen round-key-generator yang menghasilkan 11 round-key (K0 ditambah 10 kunci untuk putaran) tetapi berbeda dengan di DES, semua round key adalah kunci 128-bit berukuran penuh.
Cara kerja dalam sebuah putaran bergantung pada operasi aljabar. Namun, elemen penting dalam fungsi putaran AES adalah elemen array 256 yang tampak acak dan disebut Sbox. Sebagai bagian dari fungsi round, AES mengganti byte dalam input putaran saat ini dengan nilai yang ditemukannya melalui pencarian di Sbox.
Dekripsi AES secara struktural mirip dengan DES. Dimana pada tahap awal semua round-key dibuat (dari atas ke bawah), dan kemudian ciphertext diumpankan di bagian bawah dan didekripsi putaran demi putaran dari bawah ke atas sampai teks biasa muncul. Namun, tidak seperti di DES, fungsi round AES tidak self-inverting. Terdapat fungsi round-decryption terpisah yang membalikkan tindakan dari fungsi round encrytion jika dilengkapi dengan kunci bulat yang sama.
AES dirancang untuk memungkinkan implementasi yang cepat baik pada perangkat keras maupun perangkat lunak. Yang artinya tidak menggunakan banyak bit-twiddling. AES beroperasi pada jumlah standar 8-bit yang sesuai dengan byte komputer.
Hingga saat ini AES menjadi standar enkripsi yang kuat dan tidak bisa diretas. Panjang kunci n = 128 cukup besar untuk mengalahkan serangan brute force bahkan dengan teknologi modern sekalipun. Banyak negara yang telah menggunakan standar AES untuk melindungi dokumen rahasia negara.