Download - Eko Hari Rachmawanto Lengkap sekali
LAPORAN TUGAS AKHIR
TEKNIK KEAMANAN DATA MENGGUNAKAN
KRIPTOGRAFI DENGAN ALGORITMA VERNAM CHIPER
DAN STEGANOGRAFI DENGAN METODE END OF FILE
(EOF)
Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi
Teknik Informatika S-1 pada Fakultas Ilmu Komputer
Universitas Dian Nuswantoro
Disusun oleh:
Nama : Eko Hari Rachmawanto
NIM : A11.2006.02767
Program Studi : Teknik Informatika ( S-1 )
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DIAN NUSWANTORO
SEMARANG
2010
PERSETUJUAN LAPORAN TUGAS AKHIR
Nama Pelaksana : Eko Hari Rachmawanto
NIM : A11.2006.02767
Program Studi : Teknik Informatika
Fakultas : Ilmu Komputer
Judul Tugas Akhir : Teknik Keamanan Data Menggunakan Kriptografi
dengan Algoritma Vernam Chiper dan Steganografi
dengan Metode End of File (EoF)
Tugas Akhir ini telah diperiksa dan disetujui,
Semarang, 14 April 2010
Menyetujui :
Pembimbing
M. Arief Soelaeman, M. Kom
Mengtahui :
Dekan Fakultas Ilmu Komputer
Dr.Eng.Yuliman Purwanto,M.Eng
PENGESAHAN DEWAN PENGUJI
Nama : Eko Hari Rachmawanto
NIM : A11.2006.02767
Program Studi : Teknik Informatika
Fakultas : Ilmu Komputer
Judul Tugas Akhir : Teknik Keamanan Data Menggunakan Kriptografi
dengan Algoritma Vernam Chiper dan
Steganografi dengan Metode End of File (EoF)
Tugas akhir ini telah diujikan dan dipertahankan dihadapan Dewan Penguji pada
Sidang Tugas Akhir bulan 14 April 2010. Menurut pandangan kami, tugas akhir
ini memadai dari segi kualitas maupun kuantitas untuk tujuan penganugrahan
gelar Sarjana Komputer (S. Kom)
Semarang, 14 April 2010
Dewan Penguji
Slamet Sudaryanto, M.Kom Edi Faisal, M.Kom
Anggota Anggota
Agus Winarno, M.Kom
Ketua Penguji
PERNYATAAN KEASLIAN TUGAS AKHIR
Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan dibawah
ini, saya :
Nama : Eko Hari Rachmawanto
NIM : A11.2006.02767
Menyatakan bahwa karya ilmiah saya yang berjudul :
TEKNIK KEAMANAN DATA MENGGUNAKAN KRIPTOGRAFI
DENGAN ALGORITMA VERNAM CHIPER DAN STEGANOGRAFI
DENGAN METODE END OF FILE (EOF)
Merupakan karya asli saya (kecuali cuplikan dan ringkasan yang masing-masing
telah saya jelaskan sumbernya). Apabila di kemudian hari, karya disinyalir bukan
merupakan karya asli saya, yang disertai dengan bukti-bukti yang cukup, maka
saya bersedia untuk dibatalkan gelar saya beserta hak dan kewajiban yang melekat
pada gelar tersebut. Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Semarang
Pada tanggal : 13 April 2010
Yang menyatakan
(Eko Hari Rachmawanto)
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan dibawah
ini, saya :
Nama : Eko Hari Rachmawanto
NIM : A11.2006.02767
Demi mengembangkan Ilmu pengetahuan, menyetujui untuk memberikan kepada
Universitas Dian Nuswantoro Hak Bebas Royalti Non-Ekskusif (non-exclusif
Royalti-Free Right) atas karya ilmiah saya yang berjudul :
TEKNIK KEAMANAN DATA MENGGUNAKAN KRIPTOGRAFI
DENGAN ALGORITMA VERNAM CHIPER DAN STEGANOGRAFI
DENGAN METODE END OF FILE (EOF)
beserta perangkat yang diperlukan (bila ada). Dengan Hak Bebas Royalti Non-
Ekseklusif ini Universitas Dian Nuswantoro berhak untuk menyimpan, mengcopy
ulang (memperbanyak), menggunakan, mengelolanya dalam bentuk pangkalan
data (database), mendistribusikannya dan menampilkan/mempublikasikannya di
internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari
saya selama tetap mencantumkan nama saya sebagai penulis/pencipta.
Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak
Universitas Dian Nuswantoro, segala bentuk tuntutan hukum yang timbul atas
pelanggaran Hak Cipta dalam karya ilmiah saya ini.
Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Semarang
Pada tanggal : 13 April 2010
Yang menyatakan
(Eko Hari Rachmawanto)
UCAPAN TERIMA KASIH
Dengan memanjatkan puji syukur kehadirat Allah, Tuhan yang Maha
Pengasih dan Maha Penyayang yang telah melimpahkan segala rahmat-Nya
kepada penulis sehingga laporan Tugas Akhir dengan judul “Teknik Keamanan
Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan
Steganografi dengan Metode End of File (EoF)” dapat penulis selesaikan sesuai
dengan rencana karena dukungan dari berbagai pihak yang tidak ternilai besarnya.
Oleh karena itu penulis menyampaikan terima kasih kepada :
1. Dr. Ir. Edi Noersasongko, M.Kom, selaku Rektor Universitas Dian
Nuswantoro Semarang.
2. Dr.Eng.Yuliman Purwanto,M.Eng, selaku Dekan Fakultas Ilmu Komputer
Universitas Dian Nuswantoro Semarang.
3. Ayu Pertiwi, S. Kom.,M.T, selaku Ka.Progdi Teknik Informatika
4. M. Arief Soelaeman, M.Kom, selaku pembimbing tugas akhir yang
memberikan semangat, dukungan, membantu pemunculan ide penelitian,
memberikan informasi referensi yang penulis butuhkan dan bimbingan yang
berkaitan dengan penelitian penulis.
5. Dosen-dosen pengampu pada Fakultas Ilmu Komputer Teknik Informatika
Universitas Dian Nuswantoro Semarang yang telah memberikan ilmu dan
pengalamannya masing-masing, sehingga penulis dapat mengimplementasikan
ilmu yang telah disampaikan.
6. Teman-teman seperjuangan angkatan 2006, yang telah memberikan semangat
dan dukungan dalam penyelesaian Tugas Akhir ini.
Semoga Tuhan Yang Maha Esa memberikan balasan yang lebih besar
kepada beliau-beliau, dan pada akhirnya penulis berharap bahwa penulisan
laporan tugas akhir ini dapat bermanfaat dan berguna sebagaimana fungsinya.
Semarang, April 2010
Penulis
ABSTRAK
Seiring dengan perkembangan zaman, kebutuhan manusia meningkat,
terutama kebutuhan akan informasi. Oleh sebab itu, pengiriman dan penyimpanan
data memerlukan suatu proses yang mampu menjamin keamanan dan keutuhan
dari data tersebut.
Untuk menjamin keamanan dan keutuhan dari suatu data, dibutuhkan
suatu proses penyandian. Enkripsi dilakukan ketika data akan dikirim. Proses ini
akan mengubah suatu data asal menjadi data rahasia yang tidak dapat dibaca.
Sementara itu, proses dekripsi dilakukan oleh penerima data yang dikirim
tersebut. Data rahasia yang diterima akan diubah kembali menjadi data asal.
Dengan cara penyandian tadi, data asli tidak akan terbaca oleh pihak yang
tidak berkepentingan, melainkan hanya oleh penerima yang memiliki kunci
dekripsi. Didorong oleh kegunaan yang penting tadi, teknik (algoritma)
penyandian telah berkembang sejak zaman dahulu kala. Mulai dari era sebelum
masehi, hingga sekarang algoritma penyandian ini selalu berkembang.
File merupakan salah satu media yang digunakan sebagai penympanan
data pada era komputer sekarang ini. Banyak orang mengirim atau menerima file
sebagai komunikasi jarak jauh.
Salah satu usaha untuk mengamankan file yaitu dengan
mengimplementasikan kriptografi untuk penyandian data, contohnya adalah
algoritma Vernam Cipher. Sebagai contoh sistem kriptografi simetri, algoritma ini
cukup mampu untuk mengamankan informasi termasuk file. Sehingga algoritma
ini dapat digunakan untuk mengamankan file.
Dalam hal ketajaman dalam keamanan, diperlukan teknik penyembunyian
file ke dalam file lain yang sering kita sebut dengan steganografi. Hal ini untuk
mengurangi kecurigaan pihak yang tidak berkepentingan untuk mengolah file.
Pada hal ini digunakan teknik penyembunyian file dengan metode End of File
supaya tidak terlihat secara jelas.
Dengan berdasar pada algoritma Vernam Cipher dan End of File, maka
dibuatlah program aplikasi kriptosistem yang digunakan untuk melakukan
pengamanan file sehingga hanya orang-orang tertentu saja yang dapat mengolah
file.
Kata kunci: file, penyandian, kriptosistem, steganografi, algoritma, Vernam
Cipher, End of File.
xiii + 83 halaman + 42 gambar + 9 tabel
DAFTAR ISI
HALAMAN SAMPUL DALAM ............................................................... i
HALAMAN PERSETUJUAN ................................................................... ii
HALAMAN PENGESAHAN .................................................................... iii
HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR .................... iv
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ................... v
HALAMAN UCAPAN TERIMA KASIH ................................................. vi
HALAMAN ABSTRAK ............................................................................ vii
HALAMAN DAFTAR ISI......................................................................... viii
HALAMAN DAFTAR TABEL ................................................................. xii
HALAMAN DAFTAR GAMBAR ............................................................ xiii
BAB I PENDAHULUAN
1.1 Latar Belakang ............................................................. 1
1.2 Rumusan Masalah ........................................................ 3
1.3 Batasan Masalah .......................................................... 3
1.4 Tujuan Penelitian ......................................................... 3
1.5 Manfaat Penelitian ....................................................... 4
BAB II TINJAUAN PUSTAKA
2.1. Data dan Informasi ....................................................... 5
2.2. Pengertian File ............................................................. 5
2.3 Kode ASCII ................................................................. 6
2.4 Operator Logika ........................................................... 10
2.4.1 Operator XOR (Exclusive OR) ......................... 11
2.5 Kriptografi .................................................................. 11
2.5.1 Gambaran Umum Kriptografi .......................... 11
2.5.2 Tujuan Kriptografi ........................................... 14
2.6 Pola-pola Penyerangan Data ........................................ 15
2.7 Enkripsi dan Dekripsi ................................................... 16
2.8 Algoritma Kriptografi ................................................. 17
2.9 Algoritma Kriptografi Modern ..................................... 21
2.9.1 Algoritma Subtitusi ........................................... 22
2.9.2 Algoritma Transposisi ...................................... 23
2.9.3 Book Key Chiper ............................................. 23
2.9.4 Vernam Chiper ................................................. 24
2.10 Jenis Serangan terhadap Chiper Aliran ......................... 27
2.11 Steganografi ................................................................. 28
2.12 Metode Steganografi .................................................... 30
2.12.1 Metode Steganografi pada Text ........................ 30
2.12.2 Metode Steganografi pada Gambar .................. 33
2.12.3 Metode Steganografi pada Suara ...................... 34
2.12.4 Metode End of File (EoF) ................................ 36
2.13 Microsoft Visual Basic 6.0 ........................................... 36
2.14 Unified Modelling Language (UML) ............................ 40
BAB III METODOLOGI PENELITIAN
3.1 Metode Pengumpulan Data .......................................... 45
3.2 Metode Pengembangan Sistem ..................................... 45
3.3 Fase-fase Pengembangan Sistem .................................. 46
3.4 Kekurangan dan Kelebihan Pengembangan Sistem ....... 48
3.4.1 Kekurangan RAD ............................................ 48
3.4.2 Kelebihan RAD ............................................... 49
3.5 Kondisi Pengembangan Sistem .................................... 49
3.5.1 Kondisi yang Sesuai dengan RAD .................... 49
3.5.2 Kondisi yang Tidak Sesuai dengan RAD .......... 50
BAB IV PERANCANGAN DAN HASIL IMPLEMENTASI
4.1 Analisa Kebutuhan Aplikasi ......................................... 51
4.2 Prosedur Persiapan Pembuatan Aplikasi ....................... 52
4.3 Unit Bahasa Pemodelan ............................................... 52
4.4 Desain Input Output (I/O) ............................................ 60
4.4.1 Desain I/O Submenu Stego................................ 62
4.4.2 Desain I/O Submenu Unstego ........................... 62
4.4.3 Desain I/O Submenu About Us ......................... 63
4.5 Implementasi ............................................................... 63
4.6 Analisa Percobaan ........................................................ 65
4.7 Pengujian Program (Testing) ......................................... 68
4.7.1 Pengujian GUI / Black Box Testing ................... 69
4.7.2 Pengujian White Box Testing ............................ 69
4.8 Kuesioner ..................................................................... 72
BAB V PENUTUP
5.1 Kesimpulan ................................................................... 75
5.2 Saran ............................................................................. 75
DAFTAR PUSTAKA ............................................................................... 76
LAMPIRAN ............................................................................................. 77
DAFTAR TABEL
Tabel 2.1 Kode ASCII .................................................................................... 7
Tabel 2.2 Tabel Operator Logika .................................................................... 10
Tabel 2.3 Tabel Nilai Kebenaran Operator XOR ............................................. 11
Tabel 4.1 Skenario Use Case Proses Kripto dan Stego .................................... 53
Tabel 4.2 Skenario Use Case Proses Unkripto dan Unstego.............................. 55
Tabel 4.3 Daftar Aspek Pengujian ................................................................... 67
Tabel 4.4 Ringkasan Hasil Pengujian .............................................................. 67
Tabel 4.5 Tabel Kuesioner .............................................................................. 73
Tabel 4.6 Tabel Hasil Pengujian ..................................................................... 73
DAFTAR GAMBAR
Gambar 2.1 Struktur File .................................................................................... 6
Gambar 2.2 Skenario Komunikasi Dasar Kriptografi .......................................... 17
Gambar 2.3 Ilustrasi Kinerja Proses Enkripsi Konvensional ................................ 19
Gambar 2.4 Klasifikasi Kriptografi .................................................................... 21
Gambar 2.5 Tampilan Tool Box ......................................................................... 37
Gambar 2.6 Tool Textbox .................................................................................. 37
Gambar 2.7 Tool Combobox .............................................................................. 38
Gambar 2.8 Tool Command ............................................................................... 38
Gambar 2.9 Tampilan Properties ........................................................................ 39
Gambar 2.10 Tampilan Window Code Editor ....................................................... 39
Gambar 2.11 Notasi Actor .................................................................................... 40
Gambar 2.12 Notasi Class .................................................................................... 41
Gambar 2.13 Notasi Use Case .............................................................................. 41
Gambar 2.14 Notasi Package ............................................................................... 43
Gambar 2.15 Notasi Note ..................................................................................... 43
Gambar 2.16 Notasi Dependency ......................................................................... 43
Gambar 2.17 Notasi Association .......................................................................... 44
Gambar 2.18 Notasi Generalization ...................................................................... 44
Gambar 2.19 Notasi Realization ........................................................................... 44
Gambar 3.1 Fase-fase RAD ................................................................................ 47
Gambar 4.1 Use Case Kripto dan Stego .............................................................. 55
Gambar 4.2 Class Diagram Kripto dan Stego ...................................................... 55
Gambar 4.3 Activity Diagram Kripto dan Stego .................................................. 56
Gambar 4.4 Activity Diagram Unkripto dan Unstego .......................................... 57
Gambar 4.5 Activity Diagram Enkripsi dan Dekripsi .......................................... 57
Gambar 4.6 Activity Diagram Stego pada File .................................................... 58
Gambar 4.7 Activity Diagram Unstego pada File ............................................... 58
Gambar 4.8 Sequence Diagram Kripto dan Stego ............................................... 59
Gambar 4.9 Sequence Diagram Unkripto dan Unstego ....................................... 60
Gambar 4.10 Storyboard Menu Utama ................................................................. 61
Gambar 4.11 Storyboard Submenu Stego ............................................................... 62
Gambar 4.12 Storyboard Submenu Unstego .......................................................... 62
Gambar 4.13 Storyboard Submenu About Us ........................................................ 63
Gambar 4.14 Tampilan Awal Program ................................................................. 64
Gambar 4.15 Tampilan Menu Stego ..................................................................... 64
Gambar 4.16 Tampilan Menu Unstego ................................................................. 65
Gambar 4.17 Tampilan Message Box About Us ................................................... 65
Gambar 4.18 Menu Stego File .............................................................................. 66
Gambar 4.19 Tampilan MessageBox Setelah Selesai Stego .................................. 67
Gambar 4.20 Menu Unstego File .......................................................................... 67
Gambar 4.21 Tampilan MessageBox Setelah Selesai Unstego .............................. 68
Gambar 4.22 Graph Kripto Stego ......................................................................... 71
BAB I
PENDAHULUAN
1.1 Latar Belakang
Teknologi komunikasi dan informasi berkembang dengan pesat
dan memberikan pengaruh besar bagi kehidupan manusia. Seiring dengan
perkembangan teknologi sekarang ini yang semakin pesat maka proses
pengiriman data dapat dilakukan dengan mudah dan melalui berbagai
macam media yang telah ada antara lain, melalui media internet dengan
menggunakan fasilitas e-mail, melalui transfer data antar perangkat mobile
(handphone, PDA dan flashdisk) maupun dengan teknologi radio
frequency (bluethooth, IrDA, GPRS) hingga dengan menggunakan
jaringan komputer. [1]
Perkembangan yang pesat dalam proses pengiriman data
membawa dampak yang besar, yaitu masalah keamanan data yang di
kirim. Untuk itu, tidak mungkin mengirim data melalui media-media
tersebut secara polos (plain), melainkan harus dilakukan proses
pengamanan untuk data yang akan di kirim, salah satunya dilakukan
dengan cara melakukan enkripsi pada sebuah file.
Kriptografi dapat menjadi jawaban dari masalah tersebut. Sebagai
ilmu yang telah diaplikasikan untuk pengamanan data, kriptografi dapat
digunakan untuk mengamankan data-data penting pada sebuah file. Data
yang terkandung dalam file disandikan atau dienkripsi untuk diubah
menjadi simbol tertentu sehingga hanya orang tertentu saja yang dapat
mengetahui isi dari data tersebut.
Dalam perkembangan ilmu kritografi masa sekarang ini, telah
banyak tercipta algoritma-algoritma yang dapat digunakan untuk
mengubah data asli (plain text) menjadi simbol tertentu (chiper text). Salah
satu contohnya adalah algoritma Vernam Chiper. Algoritma ini termasuk
dalam algoritma kriptografi modern dan merupakan algoritma stream
chiper.
Namun pada era sekarang ini masih di rasa kurang dalam
pengamanan data menggunakan kriptografi. Setelah file tersebut di
enkripsi, kita perlu melakukan penyembunyian file ke dalam file lain
supaya pihak yang bukan berkepentingan tidak begitu curiga dalam
melihat file tersebut. Langkah seperti ini sering disebut dengan
Steganografi.
Steganografi merupakan salah satu cara yang sangat efektif untuk
mengurangi rasa curiga dari pihak-pihak lain (selain pengirim dan
penerima yang sah). Kebanyakan algoritma steganografi menggunakan
sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas
dalam penyelubungan pesan rahasia dalam sebuah selubung file.
Dalam perkembangan ilmu steganografi sekarang ini, terdapat
berbagai macam metode yang dapat digunakan untuk menyembunyikan
file tersebut. Salah satu contohnya adalah metode End of File (EoF).
Ada sedikit perbedaan antara steganografi dengan kriptografi.
Pada steganografi, penyembunyian atau penyamaran pesan ini dibuat
sedemikian rupa sehingga pihak lain tidak mengetahui bahwa ada pesan
lain di dalam pesan yang dikirim. Pesan inti tersebut tetap dipertahankan,
hanya dalam penyampaiannya dikaburkan atau disembunyikan dengan
berbagai cara. Hanya pihak penerima yang sah saja yang dapat mengetahui
pesan lain tersebut.
Sedang pada kriptografi, karakter pesan diubah atau diacak
menjadi bentuk lain yang tidak bermakna. Pesan yang disampaikan dalam
kriptografi menjadi mencurigakan karena ketidakbermaknaannya tersebut.
Sedang pesan dalam steganografi, terlihat seperti pesan biasa sehingga
kecil kemungkinan untuk dicurigai. Namun demikian, bukan berarti tidak
ada kekurangan pada steganografi ini. Kelemahan pada steganografi ini
terjadi apabila kita mengubah format pesan yang dikirimkan, maka pesan
rahasianyapun menjadi hilang.
Ada persamaan diantara steganografi dan kriptografi ini yaitu
keduanya digunakan secara bersamaan untuk menjamin keamanan pesan
rahasianya.
Berdasar pada analisa dari masalah tersebut, maka penulis
mengusulkan judul penelitian “Teknik Keamanan Data Menggunakan
Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan
Metode End of File (EoF)” sebagai bahan pertimbangan dalam proses
pengamanan data sehingga diharapkan tidak terjadi pencurian atau
penyadapan data.
1.2 Rumusan Masalah
Rumusan masalah yang muncul dari latar belakang yang telah di
sajikan di atas adalah sebagai berikut :
1. Bagaimana efek perubahan file antara sebelum dan sesudah proses ?
2. Bagaimana pengaruh ukuran data terhadap ukuran media file ?
1.3 Batasan Masalah
Dalam penelitian ini, agar tidak menyimpang dari maksud dan
tujuan dari penyusunan tugas akhir ini, maka penulis menitikberatkan pada
cara implementasi dari algoritma Vernam Chiper pada Kriptografi
ditambahkan metode End of File pada Steganografi. Aplikasi yang
dihasilkan hanya digunakan untuk membantu menggambarkan proses
enkripsi kemudian di sisipkan pada file lain dan dekripsi untuk
pengamanan file. Adapun aplikasi tersebut dibangun dengan menggunakan
software Microsoft Visual Basic 6.0.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mengamati perubahan file
yang terbentuk dari sebelum dan sesudah diproses serta mengetahui
pengaruh ukuran file terhadap ukuran media file yang terbentuk sehingga
akan menghasilkan sebuah perangkat lunak yang dapat
mengimplementasikan algoritma Vernam Chiper pada Kriptografi
ditambahkan metode End of File pada Steganografi untuk penyandian
berupa enkripsi dan dekripsi data dalam pengamanan file.
1.5 Manfaat Penelitian
Manfaat yang diperoleh dalam penelitian ini adalah :
1. Manfaat bagi Universitas
Sebagai usaha untuk mengamankan sebuah file yang merupakan data
penting dimana hanya orang tertentu saja yang berhak mengetahui.
2. Manfaat bagi Akademik
Sebagai bahan acuan bagi akademik untuk dijadikan tolak ukur
pemahaman dan penguasaan tentang teori yang telah diberikan di
bangku kuliah.
3. Manfaat bagi Penulis
a. Penulis dapat menerapkan ilmu yang telah diperoleh selama kuliah.
b. Memberi bekal pengetahuan yang dapat dipergunakan untuk
persiapan dalam menghadapi kerja di masa yang akan datang.
BAB II
TINJAUAN PUSTAKA
2.1 Data dan Informasi
Data adalah sesuatu yang belum mempunyai arti bagi
penerimanya dan masih memerlukan adanya suatu pengolahan. Data bisa
berwujud suatu keadaan, gambar, suara, huruf, angka, matematika, bahasa
ataupun simbol-simbol lainnya yang bisa kita gunakan sebagai bahan
untuk melihat lingkungan, objek, kejadian ataupun suatu konsep. [2]
Data merupakan besaran yang menyampaikan suatu arti. Data
komputer disimpan sebagai barisan muatan (listrik) yang diatur dalam satu
pola sehingga merepresentasikan sebuah informasi. Dengan kata lain data
menunjuk pada bentuk informasi (pola elektris). Data bukan merupakan
informasi itu sendiri.
Sedang informasi merupakan hasil pengolahan dari sebuah
model, formasi, organisasi ataupun suatu perubahan bentuk dari data yang
memiliki nilai tertentu dan bisa digunakan untuk menambah pengetahuan
bagi yang menerimanya. Informasi juga bisa disebut sebagai hasil
pengolahan atau pemrosesan data.
2.2 Pengertian File
File atau Berkas adalah sekumpulan data (informasi) yang
berhubungan yang diberi nama dan tersimpan di dalam media
penyimpanan sekunder (secondary storage). File memiliki ekstensi.
Ekstensi berkas merupakan penandaan jenis berkas lewat nama berkas.
Ekstensi biasanya ditulis setelah nama berkas dipisahkan dengan sebuah
tanda titik. Pada sistem yang lama (MS-DOS) ekstensi hanya
diperbolehkan maksimal 3 huruf, contohnya : exe, bat, com, txt. Batasan
itu dihilangkan pada sistem yang lebih baru (Windows), contohnya : mpeg,
java. Pada UNIX bahkan dikenal ada file yang memiliki lebih dari satu
ekstensi, contohnya : tar.Z, tar.gz. [1]
Struktur pada file terdiri dari 2 bagian yaitu header file dan isi
file. Pada header file terdapat kode biner maupun kode ASCII yang
berisikan tentang fungsi utama pada file. Pada isi file terdapat isi dari file
yang telah terbentuk baik berupa text, lagu, video, dll. Di bawah ini
merupakan gambar struktur file yang ada pada semua file.[3]
Gambar 2.1 : Struktur File
2.3 Kode ASCII
Beberapa aplikasi menggunakan data yang bukan hanya bilangan
tetapi juga huruf dari alfabet dan karakter khusus lainnya. Data semacam
ini disebut dengan data alfanumerik dan mungkin dapat ditunjukkan
dengan kode numerik. Jika bilangan-bilangan dimasukkan dalam data,
maka bilangan-bilangan tersebut juga dapat ditunjukkan dengan kode
khusus.
Set karakter alfanumerik secara khusus mencakup 26 huruf alfabet
(termasuk huruf besar dan huruf kecil), angka dalam digit sepuluh desimal,
dan sejumlah simbol seperti +, =, *, $, …, dan !. Dua kode alfabet yang
paling umum dipakai adalah ASCII (American Standard Code for
Information Interchange) dan EBCDIC (Extended Binary Coded Decimal
Interchange Code). ASCII merupakan kode 7-bit dan EBCDIC berupa
kode 8- bit. Jika suatu komputer menangani 8-bit (1-byte) kode lebih
efisien, versi 8-bit, disebut dengan ASCII-8 juga telah dikembangkan.
Sistem American Standard Code for Information Interchange
(ASCII): ASCII dan EBCDIC merupakan cikal bakal dari set karakter
lainnya. ASCII merupakan set karakter yang paling umum digunakan
hingga sekarang. Set karakter ASCII terdiri dari 128 – (27) buah karakter
yang masing-masing memiliki lebar 7-bit atau gabungan tujuh angka 0 dan
1, dari 0000000 sampai dengan 1111111. Mengapa 7-bit? Karena
komputer pada awalnya memiliki ukuran memori yang sangat terbatas,
dan 128 karakter dianggap memadai untuk menampung semua huruf Latin
dengan tanda bacanya, dan beberapa karakter kontrol. ASCII telah
dibakukan oleh ANSI (American National Standards Institute) menjadi
standar ANSI X3.4-1986. Adapun kode-kode pada sistem-sistem tersebut
di atas dapat dilihat pada tabel di bawah ini:
Tabel 2.1 : Kode ASCII [2]
Des Hex Biner ASCII Des Hex Biner ASCII
0 0 00000000 null 128 80 10000000 Ç
1 1 00000001 129 81 10000001 ű
2 2 00000010 ☻ 130 82 10000010 é
3 3 00000011 ♁ 131 83 10000011 â
4 4 00000100 ♂ 132 84 10000100 ä
5 5 00000101 ♀ 133 85 10000101 à
6 6 00000110 ☿ 134 86 10000110 å
7 7 00000111 ● 135 87 10000111 ç
8 8 00001000 ╼ 136 88 10001000 ê
9 9 00001001 ╻ 137 89 10001001 ë
10 A 00001010 ╽ 138 8A 10001010 è
11 B 00001011 ☾ 139 8B 10001011 ï
12 C 00001100 ☽ 140 8C 10001100 î
13 D 00001101 ♃ 141 8D 10001101 ì
14 E 00001110 ♄ 142 8E 10001110 Ä
15 F 00001111 ☼ 143 8F 10001111 Å
16 10 00010000 ╸ 144 90 10010000 É
17 11 00010001 ╺ 145 91 10010001 æ
18 12 00010010 ↕ 146 92 10010010 Æ
19 13 00010011 !! 147 93 10010011 ô
20 14 00010100 ¶ 148 94 10010100 ö
21 15 00010101 § 149 95 10010101 ò
22 16 00010110 ╶ 150 96 10010110 û
23 17 00010111 ↖ 151 97 10010111 Ù
24 18 00011000 ↑ 152 98 10011000 ij
25 19 00011001 ↓ 153 99 10011001 Ö
26 1A 00011010 → 154 9A 10011010 Ü
27 1B 00011011 ← 155 9B 10011011 ¢
28 1C 00011100 ↗ 156 9C 10011100 £
29 1D 00011101 ↔ 157 9D 10011101 ¥
30 1E 00011110 ╷ 158 9E 10011110 Pt
31 1F 00011111 ╹ 159 9F 10011111 ƒ
32 20 00100000 Spasi 160 A0 10100000 á
33 21 00100001 ! 161 A1 10100001 í
34 22 00100010 “ 162 A2 10100010 ó
35 23 00100011 # 163 A3 10100011 ú
36 24 00100100 $ 164 A4 10100100 ñ
37 25 00100101 % 165 A5 10100101 Ñ
38 26 00100110 & 166 A6 10100110 а
39 27 00100111 „ 167 A7 10100111 о
40 28 00101000 ( 168 A8 10101000
41 29 00101001 ) 169 A9 10101001 ⌐
42 2A 00101010 * 170 AA 10101010 ¬
43 2B 00101011 + 171 AB 10101011 ½
44 2C 00101100 , 172 AC 10101100 ¼
45 2D 00101101 - 173 AD 10101101
46 2E 00101110 . 174 AE 10101110 «
47 2F 00101111 / 175 AF 10101111 »
48 30 00110000 0 176 B0 10110000 ╲
49 31 00110001 1 177 B1 10110001 ╳
50 32 00110010 2 178 B2 10110010 ╴
51 33 00110011 3 179 B3 10110011 |
52 34 00110100 4 180 B4 10110100 ┤
53 35 00110101 5 181 B5 10110101 ╡
54 36 00110110 6 182 B6 10110110 ╢
55 37 00110111 7 183 B7 10110111 ╖
56 38 00111000 8 184 B8 10111000 ╕
57 39 00111001 9 185 B9 10111001 ╣
58 3A 00111010 : 186 BA 10111010 ║
59 3B 00111011 ; 187 BB 10111011 ╗
60 3C 00111100 < 188 BC 10111100 ╝
61 3D 00111101 = 189 BD 10111101 ╜
62 3E 00111110 > 190 BE 10111110 ╛
63 3F 00111111 ? 191 BF 10111111 ┐
64 40 01000000 @ 192 C0 11000000 └
65 41 01000001 A 193 C1 11000001 ┴
66 42 01000010 B 194 C2 11000010 ┬
67 43 01000011 C 195 C3 11000011 ├
68 44 01000100 D 196 C4 11000100 ⌢
69 45 01000101 E 197 C5 11000101 ┼
70 46 01000110 F 198 C6 11000110 ╞
71 47 01000111 G 199 C7 11000111 ╟
72 48 01001000 H 200 C8 11001000 ╚
73 49 01001001 I 201 C9 11001001 ╔
74 4A 01001010 J 202 CA 11001010 ╩
75 4B 01001011 K 203 CB 11001011 ╦
76 4C 01001100 L 204 CC 11001100 ╠
77 4D 01001101 M 205 CD 11001101 ═
78 4E 01001110 N 206 CE 11001110 ╬
79 4F 01001111 O 207 CF 11001111 ╧
80 50 01010000 P 208 D0 11010000 ╨
81 51 01010001 Q 209 D1 11010001 ╤
82 52 01010010 R 210 D2 11010010 ╥
83 53 01010011 S 211 D3 11010011 ╙
84 54 01010100 T 212 D4 11010100 ╘
85 55 01010101 U 213 D5 11010101 ╒
86 56 01010110 V 214 D6 11010110 ╓
87 57 01010111 W 215 D7 11010111 ╫
88 58 01011000 X 216 D8 11011000 ╪
89 59 01011001 Y 217 D9 11011001 ┘
90 5A 01011010 Z 218 DA 11011010 ┌
91 5B 01011011 [ 219 DB 11011011 ╯
92 5C 01011100 \ 220 DC 11011100 ╮
93 5D 01011101 ] 221 DD 11011101 ╰
94 5E 01011110 ^ 222 DE 11011110 ╱
95 5F 01011111 _ 223 DF 11011111 ╭
96 60 01100000 ` 224 E0 11100000 Α
97 61 01100001 a 225 E1 11100001 Β
98 62 01100010 b 226 E2 11100010 Г
99 63 01100011 c 227 E3 11100011 Π
100 64 01100100 d 228 E4 11100100 Σ
101 65 01100101 e 229 E5 11100101 Ơ
102 66 01100110 f 230 E6 11100110 Μ
103 67 01100111 g 231 E7 11100111 Τ
104 68 01101000 h 232 E8 11101000 Ф
105 69 01101001 i 233 E9 11101001 Θ
106 6A 01101010 j 234 EA 11101010 Ω
107 6B 01101011 k 235 EB 11101011 Ό
108 6C 01101100 l 236 EC 11101100 ∞
109 6D 01101101 m 237 ED 11101101 Ф
110 6E 01101110 n 238 EE 11101110 Є
111 6F 01101111 o 239 EF 11101111
112 70 01110000 p 240 F0 11110000
113 71 01110001 q 241 F1 11110001 ±
114 72 01110010 r 242 F2 11110010 >
115 73 01110011 s 243 F3 11110011 <
116 74 01110100 t 244 F4 11110100 ⌠
117 75 01110101 u 245 F5 11110101 ⌡
118 76 01110110 v 246 F6 11110110 ÷
119 77 01110111 w 247 F7 11110111
120 78 01111000 x 248 F8 11111000 ╻
121 79 01111001 y 249 F9 11111001 .
`122 7A 01111010 z 250 FA 11111010 .
123 7B 01111011 { 251 FB 11111011 √
124 7C 01111100 | 252 FC 11111100 N
125 7D 01111101 } 253 FD 11111101 2
126 7E 01111110 ~ 254 FE 11111110 ╵
127 7F 01111111 ⌂ 255 FF 11111111 blank
2.4 Operator Logika
Operator logika adalah simbol-simbol yang digunakan untuk
melakukan ekspresi terhadap data-data logika. Proses operasi tersebut
akan menghasilkan salah satu dari dua jenis nilai kebenaran yaitu TRUE
dan FALSE atau 1 dan 0. Simbol-simbol operator logika tersebut dapat
dilihat pada tabel yang ada di bawah ini :
Tabel 2.2 : Tabel Operator Logika
Operator Keterangan
Not Tidak
And Dan
Or Atau
Xor Exclusive Or
2.4.1 Operator XOR (Exclusive Or)
Operator biner XOR banyak digunakan dalam perhitungan biner
untuk algoritma kriptografi tertentu. Notasi matematis untuk operator
XOR adalah . Operator XOR merupakan operator yang digunakan
untuk dua buah ekspresi. Operator XOR akan menghasilkan nilai true atau
1 jika kedua ekpresi memiliki nilai yang berbeda. Operator xor akan
menghasilkan nilai 0 atau 0 jika kedua espresi bernilai sama.
Tabel 2.3 : Tabel Nilai Kebenaran Operator XOR
Ekspresi1 Ekspresi2 Ekspresi 1 XOr Ekspresi2
0 0 0
0 1 1
1 0 1
1 1 0
2.5 Kriptografi
2.5.1 Gambaran Umum Kriptografi
Kriptografi merupakan sebuah ilmu yang digunakan untuk
penyandian data. Kriptografi telah dikenal dan dipakai cukup lama sejak
kurang lebih tahun 1900 sebelum masehi pada prasasti-prasasti kuburan.
Ilmu Kriptografi sebenarnya sudah mulai dipelajari manusia sejak
tahun 400 SM, yaitu pada zaman Yunani kuno. Dari catatan bahwa
“Penyandian Transposisi” merupakan sistem kriptografi pertama yang
digunakan atau dimanfaatkan. Bidang ilmu ini terus berkembang seiring
dengan kemajuan peradaban manusia, dan memegang peranan penting
dalam strategi peperangan yang terjadi dalam sejarah manusia, mulai dari
sistem kriptografi “Caesar Chiper” ang terkenal pada zaman Romawi
kuno, “Playfair Cipher” yang digunakan Inggris dan “ADFVGX Cipher”
yang digunakan Jerman pada Perang Dunia I hingga algoritma-algoritma
kriptografi rotor yang populer pada Perang Dunia II , seperti Sigaba / M-
134 (Amerika Serikat), Typex ( Inggris ), Purple (Jepang), dan mesin
kriptografi legendaris Enigma (Jerman). Sejarah telah dipenuhi oleh
contoh-contoh orang yang berusaha merahasiakan informasi rahasia
mereka dari orang lain.
Seiring dengan perkembangan zaman, kebutuhan akan metode
yang lebih canggih tidak dapat dihindari. Sekarang, dengan adanya era
informasi, kebutuhan itu menjadi lebih penting lagi. Dengan adanya
fasilitas internet, maka permintaan akan pelayanan informasi semakin
meningkat dengan seiringnya perkembangan teknologi. Pertukaran data
yang sensitif seperti nomor account kartu kredit, sudah sering dilakukan
dan menjadi hal yang biasa di dalam dunia internet. Karena itu,
melindungi data sudah menjadi hal penting yang sangat kruisal di dalam
hidup.
Ada tiga istilah yang berkaitan dengan proteksi data yaitu
kriptografi, kriptologi, dan kriptanalisis. Arti ketiganya kurang lebih sama.
Secara teknis, kriptologi adalah ilmu yang mempelajari tentang
komunikasi pada jalur yang tidak aman beserta masalah-masalah yang
berhubungan dengan itu.
Kriptografi berasal dari kata “Crypto” yang berarti rahasia dan
“graphy” yang berarti tulisan. Jadi, dapat dikatakan bahwa kriptografi
adalah tulisan yang tersembunyi. Dengan adanya tulisan yang tersembunyi
ini, orang-orang tidak mengetahui bagaimana tulisan tersebut
disembunyikan dan tidak mengetahui bagaimana cara membaca maupun
menerjemahkan tulisan tersebut. William Stallings mendefinisikan
kriptografi sebagai “the art and science of keeping messages secure” [4].
Kriptografi berbasis pada algoritma pengkodean data informasi
yang mendukung kebutuhan dari dua aspek keamanan informasi, yaitu
secrecy (perlindungan terhadap kerahasiaan data informasi) dan
authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi
yang tidak diinginkan.
Kriptografi menjadi dasar bagi keamanan komputer dan jaringan
karena merupakan sarana bagi distribusi data dan informasi. Sehingga data
dan informasi tersebut harus diamankan agar hanya orang-orang yang
berhak mengaksesnya yang dapat mengetahui maupun menggunakan data
tersebut. Salah satu cara yang paling banyak digunakan dalam
mengamankan data adalah dengan kriptografi. Data-data tersebut
diamankan dengan sedemikian rupa oleh pengirim sehingga orang lain
tidak dapat mengenali data tersebut.
Pembakuan penulisan pada kriptografi dapat ditulis dalam bahasa
matematika. Fungsi-fungsi yang mendasar dalam kriptografi adalah
enkripsi dan dekripsi. Enkripsi adalah proses mengubah suatu pesan asli
(plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext).
C = E (M), dimana :
M = pesan asli
E = proses enkripsi
C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi)
Sedangkan dekripsi adalah proses mengubah pesan dalam suatu
bahasa sandi menjadi pesan asli kembali.
M = D (C)
D = proses dekripsi
Umumnya, selain menggunakan fungsi tertentu dalam melakukan
enkripsi dan dekripsi, seringkali fungsi itu diberi parameter tambahan yang
disebut dengan istilah kunci.
2.5.2 Tujuan Kriptografi
Dalam teknologi informasi, telah dan sedang dikembangkan cara
untuk menangkal berbagai bentuk serangan semacam penyadapan dan
pengubahan data yang dikirimkan. Salah satu cara yang ditempuh
mengatasi masalah ini ialah dengan menggunakan kriptografi yang
menggunakan transformasi data sehingga data yang dihasilkan tidak dapat
dimengerti oleh pihak yang tidak berhak mengakses.
Transformasi ini memberikan solusi pada dua macam masalah
keamanan data, yaitu masalah privasi (privacy) dan keotentikan
(authenticatioan). Privaci mengandung arti bahwa data yang dikirimkan
hanya dapat dimengerti informasinya oleh penerima yang sah atau berhak.
Sedangkan keotentikan mencegah pihak ketiga untuk mengirimkan data
yang salah atau mengubah data yang dikirimkan.
Kriptografi yang baik tidak ditentukan oleh kerumitan dalam
mengolah data atau pesan yang akan disampaikan. Ada 4 syarat yang perlu
dipenuhi, yaitu:
a. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang
memliki kewenangan.
b. Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti,
penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.
c. Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang
dia terima tidak dimodifikasi saat dalam proses transmisi data.
d. Non-Repudiation. Pengirim pesan harus tidak bisa menyangkal pesan
yang dia kirimkan.
2.6 Pola-pola Penyerangan Data
Proteksi data dan informasi dalam komunikasi komputer menjadi
penting karena nilai informasi itu sendiri dan meningkatnya penggunaan
komputer di berbagai sektor. Melihat kenyataan semakin banyak data yang
diproses dengan komputer dan dikirim melalui perangkat komunikasi
elektronik maka ancaman terhadap pengamanan data akan semakin
meningkat. Beberapa pola ancaman terhadap komunikasi data dalam
komputer dapat diterangkan sebagai berikut [5]:
a. Interruption
Interception terjadi bila data yang dikirimkan dari A tidak
sampai pada orang yang berhak B. Interruption merupakan pola
penyerangan terhadap sifat availability (ketersediaan data).
b. Interception
Serangan ini terjadi bila pihak ketiga C berhasil membaca data
yang dikirimkan. Interception merupakan pola penyerangan terhadap
sifat confidentiality (kerahasiaan data).
c. Modification
Pada serangan ini pihak ketiga C berhasil merubah pesan yang
dikirimkan. Modification merupakan pola penyerangan terhadap sifat
integrity (keaslian) data.
d. Fabrication
Pada serangan ini, penyerang berhasil mengirimkan data ke
tujuan dengan memanfaatkan identitas orang lain. Fabrication
merupakan pola penyerangan terhadap sifat authenticity.
Ancaman-ancaman tersebut di atas menjadi masalah terutama
dengan semakin meningkatnya komunikasi data yang bersifat rahasia
seperti: pemindahan dana secara elektronik kepada dunia perbankan atau
pengiriman dokumen rahasia pada instansi pemerintah. Untuk
mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk
melindungi data yang dikirim melalui saluran komunikasi salah satunya
adalah dengan teknik enkripsi. Untuk masalah kekuatan pengamanannya
tergantung pada algoritma metode enkripsi tersebut dan juga kunci yang
digunakan di dalamnya.
2.7 Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi chiperteks disebut enkripsi
(encryption) atau enciphering (standard nama menurut ISO 7498-2)
sedangkan proses mengembalikan chiperteks mejadi plainteks disebut
dekripsi (decryption) atau dechiphering (standard ISO 7498-2).[6]
Enkripsi adalah transformasi data dalam bentuk yang tidak dapat
terbaca dengan sebuah kunci tertentu. Tujuannya adalah untuk
meyakinkan privasi dengan menyembunyikan informasi dari orang-orang
yang tidak ditujukan, bahkan mereka yang memiliki akses ke data
terenkripsi. Sedangkan dekripsi merupakan kebalikan dari enkripsi, yaitu
transformasi data terenkripsi kembali ke bentuknya semula.
Enkripsi dilakukan pada saat pengiriman dengan cara mengubah
data asli menjadi data rahasia, sedangkan dekripsi dilakukan pada saat
penerimaan dengan cara mengubah data rahasia menjadi data asli. Jadi
data yang dikirimkan selama proses pengiriman adalah data rahasia,
sehingga data asli tidak dapat diketahui oleh pihak yang tidak
berkepentingan. Data asli hanya dapat diketahui oleh penerima dengan
menggunakan kunci rahasia.
Enkripsi dan dekripsi pada umumnya membutuhkan penggunaan
sejumlah informasi rahasia, disebut sebagai kunci. Untuk beberapa
mekanisme enkripsi, kunci yang sama digunakan baik untuk enkripsi dan
dekripsi berbeda.
A Encrypt Decrypt B
C
Plaintext Ciphertext Plaintext
Encryption
Key
Decryption
Key
Gambar 2.2 : Skenario Komunikasi Dasar Kriptografi
Di dalam skenario komunikasi dasar, seperti yang diperlihatkan
pada Gambar 2.1, terdapat dua belah pihak, sebut saja A dan B, yang ingin
berkomunikasi satu sama lain.
Kemudian pihak ketiga, C, adalah seorang eavesdropper (orang
yang mengakses informasi rahasia tanpa izin). Ketika A ingin
mengirimkan informasi, yang disebut plaintext, kepada B, dia
mengenkripsi plaintext tersebut dengan menggunakan metode yang telah
dirancang oleh B. Biasanya, metode enkripsi diketahui oleh si
eavesdropper, dalam hal ini adalah C. Yang membuat pesan tersebut tetap
bersifat rahasia adalah key-nya. Ketika B menerima pesan yang telah
dienkripsi, yang disebut dengan ciphertext, dia mengubahnya kembali
menjadi plaintext dengan menggunakan key dekripsi.
2.8 Algoritma Kriptografi
Cryptographic system atau cryptosystem adalah suatu fasilitas
untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam
sistem ini, seperangkat parameter yang menentukan transformasi
pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi
diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-
kunci yang digunakan untuk proses pengenkripsian dan pendekripsian
tidak perlu identik, tergantung pada sistem yang digunakan [7].
Kriptosistem terdiri dari sebuah algoritma, plaintext, chipertext dan kunci-
kunci. Secara umum, kriptosistem digolongkan menjadi 2 buah, yaitu:
1. Kriptosistem simetri
2. Kriptosistem asimetri
Dalam kriptosystem simetri, algoritma yang digunakan hanya
membutuhkan satu kunci untuk proses enkripsi dan dekripsi. Sedang
dalam kriptografi asimetri, algoritma yang digunakan membutuhkan dua
kunci yang berbeda dalam proses enkripsi dan dekripsi pesan.
Kriptosistem dengan menggunakan symmetric cryptography kadang
disebut sebagai Secret-key cryptography merupakan bentuk kryptografi
yang lebih tradisional, dimana sebuah kunci tunggal dapat digunakan
untuk mengenkrip dan mendekrip pesan. Secret-key cryptography tidak
hanya berkaitan dengan enkripsi tetapi juga berkaitan dengan otentikasi,
disebut juga message authentication codes.
Masalah utama yang dihadapi secret-key cryptography adalah
membuat pengirim dan penerima menyetujui kunci rahasia tanpa ada
orang lain yang mengetahuinya. Ini membutuhkan metode dimana dua
pihak dapat berkomunikasi tanpa takut akan disadap. Kelebihan secret-key
cryptography dari public-key cryptography adalah lebih cepat. Teknik
yang paling umum dalam secret-key cryptography adalah block ciphers,
stream ciphers, dan message authentication codes. Berdasarkan jenis
kunci yang digunakannya, algoritma kriptografi dikelompokan menjadi
dua bagian, yaitu :
a. Symmetric Algorithm
Symmetric algorithm atau disebut juga secret key algorithm adalah
algoritma yang kunci enkripsinya dapat dihitung dari kunci dekripsi dan
begitu pula sebaliknya, kunci dekripsi dapat dihitung dari kunci enkripsi.
Pada sebagian besar symmetric algorithm kunci enkripsi dan kunci
dekripsi adalah sama. Symmetric algorithm memerlukan kesepakatan
antara pengirim dan penerima pesan pada suatu kunci sebelum dapat
berkomunikasi secara aman. Keamanan symmetric algorithm tergantung
pada rahasia kunci. Pemecahan kunci berarti memungkinkan setiap orang
dapat mengenkripsi dan mendekripsi pesan dengan mudah. Symmetric
algorithm dapat dikelompokkan menjadi dua jenis, yaitu stream cipher
dan block cipher. Stream cipher beroperasi bit per bit (atau byte per byte)
pada satu waktu. Sedangkan block cipher beroperasi per
kelompokkelompok bit yang disebut blok (block) pada satu waktu.
b. Asymmetric Algorithm
Asymmetric algorithm atau disebut juga public key algorithm
didesain agar memudahkan dalam distribusi kunci yang digunakan untuk
enkripsi dan dekripsi. Kunci dekripsi pada public key algorithm secara
praktis tidak dapat dihitung dari kunci enkripsi. Algoritma ini disebut
“public key” karena kunci dapat dibuat menjadi publik. Setiap orang dapat
menggunakan kunci enkripsi untuk mengenkripsi pesan, tetapi hanya
orang yang memiliki kunci dekripsi yang dapat mendekripsi pesan
tersebut. Pada sistem ini kunci enkripsi sering disebut kunci publik (public
key), dan kunci dekripsi disebut kunci rahasia (private key).
Metode kriptosystem simetri disebut juga dengan enkripsi simetri
atau enkripsi konvensional. Gambar di bawah ini mengilustrasikan kinerja
dari proses enkripsi konvensional.
Gambar 2.3 : Ilutrasi Kinerja Proses Enkripsi Konvensional
Proses enkripsi terdiri dari sebuah algoritma dan sebuah kunci.
Kunci adalah sebuah nilai yang terlepas dari pesan asli (plaintext) dan
mengontrol algoritma yang dipakai. Penerapan algoritma akan
menghasilkan output yang berbeda sesuai dengan kunci yang digunakan.
Mengubah kunci berarti mengubah output dari algoritma yang dipakai.
Setelah chipertext dihasilkan, chipertext tersebut dapat diubah
kembali menjad pesan asli dengan algoritma dekripsi dan dengan kunci
yang sama seperti yang digunakan pada saat enkripsi.
Keamanan dari enkripsi konvensional ini terdiri dari beberapa
faktor. Pertama, algoritma enkripsi harus benar-benar teruji, sehingga tidak
dimungkinkan untuk mendekripsi sebuah pesan hanya dalam bentuk
ciphertext. Kedua, keamanan enkripsi konvensional juga ditentukan oleh
kerahasiaan kunci yang digunakan, bukan kerahasiaan algoritma yang
digunakan. Jadi, kita juga harus yakin bahwa dekripsi tidak dimungkinkan
hanya dengan mengetaui ciphertext dan algoritma yang digunakan tanpa
mengetahui kunci yang digunakan.
Bentuk umum enkripsi konvensional dapat dilihat dari contoh
berikut. User A akan mengenkripsi plaintext X=[x1,X2,…,Xm] (m elemen
dari X merupakan huruf dari alphabet pesan) dengan kunci
K=[K1,K2,…,Kj]. Dengan pesan X dan kunci K tersebut, akan dihasilkan
chipertext Y=[Y1,Y2,…,Yn]. Maka kita dapat menuliskan rumus :
Y=Ek(X)
Selanjutnya, chipertext tersebut dikirimkan ke user B. User B akan
mendekripsi chipertext tersebut agar menjadi pesan asli dengan algoritma
dekripsi dan kunci yang sama seperti yang digunakan pada saat enkripsi.
Hal ini dapat dirumuskan sebagai berikut:
X=Dk(Y)
2.9 Algoritma Kriptografi Modern
Gambar 2.4 : Klasifikasi Kriptografi
Kriptografi dibagi dalam dua bagian, yaitu cipher modern dan
klasikal. Mode klasikal biasanya menggunakan mode karakter, sehingga
kemampuan dari mode ini terbatas karena keterbatasan jumlah karakter.
Sedang pada kriptografi modern, pada proses enkripsi dan dekripsi
menggunakan rangkaian bit dalam bentuk biner, 0 dan 1. Rangkaian bit
yang menyatakan plainteks dienkripsi menjadi ciphertext dalam bentuk
rangkaian bit, begitu pula sebaliknya.
Perkembangan algoritma kriptografi modern berbasis bit didorong
oleh penggunaan komputer digital yang merepresentasikan data dalam
bentuk biner. Algoritma kriptografi yang beroperasi dalam mode bit dapat
dikelompokkan menjadi dua kategori :
a. Cipher Aliran (Stream Cipher)
Merupakan algoritma kriptografi yang beroperasi pada plaintext atau
cipher text dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit
dienkripsikan atau didekripsikan bit per bit.Yang termasuk dalam
kelompoh cipher aliran adalah algoritma vernam cipher.
b. Cipher Block(Block Cipher)
Adalah algoritma kriptografi yang beroperasi pada plaintext atau
ciphertext dalam bentuk blok bit, yang dalam hal ini rangkaian bit
dibagi menjadi blok-blok bit, yang panjangnya sudah ditentukan
sebelumnya. misalnya panjang blok adalah 64 bit, maka algoritma
enkripsi memperlakukan 8 karakter setiap kali penyandian.
(1 karakter= 8 bit dalam pengkodean ASCII)
2.9.1 Algoritma Subtitusi
Caesar cipher adalah cipher substitusi sederhana yang mencakup
pergeseran alfabet 3 posisi ke kanan. Caesar cipher merupakan subset dari
cipher polialfabetik Vigenere. Pada Caesar cipher karakter-karakter pesan
dan pengulangan kunci dijumlahkan bersama, modulo 26. Dalam
penjumlahan modulo 26, huruf-huruf A-Z dari alfabet masing-masing
memberikan nilai 0 sampai 25.
Caesar Cipher diperkenalkan oleh Julius Caesar yang mengubah
huruf-huruf dalam plaintext dengan huruf-huruf lain yang dilakukan secara
konsisten.
Contoh:
Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z
Chipper : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Sehingga, ketika pesan yang akan dikirim (plaintext) berbunyi
“universitas” maka ditulis (ciphertext) dengan ”XQLYHUVLWDV
JXQDGDUPD”. Si Penerima pesan tentu harus mengetahui kode
pembacaannya (yang diberikan oleh si Pengirim) atau ia mengotak-atik
sendiri kode-kode itu.
Algoritma di atas adalah setiap huruf plaintext p, akan disubstitusi
menjadi huruf ciphertext c dengan formula: C=E(3, p) = (p + 3) mod 26,
atau secara umum algoritma Caesar adalah :
C = E(k, p) = (p + k) mod 26 di mana k, diambil dari rentang 0
(huruf A) sampai 25 (huruf Z). Algoritma dekripsi menjadi:
p = D(k,c) = (C – k) mod 26.
Tipe cipher ini dapat diserang menggunakan analisis frekuensi.
Dalam frekuensi analisis, digunakan karakteristik frekuensi yang tampak
dalam penggunaan huruf-huruf alfabet pada bahasa tertentu. Tipe
cryptanalysis ini dimungkinkan karena Caesar cipher adalah
monoalfabetik cipher atau cipher substitusi sederhana, dimana karakter
ciphertext disubstitusi untuk setiap karakter plaintext. Serangan ini dapat
diatasi dengan menggunakan substitusi polialfabetik. Substitusi
polialfabetik dicapai melalui penggunaan beberapa cipher substitusi.
Namun substitusi ini dapat diserang dengan penemuan periode, saat
substitusi berulang kembali.
2.9.2 Algoritma Transposisi
Pada cipher ini, huruf-huruf plaintext dipermutasi. Sebagai contoh,
huruf-huruf plaintext A T T A C K A T D A W N dapat dipermutasi
menjadi D C K A A W N A T A T T. Cipher transposisi kolumnar adalah
cipher dimana plaintext ditulis secara horisontal pada kertas dan dibaca
secara vertikal. Cipher transposisi dapat diserang melalui analisis
frekuensi, namun cipher menyembunyikan properti statistik dari pasangan
huruf-huruf, seperti IS dan TOO.
2.9.3 Book Key Cipher
Cipher ini menggunakan teks dari sebuah sumber (misalnya buku)
untuk mengenkripsi plaintext. Kunci, diketahui oleh pengirim dan
penerima yang dimaksud, dapat berupa halaman dan jumlah baris dari teks
pada buku. Teks ini adalah karakter yang sesuai untuk karakter dengan
plaintext, dan penjumlahan modulo 26 dijalankan untuk memperngaruhi
enkripsi. Running key cipher mengeliminasi periodisitas, namun masih
dapat diserang dengan memanfaatkan redundansi pada kunci.
2.9.4 Vernam Cipher
a. Gambaran Umum
Vernam cipher merupakan algoritma kriptografi yang ditemukan
oleh Mayor J. Maugborne dan G. Vernam. Algoritma ini merupakan
algoritma berjenis symmetric key yang artinya bahwa kunci yang
digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang
sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream
cipher dimana cipher berasal dari hasil XOR antara bit plaintext dan bit
key. Algoritma Vernam cipher diadopsi dari one-time pad cipher, dimana
dalam hal ini karakter diganti dengan bit (0 atau 1). Dengan kata lain,
Vernam Cipher merupakan versi lain dari one-time pad cipher.
Dalam proses enkripsi,cipherteks diperoleh dengan melakukan
penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci, seperti
terlihat pada rumus di bawah ini :
c1 = (p1 + k1) mod 2 …… 2.1
Dimana :
c1 = cipher teks
p1 = plainteks
k1 = kunci
Sedangkan dalam proses dekripsi, untuk mendapatkan kembali
plainteks, diperoleh dengan melakukan penjumlahan modulo 2 satu bit
cipherteks dengan satu bit kunci :
p1 =( c1 - k1 ) mod 2 …… 2.2
Pada cipher aliran, bit hanya mempunya dua buah nilai, sehingga
proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut, yaitu
berubah atau tidak berubah. Dua keadaan tersebut ditentukan oleh kunci
enkripsi yang disebut dengan aliran-bit-kunci (keystream). Oleh karena
operasi penjumlahan modulp 2 identik dengan operasi bit dengan operator
XOR, maka persamaan 2.1 dapat ditulis secara sederhana sebagai berikut:
c1 = p1 XOR k1 …… 2.3
Sedangkan pada proses pendekripsian dituliskan:
p1 = c1 XOR k1 …… 2.4
Dalam operator logika XOR, hasil akan T (benar) apabila salah
satu dari kedua operand (tetapi tidak keduanya) bernilai T atau 1. Atau
dengan kata lain, apabila diaplikasikan dalam bit maka operator XOR akan
menghasilkan 1 jika dan hanya jika salah satu operand bernilai 1.
Contoh :
X: 00111010 10101011
Y: 10100100 01010101
Hasil : 10011110 11111110
Sedangkan suatu bilangan dalam biner apabila di- XOR-kan
dengan dirinya sendiri akan menghasilkan 0. Contoh :
X : 01010101 10101010
Y : 01010101 10101010
Hasil :00000000 00000000
b. Proses Enkripsi dan Dekripsi
Perhitungan di atas merupakan salah satu dasar dalam penerapan
algoritma Vernam dalam kriptografi, yaitu suatu string yang diterjemahkan
ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu dan dapat
pula diperoleh kembali dari pesan sandi dengan menggunakan operator
XOR pada kunci yang sama.
Dalam algoritma ini, terdapat beberapa langkah untuk proses
enkripsi dan dekripsi. Misalnya kita akan mengenkripsi plainteks
“Vernam” dengan kunci “Cipher”. Maka langkah-langkahnya adalah :
1. Karakter-karakter yang terdapat pada plainteks dan kunci merupakan
karakter ASCII. Maka, ubah plainteks dan kunci menjadi bilangan
biner :
ASCII Biner
Vernam 01010110 01100101 01110010 01101110 01100001 01101101
Cipher 01000011 01101000 01101001 01110000 01100101 01110010
2. Lalu, kedua bilangan biner itu kita XOR-kan menurut persamaan 2.3 :
Hasil dari XOR tersebut adalah : “00010101 00001100 00000010
00000110 00000100 00011111”. Rangkaian bilangan bit ini
merupakan bit cipherteks dalam bentuk biner. Untuk mengetahui nilai
SCII dari cipherteks tersebut, maka kita perlu konversikan rangkaian
biner tersebut ke bilangan ASCII sesuai dengan tabel 2.1. Dengan
berdasar pada tabel tersebut, maka dapat kita lihat bahwa rangkaian
bit dari cipherteks tersebut mempunyai nilai ASCII :
Proses dekripsi dalam algoritma Vernam Cipher merupakan
kebalikan dari proses enkripsi. Cipherteks dari hasil enkripsi di-XOR-kan
dengan kunci yang sama. Misalnya dengan mengambil contoh
sebelumnya, dimana cipherteks : “§ ☽ ☻ ☿ ♂ ╹” dan kunci : “Cipher”.
Maka langkah pendekripsiannya adalah sebagai berikut :
1. Ubah karakter ASCII dari cipherteks dan kunci ke dalam rangkaian
biner :
§ ☽ ☻ ☿ ♂ ╹
Plainteks : 01010110 01100101 01110010 01101110 01100001 01101101
Kunci : 01000011 01101001 01110000 01101000 01100101 01110010
Cipherteks : 00010101 00001100 00000010 00000110 00000100 00011111
2. Lalu, kedua rangkaian biner itu kita XOR-kan dengan berdasar pada
persamaan 2.4 :
Maka didapat rangkaian bit plainteks “01010110 01100101 01110010
01101110 01100001 01101101”. Dengan berdasar pada tabel 2.1,
maka kita dapat mengubah rangkaian bit menjadi bilangan ASCII,
yaitu menjadi : “Vernam”. Terbukti plain teks pada hasil dekripsi
adalah sama dengan plainteks pada proses enkripsi.
2.10 Jenis Serangan terhadap Cipher Aliran
Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran
adalah:
1. Known-plaintext attack
Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks
(C) yang berkoresponden, maka ia dapat menemukan bagian bit-aliran-
kunci (K) yang berkoresponden dengan meng-XOR-kan bit-bit
plainteks dan cipherteks:
P C = P (P K) = (P P) K = 0 K = K
2. Ciphertext-only attack
Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C1
dan C2) yang dienkripsi dengan bit-aliran-kunci yang sama. Ia meng-
XOR-kan kedua cipherteks tersebut dan memperoleh dua buah
plainteks yang ter-XOR satu sama lain:
ASCII Biner
§ ☽ ☻ ☿ ♂ ╹ 00010101 00001100 00000010 00000110 00000100 00011111
Cipher 01000011 01101000 01101001 01110000 01100101 01110010
Cipherteks : 00010101 00001100 00000010 00000110 00000100 00011111
Kunci : 01000011 01101001 01110000 01101000 01100101 01110010
Plainteks : 01010110 01100101 01110010 01101110 01100001 01101101
C1 C2 = (P1 K ) (P2 K)
= (P1 P2 ) (K K)
= (P1 P2 ) 0
= (P1 P2 )
P1 dan P2 dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah
satu plainteks dengan cipherteksnya untuk memperoleh bit-aliran-
kunci K yang berkoresponden:
P1 C1 = P1 (P1 K) = K
Pesan dari dua serangan di atas adalah: pengguna cipher aliran
harus mempunyai bit-aliran-kunci yang tidak dapat diprediksi sehingga
mengetahui sebagian dari bit-aliran-kunci tidak memungkinkan
kriptanalis dapat mendeduksi bagian sisanya.
2.11 Steganografi
Steganografi berasal dari bahasa Yunani yaitu Steganós yang
berarti menyembunyikan dan Graptos yang artinya tulisan sehingga secara
keseluruhan artinya adalah tulisan yang disebunyikan. Secara umum
steganografi merupakan seni atau ilmu yang digunakan untuk
menyembunyikan pesan rahasia dengan segala cara sehingga selain orang
yang dituju, orang lain tidak akan menyadari keberadaan dari pesan
rahasia tersebut.
Kini, istilah steganografi termasuk penyembunyian data digital
dalam file-file komputer. Contohnya, si pengirim mulai dengan file
gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk
menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus
sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-
benar memperhatikannya).
Pada umumnya, pesan steganografi muncul dengan rupa lain
seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan
yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi.
Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta
yang tidak terlihat diantara garis-garis yang kelihatan.
Teknik steganografi meliputi banyak sekali metode komunikasi
untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam file-file
lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-
ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file
semula. Metode ini termasuk tinta yang tidak tampak, microdots,
pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi
spektrum lebar.
Tujuan dari steganografi adalah merahasiakan atau
menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah
informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat
perubahan tipis terhadap data digital lain yang isinya tidak akan menarik
perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang
terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada
kriptografi) dan pesan untuk disembunyikan. Orang yang menerima
gambar kemudian dapat menyimpulkan informasi terselubung dengan cara
mengganti kunci yang benar ke dalam algoritma yang digunakan.
Pada metode steganografi cara ini sangat berguna jika
digunakan pada cara steganografi komputer karena banyak format file
digital yang dapat dijadikan media untuk menyembunyikan pesan. Format
yang biasa digunakan diantaranya:
Format image : bitmap (bmp), gif, pcx, jpeg, dll.
Format audio : wav, voc, mp3, dll.
Format lain : teks file, html, pdf, dll.
Kelebihan steganografi daripada kriptografi adalah pesan-
pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam
kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan,
akan menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi
digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.
Sebuah pesan steganografi (plaintext), biasanya pertama-tama
dienkripsikan dengan beberapa arti tradisional, yang menghasilkan
ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara
sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya,
ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya
dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima
(yang harus mengetahui teknik yang digunakan) dapat membuka pesan
dan mendekripsikannya.
2.12 Metode Steganografi
Kebanyakan algoritma steganografi menggunakan sebuah
kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam
penyelubungan pesan rahasia dalam sebuah selubung file. Sebuah program
steganografi dibutuhkan untuk melakukan hal-hal berikut (baik implisit
melalui suatu perkiraan maupun eksplisit melalui sebuah perhitungan),
menemukan kelebihan bits dalam selubung file yang dapat digunakan
untuk menyelubungi pesan rahasia didalamnya, memilih beberapa
diantaranya untuk digunakan dalam menyelubungi data dan
penyelubungan data dalam bits dipilih sebelumnya.
Terdapat banyak metode yang digunakan dalam melakukan
penyembunyian data kedalam data lainnya. Berikut adalah penjelasan
mengenai beberapa metode yang banyak digunakan dalam steganografi.
2.12.1 Metode Steganografi pada teks
a. Metode Spasi Terbuka
Terdapat beberapa cara untuk memanfaatkan spasi terbuka
dalam data text guna menyembunyikan informasi. Metode ini dapat
berhasil karena buku bacaan pada umumnya menambahkan satu spasi
tambahan pada akhir baris atau diantara dua kata sehingga tidak
terbaca aneh. Bagaimanapun, metode spasi terbuka hanya dapat
digunakan dengan memakai ASCII (AmericanStandard Character
Interchange) format. Bender et al memberikan tiga metode untuk
mengungkap white space dalam proses penyembunyian. Spasi terbuka
antar kalimat akan menghasilkan nilai "0" apabila hanya terdapat
sebuah spasi yang ditambahkan diantara kalimat tersebut. Dengan
menambahkan dua spasi akan menghasilkan nilai "1". Metode ini
dapat berhasil, tetapi membutuhkan data dalam jumlah besar untuk
menyembunyikan sebuah informasi kecil. Dan juga terdapat banyak
software word-processing yang akan secara otomatis membetulkan
spasi antara kalimat, sehingga metode ini seringkali gagal. Metode
spasi end-of-line (EOL) mengutarakan white space pada akhir dari
masing-masing baris. Data disembunyikan menggunakan jumlah spasi
yang telah ditentukan sebelumnya dari akhir untuk masing- masing
kalimat. Sebagai contoh dua spasi akan menyembunyikan satu bit,
empat spasi akan menyembunyikan dua bit dan delapan spasi akan
menghasilkan tiga bit dan seterusnya. Tehnik ini lebih baik
dibandingkan metode spasi terbuka antar kalimat, karena dengan
meningkatkan jumlah spasi akan dapat menyembunyikan lebih banyak
data. Salah satu kekurangan dari tehnik ini adalah dapat hilangnya
informasi tersembunyi jika hard copy data yang diberikan
Pada akhirnya, pemerataan kanan dari text dapat digunakan
pula untuk menyembunyikan informasi rahasia pada data text.
Penghitungan dan pengontrolan spasi diantara kata dapat
menyembunyikan informasi dalam data text yang terlihat tidak
penting. Sebuah spasi antara kata akan menghasilkan nilai "0" dan dua
buah spasi akan menghasilkan nilai "1". Bagaimanapun, pendekatan
ini akan mempersulit untuk mengeluarkan informasi penitng dari
media data text tersebut karena akan semakin tidak mungkin untuk
membedakan sebuah spasi biasa dengan spasi yang berfungsi untuk
penyembunyian data. Untuk mewujudkan hal ini, Bender et al
menggunakan Manchester coding untuk mengelompokkan bit-bit.
Sehingga "01" diinterpretasikan sebagai "1" dan "10" diinterpretasikan
sebagai "0". Dimana "00" dan "11" akan dianggap sebagai null bit
string.[6]
b. Metode Syntactic
Metode Syntactic sebagaimana yang telah di sarankan oleh
Bender et al, mengutarakan penggunaan punktuasi dan struktur text
untuk menyembunyikan informasi tanpa secara signifikan mengubah
arti dari pesan pembawa. Sebagai contoh terdapat dua frase "bread,
butter, and milk" dan "bread, butter and milk" secara gramatikal benar
tetapi berbeda dalam penggunaan koma.
Salah satu dapat digunakan secara alternatif dalam pesan text
guna mengintepretasikan nilai "1" apabila salah satu metode dipakai
dan nilai "0" untuk metode lain yang dipakai.
c. Metode Semantic
Metode Semantic menggunakan dua sinonim sebagai nilai
primer atau sekunder. Nilai tersebut akan diterjemahkan kedalam biner
"1" atau "0". Bender et al menggunakan sebuah contoh dimana kata
"big" berfungsi sebagai primer dan "large" berfungsi sebagai sekunder.
Oleh karena itu, dalam menguraikan isi sebuah pesan akan
menterjemahkan atas penggunaan primer sebagai "1" dan sekunder
sebagai "0". Bender et al menyebutkan masalah yang dapat muncul
dengan penggunaan metode ini adalah ketika sinonim tidak dapat
digantikan karena dapat mengubah arti dari struktur kalimat. Sebagai
contoh dalam memanggil seseorang dalam bahasa Inggris dengan
"cool" mempunyai arti berbeda dibandingkan dengan memanggilnya
"chilly".
2.12.2 Metode Steganografi pada Gambar
Sudah banyak metode yang digunakan untuk menyembunyikan
pesan di dalam sebuah image tanpa mengubah tampilan image, sehingga
pesan yang disembunyikan tidak akan terlihat. Berikut akan dibahas
beberapa metode umum yang digunakan pada image steganography.
a. Least Significant Bit Insertion (LSB)
Metoda yang digunakan untuk menyembunyikan pesan pada
media digital tersebut berbeda-beda. Contohnya pada file image pesan
dapat disembunyikan dengan menggunakan cara menyisipkannya
pada bit rendah atau bit yang paling kanan (LSB) pada data pixel yang
menyusun file tersebut. Seperti kita ketahui untuk file bitmap 24 bit
maka setiap pixel (titik) pada gambar tersebut terdiri dari susunan tiga
warna merah, hijau dan biru (RGB) yang masing-masing disusun oleh
bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner
00000000 sampai 11111111. Dengan demikian pada setiap pixel file
bitmap 24 bit kita dapat menyisipkan 3 bit data. Kekurangan dari LSB
Invertion : Dapat diambil kesimpulan dari contoh 8 bit pixel,
menggunakan LSB Insertion dapat secara drastis merubah unsur
pokok warna dari pixel. Ini dapat menunjukkan perbedaan yang nyata
dari cover image menjadi stego image, sehingga tanda tersebut
menunjukkan keadaan dari steganografi. Variasi warna kurang jelas
dengan 24 bit image, bagaimanapun file tersebut sangatlah besar.
Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan
image, seperti cropping (kegagalan) dan compression (pemampatan).
Keuntungan dari LSB Insertion : Keuntungan yang paling besar dari
algoritma LSB ini adalah cepat dan mudah. Dan juga algoritma
tersebut memiliki software steganografi yang mendukung dengan
bekerja diantara unsur pokok warna LSB melalui manipulasi pallete
(lukisan).
b. Algorithms and Transformation
Algoritma compression adalah metode steganografi dengan
menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut
adalah Discrete Cosine Transformation (DCT) dan Wavelet
Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data
dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT
yaitu mentransformasi data dari tempat spatial (spatial domain) ke
tempat frekuensi (frequency domain).
c. Redundant Pattern Encoding
Redundant Pattern Encoding adalah menggambar pesan kecil
pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat
bertahan dari cropping (kegagalan), kerugiannya yaitu tidak dapat
menggambar pesan yang lebih besar.
d. Spread Spectrum method
Spread Spectrum steganografi terpencar-pencar sebagai pesan
yang diacak (encrypt) melalui gambar (tidak seperti dalam LSB).
Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu
crypto-key dan stego-key. Metode ini juga masih mudah diserang
yaitu penghancuran atau pengrusakan dari kompresi dan proses image
(gambar).
2.12.3 Metode Steganografi pada suara
Cara untuk mengaplikasikan steganografi pada file audio terdiri
dari beberapa cara yang lazim digunakan dan prinsip kerja atau algoritma
yang digunakan sama seperti pada metode steganografi pada gambar.
Berikut adalah beberapa teknik yang digunakan:
a. Low Bit coding
Cara ini lazim digunakan dalam teknik digital steganografi
yaitu mengganti LSB input setiap samplingnya dengan data yang
dikodekan. Dengan metode ini keuntungan yang didapatkan adalah
ukuran pesan yang disispkan relative besar, namun berdampak pada
hasil audio yang berkualitas kurang dengan banyaknya noise.
b. Phase coding
Metode kedua yang digunakan ini adalah merekayasa fasa
dari sinyal masukan. Teori yang digunakan adalah dengan
mensubstitusi awal fasa dari tiap awal segment dengan fasa yang telah
dibuat sedemikian rupa dan merepresentasikan pesan yang
disembunyikan. Fasa dari tiap awal segment ini dibuat sedemikian
rupa sehingga setiap segmen masih memiliki hubungan yang berujung
pada kualitas suara yang tetap terjaga. Teknik ini menghasilkan
keluaran yang jauh lebih baik daripada metode pertama namun
dikompensasikan dengan kerumitan dalam realisasinya.
c. Spread Spectrum
Metode yang ketiga adalah penyebaran spektrum. Dengan
metode ini pesan dikodekan dan disebar ke setiap spectrum frekuensi
yang memungkinkan. Maka dari itu akan sangat sulit bagi yang akan
mencoba memecahkannya kecuali ia memiliki akses terhadap data
tersebut atau dapat merekonstruksi sinyal random yang digunakan
untuk menyebarkan pesan pada range frekuensi.
d. Echo Hiding
Metode terakhir yang sering digunakan adalah
menyembunyikan pesan melalui teknik echo. Teknik menyamarkan
pesan ke dalam sinyal yang membentuk echo. Kemudian pesan
disembunyikan dengan menvariasikan tiga parameter dalam echo
yaitu besar amplitude awal, tingkat penurunan atenuasi, dan offset.
Dengan adanya offset dari echo dan sinyal asli maka echo akan
tercampur dengan sinyal aslinya, karena sistem pendengaran manusia
yang tidak memisahkan antara echo dan sinyal asli. Keempat metode
di atas memiliki kesamaan yaitu menggunakan kelemahan dari sistem
pendengaran manusia. Maka dari itu teknik steganografi dalam MP3
juga akan menggunakan kelemahan ini untuk menyembunyikan pesan.
2.12.4 Metode End of File (EoF)
Teknik yang digunakan pada digital watermarking beragam
tetapi secara umum teknik ini menggunakan redundant bits sebagai tempat
menyembunyikan pesan pada saat dilakukan kompresi data, dan kemudian
menggunakan kelemahan indera manusia yang tidak sensitive sehingga
pesan tersebut tidak ada perbedaan yang terlihat atau yang terdengar.
Teknik EOF atau End Of File merupakan salah satu teknik yang
digunakan dalam steganografi. Teknik ini menggunakan cara dengan
menyisipkan data pada akhir file. Teknik ini dapat digunakan untuk
menyisipkan data yang ukurannya sesuai dengan kebutuhan. Ukuran file
yang telah disisipkan data sama dengan ukuran file sebelum disisipkan
data ditambah dengan ukuran data yang disisipkan ke dalam file tersebut.
Teknik inilah yang akan digunakan penulis dalam penelitian ini. Dalam
teknik ini, data disisipkan pada akhir file dengan diberi tanda khusus
sebagai pengenal start dari data tersebut dan pengenal akhir dari data
tersebut.
2.13Microsoft Visual Basic 6.0
Microsoft Visual Basic 6.0 adalah sebuah bahasa pemrograman
untuk Windows dan Internet. Pada dasarnya Visual Basic 6.0 sama seperti
bahasa pemrograman Basic, Pascal, C, dan lain-lain, hanya saja Visual
Basic 6.0 mempunyai platform Windows. Visual Basic 6.0 hampir sama
dengan bahasa pemrograman Basic (Quick Basic), dikarenakan Visual
Basic 6.0 adalah pengembangan dari Basic.
Visual Basic 6.0 terdapat dalam 3 versi perangkat lunak yang
diproduksi oleh Microsoft yaitu Microsoft Visual Basic 6.0 Professional,
Microsoft Visual Basic 6.0 Enterprise Edition, dan Microsoft Visual
Studio 6.0. Di dalam perancangan kali ini yang digunakan adalah
Microsoft Visual Basic 6.0 Enterprise Edition.[8]
a. Tool Box
Dalam penggunaan software Microsoft Visual Basic, terdapat
beberapa tool yang akan digunakan untuk perancangan program.Window
yang berisi tombol-tombol kontrol yang akan dipergunakan dalam
membuat sebuah form, komponen-komponen yang terdapat pada kontrol
dapat ditambah dan dikurangi sesuai dengan kebutuhan program,
penambahan dan pengurangan komponen yang dilakukan seiring dengan
pemambahan atau pengurangan pada project components dan project
references.
Gambar 2.5 : Tampilan Tool Box
1) Textbox
Gambar 2.6 : Tool Textbox
Tool textbox digunakan untuk menginputkan teks dari kunciboard.
Dalam perancangan ini, tool textbox akan digunakan untuk memasukkan
plaintext yang nantinya akan dienkripsi.
2) Combo Box
Tool combobox digunakan untuk pemilihan terhadap beberapa
option yang telah ditentukan dalam perancangan ini, tool combo box
digunakan untuk memilih data tertentu yang berkaitan dengan naskah
ujian.
Gambar 2.7 : Tool Combobox
3) Button
Tool button digunakan sebagai trigger untuk melaksanakan suatu
aksi tertentu, biasanya berbentuk perintah. Dalam perancangan ini, tool
button digunakan sebagai trigger dalam melakukan proses enkripsi atau
enkripsi pesan.
Gambar 2.8 : Tool Command
Setelah kontrol yang terdapat pada tool box diletakkan pada form,
control tersebut dapat diberikan nilai sesuai dengan fungsi yang akan di
jalankan, nilai tersebut diletakkan di windows properties.
Gambar 2.9 : Tampilan Properties
b. Code Editor
Window yang dipergunakan untuk menuliskan program, setiap
kontrol dalam form dapat memiliki fungsi tertentu. Fungsi tersebut
diwujudkan dalam deret perintah, perintah perintah ini yang di tuliskan
kedalam window code editor. VB menyediakan auto list untuk
memberikan nilai yang terdapat pada suatu kontol, sehingga mengurangi
kesalahan penulisan program. Cara menggunakannya adalah dengan
mengklik ganda kontrol yang ada.
Gambar 2.10 : Tampilan Window Code Editor
2.14 Unified Modelling Language (UML)
Unified Modelling Language adalah bahasa standar yang
digunakan untuk menjelaskan dan memvisualisasikan artifak dari proses
analisis dan dasain berorientasi objek. UML menyediakan standar pada
notasi dan diagram yang bisa digunakan untuk memodelkan suatu sistem.
UML dikembangkan oleh 3 orang pendekar „berorientasi objek‟, yaitu
Grady Booch, Jim Rumbaugh dan Ivar Jacobson.[9]
Namun karena UML hanya merupakan bahasa untuk pemodelan
maka UML bukanlah rujukan bagaimana melakukan analisis dan desain
berorientasi objek. Untuk mengetahui bagaiamana melakukan analisis dan
desain berorientasi secara baik, sudah terdapat beberapa metodologi yang
bisa diikuti, seperti Metode Booch, Metode Coad and Yourdan, Metode
Jacobson, Metode Rumbaugh, Metode Wirfs-Brock, atau mengikuti
metode pengembangan sistem Rational Unified Process.
a. Actor
Gambar 2.11 : Notasi Actor
Actor adalah segala sesuatu yang berinteraksi dengan sistem
aplikasi komputer. Jadi actor dapat berupa orang, perangkat keras atau
mungkin juga objek lain dalam sistem yang sama. Biasanya yang
dilakukan oleh actor adalah memberikan informasi pada sistem
dan/atau memerintahkan sistem untuk melakukan sesuatu.
b. Class
Gambar 2.12 : Notasi Class
Class merupakan pembentuk utama dari sistem berorientasi
objek karena class menunjukkan kumpulan objek yang mempunyai
atribut dan operasi yang sama. Class digunakan untuk
mengimplementasikan interface.
Class digunakan untuk mengabstraksikan elemen-elemen dari
sistem yang sedang dibangun. Class dapat untuk merepresentasikan
baik perangkat lunak maupun perangkat keras, baik konsep maupun
benda nyata.
Notasi class benbentuk persegi panjang berisikan 3 bagian
yaitu persegi paling atas untuk nama class, persegi di tengah untuk
atribut dan persegi paling bawah untuk operasi.
Operasi menunjukkan sesuatu yang bisa dilakukan oleh objek
dan menggunakan kata kerja. Atribut digunakan untuk menyimpan
informasi. Nama atribut menggunakan kata benda yang bisa dengan
jelas merepresentasikan informasi yang terkandung di dalamnya.
c. Use Case
Gambar 2.13 : Notasi Use Case
Use case menjelaskan urutan kegiatan yang dilakukan actor
dan sistem untuk mencapai suatu tujuan tertentu. Walaupun
menjelaskan kegiatan namun use case hanya menjelaskan apa yang
dilakukan oleh actor dan sistem, bukan bagaimana actor dan sistem
melakukan kegiatan tersebut.
Di dalam use case terdapat teks untuk menjelaskan urutan
kegiatan yang disebut use case specification yang terdiri dari :
- Nama Use case : mencantumkan nama dari use case yang
bersangkutan. Sebaiknya diawali dengan kata kerja untuk
menunjukkan suatu aktivitas.
- Deskripsi singkat (Brief Description) : menjelaskan secara singkat
dalam 1 atau 2 kalimat tentang tujuan dari use case.
- Aliran normal (Basic Flow) : adalah jantung dari use case yang
menjelaskan tentang interaksi antara actor dan sistem dalam
kondisi normal, yaitu segala sesuatu berjalan dengan lancar tanpa
ada halangan atau hambatan dalam mencapai tujuan dari use case.
- Aliran alternatif (Alternate Flow) : merupakan pelengkap dari
basic flow karena tidak ada yang sempurna dalam setiap kali use
case berlangsung. Dalam hal ini dijelaskan bahwa apa yang akan
terjadi bila suatu halangan atau hambatan terjadi sewaktu use case
berlangsung.
- Special Requirement : berisi kebutuhan lain yang belum tercakup
dalam aliran normal dan alternatif. Secara tegas dibedakan bahwa
basic flow dan alternate flow menangani kebutuhan fungsional,
misalnya kecepatan transaksi maksimum berapa cepat dan berapa
lama, kapasitas akses yaitu jumlah user yang akan mengakses
dalam waktu bersamaan.
- Pre-Condition : menjelaskan persyaratan yang harus dipenuhi
sebelum use case bisa dimulai.
- Post-Condition : menjelaskan kondisi yang berubah atau terjadi
saat use case selesai di eksekusi.
d. Package
Gambar 2.14 : Notasi Package
Package adalah kontainer atau wadah konseptual yang
digunakan untuk mengelompokkan elemen-elemen dari sistem yang
sedang dibangun sehingga bisa dibuwat model yang lebih sederhana.
Tujuannya adalah untuk mempermudah penglihatan dari model yang
sedang dibangun.
e. Note
Gambar 2.15 : Notasi Note
Note digunakan untuk memberikan keterangan dan komentar
tambahan dari suatu elemen sehingga bisa langsung terlampir dalam
model. Note ini bisa ditempelkan ke semua elemen notasi yang lain.
f. Dependency
Gambar 2.16 : Notasi Dependency
Dependency merupakan relasi yang menunjukkan bahwa
perubahan pada salah satu elemen memberi pengaruh pada elemen
lain. Elemen yang ada di bagian tanda panah adalah elemen yang
tergantung pada elemen yang ada di bagian tanpa tanda panah.
Terdapat 2 stereotype dari dependency, yaitu Include dan
Extend. Include menunjukkan suatu bagian dari elemen (yang ada di
garis tanpa panah) memicu eksekusi bagian dari elemen lain (yang ada
di garis dengan panah). Extend menunjukkan bahwa suatu bagian dari
elemen di garis tanpa panah bisa di sisipkan ke dalam elemen yang ada
di garis dengan panah.
g. Association
Gambar 2.17 : Notasi Associaton
Assocition menggambarkan navigasi antar kelas, berapa
banyak objek lain yang bisa berhubungan dengan satu objek dan
apakah suatu kelas menjadi bagian dari kelas lainnya.
h. Generalization
Gambar 2.18 : Notasi Generalization
Generalization menunjukkan hubungan antara elemen yang
lebih umum ke elemen yang lebih spesifik. Dengan menggunakan
notasi generalization ini konsep inheritance dari prinsip hierarki
dimodelkan.
i. Realization
Gambar 2.19 : Notasi Realization
Realization menunjukkan hubungan bahwa elemen yang ada
di bagian tanpa panah akan merealisasikan apa yang dinyatakan oleh
elemen yang ada di bagian dengan panah misalnya class
merealisasikan package, komponen merealisasikan class atau interface.
BAB III
METODE PENELITIAN
3.1 Metode Pengumpulan Data
Data yang dikumpulkan dalam penelitian ini merupakan data
sekunder. Data diperoleh dari telaah pustaka dan dokumen yang didapat
penulis dari pustaka yang mendukung, informasi dari internet, buku-buku
dan artikel dari jurnal.
3.2 Metode Pengembangan Sistem
Agar mempermudah dalam pengembangan sistem, maka penulis
membangun sebuah sistem yang akan membantu dalam menggambarkan
proses penyelesaian masalah. Metode yang sesuai dalam pengembangan
sistem ini adalah metode Rapid Aplication Development (RAD).
RAD adalah sebuah model proses perkembangan software
sekuensial linier yang menekankan siklus perkembangan yang sangat
pendek. Model ini merupakan sebuah adaptasi “kecepatan tinggi” dari
model sekuensial linier di mana perkembangan cepat dicapai dengan
menggunakan pendekatan kontruksi berbasis komponen.
Ada beberapa alasan di dalam memilih metode RAD ini antara
lain adalah sebagai berikut :
a. Alasan yang Buruk
- Apabila menggunakan RAD, hanya untuk menghemat biaya
pengembangan suatu sistem. Hal ini disebabkan karena dengan
menggunakan metode RAD membutuhkan suatu tim yang
mengerti betul mengenai manajemen biaya. Apabila tidak, maka
biaya yang dikeluarkan akan semakin besar.
- Apabila menggunakan RAD, hanya untuk menghemat waktu
pengembangan suatu sistem. Hal ini disebabkan karena dengan
menggunakan metode RAD membutuhkan suatu tim yang
mengerti betul mengenai manajemen waktu. Apabila tidak, maka
waktu yang dibutuhkan akan semakin lama.
b. Alasan yang Baik
- Apabila menggunakan RAD untuk mendapatkan suatu desain
yang dapat diterima oleh konsumen dan dapat dikembangkan
dengan mudah.
- Apabila menggunakan RAD untuk memberikan batasan-batasan
pada suatu sistem supaya tidak mengalami perubahan.
- Apabila menggunakan RAD untuk menghemat waktu dan jika
mungkin dapat menghemat biaya serta menghasilkan produk
berkualitas.
Dengan menggunakan RAD maka ada beberapa tujuan yang tidak
mungkin akan tercapai secara bersama yaitu :
- Kemungkinan terjadi kesalahan sangat kecil karena pihak
pengembang tidak mempunyai hak untuk mengubah komponen-
komponen yang digunakan dalam mengembangkan suatu sistem.
- Tingkat kepuasan konsumen yang tinggi karena kebutuhan-
kebutuhan sekunder dari konsumuen harus dikorbankan supaya
suatu sistem dapat diselesaikan sesuai jadwal.
- Biaya pengembangan yang termurah karena dengan menggunakan
komponen yang sudah ada dapat menyebabkan biaya yang lebih
besar apabila dibandingkan dengan mengembangkan komponen
sendiri.
3.3 Fase-fase Pengembangan Sistem
Metode RAD digunakan pada aplikasi sistem konstruksi, maka
menekankan fase-fase sebagai berikut :
Gambar 3.1 Fase-fase RAD
a. Pemodelan Bisnis (Bussiness Modeling)
Aliran Informasi diantara fungsi-fungsi bisnis dimodelkan dengan
suatu cara untuk menjawab pertanyaan-pertanyaan berikut :
- Informasi apa yang mengendalikan proses bisnis?
- Informasi apa yang dimunculkan?
- Siapa yang memunculkan?
- Ke mana informasi itu pergi?
- Siapa yang memprosesnya?
b. Pemodelan Data (Data Modeling)
- Aliran informasi yang didefinisikan sebagai bagian dari fase
business modeling di saring ke dalam serangkaian objek data yang
dibutuhkan untuk menopang bisnis tersebut.
- Karakteristik (atribut) masing-masing objek diidentifikasikan ke
dalam sekumpulan objek data.
- Karaktaristik (atribut) dari setiap objek diidentifikasikan dan
hubungannya antar objek.
c. Pemodelan Proses (Proses Modeling)
- Aliran informasi yang didefinisikan di dalam fase data modeling
ditransformasikan untuk mencapai aliran informasi yang perlu
bagi implementasi sebuah fungsi bisnis.
- Objek data akan diimplementasikan pada fungsi bisnis.
- Deskrpsi proses dibangun untuk penambahan modifikasi,
penghapusan atau pengambilan kembali objek data.
d. Pembentukan Aplikasi (Aplication Generation)
- RAD mengasumsikan pemakaian teknik generasi ke empat. Selain
menciptakan perangkat lunak dengan menggunakan bahasa
pemrograman generasi ketiga yang konvensional.
- Melakukan penggunaan kembali komponen yang ada (jika
mungkin).
- Membuat kembali penggunaan komponen jika diperlukan.
e. Pengujian dan Perputaran (Testing and Turnover)
Oleh karena proses RAD menekankan pada pemakaian
kembali, maka banyak komponen program telah teruji. Hal ini
mengurangi keseluruhan waktu pengujian.
3.4 Kekurangan dan Kelebihan Pengembangan Sistem
3.4.1 Kekurangan RAD
a. RAD memerlukan sumber daya manusia yang memadai untuk
menciptakan jumlah tim RAD yang baik.
b. RAD menuntut pengembangan dan pelanggan memiliki komitmen di
dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah
sistem, di dalam kerangka waktu yang sangat diperpendek.
c. Kecepatan yang tinggi dengan biaya kemungkinan minimal besar hasil
kualitasnya rendah.
d. Proyek mungkin berakhir dengan lebih banyak tambahan kebutuhan
daripada yang telah terpenuhi.
e. Potensial adanya penambahan fitur karena fitur yang sekarang
hasilnya asal-asalan.
f. Potensial ketidaksesuaian desain dan implementasi.
g. Potensial ketidakkonsistenan penamaan dan dokumentasi.
h. Sangat sulit membuat modul yang dapat digunakan kembali.
3.4.2 Kelebihan RAD
a. Hasil Pengembangan bisa lebih cepat dibandingkan SDLC lainnya.
b. Memerlukan biaya yang lebih sedikit.
c. Mementingkan dari segi bisnis dan teknik.
d. Berkonsentrasi pada sudut pandang user.
e. Menyediakan kemungkinan perubahan secara cepat sesuai permintaan
user.
f. Menghasilkan jarak kesesuaian yang kecil antara kebutuhan user dan
spesifikasi sistem.
g. Waktu, biaya dan effort (usaha) minimal.
3.5 Kondisi Pengembangan Sistem
3.5.1 Kondisi yang Sesuai dengan RAD
a. Proyek dengan skala kecil sampai medium dengan waktu pendek.
b. Fokus pada lingkup tertentu, misalnya pada objek bisnis yang telah
didefinisikan dengan baik.
c. User tahu pasti area yang harus dimiliki aplikasi.
d. Manajemen memiliki komitmen terhadap keterlibatan user.
e. Spesifikasi kebutuhan sudah benar-benar diketahui.
f. Pendefinisian spesifikasi yang tidak memerlukan waktu lama.
g. Anggota tim memiliki keahlian yang baik.
h. Komposisi tim stabil.
i. Ada kontrol proyek yang efektif.
3.5.2 Kondisi yang Tidak Sesuai dengan RAD
a. Proyek yang terlalu besar dan kompleks.
b. Proyek yang bersifat aplikasi real-time atau menangani hal-hal yang
kritis.
c. Sistem dengan komputasi tinggi.
d. Lingkup dan objek bisnis proyek belum jelas.
e. Pengumpulan spesifikasi kebutuhan membutuhkan waktu lama.
f. Banyak orang yang terlibat dalam sebuah proyek tersebut.
g. Membutuhkan lingkup daerah yang cukup luas.
h. Tim proyek besar dengan koordinasi tinggi.
i. Komitmen pihak managemen dengan user rendah.
j. Banyak teknologi baru digunakan untuk membangun aplikasi.
BAB IV
PERANCANGAN DAN HASIL IMPLEMENTASI
4.1 Analisis Kebutuhan Aplikasi Kriptografi dan Steganografi
Tujuan dari proses analisa kebutuhan aplikasi adalah untuk
mengetahui sifat dari kebutuhan sistem sehingga mempermudah dalam
perancangan. Tujuan lain dari analisa ini adalah untuk
mendokumentasikan sifat program tersebut. Proses analisis meliputi
analisis kebutuhan perangkat lunak dan perangkat keras, termasuk analisis
terhadap kebutuhan sistem.
Kebutuhan-kebutuhan tersebut adalah :
a. Spesifikasi kebutuhan perangkat lunak :
Sistem operasi Microsoft Windows XP
Sistem operasi yang digunakan adalah Microsoft Windows XP,
karena sistem operasi ini terbukti sebagai salah satu sistem operasi
terbaik yang ada sekarang.
Software Microsoft Visual Basic 6.0
Bahasa pemprograman yang digunakan untuk perancangan sistem
aplikasi adalah Microsoft Visual Basic 6.0, dikarenakan bahasa ini
merupakan bahasa mudah dipelajari dan mendukung dalam
perhitungan aritmatika dan logika yang dibutuhkan dalam
pembuatan aplikasi.
Software Microsoft Word 2007
Software ini digunakan dalam penelitian untuk mendukung
aplikasi sebagai salah satu fasilitas dalam penyimpanan hasil
enkripsi dan dekripsi data.
Software Rational Rose 03
Kebutuhan akan pembuatan UML untuk mendukung proram
aplikasi pada tahap pembuatan model.
b. Spesifikasi kebutuhan perangkat keras :
Prosesor minimal pentium IV.
Harddisk minimal 20 GB.
Memori DDR minimal 128 MB.
Layar display minmal 14‟.
Satu buah keyboard dan mouse standard.
4.2 Prosedur Persiapan Pembuatan Aplikasi
Langkah – langkah pembuatan aplikasi Kriptosistem dalam
penelitian ini adalah sebagai berikut :
a. Mengumpulkan materi –materi yang dibutuhkan.
b. Melakukan pembatasan terhadap materi tersebut.
c. Mempersiapkan dan melakukan instalasi perangkat keras.
d. Mempersiapkan dan melakukan instalasi perangkat lunak sesuai
dengan spesifikasi kebutuhan.
4.3 Unit Bahasa Pemodelan
a. Use Case Diagram
Dalam bahasa pemodelan ini, penulis menggunakan 2 (dua)
buah aktor yaitu pengirim dan penerima. Aktor tersebut mempunyai
karakteristik yang berbeda dalam hal menggunakan aplikasi dan
menggunakan file yang telah di proses.
Pengirim adalah seseorang yang nantinya akan mengirimkan
sebuah file yang telah dienkripsi dan disembunyikan pada file induk
atau file lain supaya tidak terlihat kasat mata oleh pihak-pihak yang
tidak berkepentingan.
Penerima adalah seseorang yang akan menerima file yang
dikirimkan oleh pengirim. Penerima bertugas untuk membuka file
yang telah dikirimkan tersebut kemudian didekripsi dan dipisahkan
dengan file induk atau file yang dikirim sebelumnya.
Tabel 4.1 : Skenario use case Proses Kripto dan Stego
Use-case :
Proses Kripto dan Stego
Primary actor :
Pengirim
Goal :
File berhasil disembunyikan
Precondition :
Memasukkan nama file asli yang akan disembunyikan
Memasukkan nama file induk tempat file tersembunyi
Memasukkan kata sandi/kata kunci
Trigger :
Pengirim ingin menyembunyikan file
Scenario:
1 Pengirim membuka aplikasi Steganographer.
2 Pengirim memasukkan nama file yang akan disembunyikan.
3 Pengirim memasukkan nama file untuk tempat file
disembunyikan.
4 Pengirim memberikan kata kunci sebagai pelengkap sandi.
5 Pengirim menekan tombol Stego untuk memprosesnya.
Alternate Flow :
Pengirim keluar dari aplikasi
Priority :
Moderate priority
Frequency of use :
Frequent
Tabel 4.2 : Skenario use case Proses Unkripto dan Unstego
Use-case :
Proses Unkripto dan Unstego
Primary actor :
Penerima
Goal :
Mengembalikan File yang tersembunyi
Precondition :
Memasukkan nama file hasil Stego untuk dikembalikan
seperti semula
Memasukkan kata sandi/kata kunci
Trigger :
Penerima ingin mengembalikan file yang disembunyikan
Scenario:
1 Penerima membuka aplikasi Steganographer.
2 Penerima memasukkan nama file yang disembunyikan.
3 Penerima memberikan kata kunci sebagai pelengkap sandi.
4 Penerima menekan tombol Unstego untuk memprosesnya.
Alternate Flow :
Penerima keluar dari aplikasi
Priority :
Moderate priority
Frequency of use :
Frequent
Di bawah ini merupakan gambar use case yang penulis pakai
untuk mengimplementasikan ke dalam sebuah model.
Gambar 4.1 : Use Case
b. Class Diagram
Pada class diagram, penulis menggunakan 4 macam kelas yaitu
kelas plain text, chiper text, operation dan hasil. Kelas-kelas tersebut
saling berhubungan dan mempunyai keterkaitan. Di bawah ini
merupakan gambar class diagram yang penulis maksud :
Gambar 4.2 : Class Diagram
Kriptografi Steganografi
Memasukkan File yang akan di Kripto dan Stego
Memasukkan File Inang/Induk
Proses Kripto dan Stego
Input Password Kunci Kripto dan Stego
PengirimMemasukkan File yang di
Unkripto dan Unstego
Proses UnKripto dan Unstego
Input Password Kunci Unkripto dan Unstego
Penerima
Enkripsi Stego
<<include>> <<include>>
Dekripsi
Kriptografi Steganografi
Unstego
<<include>> <<include>>
<<include>> <<include>>
<<include>> <<include>>
c. Activity Diagram
Activity Diagram yang penulis buwat saat ini menggunakan 2
macam model diagram yaitu diagram saat kripto dan stego serta
diagram pada saat unkripto dan unstego.
Gambar 4.3 : Activity Diagram Kripto dan Stego
Gambar 4.3 menujukkan alur yang berjalan pada saat file yang
akan di proses dengan file induknya. Pada gambar selanjutnya penulis
membuatkan alur yang berjalan pada saat file hasil gabungan di pecah
kembali menjadi file asli.
Membuka File Hasil dg penambahan "_Stego" pada akhir penamaan file (dalam modus tulis)
Baca Media File
Membuka File Hasil dg penambahan "_Stego" pada akhir penamaan file (dalam modus tulis)
Baca Ukuran File
Baca Sebanyak 10000 byte
> 10000 byte
Enkripsi Data yang Dibaca
< 10000 byte
Penghitungan Looping Pembacaan File
Memasukkan ke File Hasil
Alokasikan Memory sebanyak Sisanya
Enkripsi Keseluruhan File
Memasukkan ke File Hasil
sisa sisa > 10000 byte
tidak sisa
Gambar 4.4 : Activity Diagram Unkripto dan Unstego
Gambar 4.5 : Activity Diagram Enkripsi dan Dekripsi
Dekripsi Keseluruhan File
Baca Media File
Baca Ukuran File dari Depan sampai tanda "|"
Membuat File Hasil dg penambahan "_Unstego" pada akhir penamaan file
< 10000 byte
Memasukkan ke dalam File Hasil
Perhitungan Looping Pembacaan File
Membuat File Hasil dg penambahan "_Unstego" pada akhir penamaan file
> 10000 byte
Baca Sebanyak 10000 byte
Dekripsi Data yang Di Baca
Alokasikan Memory Sebanyak Sisanya
Memasukkan ke dalam File Hasil
sisasisa > 10000 byte
tidak sisa
Baca Hexa Decimal File dari Belakang sampai ketemu tanda "|"
Kurangi ukuran File dengan File Induk
Gambar 4.6 : Activity Diagram Stego pada File
Gambar 4.7 : Activity Diagram Unstego pada File
d. Sequence Diagram
Penulis juga membuatkan model sequence untuk memperjelas
dari model-model sebelumnya. Dalam sequence diagram juga
terdapat 2 bentuk model yang penulis buat yaitu diagram pada saat
Kripto Stego dan Unkripto Unstego. Di bawah ini merupakan model-
model yang telah penulis buat supaya memudahkan pengguna dalam
menggunakan program yang nantinya akan dibuat.
Gambar 4.8 : Sequence Diagram Kripto dan Stego
KunciPengirim : Pengirim
File Asli File Induk Stego
1: Masukkan File Asli
2: Masukkan File Induk
3: Berikan Kunci
4: Klik Tombol Stego
Gambar 4.9 : Sequence Diagram Unkripto dan Unstego
4.4 Desain Input Output (I/O)
Dalam pembuatan pada aplikasi yang penulis buat menggunakan
perangkat lunak berupa Visual Basic 6.0. Di bawah ini merupakan desain
input output yang telah di buat adalah sebagai berikut :
Penerima : Penerima
File Stego Kunci Unstego
1: Masukkan File Stego
2: Masukkan Kunci
3: Klik Tombol Unstego
4: Jika Kunci Salah File tetap terbentuk tetapi tidak dapat di Buka
Gambar 4.10 : Storyboard Menu Utama
Pada gambar Storyboard di atas, terdapat garis silang yang mewakili gambar
background. Submenu – submenu dalam menu utama di atas antara lain :
a. Submenu Stego
Submenu Stego merupakan submenu yang digunakan untuk
menyembunyikan file.
b. Submenu Unstego
Submenu Unstego merupakan submenu yang digunakan untuk
mengembalikan file yang telah disembunyikan sebelumnya.
c. Submenu About Us
Submenu About Us merupakan submenu yang berisi tentang
data diri pembuat program.
d. Submenu Keluar
Submenu Keluar merupakan submenu yang digunakan untuk
keluar dari aplikasi.
4.4.1 Desain Input Output (I/O) Submenu Stego
Gambar 4.11 : Storyboard Submenu Stego
Pada submenu stego terdapat 3 (tiga) text box yaitu 2 text box
untuk memasukkan file dan 1 (satu) text box untuk kunci, 3 (tiga)
command yaitu 2 (dua) command untuk mengambil file dan 1 (satu)
command untuk proses stego serta 1 (satu) label untuk kunci.
4.4.2 Desain Input Output (I/O) Submenu Unstego
Gambar 4.12 : Storyboard Submenu Unstego
Pada submenu unstego terdapat 3 (tiga) text box yaitu untuk
memasukkan file, memasukkan kata kunci dan untuk memberikan ekstensi
file yang nantinya akan terbentuk. Selain itu terdapat 2 (dua) command
yaitu untuk mengambil file dan proses unstego. Kemudian terdapat 1
(satu) label untuk kunci.
4.4.3 Desain Input Output (I/O) Submenu About Us
Gambar 4.13 : Storyboard Submenu About Us
Pada submenu about us tanda “X” yang terletak pada bagian kanan
atas adalah tombol untuk keluar dari submenu, garis silang besar yang ada
di tengah merupakan isi dari biodata pembuat program dan tombol “OK”
pada kanan bawah merupakan tombol untuk mengakhiri submenu.
4.5 Implementasi
Program Kripto dan Stego ini dimulai dengan menekan tombol
“menu” yang ada pada sisi kiri atas aplikasi dilanjutkan memilih “Stego”
terlebih dahulu.
Gambar 4.14 : Tampilan Awal Program
Gambar 4.15 : Tampilan Menu Stego
Gambar 4.16 : Tampilan Menu Unstego
Gambar 4.17 : Tampilan Message Box Menu About Us
4.6 Analisa Percobaan
Penulis melakukan beberapa percobaan untuk membuktikan
kinerja program yang telah dibuat. Salah satu diantaranya adalah seperti
gambar di bawah ini :
Gambar 4.18 : Menu Stego File
Pada gambar di atas, penulis akan mencoba membuat file yang
akan di kripto dan stego. Pertama-tama langkah yang dilakukan adalah
klik tombol menu dan pilih stego. Gambar 4.11 menunjukkan bahwa
penulis menghendaki file asli yang akan disembunyikan adalah “02
Maafkan.mp3” pada partisi “C” dalam directory “coba”.
File Spoof merupakan file induk di mana file ini sebagai tempat
persembunyian dari file asli. Tahap kedua adalah memilih file induk di
mana file asli nantinya akan disembunyikan. Dalam hal ini, penulis
menghendaki file “8. Memori.pdf” sebagai tempat persembunyian file
aslinya.
Selanjutnya yang dilakukan adalah memberikan kata kunci sebagai
penyempurna keamanan data. Pada gambar terdapat 3 tanda seru (!) yang
pada sebenarnya adalah 3 (tiga) huruf sandi. Kemudian tekan tombol
Stego untuk memproses pada langkah-langkah selanjutnya.
Gambar 4.19 : Tampilan MessageBox Setelah Selesai Stego
Setelah semua berjalan dengan lancar maka akan muncul tampilan
Message Box seperti pada gambar 4.12 yang menunjukkan bahwa file
telah selesai di proses. Pada gambar terlihat bahwa file hasil stego
tersimpan pada partisi “C” pada direktori “coba” dengan nama file “8.
Memori.pdf_STEGO.pdf” kemudian klik tombol OK untuk mengakhiri
prosesnya.
Gambar 4.20 : Menu Unstego File
Pada gambar di atas menunjukkan tampilan menu Unstego. Menu
ini dapat diakses dengan menekan menu kemudian klik tombol Unstego.
Di sini penulis mencoba mengembalikan file yang telah di proses Stego
sebelumnya dengan cara memasukkan file yang telah ter-Stego. Pilihlah
file dengan menekan tombol “File Stego” kemudian cari file yang terstego.
Pada gambar 4.13 dapat kita lihat lokasi filenya yaitu pada partisi “C”
direktori “coba” dengan nama file “8. Memori.pdf_STEGO.pdf”.
Langkah selanjutnya terdapat kolom untuk menentukan ekstensi
file, pada gambar menunjukkan ekstensi file yaitu “mp3”. Kemudian
memasukkan kata kunci yang telah dijanjikan sebelumnya pada sebuah
perjanjian sehingga hanya pihak tertentu saja yang dapat mengetahui kata
kunci demi keamanan file tersebut. Setelah itu, tekan tombol “UNSTEGO”
untuk memulai proses pemisahan file menjadi file asli kembali.
Gambar 4.21 : Tampilan MessageBox Setelah Selesai Unstego
Apabila proses telah selesai maka akan muncul tampilan Message
Box seperti pada gambar 4.14 yang menunjukkan bahwa file telah ter-
unstego dengan baik dan benar. Setelah itu tekan tombol “OK” untuk
mengakhiri perintah. Dengan ditekannya tombol OK pada program maka
berakhirlah proses penyembunyian file dan file asli tersebut dapat dibaca
kembali oleh penerima.
4.7 Pengujian Program (Testing)
Hasil perancangan akhir dari Aplikasi Kriptografi dan Steganografi
ini telah diujikan. Metode pengujian yang penulis gunakan adalah
Graphical User Interface dan tanggapan atau respon dari user.
4.7.1 Pengujian Graphical User Interface ( GUI ) / Black Box Testing
Pengujian Graphical User Interface ( GUI ) untuk aplikasi ini
dilakukan dengan menguji melalui beberapa aspek dibawah ini :
Tabel 4.3 : Daftar Aspek Pengujian
No. Aspek Pengujian
1. Apakah semua menu dapat dituju / diklik/ disorot secara tepat
oleh pointer mouse ?
2. Apakah setiap operasi mouse dikenali dengan baik oleh
aplikasi yang akan meresponnya?
Berdasarkan hasil pengujian, dapat diperoleh kesimpulan bahwa
performansi program cukup baik. Semua rancangan program telah
tersusun dalam menu dengan tepat dan setiap kontrol yang terdapat dalam
tiap – tiap menu juga dapat diakses secara tepat. Mouse dengan mudah
dapat mengakses tiap menu dalam program secara tepat pula memberikan
respon sesuai dengan konteks interaktifnya.
Tabel 4.4 Ringkasan Hasil Pengujian
Faktor Pengujian Status Output
Tombol Submenu Stego
Tombol Submenu Unstego
Tombol Submenu About Us
Penekanan Tombol
4.7.2 Pengujian White Box Testing
Private Sub Command3_Click() 'fungsi stego!!
Dim data As String ………………………………………………(1)
Dim x As Long
Dim y As Long
Dim z As Long
Dim pjg As Long
Dim ext As String
Dim encpjg As String
encpjg = FileLen(Text2.Text) ………………………………….(2)
ext = Mid(StrReverse(Text2.Text), 1, 4)
ext = StrReverse(ext)
pjg = FileLen(Text1.Text)
FileCopy Text2.Text, Text2.Text & "_STEGO" & ext ……….(3)
x = FileLen(Text1.Text) Mod 10000 ………………………….(4)
y = FileLen(Text1.Text) - x
Open Text1.Text For Binary Access Read As #1
Open Text2.Text & "_STEGO" & ext For Binary Access Write As #2
………………………………………………………………….(5)
Put #2, FileLen(Text2.Text) + 1, ""
If pjg >= 10000 Then ………………………………………...(6)
For z = 1 To y Step 10000……………………………………..(7)
data = Space$(10000) ………………………………………...(8)
Get #1, z, data
Put #2, , encrypt(data, Text5.Text)
Next
y = x
data = Space$(y) ……………………………………………(9)
Get #1, , data
Put #2, , encrypt(data, Text5.Text)
Put #2, , "|" & encrypt(encpjg, Text5.Text)
Else …………………………………………………........(10)
data = Space$(pjg) …………………………………………(11)
Get #1, 1, data
Put #2, , encrypt(data, Text5.Text)
Put #2, , "|" & encrypt(encpjg, Text5.Text)
End If
Close #2
Close #1
MsgBox "selesai!!" & vbCrLf & "file ter-stego di " & Text2.Text &
"_STEGO" & ext, vbOKOnly, "stego" …………………...(12)
End Sub
Dari penggalan code program Kripto Stego di atas didapatkan graph
tertutup seperti gambar 4.19 seperti dibawah ini.
Gambar 4.22 : Graph Kripto Stego
Dari graph tersebut di atas kemudian dapat dihitung Cyclometic
Complecity-nya untuk menentukan berapa banyak jumlah independent
path yang harus kita uji dari modul tersebut. Cyclometic Complexity dapat
dihitung dengan rumus sebagai berikut:
V(G) = jumlah edge – jumlah node +2
V(G) = jumlah kondisi +1, atau
V(G) = Ri
Sehingga dengan menggunakan dua rumus di atas dapat dihitung
V(G) dari modul tersebut sebagai berikut :
V(G)a = jumlah edge – jumlah node +2
= 13 – 12 + 2
= 3
V(G)b = jumlah kondisi + 1
= 2 + 1
= 3
Dari perbandingan di atas terbukti bahwa V(G)a = V(G)b yang
membuktikan bahwa program kripto stego berjalan dengan baik pada
aplikasi yang telah diuji cobakan.
4.8 Kuesioner
Pengujian selanjutnya dilakukan untuk mengetahui respon dari
user terkait dengan program yang telah penulis buat sebelumnya dan telah
diujicobakan. User yang menjadi responden adalah mahasiswa dan dosen
pada Universitas Dian Nuswantoro Semarang. Kepada masing-masing
responden peneliti membagikan kuesioner yang berbentuk isian pilihan
penilaian terhadap software kripto dan stego yang sebelumnya telah
diujicobakan.
Tabel 4.5 : Tabel kuesioner
No Uraian Pertanyaan Nilai
1 2 3 4 5
A Kemampuan Software
1 Apakah file dapat tersembunyi dengan baik ?
2 Bagaimana kinerja program aplikasi ?
3 Apakah semua file dapat di proses dengan baik ?
4 Apakah program dapat mengembalikan file secara utuh ?
B Interaksi Manusia dan Komputer
1 Apakah pengguna dapat menggunakan dengan baik ?
2 Bagaimana bentuk desain program ?
3 Apakah program dapat berjalan dengan lancar ?
4 Bagaimana tampilan menu aplikasi ?
Berikut ini adalah rincian dari hasil responden terhadap pengujian program.
Tabel 4.6 : Tabel Hasil Pengujian
No Nama Responden Pertanyaan A Pertanyaan B
1 2 3 4 1 2 3 4
1 Etika Kartikadarma, M. Kom 5 4 5 5 3 5 5 4
2 Puput Tri Hantoro Ardi 5 5 5 5 5 5 5 4
3 Dwi Fery, Amd. 5 4 5 5 4 5 5 4
4 Nur Isnaini 5 5 5 5 4 4 5 4
5 Willy Dozan 4 5 5 5 5 4 5 4
6 Emanuel Kusriyadi Nogroho 4 5 5 4 4 5 5 5
7 Stevanus Dewana 5 4 4 5 4 4 5 4
8 Adelin Kumalasari 5 4 4 5 4 4 5 4
Skala Komulatif Rata-rata (X /8) 4,7 4,5 4,7 4,9 4,1 4,5 5 4,1
BAB V
PENUTUP
6.1 Kesimpulan
Dari hasil perancangan dan pembuatan program aplikasi kriptografi
dengan menggunakan algoritma Vernam Cipher dan Steganografi dengan
metode End of File (EoF) ini, dapat diambil kesimpulan sebagai berikut :
1. Dari hasil percobaan yang telah dilakukan membuktikan bahwa
aplikasi dapat mengacak dan menyembunyikan file dengan aman dan
tidak menimbulkan kecurigaan pada pihak lain. Pada file hasil, tidak
menimbulkan efek yang dapat merusak ataupun mengganggu kinerja
file sebelumnya.
2. Hasil akhir yang diperoleh dari penggabungan 2 buah file yang
berbeda ekstensi menghasilkan ukuran yang lebih besar yaitu
merupakan gabungan dari ukuran kedua buah file tersebut yang
dikarenakan file yang disembunyikan juga mempunyai kapasitas
ukuran file sendiri.
6.2 Saran
Saran-saran yang berguna untuk pengembangan system dan
aplikasi ini adalah sebagai berikut :
1. Dalam penggunaan aplikasi ini disarankan untuk menggunakan file
sesuai kebutuhan dan disesuaikan dengan hardware pada komputer
pengguna karena makin besar ukuran file, makin tinggi kinerja pada
komputer anda.
2. Pada aplikasi ini diperlukan adanya menu help untuk membantu
penggunaan aplikasi dalam hal mengoperasikan langkah-langkah
yang akan dilakukan.
DAFTAR PUSTAKA
[1] Utami, Ema dan Sukrisno. Implementasi Steganografi EoF dengan
Gabungan Ekripsi Rijndael, Shift Chiper dan Fungsi Hash. Yogyakarta.
2007
[2] Anonimous, ASCII table and Extended ASCII Table, www.asciitable.com,
10 Agustus 2009
[3] Salton, Gerard. Automatic Text Processing. Addison : Wesley Publising
Company. 2003.
[4] Stallings, Williams, Cryptography and Network Security : Principles and
Practices, 2nd edition, Upper Saddle River : Prentice Hall Inc., 1995
[5] Stallings, Williams, Cryptography and Network Security : Principles and
Practices, 4th edition, Upper Saddle River : Prentice Hall Inc., 2006
[6] Munir, Rinaldi. Kriptografi. Bandung : Informatika. 2006.
[7] Heryanto, Teddy, Bab III Kriptografi,
www.geocities.com/siliconvalley/8972/resource.komparasi/bab3.html, 12
Desember 2009
[8] Pardosi, Mico. Buku Panduan Microsoft Visual Basic 6.0, Surabaya : CV.
Dua Selaras. 2003
[9] Hermawan, Julius. Analisa Desain & Pemrograman Berorientasi Obyek
dengan UML dan Visual Basic.net. Jakarta : Andi. 2004.
LAMPIRAN KODE PROGRAM
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click() 'pilih file pertama
On Error Resume Next
With CommonDialog1 'componen commondialog (untuk memilih file)
.Filter = "Semua File Type (*.*)|*.*"
.ShowOpen
Text1.Text = .FileName 'text1.text sama dengan nama file yang di pilih
End With
End Sub
Private Sub Command2_Click() 'pilihan file kedua
On Error Resume Next
With CommonDialog1
.Filter = "Semua File Type (*.*)|*.*"
.ShowOpen
Text2.Text = .FileName
End With
End Sub
Private Sub Command3_Click() 'fungsi stego!!
Dim data As String
Dim x As Long
Dim y As Long
Dim z As Long
Dim pjg As Long
Dim ext As String
Dim encpjg As String
encpjg = FileLen(Text2.Text)
ext = Mid(StrReverse(Text2.Text), 1, 4)
ext = StrReverse(ext)
pjg = FileLen(Text1.Text)
FileCopy Text2.Text, Text2.Text & "_STEGO" & ext
x = FileLen(Text1.Text) Mod 10000
y = FileLen(Text1.Text) - x
Open Text1.Text For Binary Access Read As #1
Open Text2.Text & "_STEGO" & ext For Binary Access Write As #2
Put #2, FileLen(Text2.Text) + 1, ""
If pjg >= 10000 Then
For z = 1 To y Step 10000
data = Space$(10000)
Get #1, z, data
Put #2, , encrypt(data, Text5.Text)
Next
y = x
data = Space$(y)
Get #1, , data
Put #2, , encrypt(data, Text5.Text)
Put #2, , "|" & encrypt(encpjg, Text5.Text)
Else
data = Space$(pjg)
Get #1, 1, data
Put #2, , encrypt(data, Text5.Text)
Put #2, , "|" & encrypt(encpjg, Text5.Text)
End If
Close #2
Close #1
MsgBox "selesai!!" & vbCrLf & "file ter-stego di " & Text2.Text & "_STEGO" &
ext, vbOKOnly, "stego"
End Sub
Function encrypt(data As String, kunci As String) As String 'fungsi enkripsi data
Dim i As Double
Dim x As Double
Dim gimmehash As Long
gimmehash = hash(kunci)
Dim enkripsi As String
For i = 1 To Len(data) 'enkrip data mulai dari bytes ke 1 sampai akhir
x = i Mod Len(kunci)
If x = 0 Then
x = 1
End If
enkripsi = enkripsi & Chr(((Asc(Mid(data, i, 1)) Xor Asc(Mid(kunci, x, 1)) Xor i)
Xor gimmehash) Mod 256) 'simpan di variabel enkripsi
Next
encrypt = enkripsi 'kembalikan nilainya ke fungsi
End Function
Private Sub Command4_Click()
On Error Resume Next
Dim unstego As String
Dim uncek As String
Dim pmbts As String
Dim pjg2 As Long
Dim z As Long
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim e As Long
z = 0
uncek = Space$(1)
Open Text4.Text For Binary Access Read As #1
Open Text4.Text & "_UNSTEGO." & Text3.Text For Binary Access Write As #2
Put #2, 1, ""
While uncek <> "|"
Get #1, FileLen(Text4.Text) - z, uncek
pmbts = uncek & pmbts
z = z + 1
Wend
b = Len(pmbts)
pmbts = Mid(pmbts, 2, Len(pmbts) - 1)
pmbts = encrypt(pmbts, Text6.Text)
z = pmbts
a = FileLen(Text4.Text) - (b + z)
If a >= 10000 Then
c = a Mod 10000
d = (a - c) + z
For e = (z + 1) To d Step 10000
unstego = Space$(10000)
Get #1, e, unstego
Put #2, , encrypt(unstego, Text6.Text)
Next
unstego = Space$(c)
Get #1, , unstego
Put #2, , encrypt(unstego, Text6.Text)
Else
unstego = Space$(a)
Get #1, (z + 1), unstego
Put #2, , encrypt(unstego, Text6.Text)
End If
Close #2
Close #1
MsgBox "selesai!!" & vbCrLf & "file ter-unstego", vbOKOnly, "unstego"
End Sub
Private Sub Command6_Click()
On Error Resume Next
With CommonDialog1
.Filter = "Semua File Type (*.*)|*.*"
.ShowOpen
Text4.Text = .FileName
End With
End Sub
Private Sub Form_Terminate()
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub kel_Click()
MsgBox "Dibuat Oleh : " & vbCrLf & " Eko Hari Rachmawanto" & vbCrLf &
"A11.2006.02767" & vbCrLf & "Universitas Dian Nuswantoro" & vbCrLf &
"Semarang", vbOKOnly, "Stego"
End Sub
Private Sub kele_Click()
End
End Sub
Private Sub stego_Click()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
If Frame1.Left > 120 Then
Frame1.Left = Frame1.Left - 500
Frame2.Left = Frame2.Left + 500
End If
If Frame1.Left = 120 Then
Timer1.Enabled = False
End If
End Sub
Private Sub Timer2_Timer()
If Frame2.Left > 120 Then
Frame2.Left = Frame2.Left - 500
Frame1.Left = Frame1.Left + 500
End If
If Frame2.Left = 120 Then
Timer2.Enabled = False
End If
End Sub
Private Sub uns_Click()
Timer2.Enabled = True
End Sub
Function hash(keys As String) As Long
If keys = "" Then
MsgBox "Silahkan isi password nya dulu", vbCritical, "errorrr"
End
Else
Dim r As Long
Dim nilai As Long
For r = 1 To Len(keys)
nilai = nilai + Asc(Mid(keys, r, 1))
nilai = nilai Mod Len(keys)
hash = nilai
Next
End If
End Function