aplikasi enkripsi dan dekripsi meggunakan...

21
APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN ALGORITMA RIJNDAEL Makalah Seminar Tugas Akhir Virgan R.Y. 1 , Agung B.P. 2 , Aghus Sofwan 2 1 Mahasiswa dan 2 Dosen Jurusan Teknik Elektro, Fakultas Teknik, Universitas Diponegoro, Jl. Prof. Sudharto, Tembalang, Semarang, Indonesia 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. PENDAHULUAN 1.1 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 hal- hal 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. Aplikasi dirancang untuk digunakan pada sistem operasi Windows XP. 4. 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

Upload: vuonghanh

Post on 10-Jul-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN ALGORITMA RIJNDAEL

Makalah Seminar Tugas Akhir

Virgan R.Y.1, Agung B.P.2, Aghus Sofwan2

1Mahasiswa dan 2Dosen Jurusan Teknik Elektro, Fakultas Teknik, Universitas Diponegoro,Jl. Prof. Sudharto, Tembalang, Semarang, Indonesia

ABSTRAKKeamanan 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. PENDAHULUAN1.1 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 TujuanTujuan 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 MakalahPada Tugas Akhir ini pembahasan akan dibatasi pada hal-hal 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. Aplikasi dirancang untuk digunakan pada sistem operasi Windows XP.

4. Analisis dan desain yang dilakukan dengan pendekatan berorientasi objek.

II. DASAR TEORI2.1 .NET Framework dan Visual Basic 20052.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 ProgramPustaka 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

Page 2: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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.

Gambar 2 Common Language Runtime (CLR)

2. Kelas - Kelas Enkripsi .NETKelas-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:

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.

2

Page 3: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 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 12 14 Ditetapkan

Ukuran Kunci Ronde 16 byte 16 byte 16 byte Sama dengan Nb

Ukuran kunci diperpanjang (w)

176 byte

208 byte

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 3. Bagan proses enkripsi

Proses dekripsi 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 6 Tahap SubBytes

Dalam tahap SubBytes, setiap byte dalam state diganti dengan masukannya dalam sebuah tabel lookup 8-bit, S; bij = S(aij), tabel tetap ini disebut S-box (singkatan

3

Page 4: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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

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

Gambar 8 Tahap MixColumns

Tahap MixColumns dapat dilakukan dengan mengalikan empat angka dari kolom state dalam GF(28) dengan matriks berikut:

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.

III. PERANCANGAN APLIKASI

Perancangan aplikasi pada permainan catur dua pemain menggunakan Bluetooth ini menggunakanpendekatan 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, dan4. Diagram Statechart.

3.1 Diagram Use CaseModel 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

[2 3 1 11 2 3 11 1 2 33 1 1 2][

a0

a1

a2

a3]

0 1 2 3 4 5 6 7 8 9 a b c d e f00 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 7610 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 02 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 1503 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 7504 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 8405 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 06 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 07 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d208 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 7309 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a0 e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08c0 ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d0 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e0 e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f0 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

Page 5: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

3.1.1 Use Case Utama ProgramUse 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.

Gambar 9 Use Case Utama ProgramGambar 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 EnkripsiUse 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

dahulu.Use Case mengisi password berasosiasi include dengan Use Case enkripsi berkas, sehingga pengguna bisa mengisi password bila telah memilih enkripsi berkas.

Gambar 10 Diagram Use Case enkripsi

3.1.3 Use Case DekripsiUse 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.

Gambar 11 Diagram Use Case DekripsiUse 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

Pengguna

Mengatur Ukuran Blok

Mengatur Panjang Kunci

Memilih Berkas

Mengisi Password

Keluar Program

Enkripsi Berkas

<<include>>

<<include>>

<<include>>

<<include>>

Pengguna

Memilih Berkas

Mengisi Password

Keluar Program

<<include>>

<<include>>

Dekripsi Berkas

Pengguna

Enkripsi

Dekripsi

Pengaturan

Bantuan

Keluar

Page 6: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

3. Pengguna dapat menampilkan tercatatnya password yang dimasukkan dengan memilih tampilkan pencatat kunci.

4. Pengguna dapat menampilkan waktu eksekusi dengan memilih tampilkan waktu eksekusi.

Gambar 12 Diagram Use Case pengaturanGambar 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 ProgramDi 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

M engatur Ukuran Blok

Mengatur Panjang Kunci

Keluar Program

Pilih Berk as Untuk Dienkripsi<<include>>

<<include>>

Tam pilkan Tam pilkan Waktu Ek sekusi

Tam pilkan Pencatat Kunci

<<include>>

<<include>>

Plaintext

+byteKey: byte+byteIV: byte

+btnEnBrowse_Click()+NamaFileDienkrip()+btnEn_Click()+MengenkripFile()

Berkas

+Nama Berkas+Ekstensi Berkas+Direktori Berkas

Ciphertext

+byteKey: byte+byteIV: byte

+btnDeBrowse_Click()+NamaFileDidekrip()+btnDe_Click()+MendekripFile()

Enkriptor

+sInputFile: string+sOutputFile: string+byteRJNKey: byte+byteRJNIV: byte

+fsInput()

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

dekripsi

+enkripsi

Page 7: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

Gambar 14 Diagram Runtun Keseluruhan Program

3.3.2 Diagram Runtun Enkripsi

Gambar 15 Diagram Runtun EnkripsiProses 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

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

Gambar 16 Diagram Runtun Dekripsi

3.3.4 Diagram Runtun PengaturanDiagram 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

7

: Pengguna : Enkriptor : Dekriptor : Pengaturan : Berkas

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 : Kunci11 : Password()

12 : Panjang Kunci()

13 : Ukuran Blok()

14 : Proses Enkripsi()

15 : Berkas()16 : Dekripsi()

17 : Kunci18 : Password()

19 : Panjang Kunci()

20 : Ukuran Blok()

21 : Proses Dekripsi()

22 : Tampilkan Waktu Eksekusi()

23 : Waktu Eksekusi Tampil24 : Tampilkan Pencatat Kunci()

25 : Pencatat Kunci Tampil

: Pengguna : Dekriptor : Berkas

1 : Dekripsi()

2 : Pilih Berkas3 : Berkas Dipilih()

4 : Baca "k=" dan "b=" dari Nama Berkas()

5 : Pengaturan Kunci dan Blok [Visible = False]()

6 [k = Panjang Kunci;b=Ukuran Blok]

7 : Mulai Dekripsi()

8 : Proses Dekripsi()9 : Kunci

10 : Password()

11 : Proses Selesai()

12 : Dekripsi Selesai

: Pengaturan : Berkas : Pengguna : Enkriptor

1 : Enkripsi()

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="()

10 : Mulai Enkripsi()

11 : Proses Enkripsi()12 : Kunci

13 : Password()

14 : Proses Selesai()

15 : Enkripsi Selesai

Page 8: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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.

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,

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.

Gambar 18 Top-level statechart

3.4.2 Diagram Statechart EnkripsiStatechart 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

8

Enkripsi Dekripsi Pengaturan

Enkripsi Dekripsi Pengaturan

Keluar Program Keluar Program Batal

: Pengguna : Pengaturan

1 : Enkripsi()

2 : Pengaturan Kunci dan Blok [Visible = True]3 : Atur Panjang Kunci()

4 : Panjang Kunci()5 : Panjang Kunci Ditampilkan

6 : Atur Ukuran Blok()

7 : 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 Blok14 : Tampilkan Pencatat Kunci()

15 : Pencatat Kunci Ditampilkan

16 : Tampilkan Waktu Eksekusi()

17 : Waktu Eksekusi Ditampilkan

Page 9: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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 21

Gambar 21. Diagram statechart dekripsi

3.4.4 Diagram Statechart PengaturanDiagram 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

clicked” akan mengatur nilai panjang kunci keyLen menjadi nilai default yaitu 256 bit. Gambar 22 menampilkan diagram statechart pengaturan.

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.

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

Atur Panjang Kunci

do/bts128_Click()do/bts192_Click()do/bts256_Click()

Atur Ukuran Blok

do/btsBlock128_Click()do/btsBlock192_Click()do/btsBlock256_Click()

Tampilkan Pencatat Kunci

Tampilkan Waktu Eksekusi

if btnEnBrowse Clicked/setKey() visible = true

if btnEnBrowse Clicked/setBlock() visible = true

if btsKlogNormal Checked/gboPwdLogger visible = true

if nothing Clicked/blockLen = 128

if nothing Clicked/keyLen = 256

Atur Kunci

Atur Blokif btsExeShowl Checked/lblTimeEn visible = truelblTimeDe visible = truepicRunEn visible= truepicRunDe visible = true

Dibatalkan

Dibatalkan

Selesai

Selesai

Pencatat Kunci

Waktu Eksekusi

Pilih Berkas : Berkas

do/NamaFileDienkrip()

Atur Kunci dan Blok : Pengaturan

do/bts128_Click()do/bts192_Click()do/bts256_Click()do/btsBlock128_Click()do/btsBlock192_Click()do/btsBlock256_Click()

Password : Enkriptor

do/Password()

Enkripsi : Enkriptor

do/MengenkripFile()do/RJNEngine()

Kunci dan Blok Password

Enkripsi

Selesai Enkripsi

if bts* Clicked/keyLen=bts*()

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

if btsBlock* Clicked/blockLen=btsBlock*()

if btnEnBrowse Clicked/NamaFileDienkrip()

Dibatalkan

Dibatalkan

Batal/Cancel

if btnOK Clicked/Password()

if btnEn Clicked/MengenkripFile()

Dekripsi : Dekriptor

do/MendekripFile()do/RJNEngine()

Pilih Berkas : Berkas

do/NamaFileDidekrip()

Password : Dekriptor

do/Password()

Kunci

Keluar Program

Batal/CancelBatal/Cancel

Dekripsi

if btnOKDe clicked/Password() if btnDe clicked/MendekripFile()if btnDeBrowse clicked/NamaFileDidekrip()

Page 10: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

Gambar 24 Tab Dekripsi

4.1.3 PengaturanPada tab pengaturan pengguna dapat memilih

panjang kunci enkripsi dari ukuran blok berkas yang diinginkan, menampilkan pencatat waktu eksekusi, serta menampilkan pencatat kunci.

Gambar 25 Tab Pengaturan

4.2 Pengujian Aplikasi4.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 NbNr Nb = 4 Nb = 6 Nb = 8

Nk = 4 10 12 14

Nk = 6 12 12 14

Nk = 8 14 14 14

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

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 Dengan Beragam Panjang Kunci dan Ukuran Blok

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

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 Mb

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

Kunci 128 Kunci 192 Kunci 256Blok 128 182,2 ms 199,8 ms 210,5 msBlok 192 196,6 ms 195 ms 213,5 msBlok 256 212 ms 216,5 ms 209 ms

Kunci 128 Kunci 192 Kunci 256Blok 128 1 s 702 ms 1 s 863 ms 2 s 005 msBlok 192 1 s 765 ms 2 s 331 ms 2 s 472 msBlok 256 2 s 513 ms 2 s 550 ms 2 s 499 ms

Page 11: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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.

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

Gambar 27 Grafik rata – rata waktu eksekusi berkas 10 Mb terhadap panjang kunci dan ukuran blok

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

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

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 28 Grafik rata – rata waktu eksekusi dekripsi berkas 1 Mb terhadap panjang kunci dan ukuran blok

11

Blok 256

Blok 192

Blok 128

0 100 200 300

Enkripsi Berkas 1 Mb

Kunci 128Kunci 192Kunci 256

Blok 256

Blok 192

Blok 128

0,000 0,500 1,000 1,500 2,000 2,500 3,000

Enkripsi Berkas 10 Mb

Kunci 128Kunci 192Kunci 256

Kunci 128 Kunci 192 Kunci 256Blok 128 198,1 ms 210,6 ms 221,2 msBlok 192 210,6 ms 209,1 ms 230,7 msBlok 256 229,2 ms 229,2 ms 227,6 ms

Kunci 128 Kunci 192 Kunci 256Blok 128 1 s 710 ms 1 s 916 ms 2 s 203 msBlok 192 1 s 947 ms 1 s 915 ms 2 s 598 msBlok 256 2 s 206 ms 2 s 675 ms 2 s 433 ms

Blok 256

Blok 192

Blok 128

0 100 200 300

Dekripsi Berkas 1 Mb

Kunci 128Kunci 192Kunci 256

Page 12: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

Gambar 29 Grafik rata – rata waktu eksekusi dekripsi berkas 10 Mb terhadap panjang kunci dan ukuran blok

4.2.2 Black Box TestingBlack 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

DiharapkanKeluaran Aplikasi

Berkas, password Berkas terenkripsi, ekstensi .rjn

Berkas terenkripsi berekstensi .rjn

Panjang kunci, ukuran blok

Nama berkas enkripsi berawalan [“panjang kunci = n bit” ”ukuran blok = n bit”]

Nama berkas berawalan [“panjang kunci = n bit” ”ukuran blok = n bit”]

Berkas .rjn, password

Berkas terdekripsi, berkas dan ekstensi semula

Berkas terdekripsi, berkas dan ekstensi kembali seperti semula.

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 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 TeksBerkas yang akan dienkripsi bernama testtext.txt,

berkas teks ini berisi tulisan biasa. Tampilan berkas awal pada xplorer2 ditunjukkan pada gambar 31 berikut ini:

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

Blok 256

Blok 192

Blok 128

0,000 0,500 1,000 1,500 2,000 2,500 3,000

Dekripsi Berkas 10 Mb

Kunci 128Kunci 192Kunci 256

Page 13: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

has become a branch of information theory, as the mathematical study of information and especially ...”

2. Berkas Teks Setelah DienkripsiBerkas testtext.txt dienkripsi dan nama berkasnya

berubah menjadi “[k=256 b=128]testtext_txt.rjn”. Gambar 32 menampilkan berkas teks yang telah dienkripsi.

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.

3. Berkas Teks Setelah DidekripsiBerkas 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

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

Gambar 33 Berkas teks setelah didekripsi

4. Pengujian Pada Berkas VideoBerkas 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 34Berkas video sebelum dienkripsiTampak pada gambar 4.18 pada preview window

berkas video dapat dijalankan oleh Windows Media Player.

5. Berkas Video Setelah DienkripsiBerkas “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

Page 14: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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.

6. Berkas Video Setelah DidekripsiBerkas “[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.

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.

7. Pengujian Pada Berkas AudioBerkas 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

menunjukkan tampilan berkas awal dan berkas hasil dekripsi dalam aplikasi Audacity.

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.

8. Berkas Audio Setelah DienkripsiBerkas “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 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.

9. Pengujian Pada Berkas GambarBerkas video yang digunakan adalah

“websites.jpg”, berkas gambar ini mempunyai tanggal pengubahan terakhir 27/06/2007 jam 15:59. Gambar 39

14

Page 15: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

menampilkan berkas ini, data tanggal dan waktu pengubahan serta preview.

Gambar 39 Berkas gambar “websites.jpg” sebelum dienkripsi

10. Berkas Gambar DienkripsiBerkas “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.

Gambar 40 Berkas gambar dienkripsiDari 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 DidekripsiBerkas “[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 41 Berkas gambar “websites.jpg” hasil dekripsiDari 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. 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 42 Tampilan berkas “Windows Movie Maker Sample File.wmv” pada HxD

15

Page 16: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

Dari Gambar 42 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas video belum dienkripsi adalah nilai berikut:MD-5: 632E81639738BBB4C45EE4C02031AD0E

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.

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.

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.

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

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

Page 17: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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

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 48 Tampilan berkas “websites.jpg” pada HxDDari 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 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

Page 18: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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.

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.

Gambar 51 Tampilan berkas “testtext.txt” pada HxD

Dari Gambar 51 dapat dilihat hasil analisa checksum MD-5 keseluruhan berkas gambar sebelum dienkripsi adalah nilai berikut:MD-5: BEABE8D5A737930077EFBDE65B746E75

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.

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.

18

Page 19: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

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.

4.2.5. Pengujian Penanganan KesalahanPenanganan 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 kesalahanMasukan Keluaran

Tombol enkripsi/dekripsi ditekan, berkas belum dipilih

Menampilkan pesan “Pilih Berkas Terlebih Dahulu”

Password yang tidak sesuai Menampilkan pesan eksepsi.

Panjang kunci diatur sebelum berkas dipilih

Menampilkan pesan “Pilih Berkas Terlebih Dahulu”

Ukuran blok berkas diatur sebelum berkas dipilih

Menampilkan pesan “Pilih Berkas Terlebih Dahulu”

Berkas yang akan didekripsi tidak berekstensi .rjn

Tidak ditampilkan dalam form OpenFileDialog

Berkas hasil dekripsi telah ada pada direktori yang sama

Menampilkan pesan “Timpa Berkas Yang Sudah Ada?”

Berkas dekripsi masih diakses oleh sistem

Menampilkan pesan kesalahan I/O, ditampilkan beserta isi pesan kesalahan.

1. Penanganan Kesalahan Berkas Belum DipilihAplikasi 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 54 Tampilan pesan kesalahan berkas belum dipilih

2. Penanganan Kesalahan Password Yang Tidak SesuaiAplikasi 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.

Gambar 55 Tampilan pesan kesalahan ketika password yang tidak sesuai

dimasukkan dalam proses dekripsi

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.

19

Page 20: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

Gambar 56 Tampilan pesan kesalahan ketika panjang kunci atau blok berkas dipilih sebelum berkas yang akan

dienkripsi dipilih

4. Penanganan Filtering Berkas .rjnPengguna 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

5. Penanganan Kesalahan Penimpaan BerkasApabila 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.

Gambar 58 Tampilan pesan kesalahan ketika berkas hasil dekripsi telah ada pada direktori yang sama

6. Penanganan Kesalahan I/OBerkas 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.

Gambar 59 Tampilan pesan kesalahan terjadi eksepsi I/O

20

Page 21: APLIKASI ENKRIPSI DAN DEKRIPSI MEGGUNAKAN …elektro.undip.ac.id/el_kpta/wp-content/uploads/2012/05/L2F002615... · MSIL menjadi kode asal yang dapat dimengerti prosesor. Gambar 2

PENUTUP5.1 Kesimpulan

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

[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

21