enkripsi deskripsi

Upload: hitto-riu

Post on 18-Jul-2015

357 views

Category:

Documents


0 download

TRANSCRIPT

APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN ALGORITMA RIJNDAELMakalah Seminar Tugas Akhir1

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, Indonesia2

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. 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.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. 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. 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

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.

Imports System.Security Imports System.Security.Cryptography

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 Panjang Kunci (Nk) Ukuran Blok Plaintext(Nb) Jumlah Ronde(Nr) Ukuran Kunci Ronde Ukuran kunci diperpanjang (w) AES 192 AES 256 Keterangan

16 byte 24 byte 16 byte 16 byte 10 12

32 byte Panjang kunci (bit)/8 16 byte Ditetapkan 14 Ditetapkan

16 byte 16 byte 176 byte 208 byte

16 byte Sama dengan Nb 240 byte 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 Rijndael00 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 f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16

4. MixColumns

Gambar 8 Tahap MixColumns 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 a3Matriks 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. III. PERANCANGAN APLIKASI 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.

3. ShiftRows

Gambar 7 Tahap ShiftRows 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.

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.Enkripsi

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

Me ngatur Panjang Kunci Pengguna Memilih Berkas Enkripsi Berkas

Mengisi Password

Keluar Program

Gambar 10 Diagram Use Case 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.Memilih Berkas Dekripsi Berkas Pengguna Mengisi Password

Dekripsi

Pengguna

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. 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. 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

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.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.

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.M e ngatur Uk uran Blok Pilih Be rk as Untuk Die nk rips i

Enkriptor Berkas +Nama Berkas +Ekstensi Berkas +Direktori Berkas +enkripsi +sInputFile: string +sOutputFile: string +byteRJNKey: byte +byteRJNIV: byte +fsInput() dekripsi Dekriptor +sInputFile: string +sOutputFile: string +byteRJNKey: byte +byteRJNIV: byte +fsOutput() Pengaturan +keyLen: integer = 256 +blockLen: integer = 128 +bts128_Click() +bts192_Click() +bts256_Click() +btsBlock128_Click() +btsBlock192_Click() +btsBlock256_Click() +Waktu Eksekusi() +Pencatat Kunci()

M e ngatur Panjang Kunci

Pe ngguna Tam pilk an

Tam pilk an Wak tu Ek s e k us i

Plaintext

Ciphertext +byteKey: byte +byteIV: byte +btnDeBrowse_Click() +NamaFileDidekrip() +btnDe_Click() +MendekripFile()

Tam pilk an Pe ncatat Kunci Ke luar Pr ogram

+byteKey: byte +byteIV: byte +btnEnBrowse_Click() +NamaFileDienkrip() +btnEn_Click() +MengenkripFile()

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. 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.

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.3.1 Diagram Runtun Keseluruhan Program Di dalam program enkripsidekripsi 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

: 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() 9 : Enkripsi() 10 : Kunci 12 : Panjang Kunci() 13 : Ukuran Blok() 14 : Proses Enkripsi()

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. 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.: Pengguna : Berkas : Dekriptor

11 : Password()

16 : Dekripsi() 17 : Kunci

15 : Berkas()

18 : Password()

19 : Panjang Kunci() 20 : Ukuran Blok() 21 : Proses Dekripsi() 23 : Waktu Eksekusi Tampil 24 : Tampilkan Pencatat Kunci() 25 : Pencatat Kunci Tampil

22 : Tampilkan Waktu Eksekusi()

Gambar 14 Diagram Runtun Keseluruhan Program 3.3.2 Diagram Runtun Enkripsi: Pengguna : Pengaturan 1 : Enkripsi() : Berkas : Enkriptor

1 : Dekripsi() 2 : Pilih Berkas 3 : Berkas Dipilih() 4 : Baca "k=" dan "b=" dari Nama Berkas()

2 : Pilih Berkas 3 : Berkas Dipilih() 4 : Atur Panjang Kunci() 5 : Panjang Kunci() 6 : Ubah Nama Berkas "k="() 7 : Atur Ukuran Blok() 8 : Ukuran Blok() 9 : Ubah Nama Berkas "b="()12 : Dekripsi Selesai

5 : Pengaturan Kunci dan Blok [Visible = False]() 6 [k = Panjang Kunci;b=Ukuran Blok]

7 : Mulai Dekripsi() 9 : Kunci 10 : Password() 11 : Proses Selesai() 8 : Proses Dekripsi()

10 : Mulai Enkripsi() 12 : Kunci 13 : Password() 14 : Proses Selesai() 11 : Proses Enkripsi()

Gambar 16 Diagram Runtun Dekripsi 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

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.

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 Enkripsi Dekripsi Dekripsi Pengaturan Pengaturan

Keluar Program

Keluar Program

Batal

: Pengguna

: Pengaturan

1 : Enkripsi() 2 : Pengaturan Kunci dan Blok [Visible = True] 3 : Atur Panjang Kunci() 5 : Panjang Kunci Ditampilkan 4 : Panjang Kunci() 6 : Atur Ukuran Blok() 8 : Ukuran Blok Ditampilkan 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() 7 : Ukuran Blok()

Gambar 18 Top-level statechart 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

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*()

if btnOK Clicked/Password()

Pilih Berkas : Berkas do/NamaFileDienkrip() Dibatalkan

Kunci dan Blok

Atur Kunci dan Blok : Pengaturan do/bts128_Click() do/bts192_Click() do/bts256_Click() do/btsBlock128_Click() do/btsBlock192_Click() do/btsBlock256_Click() Dibatalkan

Password

Password : Enkriptor do/Password()

clicked akan mengatur nilai panjang kunci keyLen menjadi nilai default yaitu 256 bit. Gambar 22 menampilkan diagram statechart pengaturan.if nothing Clicked/ keyLen = 256 Tampilkan Pencatat Kunci Dibatalkan

Batal/Cancel

Enkripsi

if btnEnBrowse Clicked/ NamaFileDienkrip()

if nothing selected/ nilai keyLen default=256; block default=128

if btsBlock* Clicked/ blockLen=btsBlock*()

if btnEn Clicked/MengenkripFile()

Enkripsi : Enkriptor do/MengenkripFile() do/RJNEngine() Selesai Enkripsi

Atur Kunci

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 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 21Pilih Berkas : Berkas do/NamaFileDidekrip() Kunci Password: Dekriptor do/Password() Dekripsi Dekripsi : Dekriptor do/MendekripFile() do/RJNEngine()

Waktu Eksekusi if nothing Clicked/ blockLen = 128

Tampilkan Waktu Eksekusi

Atur Ukuran Blok Atur Blok do/btsBlock128_Click() do/btsBlock192_Click() do/btsBlock256_Click()

Dibatalkan if btsExeShowl Checked/ lblTimeEn visible = true lblTimeDe visible = true picRunEn visible= true picRunDe visible = true

Selesai if btnEnBrowse Clicked/ setBlock() 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

if btnDeBrowse clicked/NamaFileDidekrip() Batal/Cancel

if btnOKDe clicked/Password() Batal/Cancel

if btnDe clicked/MendekripFile()

Keluar Program

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.

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). 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. 1. Pengujian Waktu Eksekusi Enkripsi Beragam Panjang Kunci dan Ukuran Blok 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 MbBlok 128 Blok 192 Blok 256 Kunci 128 182,2 ms 196,6 ms 212 ms Kunci 192 199,8 ms 195 ms 216,5 ms Kunci 256 210,5 ms 213,5 ms 209 ms

Gambar 25 Tab Pengaturan 4.2 Pengujian Aplikasi 4.2.1 Pengujian Enkripsi dan Dekripsi 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: Tabel 3 Jumlah ronde Nr terhadap Nk dan Nb Nr Nb = 4 Nb = 6 Nb = 8 Nk = 4 Nk = 6 Nk = 8 10 12 14 12 12 14 14 14 14

Pengujian pada berkas berukuran 10 Mb menghasilkan data waktu rata-rata eksekusi yang ditunjukkan oleh Tabel 5. Tabel 5 Waktu eksekusi rata-rata enkripsi berkas dengan ukuran 10 MbBlok 128 Blok 192 Blok 256 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

Nk adalah panjang kolom matriks kunci, Nb adalah panjang kolom matriks blok berkas, Nr adalah

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.

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 MbBlok 128 Blok 192 Blok 256 Kunci 128 198,1 ms 210,6 ms 229,2 ms Kunci 192 210,6 ms 209,1 ms 229,2 ms Kunci 256 221,2 ms 230,7 ms 227,6 ms

Enkripsi Berkas 1 MbBlok 128

Blok 192

Kunci 128 Kunci 192 Kunci 256

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 MbBlok 128 Blok 192 Blok 256 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

Blok 256

0

100

200

300

Gambar 26 Grafik rata rata waktu eksekusi berkas 1 Mb terhadap panjang kunci dan ukuran blok

Enkripsi Berkas 10 MbBlok 128

Blok 192

Kunci 128 Kunci 192 Kunci 256

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.

Dekripsi Berkas 1 MbBlok 256

Blok 1280,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

Blok 192

Kunci 128 Kunci 192 Kunci 256

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 MbBlok 128

Blok 192

Kunci 128 Kunci 192 Kunci 256

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 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 Panjang kunci, Nama berkas ukuran blok enkripsi berawalan [panjang kunci = n bit ukuran blok = n bit] Berkas password .rjn, Berkas terdekripsi, berkas dan ekstensi semula Berkas terenkripsi berekstensi .rjn Nama berkas berawalan [panjang kunci = n bit ukuran blok = n bit] Berkas terdekripsi, berkas dan ekstensi kembali seperti semula.

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. 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 krypts "hidden," and the verb grfo "write"). In modern times, it

12

has become a branch of information theory, as the mathematical study of information and especially ... 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.

information and especially its transmission from place to place. ...

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: IzVlo&]i=I~ek:H^q| KG3y;HfY^Jj jZ8=ZR?(mGScms #