APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN ALGORITMA RIJNDAEL Makalah Seminar Tugas Akhir Virgan R.Y.1, Agung B.P.2, Aghus Sofwan2 Mahasiswa dan Dosen Jurusan Teknik Elektro, Fakultas Teknik, Universitas Diponegoro, Jl. Prof. Sudharto, Tembalang, Semarang, Indonesia 1 2 ABSTRAK Keamanan jaringan komputer merupakan hal yang sangat penting karena akses internet terbuka bebas bagi siapapun. Setiap data yang dikirim dan diterima di internet sangat mudah diketahui oleh siapapun. Sehingga diperlukan pengamanan lebih terhadap data -data penting yang akan dilewatkan pada jaringan internet. Aplikasi enkripsi dekripsi dapat digunakan untuk mengamankan data yang penting dan berharga. Suatu berkas dapat dienkripsi atau menjadi ciphertext menggunakan suatu kunci dan dapat secara aman dipertukarkan tanpa khawatir tentang kerahasiaan isi berkas tersebut. Dekripsi dengan kunci akan mengolah berkas terenkripsi menjadi plaintext atau berkas semula. Algoritma Rijndael sebagai standar dalam pengamanan data dapat menambah efisiensi waktu dan keamanan, dengan algoritma ini dapat dibangun sebuah aplikasi enkripsi dan dekripsi yang ringan dan dapat diandalkan. Kata-kunci: enkripsi, dekripsi, kunci, plaintext, ciphertext I. 1.1 PENDAHULUAN Latar Belakang Berkembangnya teknologi komputer mengubah cara manusia dalam menyelesaikan perkerjaan dalam segala bidang. Keamanan data pada komputer menjadi hal yang penting. Kriptografi adalah ilmu yang digunakan untuk menjaga keamanan dari pihak yang tidak memiliki hak akses terhadap suatu data, baik data berupa e-mail, dokumen, maupun berkas pribadi. Kriptografi memiliki berbagai algoritma dengan kelebihan dan kekurangan masing-masing. Algoritma AES atau Rijndael resmi menjadi standar Federal Information Protections Standards Publication 197 (FIPS-197) pada tahun 2001[8], ditujukan untuk mengganti DES yang memiliki tingkat keamanan yang tidak lagi memadai. Visual Basic 2005 yang merupakan salah satu bahasa pemrograman .NET menyediakan fasilitas penggunaan algoritma Rijndael sebagai pembangun aplikasi enkripsi dan dekripsi yang sederhana serta dapat disesuaikan dengan kebutuhan pengguna. 3. 4. Aplikasi dirancang untuk digunakan pada sistem operasi Windows XP. Analisis dan desain yang dilakukan dengan pendekatan berorientasi objek. II. DASAR TEORI 2.1 .NET Framework dan Visual Basic 2005 2.1.1 .NET Framework Gambar 1 .NET Framework .NET membagi sebuah platform sistem operasi (Linux, Windows, MacOS, dan sebagainya) menjadi dua lapisan, yaitu lapisan pemrograman dan lapisan eksekusi. .NET merupakan sebuah lapisan pemrograman yang dikendalikan dan dimiliki secara penuh oleh Microsoft. 1.2 Tujuan Tujuan dalam tugas akhir ini adalah membuat program aplikasi enkripsi dan dekripsi untuk berbagai jenis berkas dengan menggunakan algoritma Rijndael (AES), yang dapat menampilkan waktu eksekusi serta dapat mengatur ukuran panjang kunci dan ukuran blok berkas. 1. Mengeksekusi Kode Program Pustaka kelas dasar (base class library) merupakan setengah dari persamaan. Setelah kode program yang berinteraksi dengan kelas ditulis, pemrogram masih harus menjalankannya. Proses ini memiliki masalah yang rumit, untuk menghilangkan ketergantungan terhadap suatu platform berarti menghilangkan ketergantungan terhadap prosesor. Ketika membuat aplikasi untuk Windows, aplikasi tersebut dijamin akan berjalan diatas sebuah chip Intel x86. Dengan .NET, Microsoft tidak ingin membuat jaminan ini. 1.3 Pembatasan Makalah Pada Tugas Akhir ini pembahasan akan dibatasi pada halhal berikut ini : 1. Tugas akhir ini membahas mengenai pembuatan aplikasi enkripsi dekripsi dengan algoritma Rijndael (AES). 2. Bahasa pemrograman yang digunakan dalam membuat aplikasi adalah bahasa pemrograman Visual Basic.NET. 1 Imports System.Security Imports System.Security.Cryptography Karena mungkin saja chip yang dominan di tahun 2008 adalah chip Transmeta, atau sesuatu yang mungkin belum pernah muncul sebelumnya. Yang harus dilakukan untuk mengatasi hal ini adalah mengabstraksi .NET dari prosesor, caranya sama dengan .NET diabstraksi dari implementasi subsistem yang mendasarinya. Bahasa pemrograman terletak diantara bahasa yang dipakai orang – orang setiap harinya dan bahasa yang dipahami oleh komputer itu sendiri. Bahasa yang digunakan oleh komputer adalah bahasa mesin (terkadang disebut instruksi mesin atau bahasa mesin) dan seluruhnya terdiri atas nol dan satu, masing – masing berhubungan dengan ada tidaknya arus listrik yang mengalir pada suatu chip atau bagian tertentu dari chip tersebut. Ketika pengguna PC menggunakan prosesor Intel atau prosesor yang sebanding, bahasa ini lebih khusus dikenal sebagai instruksi mesin x86. Bila pembuat program menulis sebuah aplikasi dengan Visual Basic 6, maka aplikasi tersebut harus dikompilasi menjadi instruksi – instruksi mesin x86 sebelum dapat disebarkan. Kode mesin ini akan dapat dipasang dan dijalankan di atas mesin yang mendukung instruksi x86 dan juga menjalankan Windows. Ketika pembuat program menulis aplikasi dengan Visual Basic 2005, meskipun kode masih harus dikompilasi, namun kode tersebut tidak langsung dikompilasi menjadi instruksi x86, karena hal tersebut akan berarti program hasil kompilasi cuma akan berjalan diatas prosesor yang mendukung bahasa ini dengan kata lain, program cuma akan berjalan diatas prosesor Intel dan yang kompatibel dengannya. Kompilasi membuat sesuatu yang disebut Microsoft Intermediate Language (MSIL). Bahasa ini tidak bergantung kepada prosesor manapun, karena bahasa ini merupakan sebuah lapisan diatas kode mesin yang tradisional. Kode MSIL tidak akan berjalan diatas prosesor manapun, karena prosesor tidak mengerti instruksi MSIL. Untuk menjalankan kode, MSIL harus dikompilasi lebih jauh, sebagaimana terlihat pada Gambar 2, dari kode MSIL menjadi kode asal yang dapat dimengerti prosesor. Kelas enkripsi akan bekerja sama dengan kelas streaming/aliran data kriptografi yang disebut CryptoStream. CryptoStream akan mengikat objek kriptografi agar dapat digunakan bersama, artinya suatu output dari satu objek kriptografi dapat secara langsung diarahkan sebagai input dari objek kriptografi lainnya tanpa perlu menyimpan hasil output ke objek perantara. Hal ini akan menambah performa secara signifikan jika mengenkrip atau mendekrip data yang ukurannya besar. Misalnya untuk enkripsi, langkah-langkahnya sebagai berikut: 1. Byte-byte yang masuk berasal dari input stream/aliran data input (misalnya file yang tidak dienkrip dalam disk). 2. Byte-byte diberikan ke stream enkripsi, yang berhubungan dengan output stream (contohnya, file yang akan menangani enkripsi data). 3. Stream enkripsi akan mengenkrip byte-byte dan secara otomatis akan menempatkan hasilnya dalam output stream yang berhubungan. 2.2 Algoritma Rijndael (AES) Dalam kriptografi, Anvanced Encryption Standard (AES), juga dikenal sebagai Rijndael, adalah sebuah block cipher yang dijadikan standar enkripsi oleh pemerintah Amerika Serikat. Enkripsi ini diharapkan juga digunakan secara luas di seluruh dunia dan dianalisa secara luas, seperti pada pendahulunya , Data Encryption Standard (DES). Rijndael (AES) diumumkan oleh National Institute of Standards and Technology (NIST) pada tanggal 26 Nopember 2001, setelah lima tahun proses standardisasi. Metode enkripsi ini menjadi standar secara efektif mulai tahun 2002. Pada tahun 2006, AES adalah salah satu algoritma populer yang digunakan dalam kriptografi kunci simetris. Metode enkripsi ini dikembangkan oleh dua kriptografer asal Belgia, Joan Daemen dan Vincent Rijmen, dan diajukan sebagai kandidat dalam proses seleksi AES dengan nama “Rijndael”, yang merupakan gabungan dari nama penemunya. Algoritma Rijndael (AES) memiliki beberapa panjang kunci, 128, 192, dan 256 bit, atau maksimal 32 bytes kunci. Proses enkripsi Rijndael memiliki parameter masukan in = 16 byte, parameter keluaran out = 16 byte, serta array 1-dimensi w sebesar 44 byte untuk kunci 128 bit. AES beroperasi diatas sebuah array 4 × 4 byte, yang disebut state. Gambar 2 Common Language Runtime (CLR) 2. Kelas - Kelas Enkripsi .NET Kelas-kelas enkripsi dalam .NET framework disimpan dalam namespace System.Security.Cryptography, dan untuk menggunakannya pada aplikasi, pada program harus dilakukan referensi memakai pernyataan Imports berikut: 2 Tabel 1 Berbagai varian AES dan ukuran parameter yang menyertai. AES 128 AES 192 AES 256 Keterangan Panjang Kunci (Nk) 16 byte 24 byte 32 byte Panjang kunci (bit)/8 Ukuran Blok Plaintext(Nb) 16 byte 16 byte 16 byte Ditetapkan Jumlah Ronde(Nr) 10 14 Ukuran Kunci Ronde 16 byte 16 byte 16 byte Sama dengan Nb Ukuran kunci diperpanjang (w) 176 byte 240 byte 12 208 byte Ditetapkan w =(Nb *(Nr+1)) Proses yang dilakukan setiap rondenya identik (dari ronde ke-0 sampai dengan ronde ke Nr-1), kecuali untuk ronde terakhir Nr. Proses yang identik tersebut terdiri atas SubBytes(), ShiftRows(), MixColumns(), dan AddRoundKey(). Sedangkan pada ronde terakhir Nr tidak dilakukan fungsi MixColumns(). Array 4 x 4 byte plaintext yang disebut state dioperasikan XOR dengan kunci, kemudian diolah sebanyak 9 ronde dengan operasi SubBytes, ShiftRows, MixColumns, AddRoundKey. Tiap ronde akan memilki round key yang diturunkan dari kunci utama. Pada ronde terakhir (ronde 10) tidak dilakukan proses MixColumns, keseluruhan proses enkripsi ini akan mengasilkan cipher 4 x 4 byte. Proses enkripsi digambarkan sebagai berikut: Gambar 4 Bagan proses dekripsi 1. AddRoundKey Gambar 5 Tahap AddRoundKey Dalam tahap AddRoundKey, setiap byte dari state digabungkan dengan sebuah byte dari sub-kunci ronde, penggabungan ini menggunakan operasi XOR (⊕). Untuk setiap rondenya, sebuah sub-kunci diturunkan dari kunci utama menggunakan penjadwalan kunci (Key Scheduling), setiap kunci mempunyai panjang yang sama dengan state. 2. SubBytes() Gambar 3. Bagan proses enkripsi Proses dekripsi digambarkan sebagai berikut: Gambar 6 Tahap SubBytes Dalam tahap SubBytes, setiap byte dalam state diganti dengan masukannya dalam sebuah tabel lookup 8bit, S; bij = S(aij), tabel tetap ini disebut S-box (singkatan 3 dari Subtitution box – kotak subtitusi). Operasi ini akan memberikan prinsip non-linieritas pada cipher. S-box yang digunakan diturunkan dari fungsi invers dalam GF(28), yang diketahui mempunyai sifat non-linieritas yang bagus. Untuk menghindari serangan yang berdasarkan sifat aljabar sederhana, S-box dibangun dengan menggabungkan fungsi invers dengan sebuah transformasi affine yang dapat dibalik. S-box juga dipilih untuk menghindari adanya nilai tetap, dan juga adanya nilai tetap yang berlawanan. Tabel 2 S-box Rijndael 00 10 02 03 04 05 06 07 08 09 a0 b0 c0 d0 e0 f0 0 63 ca b7 04 09 53 d0 51 cd 60 e0 e7 ba 70 e1 8c 1 7c 82 fd c7 83 d1 ef a3 0c 81 32 c8 78 3e f8 a1 2 77 c9 93 23 2c 00 aa 40 13 4f 3a 37 25 b5 98 89 3 7b 7d 26 c3 1a ed fb 8f ec dc 0a 6d 2e 66 11 0d 4 f2 fa 36 18 1b 20 43 92 5f 22 49 8d 1c 48 69 bf 5 6b 59 3f 96 6e fc 4d 9d 97 2a 06 d5 a6 03 d9 e6 6 6f 47 f7 05 5a b1 33 38 44 90 24 4e b4 f6 8e 42 7 c5 f0 cc 9a a0 5b 85 f5 17 88 5c a9 c6 0e 94 68 8 30 ad 34 07 52 6a 45 bc c4 46 c2 6c e8 61 9b 41 9 01 d4 a5 12 3b cb f9 b6 a7 ee d3 56 dd 35 1e 99 a 67 a2 e5 80 d6 be 02 da 7e b8 ac f4 74 57 87 2d b 2b af f1 e2 b3 39 7f 21 3d 14 62 ea 1f b9 e9 0f c fe 9c 71 eb 29 4a 50 10 64 de 91 65 4b 86 ce b0 d d7 a4 d8 27 e3 4c 3c ff 5d 5e 95 7a bd c1 55 54 e ab 72 31 b2 2f 58 9f f3 19 0b e4 ae 8b 1d 28 bb 4. MixColumns Gambar 8 Tahap MixColumns f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16 Tahap MixColumns dapat dilakukan dengan mengalikan empat angka dari kolom state dalam GF(28) dengan matriks berikut: [ ][ ] 2 1 1 3 3 2 1 1 1 3 2 1 1 1 3 2 a0 a1 a2 a3 Matriks tersebut juga dapat dinyatakan dengan: r0 = 2a0 + a3 + a2 + 3a1 r1 = 2a1 + a0 + a3 + 3a2 r2 = 2a2 + a1 + a0 + 3a3 r3 = 2a3 + a2 + a1 + 3a0 Karena perhitungan ini dilakukan dalam Galois Field milik Rijndael GF(28), maka operasi penjumlahan sebenarnya adalah operasi XOR. 3. ShiftRows Gambar 7 Tahap ShiftRows III. PERANCANGAN APLIKASI Tahap ShiftRows akan menggeser ke kiri secara berputar setiap bytes dalam setiap baris dari state. Jumlah pergeseran tiap byte berbeda untuk setiap barisnya. Baris pertama akan tetap pada keadaan semula. Setiap byte dari baris kedua digeser satu langkah ke kiri. Baris ketiga dan keempat digeser ke kiri sebanyak dua dan tiga langkah. Untuk ukuran blok 128 bit dan 192 bit pola pergeserannya sama. Dalam hal ini, setiap kolom dari state keluaran dari tahap ShiftRows disusun dari byte dari setiap kolom dari state masukan. Untuk ukuran blok 256 bit, baris pertama tidak berubah posisinya dan pergeseran untuk baris kedua, ketiga, dan keempat adalah 1 byte,2 byte, dan 4 byte. Perancangan aplikasi pada permainan catur dua pemain menggunakan Bluetooth ini menggunakan pendekatan berorientasi-objek (objek oriented approach). Langkah-langkah perancangan yang dilakukan pada permainan catur ini adalah sebagai berikut : 1. Diagram Use case, 2. Diagram Kelas, 3. Diagram Runtun, dan 4. Diagram Statechart. 3.1 Diagram Use Case Model Use Case adalah sebuah kumpulan dari diagram dan teks yang mendeskripsikan bagaimana keinginan pengguna berinteraksi dengan sistem. Diagram Use Case mengidentifikasikan fungsionalitas yang disediakan oleh sistem (Use Case), dan pengguna yang berinteraksi dengan sistem (aktor), dan gabungan antara pengguna dan fungsionalitas. Dalam perancangan use case diagram program, terdapat diagram use case utama, diagram use case enkripsi, diagram use case dekripsi, diagram use case pengaturan, serta diagram use case bantuan. 4 3.1.1 Use Case Utama Program Use Case utama memiliki langkah – langkah sebagai berikut: 1. Pengguna dapat memilih mode enkripsi dengan memilih Enkripsi. 2. Pengguna dapat memilih mode dekripsi dengan memilih Dekripsi. 3. Pengguna dapat mengatur program dengan memilih Pengaturan. 4. Pengguna dapat melihat bantuan program dengan memilih Bantuan. 5. Pengguna dapat memilih keluar program dengan memilih Keluar. dahulu.Use Case mengisi password berasosiasi include dengan Use Case enkripsi berkas, sehingga pengguna bisa mengisi password bila telah memilih enkripsi berkas. Menga tur Ukuran Blok <<include>> Me ngatur Panjang Kunci <<include>> Pengguna Memilih Berkas Enkripsi Berkas <<include>> Mengisi Password Keluar Program Gambar 10 Diagram Use Case enkripsi Enkripsi 3.1.3 Use Case Dekripsi Use Case dekripsi mempunyai langkah – langkah sebagai berikut: 1. Pengguna diharuskan memilih berkas yang akan dienkripsi terlebih dahulu dengan memilihPilih Berkas. 2. Pengguna dapat memulai proses dekripsi dan memasukkan password dengan memilih dekripsi. 3. Pengguna dapat keluar dari program dengan memilih keluar. Dekripsi Pengguna <<include>> Pengaturan Bantuan Keluar Gambar 9 Use Case Utama Program Gambar 9 menggambarkan diagram Use Case dengan satu aktor yaitu pengguna. Pengguna dapat melakukan enkripsi berkas dengan memilih enkripsi, serta dapat melakukan dekripsi berkas dengan memilih dekripsi. Selain enkripsi dan dekripsi pengguna juga dapat memilih Use Case Pengaturan untuk mengatur program, serta memilih Use Case Bantuan untuk mendapatkan bantuan yang berhubungan dengan program. Pengguna dapat memilih Keluar untuk keluar dari program. Memilih Berkas <<include>> Dekripsi Berkas Pengguna <<include>> Mengisi Password Keluar Program Gambar 11 Diagram Use Case Dekripsi Use Case dekripsi diperlihatkan oleh Gambar 11, dalam Use Case dekripsi pengguna dapat memilih berkas untuk didekripsi, melakukan dekripsi, mengisi password dan keluar dari program. Pengguna dapat mendeskripsi berkas bila telah memilih berkas karena Use Case dekripsi berasosiasi include dengan pilih berkas. Pengguna dapat mengisi password bila telah memilih dekripsi, hal ini karena Use Case mengisi password berasosiasi include dengan dekripsi berkas. 3.1.2 Use Case Enkripsi Use Case enkripsi mempunyai langkah – langkah: 1. Pengguna diharuskan memilih berkas yang akan dienkripsi terlebih dahulu dengan memilihPilih Berkas. 2. Pengguna dapat mengatur panjang kunci enkripsi (Nk) yang digunakan. 3. Pengguna dapat mengatur ukuran blok enkripsi (Nb) yang digunakan. 4. Pengguna dapat memulai proses enkripsi dan memasukkan password dengan memilih enkripsi. 5. Pengguna dapat keluar dari program dengan memilih keluar. 3.1.4 Use Case Pengaturan Pada Use Case pengaturan dapat diatur hal – hal sebagai berikut: 1. Pengguna dapat memilih panjang kunci untuk enkripsi maupun dekripsi antara 128 bit, 192 bit, dan 256 bit dengan memilih panjang kunci. 2. Pengguna dapat menentukan ukuran blok berkas yang dienkripsi maupun yang didekripsi antara 128 bit, 192 bit , atau 256 bit dengan memilih ukuran blok. Gambar 10 adalah diagram Use Case dengan satu aktor yaitu pengguna. Pengguna dapat melakukan pengaturan panjang kunci dan ukuran blok, memilih berkas, enkripsi berkas, serta keluar dari program. Use Case enkripsi mempunyai asosiasi include dengan Use Case ukuran blok, panjang kunci, dan pilih berkas, hal ini berarti jika pengguna ingin melakukan enkripsi harus mengatur panjang kunci, ukuran blok, dan memilih berkas terlebih 5 3. 4. Pengguna dapat menampilkan tercatatnya password yang dimasukkan dengan memilih tampilkan pencatat kunci. Pengguna dapat menampilkan waktu eksekusi dengan memilih tampilkan waktu eksekusi. <<include>> M e ngatur Uk uran Blok Enkriptor Berkas +Nama Berkas +Ekstensi Berkas +Direktori Berkas +enkripsi +sInputFile: string +sOutputFile: string +byteRJNKey: byte +byteRJNIV: byte +fsInput() dekripsi Pilih Be rk as Untuk Die nk rips i Dekriptor +sInputFile: string +sOutputFile: string +byteRJNKey: byte +byteRJNIV: byte <<include>> M e ngatur Panjang Kunci Pengaturan +keyLen: integer = 256 +blockLen: integer = 128 +bts128_Click() +bts192_Click() +bts256_Click() +btsBlock128_Click() +btsBlock192_Click() +btsBlock256_Click() +Waktu Eksekusi() +Pencatat Kunci() +fsOutput() Pe ngguna <<include>> Tam pilk an Tam pilk an Wak tu Ek s e k us i Plaintext <<include>> Tam pilk an Pe ncatat Kunci Ke luar Pr ogram Gambar 12 Diagram Use Case pengaturan Gambar 12 memperlihatkan diagram UseCase pengaturan. Pengguna dapat memilih untuk mengatur panjang kunci enkripsi dan mengatur ukuran blok enkripsi. Pada Use Case tampilkan, terdapat dua buah asosiasi include yaitu tampilkan pencatat kunci dan tampilkan waktu eksekusi, keduanya dapat dipilih bila pengguna telah memilih Use Case Tampilkan. Ciphertext +byteKey: byte +byteIV: byte +byteKey: byte +byteIV: byte +btnEnBrowse_Click() +NamaFileDienkrip() +btnEn_Click() +MengenkripFile() +btnDeBrowse_Click() +NamaFileDidekrip() +btnDe_Click() +MendekripFile() Gambar 13 Class Diagram aplikasi enkripsi - dekripsi Rijndael / AES 3.3 Diagram Runtun (Sequence Diagram ) Diagram runtun (sequence diagram) mendokumentasikan interaksi antara kelas – kelas untuk mencapai sebuah hasil. Model UML dirancang untuk pemrograman berorientasi obyek, maka komunikasi antar kelas dikenal sebagai pesan (messages). Diagram runtun menggambarkan obyek secara mendatar, sementara waktu secara tegak, dan memodelkan pesan – pesan antar kelas dalam bidang waktu[19]. Diagram runtun pada perancangan aplikasi terbagi menjadi diagram runtun keseluruhan program, diagram runtun enkripsi, diagram runtun dekripsi, diagram runtun pengaturan, serta diagram runtun bantuan. 3.2 Class Diagram Class diagram menggambarkan struktur kelas dari suatu sistem, termasuk method dan properties dari tiap tiap kelas. Class diagram juga menggambarkan hubungan yang dapat muncul antar kelas, seperti hubungan pewarisan (inheritance)[18]. Aplikasi enkripsi – dekripsi Rijndael ini memiliki kelas Berkas, Enkriptor, Dekriptor, Plaintext, Ciphertext, serta kelas Pengaturan. kelas Enkriptor dan Dekriptor menangani proses enkripsi dan dekripsi. Kelas Plaintext dan Ciphertext merupakan generalisasi dari kelas Berkas dan bertugas mengolah berkas menjadi Ciphertext atau Plaintext. Kelas Pengaturan bertugas mengatur panjang kunci, ukuran blok berkas dan menampilkan waktu eksekusi serta pencatat kunci. Diagram kelas aplikasi enkripsi – dekripsi Rijndael diperlihatkan oleh Gambar 13. 3.3.1 Diagram Runtun Keseluruhan Program Di dalam program enkripsi–dekripsi ini terdapat kelas-kelas yang saling berkomunikasi dalam penggunaannya. Komunikasi antar kelas tersebut dimodelkan oleh diagram runtun keseluruhan program. Gambar 14 merupakan diagram runtun keseluruhan program, yang meliputi enkripsi, dekripsi, dan pengaturan panjang kunci yang dilakukan oleh obyek Berkas, Pengaturan, Enkriptor dan Dekriptor. Obyek Berkas akan menangani pemilihan berkas dan mengirimkan berkas tersebut kepada enkriptor atau dekriptor. Obyek Pengaturan menangani panjang kunci dan ukuran blok. Untuk memulai proses enkripsi seorang pengguna harus memilih tab enkripsi dan memasukkan password, kemudian runtutan proses enkripsi dapat dimulai, proses dekripsi juga memiliki aturan yang sama. 6 : Pengguna : Pengaturan : Berkas : Enkriptor Pengguna untuk memasukkan password. Password yang dikirimkan kepada Enkriptor berfungsi sebagai kunci enkripsi dan proses enkripsi dapat dimulai. Bila proses enkripsi telah selesai maka Enkriptor akan mengirimkan pesan kepada pengguna bahwa proses enkripsi selesai. Diagram runtun proses enkripsi ditunjukkan oleh Gambar 15. : Dekriptor 1 : Atur Panjang Kunci() 2 : Panjang Kunci() 3 : Panjang Kunci Tampil 4 : Atur Ukuran Blok() 5 : Ukuran Blok() 6 : Ukuran Blok Tampil 7 : Pilih Berkas() 8 : Berkas() 3.3.3 Diagram Runtun Dekripsi Diagram runtun dekripsi akan menjelaskan proses dekripsi yang melibatkan obyek Dekriptor dan Berkas. Pertama - tama pengguna harus memilih dekripsi untuk memulai mode dekripsi, obyek Berkas akan mengirim pesan kepada pengguna untuk memilih berkas yang akan didekripsi. Berkas yang didekripsi akan dibaca awalan nama berkasnya oleh Dekriptor untuk mendapatkan nilai panjang kunci dan ukuran blok proses dekripsi. Setelah panjang kunci dan ukuran blok ditentukan, Enkriptor mengirim pesan kepada Pengguna untuk memasukkan password, password yang didapat akan dikirimkan kepada enkriptor sebagai kunci dekripsi. Bila proses dekripsi telah selesai maka Enkriptor akan mengirim pesan "dekripsi selesai" kepada Pengguna. 9 : Enkripsi() 10 : Kunci 11 : Password() 12 : Panjang Kunci() 13 : Ukuran Blok() 14 : Proses Enkripsi() 16 : Dekripsi() 15 : Berkas() 17 : Kunci 18 : Password() 19 : Panjang Kunci() 20 : Ukuran Blok() 22 : Tampilkan Waktu Eksekusi() 21 : Proses Dekripsi() 23 : Waktu Eksekusi Tampil 24 : Tampilkan Pencatat Kunci() 25 : Pencatat Kunci Tampil Gambar 14 Diagram Runtun Keseluruhan Program 3.3.2 Diagram Runtun Enkripsi : Pengguna : Pengaturan : Berkas : Pengguna : Berkas : Dekriptor 1 : Dekripsi() : Enkriptor 2 : Pilih Berkas 1 : Enkripsi() 3 : Berkas Dipilih() 4 : Baca "k=" dan "b=" dari Nama Berkas() 2 : Pilih Berkas 5 : Pengaturan Kunci dan Blok [Visible = False]() 3 : Berkas Dipilih() 6 [k = Panjang Kunci;b=Ukuran Blok] 4 : Atur Panjang Kunci() 7 : Mulai Dekripsi() 9 : Kunci 5 : Panjang Kunci() 8 : Proses Dekripsi() 10 : Password() 6 : Ubah Nama Berkas "k="() 11 : Proses Selesai() 7 : Atur Ukuran Blok() 8 : Ukuran Blok() 12 : Dekripsi Selesai 9 : Ubah Nama Berkas "b="() 10 : Mulai Enkripsi() 12 : Kunci Gambar 16 Diagram Runtun Dekripsi 11 : Proses Enkripsi() 13 : Password() 3.3.4 Diagram Runtun Pengaturan Diagram runtun pengaturan meliputi satu obyek saja yaitu obyek Pengaturan. Pengaturan menyediakan pilihan – pilihan panjang kunci, ukuran blok, pencatat kunci dan waktu eksekusi. Pengaturan kunci dan ukuran blok hanya akan muncul ketika pengguna memilih mode enkripsi. Pengguna dapat mengatur panjang kunci dan ukuran blok kemudian obyek Pengaturan akan mengolah panjang kunci tersebut sebagai panjang kunci dan ukuran blok baru menggantikan panjang kunci dan ukuran blok yang telah ditetapkan, yaitu panjang kunci 256 bit dan ukuran blok 128 bit. Proses enkripsi akan mengambil nilai panjang kunci dan ukuran blok dari pengaturan sebagai nilai Nk dan Nb untuk proses enkripsi. Pada proses dekripsi pengaturan panjang kunci dan ukuran blok tidak tersedia, sebagai gantinya panjang kunci dan ukuran blok diambil dari awalan nama berkas yang akan didekripsi. Saat pengguna memasukkan perintah 14 : Proses Selesai() 15 : Enkripsi Selesai Gambar 15 Diagram Runtun Enkripsi Proses enkripsi melibatkan obyek Enkriptor, Berkas, dan Pengaturan. Pada mode enkripsi pengguna harus memilih proses enkripsi terlebih dahulu. Enkriptor akan mengirim pesan kepada pengguna agar memilih berkas. Pengguna dapat mengatur panjang kunci dan ukuran blok dari bagian pengaturan sebelum proses enkripsi dimulai. Pemilihan panjang kunci dan ukuran blok akan menambahkan awalan khusus pada nama berkas, yaitu “k=[panjang kunci] bit” dan “b=[ukuran blok] bit”, hal ini bertujuan mempermudah pengaturan pada proses dekripsi. Ketika pengguna memulai proses enkripsi maka pesan “kunci dibutuhkan” akan dikirim oleh Enkriptor kepada 7 dekripsi maka Pengaturan akan mengirim pesan “Pengaturan Kunci dan Blok [visible = false]”. Kemudian Pengaturan akan mengirimkan pesan kepada dirinya sendiri untuk membaca “k=” dan “b=” dari nama berkas. Hasil panjang kunci dan ukuran blok baru dikirimkan kepada pengguna melalui pesan “Tampilkan Panjang Kunci” dan “Tampilkan Ukuran Blok”. Pengguna dapat memilih tampil tidaknya pencatat kunci melalui pilihan “Tampilkan Pencatat Kunci”, pesan balasan dari Pengaturan adalah “Pencatat kunci Ditampilkan” yang akan mengaktifkan pencatat kunci. Waktu eksekusi ditampilkan dengan mengirim pesan kepada obyek Pengaturan “Tampilkan Waktu Eksekusi”, maka Pengaturan akan menampilkan waktu eksekusi melalui pesan balasan “Waktu Eksekusi Ditampilkan”. Diagram runtun pengaturan dapat dilihat pada Gambar 17. : Pengguna statechart dekripsi, statechart pengaturan, dan statechart bantuan. 3.4.1 Diagram Top-level Statechart Top-level statechart meliputi beberapa state utama yang ada dalam perancangan program ini, yaitu state Form_Utama yang kemudian menuju ke choice point yang bercabang ke proses enkripsi, dekripsi, pengaturan, atau bantuan sesuai dengan pilihan pengguna. flag “Batal” atau “Keluar Program“ akan meninggalkan state dan menuju ke Final State. Gambar 18 menunjukkan top-level statechart program. Enkripsi Pengaturan Dekripsi Enkripsi Dekripsi Keluar Program Keluar Program Pengaturan Batal : Pengaturan 1 : Enkripsi() 2 : Pengaturan Kunci dan Blok [Visible = True] 3 : Atur Panjang Kunci() Gambar 18 Top-level statechart 5 : Panjang Kunci Ditampilkan 4 : Panjang Kunci() 6 : Atur Ukuran Blok() 8 : Ukuran Blok Ditampilkan 3.4.2 Diagram Statechart Enkripsi Statechart enkripsi meliputi keadaan – keadaan yang terdapat dalam state mode enkripsi yang digambarkan oleh top-level statechart. Beberapa state dalam perancangan mode enkripsi adalah state Pilih Berkas, state Atur Kunci dan Blok, state Password, dan state Enkripsi. State Pilih Berkas terletak pada Form_Utama, state ini memiliki self transition yang akan menjalankan aktivitas NamaFileDidekrip() bila kondisi btnEnBrowse telah dipilih atau diklik oleh mouse. State selanjutnya adalah Atur Kunci dan Blok yang juga terletak pada Form_Utama. State ini mengatur nilai panjang kunci dan ukuran blok, self transition memeriksa apakah ada bts* (bit tool strip pengatur panjang kunci) yang dipilih, btsBlock* (bit tool strip pengatur ukuran blok), bila tidak ada bts* dan btsBlock* yang dipilih akan menghasilkan nilai yang telah ditetapkan. Flag Password yang dikirimkan dari state Atur Kunci dan Blok akan mengaktifkan state Password yang terdapat pada frmPassEn. State password ini akan memeriksa apakah btnOK pada frmPassEn dipilih atau tidak, bila btnOk dipilih maka self transition akan memerintahkan state ini untuk melakukan aktivitas Password(). Setelah state password tidak aktif maka flag enkripsi akan dikirimkan kepada state enkripsi. flag ini akan membuat state enkripsi aktif. state ini akan memeriksa dengan self transition apakah btnEn dipilih, bila dipilih maka aktivitas MengenkripFile() harus dijalankan, kemudian aktivitas MengenkripFile() akan mengaktifkan RJNEngine() sebagai enkriptor. Statechart Enkripsi diperlihatkan oleh Gambar 19 7 : Ukuran Blok() 9 : Dekripsi() 10 : Pengaturan Kunci dan Blok [Visible = False] 11 : Baca "k=" dan "b=" dari Nama Berkas() 12 : Tampilkan Panjang Kunci 13 : Tampilkan Ukuran Blok 14 : Tampilkan Pencatat Kunci() 15 : Pencatat Kunci Ditampilkan 16 : Tampilkan Waktu Eksekusi() 17 : Waktu Eksekusi Ditampilkan Gambar 17 Diagram Runtun Pengaturan 3.4 Diagram Statechart Diagram statechart , yang juga dikenal sebagai diagram state machine, digunakan untuk mendokumentasikan bermacam – macam mode (state) yang dapat dilalui oleh sebuah kelas, dan event yang dapat menimbulkan sebuah transisi state[20]. Kata kunci do/ merupakan tanda suatu obyek akan melakukan kegiatan (activity) tersebut ketika suatu state sedang aktif. Notasi “/” melambangkan kegiatan yang harus dilakukan bila kondisi sebelum notasi “/” terpenuhi. Masing - masing state menuju final state dengan berbagai flag yang dapat berupa flag “keluar program”, flag “batal”, ataupun flag “selesai”. Beberapa statechart dalam perancangan aplikasi ini adalah diagram top-level statechart, statechart enkripsi, 8 if bts* Clicked/keyLen=bts*() Pilih Berkas : Berkas Kunci dan Blok do/NamaFileDienkrip() Dibatalkan if btnEnBrowse Clicked/ NamaFileDienkrip() Atur Kunci dan Blok : Pengaturan Password do/bts128_Click() do/bts192_Click() do/bts256_Click() do/btsBlock128_Click() do/btsBlock192_Click() do/btsBlock256_Click() Password : Enkriptor do/Password() Batal/Cancel Dibatalkan if nothing selected/ nilai keyLen default=256; block default=128 clicked” akan mengatur nilai panjang kunci keyLen menjadi nilai default yaitu 256 bit. Gambar 22 menampilkan diagram statechart pengaturan. if btnOK Clicked/Password() if btsBlock* Clicked/ blockLen=btsBlock*() Enkripsi if nothing Clicked/ keyLen = 256 if btnEn Clicked/MengenkripFile() Tampilkan Pencatat Kunci Enkripsi : Enkriptor Atur Kunci do/MengenkripFile() do/RJNEngine() Selesai Enkripsi Dibatalkan Atur Panjang Kunci do/bts128_Click() do/bts192_Click() do/bts256_Click() Selesai if btnEnBrowse Clicked/ setKey() visible = true if btsKlogNormal Checked/ gboPwdLogger visible = true Pencatat Kunci Gambar 20 Diagram statechart Enkripsi Waktu Eksekusi Tampilkan Waktu Eksekusi Atur Ukuran Blok Atur Blok 3.4.3 Diagram Statechart Dekripsi Dalam statechart dekripsi terdapat tiga state utama yaitu state Pilih Berkas, state Password, dan state Dekripsi. Ketiga state ini merupakan sub-state dari state dekripsi pada diagram top-level statechart . State Pilih Berkas akan menangani pemilihan berkas unruk didekripsi, self transition akan memeriksa apakah tombol btndeBrowse telah ditekan atau tidak. Bila telah ditekan maka aktivitas NamaFileDidekrip() dijalankan. Selanjutnya flag Kunci akan mengaktifkan state Password. State Password akan menangani masukan password untuk dekripsi. self transition akan memeriksa apakah tombol btnDe ditekan atau tidak, bila btnDe ditekan maka MendekripFile() dijalankan, kemudian aktivitas MendekripFile() akan mengatifkan RJNEngine() sebagai dekriptor. Diagram statechart dekripsi ditunjukkan oleh Gambar 21 Pilih Berkas : Berkas do/NamaFileDidekrip() Kunci Password: Dekriptor if btnDeBrowse clicked/NamaFileDidekrip() Batal/Cancel Dekripsi do/Password() if btnOKDe clicked/Password() if nothing Clicked/ blockLen = 128 do/btsBlock128_Click() do/btsBlock192_Click() do/btsBlock256_Click() Selesai if btnEnBrowse Clicked/ setBlock() visible = true Dibatalkan if btsExeShowl Checked/ lblTimeEn visible = true lblTimeDe visible = true picRunEn visible= true picRunDe visible = true Gambar 22 Diagram statechart pengaturan IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Aplikasi Pada implementasi aplikasi ini akan dijelaskan kegunaan dari tampilan yang ada pada aplikasi. Pada aplikasi ini dibagi menjadi beberapa bagian yaitu tab enkripsi, dekripsi, dan pengaturan. 4.1.1 Enkripsi Pada bagian ini merupakan tampilan pertama kali saat aplikasi dijalankan. Tampilan utama terdiri atas tab enkripsi, dekripsi, pengaturan, serta bantuan. Tab enkripsi adalah bagian dari Form_Utama yang tampil pertama kali ketika aplikasi dijalankan. Pada tab enkripsi ini pengguna dapat memilih berkas, dan mengenkripsi berkas yang telah dipilih sebelumnya. Berkas hasil enkripsi akan terletak pada direktori yang sama dan akan ditambahkan awalan “k=” dan “b=” sebagai penanda panjang kunci dan ukuran blok ketika enkripsi dilakukan, ekstensi berkas juga akan diubah menjadi .rjn. Dekripsi : Dekriptor do/MendekripFile() do/RJNEngine() if btnDe clicked/MendekripFile() Batal/Cancel Keluar Program Gambar 21. Diagram statechart dekripsi 3.4.4 Diagram Statechart Pengaturan Diagram statechart Pengaturan merupakan sub state dari state pengaturan pada top-level statechart. State yang termasuk di dalam statechart pengaturan adalah state Atur Panjang Kunci, state Atur Ukuran Blok, state Tampilkan Pencatat kunci, dan state tampilkan waktu eksekusi, semua state dalam statechart pengaturan berawal dari sebuah choice point. State Atur Panjang Kunci mempunyai fungsi sebagai pengisi nilai panjang kunci untuk enkripsi. self transition “if btnEnBrowse Clicked” memeriksa apakah tombol btnEnBrowse ditekan atau tidak, bila ditekan maka status bit tool strip setKey() visible = true (pengaturan kunci diperbolehkan). Bit tool strip setKey() mempunyai anggota bts128_Click(), bts192_Click(), dan bts256_Click(). State Atur Panjang Kunci menjalankan bts128_Click(), bts192_Click(), dan bts256_Click, untuk memeriksa nilai panjang kunci baru. Bila tidak ada tombol yang ditekan pada setKey() maka self transition “if nothing Gambar 23 Tab Enkripsi 4.1.2 Dekripsi Pada tab dekripsi pengguna dapat memilih berkas dari direktori yang diinginkan, dari berkas berekstensi .rjn, untuk kemudian mendekripsi berkas yang telah dipilih 9 jumlah ronde yang merupakan fungsi dari Nk dan Nb. Setiap state kunci terdiri atas Nk x 4 x 1 byte, dan setiap state blok terdiri atas Nb x 4 x 1 byte. Nk = 4 bila diubah kedalam bit berarti (4 x 4) x 8 bit = 128 bit. Nk atau Nb = 4, 6, 8 bila diubah kedalam bit berturut-turut adalah 128, 192, dan 256 bit. Pengujian kecepatan enkripsi dan dekripsi dilakukan pada komputer dengan konfigurasi prosesor 1492 Mhz, DDR RAM 512 Mb, dan Harddisk PATA 133 Mhz. Pengujian pertama dilakukan pada berkas berukuran 1 Mb (1.048.576 bytes), dan pengujian kedua dilakukan pada berkas berukuran 10 Mb (10.485.760 bytes). 1. Pengujian Waktu Eksekusi Enkripsi Beragam Panjang Kunci dan Ukuran Blok Gambar 24 Tab Dekripsi 4.1.3 Pengaturan Pada tab pengaturan pengguna dapat memilih panjang kunci enkripsi dari ukuran blok berkas yang diinginkan, menampilkan pencatat waktu eksekusi, serta menampilkan pencatat kunci. Dengan Pengujian waktu eksekusi berkas 1 mb dan 10 mb dilakukan sebanyak sepuluh kali, pada enkripsi berkas dengan variasi panjang kunci 128, 192, 256 bit serta ukuran blok 128,192,256 bit. Pengujian enkripsi pada berkas berukuran 1 Mb pada berbagai kombinasi ukuran panjang kunci dan ukuran blok berkas menghasilkan data rata-rata waktu eksekusi sebagai berikut: Tabel 4 waktu eksekusi rata-rata enkripsi berkas dengan ukuran 1 Mb Blok 128 Blok 192 Blok 256 Gambar 25 Tab Pengaturan Blok 128 Blok 192 Blok 256 14 Nk = 6 12 12 14 Nk = 8 14 14 14 Kunci 128 1 s 702 ms 1 s 765 ms 2 s 513 ms Kunci 192 1 s 863 ms 2 s 331 ms 2 s 550 ms Kunci 256 2 s 005 ms 2 s 472 ms 2 s 499 ms Dari tabel 4.dan 5 dapat dilihat panjang kunci 128 bit dan ukuran blok 128 bit membutuhkan waktu eksekusi paling sedikit, hal ini sesuai dengan jumlah ronde enkripsi yang dilakukan yaitu 10 kali. Jumlah ronde 12 kali terjadi bila Nk =128 dan Nb =192, Nk = 192 dan Nb = 128, Nk = 192 dan Nb = 192, kombinasi ini membutuhkan waktu eksekusi yang lebih lama dari Nk = 128 dan Nb =128. Waktu eksekusi paling lama terjadi pada jumlah ronde terbanyak yaitu 14 kali, yang tersusun dari kombinasi Nk = 128 dan Nb = 256, Nk = 192 dan Nb = 256, Nk = 256 dan Nb = 128, Nk = 256 dan Nb = 192, Nk = 256 dan Nb = 256. Tabel 3 Jumlah ronde Nr terhadap Nk dan Nb Nr Nb = 4 Nb = 6 Nb = 8 12 Kunci 256 210,5 ms 213,5 ms 209 ms Tabel 5 Waktu eksekusi rata-rata enkripsi berkas dengan ukuran 10 Mb Pengujian kecepatan dilakukan untuk mengetahui perbandingan antara panjang kunci, ukuran blok, dan waktu eksekusi. Panjang kunci yang semakin besar akan mempersulit berkas yang dienkripsi untuk dibuka secara paksa (brute force attack). Ukuran blok berkas yang semakin besar juga akan meningkatkan keamanan berkas. Ukuran panjang kunci dan blok juga mempengaruhi jumlah ronde yang dilakukan oleh algoritma Rijndael, dengan rincian sebagai berikut: 10 Kunci 192 199,8 ms 195 ms 216,5 ms Pengujian pada berkas berukuran 10 Mb menghasilkan data waktu rata-rata eksekusi yang ditunjukkan oleh Tabel 5. 4.2 Pengujian Aplikasi 4.2.1 Pengujian Enkripsi dan Dekripsi Nk = 4 Kunci 128 182,2 ms 196,6 ms 212 ms Nk adalah panjang kolom matriks kunci, Nb adalah panjang kolom matriks blok berkas, Nr adalah 10 Waktu eksekusi yang bersesuaian dengan jumlah ronde menunjukkan bahwa proses enkripsi telah sesuai dengan yang diharapkan. Semakin besar nilai panjang kunci atau ukuran blok, maka jumlah ronde akan semakin banyak, dan waktu eksekusi yang ditempuh juga semakin lama. Grafik waktu eksekusi enkripsi untuk berkas 1 Mb ditunjukkan oleh Gambar 26, waktu eksekusi berkas berukuran 10 Mb ditunjukkan oleh Gambar 27. 2. Pengujian Waktu Eksekusi Enkripsi Dengan Beragam Panjang Kunci dan Ukuran Blok Pengujian waktu eksekusi dekripsi pada berkas berukuran 1 Mb pada berbagai kombinasi ukuran panjang kunci dan ukuran blok berkas menghasilkan data rata-rata waktu eksekusi sebagai berikut: Tabel 6 Waktu eksekusi rata-rata dekripsi berkas dengan ukuran 1 Mb Enkripsi Berkas 1 Mb Blok 128 Blok 192 Blok 256 Blok 128 Kunci 256 Blok 256 0 100 200 Blok 128 Blok 192 Blok 256 300 Kunci 256 221,2 ms 230,7 ms 227,6 ms Kunci 128 1 s 710 ms 1 s 947 ms 2 s 206 ms Kunci 192 1 s 916 ms 1 s 915 ms 2 s 675 ms Kunci 256 2 s 203 ms 2 s 598 ms 2 s 433 ms Data hasil pengujian waktu eksekusi yang didapat dari berbagai kombinasi panjang kunci dan ukuran blok menunjukkan kesesuaian dengan jumlah ronde yang dilakukan. Untuk Nk = 128 dan Nb = 128 jumlah ronde adalah 10 kali, sehingga waktu eksekusinya paling cepat. Ronde dekripsi Nk = 192 dan Nb = 128, Nk =128 dan Nb = 192, Nk = 192 dan Nb = 192 adalah 12. Dekripsi dengan salah satu Nk atau Nb bernilai 256 mempunyai proses 14 ronde sehingga waktu eksekusinya paling lambat. Grafik waktu eksekusi dekripsi untuk berkas 1 Mb ditunjukkan oleh Gambar 28, dekripsi berkas 10 Mb ditunjukkan oleh Gambar 29. Gambar 26 Grafik rata – rata waktu eksekusi berkas 1 Mb terhadap panjang kunci dan ukuran blok Enkripsi Berkas 10 Mb Blok 128 Blok 192 Kunci 192 210,6 ms 209,1 ms 229,2 ms Pengujian pada berkas berukuran 10 Mb menghasilkan data rata-rata waktu eksekusi yang ditunjukkan oleh Tabel 7 Tabel 7 Waktu eksekusi rata-rata dekripsi berkas dengan ukuran 10 Mb Kunci 128 Kunci 192 Blok 192 Kunci 128 198,1 ms 210,6 ms 229,2 ms Kunci 128 Kunci 192 Kunci 256 Dekripsi Berkas 1 Mb Blok 256 Blok 128 0,000 0,500 1,000 1,500 2,000 2,500 3,000 Gambar 27 Grafik rata – rata waktu eksekusi berkas 10 Mb terhadap panjang kunci dan ukuran blok Kunci 128 Kunci 192 Kunci 256 Blok 192 Blok 256 0 100 200 300 Gambar 28 Grafik rata – rata waktu eksekusi dekripsi berkas 1 Mb terhadap panjang kunci dan ukuran blok 11 Dekripsi Berkas 10 Mb Blok 128 Kunci 128 Kunci 192 Kunci 256 Blok 192 Blok 256 0,000 0,500 1,000 1,500 2,000 2,500 3,000 Gambar 29 Grafik rata – rata waktu eksekusi dekripsi berkas 10 Mb terhadap panjang kunci dan ukuran blok Gambar 30 Tampilan dual pane xplorer2 Area 1 adalah preview window, area ini dapat menampilkan preview video, audio, teks, gambar, serta tampilan heksa dari berkas yang tidak didukung ekstensinya (misalnya .rjn). Area 2 adalah kolom explorer yang berisi direktori berkas awal dan berkas yang dienkripsi. Area 3 merupakan area berkas yang dienkripsi dan berkas hasil dekripsi. Direktori pengujian terpisah menjadi dua, karena bila digunakan satu direktori saja berkas hasil dekripsi akan menimpa berkas aslinya (karena nama dan ekstensi berkas kembali seperti semula). Selain memanfaatkan xplorer2, pengujian berkas ini juga menggunakan aplikasi Audacity sebagi penampil bentuk gelombang dari berkas audio, serta HxD sebagai penampil bentuk heksa dan penganalisa checksum berkas. 4.2.2 Black Box Testing Black Box Testing adalah teknik pengujian perangkat lunak dengan keadaan pengguna tidak mengetahui cara kerja item yang diuji. Dalam black box testing aplikasi ini dilakukan pengujian terhadap proses enkripsi dan dekripsi, serta keseuaian masukan dan keluaran yang diharapkan. Dari pengujian yang dilakukan, aplikasi telah berjalan sesuai dengan yang diharapkan. Tabel 8 menunjukkan pengujian terhadap enkripsi dan dekripsi. Tabel 8 Pengujian enkripsi dan dekripsi. Masukan Keluaran Yang Keluaran Aplikasi Diharapkan Berkas, password Berkas terenkripsi, ekstensi .rjn Berkas terenkripsi berekstensi .rjn Panjang kunci, Nama berkas ukuran blok enkripsi berawalan [“panjang kunci = n bit” ”ukuran blok = n bit”] Nama berkas berawalan [“panjang kunci = n bit” ”ukuran blok = n bit”] Berkas password Berkas terdekripsi, berkas dan ekstensi kembali seperti semula. .rjn, Berkas terdekripsi, berkas dan ekstensi semula 1. Pengujian Pada Berkas Teks Berkas yang akan dienkripsi bernama testtext.txt, berkas teks ini berisi tulisan biasa. Tampilan berkas awal pada xplorer2 ditunjukkan pada gambar 31 berikut ini: 4.2.3 Pengujian Pada Berkas Video, Audio, Gambar, dan Teks Pengujian enkripsi dan dekripsi pada berkas memanfaatkan bantuan dari aplikasi bernama xplorer2, sebuah aplikasi freeware yang mempunyai fungsi lebih masif daripada windows explorer bawaan Windows. Gambar 30 menunjukkan tampilan xplorer2. Gambar 31 Berkas teks sebelum dienkripsi Dari Gambar 31 bagian pane 1 dapat dilihat bahwa berkas terakhir diubah pada tanggal 28/06/07 jam 19:38. Preview window menampilkan isi dari berkas ini yaitu “Cryptography (or cryptology; derived from Greek kryptós "hidden," and the verb gráfo "write"). In modern times, it 12 has become a branch of information theory, as the mathematical study of information and especially ...” information and especially its transmission from place to place. ... 2. Berkas Teks Setelah Dienkripsi Berkas testtext.txt dienkripsi dan nama berkasnya berubah menjadi “[k=256 b=128]testtext_txt.rjn”. Gambar 32 menampilkan berkas teks yang telah dienkripsi. Gambar 33 Berkas teks setelah didekripsi 4. Pengujian Pada Berkas Video Berkas video yang digunakan adalah “Windows Movie Maker Sample File.wmv”, berkas video ini mempunyai tanggal pengubahan terakhir 23/08/2001 jam 19:00. Gambar 34 menampilkan berkas ini, data tanggal dan waktu pengubahan serta preview. Gambar 32 Berkas teks setelah dienkripsi Dari data waktu pengubahan didapat tanggal 28/06/07 jam 21:36. Preview window menampilkan data heksa yang menandakan berkas tersebut tidak didukung oleh xplorer2. Sebagian isi dari berkas “[k=256 b=128]testtext_txt.rjn” adalah sebagai berikut: IzÄVlo…ý&]×iŽ=©I²~Že†×ŒÙ¯¯¼Ìþˆk:HÀ^q| šÂÿKò†ñG3þÊÆyâ;HfYÆ‘Ô^¥Á¢À¶JÎj ìj·¯»å‰Z›8=ÎZRà?†(õ§¼ÈmÓG¼áScmµ³§s #<ä[¦.w‚·S˜ú Ö±‹_ÇÃý&#¢àpD¨BgWî/ºœY?–| ·%Úúïhà¼oª{á2»¨cE榡ü¨_ª ž¨W(Å·esÈÐ Òô|'QßSWªÙwí>½íJ¯¤ÚØ»d>˜ ˆV Â6:«u¦Õ¯ÀòÌjX5ížîÖ®º— ... Tampak bahwa tidak ada bagian dari berkas asli yang tampil pada berkas hasil enkripsi, dan teks asli telah berubah menjadi karakter – karakter yang tidak bermakna bagi pembaca. Gambar 34Berkas video sebelum dienkripsi Tampak pada gambar 4.18 pada preview window berkas video dapat dijalankan oleh Windows Media Player. 3. Berkas Teks Setelah Didekripsi Berkas teks yang telah didekripsi mempunyai nama dan ekstensi sama seperti berkas awal yaitu testtext.txt. Gambar 33 menunjukkan berkas hasil dekripsi serta data tanggal dan waktu pengubahan berkas. Dari gambar 33 dapat dilihat berkas testtext_txt.rjn setelah didekripsi kembali menjadi berkas semula yaitu “testtext.txt”, dengan tanggal pengubahan 26/08/07 jam 21:38. Preview window kembali menampilkan isi berkas yang berupa tulisan. Isi dari berkas telah kembali seperti semula, sebagian dari isi berkas hasil dekripsi adalah: Cryptography (or cryptology; derived from Greek kryptós "hidden," and the verb gráfo "write"). In modern times, it has become a branch of information theory, as the mathematical study of 5. Berkas Video Setelah Dienkripsi Berkas “Windows Movie Maker Sample File.wmv” dienkripsi dan nama berkasnya berubah menjadi “[k=256 b=128]Windows Movie Maker Sample File_wmv.rjn”. Gambar 35 menunjukkan berkas video yang telah dienkripsi dalam xplorer2. 13 menunjukkan tampilan berkas awal dan berkas hasil dekripsi dalam aplikasi Audacity. Gambar 35 Berkas video setelah dienkripsi Dari data waktu pengubahan didapat tanggal 28/06/07 jam 21:36. Preview window menampilkan data heksa yang menandakan berkas tersebut tidak didukung oleh xplorer2. Tidak tampilnya Preview juga menandakan bahwa berkas video tersebut sudah tidak dapat dijalankan pada Windows Media Player. Gambar 37 Perbandingan bentuk gelombang berkas Lips Stained Blue.mp3 sebelum dienkripsi dan sesudah didekripsi. Gambar 37 menunjukkan berkas awal (atas, 04/01/07 15:52) dan hasil dekripsi (bawah, 28/06/07 21:37) mempunyai bentuk gelombang yang sama dan keduanya dapat dijalankan secara normal. 6. Berkas Video Setelah Didekripsi Berkas “[k=256 b=128]Windows Movie Maker Sample File_wmv.rjn” setelah didekripsi kembali menjadi berkas semula yaitu “Windows Movie Maker Sample File.wmv”. Gambar 36 menampilkan berkas hasil dekripsi, data tanggal dan waktu pengubahan serta preview. 8. Berkas Audio Setelah Dienkripsi Berkas “Lips Stained Blue.mp3” dienkripsi dan nama berkasnya berubah menjadi “[k=256 b=128]Lips Stained Blue_mp3.rjn”. Gambar 38 menampilkan berkas “[k=256 b=128]Lips Stained Blue_mp3.rjn” dalam xplorer2. Gambar 36 Berkas video setelah didekripsi Dari gambar 36 didapat tanggal pengubahan yang berbeda dengan berkas awal, yaitu 26/08/07 jam 21:38. Hal ini menunjukkan bahwa berkas ini adalah berkas baru hasil dekripsi. Preview window menampilkan video dari berkas hasil dekripsi, yang berisi video yang sama dengan berkas video awal. Gambar 38 Berkas [k=256 b=128]Lips Stained Blue_mp3.rjn Dari data waktu pengubahan didapat tanggal 28/06/07 jam 21:36. Preview window menampilkan data heksa yang menandakan berkas tersebut tidak didukung oleh xplorer2. Tidak tampilnya Preview juga menandakan bahwa berkas video tersebut sudah tidak dapat dijalankan pada Windows Media Player. 7. Pengujian Pada Berkas Audio Berkas audio yang digunakan untuk pengujian ini adalah “Lips Stained Blue.mp3”. Audacity digunakan sebagai aplikasi pembanding sekaligus audio player bagi berkas awal dan berkas hasil dekripsi. Gambar 37 9. Pengujian Pada Berkas Gambar Berkas video yang digunakan adalah “websites.jpg”, berkas gambar ini mempunyai tanggal pengubahan terakhir 27/06/2007 jam 15:59. Gambar 39 14 menampilkan berkas ini, pengubahan serta preview. data tanggal dan waktu Gambar 41 Berkas gambar “websites.jpg” hasil dekripsi Dari gambar 41 didapat tanggal pengubahan yang berbeda dengan berkas awal, yaitu 26/08/07 jam 21:38. Hal ini menunjukkan bahwa berkas ini adalah berkas baru hasil dekripsi. Preview window menampilkan gambar dari berkas hasil dekripsi, yang berisi gambar yang sama dengan berkas gambar awal. Gambar 39 Berkas gambar “websites.jpg” sebelum dienkripsi 10. Berkas Gambar Dienkripsi Berkas “websites.jpg” dienkripsi dan nama berkasnya berubah menjadi “[k=256 b=128]websites_jpg.rjn”. Gambar 40 menunjukkan berkas video yang telah dienkripsi dalam xplorer2. 4.2.4 Pengujian Checksum MD-5 Berkas, Hasil Enkripsi, dan Hasil Dekripsi Pengujian checksum berkas menggunakan aplikasi HxD hex editor yang memilki fasilitas analisa checksum, dengan algoritma checksum MD-5. Nilai checksum ini akan digunakan untuk membandingkan dua berkas, yaitu berkas belum dienkripsi dan berkas hasil dekripsi. 1. Pengujian Checksum MD-5 Pada Berkas “Windows Movie Maker Sample File.wmv” Berkas “Windows Movie Maker Sample File.wmv” dibuka dengan HxD, kemudian untuk mengetahui checksum MD-5 dilakukan analisa dengan memilih menu “Analysis-Checksum/Digest”, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 42. Gambar 40 Berkas gambar dienkripsi Dari data waktu pengubahan didapat tanggal 28/06/07 jam 21:36. Preview window menampilkan data heksa yang menandakan berkas tersebut tidak didukung oleh xplorer2. 11. Berkas Gambar Setelah Didekripsi Berkas “[k=256 b=128]websites_jpg.rjn” setelah didekripsi kembali menjadi berkas semula yaitu “websites.jpg”. Gambar 41 menampilkan berkas hasil dekripsi, data tanggal dan waktu pengubahan serta preview. Gambar 42 Tampilan berkas “Windows Movie Maker Sample File.wmv” pada HxD 15 Dari Gambar 42 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas video belum dienkripsi adalah nilai berikut: MD-5: 632E81639738BBB4C45EE4C02031AD0E Dari Gambar 44 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas video hasil dekripsi adalah nilai berikut: MD-5: 632E81639738BBB4C45EE4C02031AD0E Sementara nilai checksum dari berkas video belum dienkripsi adalah: MD-5: 632E81639738BBB4C45EE4C02031AD0E Dari kedua hasil checksum yang didapat, dapat dilihat bahwa berkas hasil dekripsi sama dengan berkas video sebelum terenkripsi. 2. Pengujian Checksum MD-5 Pada Berkas “[k=256 b=128]Windows Movie Maker Sample File_wmv.rjn” Berkas video terenkripsi “[k=256 b=128]Windows Movie Maker Sample File_wmv.rjn” dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5. Dari Gambar 43 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas video terenkripsi adalah nilai berikut: MD-5: 3B824899132D269729BC91BC4651DF52 Dari hasil checksum yang didapat, berkas terenkripsi berbeda seluruhnya dengan berkas video awal sebelum terenkripsi. 4. Pengujian Checksum MD-5 Pada Berkas “Lips Stained Blue.mp3” Berkas “Lips Stained Blue.mp3” dibuka dengan HxD, kemudian dilakukan checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 45. Gambar 45 Tampilan berkas “Lips Stained Blue.mp3” pada HxD Dari Gambar 45 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas audio sebelum dienkripsi adalah nilai berikut: MD-5: 319C13BDFB508E4D04688A209A11C996 Gambar 43 Tampilan berkas “[k=256 b=128]Windows Movie Maker Sample File_wmv.rjn” pada HxD 3. Pengujian Checksum MD-5 Pada Berkas “[k=256 b=128]Windows Movie Maker Sample File.wmv” Hasil Dekripsi Berkas video terenkripsi “[k=256 b=128]Windows Movie Maker Sample File_wmv.rjn” didekripsi, akan menghasilkan berkas “Windows Movie Maker Sample File.wmv”, berkas ini dibuka dengan HxD, kemudian untuk dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 44. 5. Pengujian Checksum MD-5 Pada Berkas “[k=256 b=128]Lips Stained Blue_mp3.rjn” Berkas “Lips Stained Blue.mp3” yang dienkripsi menjadi “[k=256 b=128]Lips Stained Blue_mp3.rjn” dibuka dengan HxD, kemudian dilakukan checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 46. 16 7. Pengujian Checksum MD-5 Pada Berkas “websites.jpg” Berkas “websites.jpg” dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 48. Gambar 46 Tampilan berkas “[k=256 b=128]Lips Stained Blue_mp3.rjn” pada HxD Dari Gambar 46 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas audio terenkripsi adalah nilai berikut: MD-5: 71A991812AC22ADC3BEA39DA21FDDAAE Dari hasil checksum yang didapat, berkas terenkripsi berbeda seluruhnya dengan berkas audio awal sebelum terenkripsi. 6. Pengujian Checksum MD-5 Pada Berkas “Lips Stained Blue.mp3” Hasil Dekripsi Berkas audio terenkripsi “[k=256 b=128]Lips Stained Blue_mp3.rjn” didekripsi, akan menghasilkan berkas “Lips Stained Blue.mp3”, berkas ini dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 47. Gambar 48 Tampilan berkas “websites.jpg” pada HxD Dari Gambar 48 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas gambar sebelum dienkripsi adalah nilai berikut: MD-5: CAC2461DF18870227E59F8AC5F90BDB8 8. Pengujian Checksum MD-5 Pada Berkas “[k=256 b=128]websites_jpg.rjn” Berkas “websites.jpg” yang dienkripsi menjadi “[k=256 b=128]websites_jpg.rjn” dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 49. Gambar 47 Tampilan berkas hasil dekripsi “Lips Stained Blue.mp3” pada HxD Dari Gambar 47 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas audio hasil dekripsi adalah nilai berikut: MD-5: 319C13BDFB508E4D04688A209A11C996 Sementara nilai checksum dari berkas audio sebelum dienkripsi adalah: MD-5: 319C13BDFB508E4D04688A209A11C996 Dari kedua hasil checksum yang didapat, dapat dilihat bahwa berkas audio hasil dekripsi sama dengan berkas audio sebelum terenkripsi. Gambar 49 Tampilan berkas “[k=256 b=128]websites_jpg.rjn” pada HxD Dari Gambar 49 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas gambar terenkripsi adalah nilai berikut: MD-5: 1838964554496335DA31AA4A835E4872 Dari hasil checksum yang didapat, berkas terenkripsi berbeda seluruhnya dengan berkas gambar sebelum terenkripsi. 17 Dari Gambar 51 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas gambar sebelum dienkripsi adalah nilai berikut: MD-5: BEABE8D5A737930077EFBDE65B746E75 9. Pengujian Checksum MD-5 Pada Berkas “websites.jpg” Hasil Dekripsi Berkas terenkripsi “[k=256 b=128]websites_jpg.rjn” didekripsi, akan menghasilkan berkas “websites.jpg”, berkas ini dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5. Dari Gambar 50 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas gambar hasil dekripsi adalah nilai berikut: MD-5: CAC2461DF18870227E59F8AC5F90BDB8 Sementara nilai checksum dari berkas gambar sebelum dienkripsi adalah: MD-5: CAC2461DF18870227E59F8AC5F90BDB8 Dari kedua hasil checksum yang didapat, dapat dilihat bahwa berkas gambar hasil dekripsi sama dengan berkas gambar sebelum terenkripsi. 11. Pengujian Checksum MD-5 Pada Berkas “[k=256 b=128]testtext_txt.rjn” Berkas “testtext.txt” yang dienkripsi menjadi “[k=256 b=128]testtext_txt.rjn” dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 52. Gambar 52 Tampilan berkas “[k=256 b=128]testtext_txt.rjn” pada HxD Dari Gambar 52 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas teks terenkripsi adalah nilai berikut: MD-5: 9DBD128280B38960095510EAFE0C1017 Dari hasil checksum yang didapat, berkas terenkripsi berbeda seluruhnya dengan berkas teks sebelum terenkripsi. Gambar 50 Tampilan berkas hasil dekripsi “websites.jpg” pada HxD 10. Pengujian Checksum MD-5 Pada Berkas “testtext.txt” Berkas “testtext.txt” dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 51. 12. Pengujian Checksum MD-5 Pada Berkas “testtext.txt” Hasil Dekripsi Berkas terenkripsi “[k=256 b=128]testtext_txt.rjn” didekripsi, akan menghasilkan berkas “testtext.txt”, berkas ini dibuka dengan HxD, kemudian dilakukan analisa checksum MD-5, hasil dari checksum dan tampilan berkas ditunjukkan oleh Gambar 53. Gambar 51 Tampilan berkas “testtext.txt” pada HxD 18 1. Penanganan Kesalahan Berkas Belum Dipilih Aplikasi akan menampilkan pesan “Pilih Berkas Terlebih Dahulu” apabila pengguna belum memilih berkas untuk dienkripsi atau didekripsi, tapi telah menekan tombol enkripsi/dekripsi. Gambar 54 menunjukkan tampilan ketika pesan kesalahan ini ditampilkan. Gambar 53 Tampilan berkas hasil dekripsi “testtext.txt” pada HxD Dari Gambar 53 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas teks hasil dekripsi adalah nilai berikut: MD-5: BEABE8D5A737930077EFBDE65B746E75 Sementara nilai checksum dari berkas tekssebelum dienkripsi adalah: MD-5: BEABE8D5A737930077EFBDE65B746E75 Dari kedua hasil checksum yang didapat, dapat dilihat bahwa berkas teks hasil dekripsi sama dengan berkas teks sebelum terenkripsi. Gambar 54 Tampilan pesan kesalahan berkas belum dipilih 2. Penanganan Kesalahan Password Yang Tidak Sesuai Aplikasi akan menampilkan pesan eksepsi apabila pengguna dalam proses dekripsi berkas memasukkan password yang tidak sama dengan enkripsi. Gambar 55 menunjukkan tampilan ketika pesan eksepsi ini ditampilkan. 4.2.5. Pengujian Penanganan Kesalahan Penanganan kesalahan ditangani oleh aplikasi untuk menghindari hang, crash, atau not responding selama pengoperasian. Pengujian penanganan kesalahan telah menghasilkan keluaran yang sesuai, sehingga memperkecil kemungkinan program crash atau not responding selama pengoperasiannya. Tabel 9 menunjukkan hasil pengujian penanganan kesalahan. Tabel 9 Pengujian penanganan kesalahan Masukan Keluaran Tombol ditekan, dipilih enkripsi/dekripsi Menampilkan pesan “Pilih berkas belum Berkas Terlebih Dahulu” Password yang tidak sesuai Gambar 55 Tampilan pesan kesalahan ketika password yang tidak sesuai dimasukkan dalam proses dekripsi Menampilkan pesan eksepsi. Panjang kunci diatur Menampilkan pesan “Pilih sebelum berkas dipilih Berkas Terlebih Dahulu” 3. Penanganan Kesalahan Pemilihan Panjang Kunci atau Blok Berkas Aplikasi akan menampilkan pesan “Pilih Berkas Terlebih Dahulu” apabila pengguna memilih panjang kunci atau ukuran blok untuk enkripsi, tapi belum memilih berkas untuk dienkripsi. Gambar 56 menunjukkan tampilan ketika pesan kesalahan ini ditampilkan. Ukuran blok berkas diatur Menampilkan pesan “Pilih sebelum berkas dipilih Berkas Terlebih Dahulu” Berkas yang akan didekripsi Tidak ditampilkan dalam tidak berekstensi .rjn form OpenFileDialog Berkas hasil dekripsi telah Menampilkan pesan “Timpa ada pada direktori yang Berkas Yang Sudah Ada?” sama Berkas dekripsi diakses oleh sistem masih Menampilkan pesan kesalahan I/O, ditampilkan beserta isi pesan kesalahan. 19 Gambar 58 Tampilan pesan kesalahan ketika berkas hasil dekripsi telah ada pada direktori yang sama Gambar 56 Tampilan pesan kesalahan ketika panjang kunci atau blok berkas dipilih sebelum berkas yang akan dienkripsi dipilih 6. Penanganan Kesalahan I/O Berkas dekripsi yang masih diakses oleh sistem dapat mengakibatkan aplikasi not responding. Hal ini biasanya terjadi bila pengguna salah memasukkan password saat dekripsi, kemudian tidak memilih ulang berkas yang akan didekripsi. Pesan kesalahan I/O ini juga dapat terjadi bila berkas yang ingin dienkripsi masih digunakan oleh aplikasi lain, misal suatu berkas teks yang masih diedit oleh Notepad.exe digunakan untuk dienkripsi. Untuk menghindari aplikasi not responding maka dibuatlah penanganan kesalahan. Kesalahan yang tampil adalah eksepsi I/O karena aplikasi masih mengakses berkas yang sama. Pesan eksepsi yang ditampilkan ditunjukkan oleh gambar 59. 4. Penanganan Filtering Berkas .rjn Pengguna tidak bisa memilih berkas berekstensi selain .rjn untuk didekripsi. Hal ini secara otomatis dilakukan dengan filtering berkas yang akan didekripsi, sehingga hanya berkas berekstensi .rjn yang dapat tampil di OpenFileDialog. Filtering berkas ini ditunjukkan oleh gambar 57. Gambar 57 Tampilan filtering berkas .rjn Gambar 59 Tampilan pesan kesalahan terjadi eksepsi I/O 5. Penanganan Kesalahan Penimpaan Berkas Apabila berkas hasil proses dekripsi telah ada dalam direktori yang sama, aplikasi akan menampilkan pesan pilihan untuk menimpa berkas yang sudah ada atau membatalkan proses dekripsi. Gambar 4. 42 menunjukkan tampilan pesan pilihan timpa berkas. 20 PENUTUP 5.1 Kesimpulan [7]. Willis, Thearon and Newsome, Bryan, Beginning Visual Basic®2005 ,Wiley Publishing, Inc., Indianapolis, Indiana, 2006 [8]. ---, AES, http://www.cescomm.co.nz/industry.html [9]. ---, Finite Field Arithemetic, http://en.wikipedia.org/wiki/Finite field arithmetic.htm [10].---, AES, http://en.wikipedia.org/wiki/Rijndael.htm [11].---,Rijndael Key Schedule, http://en.wikipedia.org/wiki/Rijndael key schedule.htm [12].---,Rijndael Mix Column, http://en.wikipedia.org/wiki/ Rijndael_Mix_column.htm [13].---, Rijndael S-box, http://en.wikipedia.org/wiki/Rijndael S-box.htm [14].---, Visual Basic .NET ,http://en.wikipedia.org/wiki/Visual_basic_.net [15].---, AES(Rijndael), http://www.quadibloc.com/crypto/The Advanced Encryption Standard (Rijndael).htm [16].---, Object Oriented, http://en.wikipedia.org/wiki/Object_oriented.htm [17].---, Use Case Diagrams,http://www.dotnetcoders.com/web/learning/ uml/diagrams/usecase.aspx [18].---, Class Diagrams,http://www.dotnetcoders.com/web/learning/ uml/diagrams/classdiagram.aspx [19].---, Sequence Diagrams,http://www.dotnetcoders.com/web/learning/ uml/ diagrams/sequence.aspx [20].---, Statechart Diagrams,http://www.dotnetcoders.com/web/learning/ uml/ diagrams/statechart.aspx [21].---, Use Case Diagrams, http://www.agilemodelling.com/artifacts/ useCaseDiagram.htm [22].---, Class Diagrams, http://www.agilemodelling.com/artifacts/ classDiagram.htm [23].---, Sequence Diagrams, http://www.agilemodelling.com/artifacts/ sequenceDiagram.htm [24].---, State Machine Diagrams, http://www.agilemodelling.com/artifacts/ stateMachineDiagram.htm 1. .NET Framework menyediakan kelas-kelas enkripsi untuk mengembangkan aplikasi kriptografi, kelas – kelas ini tersimpan dalam namespace System.Security.Cryptography. 2. Pada kelas RijndaelManaged telah disediakan fungsi untuk mengubah panjang kunci dan ukuran blok berkas pada proses enkripsi. 3. Proses enkripsi maupun dekripsi yang dijalankan oleh aplikasi ini telah berjalan sesuai dengan yang diharapkan. 4. Hasil pengujian waktu eksekusi telah sesuai dengan teori, yaitu jumlah ronde yang dilakukan berbanding lurus dengan nilai waktu eksekusi. 5.2 Saran 1. Aplikasi dapat dikembangkan lebih lanjut dengan menambahkan kemampuan pembuatan virtual drive, dengan data berbagai format disimpan dalam sebuah drive buatan. 2. Aplikasi dapat dikembangkan dengan menambahkan kemampuan shell integration register, sehingga shortcut aplikasi terdapat dalam menu pop-up Windows Explorer, dan mampu mengolah berkas berekstensi .rjn secara langsung. 3. Aplikasi dapat dikembangkan dengan menambahkan kemampuan antrian enkripsi berupa list berkas – berkas yang akan dienkripsi. DAFTAR PUSTAKA [1]. Ariyus, Dony, KRIPTOGRAFI Keamanan Data dan Komunikasi,Graha Ilmu,Yogyakarta, 2006 [2]. Joan Daemen and Vincent Rijmen, AES Submission Document on Rijndael, Version 2, September 1999. http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael .pdf [3]. Kurniawan, MT.,Ir. Yusuf., Kriptografi Keamanan Internet dan Jaringan Komunikasi, Penerbit Informatika, Bandung, 2004 [4]. Kusumo, Ario Suryo, Kriptografi Menggunakan VB.NET, www.ilmukomputer.com, 2003 [5]. Pender, A. Thomas, UML Weekend Crash Course,Wiley Publishing, Inc., Indianapolis, Indiana, 2002 [6]. Sempf, Bill, Visual Basic® 2005 For Dummies®, Wiley Publishing, Inc.,Indianapolis, Indiana,2006 21