Analisis Perbandingan Metoda Redundant Pattern Encoding Dan Discrete Cosine Transformation Sebagai Metoda Steganografi Pada Citra Digital
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
FIRMAN KURNIA PRATAMA
10108799
PROGRAM STUDI S1
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2010
(2)
(3)
(4)
By :
Firman Kurnia Pratama 10108799
Steganography is one way to hide data / secret message into a medium that does not contain anything. Steganography can be implemented on a variety of media, ie digital image, audio and video.
The method can be used on the steganography is Discrete Cosine Transformation (DCT). DCT function is a technique used to transform data from spatial domain to frequency domain by calculating the value of real constituent of the transformation. Other methods are then developed a Redundant Pattern Encoding. Methods Redundant Pattern Encoding of this insert redundancy into the information that would be hidden and then spread the message to the entire image.
These final two methods are applied to a digital image. Then the results were analyzed to compare the advantages and disadvantages of each method by comparing the size of files that can be accommodated, the size of the image before and after the inserted message and image quality before and after the inserted message.
From the test results known using steganography Discrete Cosine Transformation (DCT) methods, a media placeholder message (image carrier) can accommodate the text / message more than Redundant Pattern Encoding method, and by using DCT, the size of image files that have been inserted text / message smaller than the Redundant Pattern Encoding method. In addition the image quality is seen by calculating the value of PSNR (Peak Signal to Noise Ratio) by using Discrete Cosine Transformation (DCT) is better quality when compared with Redundant Pattern Encoding method.
Keyword: Steganography, Discrete Cosine Transformation (DCT), Redundant Pattern Encoding, Digital Image, Criptography
(5)
i
SEBAGAI METODA STEGANOGRAFI PADA CITRA DIGITAL
Oleh :
Firman Kurnia Pratama 10108799
Steganografi merupakan salah satu cara untuk menyembunyikan data/pesan rahasia kedalam suatu media yang tidak mengandung apa-apa. Steganografi dapat di implementasikan pada berbagai macam media yaitu citra digital, audio dan video.
Metoda yang dapat digunakan pada steganografi yaitu Discrete Cosine
Transformation (DCT). Fungsi DCT yaitu suatu teknik yang digunakan untuk merubah data dari domain spasial ke domain frekuensi pembentuknya dengan memperhitungkan nilai real dari hasil transformasinya. Metoda lain yang
kemudian dikembangkan adalah Redundant Pattern Encoding. Metoda Redundant
Pattern Encoding ini memasukkan redundansi ke dalam informasi yang hendak disembunyikan dan kemudian menyebarkan pesan itu ke keseluruhan gambar.
Tugas Akhir ini menerapkan kedua metoda tersebut pada citra digital. Kemudian hasilnya dianalisa untuk membandingkan kelemahan dan kelebihan masing-masing metoda dengan cara membandingkan ukuran file yang mampu ditampung, ukuran citra sebelum dan sesudah disisipi pesan dan melihat kualitas citra.
Dari hasil pengujian diketahui steganografi dengan menggunakan metoda
Discrete Cosine Transformation (DCT), media penampung pesan (carrier image)
dapat menampung teks/pesan lebih banyak dibandingkan dengan metoda
Redundant Pattern Encoding, dan dengan menggunakan metoda DCT ukuran file citra yang telah disisipi teks/pesan lebih kecil dibandingkan dengan metoda
Redundant Pattern Encoding. Selain itu kualitas citra yang dilihat berdasarkan
kalkulasi nilai PSNR(Peak Signal to Noise Ratio) dengan menggunakan metoda
Discrete Cosine Transformation (DCT) menghasilkan kualitas citra yang lebih
baik bila dibandingkan dengan metoda Redundant Pattern Encoding.
Kata Kunci : Steganografi, Discrete Cosine Transformation (DCT), Redundant Pattern Encoding, Citra Digital, Kriptografi
(6)
v
Halaman
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR TABEL ... ix
DAFTAR GAMBAR ... xi
DAFTAR PERSAMAAN... xii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Identifikasi Masalah ... 2
1.3 Maksud dan Tujuan ... 3
1.4 Batasan Masalah... 4
1.5 Metodologi Penelitian ... 4
1.6 Sistematika Penulisan ... 6
BAB II TINAJUAN PUSTAKA ... 8
2.1 Keamanan Data atau Informasi ... 8
2.2 Kriptografi ... 9
2.2.1 Algoritma Sandi ... 11
2.2.2 Algoritma RSA (Rivert Shamir Adelman) ... 14
(7)
vi
2.4 Citra Digital ... ... 27
2.4.1 Bitmap .... ... 27
2.4.2 Joint Photographic Group Experts (JPEG) ... 29
2.4.3 Graphics Interchange Format (GIF) ... 30
2.4.4 Portable Network Graphics (PNG) ... 31
2.5 Pengukuran Error Citra ... 33
2.6 .NET Platform ... ... 33
2.7. .NET Framework ... 33
2.7.1 Common Language Runtime (CLR) ... 34
2.7.2 Framework Class Library (FCL) ... 35
2.7.3 C# ... ... 35
2.8 Model Pengembangan Perangkat Lunak ... 36
2.8.1 RAD (Rapid Application Development) ... 38
2.9 Tinjauan Perangkat Lunak ... 41
2.9.1 Microsoft Windows XP ... 41
2.9.2 Microsoft Visual C# 2008 ... 42
2.9.3 Keuntungan Visual C# ... 43
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 44
3.1 Analisis Sistem ... 44
3.2 Analisis Masalah ... 44
(8)
vii
3.3 Analisis Non Fungsional ... 60
3.3.1 Analisis Kebutuhan Perangkat Lunak ... 60
3.3.1 Analisis Kebutuhan Perangkat Keras ... 61
3.4 Analisis Fungsional ... 61
3.4.1 Unified Modeling Language (UML) ... 62
3.4.1.1 Use Case Diagram ... 62
3.4.1.2 Sequence Diagram ... 64
3.4.1.3 Skenario Use Case ... 65
3.4.1.4 Activity Diagram ... 75
3.4.1.5 Class Diagram ... 78
3.5 Perancangan Prosedural ... 76
3.5.1 Flowchart Kriptografi RSA ... 79
3.5.2 Flowchart DCT (Discrete Cosine Transformation) .... 81
3.5.3 Flowchart Redundant Pattern Encoding ... 83
3.6 Perancangan Struktur Menu ... 87
3.7 Perancangan Antar Muka ... 88
3.7.1 Perancangan Form Main Menu ... 89
3.7.2 Perancangan Form DCT ... 92
3.7.3 Perancangan Form Redundant Pattern Encoding ... 97
(9)
viii
4.3 Implementasi Antar Muka ... 105
4.4 Pengujian Program ... 109
4.4.1 Pengujian Program Terhadap Ukuran Citra ... 109
4.4.2 Pengujian Program Terhadap Kualitas Citra ... 114
BAB V KESIMPULAN DAN SARAN ... 119
5.1 Kesimpulan ... 119
5.2 Saran ... 120
(10)
xi
2. Gambar 2.2 Gambar dengan 15x16 grid ... 20
3. Gambar 2.3 Tool Skema Penyisipan Pesan Spread Spectrum ... 22
4. Gambar 2.4 Skema Ekstraksi Pesan Spread Spectrum ... 22
5. Gambar 2.5 Diagram Transformasi DCT... 23
6. Gambar 2.6 Proses Penyisipan Pesan DCT... 24
7. Gambar 2.7 Proses pembacaan pesan DCT ... 25
8. Gambar 2.8 Gambar berformat BMP atau Bitmap... 28
9. Gambar 2.9 Gambar berformat JPEG ... 29
10. Gambar 2.10 Gambar berformat GIF ... 31
11. Gambar 2.11 Gambar berformat PNG ... 32
12. Gambar 2.12 Arsitektur Framework .NET ... 34
13. Gambar 2.13 Model RAD ... 39
14. Gambar 2.14 Microsoft Windows XP ... 41
15. Gambar 2.15 Microsoft Visual C# 2008 ... 42
16. Gambar 3.1 Proses Penyisipan Pesan DCT... 54
17. Gambar 3.2 Transformasi DCT ... 55
18. Gambar 3.3 Proses Pembacaan Pesan DCT ... 57
19. Gambar 3.4 Proses Penyisipan Pesan Redundant ... 58
20. Gambar 3.5 Proses Pembacaan Pesan Redundant... 59
(11)
xii
24. Gambar 3.9 Sequence Diagram Load Pesan ... 68
25. Gambar 3.10 Sequence Diagram Ketik Pesan ... 69
26. Gambar 3.11 Sequence Diagram Encrypt Message ... 70
27. Gambar 3.12 Sequence Diagram Penyisipan Pesan DCT ... 71
28. Gambar 3.13 Sequence Diagram Penyisipan Pesan Redundant ... 72
29. Gambar 3.14 Sequence Diagram Baca Pesan DCT ... 73
30. Gambar 3.15 Sequence Diagram Baca Pesan Redundant ... 74
31. Gambar 3.16 Sequence Diagram Decrypt Message ... 75
32. Gambar 3.17 Activity Diagram Pilih Metoda ... 75
33. Gambar 3.18 Activity Diagram Load Image ... 76
34. Gambar 3.19 Activity Diagram Load Pesan ... 76
35. Gambar 3.20 Activity Diagram Ketik Pesan ... 76
36. Gambar 3.21 Activity Diagram Encrypt Message ... 76
37. Gambar 3.22 Activity Diagram Penyisipan Pesan ... 77
38. Gambar 3.23 Activity Diagram Baca Pesan ... 77
39. Gambar 3.24 Activity Diagram Decrypt Message ... 77
40. Gambar 3.25 Activity Diagram Aplikasi Steganografi ... 78
41. Gambar 3.26 Class Diagram... 79
42. Gambar 3.27 Flowchart Steganografi ... 80
43. Gambar 3.28 Flowchart Enkripsi Pesan Teknik RSA ... 81
(12)
xiii
48. Gambar 3.33 Flowchart Extract Pesan Redundant Pattern Encoding ... 86
49. Gambar 3.34 Rancangan Struktur Menu ... 87
50. Gambar 3.35 Perancangan Form Main Menu ... 92
51. Gambar 3.36 Perancangan Form DCT ... 97
52. Gambar 3.37 Rancangan Tampilan Form Redundant... 102
53. Gambar 3.38 Rancangan Tampilan Form About ... 103
54. Gambar 4.1 Antarmuka Form Main Menu ... 106
55. Gambar 4.2 Antarmuka Form DCT ... 107
56. Gambar 4.3 Antarmuka Form Redundant ... 108
57. Gambar 4.4 Antarmuka Form About ... 109
58. Gambar 4.5 Grafik Pengujian Ukuran Citra Format Bitmap (BMP) ... 110
59. Gambar 4.6 Grafik Pengujian Ukuran Citra Format JPG ... 111
60. Gambar 4.7 Grafik Pengujian Ukuran Citra Format PNG ... 112
61. Gambar 4.8 Grafik Pengujian Ukuran Citra Format GIF ... 113
62. Gambar 4.9 Grafik Pengujian Kualitas Citra Format Bitmap (BMP) ... 115
63. Gambar 4.10 Grafik Pengujian Ukuran Citra Format JPG ... 116
64. Gambar 4.11 Grafik Pengujian Ukuran Citra Format PNG ... 117
(13)
xii
(14)
ix
2. Tabel 3.2 Skenario Use Case Load Image ... 66
3. Tabel 3.3 Skenario Use Case Load Pesan ... 67
4. Tabel 3.4 Skenario Use Case Ketik Pesan ... 68
5. Tabel 3.5 Skenario Use Case Encrypt Message ... 69
6. Tabel 3.6 Skenario Use Case Penyisipan Pesan ... 70
7. Tabel 3.7 Skenario Use Case Baca Pesan ... 72
8. Tabel 3.8 Skenario Use Case Decrypt Message ... 74
9. Tabel 3.9 Komponen MenuFile ... 90
10. Tabel 3.10 Komponen Label ... 90
11. Tabel 3.11 Komponen Menu Pilih Metoda ... 91
12. Tabel 3.12 Komponen Menu About ... 92
13. Tabel 3.13 Komponen Menu Strip ... 93
14. Tabel 3.14 Komponen SplitContainer ... 93
15. Tabel 3.15 Komponen Text Box ... 94
16. Tabel 3.16 Komponen Button ... 95
17. Tabel 3.17 Komponen Label ... 96
18. Tabel 3.18 Komponen Picture Box ... 96
19. Tabel 3.19 Komponen Menu Strip ... 97
20. Tabel 3.20 Komponen SplitContainer ... 98
(15)
x
24. Tabel 3.24 Komponen Picture Box ... 101
25. Tabel 3.25 Komponen Form About ... 102
26. Tabel 4.1 Spesifikasi Komputer ... 104
27. Tabel 4.2 Spesifikasi Komputer ... 105
28. Tabel 4.3 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra BMP... ... 110
29. Tabel 4.4 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra JPG... ... 111
30. Tabel 4.5 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra PNG... ... 112
31. Tabel 4.6 Pengujian Steganografi Terhadap Ukuran Citra Menggunakan Citra GIF... ... 113
32. Tabel 4.7 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra BMP... ... 114
33. Tabel 4.8 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra JPG... ... 115
34. Tabel 4.9 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra PNG... ... 116
35. Tabel 4.10 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra GIF... ... 117
(16)
1
1.1. Latar Belakang Masalah
Teknologi informasi dan komunikasi berkembang dengan pesat dan memberikan pengaruh besar terhadap kehidupan manusia. Sebagai contoh perkembangan jaringan internet yang memungkinkan orang untuk saling bertukar data/pesan melalui jaringan internet tersebut. Seiring dengan perkembangan teknologi, kejahatan teknologi komunikasi dan informasi juga turut berkembang,
seperti yang kita dengar adalah hacker, cracker, carder, phreaker dan sebagainya.
Seringkali orang yang hendak mengirim pesan kepada orang lain, tidak ingin pesannya diketahui oleh orang yang tidak berhak mengetahuinya. Dengan berkembangnya ilmu pengetahuan, terutama di bidang informatika, penerapan teknik-teknik pengamanan data yang sudah pernah dipakai jaman dahulu bisa menjadi alternatife dalam pengamanan komunikasi data melalui jaringan internet. Sebagai contoh adalah kriptografi dan steganografi.
Steganografi berbeda dengan kriptografi, kelebihan steganografi daripada kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain, karena pesan-pesan tersebut dimasukan ke sebuah media penampung, sedangkan kriptografi hanya mengenkripsi pesan tersebut yang bisa saja menimbulkan kecurigaan orang lain. Salah satu media penampung yang digunakan dalam pengiriman pesan adalah dengan menumpangkannya ke sebuah citra digital. Karena citra digital tersusun atas pixel-pixel, melalui pixel inilah suatu citra dapat
(17)
dimanipulasi untuk menyimpan informasi yang akan digunakan sebagai salah satu pengimplementasian teknik steganografi. Selain itu indera penglihatan manusia memiliki keterbatasan sehingga dengan keterbatasan tersebut manusia sulit membedakan citra digital yang asli dengan citra digital yang telah disisipi pesan rahasia. Ada banyak teknik dan metode yang digunakan dalam menumpangkan sebuah pesan kepada citra, namun yang akan dibahas oleh penulis
hanya metode Discrite Cosine Transformation (DCT) dan Redundant Pattern
Encoding, sedangkan untuk kriptografinya penulis akan menggunakan teknik
Rivert Shamir Adelman (RSA). Discrete Cosine Transformation (DCT) adalah suatu teknik yang digunakan untuk melakukan konversi sinyal kedalam komponen frekuensi pembentuknya dengan memperhitungkan nilai real dari hasil
transformasinya sedangkan Redundant Pattern Encoding adalah untuk
menggambar pesan kecil pada kebanyakan gambar.
Berdasarkan uraian latar belakang di atas penulis mempunyai suatu keinginan untuk mengetahui kelemahan dan kelebihan dari masing-masing metode yang digunakan sehingga dalam penulisan tugas akhir ini penulis
mengangkat judul “Analisis Perbandingan Metoda Redundant Pattern
Encoding dan Discrete Cosine Transformation (DCT) Sebagai Metoda Steganografi Pada Citra Digital”.
I.2. Identifikasi Masalah
Berdasarkan uraian latar belakang diatas maka dirumuskan
(18)
membandingkan metode Redundant Pattern Encoding dan Discrete Cosine Transformation (DCT) Sebagai metoda steganografi pada citra digital.
I.3. Maksud dan Tujuan
Maksud dari penulisan tugas akhir ini adalah membangun aplikasi
steganografi untuk membandingkan metoda Redundant Pattern Encoding dengan
Discrete Cosine Transformation (DCT).
Sedangkan tujuan yang ingin dicapai adalah :
1. Mengimplementasikan metoda Redundant Pattern Encoding dan
Discrete Cosine Transformation (DCT) sebagai metoda steganografi pada berkas citra digital.
2. Mengetahui kelebihan dan kelemahan dari masing-masing metoda.
3. Membandingkan ukuran file yang mampu ditampung, ukuran citra
sebelum dan sesudah disisipi pesan dan kualitas citra sebelum dan
sesudah disisipi pesan pada metoda Redundant Pattern Encoding dan
Discrete Cosine Transformation (DCT) sebagai metoda steganografi pada berkas citra digital.
4. Menghasilkan rekomendasi jenis aplikasi steganografi yang dapat
memberikan keamanan pada suatu pesan rahasia dengan
menyembunyikannya kedalam citra dalam bentuk pesan yang sudah di
enkripsi dengan menggunakan teknik kriptografi Rivert Shamir Adelman
(19)
I.4. Batasan Masalah
Batasan masalah bertujuan untuk memudahkan perancangan dan menghindari meluasnya permasalahan, maka penulis membuat batasan yaitu :
1. Media penampung pesan yang digunakan hanya berupa citra yang
memiliki format .bmp, .png, .gif, .jpg.
2. Pesan yang dapat disembunyikan hanya berupa teks ataupun
mengambil dari file teks yang berformat .txt.
3. Penulis hanya membahas mengenai pembuatan aplikasi steganografi
dengan menggunakan bahasa Visual Studio C# 2008.
4. Pengembangan perangkat lunak menggunakan metode berorientasi
objek dan pemodelannya menggunakan UML.
5. Aplikasi yang dibangun akan digunakan pada sistem operasi berbasis
windows.
I.5. Metodologi Penelitian
Metodologi yang dilakukan dalam penelitian ini adalah:
a. Tahapan Pengumpulan Data
1. Studi Kepustakaan, yaitu mempelajari literature, konsep serta
sumber-sumber dari buku-buku ataupun mengakses situs-situs yang berkaitan dengan materi yang dibahas.
2. Diskusi dan konsultasi/wawancara, yaitu metode yang dilakukan
(20)
memberikan sebuah masukan atau saran dalam pembuatan aplikasi steganografi ini.
b. Tahapan Pembangunan Aplikasi
Model yang digunakan untuk proses pembangunan aplikasi ini adalah
model waterfall.
Gambar 1.1 Metodologi Waterfall Model
Tahapan-tahapan dari model waterfall ini adalah sebagai berikut:
1. Analisis
Pada tahap ini, mengumpulkan kebutuhan secara lengkap kemudian di analisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun.
2. Design
Pada tahap desain akan dilakukan perancangan antarmuka program.
(21)
Tahap menterjemahkan perancangan kedalam bentuk bahasa yang dapat dimengerti oleh komputer.
4. Testing
Proses untuk memastikan bahwa semua pernyataan sudah diuji yang selanjutnya akan mengarahkan penguji untuk menemukan kesalahan-kesalahan yang mungkin terjadi.
5. Maintenance
Pada tahap pemeliharaan akan dilakukan penyesuaian apabila perangkat lunak mengalami perubahan seperti lingkungan eksternal yang berubah.
1.6. Sistematika Penulisan
Sistematika dari penulisan tugas akhir ini adalah sebagai berikut: BAB I PENDAHULUAN
Bab ini berisi mengenai latar belakang masalah, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Menjelaskan tentang teori-teori dasar dari program yang digunakan untuk pembuatan program aplikasi serta teori-teori lain yang mendukung dalam pembuatan program aplikasi ini.
(22)
Menjelaskan tentang analisis dari program yang dibuat, serta perancangan program yang menjelaskan rancangan program dan alur proses program. BAB IV IMPLEMENTASI SISTEM
Bab ini menjelaskan bagaimana mengimplementasikan sistem ke dalam program dan pengujian dari sistem yang telah diimplementasikan.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan hasil implementasi dan uji coba serta saran-saran pengembangan aplikasi dimasa mendatang.
(23)
8 2.1 Keamanan Data atau Informasi
Masalah keamanan data merupakan salah satu aspek terpenting pada sebuah sistem informasi. Masalah keamanan data seringkali tidak begitu dipedulikan bahkan ditiadakan. Informasi menentukan hampir setiap elemen dalam kehidupan manusia. Hanya sedikit hal yang bisa dilakukan di zaman modern tanpa melibatkan pengumpulan, penukaran, pembuatan atau pengaksesan data atau informasi. Informasi saat ini sudah menjadi sebuah komoditi yang sangat penting, bahkan ada yang mengatakan bahwa kita sudah berada disebuah
information-based society. Kemampuan untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi, baik yang berupa organisasi komersial(perusahaan), perguruan tinggi, lembaga pemerintah maupun individual(pribadi). Hal tersbut dimungkinkan dengan perkembangan yang pesat dibidang teknologi computer dan telekomunikasi, yang
juga disebut dengan end user computing. Hal yang mendorong end user
computing adalah meningkatnya pengetahuan manusia tentang computer, banyaknya jasa informasi yang tersedia, perangkat keras yang murah dan banyaknya perangkat lunak yang tersedia di pasaran.
Kemajuan sistem informasi memiliki banyak keuntungan dalam kehidupan manusia. Akan tetapi, aspek negatifnya juga banyak terjadi, seperti kejahatan komputer yang meliputi pencurian, penipuan, pemerasan dan banyak lagi yang
(24)
lainnya. Jatunya informasi ke pihak lain dapat menimbulkan kerugian bagi pemilik informasi tersebut. Untuk itu diperlukan adanya suatu cara/teknik untuk mengamankan data atau informasi. Zaman sekarang ini banyak cara/teknik untuk mengamankan informasi diantaranya kriptografi dan steganografi. Cara tersebut yang akan dibahas dalam penulisan tugas akhir ini.
2.2 Kriptografi
Kriptogafi berasal dari bahasa Yunani. Menurut bahasa tersebut kata
kriptografi dibagi menjadi dua kata, yaitu kripto dan graphia. Kripto berarti secret
(rahasia) dan graphia berarti writing (tulisan). Kriptografi adalah ilmu dan seni
untuk menjaga kerahasiaan berita. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data.
Didalam kriptografi kita akan menemukan berbagai istilah atau terminologi. Beberapa istilah yang penting untuk diketahui diantaranya :
1. Plaintext (P) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya.
2. Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
3. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
4. Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah
(25)
5. Kunci (K) adalah parameter yang digunakan untuk transformasi
enchipering dan dechipering. Kunci biasanya berupa string atau deretan bilangan.
Secara umum, kriptografi terdiri dari dua buah bagian utama yaitu bagian enkripsi dan bagian dekripsi. Enkripsi adalah proses transformasi informasi menjadi bentuk lain sehingga isi pesan yang sebenarnya tidak dapat dipahami, hal ini dimaksudkan agar informasi tetap terlindung dari pihak yang tidak berhak menerima. Sedangkan dekripsi adalah proses kebalikan enkripsi, yaitu transformasi data terenkripsi ke data bentuk semula. Proses transformasi dari plainteks menjadi cipherteks akan dikontrol oleh kunci. Peran kunci sangatlah penting, kunci bersama-sama dengan algoritma matematisnya akan memproses plainteks menjadi cipherteks dan sebaliknya. Adapun blok proses enkripsi-dekripsi secara umum dapat kita lihat pada gambar di bawah ini :
Gambar 2.1 Proses enkripsi dan dekripsi
Dengan menggunakan simbol P untuk plaintext C untuk chipertext E untuk
enkripsi D untuk dekripsi dan K untuk key, maka fungsi matematik dari enkripsi
dan dekripsi dapat dituliskan dengan persamaan sebagai berikut :
(26)
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu :
1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari
informasi dari siapapun terutama yang menjaga otoritas atau kunci rahasia untuk membuka informasi yang telah disandikan.
2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan
data secara tidak sah. Untuk menjaga integritas data system harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan dan pensubtitusian data lain kedalam data sebenarnya.
3. Autentifikasi, adalah berhubungan dengan identifikasi atau
pengenalan, baik secara kesatuan system maupun kesatuan informasi itu sendiri.
4. Non-repudiasi, adalah usaha untuk mencegah terjadinya penyangkalan
terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan atau yang membuat.
2.2.1 Algoritma Sandi
Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografi. Pada implementasinya sebuah algoritmas sandi harus memperhatikan
kualitas layanan/Quality of Service dari keseluruhan sistem dimana dia
diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri.
(27)
Teknik dan metode untuk menguji kehandalan algoritma sandi adalah kriptanalis. Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
A. Algoritma Sandi Simetris
Disebut sebagai algoritma kunci simetris, karena dalam proses enkripsi dan dekripsinya menggunakan kunci yang sama. Algoritma enkripsi dan deskripsi bisa merupakan algoritma yang sudah umum diketahui, namun kunci yang dipakai harus terjaga kerahasiaanya, dan hanya diketahui oleh pihak
pengirim dan penerima saja. Kunci ini disebut sebagai private key. Sebelum
berkomunikasi kedua pihak harus bersepakat lebih dahulu tentang kunci yang dipergunakan. Pendistribusian kunci dari satu pihak ke pihak lainnya memerlukan suatu kanal tersendiri yang terjagaan kerahasiaannya. Algoritma kunci simetris memiliki beberapa kekurangan dan kelebihan yaitu :
1. Kekurangan
a.Perlu adanya kesepakatan untuk jalur yang khusus untuk kunci, hal
ini akan menimbulkan masalah yang baru karena tidak mudah u menentukan jalur yang aman untuk kunci, masalah ini sering
disebut dengan “Key Distribution Problem”.
b.Untuk tiap pengiriman pesan dengan pengguna yang berbeda
dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
c.Apabila kunci sampai hilang atau dapat ditebak maka kriptosistem
(28)
2. Kelebihan
a.Waktu proses untuk enkripsi dan dekripsi relatif cepat, hal ini
disebabkan karena efisiensi yang terjadi pada pembangkit kunci.
b.Karena cepatnya proses enkripsi dan dekripsi, maka algoritma ini
dapat digunakan pada sistem secara real-time seperti saluran telepon digital.
Contoh kriptografi yang menggunakan algoritma kunci simetris diantaranya :
1. DES (Data Encryption Standard)
2. IDEA (International Data Encryption Algorithm)
3. Twofish 4. Rijndael
B. Algoritma Sandi Asimetris
Algoritma kunci asimetris disebut juga algoritma kunci publik. Disebut kunci publik karena kunci yang digunakan pada proses enkripsi dapat diketahui oleh orang banyak tanpa membahayakan kerahasiaan kunci dekripsi, sedangkan kunci yang digunakan untuk proses dekripsi hanya diketahui oleh pihak tertentu (penerima). Mengetahui kunci publik semata tidak cukup untuk menentukan kunci rahasia. Pasangan kunci publik dan kunci rahasia menentukan sepasang transformasi yang merupakan invers satu sama lain, namun tidak dapat diturunkan satu dari yang lain. Dalam sistem kriptografi kunci publik ini, proses enkripsi dan dekripsi menggunakan kunci yang berbeda, namun kedua kunci
(29)
tersebut memiliki hubungan matematis (karena itu disebut juga sistem asimetris). Algoritma kunci asimetris memiliki beberapa kekurangan dan kelebihan diantaranya :
1. Kekurangan
a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma
simetris.
b. Untuk tingkat keamanan sama, kunci yang digunakan lebih
panjang dibandingkan dengan algoritma simetris.
2. Kelebihan
a. Masalah keamanan pada distribusi kunci dapat diatasi.
b. Manajemen kunci pada suatu sistem informasi dengan banyak
pengguna menjadi lebih mudah, karena jumlah kunci yang digunakan lebih sedikit.
Contoh kriptografi yang menggunakan algoritma kunci asimetris diantaranya :
1. RSA (Rivert Shamir Adelman)
2. DSA (Digital Signature Algorithm)
3. DH (Diffie Hellman)
2.2.2 Algoritma RSA (Rivert Shamir Adelman)
RSA adalah salah satu contoh kriptografi yang menerapkan konsep public
(30)
Algoritma ini pertama kali dipublikasikan di tahun 1977 oleh Ron Rivest, Adi
Shamir, dan Leonard Adleman dari Massachusetts Institute of Technology (MIT).
Nama RSA sendiri adalah singkatan dari nama belakang penemu algoritmanya. Clifford Cocks, seorang matematikawan Inggris sebenarnya juga telah mengembangkan algoritma yang hampir sama dengan RSA ini pada tahun 1973. Namun algoritma buatannya tidak begitu dikenal oleh publik, dan baru dipublikasi pada tahun 1997 karena merupakan proyek rahasia.
Walau begitu algoritma yang dikembangkan Rivest, Shamir, dan Adleman tidak berhubungan dengan pekerjaan Cocks. Pada algoritma RSA terdapat 3
langkah utama yaitu key generation (pembangkitan kunci), enkripsi, dan dekripsi.
Kunci pada RSA mencakup dua buah kunci, yaitu public key dan private
key. Public key digunakan untuk melakukan enkripsi, dan dapat diketahui oleh
orang lain. Sedangkan private key tetap dirahasiakan dan digunakan untuk
melakukan dekripsi.
Dalam melakukan enkripsi dan dekripsi secara umum algoritma RSA memiliki besaran-besaran sebagai berikut :
1. p dan q, bilangan prima rahasia
2. n = p . q, tidak rahasia
3. Φ(n) = (p – 1) . (q – 1), rahasia
4. SK, kunci privat rahasia
5. PK, kunci publik tidak rahasia
(31)
Kunci publik PK dalam RSA merupakan pembangkitan bilangan secara
acak pencarian bilangan yang relatif prima terhadap Φ(n). Sedangkan kunci privat
SK dibangkitkan dengan menggunakan persamaan PK.SK = 1 (mod Φ(n)). Dalam
enkripsi biasa pesan dienkripsi dengan kunci publik baru didekripsi dengan kunci privat. Namun pada praktek tanda tangan digital digunakan sebaliknya.
2.3 Steganografi
Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak
menyembunyikan bahwa ada suatu pesan. Kata steganografi (steganography)
berasal dari bahasa Yunani yaitu steganos, yang artinya “tersembunyi atau
terselubung” dan graphein yang artinya “menulis”. Steganografi adalah seni dan
ilmu menulis atau menyembunyikan pesan dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan pesan tersebut. Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena
banyak format file digital yang dapat dijadikan media untuk
menampung/menyembunyikan pesan. Format yang biasa digunakan diantaranya:
1. Format image : bitmap (bmp), gif, jpeg.
(32)
3. Format lain : teks file, html, pdf.
Kini, istilah steganografi termasuk penyembunyian data digital dalam file-file komputer. Contohnya, si pengirim mulai dengan file-file gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika tidak benar-benar memperhatikannya).
Tujuan dari steganografi adalah menyembunyikan data/pesan pada suatu media. Media penampung data/pesan yang akan disembunyikan dapat berupa gambar digital, suara, video dan media lainnya. Jika pada media yang telah disisipi pesan rahasia tersebut terlihat mencurigakan, maka tujuan dari steganografi tersebut tidak tercapai.
Teknik steganografi sudah dikenal sejak jaman Yunani dan Romawi kuno. Misalnya dengan mencukur kepala budak, lalu pesan rahasia ditulis pada kulit kepalanya. Setelah rambut budak tersebut tumbuh, budak terebut dikirim untuk menyampaikan pesan rahasia tersebut.
Ada beberapa kriteria yang harus diperhatikan dalam penyembunyian data, yaitu :
1. Fidelity
Setelah disisipi dengan data, media penampung harus terlihat baik. Pengamat tidak mengetahui terdapatnya data rahasia pada media penampung.
2. Recovery
(33)
Untuk format atau media yang berbeda, metode yang digunakan untuk menyembunyikan pesannya juga berbeda-beda. Beberapa metode yang biasanya digunakan, yaitu:
1. Least Significant Bit (LSB)
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, bit yang paling berpengaruh terhadap
informasi yang dikandungnya biasanya adalah bit paling awal/paling kiri. Bit
inilah 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). Contohnya pada file image pesan dapat disembunyikan dengan
menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan
(LSB) pada data pixel (titik) yang menyusun file tersebut. Seperti kita ketahui
untuk file bitmap 24 bit maka setiap pixel (titik) pada gambar tersebut terdiri dari
susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun
oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000
sampai 11111111. Dengan demikian pada setiap pixel file bitmap 24 bit kita dapat
(34)
A.Contoh 8 bit pixel :
1 pixel : ( 00 01 10 11 )
white red green blue
Insert 0011 : ( 00 00 11 11 )
white white blue blue
B. Contoh 24 bit pixel :
Contohnya huruf A dapat kita sisipkan dalam 3 pixel, misalnya data raster original adalah sebagai berikut :
( 00100111 11101001 11001000 )
red blue green
( 00100111 11001000 11101001 ) red green blue
( 11001000 00100111 11101001 )
green red blue
Sedangkan representasi biner huruf A adalah 100000111. Dengan
menyisipkan-nya pada data pixel diatas maka akan dihasilkan :
( 00100111 11101000 11001000 )
red green green
( 00100110 11001000 11101000 )
white green green
( 11001001 00100111 11101001 )
(35)
Terlihat hanya empat bit rendah yang berubah, untuk mata manusia maka tidak akan tampak perubahannya. Secara rata-rata dengan metoda ini hanya
setengah dari data bit rendah yang berubah, sehingga bila dibutuhkan dapat
digunakan bit rendah kedua bahkan ketiga.
Colormap (peta warna) dalam 8 bit warna image (gambar) maksimumnya
24 bit warna image (gambar) dari 256 color (warna). Bagaimanapun untuk
meminimisasi gangguan tambahan ketika least significant bit (LSB) berubah,
colormap (peta warna) dimulai dari hanya 240 color (warna) dan ke-16 color
(warna) lainnya akan ada atau ditambah pada saat hasil akhir dari sebuah gambar.
Kekurangan dari LSB insertion yaitu :
Dapat diambil kesimpulan dari contoh 8 bit pixel, menggunakan LSB
Insertion dapat secara drastis merubah unsur pokok warna dari pixel. Ini dapat
menunjukkan perbedaan yang nyata dari cover image menjadi stego image,
sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna
kurang jelas dengan 24 bit image, bagaimanapun file tersebut sangatlah besar.
(36)
Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan image, seperti
cropping (kegagalan) dan compression (pemampatan).
2. Algoritma dan Transformasi
Metode Steganografi yang lain adalah menyembunyikan data dalam fungsi matematika yang disebut algoritma compression. Dua fungsi tersebut
adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation.
Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke
tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat
spatial(spatial domain) ke tempat frekuensi (frequency domain).
3. Redundant Pattern Encoding
Penerapan steganografi dengan metode ini adalah dengan menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah
dapat bertahan dari cropping, kerugiannya yaitu tidak dapat menggambar
pesan yang lebih besar, sehingga pesan menjadi agak terbatas dan mungkin saja pesan yang ingin disampaikan oleh pengirim bahkan terlewatkan oleh penerima.
4. Spread Spectrum
Metoda Spread Spectrum mentransmisikan sebuah sinyal pita informasi
yang sempit ke dalam sebuah kanal pita lebar dengan penyebaran frekuensi. Penyebaran ini berguna untuk menambah tingkat redundansi. Besaran redundansi
ditentukan oleh faktor pengali cr yang bernilai skalar. Panjang bit- bit hasil
(37)
Proses penyisipan pesan menggunakan metode Spread Spectrum ini
terdiri dari tiga proses, yaitu spreading, modulasi, dan penyisipan pesan ke
citra.Untuk lebih jelasnya dapat dilihat dari gambar skema penyisipan pesan dibawah ini :
Gambar 2.3 Skema Penyisipan Pesan Spread Spectrum
Proses ekstraksi pesan menggunakan metode Spread Spectrum ini terdiri
dari tiga proses, yaitu pengambilan pesan dari matriks frekuensi, demodulasi, dan de- spreading. Untuk lebih jelasnya dapat dilihat di gambar skema ekstraksi pesan dibawah ini :
(38)
Namun yang akan di bahas dalam penulisan tugas akhir ini hanya dua
metoda steganografi yaitu Discrete Cosine Transformation (DCT) dan Redundant
Pattern Encoding.
2.3.1 Discrete Cosine Transformation (DCT)
Metode Steganography yang lain adalah menyembunyikan data dalam fungsi matematika yang disebut algoritma compression. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu suatu teknik yang digunakan untuk melakukan konversi sinyal kedalam komponen frekuensi pembentuknya dengan memperhitungkan nilai real dari hasil transformasinya.
Gambar 2.5 Diagram Transformasi DCT
Fungsi Transformasi DCT :
F (u,v) = 2
1 2 N 2 1 2 M
∑
− = 1 0 N i∑
− = 1 0 M jf(i,j) cos
(
)
+1 2 . 2 . i N u
π cos
+1) 2 .( 2 . j M v π ...(2.2)
(39)
Fungsi Invers DCT :
f(i,j) =
∑
− = 1 0 N i
∑
− = 1 0 M j 2 1 2 N 2 1 2 M f (u,v) cos
+ N u i 2 ) 1 2 (
π cos
+ M v j 2 ) 1 2 ( π ...(2.3) Keterangan :
Ukuran image M x N
f(u,v) : nilai koefisien DCT pada matrik 8x8 kolom ke-u baris ke-v
F(i,j) : nilai data yang hendak ditransformasikan pada matrik 8x8 kolom ke-i baris ke-j
Gambar 2.6 Proses Penyisipan Pesan DCT
Pada proses penyisipan pesan terdapat tugas-tugas seperti berikut : 1. Lakukan Transformasi DCT dari citra digital.
(40)
3. Gantikan bit pada citra tersebut dengan bit pesan yang akan
dimasukan agar tidak terlihat ( dapat digunakan LSB insertion).
4. Lakukan transformasi invers dct.
5. Simpan sebagai citra tersisip pesan.
Gambar 2.7 Proses pembacaan pesan DCT
Pada proses pembacaan pesan tugas-tugas yang perlu dilakukan diantaranya :
1. Lakukan transformasi dct dari citra tersisip pesan.
2. Dapatkan coefficient DCT.
3. Extract bit data dari koefisien terebut.
4. Gabungkan bit-bit tersebut menjadi sebuah pesan aktual
2.3.2 Redundant Pattern Encoding
Penerapan steganografi dengan metode ini adalah dengan
menggambarkan pesan kecil pada kebanyakan gambar. Algoritma dari redundant
pattern encoding yaitu memasukkan redundansi (penggandaan) ke dalam informasi/pesan yang akan disembunyikan (dengan catatan pesan hasil penggandaan sama dengan aslinya/utuh ) dan kemudian menyebarkan pesan itu ke
(41)
algoritma untuk menghasilkan urutan angka yang mendekati sifat nomor acak)
digunakan untuk menyeleksi dua area dari gambar (patch A dan patch B). Patch
adalah metode yang menandai area gambar.
Keseluruhan pixel pada patch A akan ditinggikan tingkat cahayanya. Lain
halnya dengan patch B, yang justru diturunkan tingkat cahayanya (digelapkan).
Dengan kata lain, intensitas pada pixel di suatu patch dinaikkan dengan nilai yang
konstan, sementara patch lainnya diturunkan dengan nilai konstan yang sama.
Perubahan kontras pada bagian patch akan mengenkripsi tiap satu bit dan
perubahannya biasanya sangat kecil dan halus.
Kerugian dari teknik ini adalah hanya satu bit yang dapat dimasukkan
pesan rahasia. Suatu gambar dapat digunakan untuk dimasukkan lebih dari satu bit
dengan cara membagi-bagi gambar tersebut ke sub- gambar dan menggunakan cara yang sama untuk memasukkan pesan ke dalamnya. Keuntungan untuk menggunakan teknik ini sendiri adalah pesan rahasianya akan disebarkan ke gambar tersebut secara keseluruhan. Sehingga, apabila ada sebuah patch yang dihancurkan, yang lain masih tetap bertahan. Namun, tetap saja hal ini bergantung kepada ukuran pesan itu sendiri. Ini disebabkan pesan tersebut hanya bias diulang dan tersebar ke seluruh bagian gambar apabila ukurannya cukup dan kecil.
Cara ini digunakan tidak bergantung terhadap jenis gambarnya (transfer domain) dan terbukti sebagai cara yang cukup ampuh dan baik untuk memasukkan pesan.
(42)
2.4 Citra Digital
Secara harafiah, citra (image) adalah gambar pada bidang dua dimensi
(dwimatra). Ditinjau dari sudut pandang matematis, citra merupakan fungsi
menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya
menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh oleh alat-alat optik, misalnya mata
pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan
objek yang disebut citra tersebut terekam.
2.4.1 Bitmap
Bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik yang tersimpan di memori komputer. Dikembangkan oleh Microsoft dan nilai
setiap titik diawali oleh satu bit data untuk gambar hitam putih, atau lebih bagi
gambar berwarna. Kerapatan titik-titik tersebut dinamakan resolusi, yang menunjukkan seberapa tajam gambar ini ditampilkan, ditunjukkan dengan jumlah baris dan kolom, contohnya 1024x768. Kelemahan dari citra bitmap adalah tidak dapat memperbesar atau memperkecil ukuran resolusinya. Resolusinya bergantung pada citra aslinya. Ukuran filenya juga relative besar, karena tersimpan dalam pixel. Selain itu citra bitmap apabila dilakukan proses kompresi kualitas citranya akan mengalami penurunan. Yang paling penting dari kriteria ini
adalah kedalaman warna (berapa banyak bit per pixel yang didefinisikan dari
(43)
1. bit = 16 warna (16 gray scales).
2. 8 bit = 256 warna (256 gray scales).
3. 24 bit = 16.777.216 warna.
Secara umum dapat dikatakan : Semakin banyaknya warna, maka akan diperlukan 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) :
1. 4 bit = 16 warna : 4 : 1
2. 8 bit = 256 warna : 8 : 1
3. 24 bit = 16.777.216 warna : 8 : 1
Untuk menampilkan citra bitmap pada monitor atau mencetaknya pada
printer, komputer menterjemahkan bitmap ini menjadi pixel (pada layar) atau titik
tinta (pada printer). Beberapa format file bitmap yang populer adalah BMP, PCX dan TIFF. Contoh gambar bitmap dapat dilihat di bawah ini :
(44)
2.4.2 Joint Photographic Group Experts (JPEG)
Adalah standar kompresi file yang dikembangkan oleh Group Joint
Photographic Experts menggunakan kombinasi DCT dan pengkodean Huffman
untuk mengkompresikan suatu file citra. JPEG adalah suatu algoritma kompresi
yang bersifat lossy, (yang berarti kualitas citranya agak kurang bagus). JPEG
adalah teknik kompresi grafis high color bit-mapped. Merupakan teknik dan
standar universal untuk kompresi dan dekompresi citra tidak bergerak untuk
digunakan pada kamera digital dan sistem pencitraan menggunakan komputer
yang dikembangkan oleh Joint Photographic Experts Group.
Umumnya digunakan untuk kompresi citra berwarna maupun gray scale.
Format ini benar-benar didesain memanjakan fotographer. Format ini bisa mensupport sampai 16.7 juta warna. Jumlah tersebut cukup untuk keperluan apapun bahkan pencitraan warna yg tidak bisa dicerna mata manusia. Selain jumlah kombinasi warna, algoritma kompresi JPEG bekerja dengan meresonansi informasi-informasi image keluar. Dan tergantung setting yg diberikan, informasi tersebut bisa dan bisa tidak dapat dicerna mata. Contoh gambar dengan format JPEG dapat dilihat di bawah ini :
(45)
2.4.3 Graphics Interchange Format (GIF)
Formst GIF itu baik digunakan untuk website. Kombinasi warna yg tersedia sebanyak 256 warna. Jumlah kombinasi ini cukup membuatnya dipakai bagi keperluan grafis apapun, tentu saja degan pengecualian keperluan photografi.
Kita bisa memakainya sebagai icon, favicon, logo, line grafis, ataupun
image-image tombol. GIF juga bisa dianimasikan. Beberapa karakteristik format gambar GIF sebagai berikut :
1. Mampu menayangkan maksimum sebanyak 256 warna karena format
GIF menggunakan 8-bit untuk setiap pixelnya.
2. Mengkompresi gambar dengan sifat lossless
3. Mendukung warna transparan dan animasi sederhana
Sebenarnya tersedia pilihan format lain seperti flash atau format animasi
berbasis vektor. Akan tetapi format-format itu biasanya lebih
konsumtif-bandwidth. Gif mempunyai kemampuan mengkompres area-area gambar sewarna. Dengan kemampuan ini, banyak item-item grafis website bisa didesain dgn ukuran sekecil mungkin. Metode yang paling umum mereduksi ukuran file GIF
ialah dengan mereduksi jumlah warna dalam palettle. Perlu digaris-bawahi, GIF
telah menggunakan skema kompresi internal LZW. Skema ini bisa membuat gambar berukuran sekecil mungkin tanpa kehilangan data penting apapun. Namun
tidak tau pasti bagaimana algoritma LZW ini bekerja. Ada 2 feature Gif yg
menarik perhatian, yaitu transparency dan interlacing. Contoh gambar yang
(46)
Gambar 2.10 Gambar berformat GIF
2.4.4 Portable Network Graphics (PNG)
PNG (Portable Network Graphics) adalah salah satu format penyimpanan
citra yang menggunakan metode pemadatan yang tidak menghilangkan bagian
dari citra tersebut (lossless compression).
PNG dibaca "ping", namun biasanya dieja apa adanya - untuk menghindari kerancuan dengan istilah "ping" pada jaringan komputer. Format PNG ini diperkenalkan untuk menggantikan format penyimpanan citra GIF. Secara umum PNG dipakai untuk Citra Web. Untuk Web, format PNG mempunyai 3 keuntungan dibandingkan format GIF diantaranya :
1. Channel Alpha (transparansi)
2. Gamma (pengaturan terang-gelapnya citra en:"brightness")
3. Penayangan citra secara progresif (progressive display)
Selain itu, citra dengan format PNG mempunyai faktor kompresi yang lebih baik dibandingkan dengan GIF (5% - 25% lebih baik dibanding format GIF). Satu fasilitas dari GIF yang tidak terdapat pada PNG format adalah dukungan terhadap penyimpanan multi-citra untuk keperluan animasi. Untuk keperluan pengolahan citra, meskipun format PNG bisa dijadikan alternatif
(47)
selama proses pengolahan citra - karena format ini selain tidak menghilangkan bagian dari citra yang sedang diolah (sehingga penyimpanan berulang ulang dari citra tidak akan menurunkan kualitas citra) namun format JPEG masih menjadi pilihan yang lebih baik. Contoh gambar yang memiliki format PNG dapat dilihat dibawah ini :
Gambar 2.11 Gambar berformat PNG
2.5 Pengukuran Error Citra
MSE ( Mean Square Error ) adalah tingkat kesalahan sinyal-sinyal video atau piksel-piksel citra hasil pemrosesan sinyal terhadap sinyal/citra original.
Rumus untuk menghitung MSE pada citra digital adalah :
...(2.4)
Sedangkan Peak Signal to Noise Ratio (PSNR) merupakan nilai (rasio)
yang menunjukan tingkat toleransi noise tertentu terhadap banyaknya noise pada
suatu sinyal video/citra. Noise adalah kerusakan sinyal pada bagian tertentu dalam
(48)
PSNR merupakan suatu nilai yang menunjukkan kualitas suatu sinyal video/citra.
Untuk menghitung nilai PSNR digunakan rumus sebagai berikut :
...(2.5)
Dimana : I (x,y) nilai pixel dari citra asli
I’ (x,y) nilai pixel dari hasil steganografi
M, N adalah dimensi image
2.6 .NET Platform
.NET merupakan sebuah platform yang dibangun oleh microsoft dengan komponen utamanya yaitu Framework .NET. Framework .NET merupakan suatu komponen window yang terintegrasi dan dibuat agar dapat menjalankan berbagai
macam aplikasi berbasis .NET termasuk pembangunan aplikasi Web Service
(XML).
2.7 .NET Framework
.NET framework adalah sebuah framework atau bingkai kerja bagi aplikasi-aplikasi .NET yang dibuat menggunakan Visual Studio .NET tanpa terpengaruh bahasa pemrograman yang digunakan.
.NET framework menyediakan berbagai macam tool dan teknologi yang
diperlukan untuk membangun aplikasi yang terdistribusi. Penyediaan tool dan
(49)
bebas ke semua model ditingkatan sama suatu aplikasi, lalu menyediakan interoperabilitas tanpa klaim dan memudahkan migrasi dari teknologi yang ada pada Microsoft .NET. Arsitektur dari Framework .NET seperti gambar di bawah ini :
Gambar 2.12 Arsitektur Framework .NET
Framework .NET terdiri atas dua elemen penting, yaitu Common Language Runtime (CLR) dan Framework Class Library (FCL). CLR merupakan sebuah lingkungan untuk menjalankan program pada saat runtime, kemudian FCL menyediakan layanan yang dibutuhkan oleh aplikasi .NET.
2.7.1 Common Language Runtime (CLR)
CLR adalah tulang punggung .NET framework, pada CLR inilah tersedia
library-library yang diperlukan oleh aplikasi-aplikasi yang dibuat. Program aplikasi yang dijalankan tidak langsung berhubungan dengan sistem operasi, namun melalui CLR terlebih dahulu.
(50)
1. Mengelola dan mengeksekusi kode program
2. Mengelola alokasi memori ketika program di eksekusi
3. Memberikan layanan seperti JIT kompilasi
4. Mengelola penanganan kesalahan atau eksepsi
5. Melakukan proses debug dan mengatur keamanan program
6. Bersifat assembly saat proses deployment (penyebaran) atau kompilasi
7. Memungkinkan adanya variasi dan integrasi berbagai bahasa
pemrograman yang ada dilingkungan Framework .NET
2.7.2 Framework Class Library (FCL)
FCL adalah sebuah kumpulan class-class yang berjumlah ribuan di dalam
.NET framework. Class-class ini menyediakan akses ke window API dan
fungsi-fungsi yang umum seperti struktur data, manipulasi string, IO, stream, theread,
security, network programming, windows programming, web programming, data
akses, dan lain-lain. Ini adalah library standar yang pernah disertakan pada
programming enviorenment atau pada bahasa pemrograman tertentu. Penggunaan
class-class ini sangat mudah, bahkan inheritance dan polymorphisme dapat
diterapkan pada class-class ini.
2.7.3 C#
C# merupakan bahasa pemrograman yang didesain dengan target diimplementasikan dalam teknologi .NET. Pada tahun 2002 tepatnya bulan
(51)
Januari C# maupun framework .NET diselesaikan dan dapat diimplementasikan. Bahasa pemrograman C# merupakan bahasa baru yang sangat handal dan konsisten serta membawa kesan bahwa C# merupakan bahasa pemrograman yang modern. Bahasa C# merupakan bahasa komposisi dari berbagai bahasa diantaranya bahasa java, C++, Visual Basic dan lain-lain. Bahasa java merupakan bahasa yang paling banyak digunakan dalam sintaksis C#. Persentase penggunaan bahasa java dalam bahasa C# adalah sebanyak 70%, bahasa C++ sebanyak 10%, bahasa Visual Basic sebanyak 5% dan bahasa lain-lain sebanyak 15%.
2.8 Model Pengembangan Perangkat Lunak
Perangkat lunak (software) adalah perintah/program komputer yang bila
dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional dan dokumen yang menggambarkan operasi dan kegunaan program.
Software memiliki dua peran, di satu sisi berfungsi sebagai sebuah produk dan di sisi lain berfungsi sebagai kendaran yang mengantarkan sebuah produk.
Sebagai produk, software mengantarkan potensi perhitungan yang dibangun oleh
software komputer. Baik di dalam sebuah telepon seluler, atau beroperasi di
sebuah mainframe komputer, software merupakan transformer informasi yang
memproduksi, mengatur, memperoleh, memodifikasi, menampilkan, atau
memancarkan informasi, dimana pekerjaan ini dapat sesederhana suatu bit tunggal
atau sekompleks sebuah simulasi multimedia. Sedangkan peran sebagai kendaran
(52)
kontrol komputer (sistem operasi), komunikasi informasi (jaringan), dan penciptaan serta kontrol dari program – program lain (peranti dan lingkungan
software).
Pada masa-masa awal, pemrograman masih dilihat sebagai “bentuk kesenian”. Hanya sedikit saja metode yang ada dan lebih sedikit lagi orang yang
memahaminya. Para programmer kadang – kadang harus mempelajarinya dengan
coba-coba. Tetapi sekarang software sudah menjadi lahan yang sangat kompetitif.
Software yang dulu dibangun secara internal di dalam komputer sekarang sudah dapat diproduksi secara terpisah.
Software lebih merupakan elemen logika dan bukan merupakan elemen
sistem fisik. Software memiliki ciri yang berbeda dari Hardware, yaitu :
1. Software dibangun dan dikembangkan. 2. Software tidak pernah usang.
3. Sebagian besar Software dibuat secara custom-built, serta tidak dapat
dirakit dari komponen yang sudah ada.
Karakteristik dari produk software :
1. Maintainanbility 2. Dependability 3. Efficiency 4. Usability
Proses (produksi) software, yaitu:
1. Spesifikasi software
(53)
3. Validasi (pengetesan dan pengujian) 4. Evolusi, pengembangan lanjutan
IEEE telah mengembangkan definisi yang lebih komprehensif, yaitu
software engineering : aplikasi dari sebuah pendekatn kuantifiabel, disiplin, dan
sistematis kepada pengembangan, operasi, dan pemeliharaan software.
Model–model proses untuk software engineering yang sering digunakan
seperti model sekuensial linier, model prototipe, model RAD, model inkremental,
model spiral, model asembly komponen, model pengembangan kongkuren, model
metode formal, model teknik generasi keempat.
Model pengembangan perangkat lunak yang akan dibahas dalam penulisan
tugas akhir ini hanyalah model RAD (Rapid Application Development).
2.8.1 RAD (Rapid Application Development)
Rapid Aplication Development (RAD) adalah sebuah model proses pengembangan perangkat lunak yang incremental. RAD menekankan pada siklus pengembangan yang pendek/singkat. RAD mengadopsi model waterfall dan
pembangunan dalam waktu singkat dicapai dengan menerapkan component based
construction. Waktu yang singkat adalah batasan yang penting untuk model ini. Jika kebutuhan lengkap dan jelas maka waktu yang dibutuhkan untuk
menyelesaikan secara komplit software yang dibuat adalah misalnya 60 sampai 90
(54)
Gambar 2.13 Model RAD
Fase-fase di atas menggambarkan proses dalam model RAD. Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan dalam waktu yang hampir bersamaan dalam batasan waktu yang sudah ditentukan.
1. Bussiness Modeling
Aliran informasi di antara fungsi–fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan–pertanyaan berikut : Informasi apa yang mengendalikan proses bisnis? Informasi apa yang di munculkan? Siapa yang memunculkanya? Ke mana informasi itu pergi? Siapa yang memprosesnya?
(55)
2. Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase business
modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing–masing objek diidentifikasi dan hubungan antara objek–objek tersebut didefinisikan.
3. Prosess Modelling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
4. Aplication Generation
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang ada ( pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat–alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
5. Testing and Turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian.
Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.
Kelemahan dalam model ini:
(56)
2. Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
3. Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
4. Resiko teknis yang tinggi juga kurang cocok untuk model ini.
2.9 Tinjauan Perangkat Lunak
Pada bagian ini penulis akan menguraikan penjelasan singkat mengenai
perangkat lunak (software utama) yang digunakan dalam pembuatan aplikasi ini
yaitu Microsoft Windows XP SP 3 sebagai sistem operasi yang digunakan dan Microsoft Visual C# 2008 sebagai editor pembuatan aplikasi.
2.9.1 Microsoft Windows XP
Windows adalah salah satu sistem operasi andalan Micosoft yang banyak dipakai saat ini, karena kestabilan dan kemudahan dalam pemakaiannya. Kelebihan liannya adalah kebutuhan perangkat kerasnya tidak membutuhkan sumber daya yang besar. Tampilan sistem operasi Windows XP adalah sebagai berikut :
(57)
2.9.2 Microsoft Visual C# 2008
C# sering dianggap sebagai penerus C++ atau versi canggih dari C++, karena ada anggapan bahwa tanda # adalah perpaduan dari 4 buah tanda tambah yang disusun sedemikian rupa sehingga membentuk tanda pagar. Akan tetapi, terlepas dari benar tidaknya anggapan tersebut C# adalah suatu bahasa pemrograman yang sangat menjanjikan. C# adalah sebuah bahasa pemrograman yang berorientasi pada objek yang dikembangkan oleh Microsoft dan menjadi
salah satu bahasa pemrograman yang mendukung .NET programming melalui
Visual Studio. Tampilan awal dari Micosoft Visual C# 2008 adalah sebagai berikut :
(58)
2.9.3 Keuntungan Visual C#
Ada beberapa keuntungan menggunakan teknologi .NET dalam
membangun sebuah aplikasi, baik aplikasi web service maupun aplikasi biasa
yang sering digunakan seperti Window Form, diantaranya :
1. Mudah, Visual C# yang sangat sederhana mudah digunakan dalam
mengimplementasikan pengembangan sebuah aplikasi
2. Effisien, kemudahan saat pembuatan aplikasi sangat berpengaruh
pada efisiensi waktu pengerjaan aplikasi dan berdampak pula pada efisiensi biaya
3. Produktivitas, kemudahan pengerjaan aplikasi akan berdampak besar
dalam menghasilkan produk yang berupa aplikasi.
4. Konsisten, kemudahan yang dihadirkan oleh Visual C# akan
(59)
44
3.1 Analisis Sistem
Program aplikasi ini dapat dibuat dengan adanya suatu analisis terlebih dahulu. Analisis sistem dilakukan dengan mendefinisikan masalah yang ada, menganalisis dan mengamati secara keseluruhan bagaimana program aplikasi ini terbentuk. Dalam pembuatan program aplikasi ini diperlukan suatu analisis yang benar agar dihasilkan suatu program aplikasi yang sesuai dengan yang diharapkan. Secara umum analisis yang akan dilakukan adalah mengenai lingkungan dari sistem dimana program aplikasi ini akan digunakan dan siapa yang menggunakannya. Analisis lingkungan dari sistem menguraikan sejumlah entitas yang ada hubungannya dengan sistem dan berpengaruh terhadap sistem.
3.2 Analisis Masalah
Steganografi bertujuan untuk menyisipkan suatu data/pesan rahasia kedalam suatu media penampung agar data/pesan rahasia tersebut tidak dapat dibaca atau diketahui oleh orang/pihak yang tidak berhak mengetahuinya.
Kebanyakan steganografi diterapkan pada media citra yang memiliki format .bmp atau bitmap. Masalah yang timbul adalah bagaimana jika data/pesan rahasia tersebut disisipkan pada citra yang berformat .bmp atau bitmap yang memiliki ukuran file yang relative besar sehingga dapat menjadi suatu hambatan
(60)
apabila kita menggunakan electronic mail (e-mail) untuk mendistribusikan citra yang berisi data/pesan rahasia tersebut.
Pada sistem yang akan direalisasikan ini akan mengatasi masalah tersebut, yaitu menyisipkan data/pesan rahasia pada media penampung yang berupa citra digital yang memiliki format gif,jpeg,png dan bmp.
3.2.1 Analisis Pengolahan Citra Digital
Citra merupakan fungsi intensitas dalam bidang dua dimensi. Intensitas yang dimaksud berasala dari sumber cahaya. Pada hakekatnya citra yang dilihat oleh mata manusia terdiri atas berkas-berkas cahaya yang dipantulkan oleh benda-benda disekitar kita.
Suatu citra digital adalah suatu gambar kontinu yang diubah dalam bentuk diskrit, baik koordinat maupun intensitas cahayanya. Kita dapat menganggap suatu citra digital sebagai suatu matriks dimana indeks baris dan kolomnya menyatakan koordinat sebuah titik pada citra tersebut dan masing-masing elemennya menyatakan intensitas cahaya pada titik tersebut. Suatu titik pada citra digital sering disebut sebagai elemen citra, elemen gambar ataupun
pixel.
Untuk mengubah suatu citra kontinu ke dalam suatu representasi numeric
dilakukan dengan proses digitalisasi oleh suatu digitizer, misalnya scanner,
sehingga citra ini dapat diproses oleh sebuah komputer.
Digitalisasi sebuah citra dilakukan baik terhadap ruang (koordinasi (x,y)), maupun terhadap skala keabuannya (f(x,y)). Proses digitalisasi koordinat (x,y)
(61)
dikenal sebagai “pencuplikan citra” (image sampling), sedangkan proses
digitalisasi keabuan (f(x,y) dikenal sebagai “kuantisasi derajat keabuan”
(grey-level quantization).
Sebuah citra kontinu f(x,y) akan didekati oleh cuplikan-cuplikan yang seragam jaraknya dalam bentuk matriks MxN, dimana M adalah baris dan N adalah kolom. Nilai elemen-elemen matriks menyatakan derajat keabuan citra, sedangkan posisi elemen tersebut (dalam baris dan kolom) menyatakan koordinat titik-titik (x,y) dari citra. Bentuk matriks di bawah ini sebagai suatu citra digital :
F(x,y) = − − − − − ⋅ ) 1 , 1 ( . . . ) 1 , 1 ( ) 1 , 0 ( ... ... ... ... ... ... . . . . ) 1 , 1 ( ) 1 , 0 ( ) 0 , 1 ( . . ) 1 , 0 ( ) 0 , 0 ( N M f N f N f f f M f f f
Matriks di atas dapat disajikan dalam bentuk 2 dimensi dalam system
koordinat Cartesius dengan memutar posisi matriks di atas sejauh 900 derajat
searah jarum jam.
f(m,n) = n m f = n m 5 2 1 5 0 4 3 1 2 3 5 5 1 0 2 2 4 1
Sedangkan derajat keabuan [0,L] dibagi kedalam G selang dengan
panjang selang yang sama, yaitu : G=2m dimana m adalah kedalaman bit dan m
bilangan bulat positif, bila hal ini diterapkan pada penyimpanan maka sebuah citra
(62)
b = M x N x m ...(3.1)
Dalam suatu proses pencuplikan dan kuantisasi sering terjadi permasalahan, yaitu jumlah cuplikan dan derajat keabuan yang diperlukan untuk memperoleh suatu citra yang “baik”, makin tinggi nilai MxN dan m, maka citra kontinu f(x,y) akan makin didekati oleh citra digital yang dihasilkan. Tapi hal ini
seringakali dbatasi oleh kemampuan hardware dari suatu komputer.
Agar dapat diolah dengan komputer digital, maka suatu citra harus direpresentasikan secara numeric dengan nilai-nilai diskrit. Representasi citra dari
fungsi malar (kontinu) menjadi nilai-nilai diskrit disebut digitalisasi. Citra yang
dihasilkan inilah yang disebut citra digital (digital image). Pada umumnya citra
digital berbentuk empat persegi panjang, dan dimensi ukurannya dinyatakan sebagai tinggi x lebar (atau lebar x panjang).
Citra digital yang tingginya N, dan lebarnya M dan memiliki L derajat
keabuannya dapat dianggap sebagai fungsi:
) , (x y f ≤ ≤ ≤ ≤ ≤ ≤ L f N y M x 0 0 0
Citra digital yang berukuran NxM lazim dinyatakan dengan matriks yang berukuran (N = baris dan M = kolom) sebagai berikut :
f(x,y) = − − −
− ( 1, 1)
) , 1 ( ) , 0 ( ) 1 , 1 ( ) 1 , 1 ( ) 1 , 0 ( ) 0 , 1 ( ) 1 , 0 ( ) 0 , 0 ( M N f M f M f N f f f N f f f
(63)
Indeks baris (i) dan indeks kolom (j) menyatakan suatu koordinat titik
pada citra, sedangkan f(i,j) merupakan intensitas (derajat keabuan) pada titik (i,j).
Masing-masing elemen pada citra digital (berarti elemen matriks) disebut
image element, picture element, pixel atau pel. Jadi, citra yang berukuran N x M
mempunyai NM buah pixel. Sebagai contoh misalnya sebuah matriks berukuran
256 x 256 pixel dan direpresentisikan secara numeric dengan matriks yang terdiri
dari 256 buah baris ( di indeks dari 0 sampai 255) dan 256 buah kolom (di indeks dari 0 sampai 255) seperti contoh berikut :
156
120
197
231
210
189
201
145
219
187
167
134
221
220
0
0
Pixel pertama pada koordinat (0,0) mempunyai nilai intensitas 0 yang
berarti warna pixel tersebut hitam, pixel kedua pada koordinta (0,1) mempunyai
intensitas134 yang berarti warnanya antara hitam dan putih, dan seterusnya.
3.2.2 Analisis File Teks
Teks merupakan sekumpulan karakter, huruf-huruf, angka-angka (A-Z, a-z, 0-9) dan symbol-simbol lainnya seperti %, &, ^, =, @, £, $, !, * dan lain-lain dengan menggunakan kode ASCII setiap karakter dari teks berjumlah 8 bit atau 1
(64)
3.2.3 Analisis Kriptografi
Pada algoritma RSA terdapat 3 langkah utama yaitu key generation
(pembangkitan kunci), enkripsi, dan dekripsi. Kunci pada RSA mencakup dua
buah kunci, yaitu public key dan private key. Public key digunakan untuk
melakukan enkripsi, dan dapat diketahui oleh orang lain. Sedangkan private key
tetap dirahasiakan dan digunakan untuk melakukan dekripsi. Pembangkitan kunci
atau key generation dari RSA adalah sebagai berikut :
1. Pilih dua buah bilangan prima sembarang a dan b. Jaga kerahasiaan a dan
b ini.
2. Hitung n = a * b. Besaran n ini tidak perlu dirahasiakan.
3. Hitung m = (a-1) * (b-1). Sekali m telah dihitung, a dan b dapat dihapus
untuk mencegah diketahuinya oleh pihak lain.
4. Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya e, yang
relatif prima terhadap m (relatif prima berarti GCD(e, m) = 1) dengan
syarat e ≠(p-1), e ≠(q-1), dan e < n
5. Hitung kunci dekripsi, d, dengan kekongruenan ed ≡1 (mod m).
Proses enkripsi dapat dilakukan dengan :
Sedangkan proses dekripsi dilakukan dengan cara : Contoh penerapan algoritma RSA.
1. Menentukan bilangan acak a dan b
a = 13 b = 5
2. Hitung n dan m
n P
Ci = iemod
n P
(65)
n = 13 * 5 = 65 m = 12 * 4 = 48
3. Cari nilai e
GCD(e, 48) = 1 Misalnya,
e = 2 maka GCD(2, 48) = 2 e = 3 maka GCD(3, 48) = 3 e = 4 maka GCD(4, 48) = 4
e = 5 maka GCD(5, 48) = 1 , jadi digunakan e = 5
4. Lalu cari nilai d
Misalnya
k = 1 maka d = 9,8 k = 2 maka d = 19,4
k = 3 maka d = 29 , jadi digunakan d = 29
Kita coba mengenkripsi pesan menggunakan angka-angka yang telah didapatkan. Misalkan pesan yang dikirim adalah angka 48.
E = 48 ^ 5 mod 65 = 254803968 mod 65 = 3
Setelah dilakukan enkripsi, didapat nilai sekarang adalah 3. Kemudian akan kita coba lakukan dekripsi pada nilai tersebut.
e
km
d
=
1
+
(66)
D = 3 ^ 29 mod 65
= 68630377364883 mod 65 = 48
Perhatikan bahwa nilai yang didapat sama dengan nilai awal, yaitu 48. Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan
bilangan menjadi faktor primanya, dalam hal ini memfaktorkan n menjadi a dan b.
Karena sekali n berhasil difaktorkan, maka menghitung nilai m adalah perkara
mudah. Selanjutnya, walau nilai e diumumkan, perhitungan kunci d tidaklah
mudah pula karena nilai m yang tidak diketahui.
3.2.4 Analisis Steganografi
Steganografi berasal dari bahasa Yunani yaitu Steganós yang berarti menyembunyikan dan Graptos yang artinya tulisan sehingga secara keseluruhan artinya adalah tulisan yang disebunyikan. Secara umum steganografi merupakan seni atau ilmu yang digunakan untuk menyembunyikan pesan rahasia dengan segala cara sehingga selain orang yang dituju, orang lain tidak akan menyadari keberadaan dari pesan rahasia tersebut.
Teknik steganografi sudah dikenal sejak jaman Yunani dan Romawi kuno. Misalnya dengan mencukur kepala budak, lalu pesan rahasia ditulis pada kulit kepalanya. Setelah rambut budak tersebut tumbuh, budak terebut dikirim untuk menyampaikan pesan rahasia tersebut. Untuk format atau media yang berbeda, metode yang digunakan untuk menyembunyikan pesannya juga berbeda-beda. Yang akan dibahas di tugas akhir ini hanya dua metode yaitu :
(67)
1. Least Significant Bit (LSB)
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, bit yang paling berpengaruh terhadap
informasi yang dikandungnya biasanya adalah bit paling awal/paling kiri. Bit
inilah 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). Contohnya pada file image pesan dapat disembunyikan dengan
menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan
(lsb) pada data pixel (titik) yang menyusun file tersebut. Seperti kita ketahui untuk
file bitmap 24 bit maka setiap pixel (titik) pada gambar tersebut terdiri dari
susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun
oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000
sampai 11111111. Dengan demikian pada setiap pixel file bitmap 24 bit kita dapat
menyisipkan 3 bit data.
Contohnya huruf A dapat kita sisipkan dalam 3 pixel, misalnya data raster original adalah sebagai berikut :
( 00100111 11101001 11001000 )
(1)
Gambar 4.11 Grafik Pengujian Kualitas Citra Format PNG
Pengujian selanjutnya dilakukan dengan menggunakan file citra penampung pesan (carrier image) berdimensi 96x100 pixel, bertipe GIF, berukuran 15 Kb dengan menggunakan kedua metoda steganografi yaitu Discrete Cosine Transformation (DCT) dan Redundant Pattern Encoding. Jenis file yang akan disisipkan kedalam carrier image adalah file teks yang memiliki format .txt.
Tabel 4.10 Pengujian Steganografi Terhadap Kualitas Citra Menggunakan Citra GIF
Ukuran file teks yg akan disisipkan 125 (bytes) 923 (bytes) 1,51 (Kb) 2,00 (Kb) 2,78 (Kb) 5,58 (Kb) Metoda Yang Digunakan Nilai
PSNR Nilai PSNR Nilai PSNR Nilai PSNR Nilai PSNR Nilai PSNR
Metoda DCT 65,88 (db) 57,28 (db) 55,01 (db) 53,77 (db) 52,42 (db) Tidak bisa disisipi Metoda Redundant Pattern Encoding 23,74 (db) Tidak bisa disisipi Tidak bisa disisipi Tidak bisa disisipi Tidak bisa disisipi Tidak bisa disisipi Dari pengujian tersebut dapat dibuat grafik yang dapat diilihat pada gambar dibawah ini :
(2)
118
Gambar 4.12 Grafik Pengujian Kualitas Citra Format GIF
Dari pengujian yang telah dilakukan, ternyata steganografi dengan menggunakan metoda Discrete Cosine Transformation (DCT,) file penampung pesan (carrier image) dapat menampung teks/pesan lebih banyak dibandingkan dengan metoda Redundant Pattern Encoding.
Kualitas citra yang dihasilkan yang dilihat berdasarkan kalkulasi nilai PSNR (Peak Signal to Noise Ratio) dengan menggunakan metoda Discrete Cosine Transformation (DCT) lebih baik bila dibandingkan dengan metoda Redundant Pattern Encoding. Karena nilai PSNR yang dihasilkan oleh metoda Discrete Cosine Transformation (DCT) lebih besar dari pada ytang dihasilkan oleh metoda Redundant Pattern Encoding.
Sehingga metoda Discrete Cosine Transformation (DCT) ini baik digunakan dalam pembuatan program aplikasi steganografi, terutama yang bertujuan untuk menerapkan kriteria Fidelity yaitu setelah disisipi data/pesan media penampung harus terlihat baik.
(3)
119 BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil analisis, perancangan dan implementasi maka penulis dapat mengambil kesimpulan sebagai berikut :
1. Metoda Discrete Cosine Transformation (DCT) dapat menampung teks/pesan lebih banyak dan perubahan yang terjadi pada media penampung setelah disisipi teks/pesan tidak terlihat secara kasat mata. 2. Metoda Redundant Pattern Encoding hanya dapat menyisipkan teks/pesan
lebih sedikit bila dibandingkan dengan metoda DCT dan perubahan yang terjadi pada media penampung setelah disisipi teks/pesan sangat signifikan.
3. Kualitas citra yang dihasilkan oleh metoda Discrete Cosine Transformation (DCT) yang dilihat berdasarkan nilai PSNR lebih baik bila dibandingkan dengan metoda Redundant Pattern Encoding.
4. Steganografi menggunakan metoda Discrete Cosine Transformation (DCT) dengan media penampung berupa citra digital berformat PNG semakin besar ukuran file teks yang disisipkan semakin meningkat kualitas citra yang dihasilkan.
5. Steganografi dengan menggunakan metoda Discrete Cosine Transformation (DCT) baik digunakan dalam program steganografi yang
(4)
120
bertujuan untuk menerapkan prinsip Fidelity yaitu setelah disisipi dengan teks/pesan media penampung harus tetap terlihat baik.
5.2. Saran
Aplikasi steganografi ini masih banyak kekurangannya, sehingga perlu dikembangkan lagi agar aplikasi ini bisa lebih sempurna. Untuk meningkatkan kualitas dan fungsionalitas dari aplikasi steganografi ini, maka penulis menyampaikan saran-saran sebagai berikut :
1. Media penampung pesannya tidak hanya citra digital tetapi dapat juga dilakukan pada file audio atau video.
2. Pesan yang disisipkan tidak hanya berupa teks/karakter tetapi dapat juga gambar, mp3, dll.
3. Metoda yang digunakan lebih bervariasi.
Masih banyak fasilitas lain yang dapat dikembangkan dalam perangkat lunak ini. Pengembangan dapat menciptakan ide-ide baru untuk meningkatkan mutu perangkat lunak yang lebih baik sesuai dengan tuntutan kebutuhan yang harus dipenuhi.
(5)
121
[2] Ariyus, Doni. Computer Security. Yogyakarta: ANDI, 2006.
[3] Jaenudin. Belajar Sendiri .Net dengan Visual C# 2005. Yogyakarta: ANDI, 2006.
[4] Sharp, Jhon. Visual C# 2008. Washington: Microsoft, 2008.
[5] Pustikawati, Rika. Steganalysis on Digital Images using Macroscopic
Quantity in Steganography OutGuess. [Online]. Available :
http://library.ittelkom.ac.id, diakses pada tanggal 27 Maret 2010 pukul 10.15 (GMT+7).
[6] Munir, Rinaldi. Kriptografi. Bandung: Informatika, 2006.
[7] Komputer, Wahana. Belajar Pemrograman C#. Yogyakarta: ANDI.2008.
[8] Kurniawan, Yusuf. Kriptografi, Keamanan Internet dan Jaringan Komunikasi. Bandung: Informatika, 2004.
(6)
CURICULUM VITAE
DATA PRIBADI
Nama Lengkap : Firman Kurnia Pratama Tempat, Tanggal Lahir : Cirebon, 13 September 1987
Alamat : Jl. Girinsing No. 33 RT/RW : 05/11 Kelurahan Sukaluyu Kecamtan Cibeunying Kaler Bandung 40123
Jenis Kelamin : Laki-laki
Tinggi Badan : 165
Berat Badan : 62
Nomer Handphone : 081911402220 / 022-93322727
Agama : Islam
Status : Belum Kawin
Kewarganegaraan : Indonesia
PENDIDIKAN FORMAL
Tahun 1993 – 1999 : SDN Setianegara I, Cilimus – Kuningan Tahun 1999 – 2002 : SMPN I Cilimus, Kuningan
Tahun 2002 – 2005 : SMAN I Cilimus, Kuningan
Tahun 2005 – 2008 : DIII Fakultas MIPA, Jurusan Matematika, Program Studi Teknik Informatika, Universitas Padjadjaran, Bandung.
Tahun 2008 – 2010 : S1 Fakultas Teknik dan Ilmu Komputer Jurusan Teknik Informatika Universitas Komputer Indonesia, Bandung