aplikasi enkripsi dan dekripsi meggunakan algoritma rijndael 1

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