BAB II LANDASAN TEORI 2.1
Definisi Kriptografi Kata kriptografi berasal dari bahasa Yunani yang terdiri dari dua buah kata
yaitu crypto dan graphia. Kata crypto berarti secret (rahasia) sedangkan graphia berarti writing (tulisan).Berarti secara umum makna dari kata kriptografi adalah tulisan rahasia. Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana cara menyembunyikan pesan. Kriptografi merupakan ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi otentitas (Sadikin, 2012) Secara umum, kriptografi merupakan teknik pengamanan informasi yang dilakukan dengan cara mengolah informasi awal (plaintext) dengan suatu kunci tertentu menggunakan suatu metode enkripsi tertentu sehingga menghasilkan suatu informasi baru (ciphertext) yang tidak dapat dibaca secara langsung. Ciphertext tersebut dapat dikembalikan menjadi informasi awal (plaintext) melalui proses dekripsi. Urutan proses kriptografi secara umum dapat dilihat pada Gambar 2.1.
Gambar 2.1 Proses Kriptografi Secara Umum
6
http://digilib.mercubuana.ac.id/
7
2.2
Sejarah Kriptografi Kriptografi mempunyai sejarah yang panjang dan menakjubkan.Informasi
yang lengkap mengenai sejarah kriptografi dapat ditemukan didalam buku David Khan yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi, mulai dari penggunaan kritografi oleh bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph pada Piramid) hingga penggunaan abad ke-20. Sebagian besar sejarah kriptografi bagian dari kriptografi klasik, yaitu metode kriptografi yang menggunakan kertas dan pensil atau menggunakan alat bantu mekanik yang sederhana. Kriptografi klasik secara umum dapat dikelompokan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma subtitusi (substitution cipher). Algoritma transposisi adalah algoritma yang mengubah susunan-susunan huruf didalam pesan, sedangkan algoritma subtitusi yaitu mengganti setiap huruf atau kelompok huruf dengan sebuah huruf.-huruf lain. Penggunaan transposition cipher yaitu oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan apa yang dinamakan scytale (Gambar 2.2). Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter dari silinder merupakan kunci dari penyandian tersebut).Pesan ditulis baris per baris dan secara horizontal. Apabila pitadilepas, maka setiap huruf akan tersusun secara acak membentuk pesan rahasia (pesan yang tidak dapat dibaca). Agar pesan tersebut dapat dibaca, maka pesan tersebut kembali dililitkan kesilinder yang diameternya sama dengan diameter silinder pengirim (Subagja, 2015).
Gambar 2.2 Scytale
http://digilib.mercubuana.ac.id/
8
Contoh penggunaan substitution cipher adalah pada Zaman Romawi kuno, disaat Julius Caesar ingin mengirimkan sebuah pesan rahasia kepada seorang jendral di medan perang. Pesan tersebut akan dikirimkan melalui seorang kurir. Karena tingkat kerahasiaan pesan yang tinggi, maka Julius Caesar tidak mau mengambil resiko jika pesan tersebut sampai ketangan musuh. Maka Caesar mensubtitusi pesan tersebut dengan cara mengganti huruf-huruf alphabet a menjadi d, b menjadi e, c menjadi f, dan seterusnya. Sebelumnya kunci dari pesan tersebut telah diberitahukan oleh Julius Caesar kepada jendral yang akan menerima pesan tersebut. Dengan demikian, walaupun pesan tersebut jatuh ke pihak musuh, maka musuh tersebut tidak akan dapat membaca pesan tersebut. Pada abad ke-15, ditemukan kode roda (wheel cipher) oleh Leo Battista Alberti.Kode ini terus dikembangkan menjadi alat enkripsi dan dekripsi hingga saat ini. Metode ini dikembangkan pada awalnya oleh Thomas Jefferson yang kemudian diberi nama roda kode Jefferson. Kemudian kode ini dikembangkan lagi oleh Bazeries yang diberi nama silinder Bazeries. Alat ini lebih fleksibel, memungkinkan untuk dikembangkan secara terus menerus untuk menghindar kode breaking. Meskipun demikian metode ini dapat dipecahkan oleh De Viaris pada tahun 1892. Meskipun demikian metode ini tetap terus dikembangkan dan dianggap aman untuk kasus-kasus tertentu. Pada abad ke-20, kriptografi lebih banyak digunakan oleh kalangan militer.Pada perang dunia ke II, pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan enigma. Mesin ini menggunakan beberapa buah rotor (roda berputar), dan melakukan proses enkripsi yang sangat rumit. Jerman percaya akan dikirim melalui enigma tidak akan terpecahkan kode enkripsinya. Tetapi anggapan Jerman tersebut salah, setelah mempelajari mesin enigma bertahuntahun, sekutu berhasil memecahkan kode-kode tersebut. Setelah Jerman mengetahui kode-kode mereka telah terpecahkan, kemudian enigma mengalami beberapa kali perubahan. Enigma yang digunakan Jerman bisa mengenkripsi satu pesan dengan 15 milyar kemungkinan. Enigma termasuk kriptografi berbasis rotor. Mesin berbasis rotor ini dibangun dan dipatenkan oleh beberapa orang penemu dari negara-negara yang berbeda dari tahun 1917 sampai 1921, diantaranya oleh warga Amerika
http://digilib.mercubuana.ac.id/
9
Edwad Hug Habern, warga Jerman Arthur Scherbuis, warga Belanda Alexsander Koch, dan warga Swedia Arvid Gerhard Damm. Milik Koch dikembangkan oleh Arthur Scherbuis yang dipatenkan diberi nama enigma.Angkatan laut jerman memperkenalkan mesin kode Scherbius.Tahun 1930,enigma untuk versi militer dibangun. Diperkirakan mesinenigma yang digunakan pada tahun 1935 sampai 1945 adalah 100.000 mesin. Mesin enigma pada Gambar 2.3.
Gambar 2.3 Mesin Enigma Perkembangan
peralatan
computer
digital
memicu
terbentuknya
kriptografi modern. Dengan computer digital, akan sangat mungkin untuk menghasilkan cipher yang lebih kompleks dan rumit. Kriptografi klasik pada umumnya dienkripsi karakter per karakter (menggunakan alphabet tradisional), sedangkan kriptografi modern beroperasi pada string biner cipher yang lebih kompleks. Adapun tujuan kriptografi adalah sebagai berikut(Munir, 2006): 1.
Confidentiality (Kerahasiaan) Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca.
2.
Authentiation (Otentikasi) Adalah
layanan
yang
berhubungan
dengan
identifikasi,
baik
mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
http://digilib.mercubuana.ac.id/
10
authentication atau entity authentication). Maupun mengidentifikasi kebenaran sumber pesan. 3.
Data Integrity (Integritas Data) Adalah layanan yang menjamin bahwa pesan masih asli atau belum pernah dimanipulasi selama pengiriman.
4.
Non - repudiation (Tanpa Penyangkalan) Adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan yaitu pengiriman atau penerima pesan menyangkal telah menerima pesan.
2.3
Algoritma Kriptografi Algoritma dalam kriptografi merupakan sekumpulan aturan (fungsi
matematis yang digunakan) untuk proses enkripsi dan proses dekripsi. Dalam beberapa metode kriptografi terdapat perbedaan antara fungsi enkripsi dan fungsi dekripsi. Tingkat keamanan suatu algoritma dalam kriptografi seringkali diukur dari kuantitas proses yang dilakukan dalam suatu fungsi, baik itu fungsi enkripsi maupun fungsi dekripsi. Proses tersebut juga dapat dihubungkan dengan sumber data yang dibutuhkan, menunjukkan semakin kuat algoritma kriptografi tersebut. Pada kriptografi klasik, keamanan kriptografi terletak pada kerahasiaan algoritma kriptografinya. Salah satu contohnya adalah mesin enigma yang dikeluarkan oleh pemerintah Jerman pada masa perang dunia ke-2. Namun, hal ini yang menjadi titik lemah ketika algoritma bocor ke pihak yang seharusnya tidak berwenang sehingga mengharuskan untuk menyusun suatu algoritma baru tanpa ada rasa khawatir akan kebocoran informasi tersebut, sebab informasi tersebut hanya dapat didekripsikan, yaitu pihak yang memang mempunyai kunci private.
Berikut ini adalah istilah-istilah yang digunakan dalam bidang kriptografi : 1.
Plaintext adalah pesan yang hendak dikirim (berisi data asli).
2.
Ciphertext adalah pesan yang terenkripsi (tersandi) yang merupakan hasil dari enkripsi.
http://digilib.mercubuana.ac.id/
11
3.
Enkripsi adalah proses pengubahan plaintext menjadi ciphertext.
4.
Dekripsi adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal atau asli.
5.
Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi. Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi.
Enkripsi adalah proses dimana informasi atau data yang hendak dikirim diubah menjadi bentuk yang hamper tidak dikenal sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah bentuk tersamar tersebut menjadi informasi awal. 2.3.1 Algoritma Simetris Dimana kunci yang digunakan pada proses enkripsi dan dekripsi adalah kunci yang sama. Dalam kriptografi kunci simetris dapat diasumsikan bahwa si penerima dan pengirim pesan telah terlebih dahulu berbagi kunci sebelum pesan dikirimkan.Keamanan dari sistem ini terletak pada kerahasiaan kuncinya. Pada umumnya yang termasuk ke dalam kriptografi simetris ini beroperasi dalam mode blok (block cipher), yaitu setiap kali proses enkripsi atau dekripsi dilakukan terhadap satu blok data (yang berukuran tertentu), atau beroperasi dalam mode aliran (stream cipher), yaitu setiap kali enkripsi atau dekripsi dilakukan terhadap satu bit atau satu byte data. Beberapa model enkripsi dengan algoritma simetris diantaranya : Simple Subsitution Chiper, DES, Triple DES, Rivest Code 2 (RC2), Rivest Code 4 (RC4), IDEA, Skipjack, Caesar Cipher, Gost Block Cipher, Letter Map, Transposition Chiper. Blowfish, Vignerre Chiper, dan Tiny Encryptions Algorithm Proses dari skema kriptografi simetris dapat dilihat pada Gambar 2.4.
http://digilib.mercubuana.ac.id/
12
Gambar 2.4 Algoritma Simetris
Kelebihan kriptografi simetris adalah : 1.
Proses enkripsi atau dekripsi kriptografi simetris membutuhkan waktu yang singkat.
2.
Ukuran kunci simetris relative lebih pendek.
3.
Otentikasi pengiriman pesan langsung dari ciphertext yang diterima, karena kunci hanya diketahui oleh penerima dan pengirim saja. Kekurangan kriptografi simetris adalah :
1.
Kunci simetris harus dikirim melalui saluran komunikasi yang aman,dan kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci.
2.
Kunci harus sering diubah, setiap kali melaksanakan komunikasi. Apabila kunci tersebut hilang atau lupa, maka pesan tersebut tidak dapat dibuka.
2.3.2 Algoritma Asimetris Berbeda dengan kriptografi kunci simetris, kriptografi kunci public memiliki dua buah kunci yang berbeda pada proses enkripsi dan dekripsinya. Dimana kunci yang digunakan untuk proses enkripsi atau sering disebut public key dan dekripsi atau sering disebut private key menggunakan kunci yang berbeda. Entitas pengirim akan mengenkripsi dengan
menggunakan
kunci public,
sedangkan
entitas
penerima
mendekripsi menggunakan kunci private. Beberapa model enkripsi dengan
http://digilib.mercubuana.ac.id/
13
model algoritma asimetris diantaranya : Knapsack, Rivert Shamir Adelman, Different Helman, Tree Past Protocol. Skema dari kriptografi dapat dilihat pada Gambar 2.5.
Gambar 2.5 Algoritma Asimetris Kelebihan kriptografi asimetris adalah : 1.
Hanya kunci private yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan mengirim kunci private sebagaimana kunci simetri.
2.
Pasangan kunci private dan kunci public tidak perlu diubah dalam jangka waktu yang sangat lama.
3.
Dapat digunakan dalam pengaman pengiriman kunci simetris. Kelemahan kriptografi asimetris adalah :
1.
Proses enkripsi dan dekripsi umumnya lebih lambat dari algortima simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar.
2.
Ukuran ciphertext lebih besar dari plaintext.
3.
Ukuran kunci relative lebih besar daripada ukuran kunci simetris.
2.4
Tiny Encryptions Algorithm Tiny Encryptions Algorithm (TEA) merupakan suatu algoritma sandi yang
diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Algoritma ini merupakan algoritma mengenkripsi suatu blok plaintext dengan jumlah bit tertentu dan menghasilkan blok ciphertext yang dirancang untuk penggunaan memory yang semininal mungkin dengan kecepatan proses yang maksimal.
http://digilib.mercubuana.ac.id/
14
Sistem penyediaan TEA menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penamahan dan pengurangan sebagai operator public pembalik selain XOR. Proses fiestel network adalah membagi plaintext kedalam beberapa blok dan melakukan penukaran letak blok setiap round, yang akan memberikan efek konsep konfusi dan difusi. Konfusi adalah mengaburkan hubungan plaintext dan ciphertext yang menimbulkan kesulitan dalam usaha untuk mencari keteraturan plaintext dan ciphertext, sedangkan difusi adalah menyebarkan reduansi plaintext dengan menyebarkan masukan keseluruh ciphertext. Hal ini dimaksudkan untuk menciptakan pergeseran dua arah (kiri dan kekanan) menyebabkan semua bit kunci dan data bercampur secara berulang ulang.
Gambar 2.6 Satu Putaran Enkripsi Dalam Jaringan Fiestel Bilangan delta berasal dari golden number, digunakan delta = (√5-1)231. Suatu bilangan delta ganda yang berbeda digunakan dalam setiap roundnya sehingga tidak ada bit dari perkalian yang tidak berubah secara teratur. Berbeda dengan struktur fiestel yang semula hanya mengoprasikan satu sisi yaitu sebelah kanan dengan fungsi F, pada algoritma TEA kedua sisi dioprasikan dengan sebuah fungsi yang sama. Proses diawali dengan input bit plaintext sebanyak 64-bit.
http://digilib.mercubuana.ac.id/
15
Kemudian 64-bit plaintext tersebut dibagi menjadi dua bagian, yaitu sisi kiri (L0) sebanyak 32-bit dan sisi kanan (R0) sebanyak 32-bit. Setiap plaintext akan dioperasikan sendiri-sendiri. R0 (z) akan digeser kekiri sebanyak empat kali dan ditambahkan dengan kunci k(0). Sementara itu z ditambah dengan sum (delta) yang merupakan konstanta. Hasil penambahan ini di-XOR-kan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara z yang di geser kekanan sebanyak lima kali dengan kunci k(1). Hasil tersebut kemudian ditambahkan dengan L0 (y) yang akan menjadi R1. Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan. L0 (y) akan digeser kekiri sebanyak empat kali lalu ditambahkan dengan kunci k(2). Sementara itu, Y ditambah dengan sum (delta). Hasil penambahan ini di-XORkan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara Y yang digeser kekanan sebanyak lima kali dengan kunci k(3). Hasil tersebut kemudian ditambahkan dengan R0 (Z) yang akan menjadi L1. Struktur dari penyandian dengan algoritma untuk satu cycle (dua round). Berikut adalah langkah langkah penyandian dengan algoritma TEA dalam satu cycle(dua round). 1.
Pergeseran (shift) Blok plaintext pada kedua sisi yang masing masing sebanyak 32-bit akan digeser kekiri sebanyak empat(4) kali dan digeser kekanan sebanyak lima(5) kali.
2.
Penambahan Setelah digeser kekiri dan kekanan maka Y dan Z yang telah digeser akan ditambahkan dengan kunci k(0)-k(3). Sedangkan Y dan Z awal akan ditambahkan dengan sum (delta).
3.
Peng-XOR-an Setelah dioperasikan dengan penambahan pada masing masing register maka akan dilakukan peng-XOR-an dengan rumus satu round. Rumus satu round : y = y + (((z<<4)+k(0))^z + sum^((z>>5)+k(1))) .......................(1)
http://digilib.mercubuana.ac.id/
16
z = z + (((y<<4)+k(2)^y + sum^((y>>5)+k(3))) ....................... (2) dalam hal ini sum = sum + delta. Rumus (1) dan (2) merupakan hasil penyandian dalam satu cycle atau satu blok plaintext 64-bit menjadi 64-bit teks sandi adalah dengan menggabungkan y dan z. untuk penyandian pada cycle berikutnya y dan z ditukar posisinya, sehingga y1 menjadi z1 dan z1 menjadi y1 lalu dilanjutkan proses seperti langkah diatas sampai dengan 16 cycle (32 round). 4.
Key Schedule Pada algoritma TEA, key schedule-nya sangat sederhana. Yaitu kunci k(0) dan k(1) konstan digunakan untuk round ganjil dan kunci k(2) dan k(3) konstan digunakan untuk round genap .
5.
Deskripsi Dalam proses dekripsi sama halnya seperti pada proses penyandian yang berbasis feiste cipher lainnya. Yaitu pada prinsipnya adalah sama pada saat proses enkripsi. Namun hal yang berbeda adalah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Pada proses dekripsi semua round ganjil menggunakan k(1) terlebih dahulu kemudian k(0), demikian juga dengan semua round genap digunakan k(3) terlebih dahulu kemudian k(2) Rumus proses dekripsi : L0 = L0 + f ( R0 , k(1), k(0), sum ) dan R0 = R0 + f ( L0, k(3), k(2), sum )..... (3) Rumus (3) merupakan proses dekripsi semua round ganjil menggunakan k(1) terlebih dahulu kemudian k(0), demikian juga dengan semua round genap digunakan k(3) terlebih dahulu kemudian k(2) (Qamal, 2014)
2.5
Citra Digital Citra adalah representasi (gambaran) kemiripan, atau imitasi dari suatu
objek. Citra sebagai suatu sistem perekaman data dapat bersifat objek berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi,
http://digilib.mercubuana.ac.id/
17
atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. Sedangkan Digital adalah penggambaran dari suatu keadaan bilangan yang terdiri dari angka 0 dan 1 atau off dan on (bilangan biner). Sehingga Citra Digital adalah citra yang dapat diolah oleh komputer. Dalam komputer, citra disimpan sebagai suatu file dengan format tertentu. Format citra tersebut menunjukkan sebuah citra digital yang disimpan, misalnya .bmp, .gif, .img, .tif dan lain sebagainya(Sutoyo, 2009) . 2.6
Format Citra Digital Citra digital dapat disimpan dalam berbagai macam format. Beberapa
format citra digital dapat memanfaatkan metode kompresi dalam penyimpanan data citra. Kompresi yang dilakukan dapat bersifat lossy maupun lossless, bergantung kepada jenis format yang digunakan. Kompresi yang bersifat lossy menyebabkan penurunan kualitas citra, meskipun dalam beberapa kasus penurunan kualitas tersebut tidak dapat dikenali oleh mata manusia. Beberapa format citra digital yang banyak ditemui adalah BMP, JPEG, GIF, PNG, dan lainlain. 2.6.1 Bitmap Images Citra Bitmap sering juga disebut Citra Raster. Citra bitmap dipresentasikan
dalam
bentuk
matriks
atau
dipetakan
dengan
mengguanakan bilangan biner atau sistem bilangan lain. Citra bitmap mempunyai kelebihan untuk memanipulasi warna tetapi untuk mengubah objek lebih sulit. Citra bitmap diperoleh dengan scanner, camera digital, video capture, dan lain-lain(Sutoyo 2009). 2.6.2 GIF Graphic Interchange Format (GIF, dibaca jiff ,tetapi kebanyakan orang menyebutnya dengan giff ) yang dibuat oleh Compuserve pada tahun 1987 untuk menyimpan berbagai gambar dengan format bitmap menjadi sebuah file yang mudah untuk diubah pada jaringan koputer. GIF adalah file format graphic yang paling tua pada Web, dan begitu dekatnya
http://digilib.mercubuana.ac.id/
18
file format ini dengan web pad saat itu sehingga para Browser menggunakan format ini. File GIF dapat disimpan dalam dua jalan yaitu secara berurutan (Dari atas ke bawah) dan pembagian dengan baris ( 8 baris, 4 baris dan 2 baris). Pembagian baris pada gambar dengan resolusi gambar yang rendah dengan cepat dimana secara gradual datangnya untuk menjadikan lebih focus , dengan expense dari penambahan kapasitas file. Terdapat dua tipe dari GIFs, antara lain: 1.
GIF87a: support dengan interlacing dan kapasitas dari beberapa file. Teknik itu dinamakan GIF87 karena pada tahun 1987 standar ini ditemukan dan dijadikan standar.
2.
GIF89a:
adalah
kelanjutan
dari
spesifikasi
GIF87a
dan
penambahan pada transparency, pemberian tulisan dan animasi dari text dan grafik. (Tri Daryanto, 2005) 2.6.3 JPEG JPG adalah jenis data yang dikembangkan oleh Joint Photographic Experts Assemble (JPEG) yang dijadikan standar untuk para fotografer profesional. Seperti metode yang digunakan oleh format ZIP yang digunakan untuk menemukan pengulangan (redundancy) dalam data untuk kemudian dikompresi, JPG mengompresi data gambar dengan cara mengurangi bagian-bagian dari gambar untuk memblok pixel dalam gambar tersebut. Kompresi JPG mempunyai kekurangan yang bersifat permanen, namun teknologi ini hanya digunakan untuk menyimpan data yang besar di media penyimpanan yang terbatas, bukan untuk manipulasi foto. JPG sudah digunakan dan menjadi standar gambar di internet karena ia bisa dikompresi hingga ukuran kecil. Data JPG tertentu bisa dikompres dengan rasio perbandingan 2:1 sampai paling tinggi 100:1, tergantung pengaturan yang anda berikan. Sewaktu koneksi internet yang tersedia di bumi ini masih berupa koneksi dial-up, JPG adalah satu-
http://digilib.mercubuana.ac.id/
19
satunya jenis data yang bisa dikirimkan dan dilihat secara bebas. Dapat dilihat pada tabel 2.1 Tabel 2.1 Format File Citra Format
Ekstensi
Fungsi
Microsoft Windows Bitmat Format
BMP
Compuserve Graphics
GIF
Format umum untuk menyimpan citra bitmap yang dikembangkan microsoft Format umum citra yang dirancang untuk keperluan transmisi melalui modern Format kompleks dan multiguna yang dikembangkan oleh Aldus bersama mircosoft Format bitmap yang dikemangkan untuk riset digital dilingkungan GEM
interchange Format Aldus Tagged Image File Format
TIF
GEM Image Format
IMG
2.7
Steganografi 2.7.1 Definisi Steganografi Steganografi adalah ilmu menyembunyikan teks pada media lain yang telah sedemikian sehingga teks yang tersembunyi menyatu dengan media itu. Media tempat penyembunyian pesan tersembunyi dapat berupa media teks, gambar, audio atau video. Steganografi yang kuat memiliki sifat media yang telah tertanam teks tersembunyi sulit dibedakan dengan media asli namun teks tersembunyi tetap dapat diekstrasi (Sadikin, 2010)
Gambar 2.7 Proses Penyimpanan Data Rahasia kedalam Media Digital Seiring dengan perkembangan teknologi terutama teknologi komputasi, steganografi merambah juga ke media digital, walaupun steganografi dapat
dikatakan
mempunyai
hubungan
kriptografi, tetapi kedua metode ini sangat berbeda.
http://digilib.mercubuana.ac.id/
erat
dengan
20
Gambar 2.8 Perbedaan Steganography dan Cryptography 2.7.2
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 da graphein, yang artinya menulis, sehingga kurang lebih artinya adalah “menulis tulisan yang tersembunyi atau terselubung” Teknik
ini
meliputi
banyak
sekali
metoda
komunikasi
untuk
menyembunyikan pesan rahasia. Metliputi penggunaan tinta yang tidak tampak,
microdots,
pengaturan
kata,
tanda tangan digital,
jalur
tersembunyi dan komunikasi spektrum lebar. 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 kupu-kupu agar gambar - gambar peta sasaran tersebut terkamuflase. 2.7.3 Metode Steganografi Steganografi merupakan salah satu cara untuk menyembunyikan suatu pesan / data rahasia di dalam data atau pesan lain yang tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti kuncinya (Cummins 2004). Dalam bidang keamanan komputer, steganografi
http://digilib.mercubuana.ac.id/
21
digunakan untuk menyembunyikan data rahasia saat enkripsi tidak dapat dilakukan atau bersamaan dengan enkripsi. Jadi, walaupun enkripsi berhasil dipecahkan (decipher) pesan / data rahasia tetap tidak terlihat. Steganografi menyimpan pesan rahasia dalam suatu arsip yang biasanya diparameterisasi oleh suatu kunci stego. Pendeteksian atau pembacaan informasi tersembunyi tersebut bisa dilihat pada Gambar 2.9 (Ariyus 2009)
Gambar 2.9 Sistem Steganografi Keterangan : fE = fungsi steganografi “embedding” fE-1 = fungsi steganografi “extracting” cover = cover data pada emb akan di sembunyikan emb = pesan yang akan disisipakan key = parameter fE stego = cover data dengan pesan yang telah disisipkan Gambar 2.9 menunjukkan sebuah sistem steganografi umum dimana dibagian pengirim pesan (sender), dilakukkan proses embedding (Fe) pesan yang hendak dikirim secara rahasia (emb) ke dalam data cover sebagai tempat meyimpannya (cover), dengan menggunakan kunci tertentu (key), sehingga dihasilkan data dengan pesan tersembunyi di dalamnya (stego). Di bagian penerima pesan (recipient), dilakukan proses extracting (fE -1) pada stego untuk memisahkan pesan rahasia (emb) dan data penyimpan (cover) tadi dengan menggunakan kunci yang sama seperti
http://digilib.mercubuana.ac.id/
22
pada proses embedding tadi. Jadi hanya orang tahu kunci ini saja yang dapat mengekstrak pesan rahasia tadi. 2.7.4
Metode Least Significant Bit (LSB) Metode LSB merupakan metode steganografi yang paling
sederhana dan mudah diimplementasikan. Metode ini menggunakan citra digital sebagai covertext. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB) dan bit yang paling kurang berarti (least significant bit atau LSB). Sebagai contoh byte11010010, angka bit 1 (pertama, digarisbawahi) adalah bit MSB, dan angka bit 0 (terakhir, digarisbawahi) adalah bit LSB. Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya, misalkan byte tersebut menyatakan warna merah, maka perubahan satu bit LSB tidak mengubah warna merah tersebut secara berarti. Mata manusia tidak dapat membedakan perubahan kecil tersebut
Gambar 2. 10 Perbedaan MSB dan LSB Dengan mengunakan Teknik LSB, maka pesan rahasia akan disisipkan kedalam pixel-pixel dimana nilai perubahan pixelnya sangat kecil,sehingga perubahan citra tidak tertangkap oleh indra penglihatan manusia . Pada teknik ini akan dilakukan modifikasi bit-bit pada setiap byte warna pada sebuah pixel. Nilai bit pada bit-bit LSB akan diganti
http://digilib.mercubuana.ac.id/
23
dengan bit-bit pesan yang akan disisipkan.Berikut adalah gambaran cara kerja penyisipan pesan menggunakan teknik LSB: 1. Langkah pertama yaitu dengan mengakses bit-bit dari gambar. 2. Menyisipkan setiap satu bit dari text file ke setiap byte dari gambar, dimana disisipkan ke bagian ujung, sehingga perubahan gambar sangat kecil. 3. Ekstraksi pesan dari gambar, dengan cara mengambil bit terakhir dari setiap byte gambar yang telah disisipi bit-bit text file. Sebagai ilustrasi, misalkan segmen pixel - pixel citra sebelum disisipkan pesan adalah 00110011 10100010 11100010 01101111 dan misalkan pesan rahasia (yang telah dikonversi ke biner) adalah 0110. Setiap bit pesan menggantikan posisi LSB dari segmen pixel – pixel citra menjadi: 00110010 10100011 11100011 10010000 Kekurangan dari metode LSB ini adalah jika citra penampung dimanipulasi (misalnya kompresi, mengubah kontras gambar, dan sebagainya), maka bit – bit LSB dari stego – object menjadi rusak sehingga pesan tidak dapat diungkap kembali. 2.8
Microsoft 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 FoxPro, dan Visual SourceSafe
http://digilib.mercubuana.ac.id/
24
2.8.1 Bahasa Program C# Microsoft Visual C-Sharp atau yang lebih dikenal dengan Visual C# adalah sebuah bahasa yang tidak diragukan lagi dalam proses pengembangan aplikasi bebasis .NET Framework, dimana C# bebas dari masalah kompabilitas dilengkapi dengan berbagai fitur yang sebagian besar merupakan fitur baru, menarik, dan tentu saja menjanjikan. Visual C# dibuat berdasarkan pemrograman C# yang merupakan bahasa pemrograman berorientasi objek dan mempunyai banyak kesamaan dengan C++, Java, dan VB. C# pada faktanya merupakan kombinasi antara efisiensi pemrograman C++, kesederhanaan pemrograman Java, dan penyederhanaan dari pemrograman Visual Basic (Shortcourse, 2011) 2.9
Metodologi 2.9.1 Metode Pengembangan Sistem Metodologi adalah kesatuan metode-metode, prosedur-prosedur, konsep-konsep pekerjaan, aturan-aturan, postulat-postulat yang digunakan oleh suatu ilmu pengetahuan, seni atau disiplin lainnya. Metode adalah suatu cara, teknik yang sistematik untuk mengerjakan sesuatu. Metodologi Pengembangan sistem berarti metode-metode, prosedur-prosedur, konsepkonsep
pekerjaan,
aturan-aturan
dan
postulat-postulat
(kerangka
pemikiran) yang akan digunakan untuk mengembangkan suatu sistem informasi. Urut-urutan prosedur untuk pemecahan masalah dikenal dengan istilah Algoritma. 2.9.2 Metode Waterfall Metode Waterfal sering disebut juga model sekuensial linier (sequential linear) atau alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup sekuensial (Pressman ,2010 )
http://digilib.mercubuana.ac.id/
perangkat lunak secara
25
1.
Communication Langkah ini merupakan analisis terhadap kebutuhan software, dan tahap untuk mengadakan pengumpulan data dengan melakukan pertemuan dengan customer, maupun mengumpulkan data-data tambahan baik yang ada dijurnal, artikel, maupun internet
2.
Planning Proses planning merupakan lanjutan dari proses communication (analysis requirement). Tahapan ini akan menghasilkan dokumen user
requirement atau bisa dikatakan sebagai data
yang
berhubungan dengan keinginan user dalam pembuatan software, termasuk rencana yang akan dilakukan. 3.
Modeling Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkieakan sebelum di coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) procedural. Tahapan ini akan mengasilkan dokumen yang disebut software requirement
4.
Construction Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer.Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan
secara nyata dalam mengerjakan suatu
software,
artinya penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki.
http://digilib.mercubuana.ac.id/
26
5.
Deployment Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala.
Gambar 2.11 Metode Waterfall
2.10
Diagram Alir (flowchart) Diagram alir (flowchart) adalah representasi grafis dan langkah-langkah
yang harus diikuuti dalam menyelesaikan suatu permasalahan yang terdiri dari sekumpulan simbol, dimana masing-masing simbol mempresentasikan kegiata tertentu. Flowchart menolong analisis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alteratif-alternatif dalam pengoprasiaa (Amborowati, 2007) Lihat Gambar 2.11.
http://digilib.mercubuana.ac.id/
27
Gambar 2.12 Daftar Simbol Flowchart 2.11
Pengujian Pengujian elemen perangkat lunak adalah elemen kritis dari jaminan
kualitas dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean 2.11.1 Pengujian Black Box Black box testing merupakan pengujian yang memungkinkan software
engineer
mendapatkan
serangkaian
kondisi
input
yang
sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program Pengujian black-box juga merupakan pendekatan komplementer yang memungkinkan besar mampu mengungkap kelas kesalahan daripada metode white-box. Pengujian black-box berusaha menemukan kesalahan dalam kategori sebagai berikut: 1. Fungsi-fungsi yang tidak benar atau hilang. 2. Kesalahan interface. 3. Kesalahan dalam struktur data atau akses database eksternal. 4. Kesalahan kinerja. 5. Inisialisasi dan kesalahan terminasi.
http://digilib.mercubuana.ac.id/
28
http://digilib.mercubuana.ac.id/