Anda di halaman 1dari 7

IMPLEMENTASI ENKRIPSI DENGAN ALGORITMA

XXTEA PADA VIRTUAL DISK BERBASIS WINDOWS


ARIF RAHMAN SUJATMIKA 0534010026
Program Studi Teknik Informatika, upn veteran jatim
Jl. Raya rungkut madya gunung anyar
E-mail : rahmansujatmika@yahoo.com

Abstrak

ABSTRAKSI

Tugas akhir ini mengimplementasikan salah satu teknik enkripsi yang bisa digunakan sebagai
solusi perlindungan data. Teknik enkripsi yang dimaksud yaitu enkripsi pada virtual disk. Sistem enkripsi
yang diimplementasikan pada sistem operasi Windows, menggunakan algoritma XXTEA.
XXTEA merupakan turunan dari Blok TEA sehingga memiliki beberapa perbedaan yang
signifikan dengan TEA. XXTEA beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karena XXTEA tidak memiliki batas ukuran blok, XXTEA dapat digunakan untuk mengenkripsi satu buah
pesan butuh tanpa memerlukan mode operasi chiper.
Implementasi aplikasi ini, melibatkan pemunculan virtual disk dan penyelipan enkripsi pada
virtual disk tersebut. Virtual disk akan menjadi wadah file sehingga tiap file yang dimasukkan ke dalamnya
akan otomatis terenkripsi apabila aplikasi melakukan unmounting, dan akan otomatis terdekripi apabila
aplikasi melakukan mounting.
Dapat disimpulkan bahwa cara yang lebih baik dalam pembuatan virtual disk adalah
merepresentasikan file volume sebagai container dari virtual disk. Proses enkripsi pada isi virtual disk
dilakukan sebelum proses unmounting virtual disk. Sedangkan proses dekripsi pada isi virtual disk,
dilakukan setelah dilakukan proses mounting file volume.

Kata kunci: virtual disk, enkripsi, XXTEA

1. Pendahuluan encryption tidak melakukan pengamanan


terhadap seluruh area hard disk. Selama dalam
Dalam suatu perusahaan, data
proses sharing ada kesesuaian sistem operasi,
merupakan suatu aset berharga. Penyimpanan
semua akan berjalan lancar.
dokumen dan data penting adalah suatu
Pada saat melakukan enkripsi data, bisa
keniscayaan yang dilakukan pengguna laptop
dilakukan dengan 2 metode. Yaitu stream chiper
saat ini. Dan ini tidaklah mudah, sehingga
dan block chiper. Stream chiper dilakukan
menimbulkan masalah baru yang pada akhirnya
dengan cara data yang diproses diambil per satu
secara tidak langsung perusahaan akan dan telah
bit. Sedangkan block chiper dilakukan dengan
membiarkan data penting mereka bisa diakses
cara data yang terenkrip akan diambil per blok
secara bebas. Untuk menyelesaikan masalah ini,
bit.
enkripsi data sebaiknya dilakukan.
Enkripsi dalam disk bekerja dengan
Berdasarkan besarnya volume, disk
blok bit. Oleh karena itu untuk membangun
encryption dapat digolongkan menjadi dua,
sistem enkripsi seperti ini, algoritma enkripsi
yakni entire hard disk encryption (EHD
yang dipakai haruslah algoritma yang bekerja
encryption) dan virtual hard disk encryption
dengan blok bit juga. Sehingga jenis algoritma
(VHD encryption). EHD encryption dilakukan
yang digunakan adalah chiper blok (block
pada seluruh area hard disk, termasuk faktor
chiper).
yang menyangkut perangkat keras hard disk itu
Dalam kriptografi, dikenal banyak
sendiri. Dengan demikian, EHD encryption ini
algoritma chiper blok. Diantaranya adalah TEA,
hanya dapat diimplementasikan secara khusus
XTEA, XXTEA, dan lain-lain. XXTEA
terhadap salah satu jenis hard disk tertentu.
merupakan turunan dari Blok TEA sehingga
Berbeda dengan EHD encryption, VHD
memiliki beberapa perbedaan yang signifikan Berikut adalah hasil enkripsi beberapa sample
dengan TEA. XXTEA beroperasi dalam ukuran plain text (dalam heksa desimal).
blok kelipatan 32 bit dan panjang kunci 128 bit.
Karena XXTEA tidak memiliki batas ukuran Tabel 2.3. Tabel Implementasi XXTEA
blok, XXTEA dapat digunakan untuk Plain teks Key Chiper Text
mengenkripsi satu buah pesan butuh tanpa
00000000000000000 00000000053704ab
memerlukan mode operasi chiper.
00000000000000000 00000000575d8c80
Berbeda dengan TEA, terdapat dua loop
di dalam proses enkripsi dan dekripsinya. Loop 00000000000000000 000000005e3cd3f0
luar sama seperti loop pada TEA dilakukan 00000000000000000 00000000e109e3ce
beberapa putaran, sedangkan loop dalam 79d7c945
melakukan iterasi per 32 bit blok disebut 80000000000000000 00000000ac42a409
segmen. Pada setiap iterasi tersebut dilakukan 00000000000000000 00000000ef2446d4
operasi terhadap segmen Xr yang melibatkan f8b99981
segmen sebelum Xr-1 dan sesudahnya Xr+1. b72a2fab
2. Xxtea 00000000000000000 000000003a931e30
00000000100000000 0000000024d0257c
XXTEA merupakan turunan dari Blok TEA 68fc69da
sehingga memiliki beberapa perbedaan yang 21ceed21
signifikan dengan TEA. XXTEA beroperasi 00000000000000000 00000000Aa89cca2
dalam ukuran blok kelipatan 32 bit dan panjang 00000000000000000 0000000004037043
kunci 128 bit. Karena XXTEA tidak memiliki 327e686c
batas ukuran blok, XXTEA dapat digunakan 000991d1
untuk mengenkripsi satu buah pesan butuh tanpa
memerlukan mode operasi chiper. Berdasarkan Tabel 2.3 XXTEA sudah tidak
Meski XXTEA dapat mengenkripsi keseluruhan memiliki kelemahan equivalent key seperti TEA.
pesan atau file sekaligus, pada implementasinya Berikut adalah waktu enkripsi dan dekripsi
XXTEA dapat dioperasikan dengan mode
beberapa file berukuran tertentu dengan XXTEA.
operasi untuk file-file yang berukuran sangat
besar sehingga tidak bisa dibaca ke dalam Tabel 2.5 Tabel Lama Proses Enkripsi Dekripsi XXTEA
memory sekaligus. Jumlah putaran XXTEA Besar Lama Lama
bergantung pada panjang blok. Rumus jumlah File Enkripsi Dekripsi
putaran p : ~ 100 0.062 detik 0.015 detik
p = 6+52/n KB
n : panjang blok dalam bit / 32 ~ 1 MB 0.078 detik 0.062 detik
Berbeda dengan TEA, terdapat dua loop di ~ 10 0.5789 0.500 detik
dalam proses enkripsi dan dekripsinya, loop luar MB detik
sama seperti loop pada TEA dilakukan sebanyak
putaran, sedangkan loop dalam melakukan iterasi
Dari beberapa keterangan di atas dapat
per 32 bit blok.
disimpulkan bahwa XXTEA lebih baik dari pada
TEA. Hal ini dikarenakan XXTEA tidak
memiliki equivalent key seperti TEA, dan waktu
untuk melakukan proses enkripsi yang lebih
singkat dari pada TEA. XXTEA sangat cocok
untuk diaplikasikan ke perangkat-perangkat
elektronik mobile seperti handphone karena
proses enkripsi dan dekripsinya tidak memakan
resource terlalu berat.

3. Analisis
Gambar 2.3 Potongan Source Code XXTEA
Analisis masalah perangkat lunak yang akan
Pada setiap iterasi tersebut dilakukan dibangun adalah sebagai berikut:
operasi terhadap segmen Xr yang melibatkan
segmen sebelum Xr-1 dan sesudahnya Xr+1.
1. Bagaimana membuat file volume yang dapat proses ini adalah proses yang harus dilakukan
direpresentasikan sebagai virtual disk pada oleh pengguna. Pada proses ini pengguna
sistem operasi Windows. diminta untuk melakukan input lokasi tempat file
2. Bagaimana melakukan proses disimpan, besar kapasitas file, dan password.
enkripsi/dekripsi pada virtual disk saat Selanjutnya, hasil input dari pengguna akan
melakukan unmount/mount virtual disk. disimpan di database, dan kemudian diteruskan
Perangkat lunak dalam tugas akhir ini memiliki dengan melakukan melakukan pemanggilan
delapan proses utama yakni membuat file fungsi dari imdisk untuk membuat file volume
volume, melakukan mount, melakukan unmount, sesuai dengan spesifikasi dari pengguna.
melakukan enkripsi file, melakukan dekripsi file,
membuat file volume, enkrip password, dekrip b. Mount File Volume
password. Aktor yang terlibat dalam sistem ini
yaitu pengguna, seperti yang tampak pada pengguna mioka's encrypt

Gambar 3.1. start

pilih file
<<include>> volume
enkrip password

<<include>>
masukkan
password
membuat file volume membuat key file

<<include>> T sama dengan Y


database

mount file volume dekrip file


pengguna <<include>>
mount file
volume

dekrip pas sword


end
dekrip file

<<include>>

unmount virtual disk enkrip file menerima informasi rubah


list file volume informasi file

Gambar 3.1. Use Case Diagram Gambar 3.3. Activity Diagram Mount File Volume

Proses yang terdapat pada perangkat lunak tugas Pada proses ini pengguna melakukan input lokasi
akhir ini antara lain: , nama file, serta password. Aplikasi akan
melakukan pengecekan antara hasil input
a. Membuat File Volume pengguna dengan database. Apabila sama maka
aplikasi akan memanggil imdisk untuk
melakukan mounting file volume. Setelah itu
pengguna mioka's encrypt
aplikasi akan melakukan proses dekripsi file
start
dalam virtual disk yang telah di-mount. Aplikasi
juga akan melakukan update data informasi dari
memasukkan lokasi
dan nama file
file tersebut.

memasukkan
ukuran file
c. Unmount Virtual Disk

memasukkan buat file pengguna mioka's encrypt


password volume s tart

pilih file enkrip file

unmount
virtual disk
menerima informasi simpan
list file informasi file

menerima informasi rubah informasi file


list file volume

end

end

Gambar 3.4. Activity Diagram Unmount Virtual Disk


Gambar 3.2. Activity Diagram Membuat File Volume
Pada proses ini pengguna akan memilih salah
satu file volume yang telah di-mount
sebelumnya. Setelah itu pada saat pengguna Mioka's Encrypt
Start
menekan tombol unmount maka aplikasi akan
melakukan enkripsi pada virtual disk yang akan
di-unmount. Setelah seluruh file dari isi virtual ambil password
dan drive letter
disk ini telah ter-encrypt, aplikasi akan
memanggil fungsi imdisk untuk me-unmount
virtual disk tersebut dan merubah informasi file list file dalam drive
volume.

d. Enkrip File T
Proses ini dilakukan sebelum aplikasi melakukan
list.length -- > 0
unmounting virtual disk. Pertama, aplikasi akan Y

melakukan listing file dalam drive yang akan di-


unmount. Selanjutnya aplikasi akan melakukan dekrip file(list[length],
enkrip keseluruhan file yang berasal dari list password

dengan parameter password file volume yang


akan di-unmount dari database.
End

mioka's encrypt
Start
Gambar 3.6. Activity Diagram Dekrip File

Dalam proses ini pertama – tama aplikasi akan


input file yang
melakukan listing file dalam drive yang telah
akan di mount selesai di-mount. Selanjutnya akan dilakukan
proses dekrip file berdasarkan list.
ambil password
dari database f. Membuat Key File
Setelah pengguna mendefinisikan kata kunci
untuk file volume tertentu, aplikasi akan secara
list file dalam
drive
otomatis melakukan penulisan file dengan
ekstensi “.pass”. Tetapi sebelumnya, aplikasi
T akan mengenkrip kata kunci hasil inputan
penguna seperti tampak pada Gambar 3.7.
list.length - - > 0
Y Penulisan nama key file ini diseting langsung
oleh aplikasi dengan jalan merubah ekstensi file
enkrip(list[length],
password)
volume yang berkestensi “.img” menjadi “.pass”.

End
pengguna mioka's encrypt
Start

Gambar 3.5. Activity Diagram Enkrip File input enkrip


password password

e. Dekrip File
Dalam proses ini aplikasi akan memakai fungsi
enkrip file apabila aplikasi telah selesai buat key file

melakukan mounting file volume. Fungsi dekrip


file mengambil masukan dari user yaitu
End
password yang telah terlebih dahulu dicocokkan
dengan database.

Gambar 3.7. Activity Diagram Membuat Key File


g. Enkrip Password

Proses enkrip password ini dilakukan sebelum


Startmioka's encrypt
melakukan penulisan file password, seperti
tampak pada Gambar 3.8. Pertama, inputan
string password akan dirubah ke byte terlebih
dahulu. Setelah selesai, byte password akan
dikelompokkan per 32 bit. Baru akan dienkripsi input plain
menggunakan algoritma XXTEA. Setelah teks

selesai, akan di kembalikan lagi ke dalam satuan


byte.
h. Dekrip password set password

Proses dekrip password ini dilakukan sebelum


melakukan pencocokan password inputan
pengguna, seperti tampak pada Gambar
3.9. Pertama, file akan dirubah kesatuan 32 bit. rubah plain dan password ke
satuan 32 bit
Setelah dienkripsi, akan dikembalikan kedalam
satuan byte.

dekrip
password(plain,password)
Startmioka's encrypt

rubah chiper ke
satuan 1 byte
input plain
teks
End

set password

Gambar 3.9. Activity Diagram Dekrip Password

rubah plain dan password ke


satuan 32 bit
3.1 Menciptakan Virtual Disk

enkrip
Untuk melakukan operasi dalam virtual
password(plain,password) disk, aplikasi ini membutuhkan fungsi yang
berasal dari imdisk. ImDisk Virtual Disk Driver
adalah sebuah emulator disk image buatan Olof
rubah chiper ke
satuan 1 byte
Lagerkvist. Aplikasi ini bersifat open source,
yang terdiri dari kumpulan fungsi yang berlisensi
GPL, dan beberapa BSD. Aplikasi ini dapat
End membuat hard -
drive, floppy drives, atau CD/DVD drives.
Gambar 3.8. Activity Diagram Enkrip Password
Tabel 1 Jumlah Putaran Setiap Blok pada
AES

Varian AES Panjang Ukuran Jumlah


Kunci Blok Putaran
(Nk (Nb (Nr)
words) words)
AES-128 4 4 10
AES-192 6 4 12
AES-256 8 4 14
Catatan: 1 word = 32 bit
Gambar 4.10 Form Create
Secara de-fakto, hanya ada dua varian AES, yaitu
AES-128 dan AES-256, karena akan sangat 4.2 From Mount
jarang pengguna menggunakan kunci yang Pada form ini, pengguna harus mencari file yang
panjangnya 192 bit. akan di-mount terlebih dahulu. Dan pengguna
Karena AES mempunyai panjang kunci paling harus mendefinisikan juga password file
sedikit 128 bit, maka AES tahan terhadap volumenya. Selain itu pengguna juga dibebaskan
serangan exhaustive key search dengan teknologi akan menaruh di drive
saat ini. Dengan panjang kunci 128-bit, maka mana hasil mounting dari proses ini. Pengguna
terdapat 2128 ≈ 3,4 x 1038 kemungkinan kunci. hanya perlu memilih drive yang sedang tidak
Jika digunakan sebuah mesin dengan semilyar digunakan yang sudah disediakan oleh aplikasi
prosesor paralel, masing-masing dapat pada pilihan “drive letter”. Aplikasi akan
menghitung sebuah kunci setiap satu pico detik, mencocokkan dengan hasil inputan pengguna.
maka akan dibutuhkan waktu 1010 tahun untuk Apabila cocok, maka virtual disk akan terbentuk.
mencoba seluruh kemungkinan kunci. Setelah virtual disk terbentuk, aplikasi akan
melakukan dekripsi file yang berada didalam
4 Implementasi virtual disk. Bisa dilihat pada Gambar 4.11.
Pada aplikasi tersebut, terdapat tiga form, yaitu
form create, mount, dan unmount.

4.1 From Create

Pada Form ini, pengguna akan dapat membuat


file volume yang akan di-mount sebagai virtual
disk. Untuk melakukan proses tersebut,
user harus memasukkan path dimana file
tersimpan, password, dan ukuran file. Aplikasi
akan membuat file image sesuai dengan filename
hasil inputan user dan disertai key filenya yang
sudah terlebih dahulu terenkripsi.

Gambar 4.11. Form Mount

4.3 From Unmount

Untuk form unmount, pengguna tinggal


memilih file yang telah terdapat di dalam pilihan
filename. Setelah selesai, pengguna harus klik
tombol unmount untuk melakukan proses ini.
Aplikasi akan mengenkrip terlebih dahulu file
yang berada dalam virtual disk yang akan Wikipedia(2009), XXTEA, from
di-unmount. Seperti nampak pada Gambar 4.12. http://en.wikipedia.org/wiki/XXTEA, 10
Agustus 2009

Yolanda Elfira(2008), Implementasi Disk


Encryption Menggunakan Algoritma Rijndael,
from http://www.informatika.org/~rinaldi/TA/,
10 Agustus 2009)

Wheeler, David J. & Needham, Roger M.


(1998), Correction to Xtea.from
http://www.cix.co.uk, 10 September 2009.

William Khandar(2008), Studi Mengenai Tiny


Encryption Algorithm (TEA) dan Turunan-
Turunannya (XTEA Dan XXTEA), from
www.informatika.org/~rinaldi/Kriptografi, 10
September 2009)
Gambar 4.12. Form Unmount

5. Kesimpulan
Setelah melakukan analisa, perancangan serta
implementasi untuk implementasi enkripsi
dengan algoritma XXTEA pada virtual disk
berbasis windows , maka dapat diperoleh
kesimpulan sebagai berikut :
1. Virtual disk pada sistem operasi
windows dapat dibuat dengan merepresentasikan
file volume sebagai container dari virtual disk.
Karena apabila virtual disk tersebut di-unmount,
maka file yang berada dalam virtual disk akan
tersimpan secara otomatis tersimpan pada file
volume.
2. Proses enkripsi pada isi virtual disk
dilakukan sebelum proses unmounting virtual
disk. Sedangkan proses dekripsi pada isi virtual
disk, dilakukan setelah dilakukan proses
mounting file volume. Algoritma XXTEA
sendiri, berjalan pada blok 32 bit. Sehingga
sebelum memasuki proses utama enkrip dan
dekrip, file perlu diolah terlebih dahulu.

DAFTAR PUSTAKA

Wikipedia(2009), Disk Image,from


http://en.wikipedia.org/Disk_Image , 10 juli
2009

Reflex Magnetic Ltd. (1999). Entire Hard Disk


Encryption vs Virtual Hard Disk
Encryption.

Iriawan, Reza(2009), Sistem Kriptografi, from


http://www.ittelkom.ac.id/library
, 9 September 2009