Analisis Perbandingan Metoda Redundant Pattern Encoding Dan Discrete Cosine Transformation Sebagai Metoda Steganografi Pada Citra Digital

(1)

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 j

f(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