BAB II TINJAUAN PUSTAKA II.1. Defenisi Citra Menurut (T. Sutoyo, dkk; 2009 : 8), Citra adalah suatu representasi (gambaran), atau imitasu dari suatu objek. Citra sebagai keluaran suatu sistem perekam data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi. Citra analog tidak dapat direpresentasikan dalam komputer sehingga tidak bisa diproses di komputer secara langsung. Oleh sebab itu, agar citra ini dapat diproses di komputer, proses konversi analog ke digital harus dilakukan terlebih dahulu. Citra digital adalah citra yang dapat diolah oleh komputer. Monitor akan menampilkan sebuah kotak kecil. Namun, yang disimpan dalam memori komputer hanyalah angka-angka yang menunjukkan besar intensitas pada masingmasing piksel rambut. Proses mengubah citra analog menjadi citra digital disebut digitalisasi citra. Ada dua hal yang harus dilakukan pada digitalisasi citra, yaitu digitalisasi spasial atau sampling dan digitalisasi intensitas atau kuantisasi. Kita tahu bahwa citra yang dihasilkan dari peralatan digital (citra digital) langsung bisa diproses oleh komputer. Mengapa peralatan digital bisa 8
9 menghasilkan citra digital? Sebenarnya didalam peralatan digital sudah terdapat sistem sampling dan kuantisasi. Sedangkan peralatan analog tidak dilengkapi kedua sistem tersebut. Kedua sistem inilah yang bertugas memotong-motong citra menjadi x kolom dan y baris (proses sampling), sekaligus menentukan besar intensitas yang terdapat pada titik tersebut (proses kuantisasi) sehingga menghasilkan resolusi citra yang diinginkan. (T. Sutoyo, dkk; 2009 : 12-13) Ada banyak cara untuk menyimpan citra digital di dalam memori. Cara penyimpanan menentukan jenis citra digital yang terbentuk. Beberapa jenis citra digital yang sering digunakan adalah citra biner, grayscale, dan citra warna. Setiap piksel pada citra warna memiliki warna yang merupakan kombinasi dari tiga warna dasar (RGB = Red Green Blue). Terdapat dua jenis format file citra yang sering digunakan dalam pengolahan citra, yaitu citra Bitmap dan citra Vektor. Citra bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per piksel) dengan format seperti, BMP, GIFF, TIF, WPG, IMG. Sedangkan citra vektor dihasilkan dari perhitungan matematis dan tidak berdasarkan piksel. Yang termasuk dalam format citra vektor adalah DWG, DXF, DGN, dan SVG. II.2. Steganografi II.2.1. Latar Belakang Steganografi Herodatus adalah seorang sejarawan Yunani pertama yang menulis tentang steganografi, yaitu ketika seorang raja kejam Yunani bernama Histaeus dipenjarakan oleh Raja Darius di Susa pada abad ke- 5 sebelum masehi. Histaeus
10 harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus. Ia menulis pesan dengan cara mentato pesan pada kulit kepala seorang budak. Ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristagoras. Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini kali petama 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 di atas nyala lilin. Tinta yang sebelumnya tidak terlihat, ketika terkena dengan air panas, akan berangsur-angsur menjadi gelap sehingga pesan dapat dibaca. (T. Sutoyo, dkk; 2009 : 243) II.2.2. Defenisi Steganografi Steganografi merupakan seni untuk menyembunyikan pesan di dalam media digital sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu pesan di dalam media tersebut. Kata steganografi (steganography) berasal dari bahasa Yunani strganos yang artinya tersembunyi/terselubung dan graphein menulis sehingga kurang lebih artinya menulis (tulisan) terselubung. (T. Sutoyo, dkk; 2009; 244) Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia, saat enkripsi tidak dapat dilakukan atau bersamaan dengan enkripsi. Steganografi membutuhkan dua properti, yaitu wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, audio,
11 teks, dan video. Data rahasia yang disembunyikan juga dapat berupa citra, audio, teks, atau video. Berikut merupakan proses penyimpanan atau penyisipan pesan ke dalam media digital dengan teknik steganografi : Wadah Penampung Data Rahasia + = = STEGO Gambar II.1 Proses penyimpanan data rahasia ke dalam media digital dengan Teknik Steganografi ( Sumber : T. Sutoyo, dkk ; 2009 : 245 ) Steganografi merupakan salah satu cara untuk menyembunyikan pesan/data. Walaupun steganografi dapat dikatakan mempunyai hubungan yang erat dengan kriptografi, tetapi metode ini sangat berbeda dengan kriptografi. Kriptografi mengacak pesan sehingga tidak dimengerti, sedangkan steganografi menyembunyikan pesan sehingga tidak terlihat. Pesan dalam cipherteks mungkin akan menimbulkan kecurigaan sedangkan pesan yang dibuat steganografi tidak akan. Steganografi merupakan satu metode yang popular, dimana sesuatu pesan boleh dirahasiakan di dalam file-file lain yang megandung teks, gambar, bahkan suara tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. (Sulindawaty ; 2011 : 156)
12 Key Key Image emb Steganography Image ^ emb ^ Sender emb : Pesan sebelum melalui proses stego Recipient emb ^ : Pesan setelah melalui proses stego Gambar II.2 Diagram Proses Steganografi (Sumber : Sulindawaty ; 2011 : 159) Gambar II.2 merupakan sebuah perangkat lunak steganografi umum dimana di bagian pengirim pesan (sender), dilakukan poses embedding (FE) pesan yang hendak dikirim secara rahasia (emb) ke dalam citra digital sebagai tempat menyimpannya (file image), dengan menggunakan kunci tertentu (key), sehingga dihasilkan data dengan pesan tersembunyi didalamnya (stego). (Sulindawaty ; 2011 : 159) II.2.3. Metode Least Significant Bit (LSB) Teknik steganografi dengan menggunakan metode modifikasi Least Significant Bit (LSB) adalah teknik yang paling sederhana, pendekatan yang sederhana untuk menyisipkan informasi di dalam suatu citra digital (medium cover). (Tri Cahyadi ; 2012 : 283-284) Metode ini menggunakan citra digital sebagai convertext. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB) dan bit yang kurang berarti (Least Significant Bit atau LSB).
13 Teknik LSB yaitu menggantikan bit terakhir pada gambar dengan bit yang akan disembunyikan (pesan). Misalkan bit pada gambar dengan ukuran 3 pixel, sebagai berikut : (00111111 11101001 11001000) (00111111 11001000 11101001) (11000000 00100111 11101001) Pesan yang akan disisipkan adalah karakter A yang memiliki biner 10000001, stego image yang akan dihasilkan adalah: (00111111 11101000 11001000) (00111110 11001000 11101000) (11000000 00100111 11101001) Ada dua teknik yang dapat digunakan pada LSB, yaitu penyisipan secara sekuensial dan secara acak. Penyisipan sekuensial dilakukan berurutan, sedangkan penyisipan acak dilakukan dengan memasukkan kata kunci (stego key). (Wawan Setiawan, dkk ; 2012 : 129-140) Untuk menyembunyikan suatu gambar dalam LSB pada setiap byte dari gambar 24-bit, dapat disimpan 3 byte dalam setiap pixel. Gambar 1,024 x 768 mempunyai potensi untuk disembunyikan seluruhnya dari 2,359,396 bit (294,912 byte) pada informasi. Jika pesan tersebut dikompres untuk disembunyikan sebelum ditempelkan, dapat menyembunyikan sejumlah besar dari informasi. Pada pandangan mata manusia, hasil stego-image akan terlihat sama dengan gambar cover. (Tri Cahyadi; 2012 : 284)
14 II.3 File Pembawa (Bitmap Images) File pembawa adalah yang digunakan oleh file stegano untuk menyembunyikan data yang dalam hal lain ini adalah plain text adalah file Bitmap. Yang paling penting dari kriteria ini adalah kedalaman warna (berapa banyak bit per pixel yang didefenisikan dari sebuah warna) sebagai berikut : 4 bit = 16 warna (16 grayscales) 8 bit = 256 warna (256 grayscales) 24 bit = 16.777.216 warna Secara umum semakin banyak warna, maka akan diperlakukan keamanan yang ketat atau tinggi dikarenakan bitmap memiliki area yang sangat luas dalam sebuah warna yang seharusnya dihindarkan. Dilihat dari kedalaman atau kejelasan dari sebuah warna, bitmap dapat mengambil sejumlah data tersembunyi dengan perbandingan sebagai berikut (ukuran ratio dari bitmap dalam byte = ukuran dari data yang disembunyikan) : 4 bit = 16 warna : 4 : 1 8 bit = 256 warna : 8 : 1 24 bit 16.777.216 warna : 8 : 1 Manipulasi pada bitmap tidak dapat dikonvert atau diubah ke dalam bentuk format grafik yang lain karena data tersembunyi dalm file tersebut akan hilang. Format menggunakan metode komperesi yang lain (seperti JPEG) tidak dapat digunakan. (Sulindawaty ; 2011 : 157)
15 II.4. Kriptografi Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. (Dony Arius ; 2008 ; 13) Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun lalu, diperkenalkan oeh orang-orang Mesir lewat hieroglyph. Jenis tulisan ini bukanlah standar untuk mrnulis pesan. Dikisahkan, pada Zaman Romawi Kuno, pada saat Julius Caesar ingin mengirimkan pesan rahasia kepada seorang Jenderal di medan perang. Pesan tersebut dikirimkan melalui seorang kurir. Karena pesan tersebut mengandung rahasia, JC tidak ingin pesan rahasia tersebut sampai terbuka di jalan. Yang dilakukan oleh Julius Caesar adalah mengganti semua susunan alphabet dari a, b,c yaitu a menjadi b, d menjadi e, c menjadi f dan seterusnya. Algoritma kriptografi terdiri dari 3 fungsi dasar, yaitu : 1. Enkripsi Merupakan hal yang sangat penting dalam kriptografi. Merupakan pengamanan data yang harus dikirmkan agar terjaga kerahasiaannya. Pesan asli di sebut plaintext, yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan dengan cipher atau kode. Dengan enkripsi, untuk mengubah teks-asli ke dalam teks-kode harus menggunakan algoritma yang dapat mengkodekan data tersebut.
16 2. Dekripsi Merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks-asli), disebut dengan dekripsi pesan. 3. Kunci Yang dimaksud adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian, yaitu kunci rahasia (private key) dan kunci umum (public key). (Dony Ariyus ; 2009 : 43) Keamanan dari algoritma kriptografi tergantung pada bagaimana algoritma itu bekerja. Kunci memiliku fungsi yang sama dengan password. Jika keseluruhan dari keamanan algoritma tergantung pada kunci yang dipakai maka algoritma ini bisa dipublikasikan dan dianalisis oleh orang lain. Jika algoritma yang telah dipublikasikan dapat dipecahkan oleh orang lain, berarti algoritma tersebut tidaklah aman untuk digunakan. II.4.1. Kriptografi Klasik Kriptografi klasik merupakan suatu algoritma yang menggunakan satu kunci untuk mengamankan data. Teknik ini sudah digunakan beberapa abad yang lalu. Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah sebagai berikut :
17 1. Teknik Subsitusi Subsitusi merupakan penggantian setiap karakter teks-asli dengan karakter lain. Terdapat 4 istilah subsitusi kode, yaitu : a. Monoalphabet, setiap karakter teks-kode menggantikan salah satu karakter teks-asli. b. Polyalphabet, setiap karakter teks-kode dapat menggantikan lebih dari satu macam karakter teks-asli. c. Monograf, satu enkripsi dilakukan terhadap satu karakter teks-asli. d. Polygraph, satu enkripsi dilakukan terhadap lebih dari satu karakter teks-asli. Beberapa algoritma yang termasuk dalam teknik subsitusi adalah Algoritma Caesar Cipher, Shift Cipher, Playfair Cipher, Hill Cipher, dan Vigenere Cipher. 2. Teknik Transposisi Teknik ini menggunakan permutasi karakter, yang mana dengan menggunkan teknik ini pesan yang asli tidak dapat dibaca kecuali oleh orang yang memiliki kunci untuk mengembalikan pesan tersebut ke bentuk semula. II.4.2. Kriptografi Modern Kriptografi modern mempunyai kerumitan yang sangat kompleks karena dioperasikan menggunakan komputer. (Dony Ariyus ; 2009 : 28)
18 Kriptografi modern merupakan suatu perbaikan yang menngacu pada kriptografi klasik. Pada kriptografi modern terdapat berbagai macam algoritma yang dimaksudkan untuk mengamankan informasi yang dikirim melalui jaringan komputer. Algoritma kriptografi modern terdiri dari dua bagian, yaitu : 1. Algoritma Simetris Algoritma simetris adalah algoritma yang menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma, seperti Data Encryption Standard (DES), Advance Encryption Standard (AES), IDEA, A5, RC4. 2. Algoritma Asimetris Algoritma asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci publik (public key) dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini adalah kunci rahasia, untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA. (Dony Ariyus ; 2009 : 108 109)
19 II.5. Algoritma Vigenere Cipher Vigenere cipher dibuat oleh Blaise de Vigenere pada abad ke 16, yang merupakan metode menyandikan teks alfabet dengan menggunakan deretan sandi Caesar berdasarkan deretan huruf-huruf pada kata kunci. Kunci pada kriptografi vigenere adalah sebuah kata bukan huruf. Kata kunci ini akan dibuat berulang sepanjang plaintext, sehingga jumlah huruf pada kunci akan sama dengan jumlah huruf pada plaintext. Pergeseran setiap huruf pada plaintext akan ditentukan oleh huruf pada kunci yang mempunyai posisi yang sama dengan huruf pada plaintext. Gambar II.3 Bujur Sangkar Vigenere Cipher (Sumber : Tri Cahyadi ; 2012 : 285)
20 Algoritma Enkripsi Vigenere Cipher : Ci = (Pi + Ki) mod 26 Algoritma Dekripsi Vigenere Cipher : Pi = (Ci Ki) mod 26 Keterangan : Ci Pi Ki = Nilai desimal karakter Ciphertext ke i = Nilai desimal karakter Plaintext ke i = Nilai desimal karakter kunci ke i Sebagai contoh, jika plaintext adalah THEBEAUTYANDTHEBEAST dan kunci adalah ABC maka proses enkripsi yang terjadi adalah sebagai berikut : Plaintext T H E B E A U T Y A N D T H E B E A S T Kunci A B C A B C A B C A B C A B C A B C A B Ciphertext T I G B F C U U A A O F T I G B F C S U Kunci ABC diulang sedemikian rupa hingga panjang kuni sama dengan panjang plainteksnya. Kemudian proses enkripsi dilakukan dengan melakukan pergeseran setiap huruf pada plainteks sesuai dengan huruf kunci yang bersesuaian dengan huruf plainteks tersebut. Plainteks huruf pertama adalah T akan dilakukan pergeseran huruf dengan kunci Ki = 0 (kunci huruf pertama adalah A yang memiliki Ki = 0) menjadi T.
21 Huruf kedua pada plainteks adalah H akan dilakukan pergeseran dengan kunci Ki = 1 (kunci huruf kedua adalah B yang memiliki Ki = 1) menjadi I. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada tiap huruf hingga semua plainteks telah terenkripsi menjadi cipherteks. (Tri Cahyadi ; 2012 : 285) II.6. Visual Studio Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya dalam bentuk aplikasi console, aplikasi windows, ataupun aplikasi web. Visual studio mencakup kompiler, SDK, Integrated Development Environment (IDE) dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket visual studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic.NET, Visual InterDev, Visual J++, Visual J#, Visual FocPro, dan Visual SourceSafe. (Erick Kurniawan ; 2011 : 9) Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas.net Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows mobile (yang berjalan di atas.net Framework). (https://id.wikipedia.org/wiki/microsoft_visual_studio)