Standar Enkripsi Lanjutan

Algoritma enkripsi simetris yang lebih populer dan diadopsi secara luas yang kemungkinan besar akan ditemui saat ini adalah Advanced Encryption Standard (AES). Itu ditemukan setidaknya enam kali lebih cepat dari triple DES.

Diperlukan pengganti DES karena ukuran kuncinya terlalu kecil. Dengan meningkatnya daya komputasi, itu dianggap rentan terhadap serangan pencarian kunci yang menyeluruh. Triple DES dirancang untuk mengatasi kekurangan ini tetapi ternyata lambat.

Fitur AES adalah sebagai berikut -

  • Sandi blok simetris kunci simetris
  • Data 128-bit, kunci 128/192/256-bit
  • Lebih kuat dan lebih cepat dari Triple-DES
  • Berikan spesifikasi lengkap dan detail desain
  • Perangkat lunak yang dapat diterapkan di C dan Java

Pengoperasian AES

AES lebih merupakan cipher iteratif daripada Feistel. Ini didasarkan pada 'jaringan substitusi-permutasi'. Ini terdiri dari serangkaian operasi terkait, beberapa di antaranya melibatkan penggantian input dengan output tertentu (substitusi) dan yang lainnya melibatkan pengacakan bit (permutasi).

Menariknya, AES melakukan semua perhitungannya pada byte, bukan bit. Karenanya, AES memperlakukan 128 bit dari blok teks biasa sebagai 16 byte. 16 byte ini disusun dalam empat kolom dan empat baris untuk diproses sebagai matriks -

Tidak seperti DES, jumlah putaran di AES bervariasi dan bergantung pada panjang kunci. AES menggunakan 10 putaran untuk kunci 128-bit, 12 putaran untuk kunci 192-bit dan 14 putaran untuk kunci 256-bit. Masing-masing putaran ini menggunakan kunci bulat 128-bit yang berbeda, yang dihitung dari kunci AES asli.

Skema struktur AES diberikan dalam ilustrasi berikut -

Proses Enkripsi

Di sini, kami membatasi pada deskripsi putaran khas enkripsi AES. Setiap putaran terdiri dari empat sub-proses. Proses putaran pertama digambarkan di bawah ini -

Substitusi Byte (SubBytes)

16 byte input diganti dengan mencari tabel tetap (S-box) yang diberikan dalam desain. Hasilnya adalah matriks empat baris dan empat kolom.

Shiftrows

Masing-masing dari empat baris matriks tersebut bergeser ke kiri. Setiap entri yang 'jatuh' disisipkan kembali di sisi kanan baris. Pergeseran dilakukan sebagai berikut -

  • Baris pertama tidak bergeser.

  • Baris kedua digeser satu posisi (byte) ke kiri.

  • Baris ketiga digeser dua posisi ke kiri.

  • Baris keempat digeser tiga posisi ke kiri.

  • Hasilnya adalah matriks baru yang terdiri dari 16 byte yang sama tetapi bergeser satu sama lain.

MixColumns

Setiap kolom dengan empat byte sekarang diubah menggunakan fungsi matematika khusus. Fungsi ini menerima masukan empat byte dari satu kolom dan mengeluarkan empat byte yang benar-benar baru, yang menggantikan kolom asli. Hasilnya adalah matriks baru lainnya yang terdiri dari 16 byte baru. Perlu dicatat bahwa langkah ini tidak dilakukan di babak terakhir.

Addroundkey

16 byte dari matriks sekarang dianggap sebagai 128 bit dan di-XOR ke 128 bit dari kunci bulat. Jika ini adalah ronde terakhir maka outputnya adalah ciphertext. Jika tidak, 128 bit yang dihasilkan ditafsirkan sebagai 16 byte dan kami memulai putaran serupa lainnya.

Proses Dekripsi

Proses dekripsi ciphertext AES mirip dengan proses enkripsi dalam urutan terbalik. Setiap putaran terdiri dari empat proses yang dilakukan dalam urutan terbalik -

  • Tambahkan kunci bulat
  • Campur kolom
  • Geser baris
  • Substitusi byte

Karena sub-proses di setiap putaran secara terbalik, tidak seperti untuk Feistel Cipher, algoritma enkripsi dan dekripsi perlu diimplementasikan secara terpisah, meskipun keduanya sangat erat kaitannya.

Analisis AES

Dalam kriptografi saat ini, AES diadopsi secara luas dan didukung baik dalam perangkat keras maupun perangkat lunak. Hingga saat ini, tidak ada serangan kriptanalitik praktis terhadap AES yang ditemukan. Selain itu, AES memiliki fleksibilitas built-in dari panjang kunci, yang memungkinkan tingkat 'pemeriksaan masa depan' terhadap kemajuan dalam kemampuan untuk melakukan pencarian kunci yang lengkap.

Namun, seperti untuk DES, keamanan AES dijamin hanya jika diterapkan dengan benar dan manajemen kunci yang baik digunakan.