BAB 2 LANDASAN TEORI
2.1 Pengenalan Steganografi 2.1.1. Sejarah Steganografi Steganografi merupakan seni penyembunyian pesan ke dalam pesan lainnya sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam pesan tersebut. Kata steganografi (steganography) berasal dari bahasa Yunani yaitu steganos yang artinya tersembunyi atau terselubung dan graphein, yang artinya menulis, sehingga kurang lebih artinya adalah “menulis tulisan yang tersembunyi atau terselubung” (Sellars, 1996). Teknik ini meliputi banyak sekali metoda komunikasi untuk menyembunyikan pesan rahasia. Metoda ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar. Catatan pertama tentang steganografi ditulis oleh seorang sejarawan Yunani, Herodotus,yaitu ketika Histaeus seorang raja kejam Yunani dipenjarakan oleh Raja Darius di Susa pada abad 5Sebelum Masehi. Histaeus harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus. Histaeus menulis pesan dengan cara mentato pesan pada kulit kepala seorang budak dan ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristagoras.
9
Cerita lain tentang steganografi datang juga dari sejarawan Yunani, Herodotus, yaitu dengan cara menulis pesan pada papan kayu yang ditutup dengan lilin. Demeratus, 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, lalu papan kayu tersebut dimasukkan ke dalam tabung kayu, kemudian tabung kayu ditutup kembali dengan lilin. Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini pertama digunakan pada zaman Romawi kuno yaitu dengan menggunakan air sari buah jeruk, urine atau susu sebagai tinta untuk menulis pesan. Cara membacanya adalah dengan dipanaskan di atas nyala lilin, tinta yang sebelumnya tidak terlihat, ketika terkena panas akan berangsur-angsur menjadi gelap, sehingga pesan dapat dibaca. Teknik ini pernah juga digunakan pada Perang Dunia II. Pada abad 20, steganografi benar-benar mengalami perkembangan. Selama berlangsung perang Boer, Lord Boden Powell (pendiri gerakan kepanduan) yang bertugas untuk membuat tanda posisi sasaran dari basis artileri tentara Boer, untuk alasan keamanan, Boden Powell menggambar peta-peta posisi musuh pada sayap kupukupu agar gambar-gambar peta sasaran tersebut terkamuflase. Perang Dunia II adalah periode pengembangan teknik-teknik baru steganografi. Pada awal Perang Dunia II walaupun masih digunakan teknik tinta yang tak terlihat, namun teknik-teknik baru mulai dikembangkan seperti menulis pesan rahasia ke dalam kalimat lain yang tidak berhubungan langsung dengan isi pesan rahasia tersebut, kemudian teknik menulis pesan rahasia ke dalam pita koreksi karbon mesin ketik, dan juga teknik menggunakan pin berlubang untuk menandai kalimat terpilih yang
10
digunakan dalam pesan, teknik terakhir adalah microdots yang dikembangkan oleh tentara Jerman pada akhir Perang Dunia II. Dari contoh-contoh steganografi konvensional tersebut dapat dilihat bahwa semua teknik steganografi konvensional berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Maka sesungguhnya prinsip dasar dalam steganografi lebih dikonsentrasikan pada kerahasian komunikasinya bukan pada datanya (Johnson, 1995). Seiring dengan perkembangan teknologi terutama teknologi komputasi, steganografi merambah juga ke media digital, walaupun steganografi dapat dikatakan mempunyai hubungan erat dengan kriptografi, tetapi kedua metode ini sangat berbeda.
2.1.2.Definisi Steganografi. Setelah mengamati runtutan sejarah dan perkembangan pengertian serta penggunaan, maka dapat disimpulkan bahwa steganografi merupakan ilmu yang mempelajari, meneliti, dan mengembangkan seni menyembunyikan sesuatu informasi. Steganografi dapat dipandang atau dikelompokkan sebagai salah satu bagian atau cabang dari ilmu komunikasi. Pada era informasi digital, steganografi merupakan teknik dan seni menyembunyikan informasi dan data digital dibalik informasi digital lain, sehingga informasi digital yang sesungguhnya tidak kelihatan atau dapat tersamarkan. Secara teori, semua file umum yang ada di dalam komputer dapat digunakan sebagai media, seperti file gambar berformat JPG, GIF, BMP, atau di dalam musik MP3, atau bahkan di dalam sebuah film dengan format WAV atau AVI. Semua dapat dijadikan tempat bersembunyi, asalkan file tersebut memiliki bit-bit data yang dapat dimodifikasi. Setelah dimodifikasi file media tersebut tidak akan banyak terganggu
11
fungsinya dan kualitasnya tidak akan jauh berbeda dengan aslinya. Proses penyimpanan dengan memanfaatkan bit-bit ini sangatlah dikembangkan karena lebih mudah dilakukan dan lebih sulit dicurigai atau lebih baik dalam masalah keamananya. Media digital sendiri merupakan media yang sudah umum digunakan karena kemudahannya dalam melakukan perpindahan antar file data ke dalam berbagai macam perangkat keras.
2.1.3 Kegunaan Steganografi Seperti perangkat keamanan lainnya, steganografi dapat digunakan untuk berbagai macam alasan, beberapa diantaranya untuk alasan yang baik, namun dapat juga untuk alasan yang tidak baik. Untuk tujuan legitimasi dapat digunakan pengamanan seperti citra dengan watermarking dengan alasan untuk perlindungan copyright. Digital watermark (yang juga dikenal dengan fingerprinting, yang dikhususkan untuk hal-hal menyangkut copyright) sangat mirip dengan steganografi karena menggunakan metode penyembunyian dalam arsip, yang muncul sebagai bagian asli dari arsip tersebut dan tidak mudah dideteksi oleh kebanyakan orang. Steganografi dapat digunakan sebagai tag-notes untuk citra online, untuk menempelkan pesan ke dalam media file yang sudah tersedia di internet dan umumnya diketahui khalayak umum. Steganografi juga dapat digunakan untuk melakukan perawatan atas kerahasiaan informasi yang berharga, untuk menjaga data tersebut dari kemungkinan sabotasi, pencuri, atau dari pihak yang tidak berwenang. Sayangnya, steganografi juga dapat digunakan untuk alasan yang ilegal. Sebagai contoh, jika seseorang telah mencuri data, mereka dapat menyembunyikan arsip curian tersebut ke dalam arsip lain dan mengirimkannya keluar tanpa menimbulkan kecurigaan siapapun karena tampak seperti email atau arsip normal. Begitu pula dengan masalah terorisme, teknik steganografi
12
dapat digunakan oleh para teroris untuk menyamarkan komunikasi mereka dari pihak luar.
2.2 Pengenalan Kriptografi 2.2.1. Sejarah Kriptografi Asal mula kata Kriptografi berasal dari bahasa Yunani, kyriptos yang artinya tersembunyi atau tidak kelihatan dan kata grafia yang dapat diartikan sebagai sesuatu yang tertulis. Sehingga kriptografi dapat disebut sebagai pesan yang tertulis dengan maksud tersembunyi atau rahasia. Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilihat kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs berasal dari bangsa Yunani, kata hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Pada tahun 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Tujuan awal pembuatan pesan dengan kode chipher oleh Julius Caesar agar pesan yang dibawa kurir pada saat perang tidak dapat dibaca andai pesan tersebut jatuh ke tangan musuh. Oleh karena ide pemikiran Julius Caesar dianggap awal dari kriptografi, kemudian kode sandi mulai banyak dipergunakan dan terkenal serta berkembang hingga sekarang ini. Pada cipher ini, hurufhuruf alfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik.
13
Cipher
semacam
ini
berkonsep
penggeseran
alfabet
dengan
3
huruf
dan
mensubstitusikan huruf tersebut, substitusi ini kadang dikenal dengan C3. Sebagaimana banyak teknologi lainnya, selama bertahun-tahun kriptografi menjadi bidang khusus yang hanya dipelajari oleh pihak militer. Agen Keamanan Nasional Amerika (NSA = National Security Agency), Uni Soviet, Inggris, Perancis, Israel dan negara lainnya telah membelanjakan miliaran dolar untuk mengamankan komunikasi mereka dan pada saat yang bersamaan mereka pun berusaha memecahkan kode rahasia negara saingannya. Namun pada kurun waktu 30 tahun terakhir, penelitian akademik di bidang kriptografi meledak dengan dahsyatnya. Kemajuan teknologi komputasi komputer menambah cepatnya perkembangan kriptografi. Sekarang, kriptografi bukan lagi monopoli militer, setiap individu berhak mengamankan informasi data komunikasinya tanpa kuatir dimata-matai oleh pihak lain. Setiap individu berhak melindungi komunikasi yang berisi rahasia keluarganya, bisnisnya, pekerjaannya, dan pendapatpendapatnya.
2.1.2. Definisi Kriptografi. Definisi kriptografi secara singkat adalah ilmu yang mempelajari bagaimana caranya menyamarkan pesan dan mengembalikannya ke bentuk semula. Penyamaran pesan dapat dilakukan dengan kunci atau kata sandi yang ditetapkan. Ini akan menambah tingkat keamanan pengiriman data informasi, karena jika informasi berhasil diperoleh baik dengan sengaja maupun dengan tidak sengaja oleh oleh pihak manapun yang bukan pemilik atau yang tidak berkepentingan maka tidak akan mendapatkan informasi atau data asli karena data asli telah disamarkan. Dalam dunia teknologi seperti
14
ini, keamanan data adalah sesuatu yang mutlak dimana semua data disimpan dalam bentuk digital. Teknik penyamaran data seperti ini disebut enkripsi dan teknik untuk mengembalikannya disebut dekripsi.
Dalam sebuah algoritma kriptografi, terdapat tiga unsur yaitu: a. Enkripsi, yaitu proses mengubah pesan awal menjadi teks chiper. b. Dekripsi, yaitu proses mengubah teks chiper menjadi pesan awal . c. Kunci (key), merupakan kode sandi yang ditetapkan yang akan digunakan untuk proses enkripsi maupun proses dekripsi.
Dalam
kriptografi
modern,
selain
menggunakan
algoritma
dalam
pengimplementasiannya juga menggunakan kunci (key) untuk memecahkan masalah tersebut. Proses enkripsi dan dekripsi hanya bisa dilakukan dengan menggunakan kunci ini. Setiap adegan enkripsi yang akan dilakukan memiliki kuncinya masing-masing yang digunakan untuk proses enkripsi dan dekripsi. Mekanismenya akan dilampirkan pada gambar 2.1 berikut ini kunci Pesan awal
kunci Chiper teks
Enkripsi
Pesan awal Dekripsi
Gambar 2.1. Proses Enkripsi-Dekripsi sederhana
15
Mekanisme kriptografi seperti ini dinamakan kriptografi berbasis kunci. Dengan
demikian kriptosistemnya akan terdiri atas algoritma dan kunci, beserta segala pesan awal (plaintext) dan teks chipernya (ciphertext). Maka akan terbentuk persamaan matematisnya yaitu, Ee(m) = c Dd(c) = m Dd(Ee(m)) = m
Dengan arti sebagai berikut : e = kunci enkripsi d = kunci dekripsi
2.3. Relasi Serta Manfaat Penggabungan Teknik Steganografi dan Kriptografi Secara umum, kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti keabsahan, integritas data, serta autentifikasi data. Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih kearah metode-metode yang digunakan. Sedangkan steganografi merupakan seni untuk menyembunyikan pesan di dalam pesan lainnya sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam pesan tersebut. Teknik ini meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia. Walaupun steganografi dapat dikatakan mempunyai hubungan yang erat dengan kriptografi, tapi metoda ini sangat berbeda dengan kriptografi. Kriptografi mengacak pesan sehingga tidak dimengerti, sedangkan steganografi menyembunyikan pesan
16
sehingga tidak terlihat. Pesan dalam cipherteks mungkin akan menimbulkan kecurigaan sedangkan pesan yang dibuat dengan steganografi tidak akan menimbulkan kecurigaan. Kedua teknik ini dapat digabungkan untuk mendapatkan metode pengiriman rahasia yang sulit dilacak. Pertama pesan dienkrip, kemudian cipherteks disembunyikan dengan cara steganografi pada media yang kelihatannya tidak mencurigakan. Cara ini sangat berguna jika digunakan pada steganografi komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Steganografi merupakan salah satu cara yang sangat efektif untuk mengurangi rasa curiga dari pihak-pihak lain (selain pengirim dan penerima yang sah). Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file. Pada steganografi, penyembunyian atau penyamaran pesan ini dibuat sedemikian rupa sehingga pihak lain tidak mengetahui bahwa ada pesan lain di dalam pesan yang dikirim. Pesan inti tersebut tetap dipertahankan, hanya dalam penyampaiannya dikaburkan atau disembunyikan dengan berbagai cara. Hanya pihak penerima yang sah saja yang dapat mengetahui pesan lain tersebut. Sedang pada kriptografi, karakter pesan diubah atau diacak menjadi bentuk lain yang tidak bermakna. Pesan yang disampaikan dalam kriptografi menjadi mencurigakan karena ketidak bermaknaannya tersebut. Sedang pesan dalam steganografi, terlihat seperti pesan biasa sehingga kecil kemungkinan untuk dicurigai. Namun demikian, bukan berarti tidak ada kekurangan pada steganografi ini. Kelemahan pada steganografi ini terjadi apabila kita mengubah format pesan yang dikirimkan, maka pesan rahasianyapun menjadi hilang. Keduanya digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.
17
2.4. Kriteria Steganografi dan Kriptografi yang baik. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: 1. Fidelity. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. 2. Robustness. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung (seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan (cropping), enkripsi, dan sebagainya). Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak. 3. Recovery. Data yang disembunyikan harus dapat diungkapkan kembali(recovery). Karena tujuan steganografi adalah data hiding, maka sewaktu waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut. 4. Security. Data rahasia harus resisten terhadap deteksi pembajakan dan juga diharapkan bisa menyulitkan dari usaha steganalisis. Ketika kerahasiaan itu ingin dibuka, dibutuhkan kunci untuk digunakan dalam proses penyisipan dan ekstraksi.
18
Adapun kriptografi sangat dibutuhkan dalam proses pengiriman pesan yang membutuhkan kerahasiaan, berikut ini akan dijelaskan secara garis besar ke dalam empat aspek tinjauan : 1. Confidentiality. Kerahasiaan adalah kebutuhan utama untuk menjaga isi informasi dari setiap pihak yang tidak berwenang untuk mengaksesnya. Dengan demikian informasi hanya akan dapat diakses oleh pihak-pihak yang berhak saja. 2. Data Integrity. Integritas data bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berwenang. Untuk menyatakan kebenaran integritas data ini harus dipastikan agar sistem informasi mampu mendeteksi terjadinya manipulasi atau perubahan data. Manipulasi data meliputi penyisipan, penghapusan, maupun penggantian data. 3. Authentication. Otentifikasi atau keaslian bertujuan untuk mengidentifikasi terhadap pengguna yang ingin mengakses sistem informasi
maupun keaslian data dari sistem
informasi itu sendiri agar pihak yang tidak berhak tidak dapat menerima atau membaca atau mengartikan pesan rahasia tersebut. Banyak cara yang dapat dilakukan untuk menjaga dan meningkatkan kerahasiaan informasi data, baik dari penjagaan secara khusus dengan menyipan data fisik di tempat rahasia hingga penggunaan algoritma matematika untuk mengubah bentuk informasi tersebut menjadi tidak terbaca.
19
4. Non-repudiation. Non-repudiation berfungsi untuk mencegah terjadinya pengingkaran terhadap aksi yang telah dilakukan baik pada saat mengirim atau pun menerima data informasi. Penerima pesan dapat membuktikan bahwa pesan dikirim oleh pegirim yang seharusnya, begitu pun sebaliknya.
2.5. Metoda Steganografi. Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file. Sebuah program steganografi dibutuhkan untuk melakukan hal-hal berikut (baik implisit melalui suatu perkiraan maupun eksplisit melalui sebuah perhitungan), menemukan kelebihan bits dalam selubung file yang dapat digunakan untuk menyelubungi pesan rahasia didalamnya, memilih beberapa diantaranya untuk digunakan dalam menyelubungi data dan penyelubungan data dalam bits dipilih sebelumnya.
Ada beberapa jenis metode Steganografi yang sudah dikenal umum, yaitu : 1. Algoritma dan Transformasi. Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation.
20
2. Redundant Pattern Encoding Redundant Pattern Encoding adalah menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan), kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar.
3. Spread Spectrum method Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak (encrypt) melalui gambar.Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key.
4. Metode FLOW (First Letter Of Words) Metode ini menyisipkan pesan kedalam huruf pertama yang ada di dalam kata. Sehingga hanya perlu membaca huruf-huruf awalnya saja dalam membaca isi pesan tersembunyi.
5. Metode White Space. Metode
whitespace
menggunakan
karakter
”spasi”
dan
”tab”
untuk
menggambarkan bit-bit pesan yang akan disembunyikan, karena ”spasi” dan ”tab” merupakan karakter yang tidak tampak pada text viewer maka pesan akan dapat tersembunyi dengan baik, dan apabila ditambahkan metode kriptografi maka pesan akan semakin aman walaupun dapat dideteksi.
21
6. Metode LSB (Least Significant Bit). Cara paling umum untuk menyembunyikan pesan adalah dengan memanfaatkan Least-Significant Bit (LSB). Walaupun banyak kekurangan pada metode ini, tetapi kemudahan implementasinya membuat metode ini tetap digunakan sampai sekarang. Jika digunakan image 24 bit color sebagai cover, sebuah bit dari masing-masing komponen Red, Green, dan Blue, dapat digunakan sehingga 3 bit dapat disimpan pada setiap piksel. Perubahan pada LSB ini akan terlalu kecil untuk terdeteksi oleh mata manusia sehingga pesan dapat disembunyikan secara efektif. Jika digunakan image 8 bit color sebagai cover, hanya 1 bit saja dari setiap piksel warna yang dapat dimodifikasi sehingga pemilihan image harus dilakukan dengan sangat hati-hati, karena perubahan LSB dapat menyebabkan terjadinya perubahan warna yang ditampilkan pada citra. Kekurangan dari metode modifikasi LSB ini adalah bahwa metode ini membutuhkan tempat penyimpanan yang relatif besar dan pesan yang ingin dimasukkan harus memiliki panjang data yang lebih sedikit daripada media penampung datanya.
7. Metode End Of File (EOF) Metode EOF (End Of File) merupakan salah satu teknik yang menyisipkan data pada akhir file dan pengembangan daripada metode LSB. Teknik ini dapat digunakan untuk menyisipkan data yang ukurannya sama dengan ukuran file sebelum disisipkan data ditambah dengan ukuran data yang disisipkan kedalam file tersebut. Dalam teknik EOF, data yang disisipkan pada akhir diberi tanda khusus sebagai pengenal start dari data tersebut dan pengenal akhir dari data tersebut, Teknik inilah yang akan digunakan penulis dalam tugas akhir ini. Dalam teknik ini,
22
data disisipkan pada akhir file dengan diberi tanda khusus sebagai pengenal start dari data tersebut dan pengenal akhir dari data tersebut. Teknik EOF tidak akan mengubah isi awal dari file yang disisipi. Sebagai contoh, jika akan menyisipkan sebuah pesan kedalam sebuah file dokumen, isi dari dokumen tersebut tidak akan berubah. Ini yang menjadi salah satu keunggulan metode EOF dibandingkan metode steganografi yang lain. Karena disisipkan pada akhir file, pesan yang disisipkan tidak akan bersinggungan dengan isi file, hal ini menyebabkan integritas data dari file yang disisipi tetap dapat terjaga. (Sukrisno, 2007). Namun, metode EOF akan mengubah besar ukuran file sesuai dengan ukuran pesan yang disisipkan kedalam file awal namun tidak mengubah citra daripada media yang dipakai sebagai tempat penyisipan pesan tersebut.
2.6 Format File Hampir semua file digital yang dapat digunakan dalam proses steganografi, tapi format yang lebih cocok adalah format file dengan tikat redudansi yang tinggi. Redudansi dapat diartikan sebagai bit dari objek yang memberikan selang yang jauh lebih besar dari yang diperlukan untuk menggunakan dan menampilkan objek. Data dengan tingkat redudansi yang sudah dikenal baik yaitu gambar dan file audio.
Gambar 2.2. Empat Kategori Utama Format File Steganografi.
23
Format yang penulis gunakan dalam pembuatan aplikasi meliputi: •
Format image: bitmap (bmp), gif, tif, jpg, png.
•
Format audio: wav, mp3, wma.
•
Format video : mpg, flv, 3gp.
Dalam pengujian data setganografi dan proses enkripsi penulis hanya akan mengambil sampel dari tiap-tiap kelompok data dan penjelasannya berikut ini: 1 Bitmap (.BMP) •
Merupakan format citra yang baku di lingkungan sistem Microsoft Windows dan IBM OS/2.
•
Kualitas BMP dianggap lebih baik dari format JPG/ JPEG dan GIF.
•
Format File Bitmap versi terbaru dari Microsoft Windows, setiap berkas/file terdiri dari : header file, header bitmap, informasi palet, dan data bitmap.
•
Data bitmap diletakkan setelah informasi palet. Penyimpanan data bitmap di dalam file berkas disusun terbalik dari bawah ke atas dalam bentuk matriks yang berukuran Height x Width.
2. Joint Photographic Experts Group (JPEG) •
Dikembangkan oleh para ahli pencitraan fotografi untuk mendapatkan citra yang berukuran rasional tapi tetap menyimpan persepsi citra yang baik.
•
Bersifat lossy dengan tingkat lossness yang dapat diatur.
24
•
Bagus untuk mengkompresi foto-foto natural tetapi kurang cocok untuk computer-generated images (CGI)
•
Banyak digunakan oleh kamera digital.Filenya disebut JFIF
•
Dalam sebuah file JPEG dapat tersimpan berbagai informasi yang masing masing diawali oleh sebuah marker untuk penanda, masing-masing berukuran 2 bytes.
3. MP3 MPEG (Moving Picture Expert Group) audio layer 3 atau yang lebih dikenal dengan MP3, adalah salah satu dari pengkodean dalam digital audio. MP3 adalah pengembangan dari teknologi sebelumya sehingga dengan ukuran yang lebih kecil dapat menghasilkan kualitas yang setara dengan kualitas CD. Spesifikasi dari layer-layer sebagai berikut: •
Layer 1: paling baik pada 384 kbit/s
•
Layer 2: paling baik pada 256...384 kbit/s, sangat baik pada 224...256 kbit/, baik pada 192...224 kbit/s
•
Layer 3: paling baik pada 224...320 kbit/s, sangat baik pada 192...224 kbit/s, baik pada 128...192 kbit/s
4. FLV (Flash Video) FLV streaming media format adalah format video baru yang dikembangkan oleh Macromedia, itu adalah solusi media streaming yang baik. Karena rasio kompresinya
25
lebih tinggi dan kecepatan download unggul, video apapun / file audio dapat dikompresi atau dikonversi ke format Flash Video, dan kemudian FLV bisa dimainkan di website.
2.7. Kriptoanalisis dan Setegaanalisis. 2.7.1. Steganalisis Steganalysis
merupakan
suatu
teknik
atau
yang
digunakan
untuk
mengungkapkan keberadaan pesan tersembunyi atau tersamar daristeganografi. Steganalysis menjadi suatu misteri tersendiri untuk dapat diketahui bagaimana teknik untuk melakukan proses dekripsi atau pemecahan atau penemuan pesan tersebut. Terdapat beberapa software yang dapat melakukan analisa adanya penggunaan teknik steganografi. Dalam praktiknya cara pemecahan teknik apa yang digunakan dalam steganalysis sendiri secara empirik berkisar diantara : •
Menganalisa dari perubahan yang dilakukan terhadap meta data file tersebut.
•
Menganalisa dari ciri-ciri file telah menggunakan software tertentu untu steganografi.
•
Membandingkan file asli, lalu dicari perbedaannya dan pola yang digunakan sehingga dengan cara ini bukan saja dapat diketahui file telah mengalami psoses steganografi dapat pula diketahui pesan yang disembunyikan.
Tetapi teknik steganalysis tidak dapat digunakan untuk mengetahui pesan yang disembunyikan bila ternyata pesan tersebut mengalami kriptografi atau pengkodean pesan lagi. Jadi cara yang baik untuk melakukan steganografi adalah dengan melakukan asumsi bahwa orang akan tahu bahwa ada pesan yang disembunyikan sehingga
26
dilakukan pengamanan lagi dengan kriptografi. Gunakan teknik kriptografi yang sudah teruji, apanila perlu dapat digunakan teknik enkripsi bertingkat. Penggunaan steganografi khususnya digital watermarking biasanya digunakan untuk menyimpan informasi yang rahasia. Karena ukuran pesan yang dapat disimpan menggunakan digital watermarking relatif kecil, maka informasi yang disimpan juga sesuatu yang rahasia namun dalam ukuran kecil. Contoh penggunaannya adalah untuk nomor PIN, nomor rekening, nomor kunci publik, dan sebagainya. Selain itu penggunaan steganografi juga dapat digunakan untuk untuk memberikan tanda copyright terhadap file gambar, audio (seperti mp3), dan video. Dalam sudut pandang yang lebih negatif lagi kita bisa memandang steganografi sebagai teknologi yang berdampak buruk bagi kehidupan masyarakat. Steganografi tenyata digunakan juga untuk melakukan tindakan kriminal. Terdapat dugaan juga bahwa steganografi digunakan oleh para teroris untuk menjalankan aksinya. Dengan steganografi, peta, sasaran , dan rencana tindakan teroris disamarkan dalam situs-situs jejaring sosial atau pada situs-situs jaringan internet lainnya. Maka dari itu kelebihan dari steganografi sangat disayangkan bila dipakai untuk tujuan kejahatan. Tindakan kejahatan lainnya yang mungkin difasilitasi oleh steganografi yaitu untuk perjudian, penipuan, virus, dan lain-lain.
2.7.2. Kriptografi. Keamanan suatu sistem kriptografi merupakan masalah yang paling fundamental. Dengan menggunakan sistem standar terbuka, maka keamanan suatu sistem kriptografi akan lebih mudah dan lebih cepat dianalisa. Mengingat kenyataan inilah maka sekarang tidak digunakan lagi algoritma rahasia yang tidak diketahui tingkat keamanannya.
27
Sebuah sistem kriptografi dirancang untuk menjaga pesan awal dari kemungkinan dibaca oleh pihak-pihak yang tidak berwenang, yang secara umum dinamakan sebagai penyerang (attacker). Tipe serangan paling umum terhadap suatu sistem kriptografi adalah serangan kriptanalisis (cryptanalysis attack). Secara umum kriptanalisis dapat didefinisikan sebagai sebuah studi mengenai
cipher, ciphertext atau cyrptosystems yang bertujuan menemukan kelemahan dalam sistem penyandian, sehingga dimungkinkan untuk memperoleh pesan awal dari teks cipher yang ada, tanpa perlu mengetahui kunci ataupun algoritma pembangun teks cipher tersebut. Sebuah algoritma kriptografi dapat dikatakan aman bila ia memenuhi syarat berikut: 1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analisis. 2. Biaya untuk memecahkan cipherteks melampaui nilai informasi yang terkandung di dalam teks cipher tersebut. 3. Waktu yang diperlukan untuk memecahkan teks cipher melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.
2.8. Proses Perancangan Software Model Incremental diperkenalkan oleh Mills. Model ini sering digunakan dalam rekayasa perangkat lunak, menerapkan rekayasa perangkat lunak perbagian, hingga menghasilkan perangkat lunak yang lengkap. Proses membangun berhenti jika produk telah mencapai seluruh fungsi yang diharapkan. Pada awal tahapan dilakukan penentuan
28
kebutuhan dan spesifikasi. Kemudian dilakukan perancangan arsitektur software yang terbuka, agar dapat diterapkan pembangunan per-bagian pada tahapan selanjutnya. Tahapan Incremental Model adalah : 1.
Requirement
2.
Specification
3.
Architecture Design Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah
selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap modal. Produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai program yang sempurna dihasilkan. Alasan mengapa menggunakan incremental model dalam pembuatan aplikasi ini : •
Model ini cocok jika jumlah anggota tim pengembang/pembangun perangkat lunak tidak cukup.
•
Mampu mengakomodasi perubahan secara fleksibel.
•
Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk yang sudah bisa berfungsi dengan spesifikasi dasar.
29
•
Cocok untuk proyek aplikasi berukuran kecil (tidak lebih dari 200.000 baris coding)
Gambar 2.3. Proses Incremetal Model.
2.9. Bahasa Pemrograman Java Java adalah suatu teknologi di dunia software komputer. Selain merupakan suatu bahasa pemrograman, Java juga merupakan suatu platform. Sebagai bahasa pemrograman, Java adalah salah satu bahasa pemrograman berorientasi objek (OOP – Object Oriented Programming). Paradigma OOP menyelesaikan masalah dengan merepresentasikan masalah ke model objek. Karakterisitik OOP di antaranya adalah Enkapsulation, Inheritance dan Polimorfism. Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut : 1. Simple
30
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection. 2. Object Oriented Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objekobjek tersebut. 3. Distributed Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java. 4. Interpreted Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda. 5. Robust Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.
31
6. Secure Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut. 7. Architecture Neutral Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual Machine. 8. Portable Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang. 9. Performance Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan J.E.N.I. Pengenalan Pemrograman Inprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT). 10. Multithreaded Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan. 11. Dynamic
32
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut. Tabel 2.1. Keunggulan Java dibanding dengan bahasa pemograman lainnya.
Keuntungan menggunakan Java sebagai bahasa pemrograman dalam pembuatan aplikasi ini adalah karena Java itu sendiri sederhana dan termasuk ke dalam bahasa tingkat tinggi yang berorientasi objek dan Java bersifat tidak bergantung pada platform, artinya, java dapat dijalankan pada sembarang hardware maupun sistem operasi yang diterapkan didalamnya. Java ini mendukung fungsi-fungsi algoritma dan GUI (Graphic User Interface), sehingga pada pengaplikasiannya hanya tinggal memanggil fungsi yang telah ada. Java telah mengakomodasi hampir seluruh fitur penting bahasa – bahasa pemrograman yang ada semenjak perkembangan komputasi modern manusia : •
Dari SIMULA, bahasa pada tahun 65-an, bahasa yang paling mempengaruhi Java sekaligus C++. Dari bahasa ini diadopsi bentukan – bentukan dasar dari pemrograman berorientasi objek.
33
•
Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection, serta kemampuan untuk meniru generic list processing, meski fasilitas ini jarang yang memanfaatkannya.
•
Dari Algol – bahasa pada tahun 60-an, diambil struktur kendali yang dimilikinya.
•
Dari C++, diadopsi sintaks, sebagian semantiks dan exception handling
•
Dari bahasa Ada, diambil strongly type, dan exception handling.
•
Dari Objective C, diambil fasilitas interface.
•
Dari bahasa SmallTalk, diambil pendekatan single-root class hiérarchie, dimana objek adalah satu kesatuan hirarki pewarisan
•
Dari bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK 1.4.