BAB II TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB IV PENGUJIAN DAN ANALISIS

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS SISTEM

TINJAUAN PUSTAKA. Kriptografi

BAB 2 LANDASAN TEORI

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

Bab 2 Tinjauan Pustaka

Algoritma Cipher Block EZPZ

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5

Prosiding Matematika ISSN:

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

BAB III ANALISIS DAN PERANCANGAN

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

Blox: Algoritma Block Cipher

BAB II TINJAUAN PUSTAKA

Penggunaan Timing Attack Sebagai Salah Satu Jenis Serangan pada Kriptografi

BAB III ANALISIS DAN PERANCANGAN

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

PRESENTASI TUGAS AKHIR KI091391

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

KRIPTOGRAFI FILE MENGGUNAKAN METODE AES DUAL PASSWORD. Imron Abdul Ilyas 1 Suryarini Widodo 2. Abstrak

PERANCANGAN APLIKASI PENGAMANAN DATA TEKS DENGAN METODE ADVANCED ENCRYPTION STANDARD (AES) DAN METODE END OF FILE (EOF)

BAB III ANALISIS DAN PERANCANGAN

Algoritma Enkripsi Baku Tingkat Lanjut

BAB IV ANALISIS DAN PERANCANGAN

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

BAB 3 METODOLOGI PENELITIAN

KRIPTOGRAFI CITRA DIGITAL DENGAN ALGORITMA RIJNDAEL DAN TRANSFORMASI WAVELET DISKRIT HAAR

STUDI DAN IMPLEMENTASI ALGORITMA RIJNDAEL UNTUK ENKRIPSI SMS PADA TELEPON GENGGAM YANG BERBASIS WINDOWS MOBILE 5.0

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

Modifikasi Blok Cipher

Algoritma AES sebagai Metode Enkripsi dalam Password Management

Algoritma Spiral shifting

Algoritma Kriptografi Modern (AES, RSA, MD5)

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

BAB 2 LANDASAN TEORI

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

BAB 2 LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN SISTEM

MENGAMANKAN BASIS DATA KEUANGAN KOPERASI DENGAN MENGGUNAKAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

POLYNOMIAL FUNCTIONS DAN IMPLEMENTASINYA DALAM ALGORITMA ADVANCED ENCRYPTION STANDARD PADA DATABASE ACCOUNTING

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

BAB I PENDAHULUAN. Universitas Sumatera Utara

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

BAB IV HASIL DAN UJI COBA

BAB III ANALISA DAN DESAIN SISTEM

Proses Enkripsi dan Dekripsi menggunakan Algoritma Advanced Encryption Standard (AES)

Algoritma AES (Advanced Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

BAB III ANALISIS DAN DESAIN SISTEM

IMPLEMENTASI ALGORITMA RIJNDAEL UNTUK ENKRIPSI DAN DEKRIPSI PADA CITRA DIGITAL

APLIKASI ALGORITMA RIJNDAEL DALAM PENGAMANAN CITRA DIGITAL SKRIPSI FADHILAH HANIFAH

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

BAB IV HASIL DAN PEMBAHASAN

Pada blok state diatas dibagi menjadi 2 bagian state, dimana state ini disebut dengan state asli. Satu state

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

BAB III ANALISA MASALAH DAN PERANCANGAN

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

PENERAPAN ALGORITMA RSA DAN DES PADA PENGAMANAN FILE TEKS

Advanced Encryption Standard (AES)

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

DATA ENCRYPTION STANDARD (DES) STANDAR ENKRIPSI DATA. Algoritma Kriptografi Modern

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

dan c C sehingga c=e K dan d K D sedemikian sehingga d K

Pengkajian Metode dan Implementasi AES

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA


Adi Shamir, one of the authors of RSA: Rivest, Shamir and Adleman

SISTEM KEAMANAN ATM DENGAN MENGGUNAKAN ENKRIPSI AES PADA KARTU ATM.

Data Encryption Standard (DES)

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

Dampak S-Box AES Terhadap Perancangan Kriptografi Simetris Berbasis Pola Teknik Putaran Kincir Angin Artikel Ilmiah

Suatu Algoritma Kriptografi Simetris Berdasarkan Jaringan Substitusi-Permutasi Dan Fungsi Affine Atas Ring Komutatif Z n

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

Distribusi Difference dari S-Box Berbasis Fungsi Balikan Pada GF(2 8 )

Perancangan Kriptografi Block Cipher 256 Bit Berbasis Pola Tarian Liong (Naga) Artikel Ilmiah

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

BAB 2 TINJAUAN PUSTAKA

Algoritma Cipher Block RG-1

PEMBERIAN TANDA AIR PADA CITRA DIGITAL DENGAN SKEMA TANDA AIR BERDASARKAN KUANTITASI WARNA DAN MENGGUNAKAN STANDARD ENKRIPSI TINGKAT LANJUT

RANCANG BANGUN PROGRAM KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN 1.1. Latar belakang

BAB 2 LANDASAN TEORI

Bab 2 Tinjauan Pustaka

IMPLEMENTASI KRIPTOGRAFI ALGORITMA RIJNDAEL DAN STEGANOGRAFI METODE END OF FILE UNTUK KEAMANAN DATA

Keamanan Sistem Komputer DES, AES, RSA

Studi dan Implementasi HMAC dengan Fungsi Hash Grøstl dan Perbandingannya dengan CMAC dengan Algoritma Cipher Blok AES

Transkripsi:

BAB II TINJAUAN PUSTAKA 2.1. Kriptografi Metode penulisan rahasia diketahui telah ada sejak 2500 tahun yang lalu. David Kahn, penulis buku The Code Breakers mengatakan bahwa kriptografi muncul secara spontan sebagaimana munculnya bahasa dan tulisan. Lalu, karena banyak manusia yang membutuhkan dan tuntutan akan menjaga kerahasiaan komunikasi antara dua atau banyak orang di tengah-tengah kehidupan sosial masyarakat yang mendorong lahirnya ilmu tulisan rahasia atau dikenal dengan kriptografi. (Dooley, 2013). Penggunaan kriptografi telah dikenal sejak masa kuno, yakni bangsa Yunani dan bangsa Roma yang menggunakannya dalam bentuk yang berbeda. Namun, ketika negara Roma mengalami masa keterpurukan, pembelajaran mengenai kriptografi juga menghilang dan akan muncul kembali pada saat zaman Renaissance di Barat. Berbanding terbalik dengan Roma, kriptografi berkembang di Arab. Hal ini terbukti dengan ditemukannya suatu penemuan penting oleh Abu Yusuf Ya qub ibn Isaq as- Sabbah al-kindi yaitu frequency analysis yang bermanfaat sebagai metode memecahkan suatu pesan rahasia. (Dooley, 2013). Pada masa lalu, kriptografi sering digunakan dalam pengiriman informasi penting antar dua pihak dengan tujuan untuk memenangkan perang, seperti hal yang dilakukan oleh Julius Caesar. Dia mengirimkan informasi kepada temannya Cicero bahwa dia akan segera datang dengan membawa sekelompok pasukan. Julius Caesar menggunakan metode substitusi dalam merubah setiap karakter pada pesan yang akan dikirim. Berikut ini adalah tabel karakter yang digunakan oleh Julius Caesar. (Dooley, 2013). Tabel direpresentasikan pada tabel 2.1. Tabel 2.1 cipher Julius Caesar (Dooley, 2013). Plain a b c d e f g h i j k l m n o p q r s t u v w x y z Cipher d e f g h i j k l m n o p q r s t u v w x y z a b c

7 2.1.1 Definisi Kriptografi Kata Kriptografi berasal dari bahasa Yunani, kryptós dan gráphein yang berarti tersembunyi dan tulisan. Sehingga kata kriptografi dapat diartikan berupa frase tulisan tersembunyi untuk mengamankan atau menyembunyikan komunikasi diantara dua pihak. (Pas dan Shelat,2010). Kriptografi dapat diartikan sebagai suatu ilmu ataupun seni yang mempelajari bagaimana sebuah data dikonversi ke bentuk tertentu yang sulit untuk dimengerti. (Schneir, 1996). Istilah-istilah yang digunakan dalam bidang kriptografi : 1. Plaintext adalah pesan yang akan dikirim (data asli) 2. Ciphertext adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi. 3. Enkripsi adalah proses pengubahan plaintext menjadi ciphertext. 4. Dekripsi adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext kembali. (Fairuzabadi, 2010) Berikut ini adalah gambar 2.1 yang merepresentasikan sistem kriptografi. ENKRIPSI DEKRIPSI plaintext ciphertext plaintext (key) (key) Gambar 2.1. Alur Proses Kriptografi 2.1.2. Jenis Kriptografi Pada proses enkripsi dan dekripsi dalam sistem kriptografi, memerlukan suatu kunci yang berfungsi untuk mengubah data asli menjadi sandi dan menerjemahkan sandi menjadi data asli kembali. Terdapat dua jenis kriptografi berdasarkan kunci yang digunakan dalam sistem kriptografi yaitu kriptografi simetris dan kriptografi asimetris (public key).

8 2.1.2.1. Kriptografi Simetris Pada kriptografi simetris, kunci yang digunakan pada proses enkripsi dan dekripsi bernilai sama. Proses yang dilakukan dalam kriptografi simetris terbagi atas dua jenis yaitu substitusi dan transposisi. Pada proses substitusi, setiap karakter di ganti dengan karakter lain, sementara pada transposisi, setiap karakter bertukar posisi dengan karakter lain. Hal yang harus diperhatikan pada penggunaan kriptografi simetris adalah keamanan kunci. Jika, kunci diketahui oleh pihak lain, maka ciphertext yang dirahasiakan dapat dipecahkan. Berikut ini adalah gambar dari proses penggunaan kunci simetris, ditampilkan pada gambar 2.2 di bawah ini. Gambar 2.2. Alur Kriptografi Simetris 2.1.2.2. Kriptografi Asimetris Pada kriptografi asimetris, kunci yang digunakan pada proses enkripsi berbeda dengan kunci yang digunakan untuk proses dekripsi. Kunci enkripsi disebut kunci publik dan kunci untuk dekripsi disebut dengan kunci private. Oleh karena itu, algoritma ini disebut juga dengan kriptografi kunci publik (public key). Berikut ini adalah gambar dari proses penggunaan kunci asimetris, yang ditampilkan pada gambar 2.3 di bawah ini. Gambar 2.3. Alur Kriptografi Asimetris (Sadikin, 2012)

9 Pada gambar 2.3, Alice berperan sebagai pengenkripsi dan Bob sebagai pendekripsi. Berikut adalah langkah-langkah yang mereka lakukan dalam menggunakan kriptografi asimetris (Sadikin, 2012) : 1. Anne membangkitkan kunci private dan kunci publik dengan menggunakan fungsi pembangkit kunci. (Kpublik, Kprivate) Pembangkit kunci Kemudian Anne mempublikasikan kunci publik, namun tetap menjaga kerahasian kunci private. 2. Alice mengenkripsi sebuah plaintext dengan menggunakan kunci publik Bob yang menghasilkan sebuah ciphertext. Ciphertext Enkripsi (Kpublik, plaintext) Kemudian Alice mengirim ciphertext kepada Anne melalui saluran tidak aman. 3. Anne mendekripsi ciphertext dengan kunci private Anne untuk mendapatkan plaintext. Plaintext Dekripsi (Kprivate, ciphertext) Anne mendapatkan plaintext jika ciphertext yang diperolehnya dienkripsi dengan kunci publik Anne. 2.2. Advanced Encryption Standard (AES) Pada 12 September 1997, lembaga standar Amerika Serikat NIST (National Institute of Standards and Technology) membuat sebuah sayembara untuk membuat sistem penyandian AES (Advanced Encryption Standard) untuk menggantikan sistem penyandian sebelumnya yaitu DES (Data Encryption System). NIST memberikan spesifikasi yaitu AES harus memiliki panjang blok sebesar 128 bit dan mampu mendukung kunci yang memiliki panjang blok sebesar 128 bit, 192 bit dan 256 bit. Setelah melakukan seleksi, pada tahun 2000, NIST memilih sistem penyandian

10 Rijndael yang dikembangkan oleh Joan Daemen dan Vincent Rijments sebagai AES, dan mulai digunakan pada 26 Mei 2002. AES (Advanced Encryption Standard) merupakan sistem penyandian modern yang beroperasi pada blok - blok data dan memiliki kunci simetris. Yaitu dalam enkripsi dan dekripsi menggunakan kunci yang sama. Enkripsi adalah proses pengubahan data asli menjadi sandi. Sedangkan dekripsi adalah proses pengembalian bentuk sandi menjadi data asli. Data yang akan dienkripsi akan dikelompokkan ke dalam blok-blok yang masing-masing berukuran 128 bit. Sedangkan kunci yang dapat digunakan sebesar 128 bit, 192 bit dan 256 bit. Data yang digunakan pada AES dikelompokkan kedalam 5 unit, yaitu bit, byte, word, blok dan state. Bit merupakan satuan data terkecil, yaitu nilai digit sistem biner. Sedangkan byte merupakan 8 bit, word berukuran 4 byte, blok berukuran 4 word (16 byte) dan state adalah blok data yang ditata sebagai matriks byte berukuran 4x4. Sebelum data masuk ke dalam tahapan enkripsi, blok-blok data di transformasi kedalam bentuk state. Bentuk pengelompokkan data tersebut dapat terlihat pada gambar 2.4 dibawah ini. (Sadikin, 2012) B 1 byte = {b0, b1, b2, b3, b4, b5, b6, b7} state B0 B4 B8 B12 word B0 B1 B2 B3 B1 B5 B9 B13 B2 B6 B10 B14 B3 B7 B11 B15 Gambar 2.4. Unit data AES Proses yang terjadi pada enkripsi dan dekripsi terjadi selama beberapa ronde. Setiap ronde pada enkripsi dan dekripsi data dilakukan beberapa bentuk transformasi pada elemen-elemen state. Jumlah ronde tergantung dengan panjang kunci yang digunakan. Jumlah ronde direpresentasikan pada tabel 2.2.

11 Tabel 2.2. Jumlah putaran AES Besar Kunci (Nk) dalam words Besar Blok(Nb) dalam words Jumlah Putaran (Nr) AES-128 4 4 10 AES-192 6 4 12 AES-256 8 4 14 2.2.1 Matematika Dasar dalam AES 2.2.1.1 Finite Field Finite field atau Galois field adalah satu set elemen angka yang terhingga. Secara garis besar sebuah Galois field adalah suatu set elemen terhingga yang bisa dijumlahkan, dikurangi, dikali dan memiliki invers. Sebelum kita membahas tentang field lebih lanjut, pertama kita akan membahas mengenai group. Group (G) adalah suatu set yang terdiri atas elemen G dengan sebuah operasi yang menggabungkan dua elemen dari G. Suatu group memiliki kondisii seperti di bawah ini : 1. Operasi group disebut closed. Jika, untuk semua a, b, c G dan a b=c 2. Operasi group disebut associative. Jika, untuk semua a, b, c G dan a (b c)=(a b) c 3. Terdapat elemen I G disebut elemen identity, untuk semua a G dan a I=I a 4. Untuk setiap a G terdapat elemen a -1 disebut inverse, dan a a 1 =a 1 a=i 5. Sebuah group disebut abelian (commutative), dengan a b=b a Secara garis besar, suatu group adalah suatu set dengan satu operasi dan memiliki inverse dari operasi tersebut. Jika operasinya disebut penjumlahan, maka inverse nya adalah pengurangan. Begitu pula dengan operasi perkalian yang memiliki inverse yaitu pembagian.

12 Misalnya, suatu set integer Z m ={0,1,..., m 1} dan operasi penjumlahan modulo m membentuk suatu group dengan elemen identitas 0. Setiap elemen a memiliki sebuah inverse a -1 dengan a +(a -1 ) = 0 mod m. Sedangkan pada group dengan operasi perkalian, elemen identitasnya adalah 1 dan setiap elemen a memiliki sebuah inverse a -1 dengan aa -1 =1 mod m. Untuk membuat empat operasi dasar aritmatika (penjumlahan, pengurangan, perkalian, pembagian) dalam suatu struktur, kita membutuhkan suatu set yang terdiri dari group penjumlahan dan group perkalian. Inilah yang disebut dengan field. Field(F) adalah suatu set yang terdiri dari dari elemen-elemen yang memiliki kondisi berikut : 1. Semua elemen dari F terdiri dari suatu group penjumlahan dengan operator + dan elemen identitas I adalah elemen 0. 2. Semua elemen dari F terdiri dari suatu group perkalian dengan oerartor x dan elemen identitas I adalah elemen 1. 3. Ketika kedua group digabungkan, terdapat hukum distributive, dengan ketentuan untuk semua a, b, c F dan a(b+c)=(ab)+(ac). Jumlah elemen dalam field disebut order atau cardinality. Suatu field dengan order m hanya ada jika m bernilai prima dengan m=p n, untuk semua n adalah bilangan integer positif, dan p adalah bilangan prima positif. P disebut sebagai karakteristik dari finite field, sehingga dinotasikan dengan GF(p). (Paar dan Pelzl, 2010) 2.2.1.2. Prime Field Elemen dari GF(p) direpresentasikan menggunakan bilangan integer 0, 1,..., p 1. Operasi penambahan dan perkalian pada field dimodulokan dengan p. Untuk melakukan proses aritmatika pada prime field, harus mengikuti aturan sebagai berikut : 1. Inverse penjumlahan dari suatu elemen a didefinisikan a+(a 1 ) = 0 2. Inverse perkalian dari setiap elemen nonzero a didefinisikan a a 1 = 1 mod p

13 Algoritma AES menggunakan finite field yang terkecil yaitu prime field GF(2). Elemen dari GF(2) adalah {0 dan 1}. Berikut adalah tabel penjumlahan dan perkalian GF(2). Tabel tersebut direpresentasikan pada tabel 2.3 dibawah ini. Tabel 2.3. Hasil penjumlahan dan perkalian GF(2) penjumlahan perkalian + 0 1 x 0 1 0 0 1 0 0 0 1 1 0 1 0 1 Seperti yang terlihat pada tabel diatas, hasil penjumlahan elemen GF(2) dengan dimodulo p sama dengan hasil gerbang XOR. Dan pada hasil perkalian GF(2) dengan dimodulo p sama dengan hasil gerbang AND. (Paar dan Pelzl, 2010) 2.2.1.3. Extension Field GF(2 m ) Dalam AES, finite field terdiri dari 256 elemen dan dinotasikan sebagai GF(2 8 ). Field ini dipilih karena setiap elemen bisa direpresentasikan sebagai 1 byte. Pada transformasi S-Box dan MixColumn, AES memperlakukan setiap byte dari data sebagai elemen dari GF(2 8 ) dan memanipulasi data dengan menampilkan aritmatika dalam finite field. Tetapi, jika order dari suatu finite field tidak prima dan 2 8 bukanlah bilangan prima, operasi penjumlahan dan perkalian tidak bisa dilakukan dengan menggunakan penjumlahan dan perkalian dengan modulo 2 8. Suatu field dengan m>1 disebut extension field. Untuk bisa menggunakan extension field, dibutuhkan suatu notasi yang berbeda untuk elemen finite field dan peraturan yang berbeda untuk menampilkan aritmatika pada elemen. Elemen extension field dapat direpresentasikan dalam bentuk polinomial dan proses komputasi dalam extension field bisa diperoleh dengan menggunakan proses aritmatika pada polinomial. Pada extension fields GF(2 8 ), elemen-elemennya tidak direpresentasikan sebagai integer tapi dalam bentuk polinomial dengan kofisien dalam GF(2). Polinomial

14 memiliki derajat maksimum yaitu m-1, jadi totalnya ada m elemen. Pada field GF(2 8 ), yang digunakan pada AES, setiap elemen A GF(2 8 ) direpresentasikan sebagai berikut : A (x)=a 7 x 7 +...+a 1 x+a 0, a i GF(2)={0, 1}...(1) 2.2.1.4 Penjumlahan dan Pengurangan pada GF(2 m ) Untuk A (x), B(x) GF(2. m ) penjumlahan dari dua elemen dihitung dengan rumus sebagai berikut : m 1 C( x)= A (x)+b(x)= c i x i, c i a i +b i mod 2 i=0 Dan selisihnya dihitung dengan rumus sebagai berikut :... (2) m 1 C( x)= A (x) B(x)= c i x i, c i a i b i a i +b i mod 2 i=0...... (3) Proses yang terjadi pada penjumlahan dan pengurangan elemen di modulokan 2 akan menghasilkan nilai yang sama dengan nilai gerbang XOR. (Paar dan Pelzl, 2010). 2.2.1.5. Perkalian pada GF(2 m ) Perkalian dalam GF(2 8 ) proses utama yang akan terjadi selama transformasi MixColumn dari AES. Langkah pertama yang dilakukan, dua elemen (direpresentasikan dengan polinomial) dari finite field dari GF(2 8 ) dikalikan dengan menggunakan aturan standar perkalian polinomial : A (x)b(x)=(a m 1 x m 1 +...+a 0 )(b m 1 x m 1 +...+b 0 )... (4) C (x)=c 2 m 2 x 2 m 2 +...+c 0...... (5) dimana : c 0 =a 0 b 0 mod 2 c 1 =a 0 b 1 +a 1 b 0 mod 2.

15.. c 2m 2 =a m 1 b m 1 mod 2 Semua koefisien a i, b i,c i adalah elemen dari GF(2) dan koefisien aritmatika di tampilkan dalam GF(2). Secara umum, produk dari polinomial C(x) akan memiliki derajat yang lebih tinggi dari m-1 dan harus di kurangi. Ide dasarnya adalah suatu pendekatan yang mirip dengan kasus perkalian pada prime field GF(p), pertama kalikan dua integer, bagi hasilnya dengan bilangan prima dan ambil sisa dari pembagian tersebut. Proses tersebut juga dilakukan pada extension field, yaitu hasil dari perkalian dari dua polinomial dibagi oleh suatu polinomial dan sisa dari pembagian polinomial tersebut diambil. Untuk itu dibutuhkan suatu irreducible polinomial yang dapat dijadikan sebagai pembagi untuk hasil dari perkalian dari dua polinomial. Irreducible polinomial mirip dengan bilangan prima yaitu hanya dapat dibagi dengan bilangan 1 dan bilangan nya sendiri. Irreducible polinomial yang digunakan pada AES adalah p(x)=x 8 +x 4 + x 3 +x+1. (Paar dan Pelzl, 2010). Contoh : A (x)=x 8 + x 4 +x 3 B (x)=x 2 +x C( x)=x 2 (x 8 +x 4 +x 3 )+x(x 8 +x 4 +x 3 )=(x 10 +x 6 +x 5 )+(x 9 +x 5 +x 4 )=x 10 +x 9 +x 6 +x 4 Karena terdapat derajat pada koefisien x yang lebih besar dari 8, maka hasil dari dc( x) di modulokan dengan irreducible polinomial p(x)=x 8 +x 4 +. x 3 +x+1 Karena ap(x)=0 maka x 8 =x 4 +x 3 +x+1 x 9 =x(x 8 ) x 10 =x 2 (x 8 ) x 9 =x(x 4 +x 3 + x+1) x 10 =x 2 (x 4 + x 3 +x+1) x 9 =x 5 + x 4 +x 2 +x x 10 =x 6 +x 5 +x 3 +x 2

16 Sehingga, hasil dari perkalian polinomial A(x) dengan B(x) adalah C( x)=x 10 +x 9 + x 6 +x 4 C( x)=(x 6 + x 5 +x 3 +x 2 )+(x 5 +x 4 +x 2 +x)+x 6 +x 4 C( x)=x 3 +x 2.2.1.6. Invers pada GF(2 m ) Proses invers pada GF(2 8 ) adalah proses utama yang akan digunakan pada transformasi SubByte, yang menggunakan S-Box. Untuk suatu finite field GF(2 m ) dan irreducible polinomial p(x), dan invers A -1 dari elemen non-zero A GF(2 8 ) dengan adalah sebagai berikut : A 1 (x). A (x)=1 mod p(x)... (6) Pada tabel dibwah ini menunjukkan nilai yang akan digunakan pada tabel S- Box AES. Nilai-nilai pada tabel tersebut berisi dari inverse dari GF(2 8 ) modulo p(x)=x. 8 +x 4 + x 3 +x+1 p(x)=x 8 +x 4 + x 3 +x+1.kasus yang spesial tedapat pada masukan untuk elemen 0, yang tidak memiliki inverse. Namun, untuk tabel S-Box AES, tabel substitusi dibutuhkan untuk mendefinisikan setiap kemungkinan nilai masukan. Sehingga, masukan 0 dipetakan pada keluaran 0. Berikut ini adalah tabel inverse perkalian dari GF(2 8 ) untuk setiap byte yang akan digunakan dalam pembentukan tabel S-Box AES. (Paar dan Pelzl, 2010). Tabel diperlihatkan pada tabel 2.4 dibawah ini Tabel 2.4. Tabel inverse perkalian dari GF(2 8 ) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 00 01 8D F6 CB 52 7B D1 E8 4F 29 C0 B0 E1 E5 C7 1 74 B4 AA 4B 99 2B 60 5F 58 3F FD CC FF 40 EE B2 2 3A 6E 5A F1 55 4D A8 C9 C1 0A 98 15 30 44 A2 C2 3 2C 45 92 6C F3 39 66 42 F2 35 20 6F 77 BB 59 19 4 1D FE 37 67 2D 31 F5 69 A7 64 AB 13 54 25 E9 09 5 ED 5C 05 CA 4C 24 87 BF 18 3E 22 F0 51 EC 61 17

17 Tabel 2.4. Tabel inverse perkalian dari GF(2 8 ) (con t) 6 16 5E AF D3 49 A6 36 43 F4 47 91 DF 33 93 21 3B 7 79 B7 97 85 10 B5 BA 3C B6 70 D0 06 A1 FA 81 82 8 83 7E 7F 80 96 73 BE 56 9B 9E 95 D9 F7 02 B9 A4 9 DE 6A 32 6D D8 8A 84 72 2A 14 9F 88 F9 DC 89 9A A FB 7C 2E C3 8F B8 65 48 26 C8 12 4A CE E7 D2 62 B 0C E0 1F EF 11 75 78 71 A5 8E 76 3D BD BC 86 57 C 0B 28 2F A3 DA D4 E4 0F A9 27 53 04 1B FC AC E6 D 7A 07 AE 63 C5 DB E2 EA 94 8B C4 D5 9D F8 90 6B E B1 0D D6 EB C6 0E CF AD 08 4E D7 E3 5D 50 1E B3 F 5B 23 38 34 68 46 03 8C DD 9C 7D A0 CD 1A 41 1C Sebagai contoh, berdasarkan tabel diatas, inverse dari x 7 +x 6 +x=(11000010) 2 =(C 2) hex Bila disesuaikan dengan baris ke C dan kolom ke 2 maka hasilnya adalah (2 F ) hex =(00101111) 2 =x 5 +x 3 +x 2 +x+1 Hasil tersebut dapat dibuktikan dengan rumus diatas : A 1 (x). A (x)=1 mod p (x) (x 5 +x 3 +x 2 +x+1).(x 7 + x 6 +x)=1 mod p(x) 2.2.2. Enkipsi AES Langkah-langkah pada proses enkripsi dengan menggunakan algoritma AES adalah sebagai berikut (Sadikin, 2012) : Input : P, K {Data asli 16 bytes, kunci AES (128,192, 256 bit} Output : CT {Data hasil enkripsi 16 bytes} 1. Ekspansi Kunci (K) {Nr : jumlah ronde, w : larik bytes kunci ronde}

18 2. AddRoundKey (P, w[0..3]) 3. for i = 1 (Nr-1) do SubBytes (P), ShiftRows (P), MixColumns(P), AddRoundKey(P, w[(i*4).. (i*4) + 3 ] ) 4. SubBytes (P), ShiftRows (P), AddRoundKey(P, w[(nr*4).. (Nr*4) + 3 ] ) 5. CT = P Dibawah ini adalah gambar 2.5 yang menjelaskan langkah-langkah pada proses enkripsi Advanced Encryption Standard (AES). Gambar 2..5. Langkah-langkah enkripsi AES 2.2.2.1. Ekspansi Kunci AES Proses pada ekspansi kunci AES mengalami proses rotword(), subword() dan Rcon[i] untuk setiap word pada state key. rotword() merupakan proses pergeseran nilai byte pada word (b0, b1, b2, b3) secara cyclic permutasi menjadi (b1, b2, b3, b0). subword() merupakan proses pertukaran nilai byte pada word dengan nilai pada tabel S-Box. Rcon[i] merupakan proses XOR nilai byte pada word dengan nilai Rcon[i].

19 Misalnya terdapat state key yang berukuran 128 bit sebagai berikut : 2B 28 AB 09 7E AE F7 CF 15 D2 15 4F 16 A6 88 3C Key tersebut akan digunakan dalam proses AddRoundKey pada ronde ke -0. Lalu, untuk membentuk key pada ronde ke-1 sampai ronde ke-nr maka dilakukan proses sebagai berikut : 1. Setiap kolom dibentuk menjadi sebuah word, maka dari state diatas terbentuklah w0 = 2B7E1516, w1 = 28AED2A6, w2 = ABF71588, w3 = 09CF4F3C. 2. Pada w3 dilakukan proses RotWord, SubWord, Rcon[i] 3. Hasil dari ketiga proses tersebut dijadikan acuan untuk melakukan operasi XOR pada w0, w1, w2,w3. Tabel 2.5. Perhitungan key ronde 1 i temp After After Rcon [i/nk] After XOR Wi-Nk Wi = temp RotWord SubWord with Rcon XOR Wi-Nk 4 09CF4F3C CF4F3C09 8A84EB01 01000000 8B84EB01 2B7E1516 A0FAFE17 5 A0FAFE17 28AED2A6 88542CB1 6 88542CB1 ABF71588 23A33939 7 23A33939 09CF4F3C 2A6C7605 Maka, key untuk ronde ke 1 adalah sebagai berikut : A0 88 23 2A FA 54 A3 6C FE 2C 39 76 17 B1 39 05

20 2.2.2.2. SubBytes Pada transformasi SubBytes, setiap byte masukan pada sebuah state di tukar dengan suatu byte pada tabel S-Box. Hanya tabel S-Box yang bersifat nonlinear pada AES, yaitu untuk setiap ByteSub(A)+ByteSub(B) ByteSub(A + B) untuk dua state A dan B. Substitusi S-Box adalah suatu pemetaan yang bersifat bijective, yaitu untuk setiap elemen yang terdapat pada 2 8 dipetakan secara satu per satu untuk setiap elemen output. (Paar dan Pelzl, 2010). Tabel 2.6 dibawah ini menampilkan tabel S-Box. Tabel 2.6. Tabel S-Box 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76 1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0 2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15 3 04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75 4 09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84 5 53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF 6 D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8 7 51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2 8 CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 199 73 9 60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB A E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79 B E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08 C BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A D 70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E E E1 F8 98 11 69 D9 8E D9 9B 1E 87 E9 CE 55 28 DF F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16

21 Misalnya, terdapat sebuah state dengan nilai masukan sebagai berikut: A(i,j) B(i,j) 0A 4C F1 18 67 29 A1 AD B3 01 28 73 6D 7C 34 8F FF E2 55 D8 16 98 FC 61 AB 52 00 07 62 00 63 C5 Nilai byte awal pada A(i,j) berubah menjadi nilai yang terdapat B(i,j) setelah mengalami SubBytes. Byte pada A(i,j) merepresentasikan indeks baris dan kolom pada tabel S-Box. Pada nilai byte yang sebelah kiri merepresentasikan baris dan pada sebelah kanan merepresentasikan kolom. Sehingga pada contoh A(1,1) yang bernilai 0A disubstitusi dengan nilai 67. Karena pada baris ke-0 dan kolom ke-a pada S-Box bernilai 67. Tidak seperti S-Box pada DES, yang terdiri dari nilai acak yang pokok pada tabelnya, S-Box pada AES memiliki struktur aljabar. Suatu tabel S-Box AES dapat terlihat dengan 2 langkah transformasi matematika. Pertama adalah invers dari Galois field. Setiap elemen pada input Ai, invers nya bisa dihitung dengan rumus: Bi = Ai -1, dimana kedua dari Ai dan Bi adalah elemen dalam field GF(2 8 ) dengan irreducible polinomialnya adalah p(x)=x 8 +x 4 + x 3 +x+1. Tabel invers dari Galois field dari GF(2 8 ) terdapat pada tabel 8.4 diatas. Tahapan kedua, setiap byte pada Bi dikalikan dengan suatu matrix yang nilainya konstan lalu dilanjutkan dengan penambahan terhadap 8-bit vektor yang bernilai konstan. (Paar dan Pelzl, 2010). Operasi tersebut dijelaskan pada penjelasan dibawah ini : Langkah kedua ini disebut pemetaan affine. Mari kita lihat bagaimana proses perhitungan pada tabel S-Box. Sebagai contoh, kita asumsikan bahwa input Ai adalah (1100 0010)2 = (C2)hex. Dari tabel invers dapat dilihat bahwa nilai inverse nya adalah

22 (2F) hex = (0010 1111)2. Selanjutnya, lakukan pemetaan affine pada 2F, dan akan menghasilkan nilai (0010 0101) = (25) hex. dan nilai tersebut sesuai dengan tabel S-Box dengan indeks C2. Keuntungan dalam penggunaan invers dari GF(2 8 ) sebagai fungsi utama dari transfomrasi SubBytes adalah hal tersebut menyediakan sebuah derajat nonlinear yang tinggi, sehingga menghasilkan tingkat keamanan yang tinggi untuk melawan serangan secara analitis. (Paar dan Pelzl, 2010). 2.2.2.3.ShiftRows Pada transformasi ShiftRows byte-byte inputan berpindah secara cyclic.pada baris kedua dari state satu byte paling kiri berpindah ke kanan, dan byte yang tersisa bergeser ke kiri. Pada baris ketiga dua byte paling kiri berpindah ke kanan, dan byte yang tersisa bergeser ke kiri. Dan pada baris keempat tiga byte paling kiri berpindah ke kanan, dan byte yang tersisa bergeser ke kiri. Tujuan dari transformasi ShiftRows adalah untuk menambah penyebaran elemen dari AES. Jika masukan untuk ShiftRows terdiri dari suatu state B = (B0,B1,...,B15) sebagai berikut : B0 B4 B8 B12 B1 B5 B9 B13 B2 B6 B10 B14 B3 B7 B11 B15 Maka keluaran state setelah melalui transformasi ShiftRows : B0 B4 B8 B12 tidak terjadi perpindahan B5 B9 B13 B1 1 byte bergeser ke kanan B10 B14 B2 B6 2 byte bergeser ke kanan B15 B3 B7 B11 2 byte bergeser ke kanan

23 2.2.2.4. MixColumns MixColumns adalah suatu transformsi linier yang menggabungkan setiap kolom dari matriks state. Ketika setiap masukan byte mempengaruhi empat byte keluaran, operasi MixColumns merupakan elemen penyebaran utama pada AES. Kombinasi dari ShiftRows dan MixColumns membuat kemungkinan bahwa hanya setelah 3 ronde, setiap byte dari matriks state bergantung pada semua 16 byte plain teks. State pada ShiftRows dinotasikan dengan C, yaitu C = MixColumn(B), dengan B adalah state keluaran dari ShiftRows. (Paar dan Pelzl, 2010). Setiap 4-byte pada kolom dianggap sebagai sebagai sebuah vektor dan dikalikan dengan suatu matriks 4x4. Matriks tersebut terdiri dari elemen yang tetap. Perkalian dan penjumlahan dari koefesien dilkakukan sama seperti pada operasi aritmatika pada GF(2 8 ). Bentuknya dapat dilihat sebagai berikut : Setiap byte pada state Ci dan Bi bernilai 8 bit yang merepresentasikan suatu elemen pada GF(2 8 ). Untuk elemen matriks konstan yang bernilai 01 diterjemahkan ke dalam bentuk polinomial GF(2 8 ) dengan nilai (0000 0001) dan setereusnya. Proses penjumlahan dalam perkalian vektor-matriks adalah penjumlahan dalam GF(2 8 ). Contohnya, kita anggap inputan untuk MixColumns adalah B = (25, 25, 25, 25). Untuk perhitungan elemen 25 dengan 01 akan menghasilkan nilai 25 juga, karena elemen 01 merupakan elemen identitas. Sementara perkalian 25 dengan 02 dan 03 adalah sebagai berikut : 02.25= (0000 0010).(0010 0101) = x. (x 5 + x 2 ++1) = x 6 + x 3 + x 03.25= (0000 0011).(0010 0101) = (x + 1). (x 5 +x 2 +1)

24 = x 6 +x 5 + x 3 + x 2 + x +1 Lalu, hasil keluaran state dari transformasi MixColumns adalah 01.25 = x 5 + x 2 + 1 01.25 = x 5 + x 2 + 1 02.25 = x 6 + x 3 + x + 03.25 = x 6 + x 5 + x 3 + x 2 + x + 1 Ci = x 5 + x 2 + 1 2.2.2.5. AddRoundKey Masukan untuk proses AddRoundKey adalah state matriks inputan dan state kunci. Masing - masing elemen pada kedua state akan dilakukan operasi XOR. Operasi XOR menghasilkan keluaran yang sama dengan opeasi penjumlahan pada Galois field GF(2). (Paar dan Pelzl, 2010). 2.2.3. Dekripsi AES Karena AES tidak bersifat non-feistel, sehingga semua transformasi memiliki fungsi inversinya. Inversi transformasi SubByte adalah InvSubByte, ShiftRows menjadi InvShiftRows dan MixColumns menjadi InvMixColumns. Namun, operasi pada invers mirip dengan operasi yang terjadi pada enkripsi. Pada pembahasan enkripsi sebelumnya, transformasi MixColumn tidak dilakukan pada ronde terakhir. Oleh sebab itu, pada rondee pertama dekripsi diatas tidak dilakukan proses InvMixCoulumns. Namun, semua ronde dekripsi yang lain terdiri dari empat transformasi yaitu AddRoundKey, InvSubBytes, InvShiftRows dan InvMixColumns. (Paar dan Pelzl, 2010). Algoritma dekripsi AES dijelaskan pada pembahasan berikut ini : Input : CT, K {Data hasil enkripsi 16 bytes, kunci AES (128,192, 256 bit) } Output : P {Data hasil dekripsi 16 bytes}

25 1. AddRoundKey (CT, w[(nr*4).. (Nr*4) + 3 ]), InvSubBytes(CT), ShiftRows(CT) 2. for i = (Nr-1) 1 do AddRoundKey (CT, w[(i*4).. (i*4) + 3 ] ), InvMixColumn(CT), InvShiftRows(CT), InvSubBytes (CT) 3. AddRoundKey(CT, w[0..3 ] ) 4. P = CT Dibawah ini adalah gambar 2.6 yang menunjukkan proses dekripsi dengan algoritma AES (Advanced Encryption System). Gambar 2.6. Langkah - langkah dekripsi AES (Paar dan Pelzl, 2010). 2.2.3.1 InvMixColumns Setelah melewati proses penambahan subkey, invmixcolumn adalah transformasi yang dilakukan pertama kali pada ronde pertama hingga ronde terakhir. Untuk mengembalikan operasi MixColumn, inverse dari matriks harus digunakan. Masukan untuk proses InvMixColumns adalah 4-byte dari kolom state yang nantinya dikalikan dengan inverse dari matriks 4x4. Matriks tersebut terdiri dari elemen yang tetap. Proses perkalian dan penjumlahan koefisien dilakukan seperti pada operasi aritmatika dalam GF(2 8 ). Proses perhitungan dapat dilihat di bawah ini.

26 Kolom - kolom selanjutnya pada state dihitung dengan rumus seperti diatas. Setiap nilai pada Bi dan Ci merupakan elemen dari GF(2 8 ), begitu pula nilai pada matriks. Notasi yang dituliskan untuk nilai pada matriks yang digunakan diatas menggunakan GF(2 8 ). Misalnya nilai 0B = (0000 1011)2 = x 3 + x +1. 2.2.3.2. InvShiftRows Pada transfornasi InvShiftRows pada dekripsi, proses pergeseran byte pada setiap baris diputar ke arah yang berlawanan dari proses ShiftRows pada enkripsi. Pada baris pertama tidak dilakukan pergeseran, sama halnya yang terjadi pada enkripsi. Baris - baris yang lain pada state dilakukan pergeseran ke arah kanan pada byte dan jumlah nya sesuai dengan indeks barisnya. Misalnya terdapat matriks sebagai berikut : B0 B4 B8 B12 B 5 B 9 B 13 B 1 B10 B14 B2 B6 B15 B3 B7 B11 Maka inverse dari matriks tersebut adalah : B0 B4 B8 B12 tidak terjadi perpindahan B1 B5 B9 B13 1 byte bergeser ke kiri B 2 B 6 B 10 B 14 2 byte bergeser ke kiri B3 B7 B11 B15 2 byte bergeser ke kiri

27 2.2.3.3. InvSubBytes Pada transformasi ini, setiap byte masukan dari state akan disubstitusikan nilainya dengan menggunakan tabel dari inverse S-Box. Nilai byte pada tabel S-Box dibangun dengan menggunakan rumus : Ai = S 1 (Bi ) = S 1 (S(Ai ))... (7) Dimana Ai dan Bi adalah elemen dari matriks. Untuk membalikkan nilai byte pada tabel S-Box yang digunakan pada proses enkripsi, hal yang harus dilakukan terlebih dahulu adalah menghitung nilai inverse pada transformasi affine. Setiap byte direpresentasikan sebagai elemen GF(2 8 ). Rumus transformasi affine adalah sebagai berikut : Dimana (b7,..., b0 ) adalah representasi dari elemen pada state Bi dan (b 7,..., b0 ) adalah hasil perhitungan tersebut. Kedua, hal yang harus dilakukan adalah membalikkan nilai dari Galois field inverse, dinotasikan sebagai Ai = (Ai 1 ) -1. Hal ini berarti, proses yang dilakukan adalah meng-inversekan nilai dari inverse suatu matriks, dinotasikan sebagai Ai = (B i ) 1 GF(2 8 ). Dan akan menghasilkan Ai = S 1 (Bi ). Berikut ini adalah hasil dari perhitungan invese byte yang dipetakan pada tabel InvS- Box. Tabel tersebut direpresentasikan pada tabel 2.7 dibawah ini. Tabel 2.7 Tabel InvS-Box 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 52 09 6A D5 30 36 A5 38 BF 40 A3 9E 81 F3 D7 FB 1 7C E3 39 82 9B 2F FF 87 34 8E 43 44 C4 DE E9 CB 2 54 7B 94 32 A6 C2 23 3D EE 4C 95 0B 42 FA C3 4E 3 08 2E A1 66 28 D9 24 B2 76 5B A2 49 6D 8B D1 25 4 72 F8 F6 64 86 68 98 16 D4 A4 5C CC 5D 65 B6 92

28 Tabel 2.7 Tabel InvS-Box (cont) 5 6C 70 48 50 FD ED B9 DA 5E 15 46 57 A7 8D 9D 84 6 90 D8 AB 00 BC BC D3 0A F7 E4 558 05 B8 B3 45 06 7 D0 2C 1E 8F 3F 3F 0F 02 C1 AF BD 03 01 13 8A 6B 8 3A 91 11 41 4F 67 DC EA 97 F2 CF CE F0 B4 E6 73 9 96 AC 74 22 AD AD 35 85 E2 F9 37 E8 1C 75 DF 6E A 47 F1 1A 71 1D 29 C5 89 6F B7 62 0E AA 18 BE 1B B FC 56 3E 4B C6 D2 79 20 9A DB C0 FE 78 CD 5A F4 C 1F DD A8 33 88 07 C7 31 B1 12 10 59 27 80 EC 5F D 60 51 7F A9 19 B5 4A 0D 2D E5 7A 9F 93 C9 9C EF E A0 E0 3B 4D 2A 2A F5 B0 C8 EB BB 3C 83 53 99 61 F 17 2B 04 7E BA 77 D6 26 E1 69 14 63 55 21 0C 7D 2.2.3.4. AddRoundKey Proses AddoundKey pada dekripsi mirip dengan yang terjadi pada enkripsi. Setiap byte pada state masukan dilakukan operasi XOR dengan byte pada subkey. Pada ronde pertama menggunakan subkey terakhir, dekripsi kedua menggunakan subkey kedua paling akhir dan begitu seterusnya. Subkey yang digunakan pada proses ini adalah subkey yang digunakan pada proses enkripsi, sehingga sudah selayaknya subkey tersebut disimpan sesuai dengan indeks nya masing-masing. (Paar dan Pelzl, 2010). 2.3. Citra Digital Citra digital merupakan representasi dari matriks 2 dimensi yang terdiri atas kumpulan piksel, dimana setiap piksel merepresentasikan nilai warna, sehingga terbentuklah suatu gambar yang dapat dilihat dan dikomputasi di dalam komputer. Piksel adalah elemen pada gambar yang nilainya tergantung pada tipe data yang digunakan untuk merepresentasikan warna yang dibutuhkan seperti RGB(Red, Green Blue), Binary, ataupun CMYK. Rentang nilai pada setiap piksel ditentukan oleh panjang bit pada setiap tipe data yang digunakan. Pada binary yang terdiri atas 1 bit, maka rentang nilainya adalah antara 0 dan 1 saja. Sedangkan pada RGB yang terdiri atas 8 bit pada masing-masing komponennya, maka rentang nilainya adalah 0-255.

29 Penyimpanan kumpulan piksel dalam bentuk 2 dimensi dari citra digital di dalam memori komputer menjadi suatu file membutuhkan suatu mekanisme yang tepat yang disebut sebagai format file. Beberapa format file yang sudah umum digunakan adalah Tagged Image File Format (TIFF) untuk mendukung gambar yang tidak terkompres, Graphic Interchange Format (GIF) dan Portable Network Graphics (PNG) yang biasa digunakan untuk web, dan JPEG/JFIF untuk citra digital berwarna yang diperlukan dengan ukuran yang tidak terlalu besar. Contoh citra digital ditunjukkan pada gambar 2.7 di bawah ini. 2.3.1. Format JPG Gambar 2.7. Citra digital dan nilai piksel Format file JPG dikembangkan oleh Joint Photographic Experts Group dengan tujuan untuk memperoleh pereduksian data dengan skala 1:16 yang telah ditetapkan sebagai standar ISO IS-10918 pada tahun 1990. Standar format JPEG mendukung citra dengan

30 komponen warna yang bernilai hingga 255 dan juga telah mendudukung tipe data CMYK. JPEG merupakan format file dengan menerapkan metode kompresi untuk citra berwarna maupun grayscale. Pembentukan state pada citra dilakukan pada setiap baris. Langkah - langkah pembentukan state dari sebuah citra adalah sebagai berikut : 1. Konversikan nilai piksel pada gambar ke dalam bentuk nilai hex. 2. Setiap baris nilai piksel dari sebuah citra dibentuk kedalam beberapa matriks 4 x 4. Matriks inilah yang disebut dengan state. Skema pembentukan state pada setiap baris dari sebuah citra ditunjukkan pada gambar 2.8. 210 186 164 156 157 155 154 154 147 130 113 120 136 136 122 137 138 231 120 100 120 222 123 118 121 234 121 211 122 110 110 143 114 114 210 157 147 136 186 155 130 134 164 154 113 122 156 154 120 137 138 222 234 110 231 123 121 110 100 118 211 143 120 121 122 114 Gambar 2.8. Skema pembentukan state pada baris citra 2.4 Pseudorandom Number Generator (PNRG) Pseudorandom Number Generator (PNRG) merupakan algoritma pembangkitan angka acak dengan menggunakan suatu fungsi f(x) secara rekursif. Syarat umum yang digunakan untuk menghasilkan nilai acak dengan algoritma ini adalah bahwa fungsi yang digunakan harus menunjukkan nilai statistik yang tepat untuk menunjukkan bahwa angka yang dihasilkan terlihat seperti bilangan acak.

31 2.5. Penelitian yang Relevan Berikut ini beberapa penelitian tentang kriptografi yang berkaitan dengan Algoritma Advanced Encryption Standard (AES) ditunjukkan pada tabel 2.8. Tabel 2.8 Penelitian Terkait No Nama/Tahun Judul Hasil Penelitian 1. R.Kristoforus JB dan Stefanus Aditya BP (2012) 2. Douglas Selent (2010) 3. Ahmed Bashir Abugharsa, Abd Samad dan Hamida Almangush (2011) Implementasi Algoritma Rijndael untuk Enkripsi dan Dekripsi pada Citra Digital Advanced Encryption Standard A New Image Encryption Approach Using Block Based on Shifted Algorithm kecepatan proses enkripsi dipengaruhi oleh panjang kunci yang digunakan. Semakin panjang kunci yang digunakan maka waktu proses akan semakin lama. algoritma Rijndael terpilih sebagai AES (Advanced Ebcryption Standard) dengan keunggulan yang dimilikinya yaitu tahan terhadap serangan dan setiap operasinya di rancang untuk dapat diperoleh inversinya yang dibutuhkan untuk proses dekripsi cipher text. tingkat keamanan dari kerahasiaan data gambar lebih baik dengan melakukan proses shift pada baris dan kolom dari blok data gambar.