• Tidak ada hasil yang ditemukan

MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES) RIJDNAEL

N/A
N/A
Rahman Salva

Academic year: 2024

Membagikan "MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES) RIJDNAEL "

Copied!
9
0
0

Teks penuh

(1)

32

MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES)

RIJDNAEL

SUGENG MURDOWO Dosen AMIK JTC Semarang

ABSTRAKSI :

Masalah keamanan dan kerahasian data adalah suatu hal yang sangat penting, untuk itu perlu dilakukan perlindungan terhadap data yang kita miliki. Teknik ekripsi dalam ilmu kriptografi merupakan salah satu cara yang dapat mengamankan data dari ganguan orang lain. Kriptografi merupakan seni dalam mengamankan pesan menjadi suatu pesan yang tidak dikenali.Rijndael atau dikenal juga Advance Encryption Standard (AES) merupakan salah algoritma kriptografi yang digunakan.

Keyword : kriptografi, Advance Encryption Standard (AES) 1. PENDAHULUAN

Keamanan sistem informasi dari data yang kita buat sangat berperan penting, untuk menunjang keaslian data tersebut agar tidak mudah dirubah oleh orang yang tidak bertanggung jawab.Banyak sekali permasalahan dalam keamanan sistem informasi seperti data hilang, data yang disusupi, meskipun telah menggunakan pengamanan data berupa password, tetap saja ada yang sanggup menembusnya.

Dilandasi persolalan tersebut akan lebih baik jika semua pengguna sistem informasi menerapkan suatu sistem keamanan yang relatif lebih aman untuk melindungi datanya dari orang lain seperti pemanfaatan algoritma kriptografi (enkripsi dan deskripsi). Enkripsi adalah salah satu teknik yang paling baik untuk menjaga kerahasiaan suatu data dalam berkomunikasi.

Dengan enkripsi, suatu informasi akan menjadi sulit untuk diketahui oleh orang yang tidak berhak, karena penggunaan password saja kurang efektif didalam proses pengamanan data karena mudahnya untuk ditembus dengan waktu yang relatif singkat.

2. LANDASAN TEORI 2.1. Kriptografi

Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman.

(Cryptography is the art and science of keeping messages secure.) “Crypto” berarti “secret”

(rahasia) dan “graphy” berarti “writing” (tulisan).

Algoritma kriptografi terdiri dari enkripsi dan dekripsi. Enkripsi adalah sebuah proses yang melakukan perubahan suatu pesan dari yang bisa dimengerti (plain text) menjadi pesan yang tidak bisa dimengerti (cipher text) dengan menggunakan suatu kunci (key). Enkripsi dapat diartikan sebagai kode atau cipher. Enkripsi dibentuk berdasarkan suatu algoritma yang akan mengacak suatu informasi menjadi bentuk yang tidak bisa dibaca atau tak bisa dilihat. Dekripsi adalah proses dengan algoritma yang sama untuk mengembalikan informasi teracak menjadi bentuk aslinya.

Tujuan utama dari kriptografi yang merupakan aspek kemanan sistem informasi sebagai berikut :

a. Kerahasiaan, menjaga isi dari informasi dari orang yang tidak memiliki otoritas untuk mengaksenya.

b. Integritas Data, sistem harus mampu menjaga keaslian data terhadap manipulasi oleh pihak lain.

c. Autentifikasi, berhubungan dengan keaslian identitas, waktu pengiriman, isi data.

d. Non Repudiasi, menghindari adanya penyangkalan dai prngiriman.

(2)

2.2. Jenis-Jenis Kriptografi 2.2.1. Algoritma Simetris

Algoritma simetris disebut juga algoritma kunci rahasia (private key).Dalam algoritma simetris ini enkripsi dapat dilakukan jika si pengirim informasi dan penerimanya telah sepakat untuk menggunakan metode enkripsi atau kunci rahasia (secret key) enkripsi tertentu. Proses enkripsi dan dekripsi dalam algoritma simetris ini menggunakan satu kunci rahasia (secret key) yang telah disepakati sebelumnya.

Gambar 1 : Algoritma Simetris 2.2.2. Algoritma Kunci Publik (Publik Key)

Algoritma kunci publik (public key) ini disebut juga algoritma asimetris.Berbeda dengan algoritma simetris, algoritma kunci publik ini menggunakan dua kunci yang berbeda, yaitu kunci publik dan kunci rahasia atau kunci pribadi (private key).

Gambar 2: Algoritma Asimetris 2.3. Advanced Encryption Standard (AES)

2.3.1. Sejarah Singkat

Pada tahun 1997, National Institute of Standard and Technology (NIST) of United States mengeluarkan Advanced Encryption Standard (AES) untuk menggantikan Data Encryption Standard (DES).AES dibangun dengan maksud untuk mengamankan pemerintahan diberbagai bidang. Algoritma AES di design menggunakan blok chiper minimal dari blok 128 bit input dan mendukung ukuran 3 kunci (3-key-sizes), yaitu kunci 128 bit, 192 bit, dan 256 bit.

Pada agustus 1998, NIST mengumumkan bahwa ada 15 proposal AES yang telah diterima dan dievaluasi, setelah mengalami proses seleksi terhadap algoritma yang masuk, NIST menumumkan pada tahun 1999 bahwa hanya ada 5 algoritma yang diterima, algoritma tersebut adalah : MARS, RC6, Rijndael, Serpent dan Twofish.

Algoritma-algoritma tersebut manjalani berbagai macam pengetesan.Pada bulan oktober 2000, NIST mengumumkan bahwa Rijndael sebagai algoritma yang terpilih untuk standar AES yang baru.

2.3.2. Pengantar Matematis

Seluruh byte dalam algoritma AES diinterpretasikan sebagai elemen finite

Plain Text Encryption Encryption

Text

Encryption

Text Decryption Plain Text

Secret Key

Plain Text Encryption Cipher

Text Decryption Plain Text

Public Key Private Key

(3)

34

dan perkalian elemen finite field sangat berbeda dengan hasil dari penjumlahan dan perkalian bilangan biasa.

Penjumlahan

Penjumlahan dari dua elemen dalam suatu finite field dilakukan dengan menjumlahkan koefisien dari pangkat polinom yang bersesuaian dari dua elemen tersebut. Penjumlahan dilakukan dengan operasi XOR dan dinotasikan dengan Å. Dengan operasi ini, maka 1Å1 = 0, 1Å0 = 1, 0Å1 = 1, dan 0Å0 = 1. Pengurangan dari polinomial identik dengan penjumlahan polinomial.

Sebagai alternatif, penjumlahan elemen-elemen pada finite field dapat dijelaskan sebagai penjumlahan modulo 2 dari bit yang bersesuaian dalam byte. Untuk 2 byte {a7a6a5a4a3a2a1a0} dan {b7b6b5b4b3b2b1b0}, hasil penjumlahannya adalah {c7c6c5c4c3c2c1c0} dimana setiap ci = ai Å bi. Contoh dari operasi penjumlahan adalah sebagai berikut :

(x6+x4+x2+x+1) Å (x7+x+1) = x7+x6+x4+x2 (notasi polinomial) {01010111}Å{10000011} = {11010100} (notasi biner)

{57}Å{83} = {d4} (notasi hexadesimal) Perkalian

Dalam representasi polinomial, perkalian dalam GF(28) yang dinotasikan dengan

• mengacu pada perkalian modulo polinomial sebuah irreducible polynomial yang berderajat 8. Sebuah polinom bersifat irreducible jika satu-satunya pembagi adalah dirinya sendiri dan 1. Untuk algoritma AES, irreducible polynomial ini adalah :

m(x) = x8 + x4 + x3 + x + 1

atau dalam notasi hexadesimal adalah {01}{1b}. Sebagai contoh, {57}•{83} = {c1}, karena

(x6 + x4 + x2 + x + 1) • (x7 + x + 1)

= x13 + x11 + x9 + x8 + x7 + x7 + x5 + x3 + x2 + x + x6 + x4 + x2 + x + 1

= x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 dan x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1

modulo (x8 + x4 + x3 + x + 1)

= x6 + x5 + 1

Pengurangan modular oleh m(x) memastikan bahwa hasilnya akan berupa polinomial biner dengan derajat kurang dari 8, sehingga dapat dipresentasikan dengan 1 byte saja.

2.3.3. Algoritma AES

. Gambar 3: Algoritma Enkripsi AES

(4)

Proses Enkripsi

Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext).

C = E (M) Keterangan :

M = Pesan asli (Plaintext)

E = Proses enkripsi dengan Key Private

C = Chipertext (Plaintext yang terenkripsi AES) Secara umum enkripsi dengan algoritma AES sebagai berikut :

1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key.

Tahap ini disebut juga initial round.

2. Round : Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah:

a) SubBytes: substitusi byte dengan menggunakan table substitusi (S-box).

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

c) MixColumns: mengacak data di masingmasing 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

Diskripsi proses enkripsi sebagai berikut : 1. Add Round Key

Add Round Key pada dasarnya adalah mengkombinasikan chiper teks yang sudah ada dengan chiper key yang chiper key dengan hubungan XOR. Bagannya bisa dilihat pada Gambar 4

Gambar 4 :Add Round Key 2. Sub Bytes

Proses SubBytes () memetakan setiap byte dari array State dengan menggunakan tabel substitusi S-Box. Tidak seperti Des S-box berbeda pada setiap putaran, AES hanya mempunyai satu buah S-Box.Tabel yang digunakan adalah seperti pada tabel 1. Tabel 1 : Tabel S-BOX Untuk Enkripsi

(5)

36

Cara pensubstitusian adalah untuk setiap byte pada array state, misalkan S[r,c] = xy, yang dalam hal ini xy adalah digit heksadesimal dari nilai S’[r,c], maka nilai substitusinya, yang dinyatakan dengan S’[r,c], adalah elemen di dalam S-Box yang merupakan perpotongan baris x dengan kolom y. Gambar 5, memperlihatkan transformasi SubBytes.

Gambar 5 :Ilustrasi SubBytes

Untuk angka 19 cara mengambil nilai sub bytenya sebagai berikut ini : Tabel 2 : Tabel S-BOX Pengambilan Nilai Sub Byte

(6)

3. Shift Rows

Proses ShiftRows() ini adalah proses yang sangat sederhana. Pada ShiftRows() melakukan pergeseran wrapping (sikklik) pada 3 baris terakhir dari array state. Jumlah pergeseran bergantung nilai baris (r). Baris r = 1 digeser sejauh 1 byte, baris r = 2 digeser 2 byte, dan baris r = 3 digeser sejauh 3 byte. Baris r = 0 tidak digeser.

Contoh : Geser baris 0 sebesar 0 byte : Karena 0 byte maka tidak melakukan pergeseran dan state-pun tetap sama.

Geser Baris 1 Sebesar 0 Byte Geser Baris 3 Sebesar Dua Byte

Geser Baris 2 Sebesar Satu Byte Geser Baris 4 Sebesar Tiga Byte

Gambar 6: Ilustrasi dari Shift Row Hasil dari Shift Row Sebagai berikut :

4. Mix Columns

Transformasi menggunakan MixColumns() adalah proses ketiga dalam satu Ronde enkripsi AES. Di sini, kolom-kolom pada array state akan diperlukan sebagai suatu polynomial yang berada dalam GF(28) dan akan dikalikan dengan modulo x4 + 1 , dengan suatu polynomial tertentu seperti terlihat pada tabel berikut :

Tabel 3 : Bilangan Polynominal Untuk Mix Column

Hasil Subtitusi dikalikan dengan matrix MixColumn :

Hasil Perkalian dengan matrix MixColumn :

(7)

38

Pada proses AddRoundKey() maka 128 bit hasil state akan di-XOR-kan dengan Kunci Ronde, yaitu kunci hasil dari proses Expand Key. Pada awal enkripsi, 128 bit plaintext akan di-XOR-kan dengan 128 bit kunci yang asli. Kemudian 128 bit plaintext akan mengalami proses-proses : SubBytes(), ShiftRows() dan MixColumns(). Pada proses AddRoundKey(), 128 bit yang sudah melalui tiga tersebut akan di-XOR-kan dengan kunci ronde hasil Ekspand Key yang pertama. Hasil AddRoundKey() ini adalah state pada ronde 1. State 1 ini akan mengalami ketiga proses tersebut kembali. Pada AddRoundKey() yang berikut, maka 128 bit yang sudah mengalami perubahan pada ketiga proses tersebut kembali akan di-XOR-kan dengan kunci hasil Ekspand Key kedua dan seterusnya.

3. Simulasi Proses Perhitungan

Plain Text : AMIKJTCSEMARANG0 Chiper Key : 2014000000000000 Masukkan Ke Kolom 4 X 4

Konversi Ke Hexadesimal

Konversikan Ke Biner

Initial Round AddRoundKey

41 XOR 32 = 01000001 XOR 00110010 = 01110011 Plain Text

A M I K

J T C S

E M A R

A N G 0

Chiper Key

2 0 1 4

0 0 0 0

0 0 0 0

0 0 0 0

Plain Text

41 4D 39 4B 4A 54 43 53 45 4D 41 52 41 4E 47 30

Chiper Key

32 30 31 34 30 30 30 30 30 30 30 30 30 30 30 30

Plain Text

01000001 01001101 00111001 01001011 01001010 01010100 01000011 01010011 01000101 01001101 01000001 01010010 01000001 01001110 01000111 00110000

Chiper Key

00110010 00110000 00110001 00110100 00110000 00110000 00110000 00110000 00110000 00110000 00110000 00110000 00110000 00110000 00110000 00110000

(8)

4A XOR 30 = 01001010 XOR 00110000 = 01111010 45 XOR 30 = 01000101 XOR 00110000 = 01110101 41 XOR 30 = 01000001 XOR 00110000 = 01110001 Dengan Cara yang sama

Konversi Ke Hexadesimal

Proses Sub-Bytes

Proses Shift-Row

Mix Column

X =

2 x 8F = 10 xor 10001111

= X xor X7 + X3 + X2 + X + 1

= X8 + X4 + X3 + X2 + X Modulo X8 + X4 + X3 + X + 1 01110011 01111101 00001000 01111111

01111010 01100100 01110011 01100011 01110101 01111101 01110001 01100010 01110001 01111110 01110111 00000000

73 7D 08 7F 7A 64 73 63 75 7D 71 62 71 7E 77 00

73 7D 08 7F 7A 64 73 63 75 7D 71 62 71 7E 77 00

8F FF 30 D2 DA 43 8F FB 9D FF A3 AA A3 F3 F5 63

8F FF 30 D2 DA 43 8F FB 9D FF A3 AA A3 F3 F5 63

8F FF 30 D2 DA 43 8F FB 9D FF A3 AA A3 F3 F5 63 8F FF 30 D2

DA 43 8F FB 9D FF A3 AA A3 F3 F5 63

8F FF 30 D2 43 8F FB DA 9D FF A3 AA A3 F3 F5 63 8F FF 30 D2

43 8F FB DA 9D FF A3 AA A3 F3 F5 63

8F FF 30 D2 43 8F FB DA A3 AA 9D FF A3 F3 F5 63 8F FF 30 D2

43 8F FB DA A3 AA 9D FF A3 F3 F5 63

8F FF 30 D2 43 8F FB DA A3 AA 9D FF 63 A3 F3 F5

02 03 01 01

01 02 03 01

01 01 02 03

03 01 01 02

8F 43 A3 63

(9)

40 3 x 43 = 11 xor 01000011

= ( X + 1 ) xor (X6 + X + 1)

= (X7 + X2 + X) + (X6 + X + 1)

= X7 + X6 + X2 + 1 = 11000101 1 x A3 = 1 xor 10100011 = 10100011 1 x 63 = 1 xor 01100011 = 01100011 Hasil Akhir

00000101 11000101 10100011 01100011

00000000 = 00(hex) untuk baris 1 kolom 1

Dan seterusnya untuk masing-masing baris dan kolom sampai semua dihitung. Untuk hasil dari mixcolumns Round 1 sebagai berikut :

Pada proses AddRoundKey() maka 128 bit hasil state akan di-XOR-kan dengan Kunci Ronde, yaitu kunci hasil dari proses Expand Key. Pada awal enkripsi, 128 bit plaintext akan di-XOR-kan dengan 128 bit kunci yang asli. Kemudian 128 bit plaintext akan mengalami proses-proses : SubBytes(), ShiftRows() dan MixColumns(). Pada proses AddRoundKey(), 128 bit yang sudah melalui tiga tersebut akan di-XOR-kan dengan kunci ronde hasil Ekspand Key yang pertama. Hasil AddRoundKey() ini adalah state pada ronde 1. State 1 ini akan mengalami ketiga proses tersebut kembali. Pada AddRoundKey() yang berikut, maka 128 bit yang sudah mengalami perubahan pada ketiga proses tersebut kembali akan di-XOR-kan dengan kunci hasil Ekspand Key kedua dan seterusnya.

4. KESIMPULAN

Algoritma Rijndael yang ditetapkan oleh NIST sebagai AES memiliki karakteristik yang istimewa yang menjadikannya mendapat status tersebut. Tujuan utama dari kriptografi adalah melindungi sebuah informasi, begitu pula dengan AES yang dengan serangkaian tahap atau ronde yang dilakukan dengan menggunakan kunci simetris yang bertujuan untuk melindungi informasi dari orang yang tidak berhak.

Dalam algortima Rijndael memiliki karakteristik istimewa karena setiap rounde mengalami proses addroundkey, subbytes, shiftrows dan mixcolumns, untuk proses round berikutnya haris mixcolumn akan di xor dengan hasil expandkey yang pertama demikian seterusnya sampai round 9, dan round ke 10 mixcolumns merupakan hasil akhir dari enkripsi.

DAFTAR PUSTAKA

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Munir, Rinaldi. (2004). Bahan Kuliah IF5054 Kriptografi. Departemen Teknik Informatika Institut Teknologi Bandung

Munir, Rinaldi. (2006). Kriptografi. Bandung: Penerbit Informatika.

Surian, Didi, Algoritma Kriptografi AES Rijndael, Jurnal Teknik Elektro, Vol. 8 N0 2, 97-101 NN(2004), Implementasi Algoritma AES-128 pada Mikrokontroler 8051, Laporan Tugas Akhir

Dept. Teknik Elektro ITB

Rosyadi A, Isnanto R.R., I.S. Kodrat (2004), Implementasi Algoritma Kriptografi AES Untuk Enkripsi Dan Dekripsi Email, Tugas Akhir, Jurusan Teknik Elektro Universitas Diponegoro Semarang

Raharjo Budi (2002), Keamanan Sistem Informasi Berbasis Internet, Ebook, PT Insan Infonesia – Bandung

Fachrurozi M. F. (2006), Enkripsi Pesan Rahasia Menggunakan Algoritma AES Rijndael, Skripsi Universitas Negeri Syarif Hidayatulah Jakarta

Tawang, Naufal, Tugas UAS Enkripsi Dengan AES Rijndael

00 36 05 C0 B4 BC 7E 92 34 60 65 E9 AC 65 AF B9

Referensi

Dokumen terkait

Perangkat lunak kriptografi dengan Algoritma IDEA dengan menggunakan plaintext 64 bit dan kunci simetris 128 bit melalui proses enkripsi akan menghasilkan

key lalu mengklik tombol nyalakan untuk mengaktifkan kamera pada perangkat yang nantinya kamera tersebut digunakan untuk proses scan QR Code dan sistem akan langsung

Cipher stream adalah algoritma kunci simetris dimana enkripsi dilakukan pada aliran (stream) bit dari data yang akan dienkrip maupun didekrip.. Dengan kata lain algoritma ini

Jackson menjelaskan bahwa kegiatan kunci yang merupakan bagian dari rekrutmen adalah (Nuryanta, 2008) menentukan kebutuhan jangka pendek dan jangka panjang

Berdasarkan latar belakang tersebut adalah untuk membuat suatu program aplikasi kriptografi dengan algoritma Advanced Encryption Standard (AES-128 bit) dan algoritma

Kunci yang digunakan panjangnya 128 bit karena bila dilakukan serangan brute force pada IDEA menggunakan sebuah sistem yang dapat melakukan pengujian 10 9 kunci per detiknya,

Di dalam gambar terdapat key atau kunci yang di rahasiakan dan hanya si penerima yang bisa mendeskripsikan data yang di kirim berupa enkripsi dengan membuka

1) Berdasarkan hasil pengujian terhadap sistem kriptografi menggunakan AES- 128 bit dapat berjalan dengan baik mulai dari plainteks dienkripsi dan menghasilkan teks yang