i
ANALISIS PERBANDINGAN ALGORITME AES DENGAN MODE OPERASI ECB DAN CBC DAN PENDUGAAN WAKTU MENGGUNAKAN REGRESI LINEAR
IRVANY IRSYAD
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2016
i
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Analisis Perbandingan Algoritme AES dengan Mode Operasi ECB dan CBC dan Pendugaan Waktu Menggunakan Regresi Linear adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Mei 2016
Irvany Irsyad NIM G64124005
ii
ABSTRAK IRVANY IRSYAD. Analisis Perbandingan Algoritme AES dengan Mode Operasi ECB dan CBC dan Pendugaan Waktu Menggunakan Regresi Linear. Dibimbing oleh SRI WAHJUNI. Penelitian ini akan membandingkan kinerja mode operasi ECB dan CBC pada algoritme kriptografi AES dalam melakukan penyandian terhadap sebuah pesan, juga melihat perbedaaan kecepatan proses penyandian dari dua mode operasi tersebut. Dalam penelitian ini juga terdapat pegujian statistika dengan metode regresi linear dan pendugaan waktu proses berdasarkan ukuran file. Pada AESECB, pengulangan identik pada setiap blok yang dienkripsi akan menghasilkan sebuah pola. Pola ini dapat ditebak jika seorang kriptanalis memiliki database yang cukup untuk menerka pola tersebut dengan frekuensi kemunculan dari setiap blok. AES-CBC menawarkan solusi bagi kekurangan tersebut. Proses XOR antara initialization vector (IV) dan plaintext atau plaintext dengan ciphertext sebelumnya mampu mengacak pesan yang disandikan. Mode operasi CBC, secara tidak signifikan memakan waktu lebih lama dibanding mode ECB namun memberikan keamanan lebih dengan running time yang tidak terlalu berbeda. Kata kunci: AES, CBC, dekripsi, ECB, enkripsi, pendugaan, running time
ABSTRACT IRVANY IRSYAD. Comparative Analysis of AES Algorithms with ECB and CBC Operating Mode and Time Estimation Using Linear Regression. Supervised by SRI WAHJUNI. In this research we compared the performance of the ECB and CBC operation modes on AES cryptographic algorithm to perform encryption on a message, and how the differences in speed of the encoding process of the two operation modes. There is also a statistical test of the linear regression method and estimating the processing time by the size. The identical repetition on each encrypted block at AES-ECB will produce a pattern. This pattern can be guessed if a cryptanalyst has enough database to guess the pattern by the frequency of case of each block. AESCBC offers a solution to process an XOR between initialization vector (IV) and plaintext, or plaintext to previous ciphertext, to randomize the encrypted messages. CBC operation mode, insignificantly take longer time than ECB mode but provides more security with a running time that is not too different. Keyword: AES, CBC, decryption, ECB, encryption, estimation, running time
iii
ANALISIS PERBANDINGAN ALGORITME AES DENGAN MODE OPERASI ECB DAN CBC DAN PENDUGAAN WAKTU MENGGUNAKAN REGRESI LINEAR
IRVANY IRSYAD
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2016
iv
Penguji: 1 Endang Purnama Giri, SKom MKom 2 Auriza Rahmad Akbar, SKomp MKom
v
Judul Skripsi : Analisis Perbandingan Algoritme AES dengan Mode Operasi ECB dan CBC dan Pendugaan Waktu Menggunakan Regresi Linear Nama : Irvany Irsyad NIM : G64124005
Disetujui oleh
Dr Ir Sri Wahjuni, MT Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
vi
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta'ala atas rahmat dan segala karunia-Nya sehingga skripsi ini berhasil diselesaikan. Tema yang dipilih dalam penelitian adalah kriptografi, dengan judul Analisis Perbandingan Algoritme AES dengan Mode Operasi ECB dan CBC dan Pendugaan Waktu Menggunakan Regresi Linear. Terima kasih penulis ucapkan kepada kedua orang tua, kakak, dan temanteman penulis yang tidak dapat disebut satu persatu atas do’a serta dukungan yang diberikan. Kepada Ibu Dr Ir Sri Wahjuni, MT selaku pembimbing, Bapak Endang Purnama Giri, SKom MKom dan Bapak Auriza Rahmad Akbar, SKomp MKom selaku penguji. Kepada Ibu Shelvie Nydia Neyman, SKom MSi atas topik yang telah diberikan. Semoga karya ilmiah ini bermanfaat.
Bogor, Mei 2016
Irvany Irsyad
vii
DAFTAR ISI DAFTAR TABEL
vii
DAFTAR GAMBAR
vii
DAFTAR LAMPIRAN
vii
PENDAHULUAN
1
Latar Belakang
1
Tujuan Penelitian
1
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
TINJAUAN PUSTAKA
2
Kriptografi
2
Plaintext dan Ciphertext
3
Deskripsi algoritme AES
3
Expand Key (Ekspansi Kunci)
8
Modus Operasi Algoritme Blok
9
ECB (Electronic Codebook)
9
CBC (Cipher Block Chaining)
9
Regresi Linear METODE PENELITIAN
10 11
Analisis
11
Perancangan
11
Padding
11
Representasi Plaintext Menjadi Blok-Blok
12
Spesifikasi Uji Keamanan
12
Spesifikasi Uji Running time
12
Spesifikasi Uji Regresi Linear Sederhana dan Pendugaan Running Time
13
Implementasi
13
HASIL DAN PEMBAHASAN
13
Skenario Uji 1
14
Skenario Uji 2
15
Analisis Uji Running time
16
Analisis Regresi Linear Sederhana dan Pendugaan Running Time
20
viii
SIMPULAN DAN SARAN
22
Simpulan
22
Saran
22
DAFTAR PUSTAKA
23
LAMPIRAN
23
ix
DAFTAR TABEL 1 2 3 4 5 6 7 8
Jumlah proses berdasarkan besaran bit blok dan kunci (Adiwidya 2009) Ringkasan uji keamanan Rekapitulasi running time enkripsi dan dekripsi Group Statistik Independent sample T-test (α = 95%) Model summary SPSS ANOVA Coefficient regresi
3 16 17 20 20 20 21 21
DAFTAR GAMBAR 1 Proses enkripsi AES-128 (Stallings 2003) ..........................................................4 2 Matriks input, array, dan output (Stalling 2003) .................................................4 3 Matriks key, dan expand key (Stalling 2003) .....................................................5 4 Proses SubBytes (Stalling 2003) .........................................................................5 5 Proses ShiftRows (Stalling 2003) .......................................................................5 6 Proses MixColumns (Stalling 2003) ...................................................................6 7 Proses AddRoundKey (Stalling 2003) ................................................................6 8 Proses dekripsi AES-128 (Stallings 2003) ..........................................................7 9 Matriks inverse polimat (Stalling 2003) .............................................................8 10 Proses expand key (Stalling 2003) ....................................................................8 11 Nilai konstanta Rcon (Stalling 2003) ................................................................9 12 Skema proses mode operasi ECB (Munir 2004) ...............................................9 13 Skema proses mode operasi CBC (Munir 2004) .............................................10 14 Alur program pada MatLab .............................................................................11 15 Tahap pra proses Uji Keamanan .....................................................................13 16 Tahap uji skenario 1 ........................................................................................14 17 Tahap uji skenario 2 ........................................................................................ 16 18 Hubungan running time enkripsi dekripsi AES-ECB ..................................... 18 19 Hubungan running time enkripsi dekripsi AES-CBC .....................................18 20 Perbandingan proses enkripsi mode ECB dengan CBC .................................19 21 Perbandingan proses dekripsi mode ECB dengan CBC ................................. 19
DAFTAR LAMPIRAN 1 2 3 4 5
Tabel s-box (Stalling 2003) Tabel inverse s-box (Stalling 2003) Simulasi uji keamanan Algoritme operasi perkalian finite field GF(28) Tabel RC[j] untuk AES-128
24 24 25 28 29
x
1
PENDAHULUAN Latar Belakang Data merupakan komoditas utama di ranah kemanan internet. Pengguna internet pada Mei 2015 mencapai 82 juta orang di Indonesia menurut data dari Kementrian Komunikasi dan Informatika (Kemkominfo). Hal tersebut mengisyaratkan perlu adanya tindakan keamanan terhadap data yang berjalan di internet. Bentuk ancaman terhadap data atau pesan dapat berupa ancaman pasif maupun aktif. Ancaman pasif terjadi jika pihak pengganggu secara sengaja mangambil, membaca, dan menampilkan isi pesan. Sedangkan ancaman aktif terjadi jika pihak pengganggu juga memodifikasi isi pesan tersebut (Menezes et al. 1996). Chipertext only attack merupakan salah satu jenis ancaman yang dapat terjadi, penyerang mendapatkan ciphertext dari sejumlah pesan yang telah dienkripsi menggunakan algoritme yang sama kemudian memodifikasinya. Berdasarkan analisis teori yang dilakukan oleh Giri (2004), proses enkripsi Advanced Encryption Standard (AES) memiliki kompleksitas waktu yang efisien melalui penggunaan proses-proses transformasi yang ringan dalam implementasi XOR, shift, dan substitusi. Tetapi, invers dari proses-proses tersebut terkadang memiliki efisiensi yang rendah, akibatnya proses dekripsi AES menjadi lambat dalam implementasi. Pada penelitian tersebut dilakukan juga analisis keamanan dan analisis uji perbandingan kecepatan enkripsi dengan dekripsi. Pada bagian akhir penelitian tersebut disarankan agar penelitian dikembangkan meliputi panjang blok pesan dan panjang kunci yang digunakan dari 128 bit menjadi 192 bit dan 256 bit. Saran lainnya adalah penggunaan modus operasi seperti cipher block chaining (CBC), cipher feedback (CFB), output feedback (OFB), dan counter (CTR). Penelitian tentang mode operasi CBC pernah dilakukan sebelumnya oleh Rachman (2010). Dalam penelitian tersebut dinyatakan bahwa mode operasi CBC jauh lebih rumit dan membutuhkan penanganan matematik lebih dari mode operasi ECB, namun keamanan data dapat tersimpan lebih rahasia karena bit-bit yang terenkripsi bukan dari plaintext langsung melainkan dari bit-bit yang telah terenkripsi sebelumnya. Penelitian ini akan menerapkan dua mode operasi, yaitu ECB dan CBC dan menganalisis sisi keamanan dan kecepatan. Penelitian menggunakan panjang kunci 128 bit. Kemudian melakukan pendugaan running time dengan menggunakan persamaan regresi. Tujuan Penelitian Tujuan dari penelitian ini adalah mengetahui perbandingan keamanan dan kecepatan kemudian membuat model persamaan statistika untuk melakukan pendugaan running time algoritme AES dengan menggunakan blok cipher CBC.
2
Manfaat Penelitian Penelitian ini diharapkan dapat memberikan paparan mengenai keamanan dan kecepatan algoritme kriptografi AES dengan menggunakan blok cipher CBC dan ECB sehingga dapat digunakan sebagai bahan pustaka untuk penelitian selanjutnya atau pengembangan sistem di bidang kriptografi. Ruang Lingkup Penelitian Ruang lingkup penelitian ini antara lain: 1 Pengujian menggunakan 30 plaintext dengan ukuran file berada dalam selang 1000 byte hingga 30 000 byte. 2 Panjang blok kunci 128 bit. 3 Penelitian ini bersifat simulasi.
TINJAUAN PUSTAKA Kriptografi Kriptografi merupakan studi teknik matematis yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentukasi entitas, dan autentikasi asal data. Terdapat empat tujuan utama dari kriptografi menurut Menezes et al. (1996) yaitu: 1 Kerahasiaan Adalah layanan yang digunakan untuk menjaga isi informasi dari semua pihak terkecuali bagi mereka yang berwenang memilikinya. 2 Integritas data Adalah layanan tentang perubahan data yang tidak sah. Seseorang harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak yang tidak memiliki hak untuk memastikan ke-integritas-an sebuah data. Manipulasi data meliputi hal-hal seperti penyisipan, penghapusan, dan penukaran (substitusi). 3 Otentikasi Adalah layanan yang berhubungan dengan identifikasi. Fungsi ini berlaku bagi kedua entitas dan informasi itu sendiri. Dua pihak yang sedang berkomunikasi harus mengidentifikasi satu sama lain. Beberapa hal dari sebuah informasi yang disampaikan harus dikonfirmasi seperti data asli, tanggal asli data, isi data, waktu dikirim. Untuk aspek ini kriptografi biasanya dibagi menjadi dua kelas utama: entitas otentikasi dan otentikasi asal data. 4 Non-repudiasi Adalah layanan yang mencegah sebuah entitas untuk menyangkal kesepakatan atau tindakan yang sudah dilakukan.
3
Plaintext dan Ciphertext Plaintext adalah pesan atau data asli yang dapat dibaca yang dimasukan ke dalam algoritma penyandian sebagai input. Ciphertext adalah pesan teracak yang dihasilkan algoritma penyandian sebagai output. Ciphertext bergantung kepada plaintext dan kunci rahasia yang digunakan. Untuk sebuah pesan, dua kunci berbeda akan menghasilkan ciphertext yang berbeda. Ciphertext terlihat sebagai stream data yang acak dan tidak dapat terbaca (Stallings 2003). Deskripsi Algoritme AES AES adalah algoritme penyandian yang diajukan oleh Joan Daemen dan Vincent Rijmen dengan nama algoritme Rijndael yang kemudian ditetapkan sebagai algoritme AES oleh National Institute of Standards and Technology (NIST) dalam Federal Information Processing Standards Publication (FIPS) 197. Algoritme Rijndael termasuk dalam jenis algoritme kriptografi yang bersifat simetri dan cipher blok. Dengan demikian algoritme ini menggunakan kunci yang sama saat proses enkripsi dan dekripsi serta input dan output berupa blok dengan jumlah bit tertentu (Surian 2006). Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, dan 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses enkripsi dan dekripsi. Algoritme ini dapat ditulis dengan AES-128, AES-192, AES-256 yang menunjukkan penggunaan panjang kunci. Pada Tabel 1 ditunjukkan perbandingan jumlah proses yang harus dilalui untuk masing-masing input. Tabel 1 Jumlah proses berdasarkan besaran bit blok dan kunci (Adiwidya 2009) Jumlah putaran Tipe Panjang kunci Panjang blok input (round) AES-128 128 bit 128 bit 10 AES-192 192 bit 128 bit 12 AES-256 256 bit 128 bit 14 Proses Enkripsi Pada Gambar 1 ditunjukkan keseluruhan proses enkripsi dari algoritma penyandian AES. Terdapat empat proses utama yang digunakan, satu proses merupakan permutasi yaitu ShiftRows dan tiga proses merupakan substitusi yaitu AddRoundKey, SubBytes, dan MixColumns. Semua proses tersebut diiringi dengan penjadwalan kunci oleh proses expand key setiap round. Proses ini berakhir pada round 10 yang tidak diikuti tahapan MixCloumns. Input dari satu kali proses penyandian adalah sebesar 128 bit atau 16 byte. Input ini ditransformasi ke dalam matriks 4×4 dengan direpresentasikan dua karakter heksadesimal. Matriks ini disalin ke sebuah array matriks 4×4 yang pada setiap tahapan proses enkripsi atau dekripsi akan diubah. Pada tahapan terakhir array berupa matriks tersebut disalin kembali menjadi output dari proses penyandian. Matriks input, array dan output dapat dilihat pada Gambar 2.
4
Gambar 1 Matriks input, array, dan output (Stallings 2003) Begitu pula dengan kunci yang digunakan sebesar 128 bit akan ditransformasi ke dalam matriks 4×4 kemudian dengan representasi dua karakter heksadesimal. Proses expand key akan menghasilkan sebuah array matriks sepanjang 44 kolom. Setiap kolom pada matriks ini merepresentasikan word (w) dan dimulai dengan w0 seperti terlihat pada Gambar 3.
Gambar 2 Proses enkripsi AES-128 (Stallings 2003) Sudah dijelaskan sebelumnya terdapat empat proses utama yang digunakan. Algoritme ini dimulai dengan proses boolean antara matriks input dengan matriks
5
key, yaitu XOR. Proses ini disebut dengan proses AddRoundKey yang menghasilkan sebuah matriks state yang menginisialisasi setiap round. Kemudian diikuti terurut dengan proses SubBytes, ShiftRows, MixColumns, dan AddRoundKey. Hanya saja pada round terakhir tidak terdapat proses MixColumns. Tahapan proses enkripsi selalu dimulai dan diakhiri oleh proses ini AddRoundKey.
Gambar 3 Matriks key dan expand key (Stallings 2003) SubBytes SubBytes merupakan proses substitusi terhadap matriks sebesar 16×16 yang isinya merupakan semua kemungkinan kejadian permutasi dari 256 nilai 8 bit. Matriks ini disebut s-box (dapat dilihat pada Lampiran 1). Pemetaan dilakukan dengan menggunakan 4 bit terkiri dari matriks state untuk menentukan baris pada s-box, sedangkan untuk menentukan kolom dengan cara menggunakan 4 bit terkanan pada setiap sel matriks. Proses SubBytes dapat dilihat pada Gambar 4.
Gambar 4 Proses SubBytes (Stallings 2003) ShiftRows ShiftRows merupakan proses permutasi matriks sederhana. Proses yang terjadi adalah pergeseran berotasi kekiri sebuah baris pada matriks, dimulai dengan baris kedua yang bergeser berotasi sebanyak satu byte ke kiri, baris ketiga bergeser berotasi sebanyak dua byte ke kiri, dan baris keempat bergeser berotasi sebanyak tiga byte ke kiri. Prores ShiftRows dapat dilihat pada Gambar 5.
Gambar 5 Proses ShiftRows (Stallings 2003)
6
MixColumns MixColumns merupakan operasi pada setiap kolom secara terpisah. Setiap byte kolom dipetakan ke dalam nilai baru dengan sebuah fungsi yang melibatkan semua byte yang berada satu kolom. Proses ini menggunakan kaidah perkalian matriks dua dimensi dengan sebuah matriks polimat. Prores MixColumns dapat dilihat pada Gambar 6 dan algoritme operasi perkalian secara detail dapat dilihat pada Lampiran 4. 02 03 01 01 𝑑4 04 𝑏𝑓 [01 02 03 01] [ ] = [66] 81 01 01 02 03 5𝑑 𝑒5 03 01 01 02 30 Gambar 6 Proses MixColumns (Stallings 2003) AddRoundKey AddRoundKey merupakan proses XOR antara kolom matriks state 4×4 dengan kolom matriks key 4×4 . Prores AddRoundKey dapat dilihat pada Gambar 7.
Gambar 7 Proses AddRoundKey (Stallings 2003) Proses Dekripsi Tahapan pada proses dekripsi terlihat hampir sama dengan enrkripsi, akan tetapi karena ini merupakan proses penyandian ulang ke bentuk semula maka prosesnya pun berkebalikan (inverse). Proses utama tersusun sebagai berikut, InvShiftRows, InvSubBytes, AddRoundKey, dan InvMixColumns. Penjadwalan kunci dari proses expand key yang digunakan juga berbalik, pada round pertama word yang digunakan adalah w43 dan pada round terakhir word yang digunakan adalah w0. Prores AddRoundKey dapat dilihat pada Gambar 8. InvShiftRows InvShiftRows merupakan proses kebalikan dari ShiftRows. Proses yang terjadi adalah pergeseran berotasi ke kanan sebuah baris pada matriks, dimulai dengan baris kedua yang bergeser berotasi sebanyak satu byte ke kanan, baris ketiga bergeser berotasi sebanyak dua byte ke kanan, dan baris keempat bergeser berotasi sebanyak tiga byte ke kanan.
7
Gambar 8 Proses dekripsi AES-128 (Stallings 2003) InvSubBytes InvSubBytes merupakan proses yang sama dengan SubBytes pada proses enkripsi, hanya saja tabel pemetaan yang digunakan kali ini adalah inverse s-box (Lampiran 2). AddRoundKey Proses AddRoundKey pada proses dekripsi identik dengan proses dekripsi yaitu proses XOR antara matriks state 4×4 dengan matriks key 4×4 yang merupakan hasil dari proses expand key. InvMixColumns InvMixColomns merupakan proses perkalian matriks dua dimensi antara matriks state dengan sebuah matriks inverse polimat. Matriks inverse polimat dapat dilihat pada Gambar 9.
8
Gambar 9 Matriks invers polimat (Stalling 2003) Expand Key (Ekspansi Kunci)
Gambar 10 Proses expand key (Stallings 2003) Expand key merupakan proses untuk membangkitkan kunci bagi setiap round pada proses enkripsi maupun dekripsi. Proses Expand key dapat dilihat pada Gambar 10. Proses ini akan membangkitkan 44 word dimulai dengan w0. Empat word pertama didapat dengan langsung menyalin 4 bytes pertama dari kunci asli, sedangkan untuk word pembangkitan selanjutnya menggunakan aturan sebagai berikut: 1 Proses rot word yaitu melakukan pergeseran berotasi satu byte ke kiri (b0, b1, b2, b3) menjadi (b1, b2, b3, b0). (b0, b1, b2, b3) = (k12, k13, k14, k15). 2 Proses sub word yaitu melakukan substitusi terhadap s-box seperti pada proses SubBytes. 3 Lakukan XOR antara sub word dengan nilai konstanta Rcon[j] yang bersuaian dengan setiap round. Tabel konstanta Rcon[j] dapat dilihat pada Gambar 11 dan perhitungan secara detail dapat dilihat pada Lampiran 5. 4 Lakukan proses XOR antara w(0-3) dengan hasil dari langkah ketiga.
9
Gambar 11 Nilai konstanta Rcon (Stallings 2003) Modus Operasi Algoritme Blok Modus operasi algoritme blok merupakan aturan aliran proses algotritme kriptografi blok antara aliran prose suatu blok terhadap proses blok lainnya. Beberapa modus operasi blok diantaranya ECB, CBC, CFB, dan OFB. Implementasi pada penelitian ini hanya menggunakan modus operasi ECB dan CBC (Giri 2004). ECB (Electronic Codebook) Pada mode operasi ini, setiap plaintext Pi dienkripsi secara independen menjadi blok ciphertext Ci. Secara matematis, modus operasi ECB dinyatakan dengan: Ci = Ek(Pi); untuk proses enkripsi Pi = Dk(Ci); untuk proses dekripsi
(1) (2)
dalam hal ini Pi dan Ci adalah plaintext dan ciphertext blok ke-i. Skema enkripsi dan dekripsi dengan mode operasi ECB dapat dilihat pada Gambar 12.
Gambar 12 Skema proses mode operasi ECB (Lung dan Munir 2004) CBC (Cipher Block Chaining) Mode ini menerapkan mekanisme umpan balik (feedback) pada sebuah blok, dalam hal ini hasil enkripsi blok sebelumnya diumpanbalikkan ke dalam enkripsi blok current kemudian di-XOR-kan dengan plaintext current. Dengan mode CBC, setiap blok ciphertext bergantung tidak hanya pada blok plaintextnya tetapi juga pada seluruh blok plaintext sebelumnya. Dekripsi dilakukan dengan memasukkan blok ciphertext current ke fungsi dekripsi, kemudia meng-XOR -kan hasilnya dengan blok ciphertext sebelumnya. Dalam hal ini, blok ciphertext sebelumnya berfungsi sebagai umpan maju (feedforward) pada akhir proses dekripsi. Secara matematis, modus operasi ECB dinyatakan dengan persamaan berikut:
10
Ci = Ek(Pi⊕Ci-1); untuk proses enkripsi Pi = Dk(Pi) ⊕Ci-1; untuk proses dekripsi
(3) (4)
dalam hal ini, Ci-2 = IV (initialization vector). IV dapat diberikan oleh pengguna atau dibangkitkan secara acak oleh program. Jadi, untuk menghasilkan blok cipherteks pertama (Ci-1), IV digunakan untuk menggantikan blok cipherteks sebelumnya. Sebaliknya pada dekripsi, blok plainteks diperoleh dengan cara mengXOR-kan IV dengan hasil dekripsi terhadap blok cipherteks pertama. Pada mode CBC, blok plainteks yang sama menghasilkan blok cipherteks yang berbeda hanya jika blok-blok plainteks sebelumnya berbeda. Skema enkripsi dan dekripsi dengan mode CBC dapat dilihat pada Gambar 13.
Gambar 13 Skema proses mode operasi CBC (Lung dan Munir 2004) Regresi Linear Regresi linear merupakan teknik untuk membangun persamaan matematik. Persamaan ini menggambarkan antara dua atau lebih variabel dan menaksir nilai variabel dependen berdasarkan pada nilai tertentu pada nilai variabel independennya (Hidayah 2011). Walpole (1992) menyatakan bahwa persamaan matematik yang memungkinkan kita meramalkan nilai-nilai suatu peubah takbebas dari nilai-nilai satu atau lebih peubah bebas disebut persamaan regresi. Pada penelitian ini nilai peubah atau variabel independen (bebas) adalah ukuran file dan running time merupakan variabel dependen. Adapun bentuk persamaan dari regresi linier ini adalah: 𝑦̂ = a+bx
(5)
Nilai 𝑎 menyatakan perpotongan dengan sumbu tegak, dan 𝑏 adalah kemiringan atau gradiennya. Lambang 𝑦̂ digunakan di sini untuk membedakan antara nilai ramalan yang dihasilkan persamaan regresi dan nilai pengamatan y yang sesungguhnya untuk nilai x tertentu.
11
METODE PENELITIAN Analisis Penelitian ini akan membandingkan kinerja mode operasi ECB dan CBC pada algoritme kriptografi AES dalam melakukan penyandian terhadap sebuah pesan, juga melihat perbedaaan kecepatan proses penyandian dari dua mode operasi tersebut. Dalam penelitian ini juga terdapat pegujian statistika dengan metode regresi linear dan pendugaan waktu proses berdasarkan ukuran file. Perancangan Perancangan ini merupakan alur batch program dan alur program AES pada MatLab. Program ini digambarkan dengan flow diagram dan dapat dilihat pada Gambar 14.
(a) (b) Gambar 14 Alur program pada MatLab Padding Proses padding akan menambahkan karakter ASCII dengan kode heksadesimal yang dikurangi satu dari jumlah karakter yang ditambahkan. Hal ini dilakukan agar pada saat pesan didekripsi mudah untuk mengidentifikasi pesan aslinya. Maksimal jumlah padding setiap blok adalah 15 karakter, artinya kemungkinan karakter ASCII yang ditambahkan ke dalam pesan memiliki kode heksadesimal antara 00 sampai 0E. Satu blok pesan terdiri dari 16 karakter atau 16 byte. Proses tersebut dituliskan dengan pseudocode berikut:
12
start panjang_padding = 16 – (ukuran_file mod 16) if ukuran_file mod 16 != 0 then for i = 1 to panjang_padding do plaintext = [plaintext panjang_padding] end for end if end
Representasi Plaintext Menjadi Blok-Blok Program demo algoritme AES pada MatLab yang digunakan merupakan program yang berjalan dengan ketentuan panjang pesan 128 bit dan kunci 128 bit. Pesan dipetakan kedalam variabel array kemudian diproses satu-persatu. Proses tersebut dituliskan sebagai berikut: Start read k ukuran_file = length (plaintext); jumlah_blok = ceil(ukuran_file / 16); for i = 1 to jumlah_blok do for j = 1 to 16 index_plaintext(i,k) = plaintext(l); l = l + 1 k = k + 1 end for k = 1 end for end
Spesifikasi Uji Keamanan Uji keamanan dilakukan dalam beberapa skenario seperti yang dilakukan Lung dan Munir (2004), kasus-kasus uji sebagi berikut: 1 Skenario uji 1 Skenario ini bertujuan untuk menguji tingkat keamanan data algoritma kriptografi AES dengan mode operasi ECB terhadap pengubahan satu bit blok ciphertext, penambahan blok ciphertext, dan penghilangan satu blok ciphertext. 2 Skenario uji 2 Skenario ini bertujuan untuk menguji tingkat keamanan data algoritma kriptografi AES dengan mode operasi CBC terhadap pengubahan satu bit blok ciphertext, penambahan blok ciphertext, dan penghilangan satu blok ciphertext. Masing-masing skenario uji menggunakan tiga blok plaintext dengan harapan cukup menggambarkan situasi uji keamanan yang dilakukan. Spesifikasi Uji Running time Uji running time dilakukan dengan menggunakan 30 ukuran file teks berbeda dalam selang 1 byte sampai 1000 byte sebagai objek kajian, dilanjutkan dengan pengukuran running time dari setiap perlakuan. Ulangan setiap perlakuan dilakukan sebanyak 10 kali (Giri 2004).
13
Spesifikasi Uji Regresi Linear Sederhana dan Pendugaan Running Time Uji regresi dilakukan untuk mengetahui hubungan antara variabel ukuran file dan waktu proses. Pengujian ini menggunakan regresi linear sederhana, ukuran file menjadi variabel bebas (independen) dan waktu proses menjadi variabel terikat (dependen). Regresi linear sederhana akan menghasilkan sebuah persamaan regresi yang akan digunakan sebagai alat pendugaan waktu proses berdasarkan ukuran file. Implementasi Implementasi dirancang dan dibangun dengan menggunakan perangkat keras dan lunak sebagai berikut: 1 Perangkat keras: Processor Intel Core i3 1.7 GHz RAM 4 GB Harddisk 500 GB 2 Perangkat lunak: Sistem operasi Windows 10 64 bit MatLab versi 7.11.0.584 SPSS versi 22
HASIL DAN PEMBAHASAN Pengujian keamanan dilakukan dengan memberikan perlakuan yang sama antara mode operasi ECB dan CBC dalam perannya pada algoritme kriptografi AES dan membuat beberapa skenario pengujian. Plaintext dan kunci yang digunakan untuk penyandian berjumlah tiga blok plaintext dapat dilihat pada Gambar 15. Pengubahan satu bit blok ciphertext dilakukan pada blok kedua, penambahan blok ciphertext diposisikan setelah blok ciphertext kedua, dan penghilangan satu blok ciphertext dilakukan terhadap blok ciphertext kedua.
Gambar 15 Tahap pra proses Uji Keamanan
14
Skenario Uji 1 Skenario ini menguji keamanan algoritme kriptografi AES dengan mode operasi ECB, hasilnya dapat dilihat pada Gambar 16: 1 Pengubahan satu bit blok ciphertext pada blok ciphertext kedua, hanya mengakibatkan perubahan terhadap blok plaintext kedua pada hasil dekripsinya. 2 Penambahan satu blok ciphertext setelah blok ciphertext kedua mengakibatkan adanya tambahan satu blok plaintext yang letaknya persis setelah blok plaintext kedua tanpa mempengaruhi hasil dekripsi blok plaintext lainnya. 3 Penghapusan satu blok ciphertext pada blok ciphertext kedua mengakibatkan hilangnya blok plaintext kedua tanpa mempengaruhi hasil dekripsi blok plaintext lainnya. Hasil ini menunjukkan kelemahan juga kelebihan mode operasi ECB, karena setiap blok dapat diproses secara terpisah, hal ini dapat dimanfaatkan dalam pengiriman data terenkripsi secara acak. Jika mode operasi ECB dikerjakan dengan prosesor parallel (multiple processor), maka setiap prosesor dapat melakukan enkripsi atau dekripsi blok plaintext yang berbeda-beda (Rachman 2010).
Gambar 16 Tahap uji skenario 1
15
Terjadinya kerusakan satu blok ciphertext hanya akan mempengaruhi blok yang bersangkutan pada saat didekripsi hal ini juga salah satu kelebihan mode operasi ECB Karena setiap blok diproses secara terpisah, hal ini memungkinkan terjadinya kesamaan hasil enkripsi (dengan asumsi blok plaintext yang dienkripsi sama). Penggunaan kata-kata yang sering berulang serpeti dan, yang, pada, karena, merupakan salah satu kelemahan mode operasi ECB, karena saat di enkripsi akan menghasilkan bagian ciphertext yang sama. Pola ini dapat dipecahkan dengan serangan berbasis statistik menggunakan frekuensi kemunculan blok ciphertext (Rachman 2010). Sengaja mengubah satu atau beberapa bit pada sebuah blok ciphertext juga akan menghasilkan blok plaintext yang berbeda. Skenario Uji 2 Skenario ini menguji keamanan algoritme kriptografi AES dengan mode operasi CBC, hasilnya dapat dilihat pada Gambar 17: 1 Pengubahan satu bit blok ciphertext pada blok ciphertext kedua, mengakibatkan perubahan terhadap blok plaintext kedua pada hasil dekripsinya dan satu kesalahan bit diawal pada blok ciphertext berikutnya. 2 Penambahan satu blok ciphertext setelah blok ciphertext kedua mengakibatkan adanya tambahan satu blok plaintext yang letaknya persis setelah blok plaintext kedua diikuti dengan perubahan blok plaintext seterusnya. 3 Penghapusan satu blok ciphertext pada blok ciphertext kedua mengakibatkan hilangnya blok plaintext kedua diikuti dengan perubahan blok plaintext seterusnya. Hasil ini menunjukkan kelemahan juga kelebihan mode operasi CBC. Dalam segi kelebihan mode operasi CBC jauh lebih aman. Hasil enkripsinya tidak menghasilkan pola seperti mode operasi ECB, hal ini dikarenakan ada tambahan operasi Boolean yaitu XOR pada plaintext sebelum proses enkripsi dan pada ciphertext setelah didekripsi. Blok plaintext yang sama juga tidak menghasilkan blok ciphertext yang sama setelah dienkripsi Dari segi kelemahan, sifat-sifat yang didapat dari hasil pengujian diatas dapat dimanfaatkan oleh pihak ketiga. Dengan sengaja menambahkan satu atau lebih blok ciphertext ditengah-tengah file terenkripsi akan menghasilkan plaintext yang berbeda. Sama halnya dengan mode operasi ECB, mengubah satu atau beberapa bit pada sebuah blok ciphertext juga akan menghasilkan blok plaintext yang berbeda, tetapi ini hanya berpengaruh pada blok ciphertext yang bersangkutan dan satu kesalahan bit pada posisi yang sama dalam blok ciphertext berikutnya. Dengan melihat hasil uji keamanan, dapat penulis tarik kesimpulan bahwa mode operasi CBC lebih unggul dalam hal ketangguhan data, dan lebih menyulitkan para kriptanalis untuk melihat isi file terenkripsi. Hal-hal seperti pengubahan bit atau penambahan blok ciphertext dapat diatasi dengan mengimplementasikan fungsi hash.
16
Gambar 17 Tahap uji skenario 2
Kekurangan
Kelebihan
Tabel 2 Ringkasan uji keamanan ECB CBC Terdapat hasil penyandian Memiliki dampak yang yang sama terhadap blok- besar terhadap serangan blok identik. ciphertext-only attack. Kerusakan pesan hanya Menghasilkan ciphertext terjadi pada blok-blok yang yang lebih rumit. termodifikasi. Analisis Uji Running time
Kecepatan merupakan salah satu faktor yang menjadi pertimbangan dalam memilih sebuah algoritme. Bobot pertimbangan tentunya akan berbeda, misalnya ketika memilih algoritme sorting dan algoritme keamanan. Pada algoritme sorting, asumsi memilih proses yang paling cepat dapat dibenarkan, sedangkan pada algoritme keamanan ada faktor lain yang tentunya sama atau lebih penting yaitu protokol keamanan itu sendiri. Perbandingan kecepatan menjadi hal yang kompleks dan memiliki berbagai faktor yang mempengaruhi hasil pengujian seperti yang sudah dibahas pada penelitian Giri (2004), beberapa faktor tersebut yaitu, sistem operasi yang digunakan, spesifikasi komputer yang digunakan (prosesor, RAM, media penyimpanan, dan lain-lain), dan juga platform bahasa pemrograman yang digunakan (assembly, compiler, interpreter).
17
Pada uji running time ini diasumsikan bahwa faktor background processes diabaikan. Parameter yang direkam adalah waktu proses enkripsi dan dekripsi algoritme kriptografi AES dengan dua mode operasi yaitu ECB dan CBC. Hasil perekaman ini digunakan untuk membandingkan running time kedua mode operasi tersebut. Rekapitulasi data disajikan pada Tabel 3.
Ukuran file (byte) 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000 21000 22000 23000 24000 25000 26000 27000 28000 29000 30000
Tabel 3 Rekapitulasi running time enkripsi dan dekripsi Ukuran Enkripsi Dekripsi setelah Jumlah ECB CBC ECB CBC padding blok (detik) (detik) (detik) (detik) (byte) 1008 63 0.546 0.909 0.576 0.919 2016 126 1.084 1.801 1.142 1.816 3008 188 1.629 2.711 1.776 2.745 4016 251 2.166 3.600 2.267 3.647 5008 313 2.711 4.509 2.975 4.619 6016 376 3.246 5.403 3.614 5.510 7008 438 3.785 6.298 3.966 6.340 8016 501 4.330 7.198 4.497 7.222 9008 563 4.876 8.114 5.236 8.133 10016 626 5.410 9.003 5.642 9.024 11008 688 5.965 9.919 6.417 9.953 12016 751 6.513 10.819 6.777 10.856 13008 813 7.045 11.716 7.409 11.760 14016 876 7.584 12.616 7.944 12.675 15008 938 8.168 13.638 8.409 13.566 16016 1001 8.960 14.885 9.119 14.454 17008 1063 9.432 15.640 10.308 15.369 18016 1126 9.941 16.590 10.188 16.269 19008 1188 10.613 17.652 10.639 17.172 20016 1251 10.971 18.269 11.391 18.090 21008 1313 11.545 19.220 11.960 18.967 22016 1376 12.042 20.058 12.437 19.907 23008 1438 12.683 21.076 13.278 20.778 24016 1501 13.234 22.061 13.542 21.683 25008 1563 15.167 24.204 14.179 22.589 26016 1626 14.659 24.649 14.558 23.473 27008 1688 15.104 25.168 15.221 24.417 28016 1751 15.175 25.251 15.777 25.320 29008 1813 15.612 26.013 16.522 26.136 30016 1876 16.196 26.968 17.059 27.092
Berdasarkan Tabel 1, running time dari proses enkripsi maupun dekripsi kedua mode operasi terus bertambah seiring meningkatnya ukuran file. Hal ini dikarenakan bertambahnya blok pesan yang mengakibatkan pengulangan proses enkripsi dan dekripsi ikut bertambah. Laju pertumbuhan running time mengalami peningkatan disetiap blok sebesar 16 byte (128 bit), bukan berdasarkan peningkatan
18
jumlah byte plaintext yang sama. Representasi kedalam bentuk grafik untuk melihat hubungan antara proses enkripsi dan dekripsi dapat dilihat pada Gambar 18.
Running time (detik)
30 25
Enkripsi
Dekripsi
20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ukuran file (kilobyte)
Gambar 18 Hubungan running time enkripsi dekripsi AES-ECB Dari Gambar 19, terlihat laju pertumbuhan running time enkripsi dekripsi dengan mode CBC tidak sejalan dengan pernyataan bahwa laju pertumbuhan running time seiring dengan kenaikan ukuran file. Dapat dilihat pada proses enkripsi selang ukuran file 17000 – 18000 byte yang mengalami penurunan running time. Hal ini desebabkan oleh background processes yang berjalan di sistem operasi yang mengkonsumsi resource dari komputer. Microsoft pun menegaskan perlunya pengembangan dalam efisiensi background processes pada sistem operasi sistem windows untuk meningkatkan performance (Microsoft 2009). Terbukti bahwa permasalahan background processes mempengaruhi kegiatan uji running time.
Running time (detik)
30 25 Enkripsi
Dekripsi
20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ukuran file (kilobyte)
Gambar 19 Hubungan running time enkripsi dekripsi AES-CBC Dari grafik hubungan running time enrkipsi-dekripsi terlihat bahwa proses dekripsi memiliki running time yang lebih lama dibanding proses enkripsi, karena proses invers dari proses-proses seperti XOR, pergeseran (shift), dan substitusi memiliki efisiensi yang rendah. Terutama pada proses invers MixColumn yang
19
Running time (detik)
terdapat perkalian, perjumlahan dan juga pergeseran bit. Invers MixColumn merupakan proses yang menyumbangkan waktu terbanyak disbanding invers ShiftRows, invers SubBytes dan invers AddRoundKey. Hal ini juga sudah dibuktikan pada penelitian sebelumnya dengan uji statistik menggunakan independent sample T-test dengan asumsi enkripsi dan dekripsi merupakan dua proses berbeda. Hasilnya menyatakan terdapat perbedaan representasi nilai rataan pada proses enkripsi dan dekripsi sebesar 0.7756. Nilai yang cukup besar jika diketahui nilai rataan nyata proses enkripsi dan dekripsi yaitu 1.5410 dan 2.3165 (Giri 2004). Perbandingan proses enkripsi dan dekripsi pada mode operasi ECB dan CBC dapat dilihat pada Gambar 20 dan 21. 18 16 14 12 10 8 6 4 2 0
ECB
CBC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ukuran file (kilobyte)
Gambar 20 Perbandingan proses enkripsi mode ECB dengan CBC.
Running time (detik)
30 25 ECB
CBC
20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ukuran file (byte)
Gambar 21 Perbandingan proses dekripsi mode ECB dengan CBC Penulis juga melakukan uji statistik menggunakan independent sample T-test untuk mengetahui besar perbedaan running time enkripsi pada mode ECB dan CBC. Asumsi yang digunakan adalah bahwa proses enkripsi pada kedua mode operasi merupakan dua proses yang berbeda dan hanya ditentukan oleh variabel bebas berupa ukuran file. Hasil yang didapat dari uji statistik dapat dilihat pada Tabel 4 dan 5.
20
Tabel 4 Grup statistik Proses
Mode
N
Mean
Enkripsi
ECB CBC ECB CBC
30 30 30 30
8.54640 8.82750 14.19860 14.01670
Dekripsi
Std. deviation 4.906720 4.969683 8.136525 7.939253
Std. error mean 0.895840 0.907336 1.485519 1.449503
Tabel 5 Independent sample T-test (α = 95%) Proses
F
t
df
Sig. (2tailed)
Enkripsi Dekripsi
0.004 0.045
-0.220 0.088
57.991 57.965
0.826 0.930
Keterangan: N F t df Sig.(2-tailed)
Mean difference -0.281100 0.181900
Std. error difference 1.275064 2.075530
95% Confidence interval of the difference Lower Upper -2.833427 2.271227 -3.972778 4.336578
= jumlah data = nilai Levene’s test (uji asumsi homogen) = nilai perbandingan rataan = digree of freedom (derajat bebas) = nilai signifikan
Dari hasil uji statistik dengan selang kepercayaan α = 95% pada proses enrkipsi didapatkan nilai Sig. > 0.05 yaitu sebesar 0.826 dan pada proses dekripsi didapatkan nilai Sig. > 0.05 yaitu sebesar 0.930. Dapat disimpulkan bahwa running time antara mode ECB dan CBC memiliki rataan laju pertumbuhan running time yang tidak berbeda signifikan. Kesimpulan lain mengenai laju pertumbuhan running time proses enkripsi dengan mode operasi ECB memiliki rataan yang lebih rendah disbanding dengan CBC, hal ini dinyatakan oleh nilai mean difference yang bernilai negatif sebesar -2.811. Uji statistik ini menunjukkan bahwa proses penyandian dengan mode operasi CBC memakan waktu lebih lama dibanding ECB. Secara teori proses pada mode operasi CBC memiliki proses yang tidak dilakukan pada mode ECB, yaitu proses XOR pada plaintext sebelum masuk ke proses penyandian. Analisis Regresi Linear Sederhana dan Pendugaan Running Time Regresi Linear Sederhana Pengujian ini dilakukan terhadap proses enkripsi dan dekripsi algoritme kriptografi AES dengan menggunakan mode operasi CBC. Dalam implementasinya pada software SPSS, pengujian ini menghasilkan tiga tabel yang menjelaskan korelasi antara variabel ukuran file dengan variabel running time, pembuktian linearitas dan persamaan regresi yang digunakan sebagai alat pendugaan nilai variabel running time. Tabel 6 Model summary SPSS Model Enkripsi Dekripsi
R
R square 1.000 1.000
0.999 1.000
Std. error of the estimate 273.403 28.956
21
Tabel 6 menampilkan nilai R yang merupakan faktor dari nilai koefisien korelasi. Dari hasil yang didapat nilai korelasinya adalah 1.000. Nilai ini dapat menginterpratasikan bahwa variabel ukuran file sangat mempengaruhi nilai dari variabel running time. Dalam tabel ini juga diperoleh nilai R Square atau koefisien determinasi yang menunjukkan seberapa bagus model regresi yang dibentuk dari variabel ukuran file dan running time. Nilai koefisien determinasi yang diperoleh sebesar 0.999 atau dapat diinterpretasikan 99.9% yang artinya bahwa variabel ukuran file memiliki pengaruh sebesar 99.9% terhadap variabel running time. Tabel 7 ANOVA Model Enkripsi
Dekripsi
Sum of Squares 2245407017.212 2092982.788 2247500000.000 2247476522.893 23477.107 2247500000.000
Regression Residual Total Regression Residual Total
df 1 28 29 1 28 29
Mean Square 2245407017.212 74749.385
f 30039.137
Sig. 0.000
2247476522.893 838.468
2680455.569
0.000
Tabel 7 menampilkan nilai taraf signifikan atau linearitas dari regersi. Kriterianya dapat dilihat berdasarkan uji F atau uji nilai signifikan (Sig.). Penulis menggunakan nulai uji Sig. dengan ketentuan jika Sig. < 0.05, maka model regresi dinyatakan linear. Dari Tabel 7 didapat nilai Sig. sebesar 0.00. Dengan demikian dapat ditarik kesimpulan model regresi yang dibuat memenuhi kriteria linear. Tabel 8 Coefficient regresi Model Enkripsi Dekripsi
(Constant) size (Constant) size
Unstandardized coefficients B Std. error -129.949 103.074 1770.597 10.216 -42.280 10.866 1108.840 0.677
Standardized coefficients Beta 1.000 1.000
t
Sig. -1.261 173.318 -3.891 1637.210
0.218 0.000 0.001 0.000
Pada Tabel 8 terdapat model persamaan regresi dengan koefisien konstanta dan koefisien variabel yaitu: Y = -129.949 + 1770.597X; untuk proses enkripsi Y = - 42.28 + 1108.84X; untuk proses dekripsi
(6) (7)
Koefisien B dinamakan sebagai koefisien arah regresi dan menyatakan ratarata variabel Y untuk setiap perubahan variabel X. Perubahan ini merupakan pertambahan jika koefisien B bernilai positif dan penurunan jika B bernilai negatif. Sehingga dari persamaan tersebut dapat diterjemahkan sebagai berikut: Konstanta sebesar -129.949 pada persamaan regresi proses enkripsi menyatakan bahwa jika tidak ada nilai size maka nilai partisipasi sebesar -129.949. Konstanta sebesar -42.280 pada persamaan regresi proses dekripsi menyatakan bahwa jika tidak ada nilai size maka nilai partisipasi sebesar -42.280. Koefisien regresi X sebesar 1770.597 pada persamaan regresi proses enkripsi menyatakan bahwa setiap penambahan satu nilai size makan nilai pertisipasinya sebesar 1770.597.
22
Koefisien regresi X sebesar 1108.840 pada persamaan regresi proses dekripsi menyatakan bahwa setiap penambahan satu nilai size makan nilai pertisipasinya sebesar 1108.840. Pendugaan Running Time Dalam melakukan pendugaan nilai variabel running time menggunakan persamaan regresi yang telah didapat, perlu adanya identifikasi akurasi model regresi. Dapat dilihat dari hasil regresi menggunakan SPSS penulis menggunakan nilai standard error of estimate dengan ketentuan jika standard error of estimate < Std. deviation variabel y (running time), maka model regresi yang dihasilkan dapat digunakan dalam pendugaan running time. Nilai standard error of estimate dari proses enkripsi dan dekripsi berturut-turut dengan menggunakan mode CBC sebesar 0.049 dan 0.063, sedangkan nilai Std. deviation variabel running time sebesar 1.557 dan 1.739. Dari nilai tersebut didapat fakta bahwa proses enkripsi dengan mode CBC memiliki persentase kesalahan sebesar 3.14% dan tinggkat akurasi pendugaan model regresi sebesar 96.85%. Proses dekripsi memiliki tingkat kesalahan lebih besar yaitu 3.62% sehingga memiliki persntase akurasi yang tidak lebih baik yaitu 96.37%. Hasil ini terbilang baik dalam meramalkan sebuah nilai yang belum diketahui.
SIMPULAN DAN SARAN Simpulan Pengulangan identik pada setiap blok yang dienkripsi akan menghasilkan sebuah pola. Pola ini dapat ditebak jika seorang kriptanalis memiliki database yang cukup untuk menerka pola tersebut dengan frekuensi kemunculan dari setiap blok. Hal tersebut menunjukkan kurangnya ketangguhan dalam merahasiakan sebuah pesan. Berbeda dengan AES-ECB, AES-CBC menawarkan solusi bagi kekurangan tersebut. Proses XOR antara initialization vector (IV) dan plaintext atau plaintext dengan ciphertext sebelumnya mampu mengacak pesan yang disandikan, sehingga hasilnya akan lebih kompleks. Melihat dari hasil uji running time mode operasi CBC, secara tidak signifikan memang memakan waktu lebih lama dibanding mode ECB. Hal ini dibuktikan dengan pengujian statistik menggunakan metode independent sample T-test yang hasilnya menyatakan mean difference bernilai -0.0463. Nilai tersebut terbilang sangat kecil mengingat rataan untuk running time proses ECB dan CBC adalah 2.5763 dan 2.6226. Untuk kesimpulan akhir yang didapat bahwa meskipun proses penyandian yang lebih kompleks namun memberikan keamanan lebih dengan running time yang tidak terlalu berbeda, maka mode operasi CBC lebih baik digunakan pada algoritme kriptografi AES. Saran Kecepatan algoritme kriptografi AES sangat bergantung dengan ukuran file atau banyaknya bit data yang diproses. Jika data yang diproses dapat dikurangi
23
tetapi tidak mengubah keaslian dari plaintext, hal ini sangat berguna untuk mengurangi running time. Penggunaan kompresi data Huffman pada optimasi kecepatan running time dapat dilakukan pada penelitian berikutnya.
DAFTAR PUSTAKA Adiwidya BMD. 2009. Algoritma AES (Advanced Encryption Standard) dan penggunaanya dalam penyandian pengompresian data [laporan]. Bandung (ID): Institut Teknologi Bandung. Giri EP. 2004. Analisis algoritme dan waktu enkripsi versus dekripsi pada Advanced Encryption Standard [skripsi]. Bogor (ID): Institut Pertanian Bogor. Hidayah AN. 2011. Metode Theil pada analisis regresi linear sederhana nonparametrik [skripsi]. Semarang (ID): Universitas Negeri Semarang. Lung C, Munir R. 2004. Studi dan implementasi advanced encryption standard dengan empat mode operasi blok cipher [laporan]. Bandung (ID): Institut Teknologi Bandung. Menezes A, Van Oorschot P, Vanstone S. 1996. Handbook of Applied Cryptography. Massachusetts (US): CRC Press. Rachman AK. 2010. Perbandingan mode cipher electronik codebook dan cihper block chaining dalam pengamanan data. Jurnal Teknologi. 3(1): 84–89. Stallings W. 2003. Cryptography and Network Security Principles and Practice. Ed ke-3. New Jersey (US): Pearson Education. Surian D. 2006. Algoritma kriptografi AES Rijndael. Jurnal Teknik Elektro. 8(2): 97–101. Walpole RE. 1992. Pengantar Statistik. Ed ke-3. Jakarta (ID): Gramedia.
24
Lampiran 1 Tabel s-box (Stallings 2003)
Lampiran 2 Tabel inverse s-box (Stallings 2003)
25
Lampiran 3 Simulasi uji keamanan PLAINTEXT: satu dua tiga empat lima enam tujuh delapan KEY: 1234567812345678 PRA PROSESSING transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 70 61 74 20 6c 69 6d 61 20 65 6e 61 6d 20 74 75 6a 75 68 20 64 65 6c 61 70 61 6e transformasi plaintext ke dalam bilangan heksadesimal setelah padding: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 70 61 74 20 6c 69 6d 61 20 65 6e 61 6d 20 74 75 6a 75 68 20 64 65 6c 61 70 61 6e 05 05 05 05 05 transformasi key ke dalam bilangan heksadesimal: 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 SKENARIO UJI 1 AES-ECB setelah proses penyandian pesan, akan menghasilkan ciphertext: Ç:õCR&¿>Ò˜ŠÈïèF¬ßýÿ`MþjÊs<ÉR@ºt¾ÕðdØ‚+¥I transformasi ciphertext ke dalam bilangan heksadesimal: c7 1f 3a f5 0c 43 52 26 bf 3e d2 98 8a c8 ef 8e e8 46 ac df fd ff 7f 60 4d c3 be 6a ca 73 8e 3c c9 52 40 ba 74 be 90 08 d5 f0 64 d8 82 2b a5 49 pengubahan satu bit blok ciphertext pada blok ciphertext kedua, bit heksadesimal pertama (e8 menjadi e9): satu dua tiga em‡š3Fã•ñ%ü’ˆ”Zjuh delapan transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 87 9a 33 15 46 e3 8d f1 25 fc 92 8d 88 07 94 5a 6a 75 68 20 64 65 6c 61 70 61 6e penambahan blok ciphertext setelah blok ciphertext kedua (74 61 6d 62 61 68 20 62 6c 6f 63 6b 20 75 6a 69): satu dua tiga empat lima enam tu H vrY‹ô\ º›B¤• juh delapan
26
Lampiran 3 Lanjutan transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 70 61 74 20 6c 69 6d 61 20 65 6e 61 6d 20 74 75 07 48 15 76 72 59 8b f4 5c 09 ba 9b 42 a4 90 0b 6a 75 68 20 64 65 6c 61 70 61 6e penghilangan satu blok ciphertext pada blok ciphertext kedua: satu dua tiga emjuh delapan transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 6a 75 68 20 64 65 6c 61 70 61 6e SKENARIO UJI 2 AES-CBC initialization vector: 00 11 22 33 44 55 66 77 88 99 aa bb cc dd e eff setelah proses penyandian pesan, akan menghasilkan ciphertext: —î ¾¾c¸0êyÆM«Ú`p¨Õ‘¸¸6Øèïg\U9 ›µ \±më ZjG„RS‡K transformasi ciphertext ke dalam bilangan heksadesimal: 97 ee ad 11 be be 63 b8 30 ea 79 c6 4d ab da 60 70 a8 d5 91 b8 b8 36 d8 e8 ef 67 5c 55 39 10 9b b5 08 5c b1 6d eb 09 1f 5a 6a 47 84 52 53 87 4b pengubahan satu bit blok ciphertext pada blok ciphertext kedua, bit heksadesimal pertama (70 menjadi 71): satu dua tiga emÁ÷Œ$`> øLƒŽ÷µ^5kuh delapan transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d c1 f7 8c 24 60 3e 20 f8 4c 83 8e f7 07 b5 5e 35 6b 75 68 20 64 65 6c 61 70 61 6e penambahan blok ciphertext setelah blok ciphertext kedua (74 61 6d 62 61 68 20 62 6c 6f 63 6b 20 75 6a 69): satu dua tiga empat lima enam tuwàÀçÊá½,´æÝÇ •€•n¼ÐÓ½µzÛôáj pI•÷ transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 70 61 74 20 6c 69 6d 61 20 65 6e 61 6d 20 74 75
27
Lampiran 3 Lanjutan 77 e0 c0 e7 ca e1 bd 2c b4 e6 dd c7 17 9d 80 90 6e bc d0 d3 bd b5 7a db f4 e1 6a 17 70 49 7f f7 penghilangan satu blok ciphertext pada blok ciphertext kedua: satu dua tiga em•3 bc9¨dpº—Ïþ transformasi plaintext ke dalam bilangan heksadesimal: 73 61 74 75 20 64 75 61 20 74 69 67 61 20 65 6d 8d 33 10 a0 62 63 39 01 a8 64 70 ba 1d 97 cf fe
28
Lampiran 4 Algoritme operasi perkalian finite field GF(28) 02 [01 01 03
03 02 01 01
01 03 02 01
04 01 d4 01] [ bf ] = [66] 81 03 5d e5 02 30
Untuk mendapatkan hasil blok 04 dilakukan perhitungan sebagai berikut: 04=(02.d4)+(03.bf)+(01.5d)+(01.30) -
(02.d4) Mulai dengan mengubah nilai heksadesimal 𝑑4 menjadi bilangan biner, lakukan 1-bit left shift kemudian di-XOR-kan dengan (0001 1011) berdasarkan aturan perkalian finite field GF(28) dalam buku tulisan Stalling pada tahun 2003. d4=1101 0100 (02.d4)=1101 0100≪1 (02.d4)=1010 1000 ⊕0001 1011 (02.d4)=1011 0011
-
(03.bf) Mulai dengan mengubah nilai heksadesimal 𝑏𝑓 menjadi bilangan biner. Dalam melakukan perkalian dengan 03, dapat diubah menjadi sebagi berikut: (03.bf)=bf⊕(02.bf) (03.bf)=1011 1111⊕1011 1111≪1 (03.bf)=1011 1111⊕0111 1110 ⊕0001 1011 (03.bf)=1101 1010
-
(01.5d) dan (01.30) Pada dasarnya perkalian dengan angka 1 tidak merubah hasil apapun, oleh karna itu bagian ini hanya perlu mengubah nilai menjadi bilangan biner. 5d=0101 1101 30=0011 0000
Langkah selanjutnya adalah meng-XOR-kan semua hasil tersebut. 04=(02.d4)+(03.bf)+(01.5d)+(01.30) 04=1011 0011⊕1101 1010⊕0101 1101⊕0011 0000 04=0000 0100 04=04 (heksadesimal)
29
Lampiran 5 Tabel RC[j] untuk AES-128 Representasi RC[j] dalam heksadesimal sedangkan j dalam desimal. Konstruksi Tabel RC[j]: Inisialisasi RC[1] = 01 Transformasi RC[j] = 2 * RC[j-1] Dengan sifat operasi * merupakan perkalian yang terdefinisikan pada field GF(28). j = 1 diinisialisasi RC[1] = 01 j=2 RC[2]=2*RC[2-1] j=2*RC[1] j=2*01 j=02 *** j=9 RC[9]=2*RC[9-1] j=2*RC[8] j=2*80 j=100 (dihasilkan 3 digit heksadesimal, terjadi overflow digit) maka di-modulo-kan oleh polinomial irreducible pembangkit bagi finite field GF (28) polinomial irreducible pembangkit pada kasus ini adalah m(x)=x8 +x4 +x3 +x+1 m(x)=100011011 (dalam biner) m(x)=11B (dalam heksadesimal) =100 mod 11B=1B RC[9]=1B j=10 RC[10]=2*RC[10-1] j=2*RC[9] j=2*1B j=36
30
RIWAYAT HIDUP Penulis lahir pada tanggal 14 Maret 1991 di Kota Bogor. Penulis merupakan anak kedua dari dua bersaudara dari pasangan Bapak Ucin Muhammad Nuryasin dan Ibu Isma Nurmala Ghani. Penulis menyelesaikan pendidikan menengah atas di SMA Negeri 7 Bogor pada tahun 2009. Pada tahun yang sama penulis mendapat kesempatan masuk Diploma IPB melalui jalur USMI (Undangan Seleksi Masuk IPB) di Program Keahlian Teknik Komputer. Pada masa akhir perkuliahannya, Penulis melaksanakan praktik kerja lapangan (PKL) di Telkom Flexi Jakarta Pusat selama kurang lebih 40 hari kerja (1 Februari – 28 Maret 2012). Kemudian penulis melanjutkan pendidikan Program Sarjana Ilmu Komputer Alih Jenis Departemen Ilmu Komputer FMIPA IPB pada tahun 2012
31