Implementasi Algoritma AES (Advance Encryption Standard) pada Enkripsi dan Deskripsi
Pesan berbasis Aplikasi di Android
Aldiva Wibowo
4183550007
ILMU KOMPUTER
UNIVERSITAS NEGERI MEDAN
2021
Latar Belakang
Seiring dengan perkembangan Teknologi Informasi saat ini mengakibatkan manusia
dapat berkomunikasi dan saling bertukar data dan informasi tanpa dihalangi oleh jarak dan
waktu.. Namun yang cukup disayangkan adalah ketidakseimbangan antara setiap perkembangan
suatu teknologi tidak diiringi dengan perkembangan pada sistem keamanannya itu sendiri,
dengan demikian cukup banyak sistem – sistem yang masih lemah dan harus ditingkatkan
keamanannya.
AES atau Advance Encryption Standard, merupakan algoritma cryptographic yang dapat
digunakan untuk mengamankan data. Dibuat oleh Vincent Rijmen dan John Daemen asal Belgia
sering disebut sebagai algoritma Rijndael. Algoritma AES adalah blok chiphertext simetriks
yang dapat mengenkripsi (echiper) dan deskripsi (decipher).
Dalam algoritma kriptografi AES 128, 1blok plainteks berukuran 128 bit terlebih dahulu
dikonversi menjadi matriks heksadesimal berukuran 4x4 yang disebut state. Setiap elemen state
berukuran 1 byte. Proses enkripsi pada AES merupakan transformasi terhadap state secara
berulang dalam 10 ronde. Setiap ronde AES membutuhkan satu kunci hasil dari generasi kunci
yang menggunakan 2 transformasi yaitu subtitusi dan transformasi. Pada proses enkripsi AES
mengunakan 4 transformasi dasar dengan urutan trasformasi subbytes, shiftrows, mixcolumns,
dan addroundkey. Sedangkan pada proses dekripsi mengunakan invers semua transformasi dasar
pada algoritma AES kecuali addroundkey dengan urutan transformasi invshiftrows, invsubbytes,
addroundkey,dan invmixcolumns.
Pada data teks, proses enkripsi diawali dengan mengkonversi teks menjadi kode ASCII
dalam bilangan heksadesimal yang dibentuk menjadi matriks byte 4x4. Selanjutnya dilakukan
beberapa trnsformasi dasar seperti subbytes, shiftrows, mixcolumns, dan addroundkey. Akan
tetapi ketika melakukan trasformasi data yang diproses pada setiap trasformasi berupa data biner
dari matriks heksadesimal. Kriptografi AES 128 bit memiliki ruang kunci 2128 yang merupakan
nilai yang sangat besar dan dianggap aman untuk digunakan sehingga terhindar dari brute force
attack.
Landasan Teori
AES merupakan sistem penyandian blok yang bersifat non-Feistel karena AES
menggunakan komponen yang selalu memiliki invers dengan panjang blok 128 bit. Kunci AES
menggunakan proses yang berulang yang disebut dengan ronde. Proses di dalam AES
merupakan transformasi terhadap state. Sebuah teks asli dalam blok (128 bit) terlebih dahulu
diorganisir sebagai state.
Enkripsi AES adalah transformasi terhadap state secara berulang dalam beberapa ronde.
State yang menjadi keluara ronde k menjadi masukan untuk ronde ke-k +1. Pada Proses enkripsi
awalnya teks asli dibentuk sebagai sebuah state. Kemudian sebelum ronde 1 dimulai blok teks
asli dicampur dengan kunci ronde ke-0 (transformasi ini disebut AddRoundKey). Setelah itu,
ronde ke-1 sampai dengan ronde ke-(Nr-1) dengan Nr adalah jumlah ronde. AES menggunakan 4
jenis transformasi yaitu:
1. SubBytes, sebagai transformasi subtitusi.
2. ShiftRows, sebagai transformasi permutasi.
3. MixColumns, sebagai transformasi pengacakan.
4, AddRoundKey, sebagai transformasi penambahan kunci.
Pada ronde terakhir, yaitu ronde ke-Nr dilakukan transformasi serupa dengan ronde lain
namun tanpa transformasi serupa dengan ronde lain namun tanpa transformasi MixColumns.
Untuk Enkripsi ARS membutuhkan kunci ronde untuk setiap ronde transformasi kunci
ronde ini di bangkitkan dari kunci AES. Kunci AES 128 bit atau 4 word menghasilkan sebuah
larik sebanyak 44 word yang menjadi kunci.
Pembahasan
AES menggunakan chiper blok simteri yang dapat memproses blok data 128 bit, dengan
menggunakan kunci chiper yang panjangnya 128, 192, dan 256 bit. Berdasrakan hal tersebut,
perbedaan panjang kunci akan mempengaruhi jumlah putaran yang akan diimplementasikan
dalam algoritma AES. Secara ringkas akan ditampilkan pada tabel 1 berikut :
Round 1 6B CC B7 C3 6B CC B7 C3 84 7C 9F 5C 23 AF 2D AB A7 D3 B2 F7 01
7D AB 67 23 AB 67 23 7D 27 E7 81 9B CA 65 65 2C ED 82 E4 B7
F2 72 D7 D4 D7 D4 F2 72 D0 85 EC 06 40 72 72 F6 90 F7 9E F0
82 7D 34 63 63 82 7D 34 07 E3 E9 39 19 8F C4 7D 1E 6C 2D 44
Round 2 26 79 D8 62 26 79 D8 62 24 B3 42 04 28 6C 2F 9E 0C DF 6D 9A 02
74 4D 4D 71 4D 4D 71 74 83 F1 52 56 E2 12 55 E6 61 E3 07 B0
09 40 40 42 40 42 09 40 F1 D7 2E B2 7A AB CC A0 8B 7C E2 12
D4 73 1C FF FF D4 73 1C 82 37 ED AA F4 2D DA D9 76 1A 37 73
3. Final Round : untuk putaran ke Nr, dilakukan tahap-tahap yang sama dengan round
namun tidak melalui proses Mixcolumns. Adapun prosesnya sebagai berikut:
a) Subbytes
b) Shiftrows
c) Addroundkey
Kesimpulan
Dari kajian terori dapat ditarik kesimpulan yaitu penggunaan algoritma AES melibatkan
proses Addroundkey, Subbytes, Shiftrows, dan Mixcolumns pada setiap roundnya. Untuk
panjang kunci 128 bit mengalami round sebanyak 10 kali, Hal ini menyebabkan algoritma AES
sulit untuk dipecahkan.
Oleh karena itu, untuk menjamin keamanan pesan yang dikirim dari aplikasi dan diterima
langsung oleh pengguna lain maka penggunaan algoritma AES merupakan pilihan yang tepat.
Karena keamanan dari algoritma AES yang tinggi walaupun pesan diterima oleh pengguna yang
seharusnya tidak mendapatkan pesan tidak akan mengerti isi dari pesan karena terenkripsi
dengan kunci hexadecimal yang hanya bisa di deskripsikan oleh pengguna yang memiliki private
key nya.