Standar Enkripsi Lanjutan

Dalam kriptografi, **Standar Enkripsi Lanjutan** (, disingkat **AES**) merupakan standar enkripsi dengan kunci simetris yang diadopsi oleh Pemerintah Amerika Serikat. Tiap-tiap penyandian memiliki ukuran blok 128 bit dengan ukuran kunci masing-masing 128, 192, dan 256 bit. AES telah dianalisis secara luas dan sekarang digunakan di seluruh dunia, seperti halnya dengan pendahulunya, Standar Enkripsi Data (DES).

AES diumumkan oleh Badan Nasional Standar dan Teknologi (NIST) sebagai Standar Pengolahan Informasi Federal Publikasi 197 (FIPS 197) pada tanggal 26 November 2001 setelah proses standardisasi selama 5 tahun. Selama proses seleksi AES, ada lima belas desain enkripsi yang diajukan dan dievaluasi sebelum Rijndael terpilih sebagai yang paling cocok. AES efektif menjadi standar Pemerintah Federal Amerika Serikat pada tanggal 26 Mei 2002 setelah persetujuan dari Menteri Perdagangan. AES juga disertakan dalam standar 18033-3 ISO/IEC. AES merupakan standar pertama yang dapat diakses publik dan dipakai oleh NSA untuk informasi rahasia.

AES merupakan varian dari sandi blok Rijndael dikembangkan oleh Kriptografer Belgia, Joan Daemen dan Vincent Rijmen, yang mengajukan proposal kepada NIST selama proses seleksi AES. Standar ini terdiri dari tiga penyandian blok, yaitu AES-128, AES-192, dan AES-256, yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan sebagai Rijndael.

## Penjelasan algoritme
AES didesain berdasarkan jaringan substitusi–permutasi dan dapat dijalankan dengan efisien dalam perangkat lunak dan keras. AES berbeda dengan DES karena AES tidak menggunakan jaringan Feistel. AES adalah variasi dari Rijndael dengan ukuran blok tetap 128 bit dan ukuran kunci 128, 192, atau 256 bit. Sebaliknya, Rijndael sendiri didesain dengan ukuran blok dan kunci kelipatan 32 bit dengan minimum 128 bit dan maksimum 256 bit.

AES menggunakan matriks 4 × 4 dengan urutan bita sesuai kolom-lalu-baris (ke bawah, lalu ke kanan). Matriks ini disebut "status" (*state*).

Misalkan, 16 bita data, b_0, b_1, ..., b_{15}, digambarkan dalam matriks dua dimensi sebagai berikut.
: 
\begin{bmatrix}
b_0 & b_4 & b_8 & b_{12} \\
b_1 & b_5 & b_9 & b_{13} \\
b_2 & b_6 & b_{10} & b_{14} \\
b_3 & b_7 & b_{11} & b_{15}
\end{bmatrix}


Jumlah ronde yang dijalankan dalam AES bergantung pada ukuran kunci yang dipakai.

Tiap ronde terdiri dari beberapa langkah, termasuk yang menggunakan kunci enkripsi. Inversi langkah (kebalikannya) dipakai untuk melakukan dekripsi dengan kunci yang sama (simetris).

### Gambaran umum algoritme
# , kunci ronde diturunkan dari kunci penyandian melalui penjadwalan kunci AES. AES membutuhkan kunci ronde 128 bit untuk tiap ronde ditambah satu.
# Penambahan kunci ronde awalan:
## , tiap bita digabung dengan satu bita dari kunci ronde dengan operasi XOR.
# Selama 9, 11, atau 13 ronde:
## , substitusi nonlinear yang tiap bitanya ditukar dengan lainnya sesuai tabel acuan.
## , penukaran posisi yang tiga baris terakhirnya digeser beberapa kali.
## , pencampuran linear yang bekerja pada tiap kolom "status", yaitu kombinasi keempat bita dalam tiap kolom.
## 
# Ronde terakhir (ronde ke-10, 12, atau 14):
## 
## 
## 

### Langkah  (penukaran bita)

Dalam langkah , tiap bita a_{i, j} "status" ditukar dengan  S(a_{i, j}) dengan kotak substitusi 8 bit. Langkah ini memberi sifat nonlinear dalam penyandian ini. Kotak-S yang dipakai berasal dari inversi perkalian dalam  yang dikenal memiliki sifat nonlinear. Untuk menghindari serangan berdasarkan sifat aljabar sederhana, kotak-S dibangun dengan menggabungkan fungsi inversi dan transformasi afin. Kotak-S juga dipilih untuk menghindari titik tetap (sehingga tiada nilai yang dipetakan ke nilai yang sama), yaitu S(a_{i, j}) \neq a_{i, j}, dan juga lawan titik tetap apa pun, yaitu S(a_{i, j}) \oplus a_{i, j} \neq \text{FF}_{16}. Ketika melakukan dekripsi, langkah  (kebalikan dari ) dipakai yang harus mencari inversi transformasi afin dan kemudian mencari inversi perkaliannya.

### Langkah  (pergeseran baris)

Langkah  mengubah tiap baris. Untuk AES, baris pertama dibiarkan. Tiap bita pada baris kedua digeser sekali. Begitu pula untuk baris ketiga dan keempat. Baris ketiga digeser dua kali dan baris keempat digeser tiga kali. Langkah ini dijalankan agar tiap kolom tidak dienkripsi sendiri-sendiri. hai

### Langkah  (pencampuran kolom)

Dalam langkah , empat bita dalam tiap kolom "status" digabung dengan transformasi linear terbalikkan. Fungsi  menerima empat bita input dan mengeluarkan empat bita yang tiap bita inputnya saling memengaruhi. Fungsi ini bersama dengan  memberikan penghamburan dalam penyandian.

Dalam langkah ini, tiap kolom ditransformasikan dengan matriks tetap sebagai berikut.

: \begin{bmatrix} b_{0, j} \\ b_{1, j} \\ b_{2, j} \\ b_{3, j} \end{bmatrix} =
\begin{bmatrix}
  2 & 3 & 1 & 1 \\
  1 & 2 & 3 & 1 \\
  1 & 1 & 2 & 3 \\
  3 & 1 & 1 & 2
\end{bmatrix}
\begin{bmatrix} a_{0, j} \\ a_{1, j} \\ a_{2, j} \\ a_{3, j} \end{bmatrix},
\qquad 0 \le j \le 3

### Langkah  (penambahan kunci ronde)

Dalam langkah , subkunci digabung dengan "status". Untuk tiap ronde, sebuah subkunci dibuat dari kunci utama dengan penjadwalan kunci AES. Tiap subkunci berukuran sama dengan "status". Subkunci ditambahkan dengan menggabungkan tiap bita "status" dengan bita yang seletak pada subkunci dengan operasi XOR.

### Optimasi penyandian
Pada sistem berukuran 32 bit atau lebih, eksekusi dapat dipercepat dengan menggabungkan langkah  dan  dengan  dengan mengubahnya menjadi tabel-tabel acuan. Cara ini membutuhkan empat tabel dengan 256 entri 32 bit (sekitar 4096 bita). Sebuah ronde dapat dijalankan dengan 16 operasi pencarian tabel dan 12 operasi XOR 32 bit ditambah dengan 4 operasi XOR 32 bit pada langkah . Cara lainnya, operasi pencarian tabel dapat dilakukan dengan satu tabel dengan 256 entri 32 bit (sekitar 1024 bita) yang diikuti dengan operasi rotasi sirkular.

Dengan pendekatan berorientasi bita, dapat dilakukan penggabungan , , dan  ke dalam operasi ronde tunggal.

## Keamanan
National Security Agency (NSA) mengulas semua finalis AES, termasuk Rijndael, dan menyatakan bahwa semuanya cukup aman dalam mengamankan data tidak rahasia Pemerintah AS. Pada bulan Juni 2003, Pemerintah AS mengumumkan bahwa AES dapat digunakan untuk melindungi informasi rahasia:Desain dan kekuatan semua panjang kunci algoritma AES (yaitu, 128, 192 dan 256) cukup untuk melindungi informasi rahasia hingga tingkat RAHASIA. Informasi SANGAT RAHASIA akan memerlukan penggunaan panjang kunci 192 atau 256. Implementasi AES dalam produk ditujukkan untuk melindungi sistem keamanan nasional dan/atau informasi yang harus di ulas dan disertifikasi oleh NSA sebelum akuisisi dan penggunaannya.AES mempunyai 10 ronde untuk kunci 128-bit, 12 rondeuntuk kunci 192-bit, dan 14 ronde untuk kunci 256-bit.

Pada tahun 2006, serangan paling terkenal terjadi pada 7 ronde untuk kunci 128-bit, 8 ronde untuk kunci 192-bit, dan 9 ronde untuk kunci 256-bit.

## Kinerja
Kecepatan tinggi dan penggunaan memori rendah menjadi penilaian dalam proses seleksi AES. Sebagai algoritme terpilih, AES berjalan dengan baik dalam beragam perangkat keras, dari kartu pintar 8 bit hingga komputer kinerja tinggi.

Pada Pentium Pro, enkripsi AES membutuhkan 18 siklus per bita atau setara dengan 11&nbsp;Mbit/s untuk prosesor 200&nbsp;MHz. Pada Pentium M 1,7&nbsp;GHz, kelajuannya sekitar 60&nbsp;Mbit/s.

Pada Intel Core i3/i5/i7 dan AMD Ryzen yang mendukung set instruksi AES-NI, kelajuannya bisa mencapai beberapa GB/s (bahkan lebih dari 10&nbsp;GB/s).

## Catatan kaki


## Referensi

* 
* 
*  alternate link (situs web pendamping berisi kuliah daring tentang AES.

## Pranala luar
*
*
* Informasi arsip algoritma AES – (lama, tidak terawat)
*
* Animation of Rijndael – AES dijelaskan secara mendalam dan dianimasikan menggunakan Flash (oleh Enrique Zabala / Universitas ORT / Montevideo / Uruguay). Animasi ini (dalam Inggris, Spanyol, dan Jerman) juga merupakan bagian dari CrypTool 1 (menu Indiv. Prosedur → Visualisasi dari algoritme → AES).
* HTML5 Animation of Rijndael – Animasi yang sama seperti di atas dibuat dalam HTML5.