Anda di halaman 1dari 6

Journal of Research in Computer Science and Applications – Vol. 2, No.

1, Januari 2013 ISSN: 2301-8488

PENERAPAN ENKRIPSI DAN DEKRIPSI FILE MENGGUNAKAN


ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)

Rifkie Primartha 1,2)


1)
Fakultas Ilmu Komputer Unsri, Jurusan Teknik Informatika
2)
rifkie77@gmail.com

ABSTRACT
Cryptography is the science of maintaining the security of message (message). Cryptography has been widely
implemented in many ways. Smart Cards, Automated Teller Machine (ATM), Pay TV, Mobile Phone, and Computers
are a few examples of products that use cryptographic technology for safety. It works by changing the original
message that can be understood / human readable (plaintext) into another form that can not be understood / read by
humans (ciphertext). The process of transforming plaintext into ciphertext termed encryption. Currently refund the
ciphertext into plaintext message termed decryption. There are many cryptographic algorithms, cryptographic
applications in this study were developed using a symmetric algorithm AES (Advanced Encryption Standard) with
the Java Programming Language. AES uses a symmetric key block cipher with variable key size, which is 128 bits,
192 bits, and 256 bits.

Keywords: Advanced Encryption Standard, Cryptography, Encryption, Decryption

I. PENDAHULUAN menggantikan algortima DES yang semakin lama


Kriptografi adalah bidang ilmu yang semakin mudah untuk dibobol. AES diperoleh dari
mempelajari bagaimana cara mengamankan suatu hasil kompetisi yang diadakan NIST tahun 1997.
pesan atau informasi. Upaya untuk menjaga pesan Pada tahap pertama 15 peserta dari 21 peserta lolos
atau informasi rahasia telah ada sejak zaman ke tahap erikutnya berdasarkan penilaian tingkat
dahulu kala. Julius Caesar, Kaisar Romawi, telah keamanan, harga, algortima dan karakteristik
menggunakan metode enkripsi sederhana dengan implementasi. Sepuluh dari 15 peserta tersebut
cara menggeser setiap karakter dengan nilai gugur pada tahap berikutnya karena dianggap
tertentu. Pada zaman itu, cara ini masih cukup kurang aman dan efektif. Pada Agustus 1999
aman, namun tidak untuk zaman sekarang, dimana dipilih lima kandidat dari tahap seleksi akhir, yaitu
kemampuan komputer sangat memungkinkan MARS (IBM, Amerika Serikat), RSA (RSA corp.,
untuk memecahannya. Beberapa algoritma Amerika Serikat), Rijndael (Belgia), Serpent
kriptografi telah dibuat oleh para ahli kriptografi, (Israel, Norwegia, Inggris), dan Twofish
namun berbagai usaha dilakukan oleh para cracker (Counterpane, Amerika Serikat). Pada tahap ini
untuk memecahkannya tidak sedikit yang NIST memberikan penilaian pada general security,
membawa keberhasilan. Hal ini lah yang implementasi software dan hardware, ruang
mendorong para ahli kriptografi untuk membuat lingkup, implementasi atas serangan, enkripsi dan
algoritma-algortima yang lebih aman. dekripsi, kemampuan kunci, dan kemampuan lain
Konsep kriptografi untuk menjaga seperti fleksibilitas dan kepotensialan untuk tingkat
kerahasiaan data (pesan) adalah dengan cara instruksi paralel. Akhirnya, 2 Oktober 2000
menyamarkannya menjadi bentuk tersandi yang terpilihlah algoritma Rijndael yang dibuat oleh Dr.
tidak dapat dibaca. Pesan yang akan disandikan Vincent Rijment dan Dr. Joan Daemen sebagai
disebut plainteks, sedangkan yang telah disamarkan pemenang [12].
disebut chiperteks. Proses penyamaran dari Algoritma ini termasuk jenis simetri yang
plainteks ke chiperteks disebut enkripsi, sedang disebut juga sebagai algoritma konvensional, yaitu
proses pengembalian chiperteks menjadi plainteks algoritma yang menggunakan kunci enkripsi dan
disebut dekripsi [1]. kunci dekripsi yang sama. AES menggunakan
Banyak sekali jenis algoritma kriptografi, sandi blok kunci simetrik dengan ukuran kunci
diantaranya adalah algoritma Advanced Encryption bervariasi, yaitu 128 bit, 192 bit, dan 256 bit.
Standard (AES). AES dipublikasikan oleh NIST Pemerintah Amerika Serikat telah mengadopsi AES
(National Institute of Standard and Technology) sebagai standar enkripsi. Standar ini terdiri dari 3
pada tahun 2001 yang digunakan untuk blok cipher, yaitu AES-128, AES-192, dan AES-

13
Journal of Research in Computer Science and Applications – Vol. 2, No. 1, Januari 2013 ISSN: 2301-8488

256 yang diadopsi dari koleksi yang lebih besar bit-bit.


yang awalnya diterbitkan sebagai Rijndael. AES  Penambahan sub-kunci = XOR bagian
telah dianalisis secara luas dan sekarang digunakan kunci dengan keputusan kitaran.
di seluruh dunia, seperti halnya dengan
pendahulunya, Data Encryption Standard (DES). Berikut ini adalah Tabel 1 yang
Sebagai tindak lanjut dari penelitian memperlihatkan jumlah round/putaran (Nr) yang
sebelumnya, yaitu tentang pemanfaatan kriptografi harus diimplementasikan pada masing-masing
algoritma DES (Data Encryption Standard) panjang kunci.
menggunakan bahasa pemrograman Java. Bahasa
Pemrograman Java diciptakan akhir abad 20, di Tabel 1.
bawah Sun Microsystem pada tahun 1995-an. Perbandingan Jumlah Round dan Key [9]
Bahasa pemrograman Java adalah bahasa modern
yang telah diterima oleh masyarakat komputasi. Jumlah Ukuran Jumlah
Hampir semua perusahaan pengembang software Key Blok Putaran
bersatu mendukung dan mengembangkan sistem (Nk) (Nb) (Nr)
berbasis Java. Bahasa Java tidak mensyaratkan AES-128 4 4 10
platform tertentu. Aplikasi yang dikembangkan AES-192 6 4 12
dengan Java dapat berjalan di platform manapun
AES-256 8 4 14
yang sangat beragam. Bahasa Java dirancang untuk
mendukung paradigma pemrograman berorientasi
objek. Bahasa ini juga dapat membuat beragam Pada dasarnya, operasi AES dilakukan
aplikasi komputer mulai dari hand-held devices terhadap array of byte dua dimensi yang disebut
seperti mobile phone menggunakan J2ME, aplikasi dengan state. State mempunyai ukuran NROWS X
standar dengan J2SE, serta aplikasi back-end NCOLS. Pada awal enkripsi, data masukkan yang
enterprise dengan J2EE [2]. berupa in0, in2, in3, s.d in15 disalin ke dalam
Pada penelitian ini, akan memadukan array state. State inilah yang nantinya dilakukan
algoritma kriptografi AES dan kehandalan bahasa operasi enkripsi/dekripsi. Kemudian keluarannya
pemrograman Java untuk membuat suatu aplikasi akan ditampung ke dalam array out. Gambar 1
perangkat lunak yang dapat melakukan fungsi mengilustrasikan proses penyalinan dari input
kriptografi. bytes, state array, dan output bytes [4].

II. PUSTAKA
II.1 Deskripsi Algoritma Advanced Encryption
Standard (AES)
Jenis algoritma kriptografi AES (atau
Rijndael) ini bersifat simetri dan cipher blok.
Dengan demikian algoritma ini mempergunakan
kunci yang sama saat enkripsi dan dekripsi, serta
masukkan dan keluaran berupa blok dengan urutan
data sebesar 128 bit. Urutan data yang sudah
terbentuk dalam satu kelompok 128 bit tersebut
disebut sebagai blok data atau plainteks yang
nantinya akan di-enkripsi menjadi chiperteks.
Gambar 1. Proses Input Bytes, State Array,
Cipher key dari AES terdiri dari key dengan
dan Output Byte
panjang 128 bit, 192 bit, atau 256 bit. Perbedaan
panjang kunci akan mempengaruhi jumlah round
(putaran) yang akan diimplementasikan pada II.2 Proses Operasi pada Algoritma AES
Ada empat macam operasi yang dilakukan
algoritma AES ini [4]. Ada 10, 12, atau 14 putaran
setiap putaran.
dalam AES yang sesuai dengan ukuran kunci yang
digunakan. Setiap putaran mengandung:
II.2.1 Transformasi Subtitusi Byte
 Penggantian Byte yang sama dengan DES.
Pada operasi ini, setiap byte yang akan dienkripsi
 Peralihan = pertukaran baris.
disubtitusikan dengan nilai byte lain dengan
 Campur Jalur = peralihan kiri dan XOR
14
Journal of Research in Computer Science and Applications – Vol. 2, No. 1, Januari 2013 ISSN: 2301-8488

menggunakan S-box. S-box dibuat dari II.3 Proses Enkripsi dan Dekripsi AES
multiplicative inverse dari angka yang diberikan
dalam Rijndael’s finite field yang kemudian
ditransformasikan dengan affine transformation
[13]. Hasilnya lalu di-XOR dengan 9910 atau
0x6316 atau 11000112. Proses tersebut
menghasilkan nilai dari elemen table S-box.

II.2.2 Transformasi Pergeseran Baris


Pada operasi ini, byte-byte pada setiap baris digeser
secara memutar dengan pergeseran yang berbeda
dari tiap-tiap baris. Setiap baris digeser dengan
aturan tertentu untuk jenis panjang blok yang
berbeda. Baris pertama blok untuk semua jenis
panjang blok (128, 196, dan 256 bit) tidak digeser.
Baris kedua untuk semua jenis panjang blok
digeser 1 ke kiri. Pergeseran baris ketiga dan
keempat untuk panjang blok 128 dan 196 bit
berbeda dengan 256 bit. Pada panjang blok 128 dan
196 bit, baris ketiga digeser ke kiri sebanyak dua
kali dan baris keempat digeser kekiri sebanyak tiga
kali. Pada panjang blok 256 bit, baris ketiga digeser
ke kiri sebanyak tiga kali dan baris keempat digeser
kekiri sebanyak empat kali [14].

II.2.3 Transformasi Percampuran Kolom


Transformasi ini menghasilkan blok pada masing-
masing kolomnya. Masing-masing kolom
diperlakukan sebagai four-term polynomial dengan
cara Galois Field (GF) (28) dan dimodulakan
dengan x4+1 dengan polinom tetap a(x) [15],
yaitu :

A(x) = {03}x3 + {01}x2 + {01}x + {02}

Operasi transformasi ini tidak digunakan dalam


putaran terakhir, baik untuk enkripsi maupun
dekripsi.

II.2.4 Transformasi Penambahan Kunci


Dalam transformasi ini, digunakanlah upakunci
untuk masing-masing putaran yang berasal dari
kunci utama dengan menggunakan jadwal kunci
Rijndael yang ukuran upakunci tersebut sama
dengan ukuran blok yang akan diproses. Upakunci
terseut kemudian di-XOR dengan blok input
sehingga diperoleh hasilnya [16].

15
Journal of Research in Computer Science and Applications – Vol. 2, No. 1, Januari 2013 ISSN: 2301-8488

III. METODE PENELITIAN


Langkah-langkah dalam penelitian ini
meliputi pengembangan perangkat lunak yang
dijelaskan sebagai berikut yaitu:
1. Sumber Data
Jenis data adalah data sekunder yang diambil dari
hasil observasi literatur-literatur di internet.
2. Studi literatur
Pada tahapan ini, akan dilakukan pencarian serta
pembelajaran dari berbagai macam literatur dan
dokumen lainnya. Selanjutnya hal-hal yang
berkaitan dengan algoritma AES dan paket-paket
java yang relevan yang akan diimplementasikan
dalam rekayasa pengembangan perangkat lunak
kriptografi tersebut.
II.4 Transformasi Penambahan Kunci 3. Perancangan
Algoritma AES mengambil kunci cipher Perancangan yang dimaksud adalah merancang
dan melakukan rutin ekspansi kunci (kunci antar muka dari perangkat lunak kriptografi yang
expansion) untuk membentuk key schedule. akan dikembangkan. Antar muka terdiri dari dua
Ekspansi kunci menghasilkan total Nb (Nr+1) macam, yaitu pertama antar muka sebagai
word. Algoritma ini membutuhkan set awal key masukkan data file dan atau teks. Kedua rancangan
yang terdiri dari Nb word, dan setiap round Nr antar muka keluaran sebagai hasil dari pemrosesan
membutuhkan data kunci sebanyak Nb word. Hasil data masukkan.
key schedule terdiri dari array 4 byte word linear 4. Pengembangan
yang dinotasikan dengan (Wi). SubWord adalah Pengembangan perangkat lunak menggunakan
fungsi yang mengambil 4 byte word input dan metode Rational Unified Process (RUP) yang
mengaplikasikan S-Box ke tiap-tiap data 4 byte menerapkan konsep object-oriented.
untuk menghasilkan word output. Fungsi RotWord 5. Eksperimen (skenario percobaan)
mengambil word [a0, a1, a2, a3] sebagai input, Agar pengujian berkualitas, maka perlu didesain
melakukan permutasi siklik, dan mengembalikan skenario percobaan yang bervariasi agar didapat
word [a1, a2, a3, a0]. Rcon[i] terdiri dar nilai-nilai hasil yang sesuai dengan yang diharapkan.
yang diberikan oleh [xi-1, {00}, {00}, {00}], Eksperimen akan dilakukan dengan beberapa kali
dengan xi-1 sebagai pangkat dari x (x dinotasikan percobaan.
sebagai {02}). Psudocode dari proses ekspansi 6. Pengujian dan Evaluasi (pengolahan data,
kunci dapat dilihat dari gambar berikut [6]. perbandingan)
Setelah dilakukan pengujian beberapa kali,
selanjutnya data hasil pengujian dievaluasi pada

16
Journal of Research in Computer Science and Applications – Vol. 2, No. 1, Januari 2013 ISSN: 2301-8488

tahapan selanjutnya.
7. Analisa DAFTAR PUSTAKA
Analisa dilakukan untuk mendapatkan suatu [1] Rinaldi Munir, 2006, Matematika Diskrit,
kesimpulan dari algoritma AES dalam melakukan Bandung, Prodi Teknik Informatika ITB.
enkripsi dan dekripsi. Apabila berhasil, maka [2] Bambang Hariyanto, Esensi-esensi Bahasa
perangkat lunak yang dibangun dianggap berhasil Pemrograman Java, Edisi 2, Bandung, Penerbit
Informatika.
dengan baik. Dan apabila ternyata hasilnya jauh
[3] Didi Surian, 2006, Algoritma Kriptografi AES
berbeda, maka akan dijadikan sebagai temuan Rijndael, Jurnal Teknik Elektro, TESLA Vol. 8
untuk dijadikan bahan bagi penelitian-penelitian No. 2, 97-101.
yang selanjutnya. [4] Voni Y, Gani I, Antonius R, April 2009,
8. Kesimpulan Enkripsi dan Dekripsi dengan Algoritma AES
Hasil dari penelitian ini akan ditarik suatu 256 Untuk Semua Jenis File, Jurnal
kesimpulan tentang bagaimana kehandalan dari Informatika, Vol. 5 No. 1.
algoritma AES dalam melakukan enkripsi dan [5] Rinaldi Munir, 2006, Kriptografi, Bandung,
dekripsi file dan teks. Penerbit Informatika.
[6] Ariyus Dony, 2006, Kriptografi (Keamanan
Data dan Komunikasi).
IV. HASIL DAN PEMBAHASAN
[7] Nagesh Kumar, Jawahar Thakur, Arvind Kalia,
Hasil (keluaran) dari penelitian ini adalah 2011, Performance Analysis of Symmetric Key
berupa perangkat lunak yang dapat melakukan Cryptography Algorithms: DES, AES and
enkripsi dan deksripsi teks dan file. Blowfish, Journal Anu Books.
[8] Hamdan O Alanazi, B.B Zaidan, Hamid A
Jalab, M. Shabbir, dan Al-Nabhani, 2010, New
Comparative Study Between DES, 3DES, and
AES within Nine Factors, Journal of
Computing, Vol. 2, Issue 3, ISSN 2151-9617
[9] Atul M. Borkar, R.V. Kshirsagar, M.V.
Vyawahare, 2010, Design of AES Algorithm
using FPGA, UACEE International Journal of
Advances in Electronics Engineering.
[10] Batbold Toiruul, Kyung Oh Lee, 2006, An
Advanced Mutual-Authentication Algorithm
Using AES for RFID Systems, IJCSNS
International Journal of Computer Science and
Network Security, Vol. 6 No. 9B.
[11] N. Penchalaiah, R. Seshadri, 2010, Affective
Comparison and Evaluation of DES and
Rijndael Algorithm (AES), IJCSE International
Journal on Computer Science and Engineering
Vol. 02, No.05, 1641-1645
V. KESIMPULAN [12] Bernadino Madaharsa D, ITB Bandung.
Kesimpulan yang diperoleh dari penelitian ini [13] Rijndael S-box, URL:
adalah : http://en.wikipedia.org/wiki/Rijndael_S-box
[14] The Advanced Encryption Standard (Rijndael),
 Algoritma AES dapat diimplementasikan ke
URL:
dalam bahasa pemrograman Java untuk http://www.quadibloc.com/crypto/co040401.ht
melakukan enkripsi dan dekripsi suatu teks m
dan file. [15] Specification for the Advanced Encryption
 Proses enkripsi dan dekripsi file maupun teks, Standard (AES), URL:
pada prinsipnya memiliki mekanisme proses http://csrc.nist.gov/publications/fips/fips197/fip
yang sama. s-196.pdf
 Waktu yang dibutuhkan untuk melakukan [16] Advanced Encryption Standard, URL: http://
enkripsi maupun dekripsi file dan atau teks http://en.wikipedia.org/wiki/Advanced_Encrypt
sederhana adalah relatif sama. ion_Standard
 Algoritma AES dapat diterapkan pada
berbagai aplikasi kompresi.

17
Journal of Research in Computer Science and Applications – Vol. 2, No. 1, Januari 2013 ISSN: 2301-8488

18

Anda mungkin juga menyukai