IMPLEMENTASI STEGANOGRAFI DAN KRIPTOGRAFI UNTUK KEAMANAN DATA DENGAN METODE RC2 PADA CITRA BITMAP 3x SKRIPSI 3x Diajukan Guna Memenuhi Salah Satu Syarat Untuk Menyelesaikan Pendidikan Strata 1 Progrm Studi Sistem Informasi 2x Disusun Oleh : 2x
Times New Roman 12 Bold
MUHAMMAD NAUFAL 20092120201 Times New Roman 14 Bold
4x
Skala 5 x 5 (logo bulat Simetris)
4x
Sekolah Tinggi Manajemen Informatika dan Komputer
TRIGUNA DHARMA MEDAN 2013
Times New Roman 16 Bold
IMPLEMENTASI STEGANOGRAFI DAN KRIPTOGRAFI UNTUK KEAMANAN DATA DENGAN METODE RC2 PADA CITRA BITMAP
5x
MUHAMMAD NAUFAL 20092120201 4x Skripsi Diajukan Sebagai Persyaratan Untuk Meraih Gelar Sarjana Komputer Pada Program Studi Sistem Informasi
Times New Roman 14 Bold
5x
Times New Roman 12 Bold
Skala 5 x 5 (logo bulat Simetris)
5x
Sekolah Tinggi Manajemen Informatika dan Komputer
TRIGUNA DHARMA MEDAN 2013
Times New Roman 16 Bold
Times New Roman 14 Bold LEMBAR PERSETUJUAN 2x
SKRIPSI 2x
IMPLEMENTASI STEGANOGRAFI DAN KRIPTOGRAFI UNTUK KEAMANAN DATA DENGAN METODE RC2 DAN LSB PADA CITRA BITMAP 3x
Disusun Oleh: 2x
MUHAMMAD NAUFAL 20092120201 3x Telah Disetujui Oleh Dosen Pembimbing Skripsi Pada Tanggal 22 Februari 2013 4x Dosen Pembimbing I,
Diisi tanggal ACC Berita Acara dari kedua Doping dan Ka.Prodi Dosen Pembimbing II,
5x
5x
(Darjat Saripurna, S.Kom., M.Kom)
(Ishak, S.Kom., M.Kom) 4x
Ketua Program Studi Sistem Informasi 5x
(Sulindawaty, S.Kom., M.Kom)
Times New Roman 14 Bold LEMBAR PENGESAHAN 2x
SKRIPSI 2x
IMPLEMENTASI STEGANOGRAFI DAN KRIPTOGRAFI UNTUK KEAMANAN DATA DENGAN METODE RC2 DAN LSB PADA CITRA BITMAP 3x Dipersiapkan dan disusun oleh : 2x
MUHAMMAD NAUFAL 20092120201 2x Dipertahankan didepan dewan penguji Tanggal 25 Oktober 2012
Diisi dengan tanggal lulus sidang
2x Penguji I
Penguji II
5x
5x
(Zulfian Azmi, ST., M.Kom)
(Muhammad Dahria, SE., S.Kom., M.Kom) 2x
Diterima sebagai persyaratan untuk meraih gelar Sarjana Komputer 2x Diketahui dan disahkan oleh : Ketua, 5x
Pembantu Ketua I, 5x
(Saiful Nur Arif, S.E, S.Kom.,M.Kom) (Beni Andika, S.T, S.Kom, M. Kom)
KATA PENGANTAR
Puji dan syukur atas kehadirat Allah SWT, yang telah melimpahkan rahmat dan karunia-Nya sehingga penulis sehingga dapat menyelesaikan penulisan Skripsi ini tepat pada waktu yang telah ditentukan. Penulisan Skripsi ini disusun sebagai salah satu syarat untuk menyelesaikan Pendidikan Strata 1 program studi Sistem Informasi di STMIK Triguna Dharma Medan. Teristimewa penulis ucapkan kepada Ayahanda dan Ibunda tercinta atas segala doa, cinta dan kasih serta semangat dan dukungan spirit maupun materi yang tak terhingga. Penulis juga banyak mendapatkan bantuan dari berbagai pihak baik dalam penyelesaian Skripsi ini. Kesemuanya itu tidak terlepas dari tanggung jawab penulis dan semua itu bersumber dari keterbatasan pengetahuan yang dimiliki penulis. Oleh karena itu pada kesempatan ini, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada: 1.
Bapak Saiful Nur Arif, S.E, S.Kom, M.Kom selaku Ketua STMIK Triguna Dharma yang telah memberikan izin untuk melaksanakan penyusunan Tugas Akhir.
2.
Bapak Beni Andika, S.T, S.Kom, M.Kom selaku Pembantu Ketua I STMIK Triguna Dharma.
i
3.
Ibu Sulindawaty, S.Kom, M.Kom selaku Ketua Program Studi Sistem Informasi STMIK Triguna Dharma, yang telah banyak membantu dalam memberikan pandangan dan motivasi.
4.
Bapak Darjat Saripurna, S.Kom, M.Kom selaku Dosen Pembimbing I dalam penyelesaian Skripsi ini, yang telah banyak membantu memberikan bimbingan, tata cara penulisan, saran-saran, pandangan dan motivasi.
5.
Bapak Ishak, S.Kom, M.Kom selaku Dosen Pembimbing II dalam penyelesaian Skripsi ini, yang telah banyak membantu memberikan bimbingan, tata cara penulisan, saran-saran, pandangan dan motivasi.
6.
Seluruh Dosen, Staf dan Pegawai STMIK Triguna Dharma . Atas segala bantuan yang telah diberikan semoga Allah SWT berkenan
memberikan balasan yang setimpal. Disadari bahwa Tugas Akhir ini tidak luput dari kesalahan dan jauh dari kesempurnaan baik dalam segi penyajian maupun segi ilmiahnya. Walupun demikian semoga hasil-hasil yang dituangkan dalam Tugas Akhir ini dapat bermanfaat bagi kita semua.
Diisi Bulan ACC dari Doping Medan, Februari 2013 Penulis Tidak Boleh Ditanda Tangani
ii
Muhammad Naufal NIRM : 20092120201
ABSTRAK
Penggunaan teknik steganografi atau teknik kriptografi banyak diaplikasikan sebagai cara untuk mengamankan kerahasian data seperti pengiriman data melalui jaringan intenet. Pada steganografi data yang dirahasiakan disembunyikan ke dalam media lain dalam bentuk gambar, teks, suara ataupun video. Sedangkan pada kriptografi data yang dirahasiakan disamarkan dengan cara mengubah data asli menjadi seolah-olah tak terbaca. Kedua teknik ini sama-sama memiliki kelemahan, tetapi dengan menggabungkan kedua teknik ini maka akan membuat data yang dirahasiakan menjadi lebih terjamin lagi kerahasiaannya. Pembahasan utama dari penelitian ini adalah membuat suatu aplikasi keamanan data dengan menggabungkan teknik steganografi dan kriptografi. Metode yang akan digunakan dalam steganografi yaitu metode LSB (Least Significant Bit) sedangkan pada kriptografi yang akan digunakan adalah metode RC2. Proses yang dilakukan adalah dengan mengenkripsi data yang dirahasiakan terlebih dahulu, lalu menyembunyikannya ke dalam media lain dalam bentuk gambar yaitu berupa citra bitmap. Hasil dari penelitian ini adalah aplikasi yang dirancang mampu memenuhi kebutuhan keamanan informasi, baik perlindungan terhadap kerahasiaan informasi maupun perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak diinginkan.
Kata Kunci : Steganografi, Kriptografi, Keamanan data, Least Significant Bit, RC2
iii
DAFTAR ISI
KATA PENGANTAR ....................................................................................... ABSTRAK ......................................................................................................... DAFTAR ISI ...................................................................................................... DAFTAR GAMBAR ......................................................................................... DAFTAR TABEL .............................................................................................. BAB I PENDAHULUAN .............................................................................. 1.1. Latar Belakang Masalah ............................................................. 1.2. Rumusan Masalah ...................................................................... 1.3. Batasan Masalah ......................................................................... 1.4. Tujuan dan Manfaat ................................................................... 1.5. Metode Penelitian ....................................................................... 1.6. Sistematika Penulisan ................................................................ BAB II LANDASAN TEORI ........................................................................... 2.1. Keamanan Komputer .................................................................. 2.1.1. Privacy/Confidentiality ................................................... 2.1.2. Integrity ........................................................................... 2.1.3. Authentication ................................................................. 2.1.4. Avaibility ........................................................................ 2.1.5. Access Control ................................................................ 2.1.6. Non Repudiation ............................................................. 2.2. Steganografi ................................................................................ 2.1.1. Sejarah Steganografi ....................................................... 2.1.2. Tujuan Steganografi ....................................................... 2.1.3. Cara Kerja Steganografi ................................................. 2.1.4. Steganografi Dengan Merode LSB (Least Significant Bit) .................................................... 2.1.5. Kriteria Steganografi Yang Baik .................................... 2.3. Kriptografi .................................................................................. 2.2.1. Sejarah Kriptografi ......................................................... 2.2.2. Tujuan Kriptografi ........................................................ 2.2.3. Cara Kerja Kriptigrafi .................................................... 2.2.4. Fungsi Hash .................................................................... 2.2.5. MD5 (Message-Digest Algorithm 5) .............................. 2.2.6. RC2 (Rivest Cipher 2) .................................................... 2.4. Citra ............................................................................................ 2.5. Unified Modelling Language ..................................................... 2.5.1. Tujuan Penggunaan UML ............................................... 2.5.2. Use Case Diagran ........................................................... 2.5.3. Defenisi Object dan Class .............................................. 2.5.4. Activity Diagram ............................................................. 2.5.5. Class Diagram ................................................................. 2.6. Flowchart ....................................................................................
iv
i iii iv vi viii 1 1 3 3 4 5 5 7 7 9 9 10 10 11 11 12 14 14 17 19 20 22 22 22 24 25 29 30 32 32 33 33 34 35 36 37
BAB III ANALISA DAN PERANCANGAN ................................................... 39 3.1. Algoritma RC2, Dan Metode LSB Pada Citra Bitmap ............... 39 3.1.1. Proses Enkripsi Dan Penyisipan Data ............................ 39 3.1.2. Pengungkapan Data Dan Proses Dekripsi ...................... 63 3.2. Algoritma Sistem ........................................................................ 65 3.2.1. Algoritma Penyembunyi File .......................................... 66 3.2.2. Algoritma Ekstraksi File ................................................. 67 3.3. Use Case Diagram ...................................................................... 69 3.4. Activity Diagram ......................................................................... 73 3.4.1. Activity Diagram Penyembunyi File .............................. 74 3.4.2. Activity Diagram Ekstraksi File ....................................... 75 3.5. Class Diagram ............................................................................ 76 3.6. Flowchart Program .................................................................... 77 3.4.1. Flowchart Program Penembunyi File ............................ 78 3.4.2. Flowchart Program Ekstraksi File ................................. 79 3.7. Perancangan Antar Muka ........................................................... 80 3.2.1. Antar Muka Form Pembuka ........................................... 80 3.2.2. Antar Muka Form Menu Utama ..................................... 81 3.2.3. Antar Muka Form Penyembunyi File ............................ 82 3.2.4. Antar Muka Form Citra Hasil ......................................... 86 3.2.5. Antar Muka Form Ekstraksi Data .................................. 87 BAB IV IMPLEMENTASI DAN PENGUJIAN .............................................. 90 4.1. Kebutuhan Sistem ...................................................................... 90 4.1.1. Spesifikasi Kebutuhan Perangkat Keras (Hardwaer) ..... 90 4.1.2. Spesifikasi Kebutuhan Perangkat Lunak (Software) ...... 91 4.2. Implementasi .............................................................................. 91 4.2.1. Instalasi Aplikasi ............................................................ 91 4.2.2. Tampilan Program .......................................................... 94 4.2.3. Format Citra Dan File .................................................... 98 4.2.4. Pengujian Program ......................................................... 98 4.2.4.1. Pengujian Dengan Menggunakan File Teks ... 99 4.2.4.2. Pengujian Dengan Menggunakan File Gambar ............................................................ 102 4.2.4.3. Pengujian Dengan Menggunakan File Teks Dan File Gambar ............................................. 105 4.2.4.4. Pengujian Dengan Menggunakan File Teks Dan Sandi Berbeda .......................................... 109 4.3. Kelemahan dan Kelebihan Sistem .............................................. 113 4.3.1. Kelemahan Sistem............................................................ 113 4.3.2. Kelebihan Sistem ............................................................. 113 BAB V KESIMPULAN DAN SARAN ........................................................... 114 5.1. Kesimpulan ................................................................................ 114 5.2. Saran ........................................................................................... 115 DAFTAR PUSTAKA ......................................................................................... ix
v
DAFTAR GAMBAR
Gambar 2.1.
Scytale ........................................................................................ 18
Gambar 3.1. Gambar 3.2. Gambar 3.3. Gambar 3.4. Gambar 3.5. Gambar 3.6. Gambar 3.7. Gambar 3.8. Gambar 3.9. Gambar 3.10. Gambar 3.11. Gambar 3.12. Gambar 3.13. Gambar 4.1.
Algoritma Penyembunyi File Pada Citra Bitmap........................ 67 Algoritma Ekstraksi File Pada Citra Bitmap............................... 69 Use Case Diagram Embeded dan Ekstracting File ..................... 70 Activity Diagram Penyembunyi File ......................................... 74 Activity Diagram Ekstraksi File.................................................. 75 Class DiagramAplikasi Stegrafi yang dibangun ......................... 76 Flowchart Program Penyembunyi File ...................................... 78 Flowchart Program Ekstraksi File ............................................... 79 Perancangan Antar Muka Form Pembuka ................................. 80 Perancangan Antar Muka Form Menu Utama ............................ 81 Perancangan Antar Muka Form Penyembunyi File ................... 82 Perancangan Antar Muka Form Citra Hasil ............................... 86 Perancangan Antar Muka Form Ekstraksi File ........................... 87 Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Awal ................................................................................. 92 Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Dua ................................................................................... 92 Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Tiga ................................................................................. 93 Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Empat ............................................................................... 93 Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Lima ................................................................................. 94 Tampilan Menu Utama .............................................................. 94 Tampilan Menu “Sembunyikan File” ........................................ 95 Tampilan Menu “Citra Hasil” .................................................... 96 Tampilan Menu “Ekstraksi File” ............................................... 97 Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Teks ....................................................................... 100 Perbandingan Media Citra Sebelum Dan Setelah Disisipkan File Teks ..................................................................................... 100 Hasil Ekstraksi Data Dari Media Citra ....................................... 101 Perbandingan Isi File Teks Sebelum Disisipkan Ke Dalam Citra (Kiri) Dan Setelah Diekstraksi Dari Media Citra Serta Didekripsi (Kanan) ............................................................ 102 Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Gambar .................................................................. 103 Perbandingan Media CitraviSebelum Dan Setelah Disisipkan File Gambar ................................................................................ 103 Hasil Ekstraksi Data Dari Media Citra ....................................... 104
Gambar 4.2. Gambar 4.3. Gambar 4.4. Gambar 4.5. Gambar 4.7. Gambar 4.8. Gambar 4.9. Gambar 4.10. Gambar 4.12. Gambar 4.13. Gambar 4.14. Gambar 4.15.
Gambar 4.16. Gambar 4.17. Gambar 4.18.
vi
Gambar 4.19. Perbandingan Isi File Gambar Sebelum Disisipkan Ke Dalam Citra (Kiri) Dan Setelah Diekstraksi Dari Media Citra Serta Didekripsi (Kanan) ............................................................ 105 Gambar 4.20. Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Teks Dan File Gambar .......................................... 106 Gambar 4.21. Perbandingan Media Citra Sebelum Dan Setelah Disisipkan File Teks Dan File Gambar ........................................................ 107 Gambar 4.22. Hasil Ekstraksi Data Dari Media Citra ....................................... 108 Gambar 4.23. Perbandingan Isi File Teks Dan File Gambar Sebelum Disisipkan Ke Dalam Citra (Kiri) Dan Setelah Diekstraksi Dari Media Citra Serta Didekripsi (Kanan) ............................... 109 Gambar 4.24. Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Teks ....................................................................... 110 Gambar 4.25. Perbandingan Media Citra Sebelum Dan Setelah Disisipkan File Teks ..................................................................................... 110 Gambar 4.26. Hasil Ekstraksi Data Dari Media Citra ....................................... 111 Gambar 4.27. Pesan Kesalahan Saat Penyimpanan File ................................... 112
vii
DAFTAR TABEL
Tabel 2.1. Fungsi Dasar MD5 ............................................................................. 28 Tabel 2.2. Nilai T[i] ............................................................................................ 29 Tabel 2.3. Simbol-Simbol Use Case Diagram ................................................... 34 Tabel 2.4. Simbol-Simbol Activity Diagram ...................................................... 36 Tabel 2.5. Simbol-Simbol Class Diagram ......................................................... 37 Tabel 2.6. Simbol-Simbol Flowchart.................................................................. 38 Tabel 3.1. Nilai Representasi Warna Citra Bitmap ............................................. 61 Tabel 3.2. Nilai Representasi Warna Citra Bitmap Setelah Disisipkan Data ..... 62 Tabel 4.1. Tabel Data Media Citra Hasil Pengujian Pertama ............................ 101 Tabel 4.2. Tabel Data Media Citra Hasil Pengujian Kedua ............................... 104 Tabel 4.3. Tabel Data Media Citra Hasil Pengujian Ketiga ............................... 117 Tabel 4.4. Tabel Data Media Citra Hasil Pengujian Keempat ........................... 111
viii
BAB I PENDAHULUAN
1.1
Latar Belakang Perkembangan teknologi komunikasi dan informasi memberikan pengaruh
besar bagi kehidupan manusia. Salah satunya adalah penggunaan
jaringan
internet yang memungkinkan orang untuk saling bertukar data. Seiring dengan perkembangan tersebut, kejahatan teknologi komunikasi dan informasi juga turut berkembang, seperti yang sering kita dengar adalah hacker, cracker, carder, phreaker dan sebagainya. Ancaman dari keamanan komunikasi lewat jaringan turut menjadi sorotan bagi para pengguna internet. Ancaman-ancaman tersebut bisa berupa interupsi, penyadapan, modifikasi maupun fabrikasi. Tentunya ancaman ini akan berakibat pada data-data yang dikomunikasikan. Dengan
berkembangnya
ilmu
pengetahuan
khususnya
dibidang
informatika, penerapan teknik-teknik pengamanan data yang sudah pernah dipakai jaman dulu bisa menjadi alternatif dalam pengamanan komunikasi data melalui jaringan internet. Sebagai contoh adalah kriptografi, yang merupakan teknik untuk menjaga keamanan pesan yang dikirim dari suatu tempat ke tempat yang lain. Kriptografi sudah dikenal 4000 tahun yang lalu. Kriptografi berkembang pada jaman mesir kuno dan romawai kuno. Bahkan kriptografi ini memegang peranan penting dalam perang dunia kedua, yang pada saat itu kriptografi diterapkan menggunakan mesin motor yang disebut dengan enigma. Enigma ini digunakan
1
2
oleh Hittler untuk mengirim pesan ke tentaranya. Dalam penerapannya, kriptografi sering disebut dengan istilah enkripsi. Perkembangan steganografi menjadi salah satu alternatif pengamanan dalam komunikasi data di jaringan internet. Berbeda dengan teknik kriptografi, kalau kriptografi, kecurigaan terhadap pesan yang disamarkan mudah dikenali karena pesan disamarkan dengan cara mengubah pesan yang asli menjadi seolah-olah tidak terbaca. Sedangkan steganografi lebih mengurangi kecurigaan karena pesan yang disamarkan disembunyikan dalam sebuah file misalnya disembunyikan didalam sebuah citra. RC2 adalah cipher blok yang menggunakan 64 bit sebagai ukuran per blok-nya dengan kunci yang ukurannya bervariasi (0-1024 bit). Metode ini dapat diterapkan dalam proses pengamanan data pada kriptografi. LSB (least significant bit) merupakan metode menyisipkan sebuah nilai pada bit-bit terendah (Least Significant Bit) pada tiap-tiap pixel sebuah citra. Penerapan LSB pada steganografi tepat digunakan, dimana citra yang telah di-tepat digunakan, dimana citra yang telah di-embedd tidak mengalami perubahan yang significan, bahkan tidak tampak adanya perubahan. Maka dengan menggunakan metode RC2 dan LSB akan menghasilkan suatu sistem dengan tingkat keamanan yang lebih tinggi. Kriptografi dan steganografi sama-sama memiliki kelemahan. Dengan menggabungkan kedua teknik pengamanan data tersebut maka data bisa lebih terjamin kerahasiaannya. Berdasarkan hal tersebut maka dilakukan penelitian sebagai objek dalam penyusunan skripsi ini dengan judul “Implementasi Steganografi dan Kriptografi Untuk Keamanan Data Dengan Metode RC2 dan LSB Pada Citra Bitmap”.
3
1.2
Rumusan Masalah Rumusan masalah yang akan dibahas dalam penulisan skripsi ini adalah
sebagai berikut : 1.
Bagaimana perubahan dan pengaruh terhadap citra bitmap yang digunakan sebagai media file steganografi?
2.
Bagaimana mengimplementasikan metode RC2 dengan fungsi hash MD5 terhadap file yang akan disembunyikan kedalam citra bitmap?
3.
Bagaimana implementasi Steganografi dan Kriptografi pada sebuah citra bitmap sehingga file yang telah disembunyikan benar-benar terjaga kerahasiannya.
1.3
Batasan Masalah Adapun batasan masalah yang akan dibahas dalam penulisan skripsi ini
adalah sebagai berikut : 1.
Metode kriptografi yang dipakai menggunakan algoritma RC2 Dan metode steganografi yang dipakai menggunakan metode LSB (Least Significant Bit).
2.
Media penyimpanan file yang digunakan hanya berupa citra bitmap berformat *.bmp.
3.
Citra bitmap yang digunakan minimal berukuran 80 x 80 pixel atau minimal memiliki 6.400 pixel dan maximal berukuran 2000 x 2000 pixel atau maximal memiliki 4.000.000 pixel.
4.
Resolusi citra bitmap yang digunakan hanya 24 bit saja.
5.
File yang dapat disembunyikan di dalam citra bitmap berupa file teks, dan gambar.
6.
Tidak membahas dalam proses pengiriman citra.
4
1.4
Tujuan Penelitian Adapun tujuan dari penulisan skripsi ini adalah sebagai berikut :
1.
Menghasilkan program yang menerapkan metode steganografi yaitu metode LSB (Least Significant Bit) dan metode kriptografi yaitu algoritma RC2 dan fungsi hash MD5.
2.
Melihat tingkat perubahan yang dialami oleh citra bitmap yang telah disisipkan data di dalamnya.
3.
Menghasilkan sebuah citra bitmap yang berisi file yang dianggap penting yang tidak boleh diketahui oleh pihak yang tidak berwenang.
1.5
Manfaat Adapun manfaat dari penulisan skripsi ini adalah sebagai berikut :
1.
Mampu membuat aplikasi stegrafi dalam hal ini media citra digital bertipe bitmap atau *.bmp, sehingga dapat mengimplementasikan konsep Hidden Message (Pesan Tersembunyi/ Pesan Terselubung) untuk mengamankan pesan rahasia dari pengguna informasi yang tidak berhak.
2.
Menambah kemampuan program dengan melakukan perbandingan terhadap perubahan ukuran citra bitmap asli dengan ukuran citra bitmap yang telah disisipkan data.
3.
Menambah pengetahuan dan wawasan dalam memahami sistem keamanan komputer yang berorientasi pada data ataupun file pada suatu citra.
4.
Sebagai sarana dalam menyalurkan keilmuan yang telah dipelajari selama perkuliahan.
5
1.6
Metode Penelitian Metode penelitian yang digunakan dalam penulisan skripsi ini adalah
sebagai berikut : 1.
Metode studi pustaka, yaitu dengan membaca beberapa literatur-literatur dan referensi mengenai steganografi dan kriptografi yang diperoleh dari bukubuku dari berbagai sumber, dan informasi yang ada di internet.
2.
Analisis dan Desain, yaitu menganalisa kebutuhan program dan melakukan perancangan antarmuka dari aplikasi yang akan dibuat.
3.
Pemrograman, yaitu melakukan pengkodean terhadap rancangan-rancangan yang telah didefinisikan.
4.
Implementasi, yaitu mengevaluasi kemampuan program dengan melakukan perbandingan terhadap perubahan ukuran citra bitmap asli dengan ukuran citra bitmap yang telah disisipkan data. Dan melakukan perbandingan terhadap perubahan yang dialami oleh citra bitmap yang telah disisipkan data seperti kerusakan pada citra bitmap akibat penyisipan data kedalamnya.
1.7
Sistematika Penulisan Dalam penulisan skripsi ini, dilakukan pembahasan yang dibagi kedalam
lima bab, yaitu : BAB I
Pendahuluan Pada bab ini dijelaskan tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
6
BAB II
Landasan Teori Pada bab ini akan diuraikan secara umum beberapa teori yang berhubungan dengan pembahasan masalah yang diangkat pada skripsi ini.
BAB III
Analisa dan Perancangan Pada bab ini dijelaskan mengenai pendekatan serta pemecahan masalah maupun
rancangan program
yang digunakan
dalam
penyusunan skripsi ini. BAB IV
Implementasi dan Pengujian Pada bab ini dibahas implementasi dari algoritma steganografi dan kriptografi yang digunakan pada skripsi ini dan beberapa hasil uji coba terhadap citra bitmap yang telah disisipkan data.
BAB V
Kesimpulan dan Saran Bab ini berisi beberapa kesimpulan berdasarkan uraian-uraian yang diperoleh sebelumnya pada skripsi ini dan berupa saran untuk pengembangan lebih lanjut.
BAB II LANDASAN TEORI
2.1
Keamanan Komputer Masalah keamanan merupakan salah satu aspek penting dari sebuah sistem
informasi. David J.Icove (2005:31) menjelaskan dalam bukunya yang berjudul “Collaring
The
Cybercrook
:
An
Investigator’s
View”,
keamanan
dapat
diklasifikasikan menjadi empat, yaitu: 1. Keamanan yang bersifat fisik (physical security), termasuk akses orang ke gedung, peralatan, dan media yang digunakan. 2. Keamanan yang berhubungan dengan orang (personal), termasuk identifikasi, dan profil resiko dari orang yang mempunyai akses (pekerja). 3. Keamanan dari data dan media serta teknik komunikasi (communications). Yang termasuk di dalam kelas ini adalah kelemahan dalam software yang digunakan untuk mengelola data. 4. Keamanan dalam operasi, termasuk prosedur yang digunakan untuk mengatur dan mengelola sistem keamanan, dan juga termasuk prosedur setelah serangan (post attack recovery). Menurut Budi Raharjo (2005:34), aspek-aspek ancaman pada komunikasi komputer mencakup dua aspek yaitu : 1.
Aspek eksternal, yang terdiri dari kejahatan dan serangan,
2.
Aspek internal yang terdiri dari : a. Kerahasiaan data
7
8
b. Privasi c. Batasan hak akses. William Stallings (2005:67) menjelaskan berbagai bentuk serangan yang dapat terjadi dalam keamanan data, yang meliputi : 1. Pencegatan/pengambilan informasi (interruption), 2. Penyadapan (interception), 3. Modifikasi/perusakan (modification/tampering), dan 4. Pemalsuan (fabrication). Bentuk serangan interruption yaitu dimana pelaku menghentikan dan merusak informasi sehingga informasi tidak disampaikan pada yang berhak, biasanya terjadi perusakan pada perangkat keras (hardware). Interruption dapat menyebabkan perangkat sistem menjadi rusak atau tidak tersedia. Serangan ditujukan kepada ketersediaan (availability) dari sistem. Contoh serangan adalah “denial of service attack”.
Serangan yang terjadi dalam bentuk interception yaitu dimana pihak yang tidak berwenang berhasil mengakses aset atau informasi. Informasi akan diterima oleh
orang yang tidak berhak atas infomasi (unauthorized) serta terjadinya penggandaan file/program (illicit copying). Selain itu terjadinya penyadapan paket informasi ( sniffing and wiretapping). Modifikasi / perusakan terjadinya penghentian aliran informasi atau terhambatnya informasi serta informasi yang diterima berubah. Pihak yang tidak berwenang tidak saja berhasil mengakses, akan tetapi dapat juga mengubah aset. Contoh dari serangan ini antara lain adalah mengubah isi dari web site dengan pesan-pesan yang merugikan pemilik web site.
9
Sedangkan serangan dalam bentuk fabrication yaitu pihak yang tidak berwenang menyisipkan objek palsu ke dalam sistem. Contoh dari serangan jenis ini adalah memasukkan pesan-pesan palsu seperti e-mail palsu ke dalam jaringan computer.
Menurut Simson Garfinkel (2006:101), keamanan komputer melingkupi empat aspek, yaitu privacy, integrity, authentication, dan availability. Selain keempat hal di atas, masih ada dua aspek lain yang juga sering dibahas dalam kaitannya dengan electronic commerce, yaitu access control dan non-repudiation.
2.1.1
Privacy / Confidentiality Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga
informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya pribadi sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu tersebut. Contoh hal yang berhubungan dengan privacy adalah e-mail seorang pemakai (user) tidak boleh dibaca oleh administrator. Contoh confidential information adalah data-data yang sifatnya pribadi (seperti nama, tempat tanggal lahir, social security number, agama, status perkawinan, penyakit yang pernah diderita, nomor kartu kredit, dan sebagainya) merupakan data-data yang ingin diproteksi penggunaan dan penyebarannya.
2.1.2
Integrity Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin
pemilik informasi. Adanya virus atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, diubah isinya (altered, tampered,
10
modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. Penggunaan enkripsi dan digital signature, misalnya, dapat mengatasi masalah ini.
2.1.3
Authentication Aspek ini berhubungan dengan metoda untuk menghindari terjadinya
copyright yang menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli. Otentikasi merupakan tugas yang rumit. Bentuk sederhananya adalah melakukan pertukaran informasi rahasia pada saat pertama komputer menjalin komunikasi, melakukan pengecekan satu sama lain. Masalah pertama, membuktikan keaslian dokumen, dapat dilakukan dengan teknologi watermarking dan digital signature. Masalah kedua biasanya berhubungan dengan access control, yaitu berkaitan dengan pembatasan orang yang dapat mengakses informasi. Dalam hal ini pengguna harus menunjukkan bukti bahwa memang dia adalah pengguna yang sah, misalnya dengan menggunakan password.
2.1.4
Availability Aspek availability atau ketersediaan berhubungan dengan ketersediaan
informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi. Contoh hambatan adalah serangan yang sering disebut dengan “denial of service attack” (Dos attack), dimana server dikirimi permintaan (biasanya palsu) yang bertubitubi atau
11
permintaan yang diluar perkiraan sehingga tidak dapat melayani permintaan lain atau bahkan sampai down, hang, crash. Contoh lain adalah adanya mailbomb, dimana seorang pemakai dikirimi e-mail bertubi-tubi (katakan ribuan e-mail) dengan ukuran yang besar sehingga sang pemakai tidak dapat membuka emailnya atau kesulitan mengakses e-mailnya (apalagi jika akses dilakukan melalui saluran telepon).
2.1.5
Access Control Aspek ini berhubungan dengan cara pengaturan akses kepada informasi.
Hal ini biasanya berhubungan dengan klasifikasi data (public, private, confidential, top secret) & user (guest, admin, top manager), mekanisme authentication dan juga privacy. Access control seringkali dilakukan dengan menggunakan kombinasi user id/password atau dengan menggunakan mekanisme lain (seperti kartu, biometrics).
2.1.6
Non-repudiation Aspek ini menjaga agar seseorang tidak dapat menyangkal telah
melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan email untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan email tersebut. Aspek ini sangat penting dalam hal electronic commerce. Penggunaan digital signature, certifiates, dan teknologi kriptografi secara umum dapat menjaga aspek ini. Akan tetapi hal ini masih harus didukung oleh hukum sehingga status dari digital signature itu jelas legal.
12
2.2
Steganografi Steganografi merupakan seni dan ilmu menulis atau menyembunyikan
pesan tersembunyi dengan cara tertentu sehingga selain si pengirim dan si penerima, tidak ada seorang pun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Istilah steganografi (steganography) berasal dari bahasa Yunani, yaitu steganos yang berarti penyamaran atau penyembunyian dan graphein yang berarti tulisan. Jadi steganografi (steganography) bisa diartikan sebagai seni menyamarkan/menyembunyikan pesan tertulis ke dalam pesan lainnya. (Munir, 2006:98)
2.2.1
Sejarah Steganografi Sejarah steganografi diawali dengan penggunaan hieroglyphic oleh bangsa
Mesir, yakni menulis menggunakan karakter-karakter dalam wujud gambar. Mesir merupakan bangsa yang pertama kali menggunakan kriptografi di dunia ini. Hieroglyphic dibaca sebagai gambar atau simbol. Di kota Menet Khufu, 4000 tahun yang lalu, ahli tulis menggunakan tulisan Mesir kuno yang menceritakan kehidupan majikannya. Tulisan Mesir kuno tersebut menjadi ide untuk membuat pesan rahasia saat ini. Oleh karena itulah, mesir kuno yang menggunakan gambar dianggap sebagai steganografi pertama di dunia. (Neil F. Johnson, 2006:154) Menurut para ahli, Yunani juga termasuk bangsa yang menggunakan steganografi setelah bangsa Mesir. Seorang sejarawan Yunani pertama yaitu Herodotus menulis sebuah cerita tentang steganografi, yaitu ketika seorang raja kejam Yunani bernama Histaeus dipenjarakan oleh Raja Darius di Susa pada abad ke-5 sebelum Masehi. Histaeus harus mengirim pesan rahasia kepada anak lakilakinya, Aristagoras di Militus. Ia menulis pesan dengan cara menato pesan pada
13
kulit kepala seorang budak. Ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan dikulit kepalanya tersebut kepada Aristagoras. Cerita lain yang ditulis oleh Heredotus, yaitu Demeratus, mengisahkan seorang Yunani yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes, Demaratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukirnya pada bagian bawah kayu. Papan kayu tersebut dimasukkan kedalam tabung kayu, kemudian tabung kayu ditutup kembali dengan lilin. Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini pertama kali digunakan pada zaman Romawi kuno, yaitu dengan menggunakan air sari buah jeruk, urin, atau susu sebagai tinta untuk menulis pesan. Cara membacanya adalah dengan dipanaskan diatas nyala lilin. Tinta yang sebelumnya tidak terlihat, ketika terkena panas akan berangsur-angsur menjadi gelap sehingga pesan dapat dibaca. Teknik
ini
juga
pernah
digunakan
pada
Perang
Dunia
II.
Pada masa lampau steganografi sudah dipakai untuk berbagai kebutuhan, seperti kepentingan politik, militer diplomatik, serta untuk kepentingan pribadi, yaitu alat komunikasi pribadi. Pada Perang Dunia II, Jerman menggunakan microdots untuk berkomunikasi. Penggunaan teknik ini biasa digunakan pada microfilm chip yang harus diperbesar sekitar 200 kali. Dalam hal ini Jerman menggunakan steganografi untuk kebutuhan perang sehingga pesan rahasia strategi atau apapun
14
tidak bisa diketahui oleh pihak lawan. Teknologi yang digunakan dalam hal ini adalah teknologi baru yang pada saat itu belum bisa digunakan oleh pihak lawan. Dari catatan sejarah dan contoh-contoh steganografi konvensional tersebut, kita dapat melihat bahwa semua teknik steganografi konvensional selalu berusaha merahasiakan pesan dengan cara menyembunyikan, mengkamuflase, ataupun menyamarkan pesan.
2.2.2 Tujuan Steganografi Saat ini dalam dunia digital, teknik steganografi banyak digunakan untuk menyembunyikan informasi rahasia dengan berbagai maksud. Salah satu tujuan dari steganografi adalah mengirimkan informasi rahasia melalui jaringan tanpa menimbulkan kecurigaan. Disamping itu steganografi juga dapat digunakan untuk melakukan autentikasi terhadap suatu hasil karya sebagaimana pemanfaatan watermarking. Namun steganografi juga bisa digunakan sebagai sarana kejahatan yang dapat digunakan oleh para teroris untuk saling berkomunikasi satu dengan lainnya.
2.2.3 Cara Kerja Steganografi Steganografi memerlukan setidaknya dua properti. Properti pertama adalah wadah penampung (cover) dan yang kedua adalah data atau pesan yang disembunyikan. Untuk meningkatkan tingkat keamanan data yang disimpan, dapat dilakukan dengan menambahkan properti kunci (key) rahasia. Properti kunci ini dapat berupa kunci simetris maupun kunci public atau privat. Berkas hasil dari proses steganografi sering disebut sebagai berkas stego (stego file) atau stego objek. (Johnson, 2006:175)
15
Properti wadah (cover) yang mungkin digunakan untuk menyimpan pesan dalam steganografi sangat beragam. Medium wadah tersebut antara lain citra, suara, video ataupun teks. Adapun data yang disimpan juga dapat berupa audio, citra, video maupun teks. Pertimbangan pemilihan penggunaan kunci dari segi tipe (simetris, public/privat) serta panjang kunci adalah suatu hal yang juga berperan penting dalam pengamanan data yang tersimpan dalam steganografi, disamping menjadi pertimbangan tingkat kemudahan saat ekstraksi data. Steganografi berbeda dengan kriptografi. Jika dalam kriptografi pesan yang dirahasiakan tidak disembunyikan, seorang kriptanalis dapat membaca pesan dalam format yang terenkripsi dan juga melakukan dekripsi data, maka dalam steganografi yang pertama kali harus dilakukan oleh seorang steganalis adalah menemukan stego objek terlebih dahulu, hal ini karena pesan yang dirahasiakan disembunyikan (tidak nampak) dalam medium lain (cover). Proses penyimpanan data atau informasi yang ingin disembunyikan disimpan dalam sebuah wadah (cover) dapat dilakukan dengan suatu algoritma steganografi tertentu (misalnya metode LSB). Untuk menambah tingkat keamanan data, dapat diberikan kunci, agar tidak semua orang mampu mengungkapkan data yang disimpan dalam berkas wadah (cover). Hasil akhir dari proses penyimpanan data ini adalah sebuah berkas stego (stego data/stego file). Pengungkapan data atau informasi dari berkas stego dapat dilakukan dengan mengekstrak berkas stego tersebut dengan memasukkan kunci yang sesuai. Hasil ekstraksi ini adalah berupa data atau informasi dan wadah (cover) awal. Proses pengungkapan informasi dari berkas stego digambarkan pada gambar berikut ini.
16
Pada dasarnya, terdapat tujuh teknik yang digunakan dalam steganografi, yaitu: 1. Injection Merupakan suatu teknik menanamkan pesan rahasia secara langsung ke suatu media. Salah satu masalah dari teknik ini adalah ukuran media yang diinjeksi menjadi lebih besar dari ukuran normalnya sehingga mudah dideteksi. Teknik ini sering juga disebut Embedding. 2. Substitusi Data normal digantikan dengan data rahasia. Biasanya hasil teknik itu tidak terlalu mengubah ukuran data asli, tetapi tergantung pada file media dan data yang akan disembunyikan. Teknik substitusi bisa menurunkan kualitas media yang ditumpangi. 3. Transform domain Teknik
ini
sangat
efektif. Pada dasarnya,
transformasi
domain
menyembunyikan data pada “transform space”. Akan sangat lebih efektif bila teknik ini diterapkan pada file berekstensi Jpeg (gambar). 4. Spread Spectrum Sebuah teknik pentransmisian menggunakan pseudo-noise code, yang independen terhadap data informasi sebagai modulator bentuk gelombang untuk menyebarkan energi sinyal dalam sebuah jalur komunikasi (bandwdith) yang lebih besar daripada sinyal jalur komunikasi informasi. Oleh penerima, sinyal dikumpulkan kembali menggunakan replika pseudo-noise code tersinkronisasi.
17
5. Statistical Spectrum Teknik ini disebut juga skema steganographic 1 bit. Skema tersebut menanamkan satu bit informasi pada media tumpangan dan mengubah statistik walaupun hanya 1 bit. Perubahan statistik ditunjukkan dengan indikasi 1 dan jika tidak ada perubahan, terlihat indikasi 0. Sistem ini bekerja berdasarkan kemampuan penerima dalam membedakan antara informasi yang dimodifikasi dan yang belum. 6. Distortion Metode ini menciptakan perubahan atas benda yang ditumpangi oleh data rahasia. 7. Cover Generation Metode ini lebih unik daripada metode lainnya karena cover object dipilih untuk menyembunyikan pesan. Contoh dari metode ini adalah Spam Mimic.
2.2.4
Steganografi Dengan Metode LSB (Least Significant Bit) Pada tugas akhir ini, metode steganografi yang digunakan untuk
menyisipkan pesan adalah metode LSB yaitu dengan menyisipkan sebuah nilai pada bit-bit terendah (Least Significant Bit) pada tiap-tiap pixel sebuah citra. Dasar dari metode ini adalah pengetahuan akan bilangan biner atau bilangan basis 2, yang hanya terdiri dari ’1’ dan ’0’. Kedua bilangan yang menjadi dasar dari kerja komputer ini sering disebut dengan istilah bit. Susunan dari beberapa bit akan membentuk suatu informasi. Istilah yang umum dikenal adalah byte, yaitu kumpulan delapan bit data. Dalam satu byte data, biasanya bit yang paling berpengaruh terhadap informasi yang dikandungnya adalah bit paling awal/paling kiri. Bit inilah
18
yang dinamakan Most Significant Bit (MSB). Semakin ke kanan, bit-bit tersebut semakin kecil pengaruhnya terhadap keutuhan data yang dikandung. Bit paling akhir/paling kanan inilah yang dinamakan Least Significant Bit (LSB). Teknik steganografi dengan metode LSB dilakukan dengan memodifikasi bit-bit yang tergolong LSB pada setiap byte dalam sebuah file. Bit-bit LSB ini akan dimodifikasi dengan menggantikan setiap LSB yang ada dengan bit-bit informasi lain yang ingin disembunyikan. Contohnya pada citra bitmap 24-bit, menggunakan 3 bytes untuk masing-masing pixel, dimana setiap pixel pada citra tersebut terdiri dari susunan tiga warna dasar yaitu merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (1 byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Dengan demikian pada setiap pixel citra bitmap 24-bit kita dapat menyisipkan 8 bit data. Sebagai contoh huruf A akan disisipkan ke dalam citra berukuran 3 x 3 pixel, misalkan data pixel-nya adalah sebagai berikut: (01100101 10101100 10011010) (01000101 11001010 11001101) (11110000 01110101 10100011) Sedangkan representasi biner huruf A adalah 01000001. Dengan menyisipkan bit-bit huruf A tersebut pada data pixel diatas, maka setiap bit dari huruf A tersebut akan menggantikan posisi LSB dari data pixel citra menjadi: (01100100 10101101 10011010) (01000100 11001010 11001100) (11110000 01110101 10100011)
19
Teknik ini termasuk cukup sederhana, namun terkadang kualitas dari file yang ditumpanginya sedikit banyak akan terpengaruh. Misalnya untuk citra bitmap 24-bit di atas, warnanya akan sedikit berubah meskipun mungkin tidak akan dapat disadari oleh mata manusia normal.
2.2.5
Kriteria Steganografi Yang Baik Penyembunyian data di dalam steganografi dapat dilakukan menggunakan
wadah berupa citra, audio, teks, ataupun video. Namun yang akan dibahas di sini adalah penyembunyian data di dalam citra bitmap saja. Meskipun demikian, tidak hanya citra bitmap saja tetapi citra digital juga dapat digunakan sebagai wadah dalam penyembunyian data. Penyembunyian data ke dalam citra bitmap tentunya akan mengubah kualitas citra tersebut. Adapun kriteria yang perlu diperhatikan dalam penyembunyian data, yaitu: 1. Fidelity Setelah penambahan data rahasia, mutu citra penampung tidak jauh berubah, citra steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. 2. Robustness Data yang disembunyikan harus tahan (robust) terhadap berbagai operasi manipulasi yang dilakukan pada citra penampung, seperti pengubahan kontras, penajaman, kompresi, perbesaran gambar, pemotongan gambar (cropping), dan sebagainya. Data yang disembunyikan seharusnya tidak rusak dan tetap valid jika diekstraksi kembali.
20
3. Recovery Data yang disembunyikan harus dapat diungkapkan kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut.
2.3
Kriptografi Kriptografi berasal dari bahasa Yunani, yang terdiri dari dua kata, yaitu
kripto dan graphia. Kripto berarti rahasia (secret) sedangkan graphia berarti tulisan (writing). Sehingga kriptografi bisa diartikan sebagai “tulisan yang dirahasiakan”. Secara umum kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain itu, kriptografi juga bisa diartikan sebagai ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentifikasi data. Tidak semua aspek keamanan informasi ditangani oleh kriptografi. (Munir, 2006:155)
2.3.1
Sejarah Kriptografi Kriptografi memiliki sejarah yang sangat menarik dan panjang. Kriptografi
sudah digunakan 4000 tahun lalu yang diperkenalkan oleh orang-orang Mesir menggunakan hieroglyph tidak standar untuk menulis pesan. Kemudian sekitar tahun 400SM pada zaman yunani kuno, kriptografi digunakan oleh tentara sparta untuk mengirimkan pesan militer dengan menggunakan alat yang bernama scytale. Alat ini berupa pita panjang dari daun papyrus ditambah sebatang silinder, pesan ditulis secara horizontal atau baris
21
perbaris. Apabila pita dilepaskan, maka huruf-huruf didalamnya telah tersusun membentuk pesan rahasia. Untuk membaca pesan, penerima harus melilitkan kembali pita ke silinder yang diameternya sama dengan diameter silinder pengirim.
Gambar 2.1 Scytale
Ilmu kriptografi sejak dahulu digunakan diberbagai aspek kehidupan. Sebagai contoh di India, dahulu kriptografi digunakan oleh lovers (pencinta) untuk berkomunikasi tanpa diketahui orang lain. Bukti ini ditemukan di dalam buku kama sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan cipher. Ilmu kriptografi juga digunakan pada perang dunia II, pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan Enigma. Kemudian tak lama berselang Enigma cipher berhasil dipecahkan oleh sekutu. Keberhasilan memecahkan Enigma disinyalir sebagai faktor yang memperpendek perang dunia II. Dari beberapa kutipan sejarah diatas, dapat dilihat bahwa ilmu kriptografi sangat
bermanfaat
khususnya
dibidang
kemiliteran.
Saat
ini
seiring
berkembangnya zaman dan masuknya peradaban manusia ke era informasi, ilmu kriptografi juga dimanfaatkan untuk mengamankan lalu lintas informasi khususnya di jaringan publik atau internet.
22
2.3.2
Tujuan Kriptografi Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan
aspek keamanan informasi, yaitu: (Munir, 2006:160) 1. Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi. 2. Integritas data adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya. 3. Autentikasi adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. 4. Non-repudiasi atau anti-penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
2.3.3
Cara Kerja Kriptografi Dalam ilmu kriptografi suatu pesan yang akan dirahasiakan atau disandikan
disebut dengan plaintext, sedangkan pesan yang telah disandikan sehingga tidak bermakna lagi yang bertujuan agar pesan tidak dapat dibaca oleh pihak yang tidak berhak disebut ciphertext. Lalu dalam ilmu kriptografi terdapat istilah enkripsi dan
23
deskripsi. Enkripsi adalah proses menyandikan plaintext menjadi ciphertext. Sedangkan proses mengembalikan ciphertext menjadi plaintext semula disebut sebagai dekripsi. Secara umum berdasarkan penggunaan kuncinya, algoritma kriptografi dibagi menjadi dua bagian, yaitu : 1. Algoritma Simetris Algoritma ini sering juga disebut algoritma klasik karena memakai kunci yang sama untuk proses enkripsi dan deskripsinya. Algoritma simetri sudah ada lebih dari 4000 tahun yang lalu. Pengiriman pesan mengguanakan algoritma tersebut mengharuskan si penerima pesan untuk mengetahui kunci dari pesan tersebut agar bisa mendekripsi pesan yang dikirim. Keamanan dari pesan tersebut yang menggunakan algoritma itu tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain, maka orang lain tersebut bisa melakukan enkripsi dan dekripsi terhadap pesan tersebut. Algoritma yang memakai kunci simetri di antaranya adalah: a.
Data Encryption Standard (DES)
b.
RC2, RC4, RC5, RC6
c.
International Data Encryption Algorithm (IDEA)
d.
Advanced Encryption Standard (AES)
e.
One Time Pad (OTP)
f.
A5
g.
Dan lain sebagainya.
24
2. Algoritma Asimetris Algoritma asimetri sering juga disebut algoritma kunci publik. Artinya, kata kunci yang digunakan untuk melakukan enkripsi dan deskripsinya berbeda. Pada algoritma asimetri, kunci terbagi menjadi dua bagian: a. Kunci umum (public key) adalah kunci yang boleh diketahui semua orang (dipublikasikan). b. Kunci pribadi (private key) adalah kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang yang bersangkutan). Kunci-kunci tersebut saling berhubungan satu dengan yang lainnya. Penggunaan kunci umum memungkinkan seseorang untuk bisa mengenkripsi pesan, tetapi tidak mendekripsinya. Hanya orang yang memiliki kunci pribadi yang mendekripsi pesan tersebut. Algoritma asimetris bisa mengirim pesan dengan lebih aman daripada algoritma simetris. Algoritma yang memakai kunci umum di antaranya adalah: a. Digital Signature Algorithm (DSA) b. RSA c. Diffie-Hellman (DH) d. Elliptic Curve Cryptography (ECC) e. Cryptography Quantum f. Dan lain sebagainya.
2.3.4
Fungsi Hash Fungsi hash kriptografi adalah fungsi hash yang memiliki beberapa sifat
keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data. Umumnya digunakan untuk keperluan autentikasi dan integritas data. Fungsi hash
25
adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash. Adapun sifat-sifat yang dimiliki fungsi hash kriptografi, yaitu: 1. Tahan pre-image (Pre-image resistant), bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash (m). 2. Tahan pre-image kedua (Second pre-image resistant), bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash (m1) = hash (m2). 3. Tahan tumbukan (Collision-resistant), sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash (m1) = hash (m2). Beberapa contoh algoritma fungsi hash Kriptografi adalah Message Diggest 4 (MD4), Message Diggest 5 (MD5), SHA-0, SHA-1, SHA-256, SHA512 dan lain sebagainya.
2.3.5
MD5 (Message-Digest Algorithm 5) Dalam kriptografi, MD5 (Message-Digest Algortihm 5) ialah fungsi hash
kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standar Internet (RFC 1321), MD5 telah dimanfaatkan bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file. (Raharja, 2005:96) MD5 didesain oleh Ron Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, yaitu MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan
26
yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan. MD5 memproses teks masukan ke dalam blok-blok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari MD5 berupa 4 buah blok yang masing-masing berukuran 32 bit yang setelah digabungkan akan membentuk nilai hash 128 bit. MD5 terdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16 operasi. F adalah fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan blok 32-bit dari masukan pesan, dan Ki menunjukkan konstanta 32-bit, berbeda untuk tiap-tiap operasi. Blok
s
menunjukkan perputaran bit kiri
oleh s; s bervariasi untuk tiap-tiap operasi. Blok
menunjukan penambahan
modulo 232. MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang yang tetap. Secara umum proses yang dilakukan oleh algoritma MD5 terdiri dari empat langkah, yaitu: 1. Penambahan bit-bit pengganjal Proses pertama yang dilakukan adalah menambahkan pesan dengan sejumlah bit pengganjal sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti setelah menambahkan bit-bit pengganjal, kini panjang pesan adalah 64 bit kurang dari kelipatan 512. Hal yang perlu diingat adalah angka 512 muncul karena algoritma MD5 memproses pesan dalam blokblok yang berukuran 512. Apabila terdapat pesan dengan panjang 448 bit, maka pesan tersebut akan tetap ditambahkan dengan bit-bit pengganjal. Pesan akan ditambahkan dengan
27
512 bit menjadi 960 bit. Jadi panjang bit-bit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1 dan sisanya diikuti dengan bit 0. 2. Penambahan Nilai Panjang Pesan Semula Kemudian proses berikutnya adalah pesan ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Apabila panjang pesan semula lebih besar dari 264, maka yang diambil adalah panjangnya dalam modulo 264. Dengan kata lain, jika pada awalnya panjang pesan semula sama dengan K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264. Sehingga setelah proses kedua ini selesai dilakukan maka panjang pesan sekarang adalah 512 bit. 3. Inisialisasi Penyangga MD (Message Diggest) Pada algoritma MD5 dibutuhkan empat buah penyangga atau buffer, secara berurut keempat nama penyangga diberi nama A, B, C dan D. Masingmasing penyangga memiliki panjang 32 bit. Sehingga panjang total penyangga adalah 4 x 32 bit = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi Hexadesimal) sebagai berikut : A = 01234567,
B = 89ABCDEF
C = FEDCBA98,
D = 76543210
4. Pengolahan pesan dalam blok berukuran 512 bit Proses berikutnya adalah pesan dibagi menjadi L buah blok yang masingmasing panjangnya 512 bit (Y0 sampai YL-1). Setelah itu setiap blok 512 bit diproses bersama dengan penyangga MD yang menghasilkan keluaran 128 bit.
28
Proses operasi MD5 dilakukan sebanyak 4 putaran dengan 16 kali operasi dalam setiap putarannya, dengan menggunakan persamaan berikut ini: a = b + CLSS(a + f(b,c,d) + X[k] + T[i])
Keterangan: -
a, b, c, d = empat buah peubah penyangga 32-bit (berisi nilai penyangga A, B, C, D)
-
f = salah satu fungsi F, G, H, I
-
CLSS = circular left shift (pergeseran bit ke kiri) sebanyak s bit
-
X[k] = kelompok 32-bit ke-k dari blok-blok pesan (Yi) 512 bit ke-i. Nilai k = 0 sampai 15.
-
T[i] = elemen Tabel T ke-i (32 bit)
-
(+) = operasi penjumlahan modulo 232
Tabel 2.1. Fungsi Dasar MD5 No.
Fungsi Dasar MD5
1.
F ( X , Y , Z ) ( X Y ) (~ X Z )
2.
G( X , Y , Z ) ( X Z ) (Y ~ Z )
3.
H ( X ,Y , Z ) X Y Z
4.
I ( X ,Y , Z ) Y ( X ~ Z )
Keterangan: , , , ~ menunjukkan operasi logika XOR, AND, OR dan NOT.
29
Tabel 2.2. Nilai T[i] T[1] = D76AA478 T[2] = E8C7B756 T[3] = 242070DB T[4] = C1BDCEEE T[5] = F57C0FAF T[6] = 4787C62A T[7] = A8304613 T[8] = FD469501 T[9] = 698098D8 T[10] = 8B44F7AF T[11] = FFFF5BB1 T[12] = 895CD7BE T[13] = 6B901122 T[14] = FD987193 T[15] = A679438E T[16] = 49B40821
T[17] T[18] T[19] T[20] T[21] T[22] T[23] T[24] T[25] T[26] T[27] T[28] T[29] T[30] T[31] T[32]
= = = = = = = = = = = = = = = =
F61E2562 C040B340 265E5A51 E9B6C7AA D62F105D 02441453 D8A1E681 E7D3FBCB 21E1CDE6 C33707D6 F4D50D87 455A14ED A9E3E905 FCEFA3F8 676F02D9 8D2A4C8A
T[33] T[34] T[35] T[36] T[37] T[38] T[39] T[40] T[41] T[42] T[43] T[44] T[45] T[46] T[47] T[48]
= = = = = = = = = = = = = = = =
FFFA3942 8771F681 69D96122 FDE5380C A4BEEA44 4BDECFA9 F6BB4B60 BEBFBC70 289B7EC6 EAA127FA D4EF3085 04881D05 D9D4D039 E6DB99E5 1FA27CF8 C4AC5665
T[49] T[50] T[51] T[52] T[53] T[54] T[55] T[56] T[57] T[58] T[59] T[60] T[61] T[62] T[63] T[64]
= = = = = = = = = = = = = = = =
F4292244 432AFF97 AB9423A7 FC93A039 655B59C3 8F0CCC92 FFEFF47D 85845DD1 6FA87E4F FE2CE6E0 A3014314 4E0811A1 F7537E82 BD3AF235 2AD7D2BB EB86D391
Setelah putaran keempat, a, b, c, dan d ditambahkan ke A, B, C, dan D, dan selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1). Keluaran akhir dari algoritma MD5 adalah hasil penyambungan bit-bit di A, B, C, dan D.
2.3.6
RC2 (Rivest Cipher 2) RC2 (Rivest Cipher 2) merupakan cipher blok yang didesain oleh Ron
Rivest pada tahun 1987. Pengembangan RC2 disponsori oleh Lotus yang sedang mencari suatu cipher tertentu setelah evaluasi oleh NSA untuk diekspor sebagai bagian dari software Lotus Notes. Setelah negosiasi lanjut, cipher ini disetujui dan diekspor pada tahun 1989. Seperti diketahui pembatasan kunci untuk ekspor kriptografi oleh pemerintah AS hanya sebesar 40 bit saja. Semua ini termuat dalam export regulation for cryptography. Detail dari algoritma ini dijaga kerahasiaannya dan sebagai property dari RSA Security. Tetapi pada tanggal 29 Januari 1996, source code atau kode sumber dari RC2 telah dipublikasikan ke
30
Internet oleh orang tanpa nama melalui forum Usenet yaitu Sci.crypt. (Budi Raharja, 2005:134) RC2 adalah cipher blok yang menggunakan 64 bit sebagai ukuran per blok-nya dengan kunci yang ukurannya bervariasi (0-1024 bit). Dengan mengubah-ubah ukuran kunci ini, performansi RC2 dapat menjadi dua atau tiga kali lebih baik dibanding DES (Data Encryption Standard), algoritma yang dikembangkan oleh NSA (National Security Agent) dan telah ditetapkan sebagai algoritma enkripsi standar oleh pemerintah AS pada tahun 1976-1997 (yang kemudian digantikan oleh AES, Advanced Encryption Standard). Awalnya, kunci masukan dari pengguna di-padding (jika kunci kurang dari 128 byte) menggunakan S-Box RC2. Kemudian hasilnya dikonversi menjadi 64 buah kunci dengan masing-masing berukuran 2 byte (16 bit). Di sisi lain, pesan dibagi menjadi blok-blok 64 bit. Masing-masing blok dibagi menjadi 4 word yang masing-masing berukuran 16 bit. Word ini kemudian dikomputasikan dengan kunci 16 bit di atas dengan rumus : C = CLSS( K P )
Keterangan: -
C = Ciphertext
-
K = Kunci
-
P = Plaintext
-
= Operasi logika XOR
-
CLSS = circular left shift (pergeseran bit ke kiri) sebanyak s bit
31
2.4
Citra Pada komputer, sebuah citra adalah sebuah tabel berisi angka-angka yang
merepresentasikan intensitas cahaya. Tiap representasi angka ini membentuk bagian terkecil dari gambar yang disebut sebagai pixel. Jumlah bit pada tiap skema warna, disebut bit depth (tingkat kedalaman bit), yang merujuk ke jumlah bit yang digunakan pada tiap pixel. Bit depth terkecil adalah 8, berarti ada 8-bit terpakai untuk mendeskripsikan warna untuk tiap pixel. Pada umumnya citra memiliki 8 atau 24 bit depth. (Munir, 2004:56) Citra-citra yang diformat secara monokrom atau grayscale, menggunakan 8-bit tiap pixel-nya dan mampu menampilkan 256 perubahan warna abu-abu. Pada citra dengan true colour (warna alami), umumnya disimpan dengan 24-bit dan menggunakan
model
RGB
(red,
green,
blue)
yang
tiap
warnanya
direpresentasikan dengan 8-bit (karena itu menghasilkan 24-bit untuk tiga warna). Tentu saja pada citra yang dipilih, semakin besar bit yang digunakan semakin besar ukuran file. Citra dengan 24-bit menyediakan kemungkinan yang lebih besar untuk menyembunyikan informasi (kecuali pada file bertipe JPEG). Semua variasi warna pada tiap pixel diturunkan dari tiga warna dasar (merah, hijau dan biru). Setiap warna dasar merepresentasikan 1 byte; citra 24-bit menggunakan 3 byte untuk per pixel untuk merepresentasikan satu nilai warna. Tiga byte ini dapat direpresentasikan sebagai hexadesimal, desimal, atau biner. Dalam banyak halaman Web, warna yang digunakan sebagai latar belakang direpresentasikan dengan hexadesimal 6 digit, yang aktualnya 6 digit itu terdiri dari 3 pasang warna yang merepresentasikan merah, hijau, dan biru. Latar belakang putih akan
32
direpresentasikan dengan FFFFFF yaitu 100% merah (FF), 100% hijau (FF), dan 100% biru (FF). Nilai ini setara dengan nilai desimalnya, 255, 255, dan 255. Nilai binernya adalah 11111111, 11111111, dan 11111111. Representasi suatu pixel berkontribusi pada ukuran file itu sendiri. Sebagai contoh, bila kita memiliki citra 24-bit dengan lebar 1024 pixel dan panjang 768 pixel, akan menghasilkan resolusi untuk citra beresolusi tinggi. Citra semacam itu memiliki lebih dari 2 milyar pixel dan kemungkinan berukuran lebih dari 2 MB. Walaupun citra 24-bit memiliki kemungkinan tinggi untuk menyembunyikan informasi, ukuran sebesar ini dapat mengundang kecurigaan pada halaman Web. Oleh karena itu, sangat menguntungkan bagi kita karena telah ada teknologi kompresi, terutama kompresi gambar. File citra yang paling banyak digunakan sebagai wadah (cover) untuk menyembunyikan pesan rahasia pada format citra, yaitu: 1.
JPEG / JPG
2.
BMP
3.
GIF (Graphic Interchange Format)
4.
TIFF (Tag Image File Format)
5.
PNG (Portable Network Graphics)
6.
Dan lain sebagainya
2.5
Unified Modeling Language UML (Unified Modeling Language) adalah metode pemodelan secara visual
sebagai sarana untuk merancang dan atau membuat software berorientasi objek. Karena UML ini merupakan bahasa visual untuk pemodelan bahasa berorientasi objek, maka semua elemen dan diagram berbasiskan pada paradigma object
33
oriented.UML menawarkan sebuah standar untuk merancang model sebuah sistem. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik.
2.5.1
Tujuan Penggunaan UML Adapun tujuan dari penggunaan UML adalah sebagai berikut:
1. Memodelkan suatu sistem (bukan hanya perangkat lunak) yang menggunakan konsep berorientasi object. 2. Menciptakan suatu bahasa pemodelan yang dapat digunakan baik oleh manusia maupun mesin.
2.5.2
Use Case Use case adalah gambaran fungsionalitas dari suatu sistem, sehingga
customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun. (Kristanto, 2005:35) Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Menggambarkan sejumlah external actors dan hubungannya ke use case yang diberikan oleh sistem. Use case adalah deskripsi fungsi yang disediakan oleh sistem dalam bentuk teks sebagai dokumentasi dari use case symbol namun dapat juga dilakukan dalam activity diagrams. Use case digambarkan hanya yang dilihat dari luar oleh actor (keadaan lingkungan sistem yang dilihat user) dan bukan bagaimana fungsi yang ada di dalam sistem.
34
Beberapa komponen Use Case Diagram dapat dilihat pada table dibawah ini: Tabel 2.3 Simbol-simbol Use Case Diagram
Nama Komponen
Use Case
Deskripsi
Gambar
Menerangkan “apa” yang dikerjakan sistem, bukan “bagaimana” sistem mengerjakannya.
Actor
Menggambarkan orang, sistem atau external entitas / stakeholder yang menyediakan atau menerima informasi dari sistem.
Sistem Boundary
Menggambarkan jangkauan sistem
Association
Menggambarkan bagaimana actor terlibat dalam use case
Generalization
Dibuat ketika ada sebuah keadaan yang lain/perlakuan khusus.
Extend
Perluasan dari use case lain jika kondisi atau syarat terpenuhi
<< Extend >>
Include
Menjelaskan bahw use case termasuk didalam use case lain
<< include >>
Sumber: Kristanto, A. (2005:36)
2.5.3
Definisi Object dan Class Object adalah gambaran dari entity, baik dunia nyata atau konsep dengan
batasan-batasan dan pengertian yang tepat. Object bisa mewakili sesuatu yang nyata seperti komputer, mobil atau dapat berupa konsep seperti proses kimia,
35
transaksi bank, permintaan pembelian, dll. Setiap object dalam sistem memiliki tiga karakteristik yaitu State (status), Behaviour (sifat) dan Indentity (identitas). Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi Class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. (Kristanto, 2005:55) Class memiliki tiga area pokok yaitu nama, atribut dan metoda. Atribut dan metoda dapat memiliki salah satu sifat berikut : 1.
Private, tidak dapat dipanggil dari luar Class yang bersangkutan
2.
Protected, hanya dapat dipanggil oleh Class yang bersangkutan dan anakanak yang mewarisinya
3.
Public, dapat dipanggil oleh siapa saja Candidate Class merupakan sekelompok objek yang mewakili sesuatu yang
nyata yang digunakan pada sistem. Candidate class dapat dihasilkan dengan melakukan pengidentifikasian objek pada sistem yang akan dirancang.
2.5.4
Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state
36
adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Table 2.4 Simbol – Simbol Activity Diagram
Simbol
Keterangan Initial Activity, sebagai awal dari aktivitas modul sistem aplikasi Activity, menunjukkan aktivitas yang dilakukan Final Activity, menunjukkan akhir dari aktivitas Decisions, menunjukkan aktivitas yang harus dipilih apakah pilihan pertama atau kedua Signal, sebagai pengirim dan penerima pesan dari aktivitas yang terjadi. Sinyal terdiri dari 2 (dua) jenis, yaitu sinyal penerima yang digambarkan dengan poligon terbuka dan sinyal pengirim dengan yang digambarkan dengan convex poligon Concurrent Activities, menggambarkan atktivitas yang dilakukan bersamaan atau paralel
Sumber: Kristanto, A. (2005:78)
2.5.5
Class Diagram Class diagram merupakan sebuah diagram yang menggambarkan struktur
statis class didalam sebuah sistem. Class diagram dapat digambarkan berdasarkan skenario use case atau candidate class pada sistem yang telah didefenisikan.
37
Simbol-simbol yang digunakan pada class diagram dapat dilihat pada tabel berikut ini : Tabel 2.5 Simbol-simbol Class Diagram
Indikator/Gambar 0..1
Deskripsi Kosong atau satu
0..*
Lebih dari sama dengan kosong
0..n
Lebih dari sama dengan n, dimana n lebih dari 1
1
Hanya satu
1..*
Lebih dari sama dengan satu
1..n
Lebih dari sama dengan satu dimana n lebih dari satu
* N n..* n..m
Banyak atau Many Hanya N, dimana N lebih dari satu Lebih dari sama dengan N dimana N lebih dari satu Lebih dari sama dengan N dan kurang dari sama dengan M. Dimana M dan N lebih dari satu. Agregasi (Aggregation) Kunci Gabungan (Composite Key) Turunan (Inheritance) Ralasi (Relation) Dependencies Realizations
+ # $ / *
Public Protected Private Static Drived Abstrak Sumber: Kristanto, A. (2005:60)
2.6
Flowchart Flowchart sering disebut juga dengan bagan alir. Flowchart atau bagan alir
adalah sebagai suatu skema yang menggambarkan urutan kegiatan dari suatu program dari awal sampai akhir.
38
Menurut Hartono, (2005;108) menyatakan bahwa “flowchart merupakan bagian yang menunjang arus pekerjaan secara keseluruhan dari sistem”. Menurut Jogianto H.M (2007;103) menyatakan bahwa “flowchart adalah bagan (chart) yang menunjukan alir (Flow) di dalam program atau prosedur sistem secara logika. Bagan alir ini terutama digunakan untuk alat bantu komunikasi dan untuk dokumentasi. Tabel 2.6 Simbol Flowchart No.
Simbol
Keterangan Simbol titik terminal digunakan untuk
1
menunjukan awal dan akhir dari suatu proses.
2
Simbol
input/output
digunakan
untuk
mewakili data input dan output. 3
Proses yang dilakukan komputer dalam pengelolahan data-data karyawan. Simbol
perulangan
digunakan
untuk
program-program yang sering digunakan 4
dalam sebuah program yang berulang kali digunakan, biasanya dibuat pada program yang terpisah dengan sebutan sub program.
5 6
Simbol arah data/arus data/aliran data. Simbol keputusan digunakan untuk suatu penyelesaian kondisi di dalam program. Simbol dokumen menunjukan dokumen
7
input dan output baik untuk proses manual, mekanik atau komputer.
8
Simbol persiapan data.
Sumber : Jogianto H.M (2007;105)
BAB III ANALISA DAN PERANCANGAN
3.1
Analisis Algoritma RC2 dan Metode LSB Pada Citra Bitmap Pada bagian pembahasan ini dijelaskan secara umum bagaimana cara kerja
algoritma RC2 dan bagaimana cara kerja penyisipan data dari hasil proses RC2 tersebut ke dalam citra bitmap dengan memberikan contoh kasus untuk proses enkripsi, dekripsi, penyisipan dan pengungkapan data.
3.1.1
Proses Enkripsi Dan Penyisipan Data Secara umum proses proses enkripsi dilakukan dengan menggunakan
algoritma RC2 terhadap file yang akan disisipkan ke dalam citra bitmap. Sedangkan penyisipan data dilakukan dengan menggunakan metode LSB dengan menggantikan bit-bit LSB pada citra bitmap dengan data hasil proses enkripsi. Awalnya kunci yang dimasukkan oleh pengguna di enkripsi dengan menggunakan algoritma MD5 untuk memperoleh kunci baru sebesar 128 bit. Kemudian kunci ini digunakan untuk mengenkripsi pesan dengan menggunakan algoritma RC2. Proses enkripsi ini menghasilkan ciphertext yang siap untuk di sisipkan ke dalam citra. Adapun langkah-langkah proses enkripsi yang dilakukan dengan algoritma MD5, yaitu: 1.
Tambahkan plaintext dengan bit-bit pengganjal
2.
Tambahkan kembali plaintext dengan plaintext awal
39
40
3.
Inisialisasi Penyangga MD (Message Diggest). Nilai awal inisial A = 01234567, B = 89ABCDEF, C = FEDCBA98, D = 76543210
4.
Bagi plaintext dalam L buah blok (Y0 – YL-1) dengan ukuran masing-masing 512 bit.
5.
Lakukan proses operasi MD5 dengan menggunakan persamaan: a = (b + CLSs((a + f(b,c,d) + X[k] + T[i]) mod 232 )) mod 232
6.
Ciphertext sama dengan penyambungan bit-bit di A, B, C, dan D
Proses selanjutnya adalah mengenkripsi plaintext dengan menggunakan algoritma RC2, dimana kunci yang digunakan adalah ciphertext yang dihasilkan dari proses enkripsi MD5 di atas. Adapun langkah-langkah proses enkripsi yang dilakukan dengan algoritma RC2, yaitu: 1. Bagi plaintext menjadi blok 64 bit. 2. Masing-masing blok plaintext dibagi menjadi 4 word (R[0] ... R[3]) dengan masing-masing berukuran 16 bit. 3. Perluas kunci sebanyak n buah kunci (n = panjang plaintext / 16). Jumlah kunci maksimum sebanyak 64 buah kunci (K[0] ... K[63]) dengan masingmasing berukuran 16 bit. 4. Lakukan proses enkripsi dengan menggunakan persamaan: C = CLSS(K xor P) Proses terakhir adalah penyisipan data ke dalam citra. Proses yang dilakukan adalah menggantikan bit-bit LSB pada citra bitmap dengan nilai dari ciphertext hasil proses enkripsi di atas.
41
Misalkan terdapat file yang berisi pesan “Transfer uang Rp 500 juta.”, dengan kunci “Enkrip file rahasia”. Maka proses pertama adalah mengenkripsi kunci dengan menggunakan algoritma MD5, yaitu: 1. - Plaintext (P) = Enkrip file rahasia - Plaintext (P) dalam Hexa = 456E6B7269702066696C652072616861736961
- Panjang P = 152 bit - Panjang bit pengganjal = (448 modulo 512) – 152 bit = 296 bit - Bit-bit pengganjal dalam biner = 10000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
- Bit- bit pengganjal dalam Hexa = 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- Maka, P = 45 6E 6B 72 69 70 20 66 69 6C 65 20 72 61 68 61 73 69 61 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2. - Pawal (Hexa) = 456E6B7269702066696C652072616861736961
- Pawal (Biner) = 01000101
01101110
01101011
01110010
01101001
01110000
00100000
01100110
01101001
01101100
01100101
00100000
01110010
01100001
01101000
01100001
01110011
01101001
01100001
42
- Panjang bit tambahan = 64 bit - Bit-bit tambahan dari Pawal (Biner) = 01000101
01101110
00100000
01100110
01101011
01110010
01101001
01110000
- Bit-bit tambahan dari Pawal (Hexa) = 45 6E 6B 72 69 70 20 66
- Maka, P = 45 6E 6B 72 69 70 20 66 69 6C 65 20 72 61 68 61 73 69 61 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 6E 6B 72 69 70 20 66
3. A = 01234567, B = 89ABCDEF, C = FEDCBA98, D = 76543210 4. – P (Hexa) = 45 6E 6B 72 69 70 20 66 69 6C 65 20 72 61 68 61 73 69 61 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 6E 6B 72 69 70 20 66
- P (Biner) = 01000101
01101110
01101011
01110010
01101001
01110000
01000000
01100110
01101001
01101100
01100101
00100000
01110010
01100001
01101000
01100001
01110011
01101001
01100001
10000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
01000101
01101110
01101011
01110010
01101001
01110000
00100000
01100110
- Panjang P = 512 bit - Maka, Jumlah blok = 1 dan Y0 = P
43
5. Putaran 1: -
A = (B + CLSs((A + F(B,C,D) + X[0...15] + T[1...16]) mod 232)) mod 232
-
F(B,C,D)
= (B and C) or ((not B) and D) = (89ABCDEF and FEDCBA98) or ((not 89ABCDEF) and (76543210)) = 88888888 or 76543210 = FEDCBA98
Operasi 1: -
X[0...15] = 01000101 01101110
-
X[0...7] = 01000110 = 45
-
A = B + CLS7(A + F(B,C,D) + X[0...7] + T[1]) = 89ABCDEF + CLS7(01234567 + FEDCBA98 + 45 + D76AA478) = 89ABCDEF + CLS7(1D76AA4BC mod 100000000) = 89ABCDEF + CLS7(D76AA4BC) = 89ABCDEF + B5525E6B = 13EFE2C5A mod 100000000 = 3EFE2C5A
Operasi 2: -
X[0...15] = 01000101 01101110
-
X[8...15] = 01101110 = 6E
-
A = B + CLS12(A + F(B,C,D) + X[8...15] + T[2]) = 89ABCDEF + CLS12(3EFE2C5A + FEDCBA98 + 6E + E8C7B756) = 89ABCDEF + CLS12(226A29EB6 mod 100000000) = 89ABCDEF + CLS12(26A29EB6) = 89ABCDEF + 29EB626A = B3973059 mod 100000000 = B3973059
44
-
Operasi 3:
-
X[0...15] = 01101011 01110010
-
X[0...7] = 01101011 = 6B
-
A = B + CLS17(A + F(B,C,D) + X[0...7] + T[3]) = 89ABCDEF + CLS17(B3973059 + FEDCBA98 + 6B + 242070DB) A = 89ABCDEF + CLS17(1D6945C37 mod 100000000) = 89ABCDEF + CLS17(D6945C37) = 89ABCDEF + B86FAD28 = 1421B7B17 mod 100000000 = 421B7B17
Operasi 4: -
X[0...15] = 01101011 01110010
-
X[8...15] = 01110010 = 72
-
A = B + CLS22(A + F(B,C,D) + X[8...15] + T[4]) = 89ABCDEF + CLS22(421B7B17 + FEDCBA98 + 72 + C1BDCEEE) = 89ABCDEF + CLS22(202B6050F mod 100000000) = 89ABCDEF + CLS22(2B6050F) = 89ABCDEF + 43C0AD81 = CD6C7B70 mod 100000000 = CD6C7B70
Operasi 5: -
X[0...15] = 01101001 01110000
-
X[0...7] = 01101001 = 69
-
A = B + CLS7(A + F(B,C,D) + X[0...7] + T[5]) = 6C4EDE4F
Operasi 6: -
X[0...15] = 01101001 01110000
-
X[8...15] = 01110000 = 70
-
A = B + CLS12(A + F(B,C,D) + X[8...15] + T[6]) = BFA3E91A
45
-
Operasi 7:
-
X[0...15] = 01000000 01100110
-
X[0...7] = 01000000 = 40
-
A = B + CLS17(A + F(B,C,D) + X[0...7] + T[7]) = 5DB69B50
Operasi 8: -
X[0...15] = 01000000 01100110
-
X[8...15] = 01100110 = 66
-
A = B + CLS22(A + F(B,C,D) + X[8...15] + T[8]) = 5D824469
Operasi 9: -
X[0...15] = 01101001 01101100
-
X[0...7] = 01101001 = 69
-
A = B + CLS7(A + F(B,C,D) + X[0...7] + T[9]) = 7977EF51
Operasi 10: -
X[0...15] = 01101001 01101100
-
X[8...15] = 01101100 = 6C
-
A = B + CLS12(A + F(B,C,D) + X[8...15] + T[10]) = 23CC0E28
Operasi 11: -
X[0...15] = 01100101 00100000
-
X[0...7] = 01100101 = 65
-
A = B + CLS17(A + F(B,C,D) + X[0...7] + T[11]) = D358133F
Operasi 12: -
X[0...15] = 01100101 00100000
-
X[8...15] = 00100000 = 20
-
A = B + CLS22(A + F(B,C,D) + X[8...15] + T[12]) = F702B258
Operasi 13: -
X[0...15] = 01110010 01100001
-
X[0...7] = 01110010 = 72
-
A = B + CLS7(A + F(B,C,D) + X[0...7] + T[13]) = 416B101F
46
Operasi 14: -
X[0...15] = 01110010 01100001
-
X[8...15] = 01100001 = 61
-
A = B + CLS12(A + F(B,C,D) + X[8...15] + T[14]) = 8D7681CD
Operasi 15: -
X[0...15] = 01101000 01100001
-
X[0...7] = 01101000 = 68
-
A = B + CLS17(A + F(B,C,D) + X[0...7] + T[15]) = 8A623388
Operasi 16: -
X[0...15] = 01101000 01100001
-
X[8...15] = 01100001 = 61
-
A = B + CLS22(A + F(B,C,D) + X[8...15] + T[16]) = 32608AAC
Putaran 2: -
B = (B + CLSs((A + G(B,C,D) + X[0...15] + T[17...32]) mod 232)) mod 232
-
G(B,C,D) = (B and D) or (C and (not D)) = (89ABCDEF and 76543210) or (FEDCBA98 and (not 76543210)) = 0 or 88888888 = 88888888
Operasi 17: -
X[0...15] = 01110011 01101001
-
X[0...7] = 01110011 = 73
-
B = B + CLS5(A + G(B,C,D) + X[0...7] + T[17]) = 89ABCDEF + CLS5(32608AAC + 88888888 + 73 + F61E2562) = 89ABCDEF + CLS5(1B1073909 mod 100000000) = 89ABCDEF + CLS5(B1073909) = 89ABCDEF + 20E72136 = AA92EF25 mod 100000000
=
AA92EF25
47
-
G(B,C,D) = (B and D) or (C and (not D)) = (AA92EF25 and 76543210) or (FEDCBA98 and (not 76543210)) = 22102200 or 88888888 = AA98AA88
Operasi 18: -
X[0...15] = 01110011 01101001
-
X[8...15] = 01101001 = 69
-
B = B + CLS9(A + G(B,C,D) + X[8...15] + T[18]) = AA92EF25 + CLS9(32608AAC + AA98AA88 + 69 + C040B340) = AA92EF25 + CLS9(19D39E8DD mod 100000000) = AA92EF25 + CLS9(9D39E8DD) = AA92EF25 + 73D1BB3A = 11E64AA5F mod 100000000 = 1E64AA5F
-
G(B,C,D) = (B and D) or (C and (not D)) = (1E64AA5F and 76543210) or (FEDCBA98 and (not 76543210)) = 16442210 or 88888888 = 9ECCAA98
Operasi 19: -
X[0...15] = 01100001 10000000
-
X[0...7] = 01100001 = 61
-
B = B + CLS14(A + G(B,C,D) + X[0...7] + T[19]) = 1E64AA5F + CLS14(32608AAC + 9ECCAA98 + 61 + 265E5A51) = 1E64AA5F + CLS14(F78B8FF6 mod 100000000) = 1E64AA5F + CLS14(F78B8FF6) = 1E64AA5F + E3FDBDE2
48
= 102626841 mod 100000000 = 2626841 -
G(B,C,D) = (B and D) or (C and (not D)) = (2626841 and 76543210) or (FEDCBA98 and (not 76543210)) = 2402000 or 88888888 = 8AC8A888
Operasi 20: -
X[0...15] = 01100001 10000000
-
X[8...15] = 10000000 = 80
-
B = B + CLS20(A + G(B,C,D) + X[8...15] + T[20]) = 2626841 + CLS20(32608AAC + 8AC8A888 + 80 + E9B6C7AA) = 2626841 + CLS20(1A6DFFB5E mod 100000000) = 2626841 + CLS20(A6DFFB5E) = 2626841 + B5EA6DFF = B84CD640 mod 100000000 = B84CD640
-
G(B,C,D) = (B and D) or (C and (not D)) = (B84CD640 and 76543210) or (FEDCBA98 and (not 76543210)) = 30441200 or 88888888 = B8CC9A88
Operasi 21: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
B = B + CLS5(A + G(B,C,D) + X[0...7] + T[21]) = E3D38878
-
G(B,C,D) = (B and D) or (C and (not D)) = EAD88898
Operasi 22: -
X[0...15] = 00000000 00000000
49
-
X[8...15] = 00000000 = 0
-
B = B + CLS9(A + G(B,C,D) + X[8...15] + T[22]) = DE22B6B6
-
G(B,C,D) = (B and D) or (C and (not D)) = DE88BA98
Operasi 23: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
B = B + CLS14(A + G(B,C,D) + X[0...7] + T[23]) = A9143118
-
G(B,C,D) = (B and D) or (C and (not D)) = A89CB898
Operasi 24: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
B = B + CLS20(A + G(B,C,D) + X[8...15] + T[24]) = 9A105E2B
-
G(B,C,D) = (B and D) or (C and (not D)) = 9A989A88
Operasi 25: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
B = B + CLS5(A + G(B,C,D) + X[0...7] + T[25]) = 756EC188
-
G(B,C,D) = (B and D) or (C and (not D)) = FCCC8888
Operasi 26: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
B = B + CLS9(A + G(B,C,D) + X[8...15] + T[26]) = 3DA4D76C
-
G(B,C,D) = (B and D) or (C and (not D)) = BC8C9A88
Operasi 27: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
B = B + CLS14(A + G(B,C,D) + X[0...7] + T[27]) = CA53D05C
50
-
G(B,C,D) = (B and D) or (C and (not D)) = CAD89898
Operasi 28: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
B = B + CLS20(A + G(B,C,D) + X[8...15] + T[28]) = 4D67F98F
-
G(B,C,D) = (B and D) or (C and (not D)) = CCCCB888
Operasi 29: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
B = B + CLS5(A + G(B,C,D) + X[0...7] + T[29]) = 6F8D80C4
-
G(B,C,D) = (B and D) or (C and (not D)) = EE8C8888
Operasi 30: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
B = B + CLS9(A + G(B,C,D) + X[8...15] + T[30]) = 28FBD8FF
-
G(B,C,D) = (B and D) or (C and (not D)) = A8D89898
Operasi 31: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
B = B + CLS14(A + G(B,C,D) + X[0...7] + T[31]) = 28FBD8FF
-
G(B,C,D) = (B and D) or (C and (not D)) = 328329A9
Operasi 32: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
B = B + CLS20(A + G(B,C,D) + X[8...15] + T[32]) = 36FAF9DF
Putaran 3: -
C = (B + CLSs((A + H(B,C,D) + X[0...15] + T[33...48]) mod 232)) mod 232
51
-
H(B,C,D) = (B xor C xor D) = (36FAF9DF xor FEDCBA98 xor 76543210) = BE727157
Operasi 33: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS4(A + H(B,C,D) + X[0...7] + T[33]) = 36FAF9DF + CLS4(32608AAC + BE727157 + 0 + FFFA3942) = 36FAF9DF + CLS4(1F0CD3545 mod 100000000) = 36FAF9DF + CLS4(F0CD3545) = 36FAF9DF + CD3545F = 43CE4E3E mod 100000000 = 43CE4E3E
-
H(B,C,D) = (B xor C xor D) = (36FAF9DF xor 43CE4E3E xor 76543210) = 36085F1
Operasi 34: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS11(A + H(B,C,D) + X[8...15] + T[34]) = 36FAF9DF + CLS11(32608AAC + 36085F1 + 0 + 8771F681) = 36FAF9DF + CLS11(BD33071E mod 100000000) = 36FAF9DF + CLS11(BD33071E) = 36FAF9DF + 9838F5E9 = CF33EFC8 mod 100000000 = CF33EFC8
-
H(B,C,D) = (B xor C xor D) = (36FAF9DF xor CF33EFC8 xor 76543210) = 8F9D2407
52
Operasi 35: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS18(A + H(B,C,D) + X[0...7] + T[35]) = 36FAF9DF + CLS18(32608AAC + 8F9D2407 + 0 + 69D96122) = 36FAF9DF + CLS18(12BD70FD5 mod 100000000) = 36FAF9DF + CLS18(2BD70FD5) = 36FAF9DF + 3F54AF5C = 764FA93B mod 100000000 = 764FA93B
-
H(B,C,D) = (B xor C xor D) = (36FAF9DF xor 764FA93B xor 76543210) = 36E162F4
Operasi 36: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS25(A + H(B,C,D) + X[8...15] + T[36]) = 36FAF9DF + CLS25(32608AAC + 36E162F4 + 0 + FDE5380C) = 36FAF9DF + CLS25(1672725AC mod 100000000) = 36FAF9DF + CLS25(672725AC) = 36FAF9DF + 58CE4E4B = 8FC9482A mod 100000000 = 8FC9482A
-
H(B,C,D) = (B xor C xor D) = (36FAF9DF xor 8FC9482A xor 76543210) = CF6783E5
Operasi 37: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
53
-
C = B + CLS4(A + H(B,C,D) + X[0...7] + T[37]) = 9F6A8739
-
H(B,C,D) = (B xor C xor D) = DFC44CF6
Operasi 38: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS11(A + H(B,C,D) + X[8...15] + T[38]) = 543554CF
-
H(B,C,D) = (B xor C xor D) = 149B9F00
Operasi 39: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS18(A + H(B,C,D) + X[0...7] + T[39]) = B2BF0BC
-
H(B,C,D) = (B xor C xor D) = 4B853B73
Operasi 40: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS25(A + H(B,C,D) + X[8...15] + T[40]) = 557444E4
-
H(B,C,D) = (B xor C xor D) = 15DA8F2B
Operasi 41: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS4(A + H(B,C,D) + X[0...7] + T[41]) = 446483B6
-
H(B,C,D) = (B xor C xor D) = 4CA4879
Operasi 42: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS11(A + H(B,C,D) + X[8...15] + T[42]) = 96D3F2ED
-
H(B,C,D) = (B xor C xor D) = D67D3922
54
Operasi 43: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS18(A + H(B,C,D) + X[0...7] + T[43]) = 84A7112
-
H(B,C,D) = (B xor C xor D) = 48E4BADD
Operasi 44: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS25(A + H(B,C,D) + X[8...15] + T[44]) = 53FA94A4
-
H(B,C,D) = (B xor C xor D) = 13545F6B
Operasi 45: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS4(A + H(B,C,D) + X[0...7] + T[45]) = 2F969EE0
-
H(B,C,D) = (B xor C xor D) = 6F38552F
Operasi 46: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
C = B + CLS11(A + H(B,C,D) + X[8...15] + T[46]) = DAC8FE22
-
H(B,C,D) = (B xor C xor D) = 9A6635ED
Operasi 47: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
C = B + CLS18(A + H(B,C,D) + X[0...7] + T[47]) = 2D42AB83
-
H(B,C,D) = (B xor C xor D) = 6DEC604C
Operasi 48: -
X[0...15] = 00000000 00000000
55
-
X[8...15] = 00000000 = 0
-
C = B + CLS25(A + H(B,C,D) + X[8...15] + T[48]) = F1C4EC61
Putaran 4: -
D = (B + CLSs((A + I(B,C,D) + X[0...15] + T[49...64]) mod 232)) mod 232
-
I(B,C,D) = C xor (B and (not D)) = F1C4EC61 xor (36FAF9DF and (not 76543210) = F1C4EC61 xor AAC9CF = F16E25AE
Operasi 49: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
D = B + CLS6(A + I(B,C,D) + X[0...7] + T[49]) = 36FAF9DF + CLS6(32608AAC + F16E25AE + 0 + F4292244) = 36FAF9DF + CLS6(217F7D29E mod 100000000) = 36FAF9DF + CLS6(17F7D29E) = 36FAF9DF + FDF4A785 = 134EFA164 mod 100000000 = 34EFA164
-
I(B,C,D) = C xor (B and (not D)) = F1C4EC61 xor (36FAF9DF and (not 34EFA164) = F1C4EC61 xor 210589B = F3D4B4FA
Operasi 50: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
D = B + CLS10(A + I(B,C,D) + X[8...15] + T[50]) D = 36FAF9DF + CLS10(32608AAC + F3D4B4FA + 0 + 432AFF97) = 36FAF9DF + CLS10(169603F3D mod 100000000)
56
= 36FAF9DF + CLS10(69603F3D) = 36FAF9DF + 80FCF5A5 = B7F7EF84 mod 100000000 = B7F7EF84 -
I(B,C,D) = C xor (B and (not D)) = F1C4EC61 xor (36FAF9DF and (not B7F7EF84) = F1C4EC61 xor 8105B = F1CCFC3A
Operasi 51: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
D = B + CLS15(A + I(B,C,D) + X[0...7] + T[51]) = 36FAF9DF + CLS15(32608AAC + F1CCFC3A + 0 + AB9423A7) = 36FAF9DF + CLS15(1CFC1AA8D mod 100000000) = 36FAF9DF + CLS15(CFC1AA8D) = 36FAF9DF + D546E7E0 = 10C41E1BF mod 100000000 = C41E1BF
-
I(B,C,D) = C xor (B and (not D)) = F1C4EC61 xor (36FAF9DF and (not C41E1BF) = F1C4EC61 xor 32BA1840 = C37EF421
Operasi 52: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
D = B + CLS21(A + I(B,C,D) + X[8...15] + T[52]) = 36FAF9DF + CLS21(32608AAC + C37EF421 + 0 + FC93A039) = 36FAF9DF + CLS21(1F2731F06 mod 100000000) = 36FAF9DF + CLS21(F2731F06)
57
= 36FAF9DF + E0DE4E63 = 117D94842 mod 100000000 = 17D94842 -
I(B,C,D) = C xor (B and (not D)) = F1C4EC61 xor (36FAF9DF and (not 17D94842) = F1C4EC61 xor 2022B19D = D1E65DFC
Operasi 53: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
D = B + CLS6(A + I(B,C,D) + X[0...7] + T[53]) = 9F8B94B9
-
I(B,C,D) = C xor (B and (not D)) = D1B48527
Operasi 54: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
D = B + CLS10(A + I(B,C,D) + X[8...15] + T[54]) = BE6C902B
-
I(B,C,D) = C xor (B and (not D)) = F15685B5
Operasi 55: -
X[0...15] = 00000000 00000000
-
X[0...7] = 00000000 = 0
-
D = B + CLS15(A + I(B,C,D) + X[0...7] + T[55]) = B96A0BB2
-
I(B,C,D) = C xor (B and (not D)) = F7541C2C
Operasi 56: -
X[0...15] = 00000000 00000000
-
X[8...15] = 00000000 = 0
-
D = B + CLS21(A + I(B,C,D) + X[8...15] + T[56]) = CC30E0FF
-
I(B,C,D) = C xor (B and (not D)) = C30EF561
Operasi 57:
58
-
X[0...15] = 01000101 01101110
-
X[0...7] = 01000101 = 45
-
D = B + CLS6(A + I(B,C,D) + X[0...7] + T[57]) = 7CFAA238
-
I(B,C,D) = C xor (B and (not D)) = F3C4B5A6
Operasi 58: -
X[0...15] = 01000101 01101110
-
X[8...15] = 01101110 = 6E
-
D = B + CLS10(A + I(B,C,D) + X[8...15] + T[58]) = 7F997A70
-
I(B,C,D) = C xor (B and (not D)) = F1A66DEE
Operasi 59: -
X[0...15] = 01101011 01110010
-
X[0...7] = 01101011 = 6B
-
D = B + CLS15(A + I(B,C,D) + X[0...7] + T[59]) = 5507DD63
-
I(B,C,D) = C xor (B and (not D)) = D33CCCFD
Operasi 60: -
X[0...15] = 01101011 01110010
-
X[8...15] = 01110010 = 72
-
D = B + CLS21(A + I(B,C,D) + X[8...15] + T[60]) = 6E856E8C
-
I(B,C,D) = C xor (B and (not D)) = E1BE7D32
Operasi 61: -
X[0...15] = 01101001 01110000
-
X[0...7] = 01101001 = 69
-
D = B + CLS6(A + I(B,C,D) + X[0...7] + T[61]) = 139CAC21
-
I(B,C,D) = C xor (B and (not D)) = D5A6BDBF
Operasi 62: -
X[0...15] = 01101001 01110000
-
X[8...15] = 01110000 = 70
59
-
D = B + CLS10(A + I(B,C,D) + X[8...15] + T[62]) = 3FE73CF4
-
I(B,C,D) = C xor (B and (not D)) = F1DC2D6A
Operasi 63: -
X[0...15] = 00100000 01100110
-
X[0...7] = 00100000 = 20
-
D = B + CLS15(A + I(B,C,D) + X[0...7] + T[63]) = 7C73A169
-
I(B,C,D) = C xor (B and (not D)) = F34CB4F7
Operasi 64: -
X[0...15] = 00100000 01100110
-
X[8...15] = 01100110 = 66
-
D = B + CLS21(A + I(B,C,D) + X[8...15] + T[64]) = AA3D2061
-
Ciphertext = 32608AAC 36FAF9DF F1C4EC61 AA3D2061
Proses selanjutnya mengenkripsi pesan dengan menggunakan algoritma RC2, yaitu: 1.
- Plaintext (P) = Transfer uang Rp 500 juta. - Plaintext (P) dalam Hexa = 5472616E736665722075616E6720527020353030206A7574612E
- Blok 1: 5472 616E 7366 6572 - Blok 2: 2075 616E 6720 5270 - Blok 3: 2035 3030 206A 7574 - Blok 4: 612E 2. - Blok 1: R[0]= 5472, R[1]= 616E, R[2]= 7366, R[3]= 6572 - Blok 2: R[0]= 2075, R[1]= 616E, R[2]= 6720, R[3]= 5270 - Blok 3: R[0]= 2035, R[1]= 3030, R[2]= 206A, R[3]= 7574 - Blok 4: R[0]= 612E
60
3. - K = Ciphertext = 32608AAC 36FAF9DF F1C4EC61 AA3D2061 - n = 208/16 = 13 K = K[0]...K[12] K[0]=3260, K[1]=8AAC, K[2]=36FA, K[3]=F9DF, K[4]=F1C4, K[5]=EC61, K[6]=AA3D, K[7]=2061, K[8]=3260, K[9]=8AAC, K[10]=36FA, K[11]=F9DF, K[12]=F1C4
4. - Blok 1: C= CLS1(K[0] xor R[0])= CLS1(3260 xor 5472)= CLS1(6612)= CC24 C= CLS2(K[1] xor R[1])= CLS2(8AAC xor 616E)= CLS2(EBC2)= AF0B C= CLS3(K[2] xor R[2])= CLS3(36FA xor 7366)= CLS3(459C)= 2CE2 C= CLS4(K[3] xor R[3])= CLS4(F9DF xor 6572)= CLS4(9CAD)= CAD9
- Blok 2: C= CLS1(K[4] xor R[0])= CLS1(F1C4 xor 2075)= CLS1(D1B1)= A363 C= CLS2(K[5] xor R[1])= CLS2(EC61 xor 616E)= CLS2(8D0F)= 343E C= CLS3(K[6] xor R[2])= CLS3(AA3D xor 6720)= CLS3(CD1D)= 68EE C= CLS4(K[7] xor R[3])= CLS4(2061 xor 5270)= CLS4(7211)= 2117
- Blok 3: C= CLS1(K[8] xor R[0])= CLS1(3260 xor 2035)= CLS1(1255)= 24AA C= CLS2(K[9] xor R[1])= CLS2(8AAC xor 3030)= CLS2(BA9C)= EA72 C=CLS3(K[10] xor R[2])= CLS3(36FA xor 206A)= CLS3(1690)= B480 C=CLS4(K[11] xor R[3])= CLS4(F9DF xor 7574)= CLS4(8CAB)= CAB8
- Blok 4: C=CLS1(K[12] xor R[0])= CLS1(F1C4 xor 612E)= CLS1(90EA)= 21D5
- Ciphertext = CC24AF0B2CE2CAD9 A363343E68EE2117 24AAEA72B480CAB8 21D5
61
Proses terakhir adalah menyisipkan nilai ciphertext ke dalam citra. Misalkan terdapat citra berukuran 5 x 6 pixel, dimana nilai representasi warna (dalam biner) setiap pixelnya adalah sebagai berikut: Tabel 3.1. Nilai Representasi Warna Citra Bitmap Y
0
1
2
3
4
5
11101010
11101010
11011101
11010011
11101010
11111111
11110001
11110001
11101000
11100010
11110001
11111111
11110100
11110100
11101101
11101010
11110100
11111111
11010011
10101111
10101111
10101111
11001111
11111111
11100010
11001001
11001001
11001001
11100000
11111111
11101010
11011011
11011011
11011011
11101001
11111111
10111011
10110110
10101111
10101111
11101010
11111111
11010011
11001110
11001001
11001001
11110001
11111111
11100010
11011101
11011011
11011011
11110100
11111111
11000111
10101010
10110101
11000111
10101101
11111111
11010101
11000010
11001010
11010101
10111111
11111111
11011110
11010010
11010111
11011110
11001101
11111111
10111110
10110101
10101101
01101100
01101100
11111111
11001111
11001010
10111111
10001110
10001110
11111111
11011010
11010111
11001101
10110000
10110000
11111111
10000100
01101100
01101100
01101100
10000100
11111111
10100000
10001110
10001110
10001110
10100000
11111111
10111011
10110000
10110000
10110000
10111011
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
X
0
1
2
3
4
5
6
Maka proses penyisipan nilai ciphertext yang terjadi adalah sebagai berikut: - Ciphertext (Hexa) = CC24AF0B2CE2CAD9 A363343E68EE2117 24AAEA72B480CAB8 21D5
- Ciphertext (Biner) =
62
11001100
00100100
10101111
00001011
00101100
11100010
11001010
11011001
10100011
01100011
00110100
00111110
01101000
11101110
00100001
00010111
00100100
10101010
11101010
01110010
10110100
10000000
11001010
10111000
00100001
11010101
- Nilai representasi warna (dalam biner) setelah nilai ciphertext disisipkan ke dalam citra, sebagai berikut: Tabel 3.2. Nilai Representasi Warna Citra Bitmap Setelah Disisipkan Data Y
X
0
1
2
3
4
5
6
0
1
2
3
4
5
11101110
11101001
11011101
11010000
11101001
11111111
11110011
11110001
11101011
11100010
11110011
11111000
11110100
11110100
11101111
11101011
11110100
11111110
11010110
10101110
10101101
10101011
11001001
11111001
11100010
11001110
11001000
11001000
11100101
11111111
11101010
11011001
11011011
11011011
11101000
11111110
10111011
10110111
10101001
10101000
11101001
11111101
11010010
11001011
11001000
11001101
11110001
11111010
11100000
11011110
11011001
11011011
11110100
11111110
11000111
10101011
10110101
11000100
10101110
11111101
11010010
11000100
11001101
11010000
10111010
11111110
11011110
11010010
11010100
11011100
11001110
11111100
10111001
10110110
10101101
01101100
01101100
11111111
11001000
11001101
10111111
10001110
10001110
11111111
11011001
11010101
11001101
10110000
10110000
11111111
10000100
01101100
01101100
01101100
10000100
11111111
10100000
10001110
10001110
10001110
10100000
11111111
10111011
10110000
10110000
10110000
10111011
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
63
3.1.2
Pengungkapan Data Dan Proses Dekripsi Pada proses pengungkapan data, proses yang terjadi adalah mengambil,
mengumpulkan dan menggabungkan sejumlah nilai dari bit-bit LSB pada citra yang mengandung pesan rahasia. Kemudian nilai-nilai yang telah diperoleh dari proses pengungkapan data akan di dekripsi dengan menggunakan algoritma RC2 dan MD5. Seperti halnya dengan proses enkripsi RC2, proses dekripsi pesan dilakukan dengan melakukan permutasi terhadap nilai-nilai tersebut (ciphertext), dimana kunci dekripsi yang dipakai sama dengan kunci enkripsi MD5 (Kdec = Kenc). Jadi dapat dikatakan algoritma enkripsi dan dekripsi RC2 hampir sama. Seperti contoh kasus di atas, maka proses pengungkapan data dan proses dekripsinya adalah sebagai berikut: 1. -
-
Nilai-nilai LSB (Ciphertext) = 11001100
00100100
10101111
00001011
00101100
11100010
11001010
11011001
10100011
01100011
00110100
00111110
01101000
11101110
00100001
00010111
00100100
10101010
11101010
01110010
10110100
10000000
11001010
10111000
00100001
11010101
Nilai-nilai LSB (Ciphertext) dalam Hexa = CC24AF0B2CE2CAD9 A363343E68EE2117 24AAEA72B480CAB8 21D5
2. Kdec = Kenc Kdec = 32608AAC 36FAF9DF F1C4EC61 AA3D2061 3. Proses dekripsi RC2: - Ciphertext (C) dalam Hexa = CC24AF0B2CE2CAD9 A363343E68EE2117 24AAEA72B480CAB8 21D5
- Blok 1: CC24 AF0B 2CE2 CAD9 - Blok 2: A363 343E 68EE 2117 - Blok 3: 24AA EA72 B480 CAB8 - Blok 4: 21D5
64
5. - Blok 1: R[0]= CC24, R[1]= AF0B, R[2]= 2CE2, R[3]= CAD9 - Blok 2: R[0]= A363, R[1]= 343E, R[2]= 68EE, R[3]= 2117 - Blok 3: R[0]= 24AA, R[1]= EA72, R[2]= B480, R[3]= CAB8 - Blok 4: R[0]= 21D5 6. - K = 32608AAC 36FAF9DF F1C4EC61 AA3D2061 - n = 208/16 = 13 K = K[0]...K[12] K[0]=3260, K[1]=8AAC, K[2]=36FA, K[3]=F9DF, K[4]=F1C4, K[5]=EC61, K[6]=AA3D, K[7]=2061, K[8]=3260, K[9]=8AAC, K[10]=36FA, K[11]=F9DF, K[12]=F1C4
7. - Blok 1: P = K[0] xor CLS15(R[0])= 3260 xor CLS15(CC24)= 3260 xor 6612 = 5472 P = K[1] xor CLS14(R[1])= 8AAC xor CLS14(AF0B)= 36FA xor EBC2 = 616E P = K[2] xor CLS13(R[2])= 36FA xor CLS13(2CE2)= 36FA xor 459C = 7366 P = K[3] xor CLS12(R[3])= F9DF xor CLS12(CAD9)= F9DF xor 9CAD = 6572
- Blok 2: P = K[4] xor CLS15(R[0])= F1C4 xor CLS15(A363)= F1C4 xor D1B1 = 2075 P = K[5] xor CLS14(R[1])= EC61 xor CLS14(343E)= EC61 xor 8D0F = 616E P = K[6] xor CLS13(R[2])= AA3D xor CLS13(68EE)= AA3D xor CD1D = 6720
65
P = K[7] xor CLS12(R[3])= 2061 xor CLS12(2117)= 2061 xor 7211 = 5270
- Blok 3: P = K[8] xor CLS15(R[0])= 3260 xor CLS15(24AA)= 3260 xor 1255 = 2035 P = K[9] xor CLS14(R[1])= 8AAC xor CLS14(EA72)= 8AAC xor BA9C = 3030 P = K[10] xor CLS13(R[2])= 36FA xor CLS13(B480)= 36FA xor 1690 = 206A P = K[11] xor CLS12(R[3])= F9DF xor CLS12(CAB8)= F9DF xor 8CAB = 7574
- Blok 4: P = K[12] xor CLS15(R[0])= F1C4 xor CLS15(21D5)= F1C4 xor 90EA = 612E
4. -
Plaintext (Hexa) = 5472616E736665722075616E6720527020353030206A7574612E
-
Plaintext (karakter ASCII) = Transfer uang Rp 500 juta.
3.2
Algoritma Sistem Algoritma Sistem yang dirancang terdiri dari dua algoritma, yaitu
algoritma penyembunyi file dan algoritma ekstraksi file. Dimana pada saat sebelum penyembunyian file ke dalam citra, telah terjadi proses enkripsi terhadap file yang akan disembunyikan. Begitu pula dengan proses ekstraksi file, file yang telah diungkap dari dalam citra akan didekripsi terlebih dahulu sebelum diekstraksi.
66
3.2.1
Algoritma Penyembunyi File Aplikasi yang dihasilkan dalam penulisan skripsi ini mempunyai fungsi
untuk menyembunyikan pesan informasi berupa data teks dan gambar, dalam hal ini media yang digunakan adalah citra bitmap. Untuk menampung pesan informasi ke dalam objek stego yakni berupa citra bitmap tentunya membutuhkan suatu algoritma yang dapat memodifikasi objek stego tersebut. Hasilnya adalah citra baru yang berisi pesan informasi tersembunyi yang disebut dengan istilah embedding. Dalam proses modifikasi perubahan yang terjadi antara media penampung dengan hasil modifikasi media penampung tidak boleh terlalu mencolok secara kasat mata, dimana perubahan pada citra penampung yang telah termodifikasi tidak terlalu terlihat. Agar suatu kerahasiaan pesan informasi yang terkandung dalam objek citra penampung tetap terjaga (integrity), maka pesan informasi tersebut sudah di enkripsi terlebih dahulu dengan metode kriptografi sebelum pesan informasi tersebut disembunyikan ke dalam objek citra penampung. Dengan terenkripsinya pesan informasi tersebut, kerahasiaannya tetap terjaga meskipun ada pihak-pihak yang tidak berwenang mendapatkan pesan informasi yang terkandung dalam citra penampung karena pesan informasi tersebut tidak memiliki makna dan harus didekripsi terlebih dahulu agar dapat diketahui isi dari pesan informasi tersebut. Untuk menghasilkan objek citra yang sudah dimodifikasi yang berisi pesan informasi rahasia, yang disebut dengan istilah stego data/stego file, yang dibutuhkan adalah media penampung berupa citra bitmap, pesan informasi rahasia berupa data teks atau gambar, kunci enkripsi berupa sandi, algoritma MD5,
67
algoritma RC2 dan metode LSB. Untuk lebih jelasnya dapat dilihat pada gambar berikut ini. Data Teks Atau Data Gambar
Enkripsi (Dengan Algoritma RC2)
Cipher Text
Enkripsi (Dengan Algoritma MD5)
Key Stream
Embedding (Dengan Metode LSB)
String Password (Key)
Stego Data / Stego File
Citra Bitmap
Gambar 3.1. Algoritma Penyembunyi File Pada Citra Bitmap
Dari gambar diatas dapat dilihat untuk pembentukan kunci digunakan algoritma MD5 dan dalam proses enkripsi menggunakan algoritma RC2. Untuk proses embedding digunakan metode LSB, sehingga dihasilkan data ataupun file yang sudah melalui proses stego.
3.2.2
Algoritma Ekstraksi File Untuk mengambil pesan informasi rahasia yang terkandung di dalam stego
data/ stego file, dibutuhkan proses ekstraksi pesan berupa algoritma pendeteksi dan kunci enkripsi. Algoritma pendeteksi ini merupakan kebalikan dari algoritma embedding, bila algoritma embedding ini digunakan untuk menyisipkan pesan informasi rahasia ke dalam file citra bitmap, maka algoritma pendeteksi digunakan untuk mengambil pesan informasi rahasia dari file citra bitmap. Algoritma steganografi ini memodifikasi beberapa pixel yang terdapat di dalam file citra bitmap.
68
Di dalam setiap pixel yang terdapat pada file citra bitmap, memiliki intensitas nilai dari ketiga warna dasar yaitu warna merah, warna hijau dan warna biru. Jadi suatu warna pada pixel merupakan kombinasi dari intensitas ketiga warna tersebut. Intensitas warna memiliki nilai 0 sampai 255 yang mengambil 8 bit atau 1 byte untuk setiap warnanya, sehingga dalam satu pixel terdapat 24 bit yaitu 8 bit warna merah, 8 bit warna hijau dan 8 bit warna biru. Di dalam satu byte informasi yang diwakili oleh 8 bit ini, ada penggolongan-penggolongan bit berdasarkan urutan dan pengaruhnya di dalam byte tersebut, misalnya ada 1 byte informasi yang berisikan bit 10111001. Bit yang paling berpengaruh terhadap informasi yang dikandungnya biasanya adalah angka 1 yang terletak paling depan. Bit ini sering disebut dengan Most Significant Bit (MSB). Semakin ke kanan, bit-bit tersebut semakin kecil pengaruhnya terhadap keutuhan informasi yang dikandung, bit inilah yang disebut dengan Least Significant Bit (LSB). Teknik steganografi modifikasi dengan Least Significant Bit (LSB) ini dilakukan dengan memodifikasi bit-bit yang tergolong bit LSB pada setiap byte warna pada sebuah pixel. Bit-bit LSB ini akan dimodifikasi dengan meggantikan setiap LSB yang ada dengan bit-bit informasi lain yang ingin disembunyikan. Setelah semua bit-bit informasi menggantikan bit-bit LSB di dalam file-file tersebut, maka pesan informasi telah berhasil disembunyikan. Ketika pesan informasi rahasia tersebut ingin kembali dibuka, maka bit-bit LSB yang sekarang ada diambil satu persatu dan disatukan kembali menjadi sebuah informasi. Proses ini disebut dengan istilah extraction atau ekstraksi data, yang digambarkan pada gambar berikut ini.
69
Stego Data / Stego File
String Password (Key)
Extraction (Dengan Metode LSB)
Data
Citra Bitmap
Dekripsi (Dengan Algoritma RC2)
Enkripsi (Dengan Algoritma MD5)
Key Stream
Data Teks Atau Data Gambar
Gambar 3.2. Algoritma Ekstraksi File Pada Citra Bitmap
Pada gambar 3.2 dapat dilihat untuk proses ekstraksi dilakukan melalui citra Bitmap. Untuk mendekripsi data digunakan algoritma RC2 sehingga dihasilkan data teks ataupun gambar yang sudah di dekripsi.
3.3
Use Case Diagram Adapun Use Case diagram untuk aplikasi stegrafi pada skripsi ini adalah
dapat dilihat pada gambar 3.3.
70
Pilih Image Carrier
in << Embedding File
d cl u
> e>
<
> << inc lud e> >
Pilih File Emmbed
Enkripsi Dengan RC2
<
Dekripsi dengan RC2 Pengguna
d cl u
Extracting File
<
de>>
de n cl u
Input Password
>>
> e>
in << <> << inc lud e> >
Pilih Image Stego
Simpan File Embedd
Gambar 3.3. Use Case Diagram Embedded & Ekstracting File
Skenario use case diatas dapat dideskripsikan sebagai berikut: Actor Pengguna
: Aktor yang menggunakan perangkat lunak pada skripsi
Use Case 1. Nama Deskripsi
: Emmbedding File (Sembunyikan File) : Memungkinkan user menyimpan file didalam media gambar (image) digital dengan mengenkripsi file tersebut dengan RC2 untuk keamanan lebih tinggi
Prekondisi
: User sudah menjalankan perangkat lunak
71
Proses
: user terlebih dahulu memilih media citra yang akan digunakan sebagai file carrier, kemudian user memilih file embedded selanjutnya memasukkan kata sandi untuk proses enkripsi
Kondisi Akhir : perangkat lunak akan menampilkan file carrier yang sudah di-embedding dan sebelum di-embedding 2. Nama Deskripsi
: Extracting File (Ekstraksi File) : Memungkinkan user mengambil file didalam media gambar (image) digital dengan mengekstraksi file tersebut
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user terlebih dahulu memilih media citra yang sudah di-embedded selanjutnya memasukkan kata sandi untuk proses ekstraksi
Kondisi Akhir : perangkat lunak akan menampilkan file yang disisipkan pada media citra digital 3. Nama Deskripsi
: Pilih Image Carrier : Memungkinkan user untuk memilih media citra yang akan di-emmbedding
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user terlebih dahulu memilih media citra digital
Kondisi Akhir : perangkat lunak akan menampilkan citra digital yang akan di-embedding 4. Nama
: Pilih File embed
72
Deskripsi
: Memungkinkan user untuk memilih file yang akan disisipkan pada citra digital.
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user terlebih dahulu memilih file yang diinginkan
Kondisi Akhir : perangkat lunak akan menampilkan file yang akan diembedding 5. Nama Deskripsi
: Enkripsi RC2 : Memungkinkan user untuk melakukan proses penyisipan file pada citra digital
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user terlebih dahulu memasukkan password/sandi untuk proses enkripsi
Kondisi Akhir : perangkat lunak akan menampilkan proses enkripsi 6. Nama Deskripsi
: Pilih Image Stego : Memungkinkan user untuk memilih citra yang sudah di-embedded untuk di ekstraksi
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user terlebih dahulu memilih media citra digital yang sudah di-embedd
Kondisi Akhir : perangkat lunak akan menampilkan citra digital yang sudah di-embedding 7. Nama Deskripsi
: Dekripsi RC2 : Memungkinkan user untuk mengambil file yang disisipkan pada citra digital
73
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user terlebih dahulu memasukkan password dan memilih media citra digital yang sudah di-embedd untuk selanjutnya melakukan proses dekripsi
Kondisi Akhir : perangkat lunak akan menampilkan file yang disisipkan pada citra digital 8. Nama Deskripsi
: Simpan file embedd : Memungkinkan user untuk menyimpan file sudah diekstraksi
Prekondisi
: User sudah menjalankan perangkat lunak
Proses
: user menyimpan file di tempat yang diinginkan
Kondisi Akhir : perangkat lunak akan menampilkan tempat penyimpanan file
3.4
Activity Diagram Activity diagram untuk aplikasi stegrafi digambarkan dalam dua kategori
yaitu Activity Diagram Penyembunyi File dan Activity Diagram Ekstraksi File.
74
3.4.1
Activity Diagram Penyembunyi File Pengguna
Sistem
Pilih Citra Stego
Ada Embedded File di Citra
Tampil File Embedd
Input Sandi
[Ada]
[Tidak Ada]
Panjang Sandi >= 5 Karakter
[tidak] [ya]
Konversi Data Citra Ke Biner
Konversi Data Stego Ke Biner
Ambil Bit-Bit LSB
Rekonstruksi file embedd
Simpan
Tampilkan File embedd
[ya]
Simpan File Embedd
[tidak]
Gambar 3.4. Activity Diagram Penyembunyi File
Gambar 3.4 merupakan Activity Diagram Penyembunyi File, dimana pengguna dalam melakukan proses penyembunyian file akan memilih citra stego
75
yang akan di-embedd. Dalam proses embedded di berikan sandi, dimana sandi tersebut sebagai kunci untuk membuka file pada citra yang sudah di-embedd.
3.4.2
Activity Diagram Ekstraksi File Pengguna
Sistem
Pilih Media Citra Carrier
Pilih File Embedd
Ada Embedded File di Citra
[Tidak Ada]
Input Sandi
[Ada]
Panjang Sandi >= 5 Karakter
[tidak] [ya]
Enkripsi File
Konversi Data Citra Ke Biner
Konversi Data Ciphertext ke Biner
Sisipkan File Ciphertext Dengan LSB
Simpan
Tampilkan Citra Stego
[ya]
Simpan Citra Stego
[tidak]
Gambar 3.5. Activity Diagram Ekstraksi File
76
Pada gambar 3.5. Pengguna akan melakukan ekstraksi file, dimana dalam prosesnya terlebih dahulu memilih citra carrier (citra pembawa). Selanjutnya dimasukkan sandi (kunci) untuk menampilkan file yang disisipkan pada citra. Setelah file diekstaksi, maka file dapat disimpan.
3.5
Class Diagram
frmExtract -strPicLoad$ : String -strLoadPic$ : String -procDone : Boolean 1 +Init()() +File_Size() : String +Restore_Value()() +Sizing_Image()() 1
1
1
frmUtama -strLogin : String
1..* Utama
+Embedd() +Extract() +Exit()
1..* frmPreview -prcDone : Boolean
1
+Restore_Value()() +Sizing_Image()() +Save_Image()()
1
1..*
1..*
-tBits -winBMPFileHeader -BITMAPINFOHEADER -BITMAPPalette -POINTAPI -MSG +myDoEvents()() : Boolean +Binary2String(lnData(() +ByteToBinary() +Bin2Asc() +IsValidKey() : Boolean 1..*
1 1
frmEmbedd -strPicLoad$ : String -strLoadPic$ : String -procDone : Boolean +Init()() +File_Size() : String +Restore_Value()() +Sizing_Image()()
1
Gambar 3.6. Class Diagram Aplikasi Stegarafi yang dibangun
77
3.6
Flowchart Program Flowchart program merupakan keterangan yang lebih rinci tentang
bagaimana prosedur sesungguhnya yang dilakukan oleh suatu program. Flowchart ini menggambarkan urutan logika dari suatu prosedur pemecahan masalah. Flowchart pada program ini terdiri dari dua prosedur, yaitu flowchart program penyembunyi file dan flowchart program ekstraksi file.
78
3.6.1
Ya
Flowchart Program Penyembunyi File Mulai
B
Baca Media Citra
Key = MD5(Sandi)
Ada data di media citra?
DatFile = Encrypt(Data File) dgn metode RC2
Hapus Key
Tidak Tampilkan Media Citra dan Keterangan Citra
Hitung Total Ukuran Penyembunyi Data
Tampilkan Total Ukuran Penyembunyi Data
A
Baca Data Citra
X = Konversi Data Citra ke Binary Y = Konversi DatFile ke Binary
C
Tampilkan Media Citra Hitung Ukuran File Citra Baru Tampilkan Ukuran Media Citra Tampilkan Ukuran Citra Baru
Simpan CitraBaru? Ya Simpan CitraBaru
Ke bit LSB X
Baca File
Selesai Hitung Sisa Ukuran Penyembunyi Data
Tampilkan Total Ukuran File Yang Dipilih Tampilkan Sisa Ukuran Penyembunyi Data
Masukkan nilai Y
End of File? Tidak Ya Z = Konversi nilai X ke Byte
Baca Data File CitraBaru = preview_citra.prev Baca Sandi Masukkan nilai Z ke CitraBaru
Tidak
Apakah Panjang Sandi >= 5 karakter? Ya
A
Tampilkan CitraBaru
C
B
Gambar 3.7. Flowchart Program Penyembunyi File
Tidak
79
3.6.2
Flowchart Program Ekstraksi File Mulai
Tidak
A
B
Baca Media Citra
Tampilkan Data File (Z)
Tampilkan Media Citra dan Keterangan Citra
Baca Sandi
Tampilkan Data File?
Apakah Panjang Sandi >= 5 karakter?
Tidak
Ya
Ya
Baca Data Citra Tidak Tidak
Simpan Data File (Z)?
Ada data file di media citra?
Ya Key = MD5(Sandi)
Ya X = Konversi Data Citra ke Binary
DatFile = Decrypt(Z) dgn metode RC2
Ke bit LSB X
Y = Y + bit LSB Tidak
End of File?
Apakah key benar?
Tidak Ya
Ya Z = Konversi nilai Y ke Byte Hitung Total Ukuran Data (Z)
Hapus Key
Simpan DatFile
Selesai
Tampilkan Total Ukuran Data (Z)
A
B
Gambar 3.8. Flowchart Program Ekstraksi File
80
3.7
Perancangan Antar Muka Dalam pembuatan program, dirancang antar muka yang terdiri dari
beberapa form. Pembagian ke dalam beberapa form ini dimaksudkan untuk mempermudah pengguna dalam penggunaannya, sehingga pengguna tidak mengalami kesulitan ataupun kerancuan dalam proses penyembunyian file maupun ekstraksi file. Dalam program steganografi ini terbagi ke dalam 5 form, yaitu form pembuka, form menu utama, form penyembunyi file, form citra hasil, dan form ekstraksi file.
3.7.1
Antar Muka Form Pembuka Form pembuka merupakan form yang menampilkan judul dan penulis dari
program steganografi ini. Bentuk rancangan dari form ini dapat dilihat pada gambar 3.9 dibawah ini. STEGRAFI (STEGANOGRAFI & KRIPTOGRAFI)
BY: M.NAUFAL
Copyright © 2012 - 2014
Gambar 3.9. Perancangan Antar Muka Form Pembuka Form pembuka pada gambar 3.9 akan muncul sebelum form utama ditampilkan disaat program steganografi dijalankan oleh pengguna. Form ini hanya tampil dalam beberapa detik saja dan langsung menampilkan form menu utama.
81
3.7.2
Antar Muka Form Menu Utama Form menu utama merupakan form utama dalam program steganografi.
Bentuk dari rancangan form menu utama dapat dilihat pada gambar 3.10. STEGRAFI
WELCOME TO STEGRAFI
Icon 1
Icon 2
Tombol 1
Tombol 2
Icon 3 Tombol 3
Icon 4 Tombol 4
Status bar
Gambar 3.10. Perancangan Antar Muka Form Menu Utama Rancangan form menu utama pada gambar 3.10 diatas, terdapat 3 icon dan 3 tombol untuk mengakses ke form berikutnya, yaitu icon 1 dan tombol 1 merupakan tombol yang memiliki fungsi yang sama yang digunakan untuk menampilkan form penyembunyi file. Begitu pula icon 2 dan tombol 2 juga memiliki fungsi yang sama yang digunakan untuk menampilkan form ekstraksi file. Kemudian tombol yang memiliki fungsi yang sama yaitu icon 3 dan tombol 3 yang digunakan untuk menampilkan form about. Dan yang terakhir icon 4 dan tombol 4, merupakan tombol keluar yang digunakan untuk menutup dan mengakhiri program steganografi ini.
82
3.7.3
Antar Muka Form Penyembunyi File Form penyembunyi file merupakan form yang digunakan untuk
menyembunyikan file ke dalam citra. Form ini bertujuan untuk melakukan inisiasi awal dalam proses pengkodean dan meminta sejumlah informasi yang dibutuhkan dari pengguna sebelum melakukan proses pengkodean. Informasi yang dibutuhkan antara lain citra bitmap, file yang akan disembunyikan dan sandi. Adapun rancangan Antar Muka Form Penyembunyi File dapat dilihat pada gambar 3.11 dimabah ini. Sembunyikan File Ke Dalam Citra Pilih Media Citra
Pilih File Yang Akan Di Sembunyikan Tipe File
Nama File
Ukuran File
Tombol 1
Tombol 2
Tabel File Tombol 3
Kotak Citra Keterangan File
Masukkan Sandi Kotak Teks
Keterangan Citra
Kotak ceklis
Tombol 4
Tombol 5
Gambar 3.11. Perancangan Antar Muka Form Penyembunyi File Pada gambar 3.11 dapat dijelaskan skenario proses penyembunyian file dimana awalnya pengguna diminta untuk memilih media citra terlebih dahulu, yang akan dipakai sebagai wadah untuk menyimpan file rahasia yang ingin disembunyikan. Untuk memilih citra, pengguna harus menekan tombol 1. Citra yang telah dipilih akan ditampilkan di dalam kotak citra beserta keterangannya yang dilampirkan di dalam kotak keterangan citra berupa Nama Citra, Dimensi
83
Citra, Resolusi Citra, dan Ukuran Citra. Nama citra merupakan nama dari citra yang telah dipilih oleh pengguna dari direktori komputer. Dimensi citra merupakan panjang dan lebar dari citra yang telah dipilih. Resolusi citra merupakan besarnya intensitas warna dalam satu pixel yang dimiliki oleh citra yang dipilih. Dan ukuran citra merupakan besarnya kapasitas dari file citra yang telah dipilih. Contoh:
Nama citra
: Gambar1.bmp
Dimensi citra
: 1920 x 1200
Resolusi citra
: 24 bit
Ukuran citra
: 6,59 MB (6.912.054 bytes)
Setelah itu langkah selanjutnya yang harus dilakukan pengguna adalah memilih file yang akan disembunyikan ke dalam citra, yaitu dengan menekan tombol 2. File yang telah dipilih akan ditampilkan ke dalam tabel file. Tabel file ini berfungsi menampilkan informasi mengenai file yang dipilih berupa Tipe File, Nama File, dan Ukuran File. Tipe file merupakan jenis atau ekstensi dari file yang dipilih, yaitu tipe file yang hanya boleh dipilih dalam program ini adalah berupa gambar dan teks, misalnya JPG, GIF, TXT, DOC, dan lain sebagainya. Nama file merupakan nama file yang telah dipilih oleh pengguna dari direktori komputer. Dan ukuran file merupakan besarnya kapasitas dari file yang telah dipilih. Contoh: Tabel 3.3. Contoh File Teks Dan File Gambar Tipe File
Nama File
Ukuran File
jpg
Gambar Rahasia
2,7 KB (2.766 bytes)
doc
Dokumen Rahasia
19,5 KB (19.968 bytes)
84
Jika file yang berada dalam daftar tabel tidak ingin dilampirkan oleh pengguna, maka file tersebut dapat dihapus dari daftar tabel dengan memilih file yang ingin dihapus pada tabel, lalu menekan tombol 3. Pada kotak keterangan file akan ditunjukkan Total Ukuran Penyembunyi Data, Total Ukuran File Yang Dipilih, dan Sisa Ukuran Penyembunyi File. Total ukuran penyembunyi data adalah jumlah keseluruhan ukuran file yang dapat disembunyikan ke dalam citra. Total ukuran penyembunyi data diketahui setelah pengguna selesai memilih media citra. Jadi jumlah total ukuran penyembunyi data ini sesuai dengan besarnya ukuran media citra yang dipilih oleh pengguna, dengan rumus: Total Ukuran Penyembunyi Data = (Ukuran Citra / 8) - 1024 Misalkan terdapat citra yang berdimensi 1280 x 800 dengan ukuran citra sebesar 3.072.054 bytes, maka Total ukuran penyembunyi data adalah (3.072.054/8) – 1024 = 382.982,75 bytes. Total ukuran file yang dipilih merupakan jumlah keseluruhan ukuran file yang telah dipilih oleh pengguna atau yang telah tertera di tabel. Misalkan terdapat 2 file yang masing-masing berukuran 2,7 KB (2.766 bytes) dan 19,5 KB (19.968 bytes), maka Total ukuran file yang dipilih adalah 2,7 KB + 19,5 KB = 22,2 KB atau 2.766 bytes + 19.968 bytes = 22.734 bytes. Dan sisa ukuran penyembunyi file adalah besarnya ukuran file yang tersisa yang dapat disembunyikan ke dalam citra, dengan rumus: Sisa Ukuran Penyembunyi File = Total Ukuran Penyembunyi Data – Total Ukuran File Yang Dipilih
85
Misalkan Total ukuran penyembunyi data = 374,01 KB (382.982 bytes) dan Total ukuran file yang dipilih = 22,2 KB (22.734 bytes), maka Sisa ukuran penyembunyi file adalah 374,01 KB - 22,2 KB = 351,81 KB atau 382.982 bytes 22.734 bytes = 360.248 bytes. Setelah pengguna selesai memilih media citra dan file yang ingin disembunyikan, maka pengguna diwajibkan untuk menuliskan sandi di dalam kotak teks yang telah disediakan. Pada saat pengetikan sandi, karakter yang tampil pada kotak teks adalah berupa karakter “*” (bintang). Hal ini dilakukan agar supaya kerahasiaan sandi yang diketikan lebih terjaga dan tidak dapat di ketahui oleh orang-orang yang tidak berkepentingan. Namun karakter tersebut dapat dihilangkan dengan mengklik kotak ceklis pada form. Kotak ceklis pada form ini berguna untuk menghilangkan karakter “*” (bintang) pada kotak teks dengan menampilkan karakter asli yang diketikan oleh pengguna pada keyboard komputer. Langkah terakhir, pengguna dapat melakukan proses penyembunyian file dengan menekan tombol 4. Setelah proses penyembunyian file telah selesai, maka form ini akan ditutup dan muncul form citra hasil yang akan dijelaskan pada sub bab berikutnya. Dalam form ini pengguna diharuskan mengisi berdasarkan urutan langkah yang telah dijelaskan di atas, dimana bila tidak mengisi berdasarkan urutan yang telah ditentukan maka pengguna tidak dapat melanjutkan proses selanjutnya, karena kotak teks dan tombol-tombol yang lainnya akan dibuat dalam keadaan tidak aktif (disable).
86
Di dalam form ini terdapat satu tombol lagi yaitu tombol 5, tombol tersebut adalah tombol menu utama yang menuju ke form menu utama. Bentuk rancangan dari form ini dapat dilihat pada gambar berikut ini.
3.7.4
Antar Muka Form Citra Hasil Form citra hasil merupakan form yang digunakan untuk menampilkan citra
awal (citra yang dipilih oleh pengguna pada form penyembunyi file) dan citra sesudah diproses (citra yang telah berisi pesan informasi). Rancangan form citra hasil dapat dilihat pada gambar 3.12. Citra Hasil
Tombol 1
* HASIL CITRA SETELAH DIPROSES *
Tombol 2
SEBELUM
SESUDAH
Kotak Citra 1
Kotak Citra 2
Keterangan Citra 1
Keterangan Citra 2
CITRA AWAL
CITRA STEGRAFI
Gambar 3.12. Perancangan Antar Muka Form Citra Hasil
Dari gambar 3.12 diatas, Form akan ditampilkan ketika form penyembunyi file selesai melakukan proses penyembunyian file. Pada form ini terdapat 2 tombol dan 2 kotak citra. Tombol 1 digunakan sebagai tombol menu utama yang menuju ke form menu utama. Dan tombol 2 digunakan untuk menyimpan citra yang telah berhasil diproses (citra yang telah berisi pesan informasi).
87
Pada saat form tampil, kotak citra 1 akan berisi citra awal yaitu citra yang telah dipilih oleh pengguna pada form penyembunyi file, dan keterangannya dilampirkan di dalam kotak keterangan citra 1 berupa Dimensi Citra, Resolusi Citra, dan Ukuran Citra. Sedangkan pada kotak citra 2 diisi dengan citra yang telah selesai diproses saat penyembunyian file, dan keterangannya dilampirkan di dalam kotak keterangan citra 2 berupa Dimensi Citra, Resolusi Citra, dan Ukuran Citra. Bentuk rancangan dari form ini dapat dilihat pada gambar berikut ini.
3.7.5
Antar Muka Form Ekstraksi File Form ekstraksi file merupakan form yang digunakan untuk mengekstraksi
file dari dalam citra. Form ini bertujuan untuk meminta sejumlah informasi yang dibutuhkan dari pengguna sebelum menjalankan proses ekstraksi file. Informasi yang dibutuhkan hanyalah citra bitmap dan sandi.
Gambar 3.13. Perancangan Antar Muka Form Ekstraksi File
88
Rancangan form ekstraksi file pada gambar 3.13 diatas, terdapat komponen-komponen yang memiliki fungsi sama seperti komponen-komponen yang terdapat pada form penyembunyi file, seperti kotak citra, kotak keterangan citra, tabel file, kotak teks, dan kotak ceklis. Untuk memilih citra mana yang menjadi objek stego (citra bitmap), pengguna harus menekan tombol 1. Sama halnya seperti pada form penyembunyi file, pada tahap ini citra akan ditampilkan pada kotak citra beserta keterangannya yang dilampirkan di dalam kotak keterangan citra berupa Nama Citra, Dimensi Citra, Resolusi Citra, dan Ukuran Citra. Setelah memilih citra bitmap yang mengandung pesan informasi maka yang harus dilakukan pengguna adalah mengekstraksi atau membuka informasi yang terdapat di dalam citra tersebut dengan menekan tombol 2. Pesan informasi yang terdapat di dalam citra akan ditampilkan ke dalam tabel file. Kotak keterangan file akan menampilkan jumlah total ukuran data yang terkandung dalam citra yang telah dipilih. Langkah terakhir yang harus dilakukan oleh pengguna adalah proses penyimpanan file yang telah diungkap dari citra. Namun sebelumnya pengguna diwajibkan untuk memasukkan sandi yang menjadi kunci utama dalam mendekripsi file yang terdapat pada citra sebelum file di simpan ke dalam direktori komputer. Setelah sandi terisi dengan benar maka pengguna dapat menyimpan file tersebut dengan menekan tombol 3. Dalam form ini pengguna diharuskan mengisi berdasarkan urutan langkah yang telah dijelaskan di atas, dimana bila tidak mengisi berdasarkan urutan yang telah ditentukan maka pengguna tidak dapat melanjutkan proses selanjutnya,
89
karena kotak teks dan tombol-tombol lainnya akan dibuat dalam keadaan tidak aktif (disable). Di dalam form ini terdapat satu tombol lagi yaitu tombol 4, tombol tersebut adalah tombol menu utama yang menuju ke form menu utama. Bentuk rancangan dari form ini dapat dilihat pada gambar berikut ini.
BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1
Kebutuhan Sistem Pada dasarnya penggunaan komputer sebagai alat pengolah data terdiri
dari beberapa fasilitas pendukung yang harus diperhatikan dan harus memenuhi aspek teknis yang dibutuhkan oleh sistem pengolah data. Fasilitas pendukung ini terdiri dari 2 spesifikasi, yaitu: 1. Perangkat keras (hardware) 2. Perangkat lunak (software)
4.1.1
Spesifikasi Kebutuhan Perangkat Keras (Hardware) Perangkat keras yang digunakan sebagai pendukung untuk membuat
program aplikasi pada skripsi ini memiliki spesifikasi sebagai berikut: 1. Processor Intel Pentium IV 2.6 GHz atau lebih tinggi. 2. Harddisk. 3. Monitor dengan resolusi 1024 x 768 pixel. 4. Memori RAM yang digunakan minimal 128 MB. 5. VGA Card 32 MB. 6. Keyboard dan Mouse
90
91
4.1.2
Spesifikasi Kebutuhan Perangkat Lunak (Software) Sedangkan perangkat lunak (software) yang dibutuhkan untuk menunjang
aktivitas berjalannya program aplikasi yang dikembangkan dengan baik adalah: 1. Microsoft Visual Basic 2008 2. Sistem operasi Windows XP
4.2
Implementasi Tahapan yang perlu dilakukan dalam mengimplementasikan metode LSB
dan algoritma RC2 ke dalam program aplikasi pada skripsi ini, yaitu: 1. Instalasi aplikasi. 2. Format citra dan file. 3. Pengujian program.
4.2.1
Instalasi Aplikasi Sebelum menggunakan aplikasi pada skripsi ini, perlu dilakukan instalasi
terlebih dahulu agar aplikasi berjalan dengan baik. Adapun cara untuk melakukan instalasi aplikasi pada skripsi ini, yaitu : 1. Klik pada folder Setup STEGRAFI, maka akan tampil seperti gambar berikut ini.
92
Gambar 4.1. Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Awal 2. Selanjutnya klik tombol “OK” seperti pada gambar 4.1. di atas. Setelah itu akan tampil proses selanjutnya seperti yang terlihat pada gambar berikut ini.
Gambar 4.2. Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Dua 3. Klik tombol “Gambar Komputer” seperti pada gambar 4.2. di atas, maka akan tampil proses selanjutnya seperti yang terlihat pada gambar berikut ini.
93
Gambar 4.3. Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Tiga 4. Klik tombol “Continue” seperti pada gambar 4.3. di atas, maka akan tampil proses instalasi seperti yang terlihat pada gambar berikut ini.
Gambar 4.4. Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Empat
5. Setelah proses instalasi selesai, maka akan tampil proses selanjutnya seperti yang terlihat pada gambar berikut ini.
94
Gambar 4.5. Instalasi STEGRAFI (Steganografi Dan Kriptografi) Tahap Lima 6. Proses terakhir klik tombol “OK” seperti yang terlihat pada gambar 4.5. di atas dan setelah itu program aplikasi pun siap untuk digunakan.
4.2.2
Tampilan Program Setelah selesai melakukan proses instalasi program, tampilan dari program
aplikasi yang telah selesai diinstalasi dapat dilihat pada gambar di bawah ini.
Gambar 4.6. Tampilan Menu Utama
95
Gambar 4.7. Tampilan Menu “Sembunyikan File” Menu “Sembunyikan File” dapat ditampilkan dengan mengklik menu/ tulisan “Sembunyikan File” ataupun mengklik icon yang berada tepat di atas tulisan “Sembunyikan File”. Pada menu ini, proses awal yang harus dilakukan adalah memilih media citra yang akan digunakan sebagai wadah penampung (cover) data. Setelah memilih media citra, maka tombol “Pilih File” akan aktif, dan pengguna dapat memilih file yang akan disembunyikan ke dalam media citra yang telah dipilih. Tombol “Hapus File” akan aktif dan juga kotak teks sandi serta kotak ceklis sandi pun akan aktif setelah terdapat satu atau lebih file yang terlampir pada tabel file. Selanjutnya jika kotak teks sandi telah diisi dengan teks, maka tombol “Sembunyikan File” akan aktif dan proses penyembunyian file pun dapat dilakukan. Dengan mengklik tombol “Sembunyikan File”, maka proses yang
96
terjadi adalah proses mengenkripsi file yang tertera pada tabel file dan setelah itu dilakukan proses penyisipan data file yang telah terenkripsi ke dalam media citra yang dipilih. Untuk keluar dari menu “Sembunyikan File” dan kembali ke menu utama, pengguna dapat mengklik tombol/gambar yang berada di sebelah kanan tombol “Sembunyikan File”.
Gambar 4.8. Tampilan Menu “Citra Hasil” Menu “Citra Hasil” akan tampil secara otomatis setelah proses penyembunyian file telah selesai dilakukan. Menu ini menampilkan citra yang dipilih diawal pada menu “Sembunyikan File” dan juga citra yang telah selesai disisipkan beberapa data kedalamnya. Citra yang telah diproses dapat disimpan dengan mengklik tombol/gambar “Disk”. Sedangkan untuk keluar dari menu ini
97
dan kembali ke menu utama, pengguna dapat mengklik tombol/gambar disebelah kiri dari tombol/gambar “Disk”
Gambar 4.9. Tampilan Menu “Ekstraksi File” Menu “Ekstraksi File” dapat ditampilkan dengan mengklik menu/tulisan “Ekstraksi File” ataupun mengklik icon yang berada tepat di atas tulisan “Ekstraksi File”. Komponen-komponen yang terdapat pada menu ini hampir memiliki fungsi yang sama dan juga proses pengaktifan komponennya sama seperti pada menu “Sembunyikan File”. Perbedaannya hanya terdapat pada tombol “Ekstraksi File” dan tombol “Simpan File”. Tombol “Ekstraksi File” digunakan untuk mengekstraksi data dari media citra yang dipilih. Hasilnya akan ditampilkan secara otomatis ke dalam tabel file. Sedangkan tombol “Simpan File” digunakan untuk menyimpan file yang telah diekstraksi dari media citra ke dalam direktori komputer. Proses yang terjadi jika tombol “Simpan File” diklik adalah proses pendekripsian file yang tertera/
98
telah diekstraksi dari media citra, kemudian hasilnya disimpan langsung ke dalam direktori komputer.
4.2.3
Format Citra Dan File Adapun format citra dan file yang digunakan pada program aplikasi ini
adalah sebagai berikut: 1. Media citra yang digunakan sebagai wadah penampung (cover) data adalah citra bitmap dengan format *.bmp. 2. Citra yang telah selesai disisipkan data dan disimpan ke dalam direktori komputer adalah citra bitmap dengan format *.bmp. 3. File yang akan dienkripsi dan disisipkan ke dalam citra adalah file teks dengan format *.txt, *.pdf; *.doc, *.rtf, *.xls, *.ppt, *.pub, *.mdb, dan file gambar dengan format *.bmp, *.gif, *.jpg, *.png, *.tif, *.tiff, *.ico. 4. File telah selesai diekstraksi dari media citra dan telah didekripsi serta disimpan ke dalam direktori adalah sesuai dengan file yang disisipkan ke dalam media citra, yaitu dapat berupa file teks dengan format *.txt, *.pdf; *.doc, *.rtf, *.xls, *.ppt, *.pub, *.mdb, dan file gambar dengan format *.bmp, *.gif, *.jpg, *.png, *.tif, *.tiff, *.ico.
4.2.4
Pengujian Program Dalam penelitian ini dilakukan beberapa pengujian, antara lain :
1. Membandingkan media citra sebelum disisipkan data dan setelah disisipkan data file berupa teks. 2. Membandingkan media citra sebelum disisipkan data dan setelah disisipkan data file berupa gambar.
99
3. Membandingkan media citra sebelum disisipkan data dan setelah disisipkan data file berupa teks dan gambar. 4. Mengembalikan data yang sudah disisipkan ke dalam media citra dengan sandi yang sama. 5. Mengembalikan data yang sudah disisipkan ke dalam media citra dengan sandi yang berbeda.
4.2.4.1
Pengujian Dengan Menggunakan File Teks Pengujian yang dilakukan berikut ini adalah dengan menggunakan salah
satu file teks yang berformat *.pdf yang akan disisipkan ke dalam media citra. Pengujian ini melakukan proses penyembunyian file teks ke dalam media citra. Dan selanjutnya melakukan proses ekstraksi data dari media citra yang telah selesai disisipkan data. Adapun data awal sebelum dilakukan proses penyembunyian file dan proses enkripsi, yaitu : a. Dimensi Citra : 1920 x 1200 b. Resolusi Citra : 24 bits c. Ukuran Citra : 6,59 MB (6.912.054 bytes) d. Total Ukuran Penyembunyi Data : 842,76 KB (862.982 bytes) e. Ukuran File Teks : 769,14 KB (787.602 bytes)
100
Gambar 4.10. Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Teks Berikut ini adalah tampilan perbandingan media citra sebelum dan setelah disisipkan file teks :
Gambar 4.11. Perbandingan Media Citra Sebelum Dan Setelah Disisipkan File Teks
101
Dari hasil pengujian ini diperoleh data media citra sebelum dan sesudah disisipkan data sebagai berikut: Tabel 4.1. Tabel Data Media Citra Hasil Pengujian Pertama
Citra 1
Dimensi Citra 1920 x 1200
Resolusi Citra 24 bits
6,59 MB (6.912.054 bytes)
Citra STEGRAFI
1920 x 1200
24 bits
6,59 MB (6.912.056 bytes)
Nama Citra
Ukuran Citra
Proses selanjutnya adalah mengekstraksi data dari media citra. Dan hasil proses ekstraksi data dari media citra dapat dilihat pada gambar di bawah ini.
Gambar 4.12. Hasil Ekstraksi Data Dari Media Citra
Dari hasil pengujian ini diperoleh data file teks sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra sebagai berikut : a. Ukuran File Teks Awal : 769,14 KB (787.602 bytes) b. Ukuran File Teks Ekstraksi : 769,16 KB (787.624 bytes)
102
Tampilan isi file teks sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra serta didekripsi, ditunjukkan pada gambar berikut ini.
Gambar 4.13. Perbandingan Isi File Teks Sebelum Disisipkan Ke Dalam Citra (Kiri) Dan Setelah Diekstraksi Dari Media Citra Serta Didekripsi (Kanan)
4.2.4.2
Pengujian Dengan Menggunakan File Gambar Pengujian yang dilakukan berikut ini adalah dengan menggunakan salah
satu file gambar yang berformat *.png yang akan disisipkan ke dalam media citra. Pengujian ini melakukan proses penyembunyian file gambar ke dalam media citra. Dan selanjutnya melakukan proses ekstraksi data dari media citra yang telah selesai disisipkan data. Adapun data awal sebelum dilakukan proses penyembunyian file dan proses enkripsi, yaitu: a. Dimensi Citra : 1920 x 1200 b. Resolusi Citra : 24 bits c. Ukuran Citra : 6,59 MB (6.912.054 bytes) d. Total Ukuran Penyembunyi Data : 842,76 KB (862.982 bytes) e. Ukuran File Gambar : 31,92 KB (32.691 bytes)
103
Gambar 4.14. Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Gambar Berikut ini adalah tampilan perbandingan media citra sebelum dan setelah disisipkan file gambar :
Gambar 4.15. Perbandingan Media Citra Sebelum Dan Setelah Disisipkan File Gambar
104
Dari hasil pengujian ini diperoleh data media citra sebelum dan sesudah disisipkan data sebagai berikut: Tabel 4.2. Tabel Data Media Citra Hasil Pengujian Kedua Dimensi
Resolusi
Citra
Citra
Citra 1
1920 x 1200
24 bits
6,59 MB (6.912.054 bytes)
Citra STEGRAFI
1920 x 1200
24 bits
6,59 MB (6.912.056 bytes)
Nama Citra
Ukuran Citra
Proses selanjutnya adalah mengekstraksi data dari media citra. Dan hasil proses ekstraksi data dari media citra dapat dilihat pada gambar di bawah ini.
Gambar 4.16. Hasil Ekstraksi Data Dari Media Citra
105
Dari pengujian ini diperoleh data file gambar sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra sebagai berikut : a. Ukuran File Gambar Awal : 31,92 KB (32.691 bytes) b. Ukuran File Gambar Ekstraksi : 31,95 KB (32.712 bytes)
Tampilan isi file gambar sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra serta didekripsi ditunjukkan pada gambar berikut ini.
Gambar 4.17. Perbandingan Isi File Teks Sebelum Disisipkan Ke Dalam Citra (Kiri) Dan Setelah Diekstraksi Dari Media Citra Serta Didekripsi (Kanan)
4.2.4.3
Pengujian Dengan Menggunakan File Teks Dan File Gambar Pengujian yang dilakukan berikut ini adalah dengan menggunakan salah
satu file teks yang berformat *.jpg dan file gambar yang berformat *.png yang akan disisipkan ke dalam media citra. Pengujian ini melakukan proses penyembunyian file teks dan file gambar ke dalam media citra. Dan selanjutnya melakukan proses ekstraksi data dari media citra yang telah selesai disisipkan data. Adapun data awal sebelum dilakukan proses penyembunyian file dan proses enkripsi, yaitu: a. Dimensi Citra : 1920 x 1200 b. Resolusi Citra : 24 bits
106
c. Ukuran Citra : 6,59 MB (6.912.054 bytes) d. Total Ukuran Penyembunyi Data : 842,76 KB (862.982 bytes) e. Ukuran File Teks : 373,23 KB (382.184 bytes) f. Ukuran File Gambar : 131,43 KB (134.588 bytes) g. Total Ukuran File : 504,66 KB (516.772 bytes)
Gambar 4.18. Proses Awal Sebelum Proses Penyembunyian Dan Proses Enkripsi File Teks Dan File Gambar tampilan perbandingan media citra sebelum dan setelah disisipkan file teks dan file gambar dapat dilihat pada gambar 4.19.
107
Gambar 4.19. Perbandingan Media Citra Sebelum Dan Setelah Disisipkan File Teks Dan File Gambar
Dari hasil pengujian ini diperoleh data media citra sebelum dan sesudah disisipkan data sebagai berikut: Tabel 4.3. Tabel Data Media Citra Hasil Pengujian Ketiga Dimensi
Resolusi
Citra
Citra
Citra 1
1920 x 1200
24 bits
6,59 MB (6.912.054 bytes)
Citra STEGRAFI
1920 x 1200
24 bits
6,59 MB (6.912.056 bytes)
Nama Citra
Ukuran Citra
108
Proses selanjutnya adalah mengekstraksi data dari media citra. Dan hasil proses ekstraksi data dari media citra dapat dilihat pada gambar di bawah ini.
Gambar 4.20. Hasil Ekstraksi Data Dari Media Citra
Dari pengujian ini diperoleh data file teks dan file gambar sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra sebagai berikut : a. Ukuran File Teks Awal : 373,23 KB (382.184 bytes) b. Ukuran File Teks Ekstraksi : 373,25 KB (382.208 bytes) c. Ukuran File Gambar Awal : 131,43 KB (134.588 bytes) d. Ukuran File Gambar Ekstraksi : 131,45 KB (134.608 bytes) Tampilan isi file teks dan file gambar sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra serta didekripsi ditunjukkan pada gambar 4.21.
109
Gambar 4.21. Perbandingan Isi File Teks Dan File Gambar Sebelum Disisipkan Ke Dalam Citra (Kiri) Dan Setelah Diekstraksi Dari Media Citra Serta Didekripsi (Kanan)
4.2.4.4
Pengujian Dengan Menggunakan File Teks Dan Sandi Berbeda Pengujian yang dilakukan berikut ini adalah dengan menggunakan salah
satu file teks yang berformat *.pdf yang akan disisipkan ke dalam media citra. Pengujian ini melakukan proses penyembunyian file teks ke dalam media citra. Dan selanjutnya melakukan proses ekstraksi data dari media citra yang telah selesai disisipkan data. Adapun data awal sebelum dilakukan proses penyembunyian file dan proses enkripsi, yaitu : a. Dimensi Citra : 1920 x 1200 b. Resolusi Citra : 24 bits c. Ukuran Citra : 6,59 MB (6.912.054 bytes)
110
d. Total Ukuran Penyembunyi Data : 842,76 KB (862.982 bytes) e. Ukuran File Teks : 769,14 KB (787.602 bytes) f. Sandi : STEGRAFI Key4
Gambar 4.22. Proses Awal Sebelum Proses Penyembunyian dan Proses Enkripsi File Teks Berikut ini adalah tampilan perbandingan media citra sebelum dan setelah disisipkan file teks :
Gambar 4.23. Perbandingan Media Citra Sebelum dan Setelah Disisipkan File Teks
111
Dari hasil pengujian ini diperoleh data media citra sebelum dan sesudah disisipkan data sebagai berikut: Tabel 4.4. Tabel Data Media Citra Hasil Pengujian Keempat Dimensi
Resolusi
Nama Citra
Ukuran Citra Citra
Citra
Citra 1
1920 x 1200
24 bits
6,59 MB (6.912.054 bytes)
Citra STEGRAFI
1920 x 1200
24 bits
6,59 MB (6.912.056 bytes)
Proses selanjutnya adalah mengekstraksi data dari media citra. Dan hasil proses ekstraksi data dari media citra dapat dilihat pada gambar di bawah ini.
Gambar 4.24. Hasil Ekstraksi Data Dari Media Citra
112
Dari hasil pengujian ini diperoleh data file teks sebelum disisipkan ke dalam citra dan setelah diekstraksi dari media citra sebagai berikut : a. Ukuran File Teks Awal : 769,14 KB (787.602 bytes) b. Ukuran File Teks Ekstraksi : 769,17 KB (787.631 bytes) Setelah itu dilakukan proses pendekripsian dan penyimpanan data ke dalam direktori komputer dengan menggunakan sandi “abcdef” dan hasilnya adalah sebagai berikut.
Gambar 4.25. Pesan Kesalahan Saat Penyimpanan File
Dari hasil pengujian yang telah dilakukan, bahwa perbandingan ukuran media citra sebelum disisipkan data file teks atau file gambar dengan ukuran media citra setelah disisipkan data file teks atau file gambar memiliki perbandingan ukuran sebesar 2 byte. Hal ini tentunya tidak terlalu mempengaruhi
113
kualitas dari media citra yang digunakan seperti yang telah terlihat dari hasil proses pengujian yang telah dilakukan. Sedangkan perbandingan ukuran file teks atau file gambar sebelum disisipkan ke dalam media citra dengan ukuran file teks atau file gambar setelah diekstraksi dari media citra memiliki perbandingan ukuran sekitar 2 – 3 KB. Hal ini juga tetap tidak mempengaruhi isi file teks atau pun kualitas dari gambar yang telah diekstraksi dari media citra. Jika sandi yang digunakan untuk mendekripsi file pada saat file akan disimpan ke dalam direktori komputer berbeda dari sandi yang digunakan pada saat penyembunyian file, maka program STEGRAFI akan menampilkan pesan kesalahan. Dan data yang didekripsi tidak tersimpan ke dalam direktori komputer.
4.3
Kelemahan dan Kelebihan Sistem
4.3.1
Kelemahan Sistem 1. Dari aspek robustness (ketahanan), citra hasil tidak tahan terhadap proses perbaikan citra (image enhancement). 2. Dikarenakan paralel prosessing mengakibatkan dalam membutuhkan waktu proses yang lebih lama.
4.3.2
Kelebihan Sistem 1. Akan sangat sulit bagi kripanalis untuk memecahkan kode chipertext karena menggunakan algoritma RC2 dan LSB. 2. Dari sisi sekuritas jauh lebih aman dibandingkan steganografi biasa yang hanya menggunakan plain data, dikarenakan sistem ini menggunakan chipertext.
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Dari hasil implementasi dan hasil pengujian yang dilakukan, maka dapat
diambil kesimpulan sebagai berikut : 1. Dengan menggunakan metode Least Significant Bit (LSB), penyisipan data ke dalam media citra yang digunakan sebagai wadah penampung (cover) tidak terlalu mempengaruhi kualitas dari citra tersebut bila dilihat secara kasat mata. 2. RC2 adalah cipher blok yang menggunakan 64 bit sebagai ukuran per bloknya 3. Semakin besar ukuran media citra yang digunakan maka semakin baik dan semakin besar pula kapasitas atau ukuran penyembunyi datanya. 4. Dari pengujian pertama sampai pengujian ke empat, perbandingan ukuran data media citra tanpa data dan ukuran media citra dengan data memiliki perbandingan ukuran yang sama sebesar 2 byte. Begitu pula dengan ukuran file yang akan disisipkan dan ukuran file yang telah diekstraksi juga memiliki perbandingan ukuran sekitar 2 – 3 KB. 5. Kesalahan memasukkan sandi pada saat pendekripsian dapat menyebabkan data file yang telah diekstraksi tidak dapat disimpan. Hal ini dikarenakan algoritma MD5 dengan fungsi hashnya sangat peka terhadap perubahan pesan. 6. Data file yang telah diekstraksi dari media citra tidak mengubah sedikit pun isi ataupun kualitas gambar yang ada.
114
115
7. Sumber daya komputer sangat berpengaruh terhadap kecepatan enkripsi dan proses penyisipan data serta proses ekstraksi data. Semakin besar data file yang disisipkan ke dalam media citra, maka kecepatan memprosesnya akan semakin lama. Hal ini dikarenakan penggunaan kapasitas memori komputer sebagai fasilitas penyimpanan data sementara terbatas. 8. Keunggulan
steganografi
dari
kriptografi
adalah
kemampuan
untuk
mengeliminasi kecurigaan pihak yang tidak berkepentingan melihat pesan atau data yang telah diubah. 9. Penggabungan teknik steganografi dan kriptografi dapat dilakukan dengan cara mengenkripsi file yang akan disisipkan sebelumnya, kemudian hasil proses enkripsi (chiphertext) disisipkan ke dalam media citra. Dan sebaliknya untuk memperoleh data dari media citra, pertama kali dilakukan proses ekstraksi data dari media citra kemudian data didekripsi kembali. Proses penggabungan teknik ini tentunya dapat membuat data lebih terjamin kerahasiaannya.
5.2
Saran Adapun saran yang dapat disampaikan untuk pengembangan sistem lebih
lanjut adalah sebagai berikut: 1. Agar algoritma RC2 dapat digabungkan dengan algoritma kriptografi lainnya sehingga diperoleh program aplikasi yang lebih handal. 2. Agar media yang digunakan sebagai wadah penampung (cover) dapat berupa media lainnya seperti media teks, suara dan video. Begitu pula dengan file yang akan dienkripsi dan disisipkan dapat berupa file lainnya seperti file suara dan video.
DAFTAR PUSTAKA
Munir Rinaldi, “Kriptografi”, Informatika, Bandung, 2006. Munir Rinaldi, “Pengolahan Citra Digital”, Informatika, Bandung, 2004. Garfinkel Simson, and Gene Spafford, “Practical UNIX & Internet Security,” O’Reilly & Associates, Inc., 2nd edition, 2006. Hartono Jogiyanto, 2007, Analisis & Desain Sistem Informasi Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis, Yogyakarta, Andi Offset. Icove David J., “Collaring the cybercrook: an investigator’s view,” IEEE Spectrum, pp. 31-36, June 2005. Johnson Neil F,, “Steganography”,. Center for Secure Information Systems, George Mason University, 2006. Kristanto Andri, 2005, Perancangan Sistem Informasi dan Aplikasinya, Yogyakarta, Gava. Media. Raharjo Budi, “Keamanan Sistem Informasi Berbasis Internet”, PT.Insan Komunikasi Indonesia, Bandung, 2005. Stallings William, “Network and Internetwork Security,” Principles and Practise Prentice Hall, 2005.
ix