Eko Hari Rachmawanto Lengkap Sekali [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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 :



Mengtahui :



Pembimbing



Dekan Fakultas Ilmu Komputer



M. Arief Soelaeman, M. Kom



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 Anggota



Edi Faisal, M.Kom 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



:



Pada tanggal :



Semarang 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 NonEkseklusif 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19



Hex Biner 0 00000000 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13



00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111 00010000 00010001 00010010 00010011



ASCII



Des



Hex Biner



null



128



80 10000000



ASCII Ç



 ☻ ♁ ♂ ♀ ☿ ● ╼ ╻ ╽ ☾ ☽ ♃ ♄ ☼ ╸ ╺ ↕ !!



129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147



81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93



ű é â ä à å ç ê ë è ï î ì Ä Å É æ Æ ô



10000001 10000010 10000011 10000100 10000101 10000110 10000111 10001000 10001001 10001010 10001011 10001100 10001101 10001110 10001111 10010000 10010001 10010010 10010011



20 21 22 23 24 25 26 27 28 29 30 31



14 15 16 17 18 19 1A 1B 1C 1D 1E 1F



32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57



00010100 00010101 00010110 00010111 00011000 00011001 00011010 00011011 00011100 00011101 00011110 00011111



¶ § ╶ ↖ ↑ ↓ → ← ↗ ↔ ╷ ╹



148 149 150 151 152 153 154 155 156 157 158 159



94 95 96 97 98 99 9A 9B 9C 9D 9E 9F



20 00100000



Spasi



160



A0 10100000



21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39



! “ # $ % & „ ( ) * + , . / 0 1 2 3 4 5 6 7 8 9



161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185



A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9



00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000 00110001 00110010 00110011 00110100 00110101 00110110 00110111 00111000 00111001



10010100 10010101 10010110 10010111 10011000 10011001 10011010 10011011 10011100 10011101 10011110 10011111 10100001 10100010 10100011 10100100 10100101 10100110 10100111 10101000 10101001 10101010 10101011 10101100 10101101 10101110 10101111 10110000 10110001 10110010 10110011 10110100 10110101 10110110 10110111 10111000 10111001



ö ò û Ù



ij Ö Ü ¢ £ ¥ Pt ƒ á í ó ú ñ Ñ а о ⌐ ¬ ½ ¼ « » ╲ ╳ ╴ | ┤ ╡ ╢ ╖ ╕ ╣



58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96



3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60



00111010 00111011 00111100 00111101 00111110 00111111 01000000 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111 01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011011 01011100 01011101 01011110 01011111 01100000



: ; < = > ? @ 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 [ \ ] ^ _ `



186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224



BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0



10111010 10111011 10111100 10111101 10111110 10111111 11000000 11000001 11000010 11000011 11000100 11000101 11000110 11000111 11001000 11001001 11001010 11001011 11001100 11001101 11001110 11001111 11010000 11010001 11010010 11010011 11010100 11010101 11010110 11010111 11011000 11011001 11011010 11011011 11011100 11011101 11011110 11011111 11100000



║ ╗ ╝ ╜ ╛ ┐ └ ┴ ┬ ├ ⌢ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ ╯ ╮ ╰ ╱ ╭ Α



97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 `122 123 124 125 126 127 2.4



61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F



01100001 01100010 01100011 01100100 01100101 01100110 01100111 01101000 01101001 01101010 01101011 01101100 01101101 01101110 01101111 01110000 01110001 01110010 01110011 01110100 01110101 01110110 01110111 01111000 01111001 01111010 01111011 01111100 01111101 01111110 01111111



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 { | } ~ ⌂



225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255



E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF



11100001 11100010 11100011 11100100 11100101 11100110 11100111 11101000 11101001 11101010 11101011 11101100 11101101 11101110 11101111 11110000 11110001 11110010 11110011 11110100 11110101 11110110 11110111 11111000 11111001 11111010 11111011 11111100 11111101 11111110 11111111



Β Г Π Σ Ơ Μ Τ Ф Θ Ω Ό ∞ Ф Є   ± > < ⌠ ⌡ ÷  ╻ . . √ N 2 ╵ blank



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



2.5



0



0



0



0



1



1



1



0



1



1



1



0



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 / M134 (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.



Encryption Key



Plaintext



A



Encrypt



Decryption Key



Ciphertext



Decrypt



Plaintext



B



C



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, kuncikunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan [7]. Kriptosistem terdiri dari sebuah algoritma, plaintext, chipertext dan kuncikunci. 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 bc de fghi j k l mnopqr s t uvwxy 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



2.



01000011 01101000 01101001 01110000 01100101 01110010



Lalu, kedua bilangan biner itu kita XOR-kan menurut persamaan 2.3 : Plainteks



: 01010110 01100101 01110010 01101110 01100001 01101101



Kunci



: 01000011 01101001 01110000 01101000 01100101 01110010



Cipherteks : 00010101 00001100 00000010 00000110 00000100 00011111



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 :



2.



ASCII



Biner



§☽☻☿♂ ╹



00010101 00001100 00000010 00000110 00000100 00011111



Cipher



01000011 01101000 01101001 01110000 01100101 01110010



Lalu, kedua rangkaian biner itu kita XOR-kan dengan berdasar pada persamaan 2.4 : Cipherteks : 00010101 00001100 00000010 00000110 00000100 00011111 Kunci



: 01000011 01101001 01110000 01101000 01100101 01110010



Plainteks : 01010110 01100101 01110010 01101110 01100001 01101101



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-alirankunci (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 mengXOR-kan kedua cipherteks tersebut dan memperoleh dua buah plainteks yang ter-XOR satu sama lain:



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-alirankunci 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 benarbenar 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 ciriciri 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 pesanpesannya 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 komponenkomponen yang digunakan dalam mengembangkan suatu sistem.



-



Tingkat kepuasan konsumen yang tinggi karena kebutuhankebutuhan 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?



b.



-



Informasi apa yang dimunculkan?



-



Siapa yang memunculkan?



-



Ke mana informasi itu pergi?



-



Siapa yang memprosesnya?



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



e.



Membuat kembali penggunaan komponen jika diperlukan.



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.



3.5



Waktu, biaya dan effort (usaha) minimal.



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 2 3



Pengirim membuka aplikasi Steganographer. Pengirim memasukkan nama file yang akan disembunyikan. 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.



Memasukkan File yang akan di Kripto dan Stego



Pengirim



Memasukkan File Inang/Induk



Memasukkan File yang di Unkripto dan Unstego



Input Password Kunci Unkripto dan Unstego



Proses Kripto dan Stego



Penerima



Proses UnKripto dan Unstego



Input Password Kunci Kripto dan Stego







Kriptografi



Steganografi







Enkripsi



Stego



Kriptografi



Steganografi







Dekripsi



Unstego



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



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.



Baca Ukuran File



Baca Media File



Membuka File Hasil dg penambahan "_Stego" pada akhir penamaan file (dalam modus tulis)



> 10000 byte < 10000 byte Membuka File Hasil dg penambahan "_Stego" pada akhir penamaan file (dalam modus tulis)



Penghitungan Looping Pembacaan File



Baca Sebanyak 10000 byte Enkripsi Keseluruhan File



Enkripsi Data yang Dibaca



Memasukkan ke File Hasil



Memasukkan ke File Hasil Alokasikan Memory sebanyak Sisanya



sisa



sisa > 10000 byte



tidak sisa



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.



Baca Hexa Decimal File dari Belakang sampai ketemu tanda "|"



Baca Media File



Kurangi ukuran File dengan File Induk



Baca Ukuran File dari Depan sampai tanda "|"



Membuat File Hasil dg penambahan "_Unstego" pada akhir penamaan file



> 10000 byte < 10000 byte Membuat File Hasil dg penambahan "_Unstego" pada akhir penamaan file



Perhitungan Looping Pembacaan File



Baca Sebanyak 10000 byte



Dekripsi Keseluruhan File



Dekripsi Data yang Di Baca Memasukkan ke dalam File Hasil



Memasukkan ke dalam File Hasil sisa > 10000 byte



sisa



Alokasikan Memory Sebanyak Sisanya



tidak sisa



Gambar 4.4 : Activity Diagram Unkripto dan Unstego



Gambar 4.5 : Activity Diagram Enkripsi dan Dekripsi



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 modelmodel yang telah penulis buat supaya memudahkan pengguna dalam menggunakan program yang nantinya akan dibuat.



Pengirim : Pengirim



File Asli



File Induk



Kunci



Stego



1: Masukkan File Asli 2: Masukkan File Induk 3: Berikan Kunci 4: Klik Tombol Stego



Gambar 4.8 : Sequence Diagram Kripto dan Stego



File Stego



Penerima : Penerima



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



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 terunstego 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 Nilai No



Uraian Pertanyaan 1



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 ?



2



3



4



5



Berikut ini adalah rincian dari hasil responden terhadap pengujian program.



Tabel 4.6 : Tabel Hasil Pengujian



No



Nama Responden



1



Pertanyaan A



Pertanyaan B



1



2



3



4



1



2



3



4



Etika Kartikadarma, M. Kom



5



4



5



5



3



5



5



4



2



Puput Tri Hantoro Ardi



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



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