Anda di halaman 1dari 20

Jurnal Sarjana Teknik Informatika, Keamanan Komputer,

Unirow Tuban, Februari 2016.

ANALISA DAN IMPLEMENTASI PROSES KRIPTOGRAFI


ENCRYPTION-DECRYPTION DENGAN ALGORITMA
ADVANCED ENCRYPTION STANDARD (AES-128)
Ahmad Muazim Abidin1,Fitria Hardianti P2,Indra Nur Setiani3
1

Prodi S1 Teknik Informatika, FT, Universitas PGRI Ronggolawe (Unirow)


Prodi S1 Teknik Informatika, FT, Universitas PGRI Ronggolawe (Unirow)
3
Prodi S1 Teknik Informatika, FT, Universitas PGRI Ronggolawe (Unirow)
Jalan Manunggal No. 61 Tuban
2

ABSTRAK
Seiring dengan perkembangan zaman, kebutuhan manusia meningkat. Termasuk
kebutuhan akan informasi. Oleh sebab itu, pengiriman dan penyimpanan data melalui
media elektronik memerlukan suatu proses yang mampu menjamin keamanan dan
keutuhan dari data tersebut. Untuk menjamin keamanan dan keutuhan dari suatu data,
dibutuhkan suatu proses penyandian. Dengan cara penyandian tersebut, data asli tidak
akan terbaca oleh pihak yang tidak berkepentingan. Pertimbangan bahwa sebuah standard
algoritma yang baru sangatlah diperlukan untuk tetap menjaga kerahasiaan suatu data.
Dalam hal ini, kunci yang lebih panjang juga merupakan keharusan. Advanced
Encryption Standard (AES) merupakan algoritma kriptografi encryption-decryption yang
dapat digunakan untuk mengamankan data. AES (Advanced Encryption Standard) adalah
lanjutan dari algoritma enkripsi standar DES (Data Encryption Standard) yang masa
berlakunya dianggap telah usai karena faktor keamanan, sehingga pada tanggal 2 Maret
tahun 2001 ditetapkanlah algoritma baru Rijndael sebagai AES. AES menggunakan
algoritma Rijndael yang dapat mengenkripsi dan mendekripsi blok data sepanjang 128 bit
dengan panjang kunci 128 bit, 192 bit, atau 256 bit. Dengan panjang kunci 128 bit, Misal
state =19, hasil SubBytes = d4, ShiftRows = d4, MixColumns = 04, AddRoundKey = a4
dan proses tersebut diulang sampai 10 kali hasil ciphertext = 39.
Kata Kunci : Kriptografi, Encryption-Decryption, Advanced Encryption Standard (AES) 128, Rijndael.

ABSTRACT
Along with the times, increasing human needs. Including the need for information.
Therefore, delivery and storage of data via electronic media requires a process that is
capable of ensuring the security and integrity of the data. To ensure the security and
integrity of the data, we need a process of encoding. By way of encoding the original data
will not be read by unauthorized parties. Considering that a new standard algorithm is
required to maintain the confidentiality of the data. In this case, the longer keyword also
a must. Advanced Encryption Standard (AES) is a cryptographic algorithm that can be
used to secure the data. AES (Advanced Encryption Standard) is a continuation of the
standard encryption algorithms DES (Data Encryption Standard) that the validity period
is deemed to have ended because of the safety factor, so that on March 2, 2001
ditetapkanlah new algorithm Rijndael as AES. AES uses the Rijndael algorithm to
encrypt and decrypt the data block along with a 128-bit key length of 128 bits, 192 bits or
256 bits. With a key length of 128 bits, Eg state = 19, the result SubBytes = d4, ShiftRows
= d4, MixColumns = 04, AddRoundKey = a4 and the process is repeated up to 10 times
the ciphertext = 39.
Keyword : Cryptographic, Encryption-Decryption, Advanced Encryption Standard (AES)
- 128, Rijndael.

I.

PENDAHULUAN
Sejalan dengan perkembangan teknologi, semakin mengubah cara

masyarakat dalam berkomunikasi.

Dulu

komunikasi

jarak

jauh

masih

menggunakan cara yang konvensional, yaitu dengan cara saling mengirim surat,
tetapi sekarang komunikasi jarak jauh dapat dilakukan dengan mudah dan
cepat yaitu dengan adanya teknologi seperti email, SMS ( Short Messaging
Service ), dan Internet yang merupakan salah satu teknologi telekomunikasi
yang paling banyak digunakan. Namun tidak semua perkembangan teknologi
komunikasi memberikan dampak yang positif dan menguntungkan. Salah satu
dampak negatif dalam perkembangan teknologi adalah adanya penyadapan data,
yang merupakan salah satu masalah yang paling ditakuti oleh para pengguna
jaringan komunikasi.
Keamanan dan kerahasiaan data merupakan salah satu aspek penting dari
suatu sistem informasi. Sebuah informasi hanya ditujukan bagi segolongan
tertentu, hal tersebut terkait dengan bagaimana informasi tidak dapat diakses oleh
orang yang tidak berhak. Oleh karena itu sangat penting untuk mencegah jatuhnya
informasi

kepada

pihak-pihak

lain

yang

tidak

berkepentingan.

Untuk

melaksanakan tujuan tersebut maka dirancang suatu sistem keamanan yang


berfungsi melindungi informasi dari berbagai ancaman.Karena itulah dibutuhkan
suatu metode yang dapat menjaga kerahasiaan informasi ini.

Metode yang

dimaksud adalah kriptografi (sistem enkripsi dan dekripsi data).


Sistem enkripsi dapat meningkatkan tingkat keamanan pesan. Hal ini
dapat

mengurangi

bocornya

informasi

kepada pihak-pihak yang tidak

berkepentingan.
Algoritma AES-128 adalah sistem kriptografi kunci simetris 128-bit.
Alasan dipilihnya algoritma ini adalah karena algoritma ini tergolong algoritma
stream chipper. Selain itu, algoritma ini bisa diimplementasikan secara efisien
pada berbagai prosesor maupun hardware khusus. Oleh karena itu dengan
memanfaatkan keunggulan dari algoritma AES-128 dan melihat masalah
keamananan data pesan yang tengah dihadapi, maka dalam penelitian ini
penulis akan menganalisa, merancang, dan mengimplementasikan encryption
decryption menggunakan AES-128.
2

Tujuan Dan Manfaat


Tujuan yang ingin dicapai dari pelaksanaan dan penulisan jurnal ini
adalah menganalisa, merancang, dan mengimplementasikan encryption
decryption menggunakan algoritma AES-128.
Adapun beberapa manfaat yang diharapkan pada pembuatan tugas
akhir ini adalah:
1. Dapat menerapkan ilmu kripografi encrypt decrypt terutama dengan algoritma
AES-128
2. Melindungi kerahasiaan suatu informasi dari pihak yang tidak diharapkan

Batasan Masalah
Adapun batasan masalah dalam pembuatan jurnal ini adalah sebagai
berikut :
1. Hanya

membahas

dan

menganalisa

tentang

encryption-decryption

menggunakan algoritma AES-128


2. Implementasi hanya tentang encryption-decryption menggunakan algoritma
AES-128
3. Implementasi program menggunakan bahasa pemrograman PHP
4. Implementasi program meng-enkripsikan / menyandikan plaintext yang
diinputkan menggunakan chiper key yang diinputkan menghasilkan chipertext
kemuadian didekripsikan / dikonversikan kembali ke plaintext secara otomatis
5. Implementasi program untuk encrypt decrypt, plaintextnya berupa string.

II.

LANDASAN TEORI

Definisi Kriptografi
Kriptografi berasal dari Bahasa Yunani, yaitu kripto dan graphia. Menurut
bahasa kripto berarti rahasia (secret) dan graphia berarti tulisan (writing). Menurut
terminologi, kriptografi adalah ilmu atau seni untuk menjaga keamanan pesan
ketika pesan dikirim darisuatu tempat ke tempat yang lain. Secara keseluruhan
kriptografi dapat disimpulkan sebagai ilmu yang mempelajari tentang pengacakan
pesan dengan fungsi matematika agar tidak bisa dibaca oleh pihak yang tidak
berwenang. Kriptografi merupakan studi matematika yang mempunyai hubungan
3

dengan aspek keamanan informasi seperti integritas data dan keaslian data. Dalam
penerapannya, kriptografi merupakan suatu metode enkripsi atau penyandian data
yang hanya diketahui atau berarti oleh suatu kelompok pengguna tertentu. Metoda
ini telah dikenal sejak lama, salah satu contoh penggunaannya pada masa keKaisaran Romawi Kuno. Pada waktu itu Julius Caesar tidak menginginkan berita
atau pesan yang dibawa oleh kurir-kurirnya jatuh kepada pihak lawan. Oleh
karena itu, beliau menggunakan sistem substitusi sederhana, yang kini disebut
dengan Caesar Cipher.
Dalam kriptografi ada beberapa istilah yang seringdigunakan, antara lain
sebagai berikut :
1. Plaintext adalah informasi asli sebelum dienkripsi atau teks terang.
2. Enkripsi adalah proses kriptografi dari plaintext menjadi ciphertext.
3. Ciphertext adalah informasi acak yang berasal dari plaintext yang telah
dimasukkan ke dalam fungsi kriptografi atau dienkripsi.
4. Dekripsi adalah proses pengubahan ciphertextmenjadi plaintext.
5. Kriptoan alisis adalah studi yang mempelajari teknik matematika untuk
memecahkan teknik kriptografi.
6. Kriptoanalis adalah orang yang melakukan kriptonalisis.
7. Kriptologi adalah ilmu tentang kriptografi dan kriptonalisis.

Tujuan Kriptografi
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan
aspek keamanan informasi yaitu :
1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi
dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk
membuka/mengupas informasi yang telah disandi.
2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data
secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak
berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain
kedalam data yang sebenarnya.

3. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara


kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan
melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan
lain-lain.
4. Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang
mengirimkan/membuat.

Kriptografi Klasik
Kriptografi sudah digunakan sejak lama seperti algoritma Caesar
Cipheryang

menggunakan

teknik

subtitusi,

algoritma

ini

sudah

digunakanbeberapa abad yang lalu. Dua teknik dasar yang biasa digunakan pada
Kriptografi Klasik, adalah sebagai berikut
1. Teknik Subtitusi : Penggantian setiap karakter plaintextdengan karakter lain
2. Teknik Tranposisi (Permutasi) : Teknik ini menggunakan permutasi karakter

Kriptografi Modern
Perbedaan kriptografi ini dengan Kriptografi Klasik, adalah pada
Kriptografi Modern sudah menggunakan perhitungan komputasi atau program
dalam pengoperasiannya, yang berfungsi mengamankan data baik yang ditransfer
melalui jaringan komputer maupun tidak. Hal ini sangat berguna untuk untuk
melindungi keamanan, integritas, dan keaslian dari data.
Pada kriptografi ini karakter-karakter yang akan dioprasiakan seperti
plaintextdan kunci dikonversikan ke dalam suatu urutan digit biner (bit) yaitu 0
atau 1, yang umumnya digunakan untuk skema pengkodeaan ASCII (American
Standart Code for Information Interchange).
Satu buah karakter sama dengan delapan bit, maka jumlah karakter yang
terbentuk dari delapan bittersebut adalah 256. Begitu juga ASCII yang mempunyai
jumlah karakter 256, pada pembahasan selanjutnya 256 karakter ASCII tersebut
menjadi himpunan dari elemen finite field.

Kriptografi Simetrik
Pada algoritma simetrik, kunci enkripsi yang digunakan sama dengan
kunci dekripsinya, sehingga sering one-key, private-key atau single-key.
Algoritma simetrik masih terbagi dalam dua kategori, yakni algoritma block
cipher dan algoritma stream cipher.
Algoritma block cipher adalah algoritma yang masukkan dan keluarannya
berupa satu dan setiap bloknya terdiri dari banyak bit. Sedangkan algoritma
stream cipher, ciphernya berasal dari hasil XOR antara setiap bit plaintext dengan
kuncinya, atau mengenkripsi satu bit pada suatu waktu. Contoh dari algoritma ini
adalah Data Encryption Standard (DES), International Data Encryption
Algorithm (IDEA), Advanced Encryption Standard (AES), dan sebagainya.

Kriptografi Asimetrik
Algoritma kriptografi asimetrik adalah algoritma yang menggunakan kunci yang
berbeda untuk proses enkripsi dan deskripsinya. Algoritma ini disebut algoritma
kunci umum (public key algorithm) karena kunci untuk enkripsi dapat dibuat
umum (public key) atau dapat diketahui setiap orang, tetapi kunci untuk deskripsi
hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan
atau sering disebut kunci pribadi (private key). Algoritma yang menggunakan
kunci umum dan publik ini antara lain Digital Signature Algorithm (DSA), RivestShamir-Adleman (RSA), Diffie-Hellman (DH), dan sebagainya.

Encryption Dan Decryption


Enkripsi yaitu suatu proses pengaman suatu data yang disembunyikan atau
proses konversi data ( plaintext ) menjadi bentuk yang tidak dapat dibaca/
dimengerti. Enkripsi telah digunakan untuk mengamankan komunikasi di
berbagai negara, namun, hanya organisasi-organisasi tertentu dan individu yang
memiliki

kepentingan

yang

sangat

mendesak

akan

kerahasiaan

yang

menggunakan enkripsi.
Di pertengahan tahun 1970an enkripsi kuat dimanfaatkan untuk
pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain
publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti
6

Internet, e-commerce, jaringan telepon bergerak dan ATM pada bank. Enkripsi
dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk
membuat komunikasi yang aman, terutama untuk memastikan integrasi dan
autentikasi dari sebuah pesan.
Untuk menampilkan enkripsi dan kebalikannya dekripsi, digunakan
algoritma yang biasa disebut Cipher dengan menggunakan metode serangkaian
langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah
Encipherment.
Informasi yang asli disebuh sebagai plaintext, dan bentuk yang sudah
dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi
dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia
ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan
dekripsi.
Sedangkan Dekripsi yaitu kebalikan dari proses enkripsi yaitu proses
konversi data yang sudah dienkripsi ( ciphertext ) kembali menjadi data aslinya (
Original Plaintext ) sehingga dapat dibaca/ dimengerti kembali.

III.

ANALISA DAN PEMBAHASAN

Advanced Encryption Standard (AES)


Advanced Encryption Standard adalah sebuah algoritma kriptografi
simetris yang dapat digunakan untuk mengamankan data. Algoritma ini
merupakan standar enkripsi dengan kunci-simetris. Algoritma AES dengan blok
ciphertext simetris dapat mengenkripsi (encipher) dan dekripsi (decipher) pada
sebuah informasi. Jenis Algoritma ini terbagi menjadi 3 yaitu AES-128,
AES-192 dan AES-256. Masing - masing jenis algoritma AES tersebut dapat
mengenkrip dan dekrip data pada blok 128 bit, blok 128 bit adalah ukuran tetap
blok chiper yang digunakan pada algoritma AES.
Algoritma Rijndael kemudian dikenal dengan Advanced Encryption
Standard (AES). Algoritma AES:Rijndael yang disosialisasikan oleh National
Institute of Standards and Technology (NIST) pada November 2001 lahir sebagai
standar baru enkripsi yang dikembangkan dari algoritma DES (Data Encryption
Standard) melalui seleksi yang ketat dengan algoritma yang lainnya. AES yang di
7

cetuskan oleh Dr. Vincent Rijmen dan Dr. Joan Daemen menjadi pemenang pada
saat seleksi algoritma baru untuk menggantikan DES. Alasan utama terpilihnya
AES:Rijndael ini bukan karena algoritmanya yang paling aman dari MARS,
RC6, Serpent, Twofish, dan yang lainnya, tetapi AES:Rijndael memiliki
keseimbangan antara keamanan serta fleksibelitas dalam berbagai platform
softwaredan hardware.

Sejarah Advanced Encryption Standard (AES)


Pada tahun 1972 dan 1974 National Bureau of Standards (sekarang dikenal
dengan nama National Institute of Standards and Technology, NIST) menerbitkan
permintaan kepada publik untuk pembuatan standar enkripsi. Hasil dari
permintaan pada saat itu adalah DES (Data Encryption Standard), yang banyak
digunakan di dunia. DES adalah sebuah algoritma kriptografi simetrik dengan
panjang kunci 56 bit dan blok data 64 bit. Dengan semakin majunya teknologi,
para kriptografer merasa bahwa panjang kunci untuk DES terlalu pendek,
sehingga keamanan algoritma ini dianggap kurang memenuhi syarat. Untuk
mengatasi hal itu, akhirnya muncul triple DES.
Triple DES pada waktu itu dianggap sudah memenuhi syarat dalam
standar enkripsi, namun teknologi yang tidak pernah berhenti berkembang
akhirnya juga menyebabkan standar ini dianggap kurang memenuhi syarat dalam
standar enkripsi. Akhirnya NIST mengadakan kompetisi untuk standar kriptografi
yang terbaru, yang dinamakan AES (Advanced Encryption Standard). Dari hasil
seleksi yang dilakukan oleh NIST, akhirnya NIST memilih 5 finalis AES, yaitu :
Mars, RC6, Rijndael, Serpent, dan Twofish. Kompetisi ini akhirnya dimenangkan
oleh Rijndael dan secara resmi diumumkan oleh NIST pada tahun 2001. Rijndael
ditulis oleh Joan Daemen dan Vincent Rijmen.
AES diumumkan oleh Institut Nasional Standar dan Teknologi (NIST)
sebagai Standar Pemrosesan Informasi Federal (FIPS) publikasi 197 (FIPS 197)
pada tanggal 26 November 2001 setelah proses standarisasi selama 5 tahun, di
mana ada 15 desain enkripsi yang disajikan dan dievaluasi, sebelum Rijndael
terpilih sebagai yang paling cocok. AES efektif menjadi standar pemerintah
Federal pada tanggal 26 Mei 2002 setelah persetujuan dari Menteri Perdagangan.
8

AES tersedia dalam berbagai paket enkripsi yang berbeda. AES merupakan
standar yang pertama yang dapat diakses publik dan sandi-terbuka yang disetujui
oleh NSA untuk informasi rahasia. Salah satu alasan mengapa AES encryption
bekerja dengan baik adalah metode enkripsi ini bekerja pada beberapa network
layer pada saat yang sama. Walaupun AES dan Rijndael digunakan secara
bergantian, terdapat beberapa perbedaan yang dapat dengan mudah diketahui.
Sementara AES menggunakan blok cipher fix 128-bit, Rijndael dapat
menggunakan blok cipher apa saja dan kunci 32-bit. Ukuran kunci dan blok cipher
yang digunakan memiliki berkisar antara 128-bit sampai 256-bit. AES ini
merupakan algoritma block cipher dengan menggunakan sistem permutasi dan
substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block
cipher pada umumnya. Tidak seperti DES yang berorientasi bit, Rijndael
beroperasi dalam orientasi byte.

Keamanan Encryption-Decryption Algoritma AES


Algoritma Rijndael menggunakan key 128, 192, maupun 256 bit.
Keamanan algoritma ini telah terbukti mampu mengatasi berbagai teknik
kriptoanalisis seperti diferential, truncated diferential, dan linear interpolation
yang sebelumnya cukup ampuh untuk membobol DES. Dengan key 128 bit,
dibutuhkan waktu 5 x 10^21 tahun untuk membobol algoritma ini dengan cara
mengecek satu-per-satu seluruh key yang ada dengan kecepatan 50 milyar key per
detik, sementara pada algoritma DES dengan key 56 bit cara tersebut hanya
membutuhkan waktu 400 hari.

Algoritma AES-128
Garis besar Algoritma Rijndael yang beroperasi pada blok 128-bit dengan
kunci 128-bit adalah sebagai berikut (di luar proses pembangkitan round key):
1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher
key. Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr 1 kali. Proses yang dilakukan pada setiap putaran
adalah:
a. SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
9

b. ShiftRows: pergeseran baris-baris array state secara wrapping.


c. MixColumns: mengacak data di masing-masing kolom array state.
d. AddRoundKey: melakukan XOR antara state sekarang round key.
3. Final round: proses untuk putaran terakhir:
a. SubBytes
b. ShiftRows
c. AddRoundKey

AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran
kunci sepanjang 128, 192, atau 256 bit. Berdasarkan ukuran block yang tetap,
AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas
1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang
lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan.
Blok chiper tersebut dalam pembahasan ini akan diasumsikan sebagai
sebuah kotak. Setiap plainteks akan dikonversikan terlebih dahulu ke dalam blokblok tersebut dalam bentuk heksadesimal. Barulah kemudian blok itu akan
diproses dengan metode yang akan dijelaskan.

Add Round Key


Pada proses ini subkey digabungkan dengan state. Proses penggabungan
ini menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang
bersangkutan dari state. Untuk setiap tahap, subkey dibangkitkan dari kunci
utama dengan menggunakan proseskey schedule. Setiap subkeyberukuran sama
dengan state yang bersangkutan.

Gambar 1. Proses add round Key

10

Sub Bytes
Proses SubBytes adalah operasi yang akan melakukan substitusi tidak
linear dengan cara mengganti setiap byte statedengan byte pada sebuah tabel yang
dinamakan tabel SBox. Sebuah tabel S-Box terdiri dari 16x16 baris dan kolom
dengan masing-masing berukuran 1 byte.

Gambar 2. Sbox

Gambar 3. Proses sbox

Pada ilustrasi Sub Bytes diatas, di sana terdapat nomor kolom dan nomor
baris. Seperti yang telah disebutkan sebelumnya, tiap isi kotak dari blok chiper
berisi informasi dalam bentuk heksadesimal yang terdiri dari dua digit, bisa
angka-angka, angka-huruf, ataupun huruf-angka yang semuanya tercantum dalam
Rijndael S-Box. Langkahnya adalah mengambil salah satu isi kotak matriks,
mencocokkannya dengan digit kiri sebagai baris dan digit kanan sebagai kolom.
Kemudian dengan mengetahui kolom dan baris, kita dapat mengambil sebuah isi
tabel dari Rijndael S-Box. Langkah terakhir adalah mengubah keseluruhan blok
chiper menjadi blok yang baru yang isinya adalah hasil penukaran semua isi blok
dengan isi langkah yang disebutkan sebelumnya.

Shift Rows
Shift Rows seperti namanya adalah sebuah proses yang melakukan shift
atau pergeseran pada setiap elemen blok/tabel yang dilakukan per barisnya. Proses
11

Shift Rowsakan beroperasi pada tiap baris dari tabel state. Proses iniakan bekerja
dengan cara memutar byte-byte pada 3 baris terakhir (baris 1, 2, dan 3) dengan
jumlah perputaran yang berbeda-beda. Baris 1 akan diputar sebanyak 1 kali, baris
2 akan diputar sebanyak 2 kali, dan baris 3 akan diputar sebanyak 3 kali.
Sedangkan baris 0 tidak akan diputar.

Gambar 4. Proses shift rows

Mix Columns
Yang terjadi saat Mix Column adalah mengalikan tiap elemen dari blok
chiper dengan matriks. Proses MixColumnsakan beroperasi pada tiap kolom dari
tabel state. Operasi ini menggabungkan 4 bytesdari setiap kolom tabel statedan
menggunakan transformasi linier.
Operasi Mix Columnsmemperlakukan setiap kolom sebagai polinomial 4
suku dalam Galois fielddan kemudian dikalikan dengan c(x) modulo (x4+1),
dimana

c(x)=3x3+x2+x+2.

Kebalikkan

dari

polinomial

ini

adalah

c(x)=11x3+13x2+9x+14. Operasi MixColumns juga dapat dipandang sebagai


perkalian matrix. Langkah MixColumns dapat ditunjukkan dengan mengalikan 4
bilangan di dalam Galois field oleh matrix berikut ini :

Atau bila dijabarkan :


r0=2a0+a3+a2+3a1
r1=2a1+a0+a3+3a2
r2=2a2+a1+a0+3a3
a3=2a3+a2+a1+3a0

Operasi penjumlahan di atas dilakukan dengan operasi XOR, sedangkan


operasi perkalian dilakukan dalam Galois field.
12

Gambar 5. Proses mix columns

Proses Encrypt Advanced Encryption Standard AES-128


Proses encrypt pada algoritma AES terdiri dari 4 jenis transformasi bytes,
yaitu SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey. Pada awal proses
enkripsi, input yang telah dikopikan ke dalam state akan mengalami transformasi
byte AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes,
ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr.
Proses ini dalam algoritma AES disebut sebagai round function. Round yang
terakhir agak berbeda dengan round-round sebelumnya dimana pada round
terakhir, state tidak mengalami transformasi MixColumns.
Plain Text

AddRoundKey

SubBytes

Nr

ShiftRows

a0,0 a0,1

a0,2 a0,3

k0,0

k0,1

k0,2

k0,3

a1,0 a1,1

a1,2 a1,3

k1,0

k1,1

k1,2

k1,3

a2,0 a2,1

a2,2 a2,3

k2,0

k2,1

k2,2

k2,3

a3,0 a3,1

a3,2 a3,3

k3,0

k3,1

k3,2

k3,3

S0,0 S0,1 S0,2 S0,3

W0,0 W0,1 W0,2 W0,3

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

W1,0 W1,1 W1,2 W1,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

W2,0 W2,1 W2,2 W2,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

W3,0 W3,1 W3,2 W3,3

S3,0 S3,1 S3,2 S3,3

S0,0 S0,1 S0,2 S0,3

S- BOX

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 rcS2,2 S2,3

S2,0 S2,1 rcS2,2 S2,3

S3,0 S3,1 S3,2 S3,3

S3,0 S3,1 S3,2 S3,3

S0,0 S0,1 S0,2 S0,3

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S1,1 S1,2 S1,3 S1,0

S2,0 S2,1 S2,2 S2,3

S2,2 S2,3 S2,0 S2,1

S3,0 S3,1 S3,2 S3,3

S3,3 S3,0 S3,1 S3,2

MixColumns
AddRoundKey

SubBytes
ShitRows
AddRoundKey

S0,0 SS0,10,c S0,2 S0,3


S1,0 SS1,11,c S1,2 S1,3
S2,0 SS2,1 S2,2 S2,3
2,c

S3,0 SS3,1 S3,2 S3,3


3,c

02
01

01

03

03 01 01
02 03 01
01 02 03

01 01 02

S0,c S S
S0,0 S
0,1
0,2
0,3
S1,11,c S1,2 S1,3
S1,0 S
S2,0 S
S2,12,c S2,2 S2,3
S3,0 S
S3,1 S3,2 S3,3
3,c

Cipher Text

Gambar 6. Diagram alur proses encrypt metode AES-128

Proses Decrypt Advanced Encryption Standard AES-128


Transformasi cipher dapat dibalikkan dan diimplementasikan dalam arah
yang berlawanan untuk menghasilkan inverse cipher yang mudah dipahami untuk
13

algoritma AES. Transformasi byte yang digunakan pada invers cipher adalah
InvShiftRows, InvSubBytes, InvMixColumns, dan AddRoundKey.
Cipher Text

AddRoundKey
InvShiftRows
InvSubBytes

S0,0 S0,1 S0,2 S0,3

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S1,3 S1,0 S1,1 S1,2

S2,0 S2,1 S2,2 S2,3

S2,2 S2,3 S2,0 S2,1

S3,0 S3,1 S3,2 S3,3

S3,1 S3,2 S3,3 S3,0

S0,0 S0,1 S0,2 S0,3

S0,0 S0,1 S0,2 S0,3

Inv S- BOX

S1,0 S1,1 S1,2 S1,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S2,0 S2,1 rcS2,2 S2,3

S3,0 S3,1 S3,2 S3,3

S3,0 S3,1 S3,2 S3,3

Src

AddRoundKey

S0,0 SS0,10,c S0,2 S0,3

InvMixColumns

Nr-1

S1,0 SS1,11,c S1,2 S1,3


S2,0 SS2,1 S2,2 S2,3

0E
09

0 D

0B

0B
0E
09
0D

0D
0B
0E
09

09
0 D
0B

0E

2,c

InvShiftRows

S0,c S S
S0,0 S
0,1
0,2
0,3
S1,11,c S1,2 S1,3
S1,0 S
S2,0 S
S2,12,c S2,2 S2,3
S3,0 S
S3,1 S3,2 S3,3

S3,0 SS3,1 S3,2 S3,3

3,c

3,c

InvSubBytes

AddRoundKey

S0,0 S0,1 S0,2 S0,3

W0,0 W0,1 W0,2 W0,3

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

W1,0 W1,1 W1,2 W1,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

W2,0 W2,1 W2,2 W2,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

W3,0 W3,1 W3,2 W3,3

S3,0 S3,1 S3,2 S3,3

Plain Text

Gambar 7. Diagram alur proses encrypt metode AES-128

IV.

IMPLEMENTASI

Implementasi Advanced Encryption Standard AES-128


Implementasi

AES-128

ini

berbasis

web,

menggunakan

bahasa

pemrograman PHP. PHP adalah bahasa pemrograman web atau scripting language
yang didesain untuk web.
Batas Maksimum kunci sebesar 32 bit 32 bit dan dipadukan fungsi
base64_decoding. Base64 adalah metode yang digunakan untuk melakukan
encoding (penyandian) terhadap data binary sehingga menjadi printable atau
pendek katanya data binary disandikan menjadi format 7-bit character semacam
bagian isi email.
Base64 adalah base 64 yang disusun oleh 64 karakter, dimana karakternya
(berdasarkan

RFC

1421) terdiri

dari

(A-Z,

a-z, 0-9, +,

/) atau

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345
6789+/. Tapi ada satu karater tambahan yaitu =, yang fungsinya untuk
menggenapkan atau istilahnya sebagai pengisi pad.

14

Flowchart Program Implementasi Advanced Encryption Standard AES-128

Gambar 8. Flowchart program

Source Code Implementasi Advanced Encryption Standard AES-128


Source code proses encrypt - decrypt:
<?php
if (isset($_POST['enc'])){
# Get POST input
$keya = isset($_POST['keya']) ? $_POST['keya'] : '';
$plaina
= isset($_POST['plaina']) ? $_POST['plaina'] :
'';
# Mengeset kunci utama
$key = "$keya";
# Menghitung besar kunci (maksimal 32 bit) untuk AES-128
$key_size = strlen($key);
# Mendapatkan pesan plain text
$plaintext = "$plaina";
# Membuat IV acak untuk digunakan enkoding CBC
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,
MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
# Membuat ciphertext kompatibel AES-128 menggunakan Rijndael
128)
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
$plaintext, MCRYPT_MODE_CBC, $iv);
# Menyatukan IV agar dapat didekripsi
$ciphertext = $iv . $ciphertext;
15

# Mengubah hasil ciphertext agar ditampilkan kedalam string


$ciphertext_base64 = base64_encode($ciphertext);
# Proses dekripsi
$ciphertext_dec = base64_decode($ciphertext_base64);
# Mendapatkan IV, iv_size dibuat menggunakan
mcrypt_get_iv_size()
$iv_dec = substr($ciphertext_dec, 0, $iv_size);
# Mendapatkan hasil dekripsi ciphertext
$ciphertext_dec = substr($ciphertext_dec, $iv_size);
# Mendekripsi plaintext terenkripsi
$plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
$ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
}
?>

Pengujian Advanced Encryption Standard AES-128 Dengan Program Hasil


Implementasi Berbasis Web
Ketika program encrypt decrypt dengan algoritma AES-128 dijalankan
maka akan terlihat tampilan awal sebagai berikut :

Gambar 9. Tampilan awal program implementasi AES-128

Implementasi encrypt decrypt ini untuk menyandikan teks yang berupa


kata atau kalimat bertipe string. Untuk meng-encrypkan suatu huruf, kata, atau
kalimat tentukan terlebih dahulu chiper key yang akan digunakan, masukkan pada
form text input yang tampak pada program, pada program chiperkey bertipe bebas
16

dapat berupa angka atau huruf, minimal chiper key sebesar 1 bit dan untuk
maksimal besar chiper key adalah 32 bit.

Gambar 10. Tampilan form menginput chiper key dan plaintext

Selanjutnya masukkan plaintext yang ingin diencrypt / disandikan, kemudian klik


tombol Encrypt It, maka hasilnya tampak seperti berikut :

Gambar 11. Tampilan form output encrypt decrypt AES-128

Pengujian Advanced Encryption Standard AES-128 Dengan Cryptool


Cryptool adalah software (Open Source) yang dikembangkan oleh tim dari
University of Kassel (Jerman), yang berfungsi analisis kriptografi, bagi pengguna
umum atau praktisi komputer juga bisa bermanfaat terutama yang ingin
mempelajari tentang algoritma atau metode berbagai algoritma enkripsi yang
sebenarnya sudah kita gunakan sehari-hari. Encrypt Decrypt algoritma AES 17

128 dengan Cryptool, langsung saja jalankan Cryptool, buka project baru gunakan
algoritma AES-128, terlebih dahulu dilakukan proses encryption yang tampak
pada gambar berikut yang sebelumnya telah diatur pada jendela setting untuk
algoritma AES di Cryptool, untuk chiper keynya min 18 bit berbeda dengan
program implementasi dengan bahasa pemrograman PHP yang telah dibuat:

Gambar 12. Tampilan encryption di cryptool dengan algoritma AES-128

Setelah itu lakukan proses decrypt output encryp tadi dengan pengaturan
atau settingan yang sama saat proses encryption sebelumnya, maka tampak seperti
gambar berikut :

Gambar 13. Tampilan decryption di cryptool dengan algoritma AES-128

18

Perbedaan AES-128 Di Program Hasil Implementasi Berbasis Web Dan


AES-128 Di Cryptool
AES-128 di program hasil implementasi berbasis web hanya digunakan
untuk encrypt data text (bertipe angka, huruf, maupun karakter simbol lainnya),
untuk chiper keynya dapat berupa text juga (bertipe angka, huruf, maupun
karakter simbol lainnya), batas minimumnya chiper key 1 bit, batas
maksimumnya 32 bit.
Sedangkan untuk AES-128 di Cryptool pengaturan yang dapat dilakukan
lebih banyak dan lebih bervariasi seperti tentang plaintext yang ingin di encrypt
ada beberapa pilihan tipe seperti hexadecimal, binary, octal, text dan sebagainya.
Penggunaan chiper key nya juga terdapat beberapa pilihan ingin menggunakan
chiper key bertipe hexadecimal atau text atau dan sebagainya. D

V.

PENUTUP

Kesimpulan
Kriptografi adalah ilmu yang mempelajari mengenai bagaimana cara
mengamankan suatu informasi. Pengamanan ini dilakukan dengan mengenkrip
informasi tersebut dengan suatu kunci khusus. Informasi ini sebelum dienkrip
dinamakan plaintext. Setelah dienkrip dengan suatu kunci dinamakan ciphertext.
Pada Sistem Kriptografi kekuatan dari metode - metoda enkripsi adalah
pada kunci (dari password yang kita masukkan) sehingga walaupun algoritma
metoda tersebut telah tersebar luas orang tidak akan dapat membongkar data tanpa
kunci yang tepat. Walaupun tentunya untuk menemukan metode tersebut
diperlukan teori matematika yang cukup rumit.
Algoritma AES:Rijndael di cetuskan oleh Dr. Vincent Rijmen dan Dr.
Joan Daemen, disosialisasikan oleh National Institute of Standards and
Technology (NIST) pada November 2001 lahir sebagai standar baru enkripsi yang
dikembangkan dari algoritma DES (Data Encryption Standard) melalui seleksi
yang ketat dengan algoritma yang lainnya.
AES: Rijndael merupakan algoritma kriptografi modern dan simetrik,
chiper key untuk encryp yang digunakan sama dengan chiper key decrypt. AES:
Rijndael merupakan algoritma kriptografi yang termasuk dalam kategori
19

algoritma block chiper, di mana masukkan dan keluarannya berupa satu dan setiap
bloknya terdiri dari banyak bit.. AES: Rijndael merupakan algoritma yang cukup
sulit untuk dipecahkan saat ini, karena belum ada serangan atau pemecahan yang
benar-benar mampu secara analisis matematis dengan efektif dan efisien dengan
alasan pola yang dibentuk cukup acak. Keacakan pola tersebut didapat dari
sebagian teknik AES sebagai kekuatan yang dimiliki algoritma ini, yaitu
SubBytes() dan MixColoums()yang dibangun secara nonlinier sehingga menjadi
tantangan kriptoanalisis linier. Besar file ciphertext yang dihasilkan dari proses
enkripsi dan besar file plaintext akhir dari proses dekripsi untuk algoritma AES:
Rijndael memiliki besar file yang berbeda.

DAFTAR PUSTAKA
[1]. Andrian. (2010). Cryptool, Software Kriptografi dan Kriptoanalisis. Diambil
26

Januari

2015,

pukul

14.45

dari

http://adrianpradana.com/2009/01/22/cryptool-software-kriptografi-dankriptoanalisis/
[2]. Ariyus, Dony. (2008). Pengantar Ilmu Kriptografi (Teori, Analisis, dan
Implementasi), Yogyakarta : ANDI OFFSET.
[3]. Budiyono, Avon. (2004). Enkripsi Data Kunci Simetris dengan Algoritma
Kriptografi LOKI97, Bandung : Institut Teknologi Bandung.
[4]. Kurniawan, Yusuf.

(2004). KRIPTOGRAFI (Keamanan Internet dan

Jaringan Komunikasi), Bandung : Informatika.


[5]. Rinaldi Munir. (2006). Kriptografi, Bandung : Informatika Bandung.
[6]. Selent, D. (2010). Advanced

Encryption

Standard, InSight :

River

Academic Journal.
[7]. Wahana. (2003). Memahami Model Enkripsi & Security Data, Yogyakarta :
ANDI OFFSET.
[8]. Wihartantyo, A. (2004). Advanced Encryption Standard, Algoritma Rinjdael,
Bandung : Institut Teknologi Bandung.

20

Anda mungkin juga menyukai

  • Jadwal
    Jadwal
    Dokumen2 halaman
    Jadwal
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Bustami PDF
    Bustami PDF
    Dokumen20 halaman
    Bustami PDF
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Ip PDF
    Ip PDF
    Dokumen8 halaman
    Ip PDF
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • VIsual C++
    VIsual C++
    Dokumen11 halaman
    VIsual C++
    Di Nar
    Belum ada peringkat
  • Ip PDF
    Ip PDF
    Dokumen8 halaman
    Ip PDF
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • 8 26 14 Contoh Perhitungan Naive Bayes PDF
    8 26 14 Contoh Perhitungan Naive Bayes PDF
    Dokumen5 halaman
    8 26 14 Contoh Perhitungan Naive Bayes PDF
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • PKM RPL
    PKM RPL
    Dokumen19 halaman
    PKM RPL
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • SIM - New - Lulu
    SIM - New - Lulu
    Dokumen79 halaman
    SIM - New - Lulu
    Priyo 'Wb' Sarjono
    Belum ada peringkat
  • Algoritma Naive Classifier (NBC) PDF
    Algoritma Naive Classifier (NBC) PDF
    Dokumen7 halaman
    Algoritma Naive Classifier (NBC) PDF
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Report Dengan Jesper Dan Ireport
    Report Dengan Jesper Dan Ireport
    Dokumen36 halaman
    Report Dengan Jesper Dan Ireport
    Siiutcho Liieng
    Belum ada peringkat
  • 235
    235
    Dokumen3 halaman
    235
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Pedoman PKM Tahun 2015 PDF
    Pedoman PKM Tahun 2015 PDF
    Dokumen145 halaman
    Pedoman PKM Tahun 2015 PDF
    Kaim Kazusa
    100% (1)
  • Psikologi Pendidikan
    Psikologi Pendidikan
    Dokumen5 halaman
    Psikologi Pendidikan
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Teori Graf
    Teori Graf
    Dokumen79 halaman
    Teori Graf
    Tuahuns Farida
    Belum ada peringkat
  • Struktur Kontrol Java (Percabangan&Perulangan)
    Struktur Kontrol Java (Percabangan&Perulangan)
    Dokumen19 halaman
    Struktur Kontrol Java (Percabangan&Perulangan)
    Annisa Gatri
    Belum ada peringkat
  • CONTOH
    CONTOH
    Dokumen9 halaman
    CONTOH
    Naufal Ammar Faizal
    Belum ada peringkat
  • JENI Intro1 Bab07 Java Array
    JENI Intro1 Bab07 Java Array
    Dokumen7 halaman
    JENI Intro1 Bab07 Java Array
    Anggrek Afridya Moeljadi
    Belum ada peringkat
  • Formatsilabus: Silabus
    Formatsilabus: Silabus
    Dokumen3 halaman
    Formatsilabus: Silabus
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Struktur Kontrol Java (Percabangan&Perulangan)
    Struktur Kontrol Java (Percabangan&Perulangan)
    Dokumen19 halaman
    Struktur Kontrol Java (Percabangan&Perulangan)
    Annisa Gatri
    Belum ada peringkat
  • Visual Basic
    Visual Basic
    Dokumen20 halaman
    Visual Basic
    saiful
    100% (1)
  • Konsep Game
    Konsep Game
    Dokumen1 halaman
    Konsep Game
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • 341 356 1 PB
    341 356 1 PB
    Dokumen6 halaman
    341 356 1 PB
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • 341 356 1 PB
    341 356 1 PB
    Dokumen6 halaman
    341 356 1 PB
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • 39 431 1 PB
    39 431 1 PB
    Dokumen12 halaman
    39 431 1 PB
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • 3180 2965 1 PB
    3180 2965 1 PB
    Dokumen17 halaman
    3180 2965 1 PB
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • 341 356 1 PB
    341 356 1 PB
    Dokumen6 halaman
    341 356 1 PB
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Beasiswa
    Beasiswa
    Dokumen5 halaman
    Beasiswa
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Konsep Algoritma Dan Struktur Data
    Konsep Algoritma Dan Struktur Data
    Dokumen17 halaman
    Konsep Algoritma Dan Struktur Data
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat
  • Masuka N
    Masuka N
    Dokumen1 halaman
    Masuka N
    SaFit SaFi Aelharasah Kedawanhehe
    Belum ada peringkat